1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-or-later
2*f126890aSEmmanuel Vadot/*
3*f126890aSEmmanuel Vadot * wm8750.dtsi - Device tree file for Wondermedia WM8750 SoC
4*f126890aSEmmanuel Vadot *
5*f126890aSEmmanuel Vadot * Copyright (C) 2012 Tony Prisk <linux@prisktech.co.nz>
6*f126890aSEmmanuel Vadot */
7*f126890aSEmmanuel Vadot
8*f126890aSEmmanuel Vadot/ {
9*f126890aSEmmanuel Vadot	#address-cells = <1>;
10*f126890aSEmmanuel Vadot	#size-cells = <1>;
11*f126890aSEmmanuel Vadot	compatible = "wm,wm8750";
12*f126890aSEmmanuel Vadot
13*f126890aSEmmanuel Vadot	cpus {
14*f126890aSEmmanuel Vadot		#address-cells = <0>;
15*f126890aSEmmanuel Vadot		#size-cells = <0>;
16*f126890aSEmmanuel Vadot
17*f126890aSEmmanuel Vadot		cpu {
18*f126890aSEmmanuel Vadot			device_type = "cpu";
19*f126890aSEmmanuel Vadot			compatible = "arm,arm1176jzf";
20*f126890aSEmmanuel Vadot		};
21*f126890aSEmmanuel Vadot	};
22*f126890aSEmmanuel Vadot
23*f126890aSEmmanuel Vadot	memory {
24*f126890aSEmmanuel Vadot		device_type = "memory";
25*f126890aSEmmanuel Vadot		reg = <0x0 0x0>;
26*f126890aSEmmanuel Vadot	};
27*f126890aSEmmanuel Vadot
28*f126890aSEmmanuel Vadot	aliases {
29*f126890aSEmmanuel Vadot		serial0 = &uart0;
30*f126890aSEmmanuel Vadot		serial1 = &uart1;
31*f126890aSEmmanuel Vadot		serial2 = &uart2;
32*f126890aSEmmanuel Vadot		serial3 = &uart3;
33*f126890aSEmmanuel Vadot		serial4 = &uart4;
34*f126890aSEmmanuel Vadot		serial5 = &uart5;
35*f126890aSEmmanuel Vadot		i2c0 = &i2c_0;
36*f126890aSEmmanuel Vadot		i2c1 = &i2c_1;
37*f126890aSEmmanuel Vadot	};
38*f126890aSEmmanuel Vadot
39*f126890aSEmmanuel Vadot	soc {
40*f126890aSEmmanuel Vadot		#address-cells = <1>;
41*f126890aSEmmanuel Vadot		#size-cells = <1>;
42*f126890aSEmmanuel Vadot		compatible = "simple-bus";
43*f126890aSEmmanuel Vadot		ranges;
44*f126890aSEmmanuel Vadot		interrupt-parent = <&intc0>;
45*f126890aSEmmanuel Vadot
46*f126890aSEmmanuel Vadot		intc0: interrupt-controller@d8140000 {
47*f126890aSEmmanuel Vadot			compatible = "via,vt8500-intc";
48*f126890aSEmmanuel Vadot			interrupt-controller;
49*f126890aSEmmanuel Vadot			reg = <0xd8140000 0x10000>;
50*f126890aSEmmanuel Vadot			#interrupt-cells = <1>;
51*f126890aSEmmanuel Vadot		};
52*f126890aSEmmanuel Vadot
53*f126890aSEmmanuel Vadot		/* Secondary IC cascaded to intc0 */
54*f126890aSEmmanuel Vadot		intc1: interrupt-controller@d8150000 {
55*f126890aSEmmanuel Vadot			compatible = "via,vt8500-intc";
56*f126890aSEmmanuel Vadot			interrupt-controller;
57*f126890aSEmmanuel Vadot			#interrupt-cells = <1>;
58*f126890aSEmmanuel Vadot			reg = <0xD8150000 0x10000>;
59*f126890aSEmmanuel Vadot			interrupts = <56 57 58 59 60 61 62 63>;
60*f126890aSEmmanuel Vadot		};
61*f126890aSEmmanuel Vadot
62*f126890aSEmmanuel Vadot		pinctrl: pinctrl@d8110000 {
63*f126890aSEmmanuel Vadot			compatible = "wm,wm8750-pinctrl";
64*f126890aSEmmanuel Vadot			reg = <0xd8110000 0x10000>;
65*f126890aSEmmanuel Vadot			interrupt-controller;
66*f126890aSEmmanuel Vadot			#interrupt-cells = <2>;
67*f126890aSEmmanuel Vadot			gpio-controller;
68*f126890aSEmmanuel Vadot			#gpio-cells = <2>;
69*f126890aSEmmanuel Vadot		};
70*f126890aSEmmanuel Vadot
71*f126890aSEmmanuel Vadot		pmc@d8130000 {
72*f126890aSEmmanuel Vadot			compatible = "via,vt8500-pmc";
73*f126890aSEmmanuel Vadot			reg = <0xd8130000 0x1000>;
74*f126890aSEmmanuel Vadot
75*f126890aSEmmanuel Vadot			clocks {
76*f126890aSEmmanuel Vadot				#address-cells = <1>;
77*f126890aSEmmanuel Vadot				#size-cells = <0>;
78*f126890aSEmmanuel Vadot
79*f126890aSEmmanuel Vadot				ref24: ref24M {
80*f126890aSEmmanuel Vadot					#clock-cells = <0>;
81*f126890aSEmmanuel Vadot					compatible = "fixed-clock";
82*f126890aSEmmanuel Vadot					clock-frequency = <24000000>;
83*f126890aSEmmanuel Vadot				};
84*f126890aSEmmanuel Vadot
85*f126890aSEmmanuel Vadot				ref25: ref25M {
86*f126890aSEmmanuel Vadot					#clock-cells = <0>;
87*f126890aSEmmanuel Vadot					compatible = "fixed-clock";
88*f126890aSEmmanuel Vadot					clock-frequency = <25000000>;
89*f126890aSEmmanuel Vadot				};
90*f126890aSEmmanuel Vadot
91*f126890aSEmmanuel Vadot				plla: plla {
92*f126890aSEmmanuel Vadot					#clock-cells = <0>;
93*f126890aSEmmanuel Vadot					compatible = "wm,wm8750-pll-clock";
94*f126890aSEmmanuel Vadot					clocks = <&ref25>;
95*f126890aSEmmanuel Vadot					reg = <0x200>;
96*f126890aSEmmanuel Vadot				};
97*f126890aSEmmanuel Vadot
98*f126890aSEmmanuel Vadot				pllb: pllb {
99*f126890aSEmmanuel Vadot					#clock-cells = <0>;
100*f126890aSEmmanuel Vadot					compatible = "wm,wm8750-pll-clock";
101*f126890aSEmmanuel Vadot					clocks = <&ref25>;
102*f126890aSEmmanuel Vadot					reg = <0x204>;
103*f126890aSEmmanuel Vadot				};
104*f126890aSEmmanuel Vadot
105*f126890aSEmmanuel Vadot				pllc: pllc {
106*f126890aSEmmanuel Vadot					#clock-cells = <0>;
107*f126890aSEmmanuel Vadot					compatible = "wm,wm8750-pll-clock";
108*f126890aSEmmanuel Vadot					clocks = <&ref25>;
109*f126890aSEmmanuel Vadot					reg = <0x208>;
110*f126890aSEmmanuel Vadot				};
111*f126890aSEmmanuel Vadot
112*f126890aSEmmanuel Vadot				plld: plld {
113*f126890aSEmmanuel Vadot					#clock-cells = <0>;
114*f126890aSEmmanuel Vadot					compatible = "wm,wm8750-pll-clock";
115*f126890aSEmmanuel Vadot					clocks = <&ref25>;
116*f126890aSEmmanuel Vadot					reg = <0x20C>;
117*f126890aSEmmanuel Vadot				};
118*f126890aSEmmanuel Vadot
119*f126890aSEmmanuel Vadot				plle: plle {
120*f126890aSEmmanuel Vadot					#clock-cells = <0>;
121*f126890aSEmmanuel Vadot					compatible = "wm,wm8750-pll-clock";
122*f126890aSEmmanuel Vadot					clocks = <&ref25>;
123*f126890aSEmmanuel Vadot					reg = <0x210>;
124*f126890aSEmmanuel Vadot				};
125*f126890aSEmmanuel Vadot
126*f126890aSEmmanuel Vadot				clkarm: arm {
127*f126890aSEmmanuel Vadot					#clock-cells = <0>;
128*f126890aSEmmanuel Vadot					compatible = "via,vt8500-device-clock";
129*f126890aSEmmanuel Vadot					clocks = <&plla>;
130*f126890aSEmmanuel Vadot					divisor-reg = <0x300>;
131*f126890aSEmmanuel Vadot				};
132*f126890aSEmmanuel Vadot
133*f126890aSEmmanuel Vadot				clkahb: ahb {
134*f126890aSEmmanuel Vadot					#clock-cells = <0>;
135*f126890aSEmmanuel Vadot					compatible = "via,vt8500-device-clock";
136*f126890aSEmmanuel Vadot					clocks = <&pllb>;
137*f126890aSEmmanuel Vadot					divisor-reg = <0x304>;
138*f126890aSEmmanuel Vadot				};
139*f126890aSEmmanuel Vadot
140*f126890aSEmmanuel Vadot				clkapb: apb {
141*f126890aSEmmanuel Vadot					#clock-cells = <0>;
142*f126890aSEmmanuel Vadot					compatible = "via,vt8500-device-clock";
143*f126890aSEmmanuel Vadot					clocks = <&pllb>;
144*f126890aSEmmanuel Vadot					divisor-reg = <0x320>;
145*f126890aSEmmanuel Vadot				};
146*f126890aSEmmanuel Vadot
147*f126890aSEmmanuel Vadot				clkddr: ddr {
148*f126890aSEmmanuel Vadot					#clock-cells = <0>;
149*f126890aSEmmanuel Vadot					compatible = "via,vt8500-device-clock";
150*f126890aSEmmanuel Vadot					clocks = <&plld>;
151*f126890aSEmmanuel Vadot					divisor-reg = <0x310>;
152*f126890aSEmmanuel Vadot				};
153*f126890aSEmmanuel Vadot
154*f126890aSEmmanuel Vadot				clkuart0: uart0 {
155*f126890aSEmmanuel Vadot					#clock-cells = <0>;
156*f126890aSEmmanuel Vadot					compatible = "via,vt8500-device-clock";
157*f126890aSEmmanuel Vadot					clocks = <&ref24>;
158*f126890aSEmmanuel Vadot					enable-reg = <0x254>;
159*f126890aSEmmanuel Vadot					enable-bit = <24>;
160*f126890aSEmmanuel Vadot				};
161*f126890aSEmmanuel Vadot
162*f126890aSEmmanuel Vadot				clkuart1: uart1 {
163*f126890aSEmmanuel Vadot					#clock-cells = <0>;
164*f126890aSEmmanuel Vadot					compatible = "via,vt8500-device-clock";
165*f126890aSEmmanuel Vadot					clocks = <&ref24>;
166*f126890aSEmmanuel Vadot					enable-reg = <0x254>;
167*f126890aSEmmanuel Vadot					enable-bit = <25>;
168*f126890aSEmmanuel Vadot				};
169*f126890aSEmmanuel Vadot
170*f126890aSEmmanuel Vadot                                clkuart2: uart2 {
171*f126890aSEmmanuel Vadot                                        #clock-cells = <0>;
172*f126890aSEmmanuel Vadot                                        compatible = "via,vt8500-device-clock";
173*f126890aSEmmanuel Vadot                                        clocks = <&ref24>;
174*f126890aSEmmanuel Vadot                                        enable-reg = <0x254>;
175*f126890aSEmmanuel Vadot                                        enable-bit = <26>;
176*f126890aSEmmanuel Vadot                                };
177*f126890aSEmmanuel Vadot
178*f126890aSEmmanuel Vadot                                clkuart3: uart3 {
179*f126890aSEmmanuel Vadot                                        #clock-cells = <0>;
180*f126890aSEmmanuel Vadot                                        compatible = "via,vt8500-device-clock";
181*f126890aSEmmanuel Vadot                                        clocks = <&ref24>;
182*f126890aSEmmanuel Vadot                                        enable-reg = <0x254>;
183*f126890aSEmmanuel Vadot                                        enable-bit = <27>;
184*f126890aSEmmanuel Vadot                                };
185*f126890aSEmmanuel Vadot
186*f126890aSEmmanuel Vadot                                clkuart4: uart4 {
187*f126890aSEmmanuel Vadot                                        #clock-cells = <0>;
188*f126890aSEmmanuel Vadot                                        compatible = "via,vt8500-device-clock";
189*f126890aSEmmanuel Vadot                                        clocks = <&ref24>;
190*f126890aSEmmanuel Vadot                                        enable-reg = <0x254>;
191*f126890aSEmmanuel Vadot                                        enable-bit = <28>;
192*f126890aSEmmanuel Vadot                                };
193*f126890aSEmmanuel Vadot
194*f126890aSEmmanuel Vadot                                clkuart5: uart5 {
195*f126890aSEmmanuel Vadot                                        #clock-cells = <0>;
196*f126890aSEmmanuel Vadot                                        compatible = "via,vt8500-device-clock";
197*f126890aSEmmanuel Vadot                                        clocks = <&ref24>;
198*f126890aSEmmanuel Vadot                                        enable-reg = <0x254>;
199*f126890aSEmmanuel Vadot                                        enable-bit = <29>;
200*f126890aSEmmanuel Vadot                                };
201*f126890aSEmmanuel Vadot
202*f126890aSEmmanuel Vadot				clkpwm: pwm {
203*f126890aSEmmanuel Vadot					#clock-cells = <0>;
204*f126890aSEmmanuel Vadot					compatible = "via,vt8500-device-clock";
205*f126890aSEmmanuel Vadot					clocks = <&pllb>;
206*f126890aSEmmanuel Vadot					divisor-reg = <0x350>;
207*f126890aSEmmanuel Vadot					enable-reg = <0x250>;
208*f126890aSEmmanuel Vadot					enable-bit = <17>;
209*f126890aSEmmanuel Vadot				};
210*f126890aSEmmanuel Vadot
211*f126890aSEmmanuel Vadot				clksdhc: sdhc {
212*f126890aSEmmanuel Vadot					#clock-cells = <0>;
213*f126890aSEmmanuel Vadot					compatible = "via,vt8500-device-clock";
214*f126890aSEmmanuel Vadot					clocks = <&pllb>;
215*f126890aSEmmanuel Vadot					divisor-reg = <0x330>;
216*f126890aSEmmanuel Vadot					divisor-mask = <0x3f>;
217*f126890aSEmmanuel Vadot					enable-reg = <0x250>;
218*f126890aSEmmanuel Vadot					enable-bit = <0>;
219*f126890aSEmmanuel Vadot				};
220*f126890aSEmmanuel Vadot
221*f126890aSEmmanuel Vadot				clki2c0: i2c0clk {
222*f126890aSEmmanuel Vadot					#clock-cells = <0>;
223*f126890aSEmmanuel Vadot					compatible = "via,vt8500-device-clock";
224*f126890aSEmmanuel Vadot					clocks = <&pllb>;
225*f126890aSEmmanuel Vadot					divisor-reg = <0x3A0>;
226*f126890aSEmmanuel Vadot					enable-reg = <0x250>;
227*f126890aSEmmanuel Vadot					enable-bit = <8>;
228*f126890aSEmmanuel Vadot				};
229*f126890aSEmmanuel Vadot
230*f126890aSEmmanuel Vadot				clki2c1: i2c1clk {
231*f126890aSEmmanuel Vadot					#clock-cells = <0>;
232*f126890aSEmmanuel Vadot					compatible = "via,vt8500-device-clock";
233*f126890aSEmmanuel Vadot					clocks = <&pllb>;
234*f126890aSEmmanuel Vadot					divisor-reg = <0x3A4>;
235*f126890aSEmmanuel Vadot					enable-reg = <0x250>;
236*f126890aSEmmanuel Vadot					enable-bit = <9>;
237*f126890aSEmmanuel Vadot				};
238*f126890aSEmmanuel Vadot			};
239*f126890aSEmmanuel Vadot		};
240*f126890aSEmmanuel Vadot
241*f126890aSEmmanuel Vadot		pwm: pwm@d8220000 {
242*f126890aSEmmanuel Vadot			#pwm-cells = <3>;
243*f126890aSEmmanuel Vadot			compatible = "via,vt8500-pwm";
244*f126890aSEmmanuel Vadot			reg = <0xd8220000 0x100>;
245*f126890aSEmmanuel Vadot			clocks = <&clkpwm>;
246*f126890aSEmmanuel Vadot		};
247*f126890aSEmmanuel Vadot
248*f126890aSEmmanuel Vadot		timer@d8130100 {
249*f126890aSEmmanuel Vadot			compatible = "via,vt8500-timer";
250*f126890aSEmmanuel Vadot			reg = <0xd8130100 0x28>;
251*f126890aSEmmanuel Vadot			interrupts = <36>;
252*f126890aSEmmanuel Vadot		};
253*f126890aSEmmanuel Vadot
254*f126890aSEmmanuel Vadot		ehci@d8007900 {
255*f126890aSEmmanuel Vadot			compatible = "via,vt8500-ehci";
256*f126890aSEmmanuel Vadot			reg = <0xd8007900 0x200>;
257*f126890aSEmmanuel Vadot			interrupts = <26>;
258*f126890aSEmmanuel Vadot		};
259*f126890aSEmmanuel Vadot
260*f126890aSEmmanuel Vadot		uhci@d8007b00 {
261*f126890aSEmmanuel Vadot			compatible = "platform-uhci";
262*f126890aSEmmanuel Vadot			reg = <0xd8007b00 0x200>;
263*f126890aSEmmanuel Vadot			interrupts = <26>;
264*f126890aSEmmanuel Vadot		};
265*f126890aSEmmanuel Vadot
266*f126890aSEmmanuel Vadot		uhci@d8008d00 {
267*f126890aSEmmanuel Vadot			compatible = "platform-uhci";
268*f126890aSEmmanuel Vadot			reg = <0xd8008d00 0x200>;
269*f126890aSEmmanuel Vadot			interrupts = <26>;
270*f126890aSEmmanuel Vadot		};
271*f126890aSEmmanuel Vadot
272*f126890aSEmmanuel Vadot		uart0: serial@d8200000 {
273*f126890aSEmmanuel Vadot			compatible = "via,vt8500-uart";
274*f126890aSEmmanuel Vadot			reg = <0xd8200000 0x1040>;
275*f126890aSEmmanuel Vadot			interrupts = <32>;
276*f126890aSEmmanuel Vadot			clocks = <&clkuart0>;
277*f126890aSEmmanuel Vadot			status = "disabled";
278*f126890aSEmmanuel Vadot		};
279*f126890aSEmmanuel Vadot
280*f126890aSEmmanuel Vadot		uart1: serial@d82b0000 {
281*f126890aSEmmanuel Vadot			compatible = "via,vt8500-uart";
282*f126890aSEmmanuel Vadot			reg = <0xd82b0000 0x1040>;
283*f126890aSEmmanuel Vadot			interrupts = <33>;
284*f126890aSEmmanuel Vadot			clocks = <&clkuart1>;
285*f126890aSEmmanuel Vadot			status = "disabled";
286*f126890aSEmmanuel Vadot		};
287*f126890aSEmmanuel Vadot
288*f126890aSEmmanuel Vadot                uart2: serial@d8210000 {
289*f126890aSEmmanuel Vadot                        compatible = "via,vt8500-uart";
290*f126890aSEmmanuel Vadot                        reg = <0xd8210000 0x1040>;
291*f126890aSEmmanuel Vadot                        interrupts = <47>;
292*f126890aSEmmanuel Vadot                        clocks = <&clkuart2>;
293*f126890aSEmmanuel Vadot			status = "disabled";
294*f126890aSEmmanuel Vadot                };
295*f126890aSEmmanuel Vadot
296*f126890aSEmmanuel Vadot                uart3: serial@d82c0000 {
297*f126890aSEmmanuel Vadot                        compatible = "via,vt8500-uart";
298*f126890aSEmmanuel Vadot                        reg = <0xd82c0000 0x1040>;
299*f126890aSEmmanuel Vadot                        interrupts = <50>;
300*f126890aSEmmanuel Vadot                        clocks = <&clkuart3>;
301*f126890aSEmmanuel Vadot			status = "disabled";
302*f126890aSEmmanuel Vadot                };
303*f126890aSEmmanuel Vadot
304*f126890aSEmmanuel Vadot                uart4: serial@d8370000 {
305*f126890aSEmmanuel Vadot                        compatible = "via,vt8500-uart";
306*f126890aSEmmanuel Vadot                        reg = <0xd8370000 0x1040>;
307*f126890aSEmmanuel Vadot                        interrupts = <30>;
308*f126890aSEmmanuel Vadot                        clocks = <&clkuart4>;
309*f126890aSEmmanuel Vadot			status = "disabled";
310*f126890aSEmmanuel Vadot                };
311*f126890aSEmmanuel Vadot
312*f126890aSEmmanuel Vadot                uart5: serial@d8380000 {
313*f126890aSEmmanuel Vadot                        compatible = "via,vt8500-uart";
314*f126890aSEmmanuel Vadot                        reg = <0xd8380000 0x1040>;
315*f126890aSEmmanuel Vadot                        interrupts = <43>;
316*f126890aSEmmanuel Vadot                        clocks = <&clkuart5>;
317*f126890aSEmmanuel Vadot			status = "disabled";
318*f126890aSEmmanuel Vadot                };
319*f126890aSEmmanuel Vadot
320*f126890aSEmmanuel Vadot		rtc@d8100000 {
321*f126890aSEmmanuel Vadot			compatible = "via,vt8500-rtc";
322*f126890aSEmmanuel Vadot			reg = <0xd8100000 0x10000>;
323*f126890aSEmmanuel Vadot			interrupts = <48>;
324*f126890aSEmmanuel Vadot		};
325*f126890aSEmmanuel Vadot
326*f126890aSEmmanuel Vadot		sdhc@d800a000 {
327*f126890aSEmmanuel Vadot			compatible = "wm,wm8505-sdhc";
328*f126890aSEmmanuel Vadot			reg = <0xd800a000 0x1000>;
329*f126890aSEmmanuel Vadot			interrupts = <20 21>;
330*f126890aSEmmanuel Vadot			clocks = <&clksdhc>;
331*f126890aSEmmanuel Vadot			bus-width = <4>;
332*f126890aSEmmanuel Vadot			sdon-inverted;
333*f126890aSEmmanuel Vadot		};
334*f126890aSEmmanuel Vadot
335*f126890aSEmmanuel Vadot		i2c_0: i2c@d8280000 {
336*f126890aSEmmanuel Vadot			compatible = "wm,wm8505-i2c";
337*f126890aSEmmanuel Vadot			reg = <0xd8280000 0x1000>;
338*f126890aSEmmanuel Vadot			interrupts = <19>;
339*f126890aSEmmanuel Vadot			clocks = <&clki2c0>;
340*f126890aSEmmanuel Vadot			clock-frequency = <400000>;
341*f126890aSEmmanuel Vadot		};
342*f126890aSEmmanuel Vadot
343*f126890aSEmmanuel Vadot		i2c_1: i2c@d8320000 {
344*f126890aSEmmanuel Vadot			compatible = "wm,wm8505-i2c";
345*f126890aSEmmanuel Vadot			reg = <0xd8320000 0x1000>;
346*f126890aSEmmanuel Vadot			interrupts = <18>;
347*f126890aSEmmanuel Vadot			clocks = <&clki2c1>;
348*f126890aSEmmanuel Vadot			clock-frequency = <400000>;
349*f126890aSEmmanuel Vadot		};
350*f126890aSEmmanuel Vadot	};
351*f126890aSEmmanuel Vadot};
352