18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci#include <dt-bindings/clock/ingenic,tcu.h> 38c2ecf20Sopenharmony_ci#include <dt-bindings/clock/x1830-cgu.h> 48c2ecf20Sopenharmony_ci#include <dt-bindings/dma/x1830-dma.h> 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci/ { 78c2ecf20Sopenharmony_ci #address-cells = <1>; 88c2ecf20Sopenharmony_ci #size-cells = <1>; 98c2ecf20Sopenharmony_ci compatible = "ingenic,x1830"; 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci cpus { 128c2ecf20Sopenharmony_ci #address-cells = <1>; 138c2ecf20Sopenharmony_ci #size-cells = <0>; 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci cpu0: cpu@0 { 168c2ecf20Sopenharmony_ci device_type = "cpu"; 178c2ecf20Sopenharmony_ci compatible = "ingenic,xburst-fpu2.0-mxu2.0"; 188c2ecf20Sopenharmony_ci reg = <0>; 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci clocks = <&cgu X1830_CLK_CPU>; 218c2ecf20Sopenharmony_ci clock-names = "cpu"; 228c2ecf20Sopenharmony_ci }; 238c2ecf20Sopenharmony_ci }; 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci cpuintc: interrupt-controller { 268c2ecf20Sopenharmony_ci #address-cells = <0>; 278c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 288c2ecf20Sopenharmony_ci interrupt-controller; 298c2ecf20Sopenharmony_ci compatible = "mti,cpu-interrupt-controller"; 308c2ecf20Sopenharmony_ci }; 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci intc: interrupt-controller@10001000 { 338c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-intc", "ingenic,jz4780-intc"; 348c2ecf20Sopenharmony_ci reg = <0x10001000 0x50>; 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci interrupt-controller; 378c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci interrupt-parent = <&cpuintc>; 408c2ecf20Sopenharmony_ci interrupts = <2>; 418c2ecf20Sopenharmony_ci }; 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci exclk: ext { 448c2ecf20Sopenharmony_ci compatible = "fixed-clock"; 458c2ecf20Sopenharmony_ci #clock-cells = <0>; 468c2ecf20Sopenharmony_ci }; 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci rtclk: rtc { 498c2ecf20Sopenharmony_ci compatible = "fixed-clock"; 508c2ecf20Sopenharmony_ci #clock-cells = <0>; 518c2ecf20Sopenharmony_ci clock-frequency = <32768>; 528c2ecf20Sopenharmony_ci }; 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci cgu: x1830-cgu@10000000 { 558c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-cgu"; 568c2ecf20Sopenharmony_ci reg = <0x10000000 0x100>; 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci #clock-cells = <1>; 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci clocks = <&exclk>, <&rtclk>; 618c2ecf20Sopenharmony_ci clock-names = "ext", "rtc"; 628c2ecf20Sopenharmony_ci }; 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ci tcu: timer@10002000 { 658c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-tcu", "ingenic,x1000-tcu", "simple-mfd"; 668c2ecf20Sopenharmony_ci reg = <0x10002000 0x1000>; 678c2ecf20Sopenharmony_ci #address-cells = <1>; 688c2ecf20Sopenharmony_ci #size-cells = <1>; 698c2ecf20Sopenharmony_ci ranges = <0x0 0x10002000 0x1000>; 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci #clock-cells = <1>; 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ci clocks = <&cgu X1830_CLK_RTCLK 748c2ecf20Sopenharmony_ci &cgu X1830_CLK_EXCLK 758c2ecf20Sopenharmony_ci &cgu X1830_CLK_PCLK>; 768c2ecf20Sopenharmony_ci clock-names = "rtc", "ext", "pclk"; 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci interrupt-controller; 798c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 828c2ecf20Sopenharmony_ci interrupts = <27 26 25>; 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ci wdt: watchdog@0 { 858c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-watchdog", "ingenic,jz4780-watchdog"; 868c2ecf20Sopenharmony_ci reg = <0x0 0x10>; 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci clocks = <&tcu TCU_CLK_WDT>; 898c2ecf20Sopenharmony_ci clock-names = "wdt"; 908c2ecf20Sopenharmony_ci }; 918c2ecf20Sopenharmony_ci }; 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ci rtc: rtc@10003000 { 948c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-rtc", "ingenic,jz4780-rtc"; 958c2ecf20Sopenharmony_ci reg = <0x10003000 0x4c>; 968c2ecf20Sopenharmony_ci 978c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 988c2ecf20Sopenharmony_ci interrupts = <32>; 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_ci clocks = <&cgu X1830_CLK_RTCLK>; 1018c2ecf20Sopenharmony_ci clock-names = "rtc"; 1028c2ecf20Sopenharmony_ci }; 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_ci pinctrl: pin-controller@10010000 { 1058c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-pinctrl"; 1068c2ecf20Sopenharmony_ci reg = <0x10010000 0x800>; 1078c2ecf20Sopenharmony_ci #address-cells = <1>; 1088c2ecf20Sopenharmony_ci #size-cells = <0>; 1098c2ecf20Sopenharmony_ci 1108c2ecf20Sopenharmony_ci gpa: gpio@0 { 1118c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-gpio"; 1128c2ecf20Sopenharmony_ci reg = <0>; 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci gpio-controller; 1158c2ecf20Sopenharmony_ci gpio-ranges = <&pinctrl 0 0 32>; 1168c2ecf20Sopenharmony_ci #gpio-cells = <2>; 1178c2ecf20Sopenharmony_ci 1188c2ecf20Sopenharmony_ci interrupt-controller; 1198c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 1228c2ecf20Sopenharmony_ci interrupts = <17>; 1238c2ecf20Sopenharmony_ci }; 1248c2ecf20Sopenharmony_ci 1258c2ecf20Sopenharmony_ci gpb: gpio@1 { 1268c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-gpio"; 1278c2ecf20Sopenharmony_ci reg = <1>; 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ci gpio-controller; 1308c2ecf20Sopenharmony_ci gpio-ranges = <&pinctrl 0 32 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 = <16>; 1388c2ecf20Sopenharmony_ci }; 1398c2ecf20Sopenharmony_ci 1408c2ecf20Sopenharmony_ci gpc: gpio@2 { 1418c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-gpio"; 1428c2ecf20Sopenharmony_ci reg = <2>; 1438c2ecf20Sopenharmony_ci 1448c2ecf20Sopenharmony_ci gpio-controller; 1458c2ecf20Sopenharmony_ci gpio-ranges = <&pinctrl 0 64 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 = <15>; 1538c2ecf20Sopenharmony_ci }; 1548c2ecf20Sopenharmony_ci 1558c2ecf20Sopenharmony_ci gpd: gpio@3 { 1568c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-gpio"; 1578c2ecf20Sopenharmony_ci reg = <3>; 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_ci gpio-controller; 1608c2ecf20Sopenharmony_ci gpio-ranges = <&pinctrl 0 96 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 = <14>; 1688c2ecf20Sopenharmony_ci }; 1698c2ecf20Sopenharmony_ci }; 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ci uart0: serial@10030000 { 1728c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-uart", "ingenic,x1000-uart"; 1738c2ecf20Sopenharmony_ci reg = <0x10030000 0x100>; 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 1768c2ecf20Sopenharmony_ci interrupts = <51>; 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_ci clocks = <&exclk>, <&cgu X1830_CLK_UART0>; 1798c2ecf20Sopenharmony_ci clock-names = "baud", "module"; 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_ci status = "disabled"; 1828c2ecf20Sopenharmony_ci }; 1838c2ecf20Sopenharmony_ci 1848c2ecf20Sopenharmony_ci uart1: serial@10031000 { 1858c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-uart", "ingenic,x1000-uart"; 1868c2ecf20Sopenharmony_ci reg = <0x10031000 0x100>; 1878c2ecf20Sopenharmony_ci 1888c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 1898c2ecf20Sopenharmony_ci interrupts = <50>; 1908c2ecf20Sopenharmony_ci 1918c2ecf20Sopenharmony_ci clocks = <&exclk>, <&cgu X1830_CLK_UART1>; 1928c2ecf20Sopenharmony_ci clock-names = "baud", "module"; 1938c2ecf20Sopenharmony_ci 1948c2ecf20Sopenharmony_ci status = "disabled"; 1958c2ecf20Sopenharmony_ci }; 1968c2ecf20Sopenharmony_ci 1978c2ecf20Sopenharmony_ci i2c0: i2c-controller@10050000 { 1988c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-i2c", "ingenic,x1000-i2c"; 1998c2ecf20Sopenharmony_ci reg = <0x10050000 0x1000>; 2008c2ecf20Sopenharmony_ci #address-cells = <1>; 2018c2ecf20Sopenharmony_ci #size-cells = <0>; 2028c2ecf20Sopenharmony_ci 2038c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 2048c2ecf20Sopenharmony_ci interrupts = <60>; 2058c2ecf20Sopenharmony_ci 2068c2ecf20Sopenharmony_ci clocks = <&cgu X1830_CLK_SMB0>; 2078c2ecf20Sopenharmony_ci 2088c2ecf20Sopenharmony_ci status = "disabled"; 2098c2ecf20Sopenharmony_ci }; 2108c2ecf20Sopenharmony_ci 2118c2ecf20Sopenharmony_ci i2c1: i2c-controller@10051000 { 2128c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-i2c", "ingenic,x1000-i2c"; 2138c2ecf20Sopenharmony_ci reg = <0x10051000 0x1000>; 2148c2ecf20Sopenharmony_ci #address-cells = <1>; 2158c2ecf20Sopenharmony_ci #size-cells = <0>; 2168c2ecf20Sopenharmony_ci 2178c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 2188c2ecf20Sopenharmony_ci interrupts = <59>; 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ci clocks = <&cgu X1830_CLK_SMB1>; 2218c2ecf20Sopenharmony_ci 2228c2ecf20Sopenharmony_ci status = "disabled"; 2238c2ecf20Sopenharmony_ci }; 2248c2ecf20Sopenharmony_ci 2258c2ecf20Sopenharmony_ci i2c2: i2c-controller@10052000 { 2268c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-i2c", "ingenic,x1000-i2c"; 2278c2ecf20Sopenharmony_ci reg = <0x10052000 0x1000>; 2288c2ecf20Sopenharmony_ci #address-cells = <1>; 2298c2ecf20Sopenharmony_ci #size-cells = <0>; 2308c2ecf20Sopenharmony_ci 2318c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 2328c2ecf20Sopenharmony_ci interrupts = <58>; 2338c2ecf20Sopenharmony_ci 2348c2ecf20Sopenharmony_ci clocks = <&cgu X1830_CLK_SMB2>; 2358c2ecf20Sopenharmony_ci 2368c2ecf20Sopenharmony_ci status = "disabled"; 2378c2ecf20Sopenharmony_ci }; 2388c2ecf20Sopenharmony_ci 2398c2ecf20Sopenharmony_ci pdma: dma-controller@13420000 { 2408c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-dma"; 2418c2ecf20Sopenharmony_ci reg = <0x13420000 0x400 2428c2ecf20Sopenharmony_ci 0x13421000 0x40>; 2438c2ecf20Sopenharmony_ci #dma-cells = <2>; 2448c2ecf20Sopenharmony_ci 2458c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 2468c2ecf20Sopenharmony_ci interrupts = <10>; 2478c2ecf20Sopenharmony_ci 2488c2ecf20Sopenharmony_ci clocks = <&cgu X1830_CLK_PDMA>; 2498c2ecf20Sopenharmony_ci }; 2508c2ecf20Sopenharmony_ci 2518c2ecf20Sopenharmony_ci msc0: mmc@13450000 { 2528c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-mmc", "ingenic,x1000-mmc"; 2538c2ecf20Sopenharmony_ci reg = <0x13450000 0x1000>; 2548c2ecf20Sopenharmony_ci 2558c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 2568c2ecf20Sopenharmony_ci interrupts = <37>; 2578c2ecf20Sopenharmony_ci 2588c2ecf20Sopenharmony_ci clocks = <&cgu X1830_CLK_MSC0>; 2598c2ecf20Sopenharmony_ci clock-names = "mmc"; 2608c2ecf20Sopenharmony_ci 2618c2ecf20Sopenharmony_ci cap-sd-highspeed; 2628c2ecf20Sopenharmony_ci cap-mmc-highspeed; 2638c2ecf20Sopenharmony_ci cap-sdio-irq; 2648c2ecf20Sopenharmony_ci 2658c2ecf20Sopenharmony_ci dmas = <&pdma X1830_DMA_MSC0_RX 0xffffffff>, 2668c2ecf20Sopenharmony_ci <&pdma X1830_DMA_MSC0_TX 0xffffffff>; 2678c2ecf20Sopenharmony_ci dma-names = "rx", "tx"; 2688c2ecf20Sopenharmony_ci 2698c2ecf20Sopenharmony_ci status = "disabled"; 2708c2ecf20Sopenharmony_ci }; 2718c2ecf20Sopenharmony_ci 2728c2ecf20Sopenharmony_ci msc1: mmc@13460000 { 2738c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-mmc", "ingenic,x1000-mmc"; 2748c2ecf20Sopenharmony_ci reg = <0x13460000 0x1000>; 2758c2ecf20Sopenharmony_ci 2768c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 2778c2ecf20Sopenharmony_ci interrupts = <36>; 2788c2ecf20Sopenharmony_ci 2798c2ecf20Sopenharmony_ci clocks = <&cgu X1830_CLK_MSC1>; 2808c2ecf20Sopenharmony_ci clock-names = "mmc"; 2818c2ecf20Sopenharmony_ci 2828c2ecf20Sopenharmony_ci cap-sd-highspeed; 2838c2ecf20Sopenharmony_ci cap-mmc-highspeed; 2848c2ecf20Sopenharmony_ci cap-sdio-irq; 2858c2ecf20Sopenharmony_ci 2868c2ecf20Sopenharmony_ci dmas = <&pdma X1830_DMA_MSC1_RX 0xffffffff>, 2878c2ecf20Sopenharmony_ci <&pdma X1830_DMA_MSC1_TX 0xffffffff>; 2888c2ecf20Sopenharmony_ci dma-names = "rx", "tx"; 2898c2ecf20Sopenharmony_ci 2908c2ecf20Sopenharmony_ci status = "disabled"; 2918c2ecf20Sopenharmony_ci }; 2928c2ecf20Sopenharmony_ci 2938c2ecf20Sopenharmony_ci mac: ethernet@134b0000 { 2948c2ecf20Sopenharmony_ci compatible = "ingenic,x1830-mac", "snps,dwmac"; 2958c2ecf20Sopenharmony_ci reg = <0x134b0000 0x2000>; 2968c2ecf20Sopenharmony_ci 2978c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 2988c2ecf20Sopenharmony_ci interrupts = <55>; 2998c2ecf20Sopenharmony_ci interrupt-names = "macirq"; 3008c2ecf20Sopenharmony_ci 3018c2ecf20Sopenharmony_ci clocks = <&cgu X1830_CLK_MAC>; 3028c2ecf20Sopenharmony_ci clock-names = "stmmaceth"; 3038c2ecf20Sopenharmony_ci 3048c2ecf20Sopenharmony_ci status = "disabled"; 3058c2ecf20Sopenharmony_ci 3068c2ecf20Sopenharmony_ci mdio: mdio { 3078c2ecf20Sopenharmony_ci compatible = "snps,dwmac-mdio"; 3088c2ecf20Sopenharmony_ci #address-cells = <1>; 3098c2ecf20Sopenharmony_ci #size-cells = <0>; 3108c2ecf20Sopenharmony_ci 3118c2ecf20Sopenharmony_ci status = "disabled"; 3128c2ecf20Sopenharmony_ci }; 3138c2ecf20Sopenharmony_ci }; 3148c2ecf20Sopenharmony_ci}; 315