@@ -17,6 +17,10 @@ description: |
1717 implements its root ports. But the ATU found on most DesignWare
1818 PCIe host bridges is absent.
1919
20+ On systems derived from T602x, the PHY registers are in a region
21+ separate from the port registers. In that case, there is one PHY
22+ register range per port register range.
23+
2024 All root ports share a single ECAM space, but separate GPIOs are
2125 used to take the PCI devices on those ports out of reset. Therefore
2226 the standard "reset-gpios" and "max-link-speed" properties appear on
@@ -35,11 +39,12 @@ properties:
3539 - apple,t8103-pcie
3640 - apple,t8112-pcie
3741 - apple,t6000-pcie
42+ - apple,t6020-pcie
3843 - const : apple,pcie
3944
4045 reg :
4146 minItems : 3
42- maxItems : 6
47+ maxItems : 10
4348
4449 reg-names :
4550 minItems : 3
@@ -50,6 +55,10 @@ properties:
5055 - const : port1
5156 - const : port2
5257 - const : port3
58+ - const : phy0
59+ - const : phy1
60+ - const : phy2
61+ - const : phy3
5362
5463 ranges :
5564 minItems : 2
@@ -72,6 +81,27 @@ properties:
7281 power-domains :
7382 maxItems : 1
7483
84+ patternProperties :
85+ " ^pci@ " :
86+ $ref : /schemas/pci/pci-bus.yaml#
87+ type : object
88+ description : A single PCI root port
89+
90+ properties :
91+ reg :
92+ maxItems : 1
93+
94+ pwren-gpios :
95+ description : Optional GPIO to power on the device
96+ maxItems : 1
97+
98+ required :
99+ - reset-gpios
100+ - interrupt-controller
101+ - " #interrupt-cells"
102+ - interrupt-map-mask
103+ - interrupt-map
104+
75105required :
76106 - compatible
77107 - reg
@@ -142,34 +172,58 @@ examples:
142172 pinctrl-0 = <&pcie_pins>;
143173 pinctrl-names = "default";
144174
145- pci@0,0 {
175+ port00: pci@0,0 {
146176 device_type = "pci";
147177 reg = <0x0 0x0 0x0 0x0 0x0>;
148178 reset-gpios = <&pinctrl_ap 152 0>;
149179
150180 #address-cells = <3>;
151181 #size-cells = <2>;
152182 ranges;
183+
184+ interrupt-controller;
185+ #interrupt-cells = <1>;
186+ interrupt-map-mask = <0 0 0 7>;
187+ interrupt-map = <0 0 0 1 &port00 0 0 0 0>,
188+ <0 0 0 2 &port00 0 0 0 1>,
189+ <0 0 0 3 &port00 0 0 0 2>,
190+ <0 0 0 4 &port00 0 0 0 3>;
153191 };
154192
155- pci@1,0 {
193+ port01: pci@1,0 {
156194 device_type = "pci";
157195 reg = <0x800 0x0 0x0 0x0 0x0>;
158196 reset-gpios = <&pinctrl_ap 153 0>;
159197
160198 #address-cells = <3>;
161199 #size-cells = <2>;
162200 ranges;
201+
202+ interrupt-controller;
203+ #interrupt-cells = <1>;
204+ interrupt-map-mask = <0 0 0 7>;
205+ interrupt-map = <0 0 0 1 &port01 0 0 0 0>,
206+ <0 0 0 2 &port01 0 0 0 1>,
207+ <0 0 0 3 &port01 0 0 0 2>,
208+ <0 0 0 4 &port01 0 0 0 3>;
163209 };
164210
165- pci@2,0 {
211+ port02: pci@2,0 {
166212 device_type = "pci";
167213 reg = <0x1000 0x0 0x0 0x0 0x0>;
168214 reset-gpios = <&pinctrl_ap 33 0>;
169215
170216 #address-cells = <3>;
171217 #size-cells = <2>;
172218 ranges;
219+
220+ interrupt-controller;
221+ #interrupt-cells = <1>;
222+ interrupt-map-mask = <0 0 0 7>;
223+ interrupt-map = <0 0 0 1 &port02 0 0 0 0>,
224+ <0 0 0 2 &port02 0 0 0 1>,
225+ <0 0 0 3 &port02 0 0 0 2>,
226+ <0 0 0 4 &port02 0 0 0 3>;
173227 };
174228 };
175229 };
0 commit comments