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 usb@d8007b00 { 248 compatible = "platform-uhci"; 249 reg = <0xd8007b00 0x200>; 250 interrupts = <26>; 251 }; 252 253 usb@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}; 313