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