Skip to content

Commit e302baf

Browse files
committed
Merge branch 'pci/qcom'
- List platforms that use a single MSI host interrupt in qcom DT (Johan Hovold) - Add SC8280XP, SA8540P support to qcom DT binding and driver(Johan Hovold) - Make all optional clocks truly optional in the driver (Johan Hovold) - Rename per-IP structs to reflect the IP version (Johan Hovold) - Sort device ID match table by compatible string (Johan Hovold) - Add MODULE_DEVICE_TABLE to enable module autoloading (Dmitry Baryshkov) - Drop the unused .post_deinit() callback (Johan Hovold) - Rely on DT for clock information instead of hard-coding it in the driver (Manivannan Sadhasivam) - Disable IRQs when removing driver to avoid spurious IRQs later (Manivannan Sadhasivam) - Expose link transition counts via debugfs to help debug issues with low-power states (Manivannan Sadhasivam) - Gate Master AXI clock to the MHI bus while in L1 substates to save power (Manivannan Sadhasivam) - Disable Master AXI clock to save power when there is no traffic on PCIe (Manivannan Sadhasivam) - Make the "PERST separation" debug feature optional in the DT and the driver (Manivannan Sadhasivam) - Define clocks to be per-platform in DT to prepare for future SoCs (Manivannan Sadhasivam) - Add SM8450 SoC support (Manivannan Sadhasivam) - Check for platform_get_resource_byname() to avoid a NULL pointer dereference (Yang Yingliang) * pci/qcom: PCI: qcom-ep: Check platform_get_resource_byname() return value PCI: qcom-ep: Add support for SM8450 SoC dt-bindings: PCI: qcom-ep: Add support for SM8450 SoC dt-bindings: PCI: qcom-ep: Define clocks per platform PCI: qcom-ep: Make PERST separation optional dt-bindings: PCI: qcom-ep: Make PERST separation optional PCI: qcom-ep: Disable Master AXI Clock when there is no PCIe traffic PCI: qcom-ep: Gate Master AXI clock to MHI bus during L1SS PCI: qcom-ep: Expose link transition counts via debugfs PCI: qcom-ep: Disable IRQs during driver remove PCI: qcom-ep: Make use of the cached dev pointer PCI: qcom-ep: Rely on the clocks supplied by devicetree PCI: qcom-ep: Add kernel-doc for qcom_pcie_ep structure PCI: qcom: Rename host-init error label PCI: qcom: Drop unused post_deinit callback PCI: qcom-ep: Add MODULE_DEVICE_TABLE PCI: qcom: Sort device-id table PCI: qcom: Clean up IP configurations PCI: qcom: Make all optional clocks optional PCI: qcom: Add support for SA8540P PCI: qcom: Add support for SC8280XP dt-bindings: PCI: qcom: Add SA8540P to binding dt-bindings: PCI: qcom: Add SC8280XP to binding dt-bindings: PCI: qcom: Enumerate platforms with single msi interrupt
2 parents fba236f + 94f0b95 commit e302baf

File tree

4 files changed

+312
-136
lines changed

4 files changed

+312
-136
lines changed

Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml

Lines changed: 65 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,11 @@ title: Qualcomm PCIe Endpoint Controller binding
99
maintainers:
1010
- Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
1111

12-
allOf:
13-
- $ref: "pci-ep.yaml#"
14-
1512
properties:
1613
compatible:
17-
const: qcom,sdx55-pcie-ep
14+
enum:
15+
- qcom,sdx55-pcie-ep
16+
- qcom,sm8450-pcie-ep
1817

1918
reg:
2019
items:
@@ -35,24 +34,12 @@ properties:
3534
- const: mmio
3635

3736
clocks:
38-
items:
39-
- description: PCIe Auxiliary clock
40-
- description: PCIe CFG AHB clock
41-
- description: PCIe Master AXI clock
42-
- description: PCIe Slave AXI clock
43-
- description: PCIe Slave Q2A AXI clock
44-
- description: PCIe Sleep clock
45-
- description: PCIe Reference clock
37+
minItems: 7
38+
maxItems: 8
4639

4740
clock-names:
48-
items:
49-
- const: aux
50-
- const: cfg
51-
- const: bus_master
52-
- const: bus_slave
53-
- const: slave_q2a
54-
- const: sleep
55-
- const: ref
41+
minItems: 7
42+
maxItems: 8
5643

5744
qcom,perst-regs:
5845
description: Reference to a syscon representing TCSR followed by the two
@@ -105,14 +92,71 @@ required:
10592
- reg-names
10693
- clocks
10794
- clock-names
108-
- qcom,perst-regs
10995
- interrupts
11096
- interrupt-names
11197
- reset-gpios
11298
- resets
11399
- reset-names
114100
- power-domains
115101

