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