Commit 6547faa1 authored by Bjorn Helgaas's avatar Bjorn Helgaas
Browse files

Merge branch 'pci/controller/qcom'

- Describe endpoint BAR0 and BAR2 as 64-bit only and BAR1 and BAR3 as
  RESERVED (Manivannan Sadhasivam)

- Add optional dma-coherent DT property for Qualcomm SA8775P (Dmitry
  Baryshkov)

- Make DT iommu property required for SA8775P and prohibited for SDX55
  (Dmitry Baryshkov)

- Add DT iommu and DMA-related properties for Qualcomm SM8450 (Dmitry
  Baryshkov)

- Consolidate DMA vs non-DMA cases in DT (Dmitry Baryshkov)

- Add endpoint DT properties for SAR2130P and enable endpoint mode in
  driver (Dmitry Baryshkov)

* pci/controller/qcom:
  PCI: qcom-ep: Enable EP mode support for SAR2130P
  dt-bindings: PCI: qcom-ep: Add SAR2130P compatible
  dt-bindings: PCI: qcom-ep: Consolidate DMA vs non-DMA cases
  dt-bindings: PCI: qcom-ep: Enable DMA for SM8450
  dt-bindings: PCI: qcom-ep: Describe optional IOMMU
  dt-bindings: PCI: qcom-ep: Describe optional dma-coherent property
  PCI: qcom-ep: Mark BAR0/BAR2 as 64bit BARs and BAR1/BAR3 as RESERVED
parents d7f6f07e 42c812d0
Loading
Loading
Loading
Loading
+74 −26
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ properties:
    oneOf:
      - enum:
          - qcom,sa8775p-pcie-ep
          - qcom,sar2130p-pcie-ep
          - qcom,sdx55-pcie-ep
          - qcom,sm8450-pcie-ep
      - items:
@@ -44,11 +45,11 @@ properties:

  clocks:
    minItems: 5
    maxItems: 8
    maxItems: 9

  clock-names:
    minItems: 5
    maxItems: 8
    maxItems: 9

  qcom,perst-regs:
    description: Reference to a syscon representing TCSR followed by the two
@@ -75,6 +76,9 @@ properties:
      - const: doorbell
      - const: dma

  iommus:
    maxItems: 1

  reset-gpios:
    description: GPIO used as PERST# input signal
    maxItems: 1
@@ -91,6 +95,8 @@ properties:
      - const: pcie-mem
      - const: cpu-pcie

  dma-coherent: true

  resets:
    maxItems: 1

@@ -126,6 +132,38 @@ required:

allOf:
  - $ref: pci-ep.yaml#

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sar2130p-pcie-ep
    then:
      properties:
        clocks:
          items:
            - description: PCIe Auxiliary clock
            - description: PCIe CFG AHB clock
            - description: PCIe Master AXI clock
            - description: PCIe Slave AXI clock
            - description: PCIe Slave Q2A AXI clock
            - description: PCIe DDRSS SF TBU clock
            - description: PCIe AGGRE NOC AXI clock
            - description: PCIe CFG NOC AXI clock
            - description: PCIe QMIP AHB clock
        clock-names:
          items:
            - const: aux
            - const: cfg
            - const: bus_master
            - const: bus_slave
            - const: slave_q2a
            - const: ddrss_sf_tbu
            - const: aggre_noc_axi
            - const: cnoc_sf_axi
            - const: qmip_pcie_ahb

  - if:
      properties:
        compatible:
@@ -135,9 +173,43 @@ allOf:
    then:
      properties:
        reg:
          minItems: 6
          maxItems: 6
        reg-names:
          minItems: 6
          maxItems: 6
        interrupts:
          minItems: 2
          maxItems: 2
        interrupt-names:
          minItems: 2
          maxItems: 2
        iommus: false
    else:
      properties:
        reg:
          minItems: 7
          maxItems: 7
        reg-names:
          minItems: 7
          maxItems: 7
        interrupts:
          minItems: 3
          maxItems: 3
        interrupt-names:
          minItems: 3
          maxItems: 3
      required:
        - iommus

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sdx55-pcie-ep
    then:
      properties:
        clocks:
          items:
            - description: PCIe Auxiliary clock
@@ -156,10 +228,6 @@ allOf:
            - const: slave_q2a
            - const: sleep
            - const: ref
        interrupts:
          maxItems: 2
        interrupt-names:
          maxItems: 2

  - if:
      properties:
@@ -169,10 +237,6 @@ allOf:
              - qcom,sm8450-pcie-ep
    then:
      properties:
        reg:
          maxItems: 6
        reg-names:
          maxItems: 6
        clocks:
          items:
            - description: PCIe Auxiliary clock
@@ -193,10 +257,6 @@ allOf:
            - const: ref
            - const: ddrss_sf_tbu
            - const: aggre_noc_axi
        interrupts:
          maxItems: 2
        interrupt-names:
          maxItems: 2

  - if:
      properties:
@@ -206,12 +266,6 @@ allOf:
              - qcom,sa8775p-pcie-ep
    then:
      properties:
        reg:
          minItems: 7
          maxItems: 7
        reg-names:
          minItems: 7
          maxItems: 7
        clocks:
          items:
            - description: PCIe Auxiliary clock
@@ -226,12 +280,6 @@ allOf:
            - const: bus_master
            - const: bus_slave
            - const: slave_q2a
        interrupts:
          minItems: 3
          maxItems: 3
        interrupt-names:
          minItems: 3
          maxItems: 3

unevaluatedProperties: false

+5 −0
Original line number Diff line number Diff line
@@ -825,6 +825,10 @@ static const struct pci_epc_features qcom_pcie_epc_features = {
	.msi_capable = true,
	.msix_capable = false,
	.align = SZ_4K,
	.bar[BAR_0] = { .only_64bit = true, },
	.bar[BAR_1] = { .type = BAR_RESERVED, },
	.bar[BAR_2] = { .only_64bit = true, },
	.bar[BAR_3] = { .type = BAR_RESERVED, },
};

static const struct pci_epc_features *
@@ -933,6 +937,7 @@ static const struct of_device_id qcom_pcie_ep_match[] = {
	{ .compatible = "qcom,sa8775p-pcie-ep", .data = &cfg_1_34_0},
	{ .compatible = "qcom,sdx55-pcie-ep", },
	{ .compatible = "qcom,sm8450-pcie-ep", },
	{ .compatible = "qcom,sar2130p-pcie-ep", },
	{ }
};
MODULE_DEVICE_TABLE(of, qcom_pcie_ep_match);