xref: /openbmc/linux/arch/mips/boot/dts/ingenic/jz4740.dtsi (revision 36aafdbd52881eda9073c4d03d65438a16b87a92)
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
56*36aafdbdSPaul Cercueil	tcu: timer@10002000 {
57*36aafdbdSPaul Cercueil		compatible = "ingenic,jz4740-tcu", "simple-mfd";
58*36aafdbdSPaul Cercueil		reg = <0x10002000 0x1000>;
59*36aafdbdSPaul Cercueil		#address-cells = <1>;
60*36aafdbdSPaul Cercueil		#size-cells = <1>;
61*36aafdbdSPaul Cercueil		ranges = <0x0 0x10002000 0x1000>;
62*36aafdbdSPaul Cercueil
63*36aafdbdSPaul Cercueil		#clock-cells = <1>;
64*36aafdbdSPaul Cercueil
65*36aafdbdSPaul Cercueil		clocks = <&cgu JZ4740_CLK_RTC
66*36aafdbdSPaul Cercueil			  &cgu JZ4740_CLK_EXT
67*36aafdbdSPaul Cercueil			  &cgu JZ4740_CLK_PCLK
68*36aafdbdSPaul Cercueil			  &cgu JZ4740_CLK_TCU>;
69*36aafdbdSPaul Cercueil		clock-names = "rtc", "ext", "pclk", "tcu";
70*36aafdbdSPaul Cercueil
71*36aafdbdSPaul Cercueil		interrupt-controller;
72*36aafdbdSPaul Cercueil		#interrupt-cells = <1>;
73*36aafdbdSPaul Cercueil
74*36aafdbdSPaul Cercueil		interrupt-parent = <&intc>;
75*36aafdbdSPaul Cercueil		interrupts = <23 22 21>;
76*36aafdbdSPaul Cercueil	};
77*36aafdbdSPaul Cercueil
78262d62cbSPaul Cercueil	rtc_dev: rtc@10003000 {
79262d62cbSPaul Cercueil		compatible = "ingenic,jz4740-rtc";
80262d62cbSPaul Cercueil		reg = <0x10003000 0x40>;
81262d62cbSPaul Cercueil
82262d62cbSPaul Cercueil		interrupt-parent = <&intc>;
83262d62cbSPaul Cercueil		interrupts = <15>;
84262d62cbSPaul Cercueil
85262d62cbSPaul Cercueil		clocks = <&cgu JZ4740_CLK_RTC>;
86262d62cbSPaul Cercueil		clock-names = "rtc";
87262d62cbSPaul Cercueil	};
88262d62cbSPaul Cercueil
893951cbb5SPaul Cercueil	pinctrl: pin-controller@10010000 {
903951cbb5SPaul Cercueil		compatible = "ingenic,jz4740-pinctrl";
913951cbb5SPaul Cercueil		reg = <0x10010000 0x400>;
923951cbb5SPaul Cercueil
933951cbb5SPaul Cercueil		#address-cells = <1>;
943951cbb5SPaul Cercueil		#size-cells = <0>;
953951cbb5SPaul Cercueil
963951cbb5SPaul Cercueil		gpa: gpio@0 {
973951cbb5SPaul Cercueil			compatible = "ingenic,jz4740-gpio";
983951cbb5SPaul Cercueil			reg = <0>;
993951cbb5SPaul Cercueil
1003951cbb5SPaul Cercueil			gpio-controller;
1013951cbb5SPaul Cercueil			gpio-ranges = <&pinctrl 0 0 32>;
1023951cbb5SPaul Cercueil			#gpio-cells = <2>;
1033951cbb5SPaul Cercueil
1043951cbb5SPaul Cercueil			interrupt-controller;
1053951cbb5SPaul Cercueil			#interrupt-cells = <2>;
1063951cbb5SPaul Cercueil
1073951cbb5SPaul Cercueil			interrupt-parent = <&intc>;
1083951cbb5SPaul Cercueil			interrupts = <28>;
1093951cbb5SPaul Cercueil		};
1103951cbb5SPaul Cercueil
1113951cbb5SPaul Cercueil		gpb: gpio@1 {
1123951cbb5SPaul Cercueil			compatible = "ingenic,jz4740-gpio";
1133951cbb5SPaul Cercueil			reg = <1>;
1143951cbb5SPaul Cercueil
1153951cbb5SPaul Cercueil			gpio-controller;
1163951cbb5SPaul Cercueil			gpio-ranges = <&pinctrl 0 32 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 = <27>;
1243951cbb5SPaul Cercueil		};
1253951cbb5SPaul Cercueil
1263951cbb5SPaul Cercueil		gpc: gpio@2 {
1273951cbb5SPaul Cercueil			compatible = "ingenic,jz4740-gpio";
1283951cbb5SPaul Cercueil			reg = <2>;
1293951cbb5SPaul Cercueil
1303951cbb5SPaul Cercueil			gpio-controller;
1313951cbb5SPaul Cercueil			gpio-ranges = <&pinctrl 0 64 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 = <26>;
1393951cbb5SPaul Cercueil		};
1403951cbb5SPaul Cercueil
1413951cbb5SPaul Cercueil		gpd: gpio@3 {
1423951cbb5SPaul Cercueil			compatible = "ingenic,jz4740-gpio";
1433951cbb5SPaul Cercueil			reg = <3>;
1443951cbb5SPaul Cercueil
1453951cbb5SPaul Cercueil			gpio-controller;
1463951cbb5SPaul Cercueil			gpio-ranges = <&pinctrl 0 96 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 = <25>;
1543951cbb5SPaul Cercueil		};
1553951cbb5SPaul Cercueil	};
1563951cbb5SPaul Cercueil
1578838245dSPaul Burton	uart0: serial@10030000 {
1588838245dSPaul Burton		compatible = "ingenic,jz4740-uart";
1598838245dSPaul Burton		reg = <0x10030000 0x100>;
1608838245dSPaul Burton
1618838245dSPaul Burton		interrupt-parent = <&intc>;
1628838245dSPaul Burton		interrupts = <9>;
1638838245dSPaul Burton
1648838245dSPaul Burton		clocks = <&ext>, <&cgu JZ4740_CLK_UART0>;
1658838245dSPaul Burton		clock-names = "baud", "module";
1668838245dSPaul Burton	};
1678838245dSPaul Burton
1688838245dSPaul Burton	uart1: serial@10031000 {
1698838245dSPaul Burton		compatible = "ingenic,jz4740-uart";
1708838245dSPaul Burton		reg = <0x10031000 0x100>;
1718838245dSPaul Burton
1728838245dSPaul Burton		interrupt-parent = <&intc>;
1738838245dSPaul Burton		interrupts = <8>;
1748838245dSPaul Burton
1758838245dSPaul Burton		clocks = <&ext>, <&cgu JZ4740_CLK_UART1>;
1768838245dSPaul Burton		clock-names = "baud", "module";
1778838245dSPaul Burton	};
1789d1e7875SMaarten ter Huurne
179d426c517SPaul Cercueil	dmac: dma-controller@13020000 {
180d426c517SPaul Cercueil		compatible = "ingenic,jz4740-dma";
181d426c517SPaul Cercueil		reg = <0x13020000 0xbc
182d426c517SPaul Cercueil		       0x13020300 0x14>;
183d426c517SPaul Cercueil		#dma-cells = <2>;
184d426c517SPaul Cercueil
185d426c517SPaul Cercueil		interrupt-parent = <&intc>;
18670999ec1SPaul Cercueil		interrupts = <20>;
187d426c517SPaul Cercueil
188d426c517SPaul Cercueil		clocks = <&cgu JZ4740_CLK_DMA>;
189d426c517SPaul Cercueil
190d426c517SPaul Cercueil		/* Disable dmac until we have something that uses it */
191d426c517SPaul Cercueil		status = "disabled";
192d426c517SPaul Cercueil	};
193d426c517SPaul Cercueil
1949d1e7875SMaarten ter Huurne	uhc: uhc@13030000 {
1959d1e7875SMaarten ter Huurne		compatible = "ingenic,jz4740-ohci", "generic-ohci";
1969d1e7875SMaarten ter Huurne		reg = <0x13030000 0x1000>;
1979d1e7875SMaarten ter Huurne
1989d1e7875SMaarten ter Huurne		clocks = <&cgu JZ4740_CLK_UHC>;
1999d1e7875SMaarten ter Huurne		assigned-clocks = <&cgu JZ4740_CLK_UHC>;
2009d1e7875SMaarten ter Huurne		assigned-clock-rates = <48000000>;
2019d1e7875SMaarten ter Huurne
2029d1e7875SMaarten ter Huurne		interrupt-parent = <&intc>;
2039d1e7875SMaarten ter Huurne		interrupts = <3>;
2049d1e7875SMaarten ter Huurne
2059d1e7875SMaarten ter Huurne		status = "disabled";
2069d1e7875SMaarten ter Huurne	};
207ffb1843dSPaul Burton};
208