xref: /openbmc/linux/arch/arm/boot/dts/st/stih407-family.dtsi (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Copyright (C) 2014 STMicroelectronics Limited.
4  * Author: Giuseppe Cavallaro <peppe.cavallaro@st.com>
5  */
6 #include "stih407-pinctrl.dtsi"
7 #include <dt-bindings/mfd/st-lpc.h>
8 #include <dt-bindings/phy/phy.h>
9 #include <dt-bindings/reset/stih407-resets.h>
10 #include <dt-bindings/interrupt-controller/irq-st.h>
11 / {
12 	#address-cells = <1>;
13 	#size-cells = <1>;
14 
15 	reserved-memory {
16 		#address-cells = <1>;
17 		#size-cells = <1>;
18 		ranges;
19 
20 		gp0_reserved: rproc@45000000 {
21 			compatible = "shared-dma-pool";
22 			reg = <0x45000000 0x00400000>;
23 			no-map;
24 		};
25 
26 		delta_reserved: rproc@44000000 {
27 			compatible = "shared-dma-pool";
28 			reg = <0x44000000 0x01000000>;
29 			no-map;
30 		};
31 	};
32 
33 	cpus {
34 		#address-cells = <1>;
35 		#size-cells = <0>;
36 		cpu@0 {
37 			device_type = "cpu";
38 			compatible = "arm,cortex-a9";
39 			reg = <0>;
40 
41 			/* u-boot puts hpen in SBC dmem at 0xa4 offset */
42 			cpu-release-addr = <0x94100A4>;
43 
44 					 /* kHz     uV   */
45 			operating-points = <1500000 0
46 					    1200000 0
47 					    800000  0
48 					    500000  0>;
49 
50 			clocks = <&clk_m_a9>;
51 			clock-names = "cpu";
52 			clock-latency = <100000>;
53 			cpu0-supply = <&pwm_regulator>;
54 			st,syscfg = <&syscfg_core 0x8e0>;
55 		};
56 		cpu@1 {
57 			device_type = "cpu";
58 			compatible = "arm,cortex-a9";
59 			reg = <1>;
60 
61 			/* u-boot puts hpen in SBC dmem at 0xa4 offset */
62 			cpu-release-addr = <0x94100A4>;
63 
64 					 /* kHz     uV   */
65 			operating-points = <1500000 0
66 					    1200000 0
67 					    800000  0
68 					    500000  0>;
69 		};
70 	};
71 
72 	intc: interrupt-controller@8761000 {
73 		compatible = "arm,cortex-a9-gic";
74 		#interrupt-cells = <3>;
75 		interrupt-controller;
76 		reg = <0x08761000 0x1000>, <0x08760100 0x100>;
77 	};
78 
79 	scu@8760000 {
80 		compatible = "arm,cortex-a9-scu";
81 		reg = <0x08760000 0x1000>;
82 	};
83 
84 	timer@8760200 {
85 		interrupt-parent = <&intc>;
86 		compatible = "arm,cortex-a9-global-timer";
87 		reg = <0x08760200 0x100>;
88 		interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
89 		clocks = <&arm_periph_clk>;
90 	};
91 
92 	l2: cache-controller@8762000 {
93 		compatible = "arm,pl310-cache";
94 		reg = <0x08762000 0x1000>;
95 		arm,data-latency = <3 3 3>;
96 		arm,tag-latency = <2 2 2>;
97 		cache-unified;
98 		cache-level = <2>;
99 	};
100 
101 	arm-pmu {
102 		interrupt-parent = <&intc>;
103 		compatible = "arm,cortex-a9-pmu";
104 		interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
105 	};
106 
107 	pwm_regulator: pwm-regulator {
108 		compatible = "pwm-regulator";
109 		pwms = <&pwm1 3 8448>;
110 		regulator-name = "CPU_1V0_AVS";
111 		regulator-min-microvolt = <784000>;
112 		regulator-max-microvolt = <1299000>;
113 		regulator-always-on;
114 		max-duty-cycle = <255>;
115 		status = "okay";
116 	};
117 
118 	restart: restart-controller {
119 		compatible = "st,stih407-restart";
120 		st,syscfg = <&syscfg_sbc_reg>;
121 		status = "okay";
122 	};
123 
124 	powerdown: powerdown-controller {
125 		compatible = "st,stih407-powerdown";
126 		#reset-cells = <1>;
127 	};
128 
129 	softreset: softreset-controller {
130 		compatible = "st,stih407-softreset";
131 		#reset-cells = <1>;
132 	};
133 
134 	picophyreset: picophyreset-controller {
135 		compatible = "st,stih407-picophyreset";
136 		#reset-cells = <1>;
137 	};
138 
139 	irq-syscfg {
140 		compatible = "st,stih407-irq-syscfg";
141 		st,syscfg = <&syscfg_core>;
142 		st,irq-device = <ST_IRQ_SYSCFG_PMU_0>,
143 				<ST_IRQ_SYSCFG_PMU_1>;
144 		st,fiq-device = <ST_IRQ_SYSCFG_DISABLED>,
145 				<ST_IRQ_SYSCFG_DISABLED>;
146 	};
147 
148 	usb2_picophy0: phy1 {
149 		compatible = "st,stih407-usb2-phy";
150 		#phy-cells = <0>;
151 		st,syscfg = <&syscfg_core 0x100 0xf4>;
152 		resets = <&softreset STIH407_PICOPHY_SOFTRESET>,
153 			 <&picophyreset STIH407_PICOPHY2_RESET>;
154 		reset-names = "global", "port";
155 	};
156 
157 	miphy28lp_phy: miphy28lp {
158 		compatible = "st,miphy28lp-phy";
159 		st,syscfg = <&syscfg_core>;
160 		#address-cells = <1>;
161 		#size-cells = <1>;
162 		ranges;
163 
164 		phy_port0: port@9b22000 {
165 			reg = <0x9b22000 0xff>,
166 			      <0x9b09000 0xff>,
167 			      <0x9b04000 0xff>;
168 			reg-names = "sata-up",
169 				    "pcie-up",
170 				    "pipew";
171 
172 			st,syscfg = <0x114 0x818 0xe0 0xec>;
173 			#phy-cells = <1>;
174 
175 			reset-names = "miphy-sw-rst";
176 			resets = <&softreset STIH407_MIPHY0_SOFTRESET>;
177 		};
178 
179 		phy_port1: port@9b2a000 {
180 			reg = <0x9b2a000 0xff>,
181 			      <0x9b19000 0xff>,
182 			      <0x9b14000 0xff>;
183 			reg-names = "sata-up",
184 				    "pcie-up",
185 				    "pipew";
186 
187 			st,syscfg = <0x118 0x81c 0xe4 0xf0>;
188 
189 			#phy-cells = <1>;
190 
191 			reset-names = "miphy-sw-rst";
192 			resets = <&softreset STIH407_MIPHY1_SOFTRESET>;
193 		};
194 
195 		phy_port2: port@8f95000 {
196 			reg = <0x8f95000 0xff>,
197 			      <0x8f90000 0xff>;
198 			reg-names = "pipew",
199 				    "usb3-up";
200 
201 			st,syscfg = <0x11c 0x820>;
202 
203 			#phy-cells = <1>;
204 
205 			reset-names = "miphy-sw-rst";
206 			resets = <&softreset STIH407_MIPHY2_SOFTRESET>;
207 		};
208 	};
209 
210 	st231_gp0: st231-gp0 {
211 		compatible = "st,st231-rproc";
212 		memory-region = <&gp0_reserved>;
213 		resets = <&softreset STIH407_ST231_GP0_SOFTRESET>;
214 		reset-names = "sw_reset";
215 		clocks = <&clk_s_c0_flexgen CLK_ST231_GP_0>;
216 		clock-frequency = <600000000>;
217 		st,syscfg = <&syscfg_core 0x22c>;
218 		#mbox-cells = <1>;
219 		mbox-names = "vq0_rx", "vq0_tx", "vq1_rx", "vq1_tx";
220 		mboxes = <&mailbox0 0 2>, <&mailbox2 0 1>, <&mailbox0 0 3>, <&mailbox2 0 0>;
221 	};
222 
223 	st231_delta: st231-delta {
224 		compatible = "st,st231-rproc";
225 		memory-region = <&delta_reserved>;
226 		resets = <&softreset STIH407_ST231_DMU_SOFTRESET>;
227 		reset-names = "sw_reset";
228 		clocks = <&clk_s_c0_flexgen CLK_ST231_DMU>;
229 		clock-frequency = <600000000>;
230 		st,syscfg = <&syscfg_core 0x224>;
231 		#mbox-cells = <1>;
232 		mbox-names = "vq0_rx", "vq0_tx", "vq1_rx", "vq1_tx";
233 		mboxes = <&mailbox0 0 0>, <&mailbox3 0 1>, <&mailbox0 0 1>, <&mailbox3 0 0>;
234 	};
235 
236 	delta0 {
237 		compatible = "st,st-delta";
238 		clock-names = "delta",
239 			      "delta-st231",
240 			      "delta-flash-promip";
241 		clocks = <&clk_s_c0_flexgen CLK_VID_DMU>,
242 			 <&clk_s_c0_flexgen CLK_ST231_DMU>,
243 			 <&clk_s_c0_flexgen CLK_FLASH_PROMIP>;
244 	};
245 
246 	soc {
247 		#address-cells = <1>;
248 		#size-cells = <1>;
249 		interrupt-parent = <&intc>;
250 		ranges;
251 		compatible = "simple-bus";
252 
253 		syscfg_sbc: sbc-syscfg@9620000 {
254 			compatible = "st,stih407-sbc-syscfg", "syscon";
255 			reg = <0x9620000 0x1000>;
256 		};
257 
258 		syscfg_front: front-syscfg@9280000 {
259 			compatible = "st,stih407-front-syscfg", "syscon";
260 			reg = <0x9280000 0x1000>;
261 		};
262 
263 		syscfg_rear: rear-syscfg@9290000 {
264 			compatible = "st,stih407-rear-syscfg", "syscon";
265 			reg = <0x9290000 0x1000>;
266 		};
267 
268 		syscfg_flash: flash-syscfg@92a0000 {
269 			compatible = "st,stih407-flash-syscfg", "syscon";
270 			reg = <0x92a0000 0x1000>;
271 		};
272 
273 		syscfg_sbc_reg: fvdp-lite-syscfg@9600000 {
274 			compatible = "st,stih407-sbc-reg-syscfg", "syscon";
275 			reg = <0x9600000 0x1000>;
276 		};
277 
278 		syscfg_core: core-syscfg@92b0000 {
279 			compatible = "st,stih407-core-syscfg", "syscon";
280 			reg = <0x92b0000 0x1000>;
281 
282 			sti_sasg_codec: sti-sasg-codec {
283 				compatible = "st,stih407-sas-codec";
284 				#sound-dai-cells = <1>;
285 				status = "disabled";
286 				st,syscfg = <&syscfg_core>;
287 			};
288 		};
289 
290 		syscfg_lpm: lpm-syscfg@94b5100 {
291 			compatible = "st,stih407-lpm-syscfg", "syscon";
292 			reg = <0x94b5100 0x1000>;
293 		};
294 
295 		/* Display */
296 		vtg_main: sti-vtg-main@8d02800 {
297 			compatible = "st,vtg";
298 			reg = <0x8d02800 0x200>;
299 			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
300 		};
301 
302 		vtg_aux: sti-vtg-aux@8d00200 {
303 			compatible = "st,vtg";
304 			reg = <0x8d00200 0x100>;
305 			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
306 		};
307 
308 		serial@9830000 {
309 			compatible = "st,asc";
310 			reg = <0x9830000 0x2c>;
311 			interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
312 			clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
313 			/* Pinctrl moved out to a per-board configuration */
314 
315 			status = "disabled";
316 		};
317 
318 		serial@9831000 {
319 			compatible = "st,asc";
320 			reg = <0x9831000 0x2c>;
321 			interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
322 			pinctrl-names = "default";
323 			pinctrl-0 = <&pinctrl_serial1>;
324 			clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
325 
326 			status = "disabled";
327 		};
328 
329 		serial@9832000 {
330 			compatible = "st,asc";
331 			reg = <0x9832000 0x2c>;
332 			interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
333 			pinctrl-names = "default";
334 			pinctrl-0 = <&pinctrl_serial2>;
335 			clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
336 
337 			status = "disabled";
338 		};
339 
340 		/* SBC_ASC0 - UART10 */
341 		sbc_serial0: serial@9530000 {
342 			compatible = "st,asc";
343 			reg = <0x9530000 0x2c>;
344 			interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
345 			pinctrl-names = "default";
346 			pinctrl-0 = <&pinctrl_sbc_serial0>;
347 			clocks = <&clk_sysin>;
348 
349 			status = "disabled";
350 		};
351 
352 		serial@9531000 {
353 			compatible = "st,asc";
354 			reg = <0x9531000 0x2c>;
355 			interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
356 			pinctrl-names = "default";
357 			pinctrl-0 = <&pinctrl_sbc_serial1>;
358 			clocks = <&clk_sysin>;
359 
360 			status = "disabled";
361 		};
362 
363 		i2c@9840000 {
364 			compatible = "st,comms-ssc4-i2c";
365 			interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
366 			reg = <0x9840000 0x110>;
367 			clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
368 			clock-names = "ssc";
369 			clock-frequency = <400000>;
370 			pinctrl-names = "default";
371 			pinctrl-0 = <&pinctrl_i2c0_default>;
372 			#address-cells = <1>;
373 			#size-cells = <0>;
374 
375 			status = "disabled";
376 		};
377 
378 		i2c@9841000 {
379 			compatible = "st,comms-ssc4-i2c";
380 			reg = <0x9841000 0x110>;
381 			interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
382 			clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
383 			clock-names = "ssc";
384 			clock-frequency = <400000>;
385 			pinctrl-names = "default";
386 			pinctrl-0 = <&pinctrl_i2c1_default>;
387 			#address-cells = <1>;
388 			#size-cells = <0>;
389 
390 			status = "disabled";
391 		};
392 
393 		i2c@9842000 {
394 			compatible = "st,comms-ssc4-i2c";
395 			reg = <0x9842000 0x110>;
396 			interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
397 			clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
398 			clock-names = "ssc";
399 			clock-frequency = <400000>;
400 			pinctrl-names = "default";
401 			pinctrl-0 = <&pinctrl_i2c2_default>;
402 			#address-cells = <1>;
403 			#size-cells = <0>;
404 
405 			status = "disabled";
406 		};
407 
408 		i2c@9843000 {
409 			compatible = "st,comms-ssc4-i2c";
410 			reg = <0x9843000 0x110>;
411 			interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
412 			clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
413 			clock-names = "ssc";
414 			clock-frequency = <400000>;
415 			pinctrl-names = "default";
416 			pinctrl-0 = <&pinctrl_i2c3_default>;
417 			#address-cells = <1>;
418 			#size-cells = <0>;
419 
420 			status = "disabled";
421 		};
422 
423 		i2c@9844000 {
424 			compatible = "st,comms-ssc4-i2c";
425 			reg = <0x9844000 0x110>;
426 			interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
427 			clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
428 			clock-names = "ssc";
429 			clock-frequency = <400000>;
430 			pinctrl-names = "default";
431 			pinctrl-0 = <&pinctrl_i2c4_default>;
432 			#address-cells = <1>;
433 			#size-cells = <0>;
434 
435 			status = "disabled";
436 		};
437 
438 		i2c@9845000 {
439 			compatible = "st,comms-ssc4-i2c";
440 			reg = <0x9845000 0x110>;
441 			interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
442 			clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
443 			clock-names = "ssc";
444 			clock-frequency = <400000>;
445 			pinctrl-names = "default";
446 			pinctrl-0 = <&pinctrl_i2c5_default>;
447 			#address-cells = <1>;
448 			#size-cells = <0>;
449 
450 			status = "disabled";
451 		};
452 
453 
454 		/* SSCs on SBC */
455 		i2c@9540000 {
456 			compatible = "st,comms-ssc4-i2c";
457 			reg = <0x9540000 0x110>;
458 			interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
459 			clocks = <&clk_sysin>;
460 			clock-names = "ssc";
461 			clock-frequency = <400000>;
462 			pinctrl-names = "default";
463 			pinctrl-0 = <&pinctrl_i2c10_default>;
464 			#address-cells = <1>;
465 			#size-cells = <0>;
466 
467 			status = "disabled";
468 		};
469 
470 		i2c@9541000 {
471 			compatible = "st,comms-ssc4-i2c";
472 			reg = <0x9541000 0x110>;
473 			interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
474 			clocks = <&clk_sysin>;
475 			clock-names = "ssc";
476 			clock-frequency = <400000>;
477 			pinctrl-names = "default";
478 			pinctrl-0 = <&pinctrl_i2c11_default>;
479 			#address-cells = <1>;
480 			#size-cells = <0>;
481 
482 			status = "disabled";
483 		};
484 
485 		spi@9840000 {
486 			compatible = "st,comms-ssc4-spi";
487 			reg = <0x9840000 0x110>;
488 			interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
489 			clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
490 			clock-names = "ssc";
491 			pinctrl-0 = <&pinctrl_spi0_default>;
492 			pinctrl-names = "default";
493 			#address-cells = <1>;
494 			#size-cells = <0>;
495 
496 			status = "disabled";
497 		};
498 
499 		spi@9841000 {
500 			compatible = "st,comms-ssc4-spi";
501 			reg = <0x9841000 0x110>;
502 			interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
503 			clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
504 			clock-names = "ssc";
505 			pinctrl-names = "default";
506 			pinctrl-0 = <&pinctrl_spi1_default>;
507 			#address-cells = <1>;
508 			#size-cells = <0>;
509 
510 			status = "disabled";
511 		};
512 
513 		spi@9842000 {
514 			compatible = "st,comms-ssc4-spi";
515 			reg = <0x9842000 0x110>;
516 			interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
517 			clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
518 			clock-names = "ssc";
519 			pinctrl-names = "default";
520 			pinctrl-0 = <&pinctrl_spi2_default>;
521 			#address-cells = <1>;
522 			#size-cells = <0>;
523 
524 			status = "disabled";
525 		};
526 
527 		spi@9843000 {
528 			compatible = "st,comms-ssc4-spi";
529 			reg = <0x9843000 0x110>;
530 			interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
531 			clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
532 			clock-names = "ssc";
533 			pinctrl-names = "default";
534 			pinctrl-0 = <&pinctrl_spi3_default>;
535 			#address-cells = <1>;
536 			#size-cells = <0>;
537 
538 			status = "disabled";
539 		};
540 
541 		spi@9844000 {
542 			compatible = "st,comms-ssc4-spi";
543 			reg = <0x9844000 0x110>;
544 			interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
545 			clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
546 			clock-names = "ssc";
547 			pinctrl-names = "default";
548 			pinctrl-0 = <&pinctrl_spi4_default>;
549 			#address-cells = <1>;
550 			#size-cells = <0>;
551 
552 			status = "disabled";
553 		};
554 
555 		/* SBC SSC */
556 		spi@9540000 {
557 			compatible = "st,comms-ssc4-spi";
558 			reg = <0x9540000 0x110>;
559 			interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
560 			clocks = <&clk_sysin>;
561 			clock-names = "ssc";
562 			pinctrl-names = "default";
563 			pinctrl-0 = <&pinctrl_spi10_default>;
564 			#address-cells = <1>;
565 			#size-cells = <0>;
566 
567 			status = "disabled";
568 		};
569 
570 		spi@9541000 {
571 			compatible = "st,comms-ssc4-spi";
572 			reg = <0x9541000 0x110>;
573 			interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
574 			clocks = <&clk_sysin>;
575 			clock-names = "ssc";
576 			pinctrl-names = "default";
577 			pinctrl-0 = <&pinctrl_spi11_default>;
578 			#address-cells = <1>;
579 			#size-cells = <0>;
580 
581 			status = "disabled";
582 		};
583 
584 		spi@9542000 {
585 			compatible = "st,comms-ssc4-spi";
586 			reg = <0x9542000 0x110>;
587 			interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
588 			clocks = <&clk_sysin>;
589 			clock-names = "ssc";
590 			pinctrl-names = "default";
591 			pinctrl-0 = <&pinctrl_spi12_default>;
592 			#address-cells = <1>;
593 			#size-cells = <0>;
594 
595 			status = "disabled";
596 		};
597 
598 		mmc0: sdhci@9060000 {
599 			compatible = "st,sdhci-stih407", "st,sdhci";
600 			status = "disabled";
601 			reg = <0x09060000 0x7ff>, <0x9061008 0x20>;
602 			reg-names = "mmc", "top-mmc-delay";
603 			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
604 			interrupt-names = "mmcirq";
605 			pinctrl-names = "default";
606 			pinctrl-0 = <&pinctrl_mmc0>;
607 			clock-names = "mmc", "icn";
608 			clocks = <&clk_s_c0_flexgen CLK_MMC_0>,
609 				 <&clk_s_c0_flexgen CLK_RX_ICN_HVA>;
610 			bus-width = <8>;
611 		};
612 
613 		mmc1: sdhci@9080000 {
614 			compatible = "st,sdhci-stih407", "st,sdhci";
615 			status = "disabled";
616 			reg = <0x09080000 0x7ff>;
617 			reg-names = "mmc";
618 			interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
619 			interrupt-names = "mmcirq";
620 			pinctrl-names = "default";
621 			pinctrl-0 = <&pinctrl_sd1>;
622 			clock-names = "mmc", "icn";
623 			clocks = <&clk_s_c0_flexgen CLK_MMC_1>,
624 				 <&clk_s_c0_flexgen CLK_RX_ICN_HVA>;
625 			resets = <&softreset STIH407_MMC1_SOFTRESET>;
626 			bus-width = <4>;
627 		};
628 
629 		/* Watchdog and Real-Time Clock */
630 		lpc@8787000 {
631 			compatible = "st,stih407-lpc";
632 			reg = <0x8787000 0x1000>;
633 			interrupts = <GIC_SPI 129 IRQ_TYPE_EDGE_RISING>;
634 			clocks = <&clk_s_d3_flexgen CLK_LPC_0>;
635 			timeout-sec = <120>;
636 			st,syscfg = <&syscfg_core>;
637 			st,lpc-mode = <ST_LPC_MODE_WDT>;
638 		};
639 
640 		lpc@8788000 {
641 			compatible = "st,stih407-lpc";
642 			reg = <0x8788000 0x1000>;
643 			interrupts = <GIC_SPI 130 IRQ_TYPE_EDGE_RISING>;
644 			clocks = <&clk_s_d3_flexgen CLK_LPC_1>;
645 			st,lpc-mode = <ST_LPC_MODE_CLKSRC>;
646 		};
647 
648 		spifsm: spifsm@9022000 {
649 			compatible = "st,spi-fsm";
650 			reg = <0x9022000 0x1000>;
651 			reg-names = "spi-fsm";
652 			clocks = <&clk_s_c0_flexgen CLK_FLASH_PROMIP>;
653 			clock-names = "emi_clk";
654 			pinctrl-names = "default";
655 			pinctrl-0 = <&pinctrl_fsm>;
656 			st,syscfg = <&syscfg_core>;
657 			st,boot-device-reg = <0x8c4>;
658 			st,boot-device-spi = <0x68>;
659 
660 			status = "disabled";
661 		};
662 
663 		sata0: sata@9b20000 {
664 			compatible = "st,ahci";
665 			reg = <0x9b20000 0x1000>;
666 
667 			interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
668 			interrupt-names = "hostc";
669 
670 			phys = <&phy_port0 PHY_TYPE_SATA>;
671 			phy-names = "ahci_phy";
672 
673 			resets = <&powerdown STIH407_SATA0_POWERDOWN>,
674 				 <&softreset STIH407_SATA0_SOFTRESET>,
675 				 <&softreset STIH407_SATA0_PWR_SOFTRESET>;
676 			reset-names = "pwr-dwn", "sw-rst", "pwr-rst";
677 
678 			clock-names = "ahci_clk";
679 			clocks = <&clk_s_c0_flexgen CLK_ICN_REG>;
680 
681 			ports-implemented = <0x1>;
682 
683 			status = "disabled";
684 		};
685 
686 		sata1: sata@9b28000 {
687 			compatible = "st,ahci";
688 			reg = <0x9b28000 0x1000>;
689 
690 			interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
691 			interrupt-names = "hostc";
692 
693 			phys = <&phy_port1 PHY_TYPE_SATA>;
694 			phy-names = "ahci_phy";
695 
696 			resets = <&powerdown STIH407_SATA1_POWERDOWN>,
697 				 <&softreset STIH407_SATA1_SOFTRESET>,
698 				 <&softreset STIH407_SATA1_PWR_SOFTRESET>;
699 			reset-names = "pwr-dwn",
700 				      "sw-rst",
701 				      "pwr-rst";
702 
703 			clock-names = "ahci_clk";
704 			clocks = <&clk_s_c0_flexgen CLK_ICN_REG>;
705 
706 			ports-implemented = <0x1>;
707 
708 			status = "disabled";
709 		};
710 
711 
712 		st_dwc3: dwc3@8f94000 {
713 			compatible = "st,stih407-dwc3";
714 			reg = <0x08f94000 0x1000>, <0x110 0x4>;
715 			reg-names = "reg-glue", "syscfg-reg";
716 			st,syscfg = <&syscfg_core>;
717 			resets = <&powerdown STIH407_USB3_POWERDOWN>,
718 				 <&softreset STIH407_MIPHY2_SOFTRESET>;
719 			reset-names = "powerdown", "softreset";
720 			#address-cells = <1>;
721 			#size-cells = <1>;
722 			pinctrl-names = "default";
723 			pinctrl-0 = <&pinctrl_usb3>;
724 			ranges;
725 
726 			status = "disabled";
727 
728 			dwc3: usb@9900000 {
729 				compatible = "snps,dwc3";
730 				reg = <0x09900000 0x100000>;
731 				interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
732 				dr_mode = "host";
733 				phy-names = "usb2-phy", "usb3-phy";
734 				phys = <&usb2_picophy0>,
735 				       <&phy_port2 PHY_TYPE_USB3>;
736 				snps,dis_u3_susphy_quirk;
737 			};
738 		};
739 
740 		/* COMMS PWM Module */
741 		pwm0: pwm@9810000 {
742 			compatible = "st,sti-pwm";
743 			#pwm-cells = <2>;
744 			reg = <0x9810000 0x68>;
745 			interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
746 			pinctrl-names = "default";
747 			pinctrl-0 = <&pinctrl_pwm0_chan0_default>;
748 			clock-names = "pwm";
749 			clocks = <&clk_sysin>;
750 			st,pwm-num-chan = <1>;
751 
752 			status = "disabled";
753 		};
754 
755 		/* SBC PWM Module */
756 		pwm1: pwm@9510000 {
757 			compatible = "st,sti-pwm";
758 			#pwm-cells = <2>;
759 			reg = <0x9510000 0x68>;
760 			interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
761 			pinctrl-names = "default";
762 			pinctrl-0 = <&pinctrl_pwm1_chan0_default
763 				     &pinctrl_pwm1_chan1_default
764 				     &pinctrl_pwm1_chan2_default
765 				     &pinctrl_pwm1_chan3_default>;
766 			clock-names = "pwm";
767 			clocks = <&clk_sysin>;
768 			st,pwm-num-chan = <4>;
769 
770 			status = "disabled";
771 		};
772 
773 		rng10: rng@8a89000 {
774 			compatible = "st,rng";
775 			reg = <0x08a89000 0x1000>;
776 			clocks = <&clk_sysin>;
777 			status = "okay";
778 		};
779 
780 		rng11: rng@8a8a000 {
781 			compatible = "st,rng";
782 			reg = <0x08a8a000 0x1000>;
783 			clocks = <&clk_sysin>;
784 			status = "okay";
785 		};
786 
787 		ethernet0: dwmac@9630000 {
788 			device_type = "network";
789 			status = "disabled";
790 			compatible = "st,stih407-dwmac", "snps,dwmac", "snps,dwmac-3.710";
791 			reg = <0x9630000 0x8000>, <0x80 0x4>;
792 			reg-names = "stmmaceth", "sti-ethconf";
793 
794 			st,syscon = <&syscfg_sbc_reg 0x80>;
795 			st,gmac_en;
796 			resets = <&softreset STIH407_ETH1_SOFTRESET>;
797 			reset-names = "stmmaceth";
798 
799 			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
800 				     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
801 			interrupt-names = "macirq", "eth_wake_irq";
802 
803 			/* DMA Bus Mode */
804 			snps,pbl = <8>;
805 
806 			pinctrl-names = "default";
807 			pinctrl-0 = <&pinctrl_rgmii1>;
808 
809 			clock-names = "stmmaceth", "sti-ethclk";
810 			clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>,
811 				 <&clk_s_c0_flexgen CLK_ETH_PHY>;
812 		};
813 
814 		mailbox0: mailbox@8f00000  {
815 			compatible = "st,stih407-mailbox";
816 			reg = <0x8f00000 0x1000>;
817 			interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
818 			#mbox-cells = <2>;
819 			mbox-name = "a9";
820 			status = "okay";
821 		};
822 
823 		mailbox1: mailbox@8f01000 {
824 			compatible = "st,stih407-mailbox";
825 			reg = <0x8f01000 0x1000>;
826 			#mbox-cells = <2>;
827 			mbox-name = "st231_gp_1";
828 			status = "okay";
829 		};
830 
831 		mailbox2: mailbox@8f02000 {
832 			compatible = "st,stih407-mailbox";
833 			reg = <0x8f02000 0x1000>;
834 			#mbox-cells = <2>;
835 			mbox-name = "st231_gp_0";
836 			status = "okay";
837 		};
838 
839 		mailbox3: mailbox@8f03000 {
840 			compatible = "st,stih407-mailbox";
841 			reg = <0x8f03000 0x1000>;
842 			#mbox-cells = <2>;
843 			mbox-name = "st231_audio_video";
844 			status = "okay";
845 		};
846 
847 		/* fdma audio */
848 		fdma0: dma-controller@8e20000 {
849 			compatible = "st,stih407-fdma-mpe31-11", "st,slim-rproc";
850 			reg = <0x8e20000 0x8000>,
851 			      <0x8e30000 0x3000>,
852 			      <0x8e37000 0x1000>,
853 			      <0x8e38000 0x8000>;
854 			reg-names = "slimcore", "dmem", "peripherals", "imem";
855 			clocks = <&clk_s_c0_flexgen CLK_FDMA>,
856 				 <&clk_s_c0_flexgen CLK_EXT2F_A9>,
857 				 <&clk_s_c0_flexgen CLK_EXT2F_A9>,
858 				 <&clk_s_c0_flexgen CLK_EXT2F_A9>;
859 			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
860 			dma-channels = <16>;
861 			#dma-cells = <3>;
862 		};
863 
864 		/* fdma app */
865 		fdma1: dma-controller@8e40000 {
866 			compatible = "st,stih407-fdma-mpe31-12", "st,slim-rproc";
867 			reg = <0x8e40000 0x8000>,
868 			      <0x8e50000 0x3000>,
869 			      <0x8e57000 0x1000>,
870 			      <0x8e58000 0x8000>;
871 			reg-names = "slimcore", "dmem", "peripherals", "imem";
872 			clocks = <&clk_s_c0_flexgen CLK_FDMA>,
873 				<&clk_s_c0_flexgen CLK_TX_ICN_DMU>,
874 				<&clk_s_c0_flexgen CLK_TX_ICN_DMU>,
875 				<&clk_s_c0_flexgen CLK_EXT2F_A9>;
876 
877 			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
878 			dma-channels = <16>;
879 			#dma-cells = <3>;
880 
881 			status = "disabled";
882 		};
883 
884 		/* fdma free running */
885 		fdma2: dma-controller@8e60000 {
886 			compatible = "st,stih407-fdma-mpe31-13", "st,slim-rproc";
887 			reg = <0x8e60000 0x8000>,
888 			      <0x8e70000 0x3000>,
889 			      <0x8e77000 0x1000>,
890 			      <0x8e78000 0x8000>;
891 			reg-names = "slimcore", "dmem", "peripherals", "imem";
892 			interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
893 			dma-channels = <16>;
894 			#dma-cells = <3>;
895 			clocks = <&clk_s_c0_flexgen CLK_FDMA>,
896 				<&clk_s_c0_flexgen CLK_EXT2F_A9>,
897 				<&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>,
898 				<&clk_s_c0_flexgen CLK_EXT2F_A9>;
899 
900 			status = "disabled";
901 		};
902 
903 		sti_uni_player0: sti-uni-player@8d80000 {
904 			compatible = "st,stih407-uni-player-hdmi";
905 			#sound-dai-cells = <0>;
906 			st,syscfg = <&syscfg_core>;
907 			clocks = <&clk_s_d0_flexgen CLK_PCM_0>;
908 			assigned-clocks = <&clk_s_d0_quadfs 0>, <&clk_s_d0_flexgen CLK_PCM_0>;
909 			assigned-clock-parents = <0>, <&clk_s_d0_quadfs 0>;
910 			assigned-clock-rates = <50000000>;
911 			reg = <0x8d80000 0x158>;
912 			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
913 			dmas = <&fdma0 2 0 1>;
914 			dma-names = "tx";
915 
916 			status = "disabled";
917 		};
918 
919 		sti_uni_player1: sti-uni-player@8d81000 {
920 			compatible = "st,stih407-uni-player-pcm-out";
921 			#sound-dai-cells = <0>;
922 			st,syscfg = <&syscfg_core>;
923 			clocks = <&clk_s_d0_flexgen CLK_PCM_1>;
924 			assigned-clocks = <&clk_s_d0_quadfs 1>, <&clk_s_d0_flexgen CLK_PCM_1>;
925 			assigned-clock-parents = <0>, <&clk_s_d0_quadfs 1>;
926 			assigned-clock-rates = <50000000>;
927 			reg = <0x8d81000 0x158>;
928 			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
929 			dmas = <&fdma0 3 0 1>;
930 			dma-names = "tx";
931 
932 			status = "disabled";
933 		};
934 
935 		sti_uni_player2: sti-uni-player@8d82000 {
936 			compatible = "st,stih407-uni-player-dac";
937 			#sound-dai-cells = <0>;
938 			st,syscfg = <&syscfg_core>;
939 			clocks = <&clk_s_d0_flexgen CLK_PCM_2>;
940 			assigned-clocks = <&clk_s_d0_quadfs 2>, <&clk_s_d0_flexgen CLK_PCM_2>;
941 			assigned-clock-parents = <0>, <&clk_s_d0_quadfs 2>;
942 			assigned-clock-rates = <50000000>;
943 			reg = <0x8d82000 0x158>;
944 			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
945 			dmas = <&fdma0 4 0 1>;
946 			dma-names = "tx";
947 
948 			status = "disabled";
949 		};
950 
951 		sti_uni_player3: sti-uni-player@8d85000 {
952 			compatible = "st,stih407-uni-player-spdif";
953 			#sound-dai-cells = <0>;
954 			st,syscfg = <&syscfg_core>;
955 			clocks = <&clk_s_d0_flexgen CLK_SPDIFF>;
956 			assigned-clocks = <&clk_s_d0_quadfs 3>, <&clk_s_d0_flexgen CLK_SPDIFF>;
957 			assigned-clock-parents = <0>, <&clk_s_d0_quadfs 3>;
958 			assigned-clock-rates = <50000000>;
959 			reg = <0x8d85000 0x158>;
960 			interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
961 			dmas = <&fdma0 7 0 1>;
962 			dma-names = "tx";
963 
964 			status = "disabled";
965 		};
966 
967 		sti_uni_reader0: sti-uni-reader@8d83000 {
968 			compatible = "st,stih407-uni-reader-pcm_in";
969 			#sound-dai-cells = <0>;
970 			st,syscfg = <&syscfg_core>;
971 			reg = <0x8d83000 0x158>;
972 			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
973 			dmas = <&fdma0 5 0 1>;
974 			dma-names = "rx";
975 
976 			status = "disabled";
977 		};
978 
979 		sti_uni_reader1: sti-uni-reader@8d84000 {
980 			compatible = "st,stih407-uni-reader-hdmi";
981 			#sound-dai-cells = <0>;
982 			st,syscfg = <&syscfg_core>;
983 			reg = <0x8d84000 0x158>;
984 			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
985 			dmas = <&fdma0 6 0 1>;
986 			dma-names = "rx";
987 
988 			status = "disabled";
989 		};
990 	};
991 };
992