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