xref: /openbmc/linux/arch/mips/boot/dts/ingenic/jz4740.dtsi (revision 5dad549d94c8dac1a99bbc72d481d64dc4974ea3)
1b2441318SGreg Kroah-Hartman// SPDX-License-Identifier: GPL-2.0
2ff1930c6SPaul Burton#include <dt-bindings/clock/jz4740-cgu.h>
3ff1930c6SPaul Burton
4ffb1843dSPaul Burton/ {
5ffb1843dSPaul Burton	#address-cells = <1>;
6ffb1843dSPaul Burton	#size-cells = <1>;
7ffb1843dSPaul Burton	compatible = "ingenic,jz4740";
88e8261ebSPaul Burton
95214cae7SAntony Pavlov	cpuintc: interrupt-controller {
108e8261ebSPaul Burton		#address-cells = <0>;
118e8261ebSPaul Burton		#interrupt-cells = <1>;
128e8261ebSPaul Burton		interrupt-controller;
138e8261ebSPaul Burton		compatible = "mti,cpu-interrupt-controller";
148e8261ebSPaul Burton	};
15adbdce77SPaul Burton
16adbdce77SPaul Burton	intc: interrupt-controller@10001000 {
17adbdce77SPaul Burton		compatible = "ingenic,jz4740-intc";
18adbdce77SPaul Burton		reg = <0x10001000 0x14>;
19adbdce77SPaul Burton
20adbdce77SPaul Burton		interrupt-controller;
21adbdce77SPaul Burton		#interrupt-cells = <1>;
22adbdce77SPaul Burton
23adbdce77SPaul Burton		interrupt-parent = <&cpuintc>;
24adbdce77SPaul Burton		interrupts = <2>;
25adbdce77SPaul Burton	};
26ff1930c6SPaul Burton
27ff1930c6SPaul Burton	ext: ext {
28ff1930c6SPaul Burton		compatible = "fixed-clock";
29ff1930c6SPaul Burton		#clock-cells = <0>;
30ff1930c6SPaul Burton	};
31ff1930c6SPaul Burton
32ff1930c6SPaul Burton	rtc: rtc {
33ff1930c6SPaul Burton		compatible = "fixed-clock";
34ff1930c6SPaul Burton		#clock-cells = <0>;
35ff1930c6SPaul Burton		clock-frequency = <32768>;
36ff1930c6SPaul Burton	};
37ff1930c6SPaul Burton
38ff1930c6SPaul Burton	cgu: jz4740-cgu@10000000 {
39ff1930c6SPaul Burton		compatible = "ingenic,jz4740-cgu";
40ff1930c6SPaul Burton		reg = <0x10000000 0x100>;
41ff1930c6SPaul Burton
42ff1930c6SPaul Burton		clocks = <&ext>, <&rtc>;
43ff1930c6SPaul Burton		clock-names = "ext", "rtc";
44ff1930c6SPaul Burton
45ff1930c6SPaul Burton		#clock-cells = <1>;
46ff1930c6SPaul Burton	};
478838245dSPaul Burton
48fbc23c71SPaul Cercueil	watchdog: watchdog@10002000 {
49fbc23c71SPaul Cercueil		compatible = "ingenic,jz4740-watchdog";
50fbc23c71SPaul Cercueil		reg = <0x10002000 0x10>;
51fbc23c71SPaul Cercueil
52fbc23c71SPaul Cercueil		clocks = <&cgu JZ4740_CLK_RTC>;
53fbc23c71SPaul Cercueil		clock-names = "rtc";
54fbc23c71SPaul Cercueil	};
55fbc23c71SPaul Cercueil
56262d62cbSPaul Cercueil	rtc_dev: rtc@10003000 {
57262d62cbSPaul Cercueil		compatible = "ingenic,jz4740-rtc";
58262d62cbSPaul Cercueil		reg = <0x10003000 0x40>;
59262d62cbSPaul Cercueil
60262d62cbSPaul Cercueil		interrupt-parent = <&intc>;
61262d62cbSPaul Cercueil		interrupts = <15>;
62262d62cbSPaul Cercueil
63262d62cbSPaul Cercueil		clocks = <&cgu JZ4740_CLK_RTC>;
64262d62cbSPaul Cercueil		clock-names = "rtc";
65262d62cbSPaul Cercueil	};
66262d62cbSPaul Cercueil
673951cbb5SPaul Cercueil	pinctrl: pin-controller@10010000 {
683951cbb5SPaul Cercueil		compatible = "ingenic,jz4740-pinctrl";
693951cbb5SPaul Cercueil		reg = <0x10010000 0x400>;
703951cbb5SPaul Cercueil
713951cbb5SPaul Cercueil		#address-cells = <1>;
723951cbb5SPaul Cercueil		#size-cells = <0>;
733951cbb5SPaul Cercueil
743951cbb5SPaul Cercueil		gpa: gpio@0 {
753951cbb5SPaul Cercueil			compatible = "ingenic,jz4740-gpio";
763951cbb5SPaul Cercueil			reg = <0>;
773951cbb5SPaul Cercueil
783951cbb5SPaul Cercueil			gpio-controller;
793951cbb5SPaul Cercueil			gpio-ranges = <&pinctrl 0 0 32>;
803951cbb5SPaul Cercueil			#gpio-cells = <2>;
813951cbb5SPaul Cercueil
823951cbb5SPaul Cercueil			interrupt-controller;
833951cbb5SPaul Cercueil			#interrupt-cells = <2>;
843951cbb5SPaul Cercueil
853951cbb5SPaul Cercueil			interrupt-parent = <&intc>;
863951cbb5SPaul Cercueil			interrupts = <28>;
873951cbb5SPaul Cercueil		};
883951cbb5SPaul Cercueil
893951cbb5SPaul Cercueil		gpb: gpio@1 {
903951cbb5SPaul Cercueil			compatible = "ingenic,jz4740-gpio";
913951cbb5SPaul Cercueil			reg = <1>;
923951cbb5SPaul Cercueil
933951cbb5SPaul Cercueil			gpio-controller;
943951cbb5SPaul Cercueil			gpio-ranges = <&pinctrl 0 32 32>;
953951cbb5SPaul Cercueil			#gpio-cells = <2>;
963951cbb5SPaul Cercueil
973951cbb5SPaul Cercueil			interrupt-controller;
983951cbb5SPaul Cercueil			#interrupt-cells = <2>;
993951cbb5SPaul Cercueil
1003951cbb5SPaul Cercueil			interrupt-parent = <&intc>;
1013951cbb5SPaul Cercueil			interrupts = <27>;
1023951cbb5SPaul Cercueil		};
1033951cbb5SPaul Cercueil
1043951cbb5SPaul Cercueil		gpc: gpio@2 {
1053951cbb5SPaul Cercueil			compatible = "ingenic,jz4740-gpio";
1063951cbb5SPaul Cercueil			reg = <2>;
1073951cbb5SPaul Cercueil
1083951cbb5SPaul Cercueil			gpio-controller;
1093951cbb5SPaul Cercueil			gpio-ranges = <&pinctrl 0 64 32>;
1103951cbb5SPaul Cercueil			#gpio-cells = <2>;
1113951cbb5SPaul Cercueil
1123951cbb5SPaul Cercueil			interrupt-controller;
1133951cbb5SPaul Cercueil			#interrupt-cells = <2>;
1143951cbb5SPaul Cercueil
1153951cbb5SPaul Cercueil			interrupt-parent = <&intc>;
1163951cbb5SPaul Cercueil			interrupts = <26>;
1173951cbb5SPaul Cercueil		};
1183951cbb5SPaul Cercueil
1193951cbb5SPaul Cercueil		gpd: gpio@3 {
1203951cbb5SPaul Cercueil			compatible = "ingenic,jz4740-gpio";
1213951cbb5SPaul Cercueil			reg = <3>;
1223951cbb5SPaul Cercueil
1233951cbb5SPaul Cercueil			gpio-controller;
1243951cbb5SPaul Cercueil			gpio-ranges = <&pinctrl 0 96 32>;
1253951cbb5SPaul Cercueil			#gpio-cells = <2>;
1263951cbb5SPaul Cercueil
1273951cbb5SPaul Cercueil			interrupt-controller;
1283951cbb5SPaul Cercueil			#interrupt-cells = <2>;
1293951cbb5SPaul Cercueil
1303951cbb5SPaul Cercueil			interrupt-parent = <&intc>;
1313951cbb5SPaul Cercueil			interrupts = <25>;
1323951cbb5SPaul Cercueil		};
1333951cbb5SPaul Cercueil	};
1343951cbb5SPaul Cercueil
135*5dad549dSPaul Cercueil	mmc: mmc@10021000 {
136*5dad549dSPaul Cercueil		compatible = "ingenic,jz4740-mmc";
137*5dad549dSPaul Cercueil		reg = <0x10021000 0x1000>;
138*5dad549dSPaul Cercueil
139*5dad549dSPaul Cercueil		clocks = <&cgu JZ4740_CLK_MMC>;
140*5dad549dSPaul Cercueil		clock-names = "mmc";
141*5dad549dSPaul Cercueil
142*5dad549dSPaul Cercueil		interrupt-parent = <&intc>;
143*5dad549dSPaul Cercueil		interrupts = <14>;
144*5dad549dSPaul Cercueil
145*5dad549dSPaul Cercueil		dmas = <&dmac 27 0xffffffff>, <&dmac 26 0xffffffff>;
146*5dad549dSPaul Cercueil		dma-names = "rx", "tx";
147*5dad549dSPaul Cercueil
148*5dad549dSPaul Cercueil		cap-sd-highspeed;
149*5dad549dSPaul Cercueil		cap-mmc-highspeed;
150*5dad549dSPaul Cercueil		cap-sdio-irq;
151*5dad549dSPaul Cercueil	};
152*5dad549dSPaul Cercueil
1538838245dSPaul Burton	uart0: serial@10030000 {
1548838245dSPaul Burton		compatible = "ingenic,jz4740-uart";
1558838245dSPaul Burton		reg = <0x10030000 0x100>;
1568838245dSPaul Burton
1578838245dSPaul Burton		interrupt-parent = <&intc>;
1588838245dSPaul Burton		interrupts = <9>;
1598838245dSPaul Burton
1608838245dSPaul Burton		clocks = <&ext>, <&cgu JZ4740_CLK_UART0>;
1618838245dSPaul Burton		clock-names = "baud", "module";
1628838245dSPaul Burton	};
1638838245dSPaul Burton
1648838245dSPaul Burton	uart1: serial@10031000 {
1658838245dSPaul Burton		compatible = "ingenic,jz4740-uart";
1668838245dSPaul Burton		reg = <0x10031000 0x100>;
1678838245dSPaul Burton
1688838245dSPaul Burton		interrupt-parent = <&intc>;
1698838245dSPaul Burton		interrupts = <8>;
1708838245dSPaul Burton
1718838245dSPaul Burton		clocks = <&ext>, <&cgu JZ4740_CLK_UART1>;
1728838245dSPaul Burton		clock-names = "baud", "module";
1738838245dSPaul Burton	};
1749d1e7875SMaarten ter Huurne
175d426c517SPaul Cercueil	dmac: dma-controller@13020000 {
176d426c517SPaul Cercueil		compatible = "ingenic,jz4740-dma";
177d426c517SPaul Cercueil		reg = <0x13020000 0xbc
178d426c517SPaul Cercueil		       0x13020300 0x14>;
179d426c517SPaul Cercueil		#dma-cells = <2>;
180d426c517SPaul Cercueil
181d426c517SPaul Cercueil		interrupt-parent = <&intc>;
18270999ec1SPaul Cercueil		interrupts = <20>;
183d426c517SPaul Cercueil
184d426c517SPaul Cercueil		clocks = <&cgu JZ4740_CLK_DMA>;
185d426c517SPaul Cercueil	};
186d426c517SPaul Cercueil
1879d1e7875SMaarten ter Huurne	uhc: uhc@13030000 {
1889d1e7875SMaarten ter Huurne		compatible = "ingenic,jz4740-ohci", "generic-ohci";
1899d1e7875SMaarten ter Huurne		reg = <0x13030000 0x1000>;
1909d1e7875SMaarten ter Huurne
1919d1e7875SMaarten ter Huurne		clocks = <&cgu JZ4740_CLK_UHC>;
1929d1e7875SMaarten ter Huurne		assigned-clocks = <&cgu JZ4740_CLK_UHC>;
1939d1e7875SMaarten ter Huurne		assigned-clock-rates = <48000000>;
1949d1e7875SMaarten ter Huurne
1959d1e7875SMaarten ter Huurne		interrupt-parent = <&intc>;
1969d1e7875SMaarten ter Huurne		interrupts = <3>;
1979d1e7875SMaarten ter Huurne
1989d1e7875SMaarten ter Huurne		status = "disabled";
1999d1e7875SMaarten ter Huurne	};
200ffb1843dSPaul Burton};
201