18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci#include <dt-bindings/clock/jz4740-cgu.h> 38c2ecf20Sopenharmony_ci#include <dt-bindings/clock/ingenic,tcu.h> 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci/ { 68c2ecf20Sopenharmony_ci #address-cells = <1>; 78c2ecf20Sopenharmony_ci #size-cells = <1>; 88c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740"; 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci cpus { 118c2ecf20Sopenharmony_ci #address-cells = <1>; 128c2ecf20Sopenharmony_ci #size-cells = <0>; 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci cpu0: cpu@0 { 158c2ecf20Sopenharmony_ci device_type = "cpu"; 168c2ecf20Sopenharmony_ci compatible = "ingenic,xburst-mxu1.0"; 178c2ecf20Sopenharmony_ci reg = <0>; 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci clocks = <&cgu JZ4740_CLK_CCLK>; 208c2ecf20Sopenharmony_ci clock-names = "cpu"; 218c2ecf20Sopenharmony_ci }; 228c2ecf20Sopenharmony_ci }; 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci cpuintc: interrupt-controller { 258c2ecf20Sopenharmony_ci #address-cells = <0>; 268c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 278c2ecf20Sopenharmony_ci interrupt-controller; 288c2ecf20Sopenharmony_ci compatible = "mti,cpu-interrupt-controller"; 298c2ecf20Sopenharmony_ci }; 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci intc: interrupt-controller@10001000 { 328c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-intc"; 338c2ecf20Sopenharmony_ci reg = <0x10001000 0x14>; 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci interrupt-controller; 368c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci interrupt-parent = <&cpuintc>; 398c2ecf20Sopenharmony_ci interrupts = <2>; 408c2ecf20Sopenharmony_ci }; 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci ext: ext { 438c2ecf20Sopenharmony_ci compatible = "fixed-clock"; 448c2ecf20Sopenharmony_ci #clock-cells = <0>; 458c2ecf20Sopenharmony_ci }; 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci rtc: rtc { 488c2ecf20Sopenharmony_ci compatible = "fixed-clock"; 498c2ecf20Sopenharmony_ci #clock-cells = <0>; 508c2ecf20Sopenharmony_ci clock-frequency = <32768>; 518c2ecf20Sopenharmony_ci }; 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci cgu: jz4740-cgu@10000000 { 548c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-cgu"; 558c2ecf20Sopenharmony_ci reg = <0x10000000 0x100>; 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ci clocks = <&ext>, <&rtc>; 588c2ecf20Sopenharmony_ci clock-names = "ext", "rtc"; 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci #clock-cells = <1>; 618c2ecf20Sopenharmony_ci }; 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci tcu: timer@10002000 { 648c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-tcu", "simple-mfd"; 658c2ecf20Sopenharmony_ci reg = <0x10002000 0x1000>; 668c2ecf20Sopenharmony_ci #address-cells = <1>; 678c2ecf20Sopenharmony_ci #size-cells = <1>; 688c2ecf20Sopenharmony_ci ranges = <0x0 0x10002000 0x1000>; 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci #clock-cells = <1>; 718c2ecf20Sopenharmony_ci 728c2ecf20Sopenharmony_ci clocks = <&cgu JZ4740_CLK_RTC>, 738c2ecf20Sopenharmony_ci <&cgu JZ4740_CLK_EXT>, 748c2ecf20Sopenharmony_ci <&cgu JZ4740_CLK_PCLK>, 758c2ecf20Sopenharmony_ci <&cgu JZ4740_CLK_TCU>; 768c2ecf20Sopenharmony_ci clock-names = "rtc", "ext", "pclk", "tcu"; 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci interrupt-controller; 798c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 828c2ecf20Sopenharmony_ci interrupts = <23 22 21>; 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ci watchdog: watchdog@0 { 858c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-watchdog"; 868c2ecf20Sopenharmony_ci reg = <0x0 0xc>; 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci clocks = <&tcu TCU_CLK_WDT>; 898c2ecf20Sopenharmony_ci clock-names = "wdt"; 908c2ecf20Sopenharmony_ci }; 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ci pwm: pwm@40 { 938c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-pwm"; 948c2ecf20Sopenharmony_ci reg = <0x40 0x80>; 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci #pwm-cells = <3>; 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_ci clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>, 998c2ecf20Sopenharmony_ci <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>, 1008c2ecf20Sopenharmony_ci <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>, 1018c2ecf20Sopenharmony_ci <&tcu TCU_CLK_TIMER6>, <&tcu TCU_CLK_TIMER7>; 1028c2ecf20Sopenharmony_ci clock-names = "timer0", "timer1", "timer2", "timer3", 1038c2ecf20Sopenharmony_ci "timer4", "timer5", "timer6", "timer7"; 1048c2ecf20Sopenharmony_ci }; 1058c2ecf20Sopenharmony_ci }; 1068c2ecf20Sopenharmony_ci 1078c2ecf20Sopenharmony_ci rtc_dev: rtc@10003000 { 1088c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-rtc"; 1098c2ecf20Sopenharmony_ci reg = <0x10003000 0x40>; 1108c2ecf20Sopenharmony_ci 1118c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 1128c2ecf20Sopenharmony_ci interrupts = <15>; 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci clocks = <&cgu JZ4740_CLK_RTC>; 1158c2ecf20Sopenharmony_ci clock-names = "rtc"; 1168c2ecf20Sopenharmony_ci }; 1178c2ecf20Sopenharmony_ci 1188c2ecf20Sopenharmony_ci pinctrl: pin-controller@10010000 { 1198c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-pinctrl"; 1208c2ecf20Sopenharmony_ci reg = <0x10010000 0x400>; 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci #address-cells = <1>; 1238c2ecf20Sopenharmony_ci #size-cells = <0>; 1248c2ecf20Sopenharmony_ci 1258c2ecf20Sopenharmony_ci gpa: gpio@0 { 1268c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-gpio"; 1278c2ecf20Sopenharmony_ci reg = <0>; 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ci gpio-controller; 1308c2ecf20Sopenharmony_ci gpio-ranges = <&pinctrl 0 0 32>; 1318c2ecf20Sopenharmony_ci #gpio-cells = <2>; 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ci interrupt-controller; 1348c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 1358c2ecf20Sopenharmony_ci 1368c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 1378c2ecf20Sopenharmony_ci interrupts = <28>; 1388c2ecf20Sopenharmony_ci }; 1398c2ecf20Sopenharmony_ci 1408c2ecf20Sopenharmony_ci gpb: gpio@1 { 1418c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-gpio"; 1428c2ecf20Sopenharmony_ci reg = <1>; 1438c2ecf20Sopenharmony_ci 1448c2ecf20Sopenharmony_ci gpio-controller; 1458c2ecf20Sopenharmony_ci gpio-ranges = <&pinctrl 0 32 32>; 1468c2ecf20Sopenharmony_ci #gpio-cells = <2>; 1478c2ecf20Sopenharmony_ci 1488c2ecf20Sopenharmony_ci interrupt-controller; 1498c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 1508c2ecf20Sopenharmony_ci 1518c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 1528c2ecf20Sopenharmony_ci interrupts = <27>; 1538c2ecf20Sopenharmony_ci }; 1548c2ecf20Sopenharmony_ci 1558c2ecf20Sopenharmony_ci gpc: gpio@2 { 1568c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-gpio"; 1578c2ecf20Sopenharmony_ci reg = <2>; 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_ci gpio-controller; 1608c2ecf20Sopenharmony_ci gpio-ranges = <&pinctrl 0 64 32>; 1618c2ecf20Sopenharmony_ci #gpio-cells = <2>; 1628c2ecf20Sopenharmony_ci 1638c2ecf20Sopenharmony_ci interrupt-controller; 1648c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 1658c2ecf20Sopenharmony_ci 1668c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 1678c2ecf20Sopenharmony_ci interrupts = <26>; 1688c2ecf20Sopenharmony_ci }; 1698c2ecf20Sopenharmony_ci 1708c2ecf20Sopenharmony_ci gpd: gpio@3 { 1718c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-gpio"; 1728c2ecf20Sopenharmony_ci reg = <3>; 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ci gpio-controller; 1758c2ecf20Sopenharmony_ci gpio-ranges = <&pinctrl 0 96 32>; 1768c2ecf20Sopenharmony_ci #gpio-cells = <2>; 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_ci interrupt-controller; 1798c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 1828c2ecf20Sopenharmony_ci interrupts = <25>; 1838c2ecf20Sopenharmony_ci }; 1848c2ecf20Sopenharmony_ci }; 1858c2ecf20Sopenharmony_ci 1868c2ecf20Sopenharmony_ci aic: audio-controller@10020000 { 1878c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-i2s"; 1888c2ecf20Sopenharmony_ci reg = <0x10020000 0x38>; 1898c2ecf20Sopenharmony_ci 1908c2ecf20Sopenharmony_ci #sound-dai-cells = <0>; 1918c2ecf20Sopenharmony_ci 1928c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 1938c2ecf20Sopenharmony_ci interrupts = <18>; 1948c2ecf20Sopenharmony_ci 1958c2ecf20Sopenharmony_ci clocks = <&cgu JZ4740_CLK_AIC>, 1968c2ecf20Sopenharmony_ci <&cgu JZ4740_CLK_I2S>, 1978c2ecf20Sopenharmony_ci <&cgu JZ4740_CLK_EXT>, 1988c2ecf20Sopenharmony_ci <&cgu JZ4740_CLK_PLL_HALF>; 1998c2ecf20Sopenharmony_ci clock-names = "aic", "i2s", "ext", "pll half"; 2008c2ecf20Sopenharmony_ci 2018c2ecf20Sopenharmony_ci dmas = <&dmac 25 0xffffffff>, <&dmac 24 0xffffffff>; 2028c2ecf20Sopenharmony_ci dma-names = "rx", "tx"; 2038c2ecf20Sopenharmony_ci }; 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_ci codec: audio-codec@100200a4 { 2068c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-codec"; 2078c2ecf20Sopenharmony_ci reg = <0x10020080 0x8>; 2088c2ecf20Sopenharmony_ci 2098c2ecf20Sopenharmony_ci #sound-dai-cells = <0>; 2108c2ecf20Sopenharmony_ci 2118c2ecf20Sopenharmony_ci clocks = <&cgu JZ4740_CLK_AIC>; 2128c2ecf20Sopenharmony_ci clock-names = "aic"; 2138c2ecf20Sopenharmony_ci }; 2148c2ecf20Sopenharmony_ci 2158c2ecf20Sopenharmony_ci mmc: mmc@10021000 { 2168c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-mmc"; 2178c2ecf20Sopenharmony_ci reg = <0x10021000 0x1000>; 2188c2ecf20Sopenharmony_ci 2198c2ecf20Sopenharmony_ci clocks = <&cgu JZ4740_CLK_MMC>; 2208c2ecf20Sopenharmony_ci clock-names = "mmc"; 2218c2ecf20Sopenharmony_ci 2228c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 2238c2ecf20Sopenharmony_ci interrupts = <14>; 2248c2ecf20Sopenharmony_ci 2258c2ecf20Sopenharmony_ci dmas = <&dmac 27 0xffffffff>, <&dmac 26 0xffffffff>; 2268c2ecf20Sopenharmony_ci dma-names = "rx", "tx"; 2278c2ecf20Sopenharmony_ci 2288c2ecf20Sopenharmony_ci cap-sd-highspeed; 2298c2ecf20Sopenharmony_ci cap-mmc-highspeed; 2308c2ecf20Sopenharmony_ci cap-sdio-irq; 2318c2ecf20Sopenharmony_ci }; 2328c2ecf20Sopenharmony_ci 2338c2ecf20Sopenharmony_ci uart0: serial@10030000 { 2348c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-uart"; 2358c2ecf20Sopenharmony_ci reg = <0x10030000 0x100>; 2368c2ecf20Sopenharmony_ci 2378c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 2388c2ecf20Sopenharmony_ci interrupts = <9>; 2398c2ecf20Sopenharmony_ci 2408c2ecf20Sopenharmony_ci clocks = <&ext>, <&cgu JZ4740_CLK_UART0>; 2418c2ecf20Sopenharmony_ci clock-names = "baud", "module"; 2428c2ecf20Sopenharmony_ci }; 2438c2ecf20Sopenharmony_ci 2448c2ecf20Sopenharmony_ci uart1: serial@10031000 { 2458c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-uart"; 2468c2ecf20Sopenharmony_ci reg = <0x10031000 0x100>; 2478c2ecf20Sopenharmony_ci 2488c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 2498c2ecf20Sopenharmony_ci interrupts = <8>; 2508c2ecf20Sopenharmony_ci 2518c2ecf20Sopenharmony_ci clocks = <&ext>, <&cgu JZ4740_CLK_UART1>; 2528c2ecf20Sopenharmony_ci clock-names = "baud", "module"; 2538c2ecf20Sopenharmony_ci }; 2548c2ecf20Sopenharmony_ci 2558c2ecf20Sopenharmony_ci adc: adc@10070000 { 2568c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-adc"; 2578c2ecf20Sopenharmony_ci reg = <0x10070000 0x30>; 2588c2ecf20Sopenharmony_ci #io-channel-cells = <1>; 2598c2ecf20Sopenharmony_ci 2608c2ecf20Sopenharmony_ci clocks = <&cgu JZ4740_CLK_ADC>; 2618c2ecf20Sopenharmony_ci clock-names = "adc"; 2628c2ecf20Sopenharmony_ci 2638c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 2648c2ecf20Sopenharmony_ci interrupts = <12>; 2658c2ecf20Sopenharmony_ci }; 2668c2ecf20Sopenharmony_ci 2678c2ecf20Sopenharmony_ci nemc: memory-controller@13010000 { 2688c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-nemc"; 2698c2ecf20Sopenharmony_ci reg = <0x13010000 0x54>; 2708c2ecf20Sopenharmony_ci #address-cells = <2>; 2718c2ecf20Sopenharmony_ci #size-cells = <1>; 2728c2ecf20Sopenharmony_ci ranges = <1 0 0x18000000 0x4000000>, 2738c2ecf20Sopenharmony_ci <2 0 0x14000000 0x4000000>, 2748c2ecf20Sopenharmony_ci <3 0 0x0c000000 0x4000000>, 2758c2ecf20Sopenharmony_ci <4 0 0x08000000 0x4000000>; 2768c2ecf20Sopenharmony_ci 2778c2ecf20Sopenharmony_ci clocks = <&cgu JZ4740_CLK_MCLK>; 2788c2ecf20Sopenharmony_ci }; 2798c2ecf20Sopenharmony_ci 2808c2ecf20Sopenharmony_ci ecc: ecc-controller@13010100 { 2818c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-ecc"; 2828c2ecf20Sopenharmony_ci reg = <0x13010100 0x2C>; 2838c2ecf20Sopenharmony_ci 2848c2ecf20Sopenharmony_ci clocks = <&cgu JZ4740_CLK_MCLK>; 2858c2ecf20Sopenharmony_ci }; 2868c2ecf20Sopenharmony_ci 2878c2ecf20Sopenharmony_ci dmac: dma-controller@13020000 { 2888c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-dma"; 2898c2ecf20Sopenharmony_ci reg = <0x13020000 0xbc>, <0x13020300 0x14>; 2908c2ecf20Sopenharmony_ci #dma-cells = <2>; 2918c2ecf20Sopenharmony_ci 2928c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 2938c2ecf20Sopenharmony_ci interrupts = <20>; 2948c2ecf20Sopenharmony_ci 2958c2ecf20Sopenharmony_ci clocks = <&cgu JZ4740_CLK_DMA>; 2968c2ecf20Sopenharmony_ci }; 2978c2ecf20Sopenharmony_ci 2988c2ecf20Sopenharmony_ci uhc: uhc@13030000 { 2998c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-ohci", "generic-ohci"; 3008c2ecf20Sopenharmony_ci reg = <0x13030000 0x1000>; 3018c2ecf20Sopenharmony_ci 3028c2ecf20Sopenharmony_ci clocks = <&cgu JZ4740_CLK_UHC>; 3038c2ecf20Sopenharmony_ci assigned-clocks = <&cgu JZ4740_CLK_UHC>; 3048c2ecf20Sopenharmony_ci assigned-clock-rates = <48000000>; 3058c2ecf20Sopenharmony_ci 3068c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 3078c2ecf20Sopenharmony_ci interrupts = <3>; 3088c2ecf20Sopenharmony_ci 3098c2ecf20Sopenharmony_ci status = "disabled"; 3108c2ecf20Sopenharmony_ci }; 3118c2ecf20Sopenharmony_ci 3128c2ecf20Sopenharmony_ci udc: usb@13040000 { 3138c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-musb"; 3148c2ecf20Sopenharmony_ci reg = <0x13040000 0x10000>; 3158c2ecf20Sopenharmony_ci 3168c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 3178c2ecf20Sopenharmony_ci interrupts = <24>; 3188c2ecf20Sopenharmony_ci interrupt-names = "mc"; 3198c2ecf20Sopenharmony_ci 3208c2ecf20Sopenharmony_ci clocks = <&cgu JZ4740_CLK_UDC>; 3218c2ecf20Sopenharmony_ci clock-names = "udc"; 3228c2ecf20Sopenharmony_ci }; 3238c2ecf20Sopenharmony_ci 3248c2ecf20Sopenharmony_ci lcd: lcd-controller@13050000 { 3258c2ecf20Sopenharmony_ci compatible = "ingenic,jz4740-lcd"; 3268c2ecf20Sopenharmony_ci reg = <0x13050000 0x1000>; 3278c2ecf20Sopenharmony_ci 3288c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 3298c2ecf20Sopenharmony_ci interrupts = <30>; 3308c2ecf20Sopenharmony_ci 3318c2ecf20Sopenharmony_ci clocks = <&cgu JZ4740_CLK_LCD_PCLK>, <&cgu JZ4740_CLK_LCD>; 3328c2ecf20Sopenharmony_ci clock-names = "lcd_pclk", "lcd"; 3338c2ecf20Sopenharmony_ci }; 3348c2ecf20Sopenharmony_ci}; 335