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			reset-names = "softreset";
567			bus-width = <4>;
568		};
569
570		/* Watchdog and Real-Time Clock */
571		lpc@8787000 {
572			compatible = "st,stih407-lpc";
573			reg = <0x8787000 0x1000>;
574			interrupts = <GIC_SPI 129 IRQ_TYPE_EDGE_RISING>;
575			clocks = <&clk_s_d3_flexgen CLK_LPC_0>;
576			timeout-sec = <120>;
577			st,syscfg = <&syscfg_core>;
578			st,lpc-mode = <ST_LPC_MODE_WDT>;
579		};
580
581		lpc@8788000 {
582			compatible = "st,stih407-lpc";
583			reg = <0x8788000 0x1000>;
584			interrupts = <GIC_SPI 130 IRQ_TYPE_EDGE_RISING>;
585			clocks = <&clk_s_d3_flexgen CLK_LPC_1>;
586			st,lpc-mode = <ST_LPC_MODE_CLKSRC>;
587		};
588
589		sata0: sata@9b20000 {
590			compatible = "st,ahci";
591			reg = <0x9b20000 0x1000>;
592
593			interrupts = <GIC_SPI 159 IRQ_TYPE_NONE>;
594			interrupt-names = "hostc";
595
596			phys = <&phy_port0 PHY_TYPE_SATA>;
597			phy-names = "ahci_phy";
598
599			resets = <&powerdown STIH407_SATA0_POWERDOWN>,
600				 <&softreset STIH407_SATA0_SOFTRESET>,
601				 <&softreset STIH407_SATA0_PWR_SOFTRESET>;
602			reset-names = "pwr-dwn", "sw-rst", "pwr-rst";
603
604			clock-names = "ahci_clk";
605			clocks = <&clk_s_c0_flexgen CLK_ICN_REG>;
606
607			ports-implemented = <0x1>;
608
609			status = "disabled";
610		};
611
612		sata1: sata@9b28000 {
613			compatible = "st,ahci";
614			reg = <0x9b28000 0x1000>;
615
616			interrupts = <GIC_SPI 170 IRQ_TYPE_NONE>;
617			interrupt-names = "hostc";
618
619			phys = <&phy_port1 PHY_TYPE_SATA>;
620			phy-names = "ahci_phy";
621
622			resets = <&powerdown STIH407_SATA1_POWERDOWN>,
623				 <&softreset STIH407_SATA1_SOFTRESET>,
624				 <&softreset STIH407_SATA1_PWR_SOFTRESET>;
625			reset-names = "pwr-dwn",
626				      "sw-rst",
627				      "pwr-rst";
628
629			clock-names = "ahci_clk";
630			clocks = <&clk_s_c0_flexgen CLK_ICN_REG>;
631
632			ports-implemented = <0x1>;
633
634			status = "disabled";
635		};
636
637
638		st_dwc3: dwc3@8f94000 {
639			compatible	= "st,stih407-dwc3";
640			reg		= <0x08f94000 0x1000>, <0x110 0x4>;
641			reg-names	= "reg-glue", "syscfg-reg";
642			st,syscfg	= <&syscfg_core>;
643			resets		= <&powerdown STIH407_USB3_POWERDOWN>,
644					  <&softreset STIH407_MIPHY2_SOFTRESET>;
645			reset-names	= "powerdown", "softreset";
646			#address-cells	= <1>;
647			#size-cells	= <1>;
648			pinctrl-names	= "default";
649			pinctrl-0	= <&pinctrl_usb3>;
650			ranges;
651
652			status = "disabled";
653
654			dwc3: dwc3@9900000 {
655				compatible	= "snps,dwc3";
656				reg		= <0x09900000 0x100000>;
657				interrupts	= <GIC_SPI 155 IRQ_TYPE_NONE>;
658				dr_mode		= "peripheral";
659				phy-names	= "usb2-phy", "usb3-phy";
660				phys		= <&usb2_picophy0>,
661						  <&phy_port2 PHY_TYPE_USB3>;
662			};
663		};
664
665		/* COMMS PWM Module */
666		pwm0: pwm@9810000 {
667			compatible	= "st,sti-pwm";
668			#pwm-cells	= <2>;
669			reg		= <0x9810000 0x68>;
670			interrupts      = <GIC_SPI 128 IRQ_TYPE_NONE>;
671			pinctrl-names	= "default";
672			pinctrl-0	= <&pinctrl_pwm0_chan0_default>;
673			clock-names	= "pwm";
674			clocks		= <&clk_sysin>;
675			st,pwm-num-chan = <1>;
676
677			status		= "disabled";
678		};
679
680		/* SBC PWM Module */
681		pwm1: pwm@9510000 {
682			compatible	= "st,sti-pwm";
683			#pwm-cells	= <2>;
684			reg		= <0x9510000 0x68>;
685			pinctrl-names	= "default";
686			pinctrl-0	= <&pinctrl_pwm1_chan0_default
687					&pinctrl_pwm1_chan1_default
688					&pinctrl_pwm1_chan2_default
689					&pinctrl_pwm1_chan3_default>;
690			clock-names	= "pwm";
691			clocks		= <&clk_sysin>;
692			st,pwm-num-chan = <4>;
693
694			status		= "disabled";
695		};
696
697		rng10: rng@08a89000 {
698			compatible      = "st,rng";
699			reg		= <0x08a89000 0x1000>;
700			clocks          = <&clk_sysin>;
701			status		= "okay";
702		};
703
704		rng11: rng@08a8a000 {
705			compatible      = "st,rng";
706			reg		= <0x08a8a000 0x1000>;
707			clocks          = <&clk_sysin>;
708			status		= "okay";
709		};
710
711		ethernet0: dwmac@9630000 {
712			device_type = "network";
713			status = "disabled";
714			compatible = "st,stih407-dwmac", "snps,dwmac", "snps,dwmac-3.710";
715			reg = <0x9630000 0x8000>, <0x80 0x4>;
716			reg-names = "stmmaceth", "sti-ethconf";
717
718			st,syscon = <&syscfg_sbc_reg 0x80>;
719			st,gmac_en;
720			resets = <&softreset STIH407_ETH1_SOFTRESET>;
721			reset-names = "stmmaceth";
722
723			interrupts = <GIC_SPI 98 IRQ_TYPE_NONE>,
724				     <GIC_SPI 99 IRQ_TYPE_NONE>;
725			interrupt-names = "macirq", "eth_wake_irq";
726
727			/* DMA Bus Mode */
728			snps,pbl = <8>;
729
730			pinctrl-names = "default";
731			pinctrl-0 = <&pinctrl_rgmii1>;
732
733			clock-names = "stmmaceth", "sti-ethclk";
734			clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>,
735				 <&clk_s_c0_flexgen CLK_ETH_PHY>;
736		};
737
738		cec: sti-cec@094a087c {
739			compatible = "st,stih-cec";
740			reg = <0x94a087c 0x64>;
741			clocks = <&clk_sysin>;
742			clock-names = "cec-clk";
743			interrupts = <GIC_SPI 140 IRQ_TYPE_NONE>;
744			interrupt-names = "cec-irq";
745			pinctrl-names = "default";
746			pinctrl-0 = <&pinctrl_cec0_default>;
747			resets = <&softreset STIH407_LPM_SOFTRESET>;
748		};
749
750		rng10: rng@08a89000 {
751			compatible      = "st,rng";
752			reg		= <0x08a89000 0x1000>;
753			clocks          = <&clk_sysin>;
754			status		= "okay";
755		};
756
757		rng11: rng@08a8a000 {
758			compatible      = "st,rng";
759			reg		= <0x08a8a000 0x1000>;
760			clocks          = <&clk_sysin>;
761			status		= "okay";
762		};
763
764		mailbox0: mailbox@8f00000  {
765			compatible	= "st,stih407-mailbox";
766			reg		= <0x8f00000 0x1000>;
767			interrupts	= <GIC_SPI 1 IRQ_TYPE_NONE>;
768			#mbox-cells	= <2>;
769			mbox-name	= "a9";
770			status		= "okay";
771		};
772
773		mailbox1: mailbox@8f01000 {
774			compatible	= "st,stih407-mailbox";
775			reg		= <0x8f01000 0x1000>;
776			#mbox-cells	= <2>;
777			mbox-name	= "st231_gp_1";
778			status		= "okay";
779		};
780
781		mailbox2: mailbox@8f02000 {
782			compatible	= "st,stih407-mailbox";
783			reg		= <0x8f02000 0x1000>;
784			#mbox-cells	= <2>;
785			mbox-name	= "st231_gp_0";
786			status		= "okay";
787		};
788
789		mailbox3: mailbox@8f03000 {
790			compatible	= "st,stih407-mailbox";
791			reg		= <0x8f03000 0x1000>;
792			#mbox-cells	= <2>;
793			mbox-name	= "st231_audio_video";
794			status		= "okay";
795		};
796
797		st231_delta: st231-delta@44000000 {
798			compatible	= "st,st231-rproc";
799			memory-region	= <&dmu_reserved>;
800			resets		= <&softreset STIH407_ST231_DMU_SOFTRESET>;
801			reset-names	= "sw_reset";
802			clocks		= <&clk_s_c0_flexgen CLK_ST231_DMU>;
803			clock-frequency	= <600000000>;
804			st,syscfg	= <&syscfg_core 0x224>;
805			#mbox-cells = <1>;
806			mbox-names = "vq0_rx", "vq0_tx", "vq1_rx", "vq1_tx";
807			mboxes = <&mailbox0 0 0>, <&mailbox3 0 1>, <&mailbox0 0 1>, <&mailbox3 0 0>;
808		};
809
810		/* fdma audio */
811		fdma0: dma-controller@8e20000 {
812			compatible = "st,stih407-fdma-mpe31-11", "st,slim-rproc";
813			reg = <0x8e20000 0x8000>,
814			      <0x8e30000 0x3000>,
815			      <0x8e37000 0x1000>,
816			      <0x8e38000 0x8000>;
817			reg-names = "slimcore", "dmem", "peripherals", "imem";
818			clocks = <&clk_s_c0_flexgen CLK_FDMA>,
819				 <&clk_s_c0_flexgen CLK_EXT2F_A9>,
820				 <&clk_s_c0_flexgen CLK_EXT2F_A9>,
821				 <&clk_s_c0_flexgen CLK_EXT2F_A9>;
822			interrupts = <GIC_SPI 5 IRQ_TYPE_NONE>;
823			dma-channels = <16>;
824			#dma-cells = <3>;
825		};
826
827		/* fdma app */
828		fdma1: dma-controller@8e40000 {
829			compatible = "st,stih407-fdma-mpe31-12", "st,slim-rproc";
830			reg = <0x8e40000 0x8000>,
831			      <0x8e50000 0x3000>,
832			      <0x8e57000 0x1000>,
833			      <0x8e58000 0x8000>;
834			reg-names = "slimcore", "dmem", "peripherals", "imem";
835			clocks = <&clk_s_c0_flexgen CLK_FDMA>,
836				<&clk_s_c0_flexgen CLK_TX_ICN_DMU>,
837				<&clk_s_c0_flexgen CLK_TX_ICN_DMU>,
838				<&clk_s_c0_flexgen CLK_EXT2F_A9>;
839
840			interrupts = <GIC_SPI 7 IRQ_TYPE_NONE>;
841			dma-channels = <16>;
842			#dma-cells = <3>;
843		};
844
845		/* fdma free running */
846		fdma2: dma-controller@8e60000 {
847			compatible = "st,stih407-fdma-mpe31-13", "st,slim-rproc";
848			reg = <0x8e60000 0x8000>,
849			      <0x8e70000 0x3000>,
850			      <0x8e77000 0x1000>,
851			      <0x8e78000 0x8000>;
852			reg-names = "slimcore", "dmem", "peripherals", "imem";
853			interrupts = <GIC_SPI 9 IRQ_TYPE_NONE>;
854			dma-channels = <16>;
855			#dma-cells = <3>;
856			clocks = <&clk_s_c0_flexgen CLK_FDMA>,
857				<&clk_s_c0_flexgen CLK_EXT2F_A9>,
858				<&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>,
859				<&clk_s_c0_flexgen CLK_EXT2F_A9>;
860		};
861
862		sti_sasg_codec: sti-sasg-codec {
863			compatible = "st,stih407-sas-codec";
864			#sound-dai-cells = <1>;
865			status = "disabled";
866			st,syscfg = <&syscfg_core>;
867		};
868
869		sti_uni_player0: sti-uni-player@8d80000 {
870			compatible = "st,stih407-uni-player-hdmi";
871			#sound-dai-cells = <0>;
872			st,syscfg = <&syscfg_core>;
873			clocks = <&clk_s_d0_flexgen CLK_PCM_0>;
874			assigned-clocks = <&clk_s_d0_quadfs 0>, <&clk_s_d0_flexgen CLK_PCM_0>;
875			assigned-clock-parents = <0>, <&clk_s_d0_quadfs 0>;
876			assigned-clock-rates = <50000000>;
877			reg = <0x8d80000 0x158>;
878			interrupts = <GIC_SPI 84 IRQ_TYPE_NONE>;
879			dmas = <&fdma0 2 0 1>;
880			dma-names = "tx";
881
882			status		= "disabled";
883		};
884
885		sti_uni_player1: sti-uni-player@8d81000 {
886			compatible = "st,stih407-uni-player-pcm-out";
887			#sound-dai-cells = <0>;
888			st,syscfg = <&syscfg_core>;
889			clocks = <&clk_s_d0_flexgen CLK_PCM_1>;
890			assigned-clocks = <&clk_s_d0_quadfs 1>, <&clk_s_d0_flexgen CLK_PCM_1>;
891			assigned-clock-parents = <0>, <&clk_s_d0_quadfs 1>;
892			assigned-clock-rates = <50000000>;
893			reg = <0x8d81000 0x158>;
894			interrupts = <GIC_SPI 85 IRQ_TYPE_NONE>;
895			dmas = <&fdma0 3 0 1>;
896			dma-names = "tx";
897
898			status = "disabled";
899		};
900
901		sti_uni_player2: sti-uni-player@8d82000 {
902			compatible = "st,stih407-uni-player-dac";
903			#sound-dai-cells = <0>;
904			st,syscfg = <&syscfg_core>;
905			clocks = <&clk_s_d0_flexgen CLK_PCM_2>;
906			assigned-clocks = <&clk_s_d0_quadfs 2>, <&clk_s_d0_flexgen CLK_PCM_2>;
907			assigned-clock-parents = <0>, <&clk_s_d0_quadfs 2>;
908			assigned-clock-rates = <50000000>;
909			reg = <0x8d82000 0x158>;
910			interrupts = <GIC_SPI 86 IRQ_TYPE_NONE>;
911			dmas = <&fdma0 4 0 1>;
912			dma-names = "tx";
913
914			status = "disabled";
915		};
916
917		sti_uni_player3: sti-uni-player@8d85000 {
918			compatible = "st,stih407-uni-player-spdif";
919			#sound-dai-cells = <0>;
920			st,syscfg = <&syscfg_core>;
921			clocks = <&clk_s_d0_flexgen CLK_SPDIFF>;
922			assigned-clocks = <&clk_s_d0_quadfs 3>, <&clk_s_d0_flexgen CLK_SPDIFF>;
923			assigned-clock-parents = <0>, <&clk_s_d0_quadfs 3>;
924			assigned-clock-rates = <50000000>;
925			reg = <0x8d85000 0x158>;
926			interrupts = <GIC_SPI 89 IRQ_TYPE_NONE>;
927			dmas = <&fdma0 7 0 1>;
928			dma-names = "tx";
929
930			status = "disabled";
931		};
932
933		sti_uni_reader0: sti-uni-reader@8d83000 {
934			compatible = "st,stih407-uni-reader-pcm_in";
935			#sound-dai-cells = <0>;
936			st,syscfg = <&syscfg_core>;
937			reg = <0x8d83000 0x158>;
938			interrupts = <GIC_SPI 87 IRQ_TYPE_NONE>;
939			dmas = <&fdma0 5 0 1>;
940			dma-names = "rx";
941
942			status = "disabled";
943		};
944
945		sti_uni_reader1: sti-uni-reader@8d84000 {
946			compatible = "st,stih407-uni-reader-hdmi";
947			#sound-dai-cells = <0>;
948			st,syscfg = <&syscfg_core>;
949			reg = <0x8d84000 0x158>;
950			interrupts = <GIC_SPI 88 IRQ_TYPE_NONE>;
951			dmas = <&fdma0 6 0 1>;
952			dma-names = "rx";
953
954			status = "disabled";
955		};
956
957		rc: rc@09518000 {
958			compatible = "st,comms-irb";
959			reg = <0x09518000 0x234>;
960			interrupts = <GIC_SPI 132 IRQ_TYPE_NONE>;
961			rx-mode = "infrared";
962			pinctrl-names = "default";
963			pinctrl-0 = <&pinctrl_ir
964				     &pinctrl_uhf
965				     &pinctrl_tx
966				     &pinctrl_tx_od>;
967			clocks = <&clk_sysin>;
968			resets = <&softreset STIH407_IRB_SOFTRESET>;
969
970			status = "disabled";
971		};
972
973		socinfo {
974			compatible = "st,stih407-socinfo";
975			st,syscfg = <&syscfg_core>;
976		};
977	};
978};
979