1*c211ab5fSPaul Cercueil// SPDX-License-Identifier: GPL-2.0 2*c211ab5fSPaul Cercueil#include <dt-bindings/clock/jz4725b-cgu.h> 3*c211ab5fSPaul Cercueil#include <dt-bindings/clock/ingenic,tcu.h> 4*c211ab5fSPaul Cercueil 5*c211ab5fSPaul Cercueil/ { 6*c211ab5fSPaul Cercueil #address-cells = <1>; 7*c211ab5fSPaul Cercueil #size-cells = <1>; 8*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b"; 9*c211ab5fSPaul Cercueil 10*c211ab5fSPaul Cercueil cpuintc: interrupt-controller { 11*c211ab5fSPaul Cercueil #address-cells = <0>; 12*c211ab5fSPaul Cercueil #interrupt-cells = <1>; 13*c211ab5fSPaul Cercueil interrupt-controller; 14*c211ab5fSPaul Cercueil compatible = "mti,cpu-interrupt-controller"; 15*c211ab5fSPaul Cercueil }; 16*c211ab5fSPaul Cercueil 17*c211ab5fSPaul Cercueil intc: interrupt-controller@10001000 { 18*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-intc", "ingenic,jz4740-intc"; 19*c211ab5fSPaul Cercueil reg = <0x10001000 0x14>; 20*c211ab5fSPaul Cercueil 21*c211ab5fSPaul Cercueil interrupt-controller; 22*c211ab5fSPaul Cercueil #interrupt-cells = <1>; 23*c211ab5fSPaul Cercueil 24*c211ab5fSPaul Cercueil interrupt-parent = <&cpuintc>; 25*c211ab5fSPaul Cercueil interrupts = <2>; 26*c211ab5fSPaul Cercueil }; 27*c211ab5fSPaul Cercueil 28*c211ab5fSPaul Cercueil ext: ext { 29*c211ab5fSPaul Cercueil compatible = "fixed-clock"; 30*c211ab5fSPaul Cercueil #clock-cells = <0>; 31*c211ab5fSPaul Cercueil }; 32*c211ab5fSPaul Cercueil 33*c211ab5fSPaul Cercueil osc32k: osc32k { 34*c211ab5fSPaul Cercueil compatible = "fixed-clock"; 35*c211ab5fSPaul Cercueil #clock-cells = <0>; 36*c211ab5fSPaul Cercueil clock-frequency = <32768>; 37*c211ab5fSPaul Cercueil }; 38*c211ab5fSPaul Cercueil 39*c211ab5fSPaul Cercueil cgu: clock-controller@10000000 { 40*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-cgu"; 41*c211ab5fSPaul Cercueil reg = <0x10000000 0x100>; 42*c211ab5fSPaul Cercueil 43*c211ab5fSPaul Cercueil clocks = <&ext>, <&osc32k>; 44*c211ab5fSPaul Cercueil clock-names = "ext", "osc32k"; 45*c211ab5fSPaul Cercueil 46*c211ab5fSPaul Cercueil #clock-cells = <1>; 47*c211ab5fSPaul Cercueil }; 48*c211ab5fSPaul Cercueil 49*c211ab5fSPaul Cercueil tcu: timer@10002000 { 50*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-tcu", "simple-mfd"; 51*c211ab5fSPaul Cercueil reg = <0x10002000 0x1000>; 52*c211ab5fSPaul Cercueil #address-cells = <1>; 53*c211ab5fSPaul Cercueil #size-cells = <1>; 54*c211ab5fSPaul Cercueil ranges = <0x0 0x10002000 0x1000>; 55*c211ab5fSPaul Cercueil 56*c211ab5fSPaul Cercueil #clock-cells = <1>; 57*c211ab5fSPaul Cercueil 58*c211ab5fSPaul Cercueil clocks = <&cgu JZ4725B_CLK_RTC>, 59*c211ab5fSPaul Cercueil <&cgu JZ4725B_CLK_EXT>, 60*c211ab5fSPaul Cercueil <&cgu JZ4725B_CLK_PCLK>, 61*c211ab5fSPaul Cercueil <&cgu JZ4725B_CLK_TCU>; 62*c211ab5fSPaul Cercueil clock-names = "rtc", "ext", "pclk", "tcu"; 63*c211ab5fSPaul Cercueil 64*c211ab5fSPaul Cercueil interrupt-controller; 65*c211ab5fSPaul Cercueil #interrupt-cells = <1>; 66*c211ab5fSPaul Cercueil 67*c211ab5fSPaul Cercueil interrupt-parent = <&intc>; 68*c211ab5fSPaul Cercueil interrupts = <23>, <22>, <21>; 69*c211ab5fSPaul Cercueil 70*c211ab5fSPaul Cercueil watchdog: watchdog@0 { 71*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-watchdog", "ingenic,jz4740-watchdog"; 72*c211ab5fSPaul Cercueil reg = <0x0 0xc>; 73*c211ab5fSPaul Cercueil 74*c211ab5fSPaul Cercueil clocks = <&tcu TCU_CLK_WDT>; 75*c211ab5fSPaul Cercueil clock-names = "wdt"; 76*c211ab5fSPaul Cercueil }; 77*c211ab5fSPaul Cercueil 78*c211ab5fSPaul Cercueil pwm: pwm@60 { 79*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-pwm"; 80*c211ab5fSPaul Cercueil reg = <0x60 0x40>; 81*c211ab5fSPaul Cercueil 82*c211ab5fSPaul Cercueil #pwm-cells = <3>; 83*c211ab5fSPaul Cercueil 84*c211ab5fSPaul Cercueil clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>, 85*c211ab5fSPaul Cercueil <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>, 86*c211ab5fSPaul Cercueil <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>; 87*c211ab5fSPaul Cercueil clock-names = "timer0", "timer1", "timer2", 88*c211ab5fSPaul Cercueil "timer3", "timer4", "timer5"; 89*c211ab5fSPaul Cercueil }; 90*c211ab5fSPaul Cercueil 91*c211ab5fSPaul Cercueil ost: timer@e0 { 92*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-ost"; 93*c211ab5fSPaul Cercueil reg = <0xe0 0x20>; 94*c211ab5fSPaul Cercueil 95*c211ab5fSPaul Cercueil clocks = <&tcu TCU_CLK_OST>; 96*c211ab5fSPaul Cercueil clock-names = "ost"; 97*c211ab5fSPaul Cercueil 98*c211ab5fSPaul Cercueil interrupts = <15>; 99*c211ab5fSPaul Cercueil }; 100*c211ab5fSPaul Cercueil }; 101*c211ab5fSPaul Cercueil 102*c211ab5fSPaul Cercueil rtc_dev: rtc@10003000 { 103*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-rtc", "ingenic,jz4740-rtc"; 104*c211ab5fSPaul Cercueil reg = <0x10003000 0x40>; 105*c211ab5fSPaul Cercueil 106*c211ab5fSPaul Cercueil interrupt-parent = <&intc>; 107*c211ab5fSPaul Cercueil interrupts = <6>; 108*c211ab5fSPaul Cercueil 109*c211ab5fSPaul Cercueil clocks = <&cgu JZ4725B_CLK_RTC>; 110*c211ab5fSPaul Cercueil clock-names = "rtc"; 111*c211ab5fSPaul Cercueil }; 112*c211ab5fSPaul Cercueil 113*c211ab5fSPaul Cercueil pinctrl: pinctrl@10010000 { 114*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-pinctrl"; 115*c211ab5fSPaul Cercueil reg = <0x10010000 0x400>; 116*c211ab5fSPaul Cercueil 117*c211ab5fSPaul Cercueil #address-cells = <1>; 118*c211ab5fSPaul Cercueil #size-cells = <0>; 119*c211ab5fSPaul Cercueil 120*c211ab5fSPaul Cercueil gpa: gpio@0 { 121*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-gpio"; 122*c211ab5fSPaul Cercueil reg = <0>; 123*c211ab5fSPaul Cercueil 124*c211ab5fSPaul Cercueil gpio-controller; 125*c211ab5fSPaul Cercueil gpio-ranges = <&pinctrl 0 0 32>; 126*c211ab5fSPaul Cercueil #gpio-cells = <2>; 127*c211ab5fSPaul Cercueil 128*c211ab5fSPaul Cercueil interrupt-controller; 129*c211ab5fSPaul Cercueil #interrupt-cells = <2>; 130*c211ab5fSPaul Cercueil 131*c211ab5fSPaul Cercueil interrupt-parent = <&intc>; 132*c211ab5fSPaul Cercueil interrupts = <16>; 133*c211ab5fSPaul Cercueil }; 134*c211ab5fSPaul Cercueil 135*c211ab5fSPaul Cercueil gpb: gpio@1 { 136*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-gpio"; 137*c211ab5fSPaul Cercueil reg = <1>; 138*c211ab5fSPaul Cercueil 139*c211ab5fSPaul Cercueil gpio-controller; 140*c211ab5fSPaul Cercueil gpio-ranges = <&pinctrl 0 32 32>; 141*c211ab5fSPaul Cercueil #gpio-cells = <2>; 142*c211ab5fSPaul Cercueil 143*c211ab5fSPaul Cercueil interrupt-controller; 144*c211ab5fSPaul Cercueil #interrupt-cells = <2>; 145*c211ab5fSPaul Cercueil 146*c211ab5fSPaul Cercueil interrupt-parent = <&intc>; 147*c211ab5fSPaul Cercueil interrupts = <15>; 148*c211ab5fSPaul Cercueil }; 149*c211ab5fSPaul Cercueil 150*c211ab5fSPaul Cercueil gpc: gpio@2 { 151*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-gpio"; 152*c211ab5fSPaul Cercueil reg = <2>; 153*c211ab5fSPaul Cercueil 154*c211ab5fSPaul Cercueil gpio-controller; 155*c211ab5fSPaul Cercueil gpio-ranges = <&pinctrl 0 64 32>; 156*c211ab5fSPaul Cercueil #gpio-cells = <2>; 157*c211ab5fSPaul Cercueil 158*c211ab5fSPaul Cercueil interrupt-controller; 159*c211ab5fSPaul Cercueil #interrupt-cells = <2>; 160*c211ab5fSPaul Cercueil 161*c211ab5fSPaul Cercueil interrupt-parent = <&intc>; 162*c211ab5fSPaul Cercueil interrupts = <14>; 163*c211ab5fSPaul Cercueil }; 164*c211ab5fSPaul Cercueil 165*c211ab5fSPaul Cercueil gpd: gpio@3 { 166*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-gpio"; 167*c211ab5fSPaul Cercueil reg = <3>; 168*c211ab5fSPaul Cercueil 169*c211ab5fSPaul Cercueil gpio-controller; 170*c211ab5fSPaul Cercueil gpio-ranges = <&pinctrl 0 96 32>; 171*c211ab5fSPaul Cercueil #gpio-cells = <2>; 172*c211ab5fSPaul Cercueil 173*c211ab5fSPaul Cercueil interrupt-controller; 174*c211ab5fSPaul Cercueil #interrupt-cells = <2>; 175*c211ab5fSPaul Cercueil 176*c211ab5fSPaul Cercueil interrupt-parent = <&intc>; 177*c211ab5fSPaul Cercueil interrupts = <13>; 178*c211ab5fSPaul Cercueil }; 179*c211ab5fSPaul Cercueil }; 180*c211ab5fSPaul Cercueil 181*c211ab5fSPaul Cercueil aic: audio-controller@10020000 { 182*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-i2s", "ingenic,jz4740-i2s"; 183*c211ab5fSPaul Cercueil reg = <0x10020000 0x38>; 184*c211ab5fSPaul Cercueil 185*c211ab5fSPaul Cercueil #sound-dai-cells = <0>; 186*c211ab5fSPaul Cercueil 187*c211ab5fSPaul Cercueil clocks = <&cgu JZ4725B_CLK_AIC>, 188*c211ab5fSPaul Cercueil <&cgu JZ4725B_CLK_I2S>, 189*c211ab5fSPaul Cercueil <&cgu JZ4725B_CLK_EXT>, 190*c211ab5fSPaul Cercueil <&cgu JZ4725B_CLK_PLL_HALF>; 191*c211ab5fSPaul Cercueil clock-names = "aic", "i2s", "ext", "pll half"; 192*c211ab5fSPaul Cercueil 193*c211ab5fSPaul Cercueil interrupt-parent = <&intc>; 194*c211ab5fSPaul Cercueil interrupts = <10>; 195*c211ab5fSPaul Cercueil 196*c211ab5fSPaul Cercueil dmas = <&dmac 25 0xffffffff>, <&dmac 24 0xffffffff>; 197*c211ab5fSPaul Cercueil dma-names = "rx", "tx"; 198*c211ab5fSPaul Cercueil }; 199*c211ab5fSPaul Cercueil 200*c211ab5fSPaul Cercueil codec: audio-codec@100200a4 { 201*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-codec"; 202*c211ab5fSPaul Cercueil reg = <0x100200a4 0x8>; 203*c211ab5fSPaul Cercueil 204*c211ab5fSPaul Cercueil #sound-dai-cells = <0>; 205*c211ab5fSPaul Cercueil 206*c211ab5fSPaul Cercueil clocks = <&cgu JZ4725B_CLK_AIC>; 207*c211ab5fSPaul Cercueil clock-names = "aic"; 208*c211ab5fSPaul Cercueil }; 209*c211ab5fSPaul Cercueil 210*c211ab5fSPaul Cercueil mmc0: mmc@10021000 { 211*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-mmc"; 212*c211ab5fSPaul Cercueil reg = <0x10021000 0x1000>; 213*c211ab5fSPaul Cercueil 214*c211ab5fSPaul Cercueil clocks = <&cgu JZ4725B_CLK_MMC0>; 215*c211ab5fSPaul Cercueil clock-names = "mmc"; 216*c211ab5fSPaul Cercueil 217*c211ab5fSPaul Cercueil interrupt-parent = <&intc>; 218*c211ab5fSPaul Cercueil interrupts = <25>; 219*c211ab5fSPaul Cercueil 220*c211ab5fSPaul Cercueil dmas = <&dmac 27 0xffffffff>, <&dmac 26 0xffffffff>; 221*c211ab5fSPaul Cercueil dma-names = "rx", "tx"; 222*c211ab5fSPaul Cercueil 223*c211ab5fSPaul Cercueil cap-sd-highspeed; 224*c211ab5fSPaul Cercueil cap-mmc-highspeed; 225*c211ab5fSPaul Cercueil cap-sdio-irq; 226*c211ab5fSPaul Cercueil }; 227*c211ab5fSPaul Cercueil 228*c211ab5fSPaul Cercueil mmc1: mmc@10022000 { 229*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-mmc"; 230*c211ab5fSPaul Cercueil reg = <0x10022000 0x1000>; 231*c211ab5fSPaul Cercueil 232*c211ab5fSPaul Cercueil clocks = <&cgu JZ4725B_CLK_MMC1>; 233*c211ab5fSPaul Cercueil clock-names = "mmc"; 234*c211ab5fSPaul Cercueil 235*c211ab5fSPaul Cercueil interrupt-parent = <&intc>; 236*c211ab5fSPaul Cercueil interrupts = <24>; 237*c211ab5fSPaul Cercueil 238*c211ab5fSPaul Cercueil dmas = <&dmac 31 0xffffffff>, <&dmac 30 0xffffffff>; 239*c211ab5fSPaul Cercueil dma-names = "rx", "tx"; 240*c211ab5fSPaul Cercueil 241*c211ab5fSPaul Cercueil cap-sd-highspeed; 242*c211ab5fSPaul Cercueil cap-mmc-highspeed; 243*c211ab5fSPaul Cercueil cap-sdio-irq; 244*c211ab5fSPaul Cercueil }; 245*c211ab5fSPaul Cercueil 246*c211ab5fSPaul Cercueil uart: serial@10030000 { 247*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-uart", "ingenic,jz4740-uart"; 248*c211ab5fSPaul Cercueil reg = <0x10030000 0x100>; 249*c211ab5fSPaul Cercueil 250*c211ab5fSPaul Cercueil interrupt-parent = <&intc>; 251*c211ab5fSPaul Cercueil interrupts = <9>; 252*c211ab5fSPaul Cercueil 253*c211ab5fSPaul Cercueil clocks = <&ext>, <&cgu JZ4725B_CLK_UART>; 254*c211ab5fSPaul Cercueil clock-names = "baud", "module"; 255*c211ab5fSPaul Cercueil }; 256*c211ab5fSPaul Cercueil 257*c211ab5fSPaul Cercueil adc: adc@10070000 { 258*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-adc"; 259*c211ab5fSPaul Cercueil #io-channel-cells = <1>; 260*c211ab5fSPaul Cercueil 261*c211ab5fSPaul Cercueil reg = <0x10070000 0x30>; 262*c211ab5fSPaul Cercueil #address-cells = <1>; 263*c211ab5fSPaul Cercueil #size-cells = <1>; 264*c211ab5fSPaul Cercueil ranges = <0x0 0x10070000 0x30>; 265*c211ab5fSPaul Cercueil 266*c211ab5fSPaul Cercueil clocks = <&cgu JZ4725B_CLK_ADC>; 267*c211ab5fSPaul Cercueil clock-names = "adc"; 268*c211ab5fSPaul Cercueil 269*c211ab5fSPaul Cercueil interrupt-parent = <&intc>; 270*c211ab5fSPaul Cercueil interrupts = <18>; 271*c211ab5fSPaul Cercueil }; 272*c211ab5fSPaul Cercueil 273*c211ab5fSPaul Cercueil nemc: memory-controller@13010000 { 274*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-nemc", "ingenic,jz4740-nemc"; 275*c211ab5fSPaul Cercueil reg = <0x13010000 0x10000>; 276*c211ab5fSPaul Cercueil #address-cells = <2>; 277*c211ab5fSPaul Cercueil #size-cells = <1>; 278*c211ab5fSPaul Cercueil ranges = <1 0 0x18000000 0x4000000>, <2 0 0x14000000 0x4000000>, 279*c211ab5fSPaul Cercueil <3 0 0x0c000000 0x4000000>, <4 0 0x08000000 0x4000000>; 280*c211ab5fSPaul Cercueil 281*c211ab5fSPaul Cercueil clocks = <&cgu JZ4725B_CLK_MCLK>; 282*c211ab5fSPaul Cercueil }; 283*c211ab5fSPaul Cercueil 284*c211ab5fSPaul Cercueil dmac: dma-controller@13020000 { 285*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-dma"; 286*c211ab5fSPaul Cercueil reg = <0x13020000 0xd8>, <0x13020300 0x14>; 287*c211ab5fSPaul Cercueil 288*c211ab5fSPaul Cercueil #dma-cells = <2>; 289*c211ab5fSPaul Cercueil 290*c211ab5fSPaul Cercueil interrupt-parent = <&intc>; 291*c211ab5fSPaul Cercueil interrupts = <29>; 292*c211ab5fSPaul Cercueil 293*c211ab5fSPaul Cercueil clocks = <&cgu JZ4725B_CLK_DMA>; 294*c211ab5fSPaul Cercueil }; 295*c211ab5fSPaul Cercueil 296*c211ab5fSPaul Cercueil udc: usb@13040000 { 297*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-musb", "ingenic,jz4740-musb"; 298*c211ab5fSPaul Cercueil reg = <0x13040000 0x10000>; 299*c211ab5fSPaul Cercueil 300*c211ab5fSPaul Cercueil interrupt-parent = <&intc>; 301*c211ab5fSPaul Cercueil interrupts = <27>; 302*c211ab5fSPaul Cercueil interrupt-names = "mc"; 303*c211ab5fSPaul Cercueil 304*c211ab5fSPaul Cercueil clocks = <&cgu JZ4725B_CLK_UDC>; 305*c211ab5fSPaul Cercueil clock-names = "udc"; 306*c211ab5fSPaul Cercueil }; 307*c211ab5fSPaul Cercueil 308*c211ab5fSPaul Cercueil lcd: lcd-controller@13050000 { 309*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-lcd"; 310*c211ab5fSPaul Cercueil reg = <0x13050000 0x1000>; 311*c211ab5fSPaul Cercueil 312*c211ab5fSPaul Cercueil interrupt-parent = <&intc>; 313*c211ab5fSPaul Cercueil interrupts = <31>; 314*c211ab5fSPaul Cercueil 315*c211ab5fSPaul Cercueil clocks = <&cgu JZ4725B_CLK_LCD>; 316*c211ab5fSPaul Cercueil clock-names = "lcd_pclk"; 317*c211ab5fSPaul Cercueil }; 318*c211ab5fSPaul Cercueil 319*c211ab5fSPaul Cercueil bch: ecc-controller@130d0000 { 320*c211ab5fSPaul Cercueil compatible = "ingenic,jz4725b-bch"; 321*c211ab5fSPaul Cercueil reg = <0x130d0000 0x44>; 322*c211ab5fSPaul Cercueil 323*c211ab5fSPaul Cercueil clocks = <&cgu JZ4725B_CLK_BCH>; 324*c211ab5fSPaul Cercueil }; 325*c211ab5fSPaul Cercueil 326*c211ab5fSPaul Cercueil rom: memory@1fc00000 { 327*c211ab5fSPaul Cercueil compatible = "mtd-rom"; 328*c211ab5fSPaul Cercueil probe-type = "map_rom"; 329*c211ab5fSPaul Cercueil reg = <0x1fc00000 0x2000>; 330*c211ab5fSPaul Cercueil 331*c211ab5fSPaul Cercueil bank-width = <4>; 332*c211ab5fSPaul Cercueil device-width = <1>; 333*c211ab5fSPaul Cercueil }; 334*c211ab5fSPaul Cercueil}; 335