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