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 58cf2e6b8eSPaul Cercueil clocks = <&cgu JZ4740_CLK_RTC>, 59cf2e6b8eSPaul Cercueil <&cgu JZ4740_CLK_EXT>, 60cf2e6b8eSPaul Cercueil <&cgu JZ4740_CLK_PCLK>, 61cf2e6b8eSPaul 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 }; 77*bf40bf5eSPaul Cercueil 78*bf40bf5eSPaul Cercueil pwm: pwm@40 { 79*bf40bf5eSPaul Cercueil compatible = "ingenic,jz4740-pwm"; 80*bf40bf5eSPaul Cercueil reg = <0x40 0x80>; 81*bf40bf5eSPaul Cercueil 82*bf40bf5eSPaul Cercueil #pwm-cells = <3>; 83*bf40bf5eSPaul Cercueil 84*bf40bf5eSPaul Cercueil clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>, 85*bf40bf5eSPaul Cercueil <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>, 86*bf40bf5eSPaul Cercueil <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>, 87*bf40bf5eSPaul Cercueil <&tcu TCU_CLK_TIMER6>, <&tcu TCU_CLK_TIMER7>; 88*bf40bf5eSPaul Cercueil clock-names = "timer0", "timer1", "timer2", "timer3", 89*bf40bf5eSPaul Cercueil "timer4", "timer5", "timer6", "timer7"; 90*bf40bf5eSPaul Cercueil }; 9136aafdbdSPaul Cercueil }; 9236aafdbdSPaul Cercueil 93262d62cbSPaul Cercueil rtc_dev: rtc@10003000 { 94262d62cbSPaul Cercueil compatible = "ingenic,jz4740-rtc"; 95262d62cbSPaul Cercueil reg = <0x10003000 0x40>; 96262d62cbSPaul Cercueil 97262d62cbSPaul Cercueil interrupt-parent = <&intc>; 98262d62cbSPaul Cercueil interrupts = <15>; 99262d62cbSPaul Cercueil 100262d62cbSPaul Cercueil clocks = <&cgu JZ4740_CLK_RTC>; 101262d62cbSPaul Cercueil clock-names = "rtc"; 102262d62cbSPaul Cercueil }; 103262d62cbSPaul Cercueil 1043951cbb5SPaul Cercueil pinctrl: pin-controller@10010000 { 1053951cbb5SPaul Cercueil compatible = "ingenic,jz4740-pinctrl"; 1063951cbb5SPaul Cercueil reg = <0x10010000 0x400>; 1073951cbb5SPaul Cercueil 1083951cbb5SPaul Cercueil #address-cells = <1>; 1093951cbb5SPaul Cercueil #size-cells = <0>; 1103951cbb5SPaul Cercueil 1113951cbb5SPaul Cercueil gpa: gpio@0 { 1123951cbb5SPaul Cercueil compatible = "ingenic,jz4740-gpio"; 1133951cbb5SPaul Cercueil reg = <0>; 1143951cbb5SPaul Cercueil 1153951cbb5SPaul Cercueil gpio-controller; 1163951cbb5SPaul Cercueil gpio-ranges = <&pinctrl 0 0 32>; 1173951cbb5SPaul Cercueil #gpio-cells = <2>; 1183951cbb5SPaul Cercueil 1193951cbb5SPaul Cercueil interrupt-controller; 1203951cbb5SPaul Cercueil #interrupt-cells = <2>; 1213951cbb5SPaul Cercueil 1223951cbb5SPaul Cercueil interrupt-parent = <&intc>; 1233951cbb5SPaul Cercueil interrupts = <28>; 1243951cbb5SPaul Cercueil }; 1253951cbb5SPaul Cercueil 1263951cbb5SPaul Cercueil gpb: gpio@1 { 1273951cbb5SPaul Cercueil compatible = "ingenic,jz4740-gpio"; 1283951cbb5SPaul Cercueil reg = <1>; 1293951cbb5SPaul Cercueil 1303951cbb5SPaul Cercueil gpio-controller; 1313951cbb5SPaul Cercueil gpio-ranges = <&pinctrl 0 32 32>; 1323951cbb5SPaul Cercueil #gpio-cells = <2>; 1333951cbb5SPaul Cercueil 1343951cbb5SPaul Cercueil interrupt-controller; 1353951cbb5SPaul Cercueil #interrupt-cells = <2>; 1363951cbb5SPaul Cercueil 1373951cbb5SPaul Cercueil interrupt-parent = <&intc>; 1383951cbb5SPaul Cercueil interrupts = <27>; 1393951cbb5SPaul Cercueil }; 1403951cbb5SPaul Cercueil 1413951cbb5SPaul Cercueil gpc: gpio@2 { 1423951cbb5SPaul Cercueil compatible = "ingenic,jz4740-gpio"; 1433951cbb5SPaul Cercueil reg = <2>; 1443951cbb5SPaul Cercueil 1453951cbb5SPaul Cercueil gpio-controller; 1463951cbb5SPaul Cercueil gpio-ranges = <&pinctrl 0 64 32>; 1473951cbb5SPaul Cercueil #gpio-cells = <2>; 1483951cbb5SPaul Cercueil 1493951cbb5SPaul Cercueil interrupt-controller; 1503951cbb5SPaul Cercueil #interrupt-cells = <2>; 1513951cbb5SPaul Cercueil 1523951cbb5SPaul Cercueil interrupt-parent = <&intc>; 1533951cbb5SPaul Cercueil interrupts = <26>; 1543951cbb5SPaul Cercueil }; 1553951cbb5SPaul Cercueil 1563951cbb5SPaul Cercueil gpd: gpio@3 { 1573951cbb5SPaul Cercueil compatible = "ingenic,jz4740-gpio"; 1583951cbb5SPaul Cercueil reg = <3>; 1593951cbb5SPaul Cercueil 1603951cbb5SPaul Cercueil gpio-controller; 1613951cbb5SPaul Cercueil gpio-ranges = <&pinctrl 0 96 32>; 1623951cbb5SPaul Cercueil #gpio-cells = <2>; 1633951cbb5SPaul Cercueil 1643951cbb5SPaul Cercueil interrupt-controller; 1653951cbb5SPaul Cercueil #interrupt-cells = <2>; 1663951cbb5SPaul Cercueil 1673951cbb5SPaul Cercueil interrupt-parent = <&intc>; 1683951cbb5SPaul Cercueil interrupts = <25>; 1693951cbb5SPaul Cercueil }; 1703951cbb5SPaul Cercueil }; 1713951cbb5SPaul Cercueil 17236ba3eaeSPaul Cercueil aic: audio-controller@10020000 { 17336ba3eaeSPaul Cercueil compatible = "ingenic,jz4740-i2s"; 17436ba3eaeSPaul Cercueil reg = <0x10020000 0x38>; 17536ba3eaeSPaul Cercueil 17636ba3eaeSPaul Cercueil #sound-dai-cells = <0>; 17736ba3eaeSPaul Cercueil 17836ba3eaeSPaul Cercueil interrupt-parent = <&intc>; 17936ba3eaeSPaul Cercueil interrupts = <18>; 18036ba3eaeSPaul Cercueil 18136ba3eaeSPaul Cercueil clocks = <&cgu JZ4740_CLK_AIC>, 18236ba3eaeSPaul Cercueil <&cgu JZ4740_CLK_I2S>, 18336ba3eaeSPaul Cercueil <&cgu JZ4740_CLK_EXT>, 18436ba3eaeSPaul Cercueil <&cgu JZ4740_CLK_PLL_HALF>; 18536ba3eaeSPaul Cercueil clock-names = "aic", "i2s", "ext", "pll half"; 18636ba3eaeSPaul Cercueil 18736ba3eaeSPaul Cercueil dmas = <&dmac 25 0xffffffff>, <&dmac 24 0xffffffff>; 18836ba3eaeSPaul Cercueil dma-names = "rx", "tx"; 18936ba3eaeSPaul Cercueil }; 19036ba3eaeSPaul Cercueil 19136ba3eaeSPaul Cercueil codec: audio-codec@100200a4 { 19236ba3eaeSPaul Cercueil compatible = "ingenic,jz4740-codec"; 19336ba3eaeSPaul Cercueil reg = <0x10020080 0x8>; 19436ba3eaeSPaul Cercueil 19536ba3eaeSPaul Cercueil #sound-dai-cells = <0>; 19636ba3eaeSPaul Cercueil 19736ba3eaeSPaul Cercueil clocks = <&cgu JZ4740_CLK_AIC>; 19836ba3eaeSPaul Cercueil clock-names = "aic"; 19936ba3eaeSPaul Cercueil }; 20036ba3eaeSPaul Cercueil 2015dad549dSPaul Cercueil mmc: mmc@10021000 { 2025dad549dSPaul Cercueil compatible = "ingenic,jz4740-mmc"; 2035dad549dSPaul Cercueil reg = <0x10021000 0x1000>; 2045dad549dSPaul Cercueil 2055dad549dSPaul Cercueil clocks = <&cgu JZ4740_CLK_MMC>; 2065dad549dSPaul Cercueil clock-names = "mmc"; 2075dad549dSPaul Cercueil 2085dad549dSPaul Cercueil interrupt-parent = <&intc>; 2095dad549dSPaul Cercueil interrupts = <14>; 2105dad549dSPaul Cercueil 2115dad549dSPaul Cercueil dmas = <&dmac 27 0xffffffff>, <&dmac 26 0xffffffff>; 2125dad549dSPaul Cercueil dma-names = "rx", "tx"; 2135dad549dSPaul Cercueil 2145dad549dSPaul Cercueil cap-sd-highspeed; 2155dad549dSPaul Cercueil cap-mmc-highspeed; 2165dad549dSPaul Cercueil cap-sdio-irq; 2175dad549dSPaul Cercueil }; 2185dad549dSPaul Cercueil 2198838245dSPaul Burton uart0: serial@10030000 { 2208838245dSPaul Burton compatible = "ingenic,jz4740-uart"; 2218838245dSPaul Burton reg = <0x10030000 0x100>; 2228838245dSPaul Burton 2238838245dSPaul Burton interrupt-parent = <&intc>; 2248838245dSPaul Burton interrupts = <9>; 2258838245dSPaul Burton 2268838245dSPaul Burton clocks = <&ext>, <&cgu JZ4740_CLK_UART0>; 2278838245dSPaul Burton clock-names = "baud", "module"; 2288838245dSPaul Burton }; 2298838245dSPaul Burton 2308838245dSPaul Burton uart1: serial@10031000 { 2318838245dSPaul Burton compatible = "ingenic,jz4740-uart"; 2328838245dSPaul Burton reg = <0x10031000 0x100>; 2338838245dSPaul Burton 2348838245dSPaul Burton interrupt-parent = <&intc>; 2358838245dSPaul Burton interrupts = <8>; 2368838245dSPaul Burton 2378838245dSPaul Burton clocks = <&ext>, <&cgu JZ4740_CLK_UART1>; 2388838245dSPaul Burton clock-names = "baud", "module"; 2398838245dSPaul Burton }; 2409d1e7875SMaarten ter Huurne 24136ba3eaeSPaul Cercueil adc: adc@10070000 { 24236ba3eaeSPaul Cercueil compatible = "ingenic,jz4740-adc"; 24336ba3eaeSPaul Cercueil reg = <0x10070000 0x30>; 24436ba3eaeSPaul Cercueil #io-channel-cells = <1>; 24536ba3eaeSPaul Cercueil 24636ba3eaeSPaul Cercueil clocks = <&cgu JZ4740_CLK_ADC>; 24736ba3eaeSPaul Cercueil clock-names = "adc"; 24836ba3eaeSPaul Cercueil 24936ba3eaeSPaul Cercueil interrupt-parent = <&intc>; 25036ba3eaeSPaul Cercueil interrupts = <12>; 25136ba3eaeSPaul Cercueil }; 25236ba3eaeSPaul Cercueil 25336ba3eaeSPaul Cercueil nemc: memory-controller@13010000 { 25436ba3eaeSPaul Cercueil compatible = "ingenic,jz4740-nemc"; 25536ba3eaeSPaul Cercueil reg = <0x13010000 0x54>; 25636ba3eaeSPaul Cercueil #address-cells = <2>; 25736ba3eaeSPaul Cercueil #size-cells = <1>; 258cf2e6b8eSPaul Cercueil ranges = <1 0 0x18000000 0x4000000>, 259cf2e6b8eSPaul Cercueil <2 0 0x14000000 0x4000000>, 260cf2e6b8eSPaul Cercueil <3 0 0x0c000000 0x4000000>, 261cf2e6b8eSPaul Cercueil <4 0 0x08000000 0x4000000>; 26236ba3eaeSPaul Cercueil 26336ba3eaeSPaul Cercueil clocks = <&cgu JZ4740_CLK_MCLK>; 26436ba3eaeSPaul Cercueil }; 26536ba3eaeSPaul Cercueil 26636ba3eaeSPaul Cercueil ecc: ecc-controller@13010100 { 26736ba3eaeSPaul Cercueil compatible = "ingenic,jz4740-ecc"; 26836ba3eaeSPaul Cercueil reg = <0x13010100 0x2C>; 26936ba3eaeSPaul Cercueil 27036ba3eaeSPaul Cercueil clocks = <&cgu JZ4740_CLK_MCLK>; 27136ba3eaeSPaul Cercueil }; 27236ba3eaeSPaul Cercueil 273d426c517SPaul Cercueil dmac: dma-controller@13020000 { 274d426c517SPaul Cercueil compatible = "ingenic,jz4740-dma"; 275cf2e6b8eSPaul Cercueil reg = <0x13020000 0xbc>, <0x13020300 0x14>; 276d426c517SPaul Cercueil #dma-cells = <2>; 277d426c517SPaul Cercueil 278d426c517SPaul Cercueil interrupt-parent = <&intc>; 27970999ec1SPaul Cercueil interrupts = <20>; 280d426c517SPaul Cercueil 281d426c517SPaul Cercueil clocks = <&cgu JZ4740_CLK_DMA>; 282d426c517SPaul Cercueil }; 283d426c517SPaul Cercueil 2849d1e7875SMaarten ter Huurne uhc: uhc@13030000 { 2859d1e7875SMaarten ter Huurne compatible = "ingenic,jz4740-ohci", "generic-ohci"; 2869d1e7875SMaarten ter Huurne reg = <0x13030000 0x1000>; 2879d1e7875SMaarten ter Huurne 2889d1e7875SMaarten ter Huurne clocks = <&cgu JZ4740_CLK_UHC>; 2899d1e7875SMaarten ter Huurne assigned-clocks = <&cgu JZ4740_CLK_UHC>; 2909d1e7875SMaarten ter Huurne assigned-clock-rates = <48000000>; 2919d1e7875SMaarten ter Huurne 2929d1e7875SMaarten ter Huurne interrupt-parent = <&intc>; 2939d1e7875SMaarten ter Huurne interrupts = <3>; 2949d1e7875SMaarten ter Huurne 2959d1e7875SMaarten ter Huurne status = "disabled"; 2969d1e7875SMaarten ter Huurne }; 29736ba3eaeSPaul Cercueil 29836ba3eaeSPaul Cercueil udc: usb@13040000 { 29936ba3eaeSPaul Cercueil compatible = "ingenic,jz4740-musb"; 30036ba3eaeSPaul Cercueil reg = <0x13040000 0x10000>; 30136ba3eaeSPaul Cercueil 30236ba3eaeSPaul Cercueil interrupt-parent = <&intc>; 30336ba3eaeSPaul Cercueil interrupts = <24>; 30436ba3eaeSPaul Cercueil interrupt-names = "mc"; 30536ba3eaeSPaul Cercueil 30636ba3eaeSPaul Cercueil clocks = <&cgu JZ4740_CLK_UDC>; 30736ba3eaeSPaul Cercueil clock-names = "udc"; 30836ba3eaeSPaul Cercueil }; 30936ba3eaeSPaul Cercueil 31036ba3eaeSPaul Cercueil lcd: lcd-controller@13050000 { 31136ba3eaeSPaul Cercueil compatible = "ingenic,jz4740-lcd"; 31236ba3eaeSPaul Cercueil reg = <0x13050000 0x1000>; 31336ba3eaeSPaul Cercueil 31436ba3eaeSPaul Cercueil interrupt-parent = <&intc>; 31536ba3eaeSPaul Cercueil interrupts = <30>; 31636ba3eaeSPaul Cercueil 31736ba3eaeSPaul Cercueil clocks = <&cgu JZ4740_CLK_LCD_PCLK>, <&cgu JZ4740_CLK_LCD>; 31836ba3eaeSPaul Cercueil clock-names = "lcd_pclk", "lcd"; 31936ba3eaeSPaul Cercueil }; 320ffb1843dSPaul Burton}; 321