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