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