102+
allOf:
103+
- $ref: pci-ep.yaml#
104+
- if:
105+
properties:
106+
compatible:
107+
contains:
108+
enum:
109+
- qcom,sdx55-pcie-ep
110+
then:
111+
properties:
112+
clocks:
113+
items:
114+
- description: PCIe Auxiliary clock
115+
- description: PCIe CFG AHB clock
116+
- description: PCIe Master AXI clock
117+
- description: PCIe Slave AXI clock
118+
- description: PCIe Slave Q2A AXI clock
119+
- description: PCIe Sleep clock
120+
- description: PCIe Reference clock
121+
clock-names:
122+
items:
123+
- const: aux
124+
- const: cfg
125+
- const: bus_master
126+
- const: bus_slave
127+
- const: slave_q2a
128+
- const: sleep
129+
- const: ref
130+
131+
- if:
132+
properties:
133+
compatible:
134+
contains:
135+
enum:
136+
- qcom,sm8450-pcie-ep
137+
then:
138+
properties:
139+
clocks:
140+
items:
141+
- description: PCIe Auxiliary clock
142+
- description: PCIe CFG AHB clock
143+
- description: PCIe Master AXI clock
144+
- description: PCIe Slave AXI clock
145+
- description: PCIe Slave Q2A AXI clock
146+
- description: PCIe Reference clock
147+
- description: PCIe DDRSS SF TBU clock
148+
- description: PCIe AGGRE NOC AXI clock
149+
clock-names:
150+
items:
151+
- const: aux
152+
- const: cfg
153+
- const: bus_master
154+
- const: bus_slave
155+
- const: slave_q2a
156+
- const: ref
157+
- const: ddrss_sf_tbu
158+
- const: aggre_noc_axi
159+
116160
unevaluatedProperties: false
117161

118162
examples:

Documentation/devicetree/bindings/pci/qcom,pcie.yaml

Lines changed: 67 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,10 @@ properties:
2525
- qcom,pcie-ipq4019
2626
- qcom,pcie-ipq8074
2727
- qcom,pcie-qcs404
28+
- qcom,pcie-sa8540p
2829
- qcom,pcie-sc7280
2930
- qcom,pcie-sc8180x
31+
- qcom,pcie-sc8280xp
3032
- qcom,pcie-sdm845
3133
- qcom,pcie-sm8150
3234
- qcom,pcie-sm8250
@@ -181,6 +183,7 @@ allOf:
181183
enum:
182184
- qcom,pcie-sc7280
183185
- qcom,pcie-sc8180x
186+
- qcom,pcie-sc8280xp
184187
- qcom,pcie-sm8250
185188
- qcom,pcie-sm8450-pcie0
186189
- qcom,pcie-sm8450-pcie1
@@ -598,6 +601,36 @@ allOf:
598601
items:
599602
- const: pci # PCIe core reset
600603

604+
- if:
605+
properties:
606+
compatible:
607+
contains:
608+
enum:
609+
- qcom,pcie-sa8540p
610+
- qcom,pcie-sc8280xp
611+
then:
612+
properties:
613+
clocks:
614+
minItems: 8
615+
maxItems: 9
616+
clock-names:
617+
minItems: 8
618+
items:
619+
- const: aux # Auxiliary clock
620+
- const: cfg # Configuration clock
621+
- const: bus_master # Master AXI clock
622+
- const: bus_slave # Slave AXI clock
623+
- const: slave_q2a # Slave Q2A clock
624+
- const: ddrss_sf_tbu # PCIe SF TBU clock
625+
- const: noc_aggr_4 # NoC aggregate 4 clock
626+
- const: noc_aggr_south_sf # NoC aggregate South SF clock
627+
- const: cnoc_qx # Configuration NoC QX clock
628+
resets:
629+
maxItems: 1
630+
reset-names:
631+
items:
632+
- const: pci # PCIe core reset
633+
601634
- if:
602635
not:
603636
properties:
@@ -626,8 +659,6 @@ allOf:
626659
- resets
627660
- reset-names
628661

629-
# Newer chipsets support either 1 or 8 MSI vectors
630-
# On older chipsets it's always 1 MSI vector
631662
- if:
632663
properties:
633664
compatible:
@@ -662,7 +693,40 @@ allOf:
662693
- const: msi5
663694
- const: msi6
664695
- const: msi7
665-
else:
696+
697+
- if:
698+
properties:
699+
compatible:
700+
contains:
701+
enum:
702+
- qcom,pcie-sc8280xp
703+
then:
704+
properties:
705+
interrupts:
706+
minItems: 4
707+
maxItems: 4
708+
interrupt-names:
709+
items:
710+
- const: msi0
711+
- const: msi1
712+
- const: msi2
713+
- const: msi3
714+
715+
- if:
716+
properties:
717+
compatible:
718+
contains:
719+
enum:
720+
- qcom,pcie-apq8064
721+
- qcom,pcie-apq8084
722+
- qcom,pcie-ipq4019
723+
- qcom,pcie-ipq6018
724+
- qcom,pcie-ipq8064
725+
- qcom,pcie-ipq8064-v2
726+
- qcom,pcie-ipq8074
727+
- qcom,pcie-qcs404
728+
- qcom,pcie-sa8540p
729+
then:
666730
properties:
667731
interrupts:
668732
maxItems: 1

0 commit comments

Comments
 (0)