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