1*bae2d725SRick Chen/dts-v1/; 2*bae2d725SRick Chen 3*bae2d725SRick Chen/ { 4*bae2d725SRick Chen #address-cells = <1>; 5*bae2d725SRick Chen #size-cells = <1>; 6*bae2d725SRick Chen compatible = "andestech,a25"; 7*bae2d725SRick Chen model = "andestech,a25"; 8*bae2d725SRick Chen 9*bae2d725SRick Chen aliases { 10*bae2d725SRick Chen uart0 = &serial0; 11*bae2d725SRick Chen spi0 = &spi; 12*bae2d725SRick Chen }; 13*bae2d725SRick Chen 14*bae2d725SRick Chen chosen { 15*bae2d725SRick Chen bootargs = "console=ttyS0,38400n8 debug loglevel=7"; 16*bae2d725SRick Chen stdout-path = "uart0:38400n8"; 17*bae2d725SRick Chen }; 18*bae2d725SRick Chen 19*bae2d725SRick Chen cpus { 20*bae2d725SRick Chen #address-cells = <1>; 21*bae2d725SRick Chen #size-cells = <0>; 22*bae2d725SRick Chen timebase-frequency = <60000000>; 23*bae2d725SRick Chen CPU0: cpu@0 { 24*bae2d725SRick Chen device_type = "cpu"; 25*bae2d725SRick Chen reg = <0>; 26*bae2d725SRick Chen status = "okay"; 27*bae2d725SRick Chen compatible = "riscv"; 28*bae2d725SRick Chen riscv,isa = "rv32imafdc"; 29*bae2d725SRick Chen mmu-type = "riscv,sv32"; 30*bae2d725SRick Chen clock-frequency = <60000000>; 31*bae2d725SRick Chen d-cache-size = <0x8000>; 32*bae2d725SRick Chen d-cache-line-size = <32>; 33*bae2d725SRick Chen CPU0_intc: interrupt-controller { 34*bae2d725SRick Chen #interrupt-cells = <1>; 35*bae2d725SRick Chen interrupt-controller; 36*bae2d725SRick Chen compatible = "riscv,cpu-intc"; 37*bae2d725SRick Chen }; 38*bae2d725SRick Chen }; 39*bae2d725SRick Chen }; 40*bae2d725SRick Chen 41*bae2d725SRick Chen memory@0 { 42*bae2d725SRick Chen device_type = "memory"; 43*bae2d725SRick Chen reg = <0x00000000 0x40000000>; 44*bae2d725SRick Chen }; 45*bae2d725SRick Chen 46*bae2d725SRick Chen soc { 47*bae2d725SRick Chen #address-cells = <1>; 48*bae2d725SRick Chen #size-cells = <1>; 49*bae2d725SRick Chen compatible = "andestech,riscv-ae350-soc"; 50*bae2d725SRick Chen ranges; 51*bae2d725SRick Chen 52*bae2d725SRick Chen plic0: interrupt-controller@e4000000 { 53*bae2d725SRick Chen compatible = "riscv,plic0"; 54*bae2d725SRick Chen #address-cells = <1>; 55*bae2d725SRick Chen #interrupt-cells = <1>; 56*bae2d725SRick Chen interrupt-controller; 57*bae2d725SRick Chen reg = <0xe4000000 0x2000000>; 58*bae2d725SRick Chen riscv,ndev=<71>; 59*bae2d725SRick Chen interrupts-extended = <&CPU0_intc 11 &CPU0_intc 9>; 60*bae2d725SRick Chen }; 61*bae2d725SRick Chen 62*bae2d725SRick Chen plic1: interrupt-controller@e6400000 { 63*bae2d725SRick Chen compatible = "riscv,plic1"; 64*bae2d725SRick Chen #address-cells = <1>; 65*bae2d725SRick Chen #interrupt-cells = <1>; 66*bae2d725SRick Chen interrupt-controller; 67*bae2d725SRick Chen reg = <0xe6400000 0x400000>; 68*bae2d725SRick Chen riscv,ndev=<1>; 69*bae2d725SRick Chen interrupts-extended = <&CPU0_intc 3>; 70*bae2d725SRick Chen }; 71*bae2d725SRick Chen 72*bae2d725SRick Chen plmt0@e6000000 { 73*bae2d725SRick Chen compatible = "riscv,plmt0"; 74*bae2d725SRick Chen interrupts-extended = <&CPU0_intc 7>; 75*bae2d725SRick Chen reg = <0xe6000000 0x100000>; 76*bae2d725SRick Chen }; 77*bae2d725SRick Chen }; 78*bae2d725SRick Chen 79*bae2d725SRick Chen spiclk: virt_100mhz { 80*bae2d725SRick Chen #clock-cells = <0>; 81*bae2d725SRick Chen compatible = "fixed-clock"; 82*bae2d725SRick Chen clock-frequency = <100000000>; 83*bae2d725SRick Chen }; 84*bae2d725SRick Chen 85*bae2d725SRick Chen timer0: timer@f0400000 { 86*bae2d725SRick Chen compatible = "andestech,atcpit100"; 87*bae2d725SRick Chen reg = <0xf0400000 0x1000>; 88*bae2d725SRick Chen clock-frequency = <60000000>; 89*bae2d725SRick Chen interrupts = <3 4>; 90*bae2d725SRick Chen interrupt-parent = <&plic0>; 91*bae2d725SRick Chen }; 92*bae2d725SRick Chen 93*bae2d725SRick Chen serial0: serial@f0300000 { 94*bae2d725SRick Chen compatible = "andestech,uart16550", "ns16550a"; 95*bae2d725SRick Chen reg = <0xf0300000 0x1000>; 96*bae2d725SRick Chen interrupts = <9 4>; 97*bae2d725SRick Chen clock-frequency = <19660800>; 98*bae2d725SRick Chen reg-shift = <2>; 99*bae2d725SRick Chen reg-offset = <32>; 100*bae2d725SRick Chen no-loopback-test = <1>; 101*bae2d725SRick Chen interrupt-parent = <&plic0>; 102*bae2d725SRick Chen }; 103*bae2d725SRick Chen 104*bae2d725SRick Chen mac0: mac@e0100000 { 105*bae2d725SRick Chen compatible = "andestech,atmac100"; 106*bae2d725SRick Chen reg = <0xe0100000 0x1000>; 107*bae2d725SRick Chen interrupts = <19 4>; 108*bae2d725SRick Chen interrupt-parent = <&plic0>; 109*bae2d725SRick Chen }; 110*bae2d725SRick Chen 111*bae2d725SRick Chen mmc0: mmc@f0e00000 { 112*bae2d725SRick Chen compatible = "andestech,atfsdc010"; 113*bae2d725SRick Chen max-frequency = <100000000>; 114*bae2d725SRick Chen clock-freq-min-max = <400000 100000000>; 115*bae2d725SRick Chen fifo-depth = <0x10>; 116*bae2d725SRick Chen reg = <0xf0e00000 0x1000>; 117*bae2d725SRick Chen interrupts = <18 4>; 118*bae2d725SRick Chen cap-sd-highspeed; 119*bae2d725SRick Chen interrupt-parent = <&plic0>; 120*bae2d725SRick Chen }; 121*bae2d725SRick Chen 122*bae2d725SRick Chen dma0: dma@f0c00000 { 123*bae2d725SRick Chen compatible = "andestech,atcdmac300"; 124*bae2d725SRick Chen reg = <0xf0c00000 0x1000>; 125*bae2d725SRick Chen interrupts = <10 4 64 4 65 4 66 4 67 4 68 4 69 4 70 4 71 4>; 126*bae2d725SRick Chen dma-channels = <8>; 127*bae2d725SRick Chen interrupt-parent = <&plic0>; 128*bae2d725SRick Chen }; 129*bae2d725SRick Chen 130*bae2d725SRick Chen lcd0: lcd@e0200000 { 131*bae2d725SRick Chen compatible = "andestech,atflcdc100"; 132*bae2d725SRick Chen reg = <0xe0200000 0x1000>; 133*bae2d725SRick Chen interrupts = <20 4>; 134*bae2d725SRick Chen interrupt-parent = <&plic0>; 135*bae2d725SRick Chen }; 136*bae2d725SRick Chen 137*bae2d725SRick Chen smc0: smc@e0400000 { 138*bae2d725SRick Chen compatible = "andestech,atfsmc020"; 139*bae2d725SRick Chen reg = <0xe0400000 0x1000>; 140*bae2d725SRick Chen }; 141*bae2d725SRick Chen 142*bae2d725SRick Chen snd0: snd@f0d00000 { 143*bae2d725SRick Chen compatible = "andestech,atfac97"; 144*bae2d725SRick Chen reg = <0xf0d00000 0x1000>; 145*bae2d725SRick Chen interrupts = <17 4>; 146*bae2d725SRick Chen interrupt-parent = <&plic0>; 147*bae2d725SRick Chen }; 148*bae2d725SRick Chen 149*bae2d725SRick Chen virtio_mmio@fe007000 { 150*bae2d725SRick Chen interrupts = <0x17 0x4>; 151*bae2d725SRick Chen interrupt-parent = <0x2>; 152*bae2d725SRick Chen reg = <0xfe007000 0x1000>; 153*bae2d725SRick Chen compatible = "virtio,mmio"; 154*bae2d725SRick Chen }; 155*bae2d725SRick Chen 156*bae2d725SRick Chen virtio_mmio@fe006000 { 157*bae2d725SRick Chen interrupts = <0x16 0x4>; 158*bae2d725SRick Chen interrupt-parent = <0x2>; 159*bae2d725SRick Chen reg = <0xfe006000 0x1000>; 160*bae2d725SRick Chen compatible = "virtio,mmio"; 161*bae2d725SRick Chen }; 162*bae2d725SRick Chen 163*bae2d725SRick Chen virtio_mmio@fe005000 { 164*bae2d725SRick Chen interrupts = <0x15 0x4>; 165*bae2d725SRick Chen interrupt-parent = <0x2>; 166*bae2d725SRick Chen reg = <0xfe005000 0x1000>; 167*bae2d725SRick Chen compatible = "virtio,mmio"; 168*bae2d725SRick Chen }; 169*bae2d725SRick Chen 170*bae2d725SRick Chen virtio_mmio@fe004000 { 171*bae2d725SRick Chen interrupts = <0x14 0x4>; 172*bae2d725SRick Chen interrupt-parent = <0x2>; 173*bae2d725SRick Chen reg = <0xfe004000 0x1000>; 174*bae2d725SRick Chen compatible = "virtio,mmio"; 175*bae2d725SRick Chen }; 176*bae2d725SRick Chen 177*bae2d725SRick Chen virtio_mmio@fe003000 { 178*bae2d725SRick Chen interrupts = <0x13 0x4>; 179*bae2d725SRick Chen interrupt-parent = <0x2>; 180*bae2d725SRick Chen reg = <0xfe003000 0x1000>; 181*bae2d725SRick Chen compatible = "virtio,mmio"; 182*bae2d725SRick Chen }; 183*bae2d725SRick Chen 184*bae2d725SRick Chen virtio_mmio@fe002000 { 185*bae2d725SRick Chen interrupts = <0x12 0x4>; 186*bae2d725SRick Chen interrupt-parent = <0x2>; 187*bae2d725SRick Chen reg = <0xfe002000 0x1000>; 188*bae2d725SRick Chen compatible = "virtio,mmio"; 189*bae2d725SRick Chen }; 190*bae2d725SRick Chen 191*bae2d725SRick Chen virtio_mmio@fe001000 { 192*bae2d725SRick Chen interrupts = <0x11 0x4>; 193*bae2d725SRick Chen interrupt-parent = <0x2>; 194*bae2d725SRick Chen reg = <0xfe001000 0x1000>; 195*bae2d725SRick Chen compatible = "virtio,mmio"; 196*bae2d725SRick Chen }; 197*bae2d725SRick Chen 198*bae2d725SRick Chen virtio_mmio@fe000000 { 199*bae2d725SRick Chen interrupts = <0x10 0x4>; 200*bae2d725SRick Chen interrupt-parent = <0x2>; 201*bae2d725SRick Chen reg = <0xfe000000 0x1000>; 202*bae2d725SRick Chen compatible = "virtio,mmio"; 203*bae2d725SRick Chen }; 204*bae2d725SRick Chen 205*bae2d725SRick Chen nor@0,0 { 206*bae2d725SRick Chen compatible = "cfi-flash"; 207*bae2d725SRick Chen reg = <0x88000000 0x1000>; 208*bae2d725SRick Chen bank-width = <2>; 209*bae2d725SRick Chen device-width = <1>; 210*bae2d725SRick Chen }; 211*bae2d725SRick Chen 212*bae2d725SRick Chen spi: spi@f0b00000 { 213*bae2d725SRick Chen compatible = "andestech,atcspi200"; 214*bae2d725SRick Chen reg = <0xf0b00000 0x1000>; 215*bae2d725SRick Chen #address-cells = <1>; 216*bae2d725SRick Chen #size-cells = <0>; 217*bae2d725SRick Chen num-cs = <1>; 218*bae2d725SRick Chen clocks = <&spiclk>; 219*bae2d725SRick Chen interrupts = <4 4>; 220*bae2d725SRick Chen interrupt-parent = <&plic0>; 221*bae2d725SRick Chen flash@0 { 222*bae2d725SRick Chen compatible = "spi-flash"; 223*bae2d725SRick Chen spi-max-frequency = <50000000>; 224*bae2d725SRick Chen reg = <0>; 225*bae2d725SRick Chen spi-cpol; 226*bae2d725SRick Chen spi-cpha; 227*bae2d725SRick Chen }; 228*bae2d725SRick Chen }; 229*bae2d725SRick Chen}; 230