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