blob: a4a10ce03bfe0c8aac050c50972bf85db6376456 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright 2018-2019 NXP
4 * Dong Aisheng <aisheng.dong@nxp.com>
5 */
6
7#include <dt-bindings/clock/imx8-lpcg.h>
8#include <dt-bindings/firmware/imx/rsrc.h>
9
10conn_axi_clk: clock-conn-axi {
11 compatible = "fixed-clock";
12 #clock-cells = <0>;
13 clock-frequency = <333333333>;
14 clock-output-names = "conn_axi_clk";
15};
16
17conn_ahb_clk: clock-conn-ahb {
18 compatible = "fixed-clock";
19 #clock-cells = <0>;
20 clock-frequency = <166666666>;
21 clock-output-names = "conn_ahb_clk";
22};
23
24conn_ipg_clk: clock-conn-ipg {
25 compatible = "fixed-clock";
26 #clock-cells = <0>;
27 clock-frequency = <83333333>;
28 clock-output-names = "conn_ipg_clk";
29};
30
Tom Rini6b642ac2024-10-01 12:20:28 -060031conn_bch_clk: clock-conn-bch {
32 compatible = "fixed-clock";
33 #clock-cells = <0>;
34 clock-frequency = <400000000>;
35 clock-output-names = "conn_bch_clk";
36};
37
Tom Rini53633a82024-02-29 12:33:36 -050038conn_subsys: bus@5b000000 {
39 compatible = "simple-bus";
40 #address-cells = <1>;
41 #size-cells = <1>;
42 ranges = <0x5b000000 0x0 0x5b000000 0x1000000>;
43
44 usbotg1: usb@5b0d0000 {
45 compatible = "fsl,imx7ulp-usb", "fsl,imx6ul-usb", "fsl,imx27-usb";
46 reg = <0x5b0d0000 0x200>;
47 interrupt-parent = <&gic>;
48 interrupts = <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>;
49 fsl,usbphy = <&usbphy1>;
50 fsl,usbmisc = <&usbmisc1 0>;
Tom Rini6bb92fc2024-05-20 09:54:58 -060051 clocks = <&usb2_lpcg IMX_LPCG_CLK_6>;
Tom Rini53633a82024-02-29 12:33:36 -050052 ahb-burst-config = <0x0>;
53 tx-burst-size-dword = <0x10>;
54 rx-burst-size-dword = <0x10>;
55 power-domains = <&pd IMX_SC_R_USB_0>;
56 status = "disabled";
57 };
58
59 usbmisc1: usbmisc@5b0d0200 {
60 #index-cells = <1>;
61 compatible = "fsl,imx7ulp-usbmisc", "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
62 reg = <0x5b0d0200 0x200>;
63 };
64
65 usbphy1: usbphy@5b100000 {
66 compatible = "fsl,imx7ulp-usbphy";
67 reg = <0x5b100000 0x1000>;
Tom Rini6bb92fc2024-05-20 09:54:58 -060068 clocks = <&usb2_lpcg IMX_LPCG_CLK_7>;
Tom Rini53633a82024-02-29 12:33:36 -050069 power-domains = <&pd IMX_SC_R_USB_0_PHY>;
70 status = "disabled";
71 };
72
73 usdhc1: mmc@5b010000 {
74 interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>;
75 reg = <0x5b010000 0x10000>;
76 clocks = <&sdhc0_lpcg IMX_LPCG_CLK_4>,
Tom Rini6bb92fc2024-05-20 09:54:58 -060077 <&sdhc0_lpcg IMX_LPCG_CLK_5>,
78 <&sdhc0_lpcg IMX_LPCG_CLK_0>;
Tom Rini53633a82024-02-29 12:33:36 -050079 clock-names = "ipg", "ahb", "per";
80 power-domains = <&pd IMX_SC_R_SDHC_0>;
81 status = "disabled";
82 };
83
84 usdhc2: mmc@5b020000 {
85 interrupts = <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH>;
86 reg = <0x5b020000 0x10000>;
87 clocks = <&sdhc1_lpcg IMX_LPCG_CLK_4>,
Tom Rini6bb92fc2024-05-20 09:54:58 -060088 <&sdhc1_lpcg IMX_LPCG_CLK_5>,
89 <&sdhc1_lpcg IMX_LPCG_CLK_0>;
Tom Rini53633a82024-02-29 12:33:36 -050090 clock-names = "ipg", "ahb", "per";
91 power-domains = <&pd IMX_SC_R_SDHC_1>;
92 fsl,tuning-start-tap = <20>;
93 fsl,tuning-step = <2>;
94 status = "disabled";
95 };
96
97 usdhc3: mmc@5b030000 {
98 interrupts = <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH>;
99 reg = <0x5b030000 0x10000>;
100 clocks = <&sdhc2_lpcg IMX_LPCG_CLK_4>,
Tom Rini6bb92fc2024-05-20 09:54:58 -0600101 <&sdhc2_lpcg IMX_LPCG_CLK_5>,
102 <&sdhc2_lpcg IMX_LPCG_CLK_0>;
Tom Rini53633a82024-02-29 12:33:36 -0500103 clock-names = "ipg", "ahb", "per";
104 power-domains = <&pd IMX_SC_R_SDHC_2>;
105 status = "disabled";
106 };
107
108 fec1: ethernet@5b040000 {
109 reg = <0x5b040000 0x10000>;
110 interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>,
111 <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
112 <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>,
113 <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>;
114 clocks = <&enet0_lpcg IMX_LPCG_CLK_4>,
115 <&enet0_lpcg IMX_LPCG_CLK_2>,
116 <&enet0_lpcg IMX_LPCG_CLK_3>,
117 <&enet0_lpcg IMX_LPCG_CLK_0>;
118 clock-names = "ipg", "ahb", "enet_clk_ref", "ptp";
119 assigned-clocks = <&clk IMX_SC_R_ENET_0 IMX_SC_PM_CLK_PER>,
120 <&clk IMX_SC_R_ENET_0 IMX_SC_C_CLKDIV>;
121 assigned-clock-rates = <250000000>, <125000000>;
122 fsl,num-tx-queues = <3>;
123 fsl,num-rx-queues = <3>;
124 power-domains = <&pd IMX_SC_R_ENET_0>;
125 status = "disabled";
126 };
127
128 fec2: ethernet@5b050000 {
129 reg = <0x5b050000 0x10000>;
130 interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
131 <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
132 <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
133 <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>;
134 clocks = <&enet1_lpcg IMX_LPCG_CLK_4>,
135 <&enet1_lpcg IMX_LPCG_CLK_2>,
136 <&enet1_lpcg IMX_LPCG_CLK_3>,
137 <&enet1_lpcg IMX_LPCG_CLK_0>;
138 clock-names = "ipg", "ahb", "enet_clk_ref", "ptp";
139 assigned-clocks = <&clk IMX_SC_R_ENET_1 IMX_SC_PM_CLK_PER>,
140 <&clk IMX_SC_R_ENET_1 IMX_SC_C_CLKDIV>;
141 assigned-clock-rates = <250000000>, <125000000>;
142 fsl,num-tx-queues = <3>;
143 fsl,num-rx-queues = <3>;
144 power-domains = <&pd IMX_SC_R_ENET_1>;
145 status = "disabled";
146 };
147
148 usbotg3: usb@5b110000 {
149 compatible = "fsl,imx8qm-usb3";
150 reg = <0x5b110000 0x10000>;
151 #address-cells = <1>;
152 #size-cells = <1>;
153 ranges;
154 clocks = <&usb3_lpcg IMX_LPCG_CLK_1>,
155 <&usb3_lpcg IMX_LPCG_CLK_0>,
156 <&usb3_lpcg IMX_LPCG_CLK_7>,
157 <&usb3_lpcg IMX_LPCG_CLK_4>,
158 <&usb3_lpcg IMX_LPCG_CLK_5>;
159 clock-names = "lpm", "bus", "aclk", "ipg", "core";
160 assigned-clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>;
161 assigned-clock-rates = <250000000>;
162 power-domains = <&pd IMX_SC_R_USB_2>;
163 status = "disabled";
164
165 usbotg3_cdns3: usb@5b120000 {
166 compatible = "cdns,usb3";
167 reg = <0x5b120000 0x10000>, /* memory area for OTG/DRD registers */
168 <0x5b130000 0x10000>, /* memory area for HOST registers */
169 <0x5b140000 0x10000>; /* memory area for DEVICE registers */
170 reg-names = "otg", "xhci", "dev";
171 interrupt-parent = <&gic>;
172 interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>,
173 <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>,
174 <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>,
175 <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>;
176 interrupt-names = "host", "peripheral", "otg", "wakeup";
177 phys = <&usb3_phy>;
178 phy-names = "cdns3,usb3-phy";
179 cdns,on-chip-buff-size = /bits/ 16 <18>;
180 status = "disabled";
181 };
182 };
183
184 usb3_phy: usb-phy@5b160000 {
185 compatible = "nxp,salvo-phy";
186 reg = <0x5b160000 0x40000>;
187 clocks = <&usb3_lpcg IMX_LPCG_CLK_6>;
188 clock-names = "salvo_phy_clk";
189 power-domains = <&pd IMX_SC_R_USB_2_PHY>;
190 #phy-cells = <0>;
191 status = "disabled";
192 };
193
194 /* LPCG clocks */
195 sdhc0_lpcg: clock-controller@5b200000 {
196 compatible = "fsl,imx8qxp-lpcg";
197 reg = <0x5b200000 0x10000>;
198 #clock-cells = <1>;
199 clocks = <&clk IMX_SC_R_SDHC_0 IMX_SC_PM_CLK_PER>,
200 <&conn_ipg_clk>, <&conn_axi_clk>;
201 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>,
202 <IMX_LPCG_CLK_5>;
203 clock-output-names = "sdhc0_lpcg_per_clk",
204 "sdhc0_lpcg_ipg_clk",
205 "sdhc0_lpcg_ahb_clk";
206 power-domains = <&pd IMX_SC_R_SDHC_0>;
207 };
208
209 sdhc1_lpcg: clock-controller@5b210000 {
210 compatible = "fsl,imx8qxp-lpcg";
211 reg = <0x5b210000 0x10000>;
212 #clock-cells = <1>;
213 clocks = <&clk IMX_SC_R_SDHC_1 IMX_SC_PM_CLK_PER>,
214 <&conn_ipg_clk>, <&conn_axi_clk>;
215 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>,
216 <IMX_LPCG_CLK_5>;
217 clock-output-names = "sdhc1_lpcg_per_clk",
218 "sdhc1_lpcg_ipg_clk",
219 "sdhc1_lpcg_ahb_clk";
220 power-domains = <&pd IMX_SC_R_SDHC_1>;
221 };
222
223 sdhc2_lpcg: clock-controller@5b220000 {
224 compatible = "fsl,imx8qxp-lpcg";
225 reg = <0x5b220000 0x10000>;
226 #clock-cells = <1>;
227 clocks = <&clk IMX_SC_R_SDHC_2 IMX_SC_PM_CLK_PER>,
228 <&conn_ipg_clk>, <&conn_axi_clk>;
229 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>,
230 <IMX_LPCG_CLK_5>;
231 clock-output-names = "sdhc2_lpcg_per_clk",
232 "sdhc2_lpcg_ipg_clk",
233 "sdhc2_lpcg_ahb_clk";
234 power-domains = <&pd IMX_SC_R_SDHC_2>;
235 };
236
237 enet0_lpcg: clock-controller@5b230000 {
238 compatible = "fsl,imx8qxp-lpcg";
239 reg = <0x5b230000 0x10000>;
240 #clock-cells = <1>;
241 clocks = <&clk IMX_SC_R_ENET_0 IMX_SC_PM_CLK_PER>,
242 <&clk IMX_SC_R_ENET_0 IMX_SC_PM_CLK_PER>,
243 <&conn_axi_clk>,
244 <&clk IMX_SC_R_ENET_0 IMX_SC_C_TXCLK>,
245 <&conn_ipg_clk>,
246 <&conn_ipg_clk>;
247 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>,
248 <IMX_LPCG_CLK_2>, <IMX_LPCG_CLK_3>,
249 <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>;
250 clock-output-names = "enet0_lpcg_timer_clk",
251 "enet0_lpcg_txc_sampling_clk",
252 "enet0_lpcg_ahb_clk",
253 "enet0_lpcg_rgmii_txc_clk",
254 "enet0_lpcg_ipg_clk",
255 "enet0_lpcg_ipg_s_clk";
256 power-domains = <&pd IMX_SC_R_ENET_0>;
257 };
258
259 enet1_lpcg: clock-controller@5b240000 {
260 compatible = "fsl,imx8qxp-lpcg";
261 reg = <0x5b240000 0x10000>;
262 #clock-cells = <1>;
263 clocks = <&clk IMX_SC_R_ENET_1 IMX_SC_PM_CLK_PER>,
264 <&clk IMX_SC_R_ENET_1 IMX_SC_PM_CLK_PER>,
265 <&conn_axi_clk>,
266 <&clk IMX_SC_R_ENET_1 IMX_SC_C_TXCLK>,
267 <&conn_ipg_clk>,
268 <&conn_ipg_clk>;
269 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>,
270 <IMX_LPCG_CLK_2>, <IMX_LPCG_CLK_3>,
271 <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>;
272 clock-output-names = "enet1_lpcg_timer_clk",
273 "enet1_lpcg_txc_sampling_clk",
274 "enet1_lpcg_ahb_clk",
275 "enet1_lpcg_rgmii_txc_clk",
276 "enet1_lpcg_ipg_clk",
277 "enet1_lpcg_ipg_s_clk";
278 power-domains = <&pd IMX_SC_R_ENET_1>;
279 };
280
281 usb2_lpcg: clock-controller@5b270000 {
282 compatible = "fsl,imx8qxp-lpcg";
283 reg = <0x5b270000 0x10000>;
284 #clock-cells = <1>;
285 clocks = <&conn_ahb_clk>, <&conn_ipg_clk>;
286 clock-indices = <IMX_LPCG_CLK_6>, <IMX_LPCG_CLK_7>;
287 clock-output-names = "usboh3_ahb_clk", "usboh3_phy_ipg_clk";
288 power-domains = <&pd IMX_SC_R_USB_0_PHY>;
289 };
290
291 usb3_lpcg: clock-controller@5b280000 {
292 compatible = "fsl,imx8qxp-lpcg";
293 reg = <0x5b280000 0x10000>;
294 #clock-cells = <1>;
295 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>,
296 <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>,
297 <IMX_LPCG_CLK_6>, <IMX_LPCG_CLK_7>;
298 clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>,
299 <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>,
300 <&conn_ipg_clk>,
301 <&conn_ipg_clk>,
302 <&conn_ipg_clk>,
303 <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>;
304 clock-output-names = "usb3_app_clk",
305 "usb3_lpm_clk",
306 "usb3_ipg_clk",
307 "usb3_core_pclk",
308 "usb3_phy_clk",
309 "usb3_aclk";
310 power-domains = <&pd IMX_SC_R_USB_2_PHY>;
311 };
Tom Rini6b642ac2024-10-01 12:20:28 -0600312
313 rawnand_0_lpcg: clock-controller@5b290000 {
314 compatible = "fsl,imx8qxp-lpcg";
315 reg = <0x5b290000 0x4>;
316 #clock-cells = <1>;
317 clocks = <&clk IMX_SC_R_NAND IMX_SC_PM_CLK_PER>,
318 <&clk IMX_SC_R_NAND IMX_SC_PM_CLK_MST_BUS>,
319 <&conn_axi_clk>,
320 <&conn_axi_clk>;
321 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>,
322 <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>;
323 clock-output-names = "gpmi_bch",
324 "gpmi_io",
325 "gpmi_apb",
326 "gpmi_bch_apb";
327 power-domains = <&pd IMX_SC_R_NAND>;
328 };
329
330 rawnand_4_lpcg: clock-controller@5b290004 {
331 compatible = "fsl,imx8qxp-lpcg";
332 reg = <0x5b290004 0x10000>;
333 #clock-cells = <1>;
334 clocks = <&conn_axi_clk>;
335 clock-indices = <IMX_LPCG_CLK_4>;
336 clock-output-names = "apbhdma_hclk";
337 power-domains = <&pd IMX_SC_R_NAND>;
338 };
339
340 dma_apbh: dma-controller@5b810000 {
341 compatible = "fsl,imx8qxp-dma-apbh", "fsl,imx28-dma-apbh";
342 reg = <0x5b810000 0x2000>;
343 interrupts = <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>,
344 <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>,
345 <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>,
346 <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>;
347 #dma-cells = <1>;
348 dma-channels = <4>;
349 clocks = <&rawnand_4_lpcg IMX_LPCG_CLK_0>;
350 power-domains = <&pd IMX_SC_R_NAND>;
351 };
352
353 gpmi: nand-controller@5b812000{
354 compatible = "fsl,imx8qxp-gpmi-nand";
355 reg = <0x5b812000 0x2000>, <0x5b814000 0x2000>;
356 reg-names = "gpmi-nand", "bch";
357 #address-cells = <1>;
358 #size-cells = <0>;
359 interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
360 interrupt-names = "bch";
361 clocks = <&rawnand_0_lpcg IMX_LPCG_CLK_1>,
362 <&rawnand_0_lpcg IMX_LPCG_CLK_4>,
363 <&rawnand_0_lpcg IMX_LPCG_CLK_0>,
364 <&rawnand_0_lpcg IMX_LPCG_CLK_5>;
365 clock-names = "gpmi_io", "gpmi_apb",
366 "gpmi_bch", "gpmi_bch_apb";
367 dmas = <&dma_apbh 0>;
368 dma-names = "rx-tx";
369 power-domains = <&pd IMX_SC_R_NAND>;
370 assigned-clocks = <&clk IMX_SC_R_NAND IMX_SC_PM_CLK_MST_BUS>;
371 assigned-clock-rates = <50000000>;
372 status = "disabled";
373 };
Tom Rini53633a82024-02-29 12:33:36 -0500374};