Linux Audio

Check our new training course

Linux BSP development engineering services

Need help to port Linux and bootloaders to your hardware?
Loading...
  1// SPDX-License-Identifier: GPL-2.0-or-later
  2/*
  3 * wm8650.dtsi - Device tree file for Wondermedia WM8650 SoC
  4 *
  5 * Copyright (C) 2012 Tony Prisk <linux@prisktech.co.nz>
  6 */
  7
  8/ {
  9	#address-cells = <1>;
 10	#size-cells = <1>;
 11	compatible = "wm,wm8650";
 12
 13	cpus {
 14		#address-cells = <0>;
 15		#size-cells = <0>;
 16
 17		cpu {
 18			device_type = "cpu";
 19			compatible = "arm,arm926ej-s";
 20		};
 21	};
 22
 23	memory {
 24		device_type = "memory";
 25		reg = <0x0 0x0>;
 26	};
 27
 28 	aliases {
 29		serial0 = &uart0;
 30		serial1 = &uart1;
 31	};
 32
 33	soc {
 34		#address-cells = <1>;
 35		#size-cells = <1>;
 36		compatible = "simple-bus";
 37		ranges;
 38		interrupt-parent = <&intc0>;
 39
 40		intc0: interrupt-controller@d8140000 {
 41			compatible = "via,vt8500-intc";
 42			interrupt-controller;
 43			reg = <0xd8140000 0x10000>;
 44			#interrupt-cells = <1>;
 45		};
 46
 47		/* Secondary IC cascaded to intc0 */
 48		intc1: interrupt-controller@d8150000 {
 49			compatible = "via,vt8500-intc";
 50			interrupt-controller;
 51			#interrupt-cells = <1>;
 52			reg = <0xD8150000 0x10000>;
 53			interrupts = <56 57 58 59 60 61 62 63>;
 54		};
 55
 56		pinctrl: pinctrl@d8110000 {
 57			compatible = "wm,wm8650-pinctrl";
 58			reg = <0xd8110000 0x10000>;
 59			interrupt-controller;
 60			#interrupt-cells = <2>;
 61			gpio-controller;
 62			#gpio-cells = <2>;
 63		};
 64
 65		pmc@d8130000 {
 66			compatible = "via,vt8500-pmc";
 67			reg = <0xd8130000 0x1000>;
 68
 69			clocks {
 70				#address-cells = <1>;
 71				#size-cells = <0>;
 72
 73				ref25: ref25M {
 74					#clock-cells = <0>;
 75					compatible = "fixed-clock";
 76					clock-frequency = <25000000>;
 77				};
 78
 79				ref24: ref24M {
 80					#clock-cells = <0>;
 81					compatible = "fixed-clock";
 82					clock-frequency = <24000000>;
 83				};
 84
 85				plla: plla {
 86					#clock-cells = <0>;
 87					compatible = "wm,wm8650-pll-clock";
 88					clocks = <&ref25>;
 89					reg = <0x200>;
 90				};
 91
 92				pllb: pllb {
 93					#clock-cells = <0>;
 94					compatible = "wm,wm8650-pll-clock";
 95					clocks = <&ref25>;
 96					reg = <0x204>;
 97				};
 98
 99				pllc: pllc {
100					#clock-cells = <0>;
101					compatible = "wm,wm8650-pll-clock";
102					clocks = <&ref25>;
103					reg = <0x208>;
104				};
105
106				plld: plld {
107					#clock-cells = <0>;
108					compatible = "wm,wm8650-pll-clock";
109					clocks = <&ref25>;
110					reg = <0x20c>;
111				};
112
113				plle: plle {
114					#clock-cells = <0>;
115					compatible = "wm,wm8650-pll-clock";
116					clocks = <&ref25>;
117					reg = <0x210>;
118				};
119
120				clkarm: arm {
121					#clock-cells = <0>;
122					compatible = "via,vt8500-device-clock";
123					clocks = <&plla>;
124					divisor-reg = <0x300>;
125				};
126
127				clkahb: ahb {
128					#clock-cells = <0>;
129					compatible = "via,vt8500-device-clock";
130					clocks = <&pllb>;
131					divisor-reg = <0x304>;
132				};
133
134				clkapb: apb {
135					#clock-cells = <0>;
136					compatible = "via,vt8500-device-clock";
137					clocks = <&pllb>;
138					divisor-reg = <0x320>;
139				};
140
141				clkddr: ddr {
142					#clock-cells = <0>;
143					compatible = "via,vt8500-device-clock";
144					clocks = <&plld>;
145					divisor-reg = <0x310>;
146				};
147
148				clkuart0: uart0 {
149 					#clock-cells = <0>;
150 					compatible = "via,vt8500-device-clock";
151					clocks = <&ref24>;
152					enable-reg = <0x250>;
153					enable-bit = <1>;
154 				};
155
156				clkuart1: uart1 {
157					#clock-cells = <0>;
158					compatible = "via,vt8500-device-clock";
159					clocks = <&ref24>;
160					enable-reg = <0x250>;
161					enable-bit = <2>;
162				};
163
164				clksdhc: sdhc {
165					#clock-cells = <0>;
166					compatible = "via,vt8500-device-clock";
167					clocks = <&pllb>;
168					divisor-reg = <0x328>;
169					divisor-mask = <0x3f>;
170					enable-reg = <0x254>;
171					enable-bit = <18>;
172				};
173			};
174		};
175
176		timer@d8130100 {
177			compatible = "via,vt8500-timer";
178			reg = <0xd8130100 0x28>;
179			interrupts = <36>;
180		};
181
182		ehci@d8007900 {
183			compatible = "via,vt8500-ehci";
184			reg = <0xd8007900 0x200>;
185			interrupts = <43>;
186		};
187
188		uhci@d8007b00 {
189			compatible = "platform-uhci";
190			reg = <0xd8007b00 0x200>;
191			interrupts = <43>;
192		};
193
194		sdhc@d800a000 {
195			compatible = "wm,wm8505-sdhc";
196			reg = <0xd800a000 0x400>;
197			interrupts = <20>, <21>;
198			clocks = <&clksdhc>;
199			bus-width = <4>;
200			sdon-inverted;
201		};
202
203		fb: fb@d8050800 {
204			compatible = "wm,wm8505-fb";
205			reg = <0xd8050800 0x200>;
206		};
207
208		ge_rops@d8050400 {
209			compatible = "wm,prizm-ge-rops";
210			reg = <0xd8050400 0x100>;
211		};
212
213		uart0: serial@d8200000 {
214			compatible = "via,vt8500-uart";
215			reg = <0xd8200000 0x1040>;
216			interrupts = <32>;
217			clocks = <&clkuart0>;
218			status = "disabled";
219		};
220
221		uart1: serial@d82b0000 {
222			compatible = "via,vt8500-uart";
223			reg = <0xd82b0000 0x1040>;
224			interrupts = <33>;
225			clocks = <&clkuart1>;
226			status = "disabled";
227		};
228
229		rtc@d8100000 {
230			compatible = "via,vt8500-rtc";
231			reg = <0xd8100000 0x10000>;
232			interrupts = <48>;
233		};
234
235		ethernet@d8004000 {
236			compatible = "via,vt8500-rhine";
237			reg = <0xd8004000 0x100>;
238			interrupts = <10>;
239		};
240	};
241};