1b2441318SGreg Kroah-Hartman// SPDX-License-Identifier: GPL-2.0 2ff1930c6SPaul Burton#include <dt-bindings/clock/jz4740-cgu.h> 311479e8eSPaul Cercueil#include <dt-bindings/clock/ingenic,tcu.h> 4ff1930c6SPaul Burton 5ffb1843dSPaul Burton/ { 6ffb1843dSPaul Burton #address-cells = <1>; 7ffb1843dSPaul Burton #size-cells = <1>; 8ffb1843dSPaul Burton compatible = "ingenic,jz4740"; 98e8261ebSPaul Burton 105214cae7SAntony Pavlov cpuintc: interrupt-controller { 118e8261ebSPaul Burton #address-cells = <0>; 128e8261ebSPaul Burton #interrupt-cells = <1>; 138e8261ebSPaul Burton interrupt-controller; 148e8261ebSPaul Burton compatible = "mti,cpu-interrupt-controller"; 158e8261ebSPaul Burton }; 16adbdce77SPaul Burton 17adbdce77SPaul Burton intc: interrupt-controller@10001000 { 18adbdce77SPaul Burton compatible = "ingenic,jz4740-intc"; 19adbdce77SPaul Burton reg = <0x10001000 0x14>; 20adbdce77SPaul Burton 21adbdce77SPaul Burton interrupt-controller; 22adbdce77SPaul Burton #interrupt-cells = <1>; 23adbdce77SPaul Burton 24adbdce77SPaul Burton interrupt-parent = <&cpuintc>; 25adbdce77SPaul Burton interrupts = <2>; 26adbdce77SPaul Burton }; 27ff1930c6SPaul Burton 28ff1930c6SPaul Burton ext: ext { 29ff1930c6SPaul Burton compatible = "fixed-clock"; 30ff1930c6SPaul Burton #clock-cells = <0>; 31ff1930c6SPaul Burton }; 32ff1930c6SPaul Burton 33ff1930c6SPaul Burton rtc: rtc { 34ff1930c6SPaul Burton compatible = "fixed-clock"; 35ff1930c6SPaul Burton #clock-cells = <0>; 36ff1930c6SPaul Burton clock-frequency = <32768>; 37ff1930c6SPaul Burton }; 38ff1930c6SPaul Burton 39ff1930c6SPaul Burton cgu: jz4740-cgu@10000000 { 40ff1930c6SPaul Burton compatible = "ingenic,jz4740-cgu"; 41ff1930c6SPaul Burton reg = <0x10000000 0x100>; 42ff1930c6SPaul Burton 43ff1930c6SPaul Burton clocks = <&ext>, <&rtc>; 44ff1930c6SPaul Burton clock-names = "ext", "rtc"; 45ff1930c6SPaul Burton 46ff1930c6SPaul Burton #clock-cells = <1>; 47ff1930c6SPaul Burton }; 488838245dSPaul Burton 4936aafdbdSPaul Cercueil tcu: timer@10002000 { 5036aafdbdSPaul Cercueil compatible = "ingenic,jz4740-tcu", "simple-mfd"; 5136aafdbdSPaul Cercueil reg = <0x10002000 0x1000>; 5236aafdbdSPaul Cercueil #address-cells = <1>; 5336aafdbdSPaul Cercueil #size-cells = <1>; 5436aafdbdSPaul Cercueil ranges = <0x0 0x10002000 0x1000>; 5536aafdbdSPaul Cercueil 5636aafdbdSPaul Cercueil #clock-cells = <1>; 5736aafdbdSPaul Cercueil 58*cf2e6b8eSPaul Cercueil clocks = <&cgu JZ4740_CLK_RTC>, 59*cf2e6b8eSPaul Cercueil <&cgu JZ4740_CLK_EXT>, 60*cf2e6b8eSPaul Cercueil <&cgu JZ4740_CLK_PCLK>, 61*cf2e6b8eSPaul Cercueil <&cgu JZ4740_CLK_TCU>; 6236aafdbdSPaul Cercueil clock-names = "rtc", "ext", "pclk", "tcu"; 6336aafdbdSPaul Cercueil 6436aafdbdSPaul Cercueil interrupt-controller; 6536aafdbdSPaul Cercueil #interrupt-cells = <1>; 6636aafdbdSPaul Cercueil 6736aafdbdSPaul Cercueil interrupt-parent = <&intc>; 6836aafdbdSPaul Cercueil interrupts = <23 22 21>; 6911479e8eSPaul Cercueil 7011479e8eSPaul Cercueil watchdog: watchdog@0 { 7111479e8eSPaul Cercueil compatible = "ingenic,jz4740-watchdog"; 7211479e8eSPaul Cercueil reg = <0x0 0xc>; 7311479e8eSPaul Cercueil 7411479e8eSPaul Cercueil clocks = <&tcu TCU_CLK_WDT>; 7511479e8eSPaul Cercueil clock-names = "wdt"; 7611479e8eSPaul Cercueil }; 7736aafdbdSPaul Cercueil }; 7836aafdbdSPaul Cercueil 79262d62cbSPaul Cercueil rtc_dev: rtc@10003000 { 80262d62cbSPaul Cercueil compatible = "ingenic,jz4740-rtc"; 81262d62cbSPaul Cercueil reg = <0x10003000 0x40>; 82262d62cbSPaul Cercueil 83262d62cbSPaul Cercueil interrupt-parent = <&intc>; 84262d62cbSPaul Cercueil interrupts = <15>; 85262d62cbSPaul Cercueil 86262d62cbSPaul Cercueil clocks = <&cgu JZ4740_CLK_RTC>; 87262d62cbSPaul Cercueil clock-names = "rtc"; 88262d62cbSPaul Cercueil }; 89262d62cbSPaul Cercueil 903951cbb5SPaul Cercueil pinctrl: pin-controller@10010000 { 913951cbb5SPaul Cercueil compatible = "ingenic,jz4740-pinctrl"; 923951cbb5SPaul Cercueil reg = <0x10010000 0x400>; 933951cbb5SPaul Cercueil 943951cbb5SPaul Cercueil #address-cells = <1>; 953951cbb5SPaul Cercueil #size-cells = <0>; 963951cbb5SPaul Cercueil 973951cbb5SPaul Cercueil gpa: gpio@0 { 983951cbb5SPaul Cercueil compatible = "ingenic,jz4740-gpio"; 993951cbb5SPaul Cercueil reg = <0>; 1003951cbb5SPaul Cercueil 1013951cbb5SPaul Cercueil gpio-controller; 1023951cbb5SPaul Cercueil gpio-ranges = <&pinctrl 0 0 32>; 1033951cbb5SPaul Cercueil #gpio-cells = <2>; 1043951cbb5SPaul Cercueil 1053951cbb5SPaul Cercueil interrupt-controller; 1063951cbb5SPaul Cercueil #interrupt-cells = <2>; 1073951cbb5SPaul Cercueil 1083951cbb5SPaul Cercueil interrupt-parent = <&intc>; 1093951cbb5SPaul Cercueil interrupts = <28>; 1103951cbb5SPaul Cercueil }; 1113951cbb5SPaul Cercueil 1123951cbb5SPaul Cercueil gpb: gpio@1 { 1133951cbb5SPaul Cercueil compatible = "ingenic,jz4740-gpio"; 1143951cbb5SPaul Cercueil reg = <1>; 1153951cbb5SPaul Cercueil 1163951cbb5SPaul Cercueil gpio-controller; 1173951cbb5SPaul Cercueil gpio-ranges = <&pinctrl 0 32 32>; 1183951cbb5SPaul Cercueil #gpio-cells = <2>; 1193951cbb5SPaul Cercueil 1203951cbb5SPaul Cercueil interrupt-controller; 1213951cbb5SPaul Cercueil #interrupt-cells = <2>; 1223951cbb5SPaul Cercueil 1233951cbb5SPaul Cercueil interrupt-parent = <&intc>; 1243951cbb5SPaul Cercueil interrupts = <27>; 1253951cbb5SPaul Cercueil }; 1263951cbb5SPaul Cercueil 1273951cbb5SPaul Cercueil gpc: gpio@2 { 1283951cbb5SPaul Cercueil compatible = "ingenic,jz4740-gpio"; 1293951cbb5SPaul Cercueil reg = <2>; 1303951cbb5SPaul Cercueil 1313951cbb5SPaul Cercueil gpio-controller; 1323951cbb5SPaul Cercueil gpio-ranges = <&pinctrl 0 64 32>; 1333951cbb5SPaul Cercueil #gpio-cells = <2>; 1343951cbb5SPaul Cercueil 1353951cbb5SPaul Cercueil interrupt-controller; 1363951cbb5SPaul Cercueil #interrupt-cells = <2>; 1373951cbb5SPaul Cercueil 1383951cbb5SPaul Cercueil interrupt-parent = <&intc>; 1393951cbb5SPaul Cercueil interrupts = <26>; 1403951cbb5SPaul Cercueil }; 1413951cbb5SPaul Cercueil 1423951cbb5SPaul Cercueil gpd: gpio@3 { 1433951cbb5SPaul Cercueil compatible = "ingenic,jz4740-gpio"; 1443951cbb5SPaul Cercueil reg = <3>; 1453951cbb5SPaul Cercueil 1463951cbb5SPaul Cercueil gpio-controller; 1473951cbb5SPaul Cercueil gpio-ranges = <&pinctrl 0 96 32>; 1483951cbb5SPaul Cercueil #gpio-cells = <2>; 1493951cbb5SPaul Cercueil 1503951cbb5SPaul Cercueil interrupt-controller; 1513951cbb5SPaul Cercueil #interrupt-cells = <2>; 1523951cbb5SPaul Cercueil 1533951cbb5SPaul Cercueil interrupt-parent = <&intc>; 1543951cbb5SPaul Cercueil interrupts = <25>; 1553951cbb5SPaul Cercueil }; 1563951cbb5SPaul Cercueil }; 1573951cbb5SPaul Cercueil 15836ba3eaeSPaul Cercueil aic: audio-controller@10020000 { 15936ba3eaeSPaul Cercueil compatible = "ingenic,jz4740-i2s"; 16036ba3eaeSPaul Cercueil reg = <0x10020000 0x38>; 16136ba3eaeSPaul Cercueil 16236ba3eaeSPaul Cercueil #sound-dai-cells = <0>; 16336ba3eaeSPaul Cercueil 16436ba3eaeSPaul Cercueil interrupt-parent = <&intc>; 16536ba3eaeSPaul Cercueil interrupts = <18>; 16636ba3eaeSPaul Cercueil 16736ba3eaeSPaul Cercueil clocks = <&cgu JZ4740_CLK_AIC>, 16836ba3eaeSPaul Cercueil <&cgu JZ4740_CLK_I2S>, 16936ba3eaeSPaul Cercueil <&cgu JZ4740_CLK_EXT>, 17036ba3eaeSPaul Cercueil <&cgu JZ4740_CLK_PLL_HALF>; 17136ba3eaeSPaul Cercueil clock-names = "aic", "i2s", "ext", "pll half"; 17236ba3eaeSPaul Cercueil 17336ba3eaeSPaul Cercueil dmas = <&dmac 25 0xffffffff>, <&dmac 24 0xffffffff>; 17436ba3eaeSPaul Cercueil dma-names = "rx", "tx"; 17536ba3eaeSPaul Cercueil }; 17636ba3eaeSPaul Cercueil 17736ba3eaeSPaul Cercueil codec: audio-codec@100200a4 { 17836ba3eaeSPaul Cercueil compatible = "ingenic,jz4740-codec"; 17936ba3eaeSPaul Cercueil reg = <0x10020080 0x8>; 18036ba3eaeSPaul Cercueil 18136ba3eaeSPaul Cercueil #sound-dai-cells = <0>; 18236ba3eaeSPaul Cercueil 18336ba3eaeSPaul Cercueil clocks = <&cgu JZ4740_CLK_AIC>; 18436ba3eaeSPaul Cercueil clock-names = "aic"; 18536ba3eaeSPaul Cercueil }; 18636ba3eaeSPaul Cercueil 1875dad549dSPaul Cercueil mmc: mmc@10021000 { 1885dad549dSPaul Cercueil compatible = "ingenic,jz4740-mmc"; 1895dad549dSPaul Cercueil reg = <0x10021000 0x1000>; 1905dad549dSPaul Cercueil 1915dad549dSPaul Cercueil clocks = <&cgu JZ4740_CLK_MMC>; 1925dad549dSPaul Cercueil clock-names = "mmc"; 1935dad549dSPaul Cercueil 1945dad549dSPaul Cercueil interrupt-parent = <&intc>; 1955dad549dSPaul Cercueil interrupts = <14>; 1965dad549dSPaul Cercueil 1975dad549dSPaul Cercueil dmas = <&dmac 27 0xffffffff>, <&dmac 26 0xffffffff>; 1985dad549dSPaul Cercueil dma-names = "rx", "tx"; 1995dad549dSPaul Cercueil 2005dad549dSPaul Cercueil cap-sd-highspeed; 2015dad549dSPaul Cercueil cap-mmc-highspeed; 2025dad549dSPaul Cercueil cap-sdio-irq; 2035dad549dSPaul Cercueil }; 2045dad549dSPaul Cercueil 2058838245dSPaul Burton uart0: serial@10030000 { 2068838245dSPaul Burton compatible = "ingenic,jz4740-uart"; 2078838245dSPaul Burton reg = <0x10030000 0x100>; 2088838245dSPaul Burton 2098838245dSPaul Burton interrupt-parent = <&intc>; 2108838245dSPaul Burton interrupts = <9>; 2118838245dSPaul Burton 2128838245dSPaul Burton clocks = <&ext>, <&cgu JZ4740_CLK_UART0>; 2138838245dSPaul Burton clock-names = "baud", "module"; 2148838245dSPaul Burton }; 2158838245dSPaul Burton 2168838245dSPaul Burton uart1: serial@10031000 { 2178838245dSPaul Burton compatible = "ingenic,jz4740-uart"; 2188838245dSPaul Burton reg = <0x10031000 0x100>; 2198838245dSPaul Burton 2208838245dSPaul Burton interrupt-parent = <&intc>; 2218838245dSPaul Burton interrupts = <8>; 2228838245dSPaul Burton 2238838245dSPaul Burton clocks = <&ext>, <&cgu JZ4740_CLK_UART1>; 2248838245dSPaul Burton clock-names = "baud", "module"; 2258838245dSPaul Burton }; 2269d1e7875SMaarten ter Huurne 22736ba3eaeSPaul Cercueil adc: adc@10070000 { 22836ba3eaeSPaul Cercueil compatible = "ingenic,jz4740-adc"; 22936ba3eaeSPaul Cercueil reg = <0x10070000 0x30>; 23036ba3eaeSPaul Cercueil #io-channel-cells = <1>; 23136ba3eaeSPaul Cercueil 23236ba3eaeSPaul Cercueil clocks = <&cgu JZ4740_CLK_ADC>; 23336ba3eaeSPaul Cercueil clock-names = "adc"; 23436ba3eaeSPaul Cercueil 23536ba3eaeSPaul Cercueil interrupt-parent = <&intc>; 23636ba3eaeSPaul Cercueil interrupts = <12>; 23736ba3eaeSPaul Cercueil }; 23836ba3eaeSPaul Cercueil 23936ba3eaeSPaul Cercueil nemc: memory-controller@13010000 { 24036ba3eaeSPaul Cercueil compatible = "ingenic,jz4740-nemc"; 24136ba3eaeSPaul Cercueil reg = <0x13010000 0x54>; 24236ba3eaeSPaul Cercueil #address-cells = <2>; 24336ba3eaeSPaul Cercueil #size-cells = <1>; 244*cf2e6b8eSPaul Cercueil ranges = <1 0 0x18000000 0x4000000>, 245*cf2e6b8eSPaul Cercueil <2 0 0x14000000 0x4000000>, 246*cf2e6b8eSPaul Cercueil <3 0 0x0c000000 0x4000000>, 247*cf2e6b8eSPaul Cercueil <4 0 0x08000000 0x4000000>; 24836ba3eaeSPaul Cercueil 24936ba3eaeSPaul Cercueil clocks = <&cgu JZ4740_CLK_MCLK>; 25036ba3eaeSPaul Cercueil }; 25136ba3eaeSPaul Cercueil 25236ba3eaeSPaul Cercueil ecc: ecc-controller@13010100 { 25336ba3eaeSPaul Cercueil compatible = "ingenic,jz4740-ecc"; 25436ba3eaeSPaul Cercueil reg = <0x13010100 0x2C>; 25536ba3eaeSPaul Cercueil 25636ba3eaeSPaul Cercueil clocks = <&cgu JZ4740_CLK_MCLK>; 25736ba3eaeSPaul Cercueil }; 25836ba3eaeSPaul Cercueil 259d426c517SPaul Cercueil dmac: dma-controller@13020000 { 260d426c517SPaul Cercueil compatible = "ingenic,jz4740-dma"; 261*cf2e6b8eSPaul Cercueil reg = <0x13020000 0xbc>, <0x13020300 0x14>; 262d426c517SPaul Cercueil #dma-cells = <2>; 263d426c517SPaul Cercueil 264d426c517SPaul Cercueil interrupt-parent = <&intc>; 26570999ec1SPaul Cercueil interrupts = <20>; 266d426c517SPaul Cercueil 267d426c517SPaul Cercueil clocks = <&cgu JZ4740_CLK_DMA>; 268d426c517SPaul Cercueil }; 269d426c517SPaul Cercueil 2709d1e7875SMaarten ter Huurne uhc: uhc@13030000 { 2719d1e7875SMaarten ter Huurne compatible = "ingenic,jz4740-ohci", "generic-ohci"; 2729d1e7875SMaarten ter Huurne reg = <0x13030000 0x1000>; 2739d1e7875SMaarten ter Huurne 2749d1e7875SMaarten ter Huurne clocks = <&cgu JZ4740_CLK_UHC>; 2759d1e7875SMaarten ter Huurne assigned-clocks = <&cgu JZ4740_CLK_UHC>; 2769d1e7875SMaarten ter Huurne assigned-clock-rates = <48000000>; 2779d1e7875SMaarten ter Huurne 2789d1e7875SMaarten ter Huurne interrupt-parent = <&intc>; 2799d1e7875SMaarten ter Huurne interrupts = <3>; 2809d1e7875SMaarten ter Huurne 2819d1e7875SMaarten ter Huurne status = "disabled"; 2829d1e7875SMaarten ter Huurne }; 28336ba3eaeSPaul Cercueil 28436ba3eaeSPaul Cercueil udc: usb@13040000 { 28536ba3eaeSPaul Cercueil compatible = "ingenic,jz4740-musb"; 28636ba3eaeSPaul Cercueil reg = <0x13040000 0x10000>; 28736ba3eaeSPaul Cercueil 28836ba3eaeSPaul Cercueil interrupt-parent = <&intc>; 28936ba3eaeSPaul Cercueil interrupts = <24>; 29036ba3eaeSPaul Cercueil interrupt-names = "mc"; 29136ba3eaeSPaul Cercueil 29236ba3eaeSPaul Cercueil clocks = <&cgu JZ4740_CLK_UDC>; 29336ba3eaeSPaul Cercueil clock-names = "udc"; 29436ba3eaeSPaul Cercueil }; 29536ba3eaeSPaul Cercueil 29636ba3eaeSPaul Cercueil lcd: lcd-controller@13050000 { 29736ba3eaeSPaul Cercueil compatible = "ingenic,jz4740-lcd"; 29836ba3eaeSPaul Cercueil reg = <0x13050000 0x1000>; 29936ba3eaeSPaul Cercueil 30036ba3eaeSPaul Cercueil interrupt-parent = <&intc>; 30136ba3eaeSPaul Cercueil interrupts = <30>; 30236ba3eaeSPaul Cercueil 30336ba3eaeSPaul Cercueil clocks = <&cgu JZ4740_CLK_LCD_PCLK>, <&cgu JZ4740_CLK_LCD>; 30436ba3eaeSPaul Cercueil clock-names = "lcd_pclk", "lcd"; 30536ba3eaeSPaul Cercueil }; 306ffb1843dSPaul Burton}; 307