1 // SPDX-License-Identifier: GPL-2.0+
3 * Copyright 2018-2020 NXP
4 * Dong Aisheng <aisheng.dong@nxp.com>
7 #include <dt-bindings/clock/imx8-lpcg.h>
8 #include <dt-bindings/firmware/imx/rsrc.h>
10 lsio_bus_clk: clock-lsio-bus {
11 compatible = "fixed-clock";
13 clock-frequency = <100000000>;
14 clock-output-names = "lsio_bus_clk";
17 lsio_subsys: bus@5d000000 {
18 compatible = "simple-bus";
21 ranges = <0x5d000000 0x0 0x5d000000 0x1000000>,
22 <0x08000000 0x0 0x08000000 0x10000000>;
24 lsio_pwm0: pwm@5d000000 {
25 compatible = "fsl,imx27-pwm";
26 reg = <0x5d000000 0x10000>;
27 clock-names = "ipg", "per";
28 clocks = <&pwm0_lpcg 4>,
30 assigned-clocks = <&clk IMX_SC_R_PWM_0 IMX_SC_PM_CLK_PER>;
31 assigned-clock-rates = <24000000>;
36 lsio_pwm1: pwm@5d010000 {
37 compatible = "fsl,imx27-pwm";
38 reg = <0x5d010000 0x10000>;
39 clock-names = "ipg", "per";
40 clocks = <&pwm1_lpcg 4>,
42 assigned-clocks = <&clk IMX_SC_R_PWM_1 IMX_SC_PM_CLK_PER>;
43 assigned-clock-rates = <24000000>;
48 lsio_pwm2: pwm@5d020000 {
49 compatible = "fsl,imx27-pwm";
50 reg = <0x5d020000 0x10000>;
51 clock-names = "ipg", "per";
52 clocks = <&pwm2_lpcg 4>,
54 assigned-clocks = <&clk IMX_SC_R_PWM_2 IMX_SC_PM_CLK_PER>;
55 assigned-clock-rates = <24000000>;
60 lsio_pwm3: pwm@5d030000 {
61 compatible = "fsl,imx27-pwm";
62 reg = <0x5d030000 0x10000>;
63 clock-names = "ipg", "per";
64 clocks = <&pwm3_lpcg 4>,
66 assigned-clocks = <&clk IMX_SC_R_PWM_3 IMX_SC_PM_CLK_PER>;
67 assigned-clock-rates = <24000000>;
72 lsio_gpio0: gpio@5d080000 {
73 reg = <0x5d080000 0x10000>;
74 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
78 #interrupt-cells = <2>;
79 power-domains = <&pd IMX_SC_R_GPIO_0>;
82 lsio_gpio1: gpio@5d090000 {
83 reg = <0x5d090000 0x10000>;
84 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
88 #interrupt-cells = <2>;
89 power-domains = <&pd IMX_SC_R_GPIO_1>;
92 lsio_gpio2: gpio@5d0a0000 {
93 reg = <0x5d0a0000 0x10000>;
94 interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
98 #interrupt-cells = <2>;
99 power-domains = <&pd IMX_SC_R_GPIO_2>;
102 lsio_gpio3: gpio@5d0b0000 {
103 reg = <0x5d0b0000 0x10000>;
104 interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
107 interrupt-controller;
108 #interrupt-cells = <2>;
109 power-domains = <&pd IMX_SC_R_GPIO_3>;
112 lsio_gpio4: gpio@5d0c0000 {
113 reg = <0x5d0c0000 0x10000>;
114 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
117 interrupt-controller;
118 #interrupt-cells = <2>;
119 power-domains = <&pd IMX_SC_R_GPIO_4>;
122 lsio_gpio5: gpio@5d0d0000 {
123 reg = <0x5d0d0000 0x10000>;
124 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
127 interrupt-controller;
128 #interrupt-cells = <2>;
129 power-domains = <&pd IMX_SC_R_GPIO_5>;
132 lsio_gpio6: gpio@5d0e0000 {
133 reg = <0x5d0e0000 0x10000>;
134 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
137 interrupt-controller;
138 #interrupt-cells = <2>;
139 power-domains = <&pd IMX_SC_R_GPIO_6>;
142 lsio_gpio7: gpio@5d0f0000 {
143 reg = <0x5d0f0000 0x10000>;
144 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
147 interrupt-controller;
148 #interrupt-cells = <2>;
149 power-domains = <&pd IMX_SC_R_GPIO_7>;
152 flexspi0: spi@5d120000 {
153 #address-cells = <1>;
155 compatible = "nxp,imx8qxp-fspi";
156 reg = <0x5d120000 0x10000>, <0x08000000 0x10000000>;
157 reg-names = "fspi_base", "fspi_mmap";
158 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
159 clocks = <&clk IMX_SC_R_FSPI_0 IMX_SC_PM_CLK_PER>,
160 <&clk IMX_SC_R_FSPI_0 IMX_SC_PM_CLK_PER>;
161 clock-names = "fspi_en", "fspi";
162 power-domains = <&pd IMX_SC_R_FSPI_0>;
166 lsio_mu0: mailbox@5d1b0000 {
167 reg = <0x5d1b0000 0x10000>;
168 interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
173 lsio_mu1: mailbox@5d1c0000 {
174 reg = <0x5d1c0000 0x10000>;
175 interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
179 lsio_mu2: mailbox@5d1d0000 {
180 reg = <0x5d1d0000 0x10000>;
181 interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
186 lsio_mu3: mailbox@5d1e0000 {
187 reg = <0x5d1e0000 0x10000>;
188 interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>;
193 lsio_mu4: mailbox@5d1f0000 {
194 reg = <0x5d1f0000 0x10000>;
195 interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
200 lsio_mu5: mailbox@5d200000 {
201 reg = <0x5d200000 0x10000>;
202 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
204 power-domains = <&pd IMX_SC_R_MU_5A>;
208 lsio_mu6: mailbox@5d210000 {
209 reg = <0x5d210000 0x10000>;
210 interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
212 power-domains = <&pd IMX_SC_R_MU_6A>;
216 lsio_mu13: mailbox@5d280000 {
217 reg = <0x5d280000 0x10000>;
218 interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
220 power-domains = <&pd IMX_SC_R_MU_13A>;
224 pwm0_lpcg: clock-controller@5d400000 {
225 compatible = "fsl,imx8qxp-lpcg";
226 reg = <0x5d400000 0x10000>;
228 clocks = <&clk IMX_SC_R_PWM_0 IMX_SC_PM_CLK_PER>,
229 <&clk IMX_SC_R_PWM_0 IMX_SC_PM_CLK_PER>,
230 <&clk IMX_SC_R_PWM_0 IMX_SC_PM_CLK_PER>,
232 <&clk IMX_SC_R_PWM_0 IMX_SC_PM_CLK_PER>;
233 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>,
234 <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>,
236 clock-output-names = "pwm0_lpcg_ipg_clk",
237 "pwm0_lpcg_ipg_hf_clk",
238 "pwm0_lpcg_ipg_s_clk",
239 "pwm0_lpcg_ipg_slv_clk",
240 "pwm0_lpcg_ipg_mstr_clk";
241 power-domains = <&pd IMX_SC_R_PWM_0>;
244 pwm1_lpcg: clock-controller@5d410000 {
245 compatible = "fsl,imx8qxp-lpcg";
246 reg = <0x5d410000 0x10000>;
248 clocks = <&clk IMX_SC_R_PWM_1 IMX_SC_PM_CLK_PER>,
249 <&clk IMX_SC_R_PWM_1 IMX_SC_PM_CLK_PER>,
250 <&clk IMX_SC_R_PWM_1 IMX_SC_PM_CLK_PER>,
252 <&clk IMX_SC_R_PWM_1 IMX_SC_PM_CLK_PER>;
253 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>,
254 <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>,
256 clock-output-names = "pwm1_lpcg_ipg_clk",
257 "pwm1_lpcg_ipg_hf_clk",
258 "pwm1_lpcg_ipg_s_clk",
259 "pwm1_lpcg_ipg_slv_clk",
260 "pwm1_lpcg_ipg_mstr_clk";
261 power-domains = <&pd IMX_SC_R_PWM_1>;
264 pwm2_lpcg: clock-controller@5d420000 {
265 compatible = "fsl,imx8qxp-lpcg";
266 reg = <0x5d420000 0x10000>;
268 clocks = <&clk IMX_SC_R_PWM_2 IMX_SC_PM_CLK_PER>,
269 <&clk IMX_SC_R_PWM_2 IMX_SC_PM_CLK_PER>,
270 <&clk IMX_SC_R_PWM_2 IMX_SC_PM_CLK_PER>,
272 <&clk IMX_SC_R_PWM_2 IMX_SC_PM_CLK_PER>;
273 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>,
274 <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>,
276 clock-output-names = "pwm2_lpcg_ipg_clk",
277 "pwm2_lpcg_ipg_hf_clk",
278 "pwm2_lpcg_ipg_s_clk",
279 "pwm2_lpcg_ipg_slv_clk",
280 "pwm2_lpcg_ipg_mstr_clk";
281 power-domains = <&pd IMX_SC_R_PWM_2>;
284 pwm3_lpcg: clock-controller@5d430000 {
285 compatible = "fsl,imx8qxp-lpcg";
286 reg = <0x5d430000 0x10000>;
288 clocks = <&clk IMX_SC_R_PWM_3 IMX_SC_PM_CLK_PER>,
289 <&clk IMX_SC_R_PWM_3 IMX_SC_PM_CLK_PER>,
290 <&clk IMX_SC_R_PWM_3 IMX_SC_PM_CLK_PER>,
292 <&clk IMX_SC_R_PWM_3 IMX_SC_PM_CLK_PER>;
293 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>,
294 <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>,
296 clock-output-names = "pwm3_lpcg_ipg_clk",
297 "pwm3_lpcg_ipg_hf_clk",
298 "pwm3_lpcg_ipg_s_clk",
299 "pwm3_lpcg_ipg_slv_clk",
300 "pwm3_lpcg_ipg_mstr_clk";
301 power-domains = <&pd IMX_SC_R_PWM_3>;
304 pwm4_lpcg: clock-controller@5d440000 {
305 compatible = "fsl,imx8qxp-lpcg";
306 reg = <0x5d440000 0x10000>;
308 clocks = <&clk IMX_SC_R_PWM_4 IMX_SC_PM_CLK_PER>,
309 <&clk IMX_SC_R_PWM_4 IMX_SC_PM_CLK_PER>,
310 <&clk IMX_SC_R_PWM_4 IMX_SC_PM_CLK_PER>,
312 <&clk IMX_SC_R_PWM_4 IMX_SC_PM_CLK_PER>;
313 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>,
314 <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>,
316 clock-output-names = "pwm4_lpcg_ipg_clk",
317 "pwm4_lpcg_ipg_hf_clk",
318 "pwm4_lpcg_ipg_s_clk",
319 "pwm4_lpcg_ipg_slv_clk",
320 "pwm4_lpcg_ipg_mstr_clk";
321 power-domains = <&pd IMX_SC_R_PWM_4>;
324 pwm5_lpcg: clock-controller@5d450000 {
325 compatible = "fsl,imx8qxp-lpcg";
326 reg = <0x5d450000 0x10000>;
328 clocks = <&clk IMX_SC_R_PWM_5 IMX_SC_PM_CLK_PER>,
329 <&clk IMX_SC_R_PWM_5 IMX_SC_PM_CLK_PER>,
330 <&clk IMX_SC_R_PWM_5 IMX_SC_PM_CLK_PER>,
332 <&clk IMX_SC_R_PWM_5 IMX_SC_PM_CLK_PER>;
333 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>,
334 <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>,
336 clock-output-names = "pwm5_lpcg_ipg_clk",
337 "pwm5_lpcg_ipg_hf_clk",
338 "pwm5_lpcg_ipg_s_clk",
339 "pwm5_lpcg_ipg_slv_clk",
340 "pwm5_lpcg_ipg_mstr_clk";
341 power-domains = <&pd IMX_SC_R_PWM_5>;
344 pwm6_lpcg: clock-controller@5d460000 {
345 compatible = "fsl,imx8qxp-lpcg";
346 reg = <0x5d460000 0x10000>;
348 clocks = <&clk IMX_SC_R_PWM_6 IMX_SC_PM_CLK_PER>,
349 <&clk IMX_SC_R_PWM_6 IMX_SC_PM_CLK_PER>,
350 <&clk IMX_SC_R_PWM_6 IMX_SC_PM_CLK_PER>,
352 <&clk IMX_SC_R_PWM_6 IMX_SC_PM_CLK_PER>;
353 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>,
354 <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>,
356 clock-output-names = "pwm6_lpcg_ipg_clk",
357 "pwm6_lpcg_ipg_hf_clk",
358 "pwm6_lpcg_ipg_s_clk",
359 "pwm6_lpcg_ipg_slv_clk",
360 "pwm6_lpcg_ipg_mstr_clk";
361 power-domains = <&pd IMX_SC_R_PWM_6>;
364 pwm7_lpcg: clock-controller@5d470000 {
365 compatible = "fsl,imx8qxp-lpcg";
366 reg = <0x5d470000 0x10000>;
368 clocks = <&clk IMX_SC_R_PWM_7 IMX_SC_PM_CLK_PER>,
369 <&clk IMX_SC_R_PWM_7 IMX_SC_PM_CLK_PER>,
370 <&clk IMX_SC_R_PWM_7 IMX_SC_PM_CLK_PER>,
372 <&clk IMX_SC_R_PWM_7 IMX_SC_PM_CLK_PER>;
373 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>,
374 <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>,
376 clock-output-names = "pwm7_lpcg_ipg_clk",
377 "pwm7_lpcg_ipg_hf_clk",
378 "pwm7_lpcg_ipg_s_clk",
379 "pwm7_lpcg_ipg_slv_clk",
380 "pwm7_lpcg_ipg_mstr_clk";
381 power-domains = <&pd IMX_SC_R_PWM_7>;