blob: a8b34f58f8f49520e8c7bd6c900ad499c5cbba94 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/pci/fsl,imx6q-pcie-common.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Freescale i.MX6 PCIe RC/EP controller
8
9maintainers:
10 - Lucas Stach <l.stach@pengutronix.de>
11 - Richard Zhu <hongxing.zhu@nxp.com>
12
13description:
14 Generic Freescale i.MX PCIe Root Port and Endpoint controller
15 properties.
16
17properties:
18 clocks:
19 minItems: 3
20 maxItems: 4
21
22 clock-names:
23 minItems: 3
24 maxItems: 4
25
26 num-lanes:
27 const: 1
28
29 fsl,imx7d-pcie-phy:
30 $ref: /schemas/types.yaml#/definitions/phandle
31 description: A phandle to an fsl,imx7d-pcie-phy node. Additional
32 required properties for imx7d-pcie, imx7d-pcie-ep, imx8mq-pcie,
33 and imx8mq-pcie-ep.
34
35 power-domains:
36 minItems: 1
37 items:
38 - description: The phandle pointing to the DISPLAY domain for
39 imx6sx-pcie, imx6sx-pcie-ep, to PCIE_PHY power domain for
40 imx7d-pcie, imx7d-pcie-ep, imx8mq-pcie and imx8mq-pcie-ep.
41 - description: The phandle pointing to the PCIE_PHY power domains
42 for imx6sx-pcie and imx6sx-pcie-ep.
43
44 power-domain-names:
45 minItems: 1
46 items:
47 - const: pcie
48 - const: pcie_phy
49
50 resets:
51 minItems: 2
52 maxItems: 3
53 description: Phandles to PCIe-related reset lines exposed by SRC
54 IP block. Additional required by imx7d-pcie, imx7d-pcie-ep,
55 imx8mq-pcie, and imx8mq-pcie-ep.
56
57 reset-names:
58 minItems: 2
59 maxItems: 3
60
61 fsl,tx-deemph-gen1:
62 description: Gen1 De-emphasis value (optional required).
63 $ref: /schemas/types.yaml#/definitions/uint32
64 default: 0
65
66 fsl,tx-deemph-gen2-3p5db:
67 description: Gen2 (3.5db) De-emphasis value (optional required).
68 $ref: /schemas/types.yaml#/definitions/uint32
69 default: 0
70
71 fsl,tx-deemph-gen2-6db:
72 description: Gen2 (6db) De-emphasis value (optional required).
73 $ref: /schemas/types.yaml#/definitions/uint32
74 default: 20
75
76 fsl,tx-swing-full:
77 description: Gen2 TX SWING FULL value (optional required).
78 $ref: /schemas/types.yaml#/definitions/uint32
79 default: 127
80
81 fsl,tx-swing-low:
82 description: TX launch amplitude swing_low value (optional required).
83 $ref: /schemas/types.yaml#/definitions/uint32
84 default: 127
85
86 fsl,max-link-speed:
87 description: Specify PCI Gen for link capability (optional required).
88 Note that the IMX6 LVDS clock outputs do not meet gen2 jitter
89 requirements and thus for gen2 capability a gen2 compliant clock
90 generator should be used and configured.
91 $ref: /schemas/types.yaml#/definitions/uint32
92 enum: [1, 2, 3, 4]
93 default: 1
94
95 phys:
96 maxItems: 1
97
98 phy-names:
99 const: pcie-phy
100
101 vpcie-supply:
102 description: Should specify the regulator in charge of PCIe port power.
103 The regulator will be enabled when initializing the PCIe host and
104 disabled either as part of the init process or when shutting down
105 the host (optional required).
106
107 vph-supply:
108 description: Should specify the regulator in charge of VPH one of
109 the three PCIe PHY powers. This regulator can be supplied by both
110 1.8v and 3.3v voltage supplies (optional required).
111
112required:
113 - clocks
114 - clock-names
115 - num-lanes
116
117allOf:
118 - if:
119 properties:
120 compatible:
121 contains:
122 enum:
123 - fsl,imx6sx-pcie
124 - fsl,imx6sx-pcie-ep
125 then:
126 properties:
127 clock-names:
128 items:
129 - {}
130 - {}
131 - const: pcie_phy
132 - const: pcie_inbound_axi
133 power-domains:
134 minItems: 2
135 power-domain-names:
136 minItems: 2
137
138 - if:
139 properties:
140 compatible:
141 contains:
142 enum:
143 - fsl,imx8mq-pcie
144 - fsl,imx8mq-pcie-ep
145 then:
146 properties:
147 clock-names:
148 items:
149 - {}
150 - {}
151 - const: pcie_phy
152 - const: pcie_aux
Tom Rini53633a82024-02-29 12:33:36 -0500153
154 - if:
155 properties:
156 compatible:
157 contains:
158 enum:
159 - fsl,imx6q-pcie
160 - fsl,imx6qp-pcie
161 - fsl,imx7d-pcie
162 - fsl,imx6q-pcie-ep
163 - fsl,imx6qp-pcie-ep
164 - fsl,imx7d-pcie-ep
165 then:
166 properties:
167 clock-names:
168 maxItems: 3
169 contains:
170 const: pcie_phy
171
172 - if:
173 properties:
174 compatible:
175 contains:
176 enum:
177 - fsl,imx8mm-pcie
178 - fsl,imx8mp-pcie
179 - fsl,imx8mm-pcie-ep
180 - fsl,imx8mp-pcie-ep
181 then:
182 properties:
183 clock-names:
184 maxItems: 3
185 contains:
186 const: pcie_aux
187 - if:
188 properties:
189 compatible:
190 contains:
191 enum:
192 - fsl,imx6q-pcie
193 - fsl,imx6qp-pcie
194 - fsl,imx6q-pcie-ep
195 - fsl,imx6qp-pcie-ep
196 then:
197 properties:
198 power-domains: false
199 power-domain-names: false
200
201 - if:
202 not:
203 properties:
204 compatible:
205 contains:
206 enum:
207 - fsl,imx6sx-pcie
208 - fsl,imx6q-pcie
209 - fsl,imx6qp-pcie
Tom Rini6bb92fc2024-05-20 09:54:58 -0600210 - fsl,imx95-pcie
Tom Rini53633a82024-02-29 12:33:36 -0500211 - fsl,imx6sx-pcie-ep
212 - fsl,imx6q-pcie-ep
213 - fsl,imx6qp-pcie-ep
214 then:
215 properties:
216 power-domains:
217 maxItems: 1
218 power-domain-names: false
219
220 - if:
221 properties:
222 compatible:
223 contains:
224 enum:
225 - fsl,imx6q-pcie
226 - fsl,imx6sx-pcie
227 - fsl,imx6qp-pcie
228 - fsl,imx7d-pcie
229 - fsl,imx8mq-pcie
230 - fsl,imx6q-pcie-ep
231 - fsl,imx6sx-pcie-ep
232 - fsl,imx6qp-pcie-ep
233 - fsl,imx7d-pcie-ep
234 - fsl,imx8mq-pcie-ep
235 then:
236 properties:
237 resets:
238 minItems: 3
239 reset-names:
240 items:
241 - const: pciephy
242 - const: apps
243 - const: turnoff
244 else:
245 properties:
246 resets:
247 maxItems: 2
248 reset-names:
249 items:
250 - const: apps
251 - const: turnoff
252
253additionalProperties: true
254
255...