1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-or-later
2*724ba675SRob Herring/*
3*724ba675SRob Herring * wm8505.dtsi - Device tree file for Wondermedia WM8505 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,wm8505";
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,arm926ej-s";
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 	};
36*724ba675SRob Herring
37*724ba675SRob Herring	soc {
38*724ba675SRob Herring		#address-cells = <1>;
39*724ba675SRob Herring		#size-cells = <1>;
40*724ba675SRob Herring		compatible = "simple-bus";
41*724ba675SRob Herring		ranges;
42*724ba675SRob Herring		interrupt-parent = <&intc0>;
43*724ba675SRob Herring
44*724ba675SRob Herring		intc0: interrupt-controller@d8140000 {
45*724ba675SRob Herring			compatible = "via,vt8500-intc";
46*724ba675SRob Herring			interrupt-controller;
47*724ba675SRob Herring			reg = <0xd8140000 0x10000>;
48*724ba675SRob Herring			#interrupt-cells = <1>;
49*724ba675SRob Herring		};
50*724ba675SRob Herring
51*724ba675SRob Herring		/* Secondary IC cascaded to intc0 */
52*724ba675SRob Herring		intc1: interrupt-controller@d8150000 {
53*724ba675SRob Herring			compatible = "via,vt8500-intc";
54*724ba675SRob Herring			interrupt-controller;
55*724ba675SRob Herring			#interrupt-cells = <1>;
56*724ba675SRob Herring			reg = <0xD8150000 0x10000>;
57*724ba675SRob Herring			interrupts = <56 57 58 59 60 61 62 63>;
58*724ba675SRob Herring		};
59*724ba675SRob Herring
60*724ba675SRob Herring		pinctrl: pinctrl@d8110000 {
61*724ba675SRob Herring			compatible = "wm,wm8505-pinctrl";
62*724ba675SRob Herring			reg = <0xd8110000 0x10000>;
63*724ba675SRob Herring			interrupt-controller;
64*724ba675SRob Herring			#interrupt-cells = <2>;
65*724ba675SRob Herring			gpio-controller;
66*724ba675SRob Herring			#gpio-cells = <2>;
67*724ba675SRob Herring		};
68*724ba675SRob Herring
69*724ba675SRob Herring		pmc@d8130000 {
70*724ba675SRob Herring			compatible = "via,vt8500-pmc";
71*724ba675SRob Herring			reg = <0xd8130000 0x1000>;
72*724ba675SRob Herring			clocks {
73*724ba675SRob Herring				#address-cells = <1>;
74*724ba675SRob Herring				#size-cells = <0>;
75*724ba675SRob Herring
76*724ba675SRob Herring				ref24: ref24M {
77*724ba675SRob Herring					#clock-cells = <0>;
78*724ba675SRob Herring					compatible = "fixed-clock";
79*724ba675SRob Herring					clock-frequency = <24000000>;
80*724ba675SRob Herring				};
81*724ba675SRob Herring
82*724ba675SRob Herring				ref25: ref25M {
83*724ba675SRob Herring					#clock-cells = <0>;
84*724ba675SRob Herring					compatible = "fixed-clock";
85*724ba675SRob Herring					clock-frequency = <25000000>;
86*724ba675SRob Herring				};
87*724ba675SRob Herring
88*724ba675SRob Herring				plla: plla {
89*724ba675SRob Herring					#clock-cells = <0>;
90*724ba675SRob Herring					compatible = "via,vt8500-pll-clock";
91*724ba675SRob Herring					clocks = <&ref25>;
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 = "via,vt8500-pll-clock";
98*724ba675SRob Herring					clocks = <&ref25>;
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 = "via,vt8500-pll-clock";
105*724ba675SRob Herring					clocks = <&ref25>;
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 = "via,vt8500-pll-clock";
112*724ba675SRob Herring					clocks = <&ref25>;
113*724ba675SRob Herring					reg = <0x20c>;
114*724ba675SRob Herring				};
115*724ba675SRob Herring
116*724ba675SRob Herring				clkarm: arm {
117*724ba675SRob Herring					#clock-cells = <0>;
118*724ba675SRob Herring					compatible = "via,vt8500-device-clock";
119*724ba675SRob Herring					clocks = <&plla>;
120*724ba675SRob Herring					divisor-reg = <0x300>;
121*724ba675SRob Herring				};
122*724ba675SRob Herring
123*724ba675SRob Herring				clkahb: ahb {
124*724ba675SRob Herring					#clock-cells = <0>;
125*724ba675SRob Herring					compatible = "via,vt8500-device-clock";
126*724ba675SRob Herring					clocks = <&pllb>;
127*724ba675SRob Herring					divisor-reg = <0x304>;
128*724ba675SRob Herring				};
129*724ba675SRob Herring
130*724ba675SRob Herring				clkapb: apb {
131*724ba675SRob Herring					#clock-cells = <0>;
132*724ba675SRob Herring					compatible = "via,vt8500-device-clock";
133*724ba675SRob Herring					clocks = <&pllb>;
134*724ba675SRob Herring					divisor-reg = <0x350>;
135*724ba675SRob Herring				};
136*724ba675SRob Herring
137*724ba675SRob Herring				clkddr: ddr {
138*724ba675SRob Herring					#clock-cells = <0>;
139*724ba675SRob Herring					compatible = "via,vt8500-device-clock";
140*724ba675SRob Herring					clocks = <&plld>;
141*724ba675SRob Herring					divisor-reg = <0x310>;
142*724ba675SRob Herring				};
143*724ba675SRob Herring
144*724ba675SRob Herring				clkuart0: uart0 {
145*724ba675SRob Herring					#clock-cells = <0>;
146*724ba675SRob Herring					compatible = "via,vt8500-device-clock";
147*724ba675SRob Herring					clocks = <&ref24>;
148*724ba675SRob Herring					enable-reg = <0x250>;
149*724ba675SRob Herring					enable-bit = <1>;
150*724ba675SRob Herring				};
151*724ba675SRob Herring
152*724ba675SRob Herring				clkuart1: uart1 {
153*724ba675SRob Herring					#clock-cells = <0>;
154*724ba675SRob Herring					compatible = "via,vt8500-device-clock";
155*724ba675SRob Herring					clocks = <&ref24>;
156*724ba675SRob Herring					enable-reg = <0x250>;
157*724ba675SRob Herring					enable-bit = <2>;
158*724ba675SRob Herring				};
159*724ba675SRob Herring
160*724ba675SRob Herring				clkuart2: uart2 {
161*724ba675SRob Herring					#clock-cells = <0>;
162*724ba675SRob Herring					compatible = "via,vt8500-device-clock";
163*724ba675SRob Herring					clocks = <&ref24>;
164*724ba675SRob Herring					enable-reg = <0x250>;
165*724ba675SRob Herring					enable-bit = <3>;
166*724ba675SRob Herring				};
167*724ba675SRob Herring
168*724ba675SRob Herring				clkuart3: uart3 {
169*724ba675SRob Herring					#clock-cells = <0>;
170*724ba675SRob Herring					compatible = "via,vt8500-device-clock";
171*724ba675SRob Herring					clocks = <&ref24>;
172*724ba675SRob Herring					enable-reg = <0x250>;
173*724ba675SRob Herring					enable-bit = <4>;
174*724ba675SRob Herring				};
175*724ba675SRob Herring
176*724ba675SRob Herring				clkuart4: uart4 {
177*724ba675SRob Herring					#clock-cells = <0>;
178*724ba675SRob Herring					compatible = "via,vt8500-device-clock";
179*724ba675SRob Herring					clocks = <&ref24>;
180*724ba675SRob Herring					enable-reg = <0x250>;
181*724ba675SRob Herring					enable-bit = <22>;
182*724ba675SRob Herring				};
183*724ba675SRob Herring
184*724ba675SRob Herring				clkuart5: uart5 {
185*724ba675SRob Herring					#clock-cells = <0>;
186*724ba675SRob Herring					compatible = "via,vt8500-device-clock";
187*724ba675SRob Herring					clocks = <&ref24>;
188*724ba675SRob Herring					enable-reg = <0x250>;
189*724ba675SRob Herring					enable-bit = <23>;
190*724ba675SRob Herring				};
191*724ba675SRob Herring
192*724ba675SRob Herring				clksdhc: sdhc {
193*724ba675SRob Herring					#clock-cells = <0>;
194*724ba675SRob Herring					compatible = "via,vt8500-device-clock";
195*724ba675SRob Herring					clocks = <&pllb>;
196*724ba675SRob Herring					divisor-reg = <0x328>;
197*724ba675SRob Herring					divisor-mask = <0x3f>;
198*724ba675SRob Herring					enable-reg = <0x254>;
199*724ba675SRob Herring					enable-bit = <18>;
200*724ba675SRob Herring				};
201*724ba675SRob Herring			};
202*724ba675SRob Herring		};
203*724ba675SRob Herring
204*724ba675SRob Herring		timer@d8130100 {
205*724ba675SRob Herring			compatible = "via,vt8500-timer";
206*724ba675SRob Herring			reg = <0xd8130100 0x28>;
207*724ba675SRob Herring			interrupts = <36>;
208*724ba675SRob Herring		};
209*724ba675SRob Herring
210*724ba675SRob Herring		ehci@d8007100 {
211*724ba675SRob Herring			compatible = "via,vt8500-ehci";
212*724ba675SRob Herring			reg = <0xd8007100 0x200>;
213*724ba675SRob Herring			interrupts = <1>;
214*724ba675SRob Herring		};
215*724ba675SRob Herring
216*724ba675SRob Herring		uhci@d8007300 {
217*724ba675SRob Herring			compatible = "platform-uhci";
218*724ba675SRob Herring			reg = <0xd8007300 0x200>;
219*724ba675SRob Herring			interrupts = <0>;
220*724ba675SRob Herring		};
221*724ba675SRob Herring
222*724ba675SRob Herring		fb: fb@d8050800 {
223*724ba675SRob Herring			compatible = "wm,wm8505-fb";
224*724ba675SRob Herring			reg = <0xd8050800 0x200>;
225*724ba675SRob Herring		};
226*724ba675SRob Herring
227*724ba675SRob Herring		ge_rops@d8050400 {
228*724ba675SRob Herring			compatible = "wm,prizm-ge-rops";
229*724ba675SRob Herring			reg = <0xd8050400 0x100>;
230*724ba675SRob Herring		};
231*724ba675SRob Herring
232*724ba675SRob Herring		uart0: serial@d8200000 {
233*724ba675SRob Herring			compatible = "via,vt8500-uart";
234*724ba675SRob Herring			reg = <0xd8200000 0x1040>;
235*724ba675SRob Herring			interrupts = <32>;
236*724ba675SRob Herring			clocks = <&clkuart0>;
237*724ba675SRob Herring			status = "disabled";
238*724ba675SRob Herring		};
239*724ba675SRob Herring
240*724ba675SRob Herring		uart1: serial@d82b0000 {
241*724ba675SRob Herring			compatible = "via,vt8500-uart";
242*724ba675SRob Herring			reg = <0xd82b0000 0x1040>;
243*724ba675SRob Herring			interrupts = <33>;
244*724ba675SRob Herring			clocks = <&clkuart1>;
245*724ba675SRob Herring			status = "disabled";
246*724ba675SRob Herring		};
247*724ba675SRob Herring
248*724ba675SRob Herring		uart2: serial@d8210000 {
249*724ba675SRob Herring			compatible = "via,vt8500-uart";
250*724ba675SRob Herring			reg = <0xd8210000 0x1040>;
251*724ba675SRob Herring			interrupts = <47>;
252*724ba675SRob Herring			clocks = <&clkuart2>;
253*724ba675SRob Herring			status = "disabled";
254*724ba675SRob Herring		};
255*724ba675SRob Herring
256*724ba675SRob Herring		uart3: serial@d82c0000 {
257*724ba675SRob Herring			compatible = "via,vt8500-uart";
258*724ba675SRob Herring			reg = <0xd82c0000 0x1040>;
259*724ba675SRob Herring			interrupts = <50>;
260*724ba675SRob Herring			clocks = <&clkuart3>;
261*724ba675SRob Herring			status = "disabled";
262*724ba675SRob Herring		};
263*724ba675SRob Herring
264*724ba675SRob Herring		uart4: serial@d8370000 {
265*724ba675SRob Herring			compatible = "via,vt8500-uart";
266*724ba675SRob Herring			reg = <0xd8370000 0x1040>;
267*724ba675SRob Herring			interrupts = <31>;
268*724ba675SRob Herring			clocks = <&clkuart4>;
269*724ba675SRob Herring			status = "disabled";
270*724ba675SRob Herring		};
271*724ba675SRob Herring
272*724ba675SRob Herring		uart5: serial@d8380000 {
273*724ba675SRob Herring			compatible = "via,vt8500-uart";
274*724ba675SRob Herring			reg = <0xd8380000 0x1040>;
275*724ba675SRob Herring			interrupts = <30>;
276*724ba675SRob Herring			clocks = <&clkuart5>;
277*724ba675SRob Herring			status = "disabled";
278*724ba675SRob Herring		};
279*724ba675SRob Herring
280*724ba675SRob Herring		rtc@d8100000 {
281*724ba675SRob Herring			compatible = "via,vt8500-rtc";
282*724ba675SRob Herring			reg = <0xd8100000 0x10000>;
283*724ba675SRob Herring			interrupts = <48>;
284*724ba675SRob Herring		};
285*724ba675SRob Herring
286*724ba675SRob Herring		sdhc@d800a000 {
287*724ba675SRob Herring			compatible = "wm,wm8505-sdhc";
288*724ba675SRob Herring			reg = <0xd800a000 0x400>;
289*724ba675SRob Herring			interrupts = <20>, <21>;
290*724ba675SRob Herring			clocks = <&clksdhc>;
291*724ba675SRob Herring			bus-width = <4>;
292*724ba675SRob Herring		};
293*724ba675SRob Herring	};
294*724ba675SRob Herring};
295