xref: /openbmc/linux/arch/mips/boot/dts/ingenic/jz4780.dtsi (revision 36aafdbd52881eda9073c4d03d65438a16b87a92)
1b2441318SGreg Kroah-Hartman// SPDX-License-Identifier: GPL-2.0
25b9cdd24SPaul Burton#include <dt-bindings/clock/jz4780-cgu.h>
32d972b6aSEzequiel Garcia#include <dt-bindings/dma/jz4780-dma.h>
45b9cdd24SPaul Burton
55b9cdd24SPaul Burton/ {
65b9cdd24SPaul Burton	#address-cells = <1>;
75b9cdd24SPaul Burton	#size-cells = <1>;
85b9cdd24SPaul Burton	compatible = "ingenic,jz4780";
95b9cdd24SPaul Burton
105b9cdd24SPaul Burton	cpuintc: interrupt-controller {
115b9cdd24SPaul Burton		#address-cells = <0>;
125b9cdd24SPaul Burton		#interrupt-cells = <1>;
135b9cdd24SPaul Burton		interrupt-controller;
145b9cdd24SPaul Burton		compatible = "mti,cpu-interrupt-controller";
155b9cdd24SPaul Burton	};
165b9cdd24SPaul Burton
175b9cdd24SPaul Burton	intc: interrupt-controller@10001000 {
185b9cdd24SPaul Burton		compatible = "ingenic,jz4780-intc";
195b9cdd24SPaul Burton		reg = <0x10001000 0x50>;
205b9cdd24SPaul Burton
215b9cdd24SPaul Burton		interrupt-controller;
225b9cdd24SPaul Burton		#interrupt-cells = <1>;
235b9cdd24SPaul Burton
245b9cdd24SPaul Burton		interrupt-parent = <&cpuintc>;
255b9cdd24SPaul Burton		interrupts = <2>;
265b9cdd24SPaul Burton	};
275b9cdd24SPaul Burton
285b9cdd24SPaul Burton	ext: ext {
295b9cdd24SPaul Burton		compatible = "fixed-clock";
305b9cdd24SPaul Burton		#clock-cells = <0>;
315b9cdd24SPaul Burton	};
325b9cdd24SPaul Burton
335b9cdd24SPaul Burton	rtc: rtc {
345b9cdd24SPaul Burton		compatible = "fixed-clock";
355b9cdd24SPaul Burton		#clock-cells = <0>;
365b9cdd24SPaul Burton		clock-frequency = <32768>;
375b9cdd24SPaul Burton	};
385b9cdd24SPaul Burton
395b9cdd24SPaul Burton	cgu: jz4780-cgu@10000000 {
405b9cdd24SPaul Burton		compatible = "ingenic,jz4780-cgu";
415b9cdd24SPaul Burton		reg = <0x10000000 0x100>;
425b9cdd24SPaul Burton
435b9cdd24SPaul Burton		clocks = <&ext>, <&rtc>;
445b9cdd24SPaul Burton		clock-names = "ext", "rtc";
455b9cdd24SPaul Burton
465b9cdd24SPaul Burton		#clock-cells = <1>;
475b9cdd24SPaul Burton	};
485b9cdd24SPaul Burton
49*36aafdbdSPaul Cercueil	tcu: timer@10002000 {
50*36aafdbdSPaul Cercueil		compatible = "ingenic,jz4780-tcu",
51*36aafdbdSPaul Cercueil			     "ingenic,jz4770-tcu",
52*36aafdbdSPaul Cercueil			     "simple-mfd";
53*36aafdbdSPaul Cercueil		reg = <0x10002000 0x1000>;
54*36aafdbdSPaul Cercueil		#address-cells = <1>;
55*36aafdbdSPaul Cercueil		#size-cells = <1>;
56*36aafdbdSPaul Cercueil		ranges = <0x0 0x10002000 0x1000>;
57*36aafdbdSPaul Cercueil
58*36aafdbdSPaul Cercueil		#clock-cells = <1>;
59*36aafdbdSPaul Cercueil
60*36aafdbdSPaul Cercueil		clocks = <&cgu JZ4780_CLK_RTCLK
61*36aafdbdSPaul Cercueil			  &cgu JZ4780_CLK_EXCLK
62*36aafdbdSPaul Cercueil			  &cgu JZ4780_CLK_PCLK>;
63*36aafdbdSPaul Cercueil		clock-names = "rtc", "ext", "pclk";
64*36aafdbdSPaul Cercueil
65*36aafdbdSPaul Cercueil		interrupt-controller;
66*36aafdbdSPaul Cercueil		#interrupt-cells = <1>;
67*36aafdbdSPaul Cercueil
68*36aafdbdSPaul Cercueil		interrupt-parent = <&intc>;
69*36aafdbdSPaul Cercueil		interrupts = <27 26 25>;
70*36aafdbdSPaul Cercueil	};
71*36aafdbdSPaul Cercueil
72ed326616SMathieu Malaterre	rtc_dev: rtc@10003000 {
73ed326616SMathieu Malaterre		compatible = "ingenic,jz4780-rtc";
74ed326616SMathieu Malaterre		reg = <0x10003000 0x4c>;
75ed326616SMathieu Malaterre
76ed326616SMathieu Malaterre		interrupt-parent = <&intc>;
77ed326616SMathieu Malaterre		interrupts = <32>;
78ed326616SMathieu Malaterre
79ed326616SMathieu Malaterre		clocks = <&cgu JZ4780_CLK_RTCLK>;
80ed326616SMathieu Malaterre		clock-names = "rtc";
81ed326616SMathieu Malaterre	};
82ed326616SMathieu Malaterre
83d32613c3SPaul Cercueil	pinctrl: pin-controller@10010000 {
84d32613c3SPaul Cercueil		compatible = "ingenic,jz4780-pinctrl";
85d32613c3SPaul Cercueil		reg = <0x10010000 0x600>;
86d32613c3SPaul Cercueil
87d32613c3SPaul Cercueil		#address-cells = <1>;
88d32613c3SPaul Cercueil		#size-cells = <0>;
89d32613c3SPaul Cercueil
90d32613c3SPaul Cercueil		gpa: gpio@0 {
91d32613c3SPaul Cercueil			compatible = "ingenic,jz4780-gpio";
92d32613c3SPaul Cercueil			reg = <0>;
93d32613c3SPaul Cercueil
94d32613c3SPaul Cercueil			gpio-controller;
95d32613c3SPaul Cercueil			gpio-ranges = <&pinctrl 0 0 32>;
96d32613c3SPaul Cercueil			#gpio-cells = <2>;
97d32613c3SPaul Cercueil
98d32613c3SPaul Cercueil			interrupt-controller;
99d32613c3SPaul Cercueil			#interrupt-cells = <2>;
100d32613c3SPaul Cercueil
101d32613c3SPaul Cercueil			interrupt-parent = <&intc>;
102d32613c3SPaul Cercueil			interrupts = <17>;
103d32613c3SPaul Cercueil		};
104d32613c3SPaul Cercueil
105d32613c3SPaul Cercueil		gpb: gpio@1 {
106d32613c3SPaul Cercueil			compatible = "ingenic,jz4780-gpio";
107d32613c3SPaul Cercueil			reg = <1>;
108d32613c3SPaul Cercueil
109d32613c3SPaul Cercueil			gpio-controller;
110d32613c3SPaul Cercueil			gpio-ranges = <&pinctrl 0 32 32>;
111d32613c3SPaul Cercueil			#gpio-cells = <2>;
112d32613c3SPaul Cercueil
113d32613c3SPaul Cercueil			interrupt-controller;
114d32613c3SPaul Cercueil			#interrupt-cells = <2>;
115d32613c3SPaul Cercueil
116d32613c3SPaul Cercueil			interrupt-parent = <&intc>;
117d32613c3SPaul Cercueil			interrupts = <16>;
118d32613c3SPaul Cercueil		};
119d32613c3SPaul Cercueil
120d32613c3SPaul Cercueil		gpc: gpio@2 {
121d32613c3SPaul Cercueil			compatible = "ingenic,jz4780-gpio";
122d32613c3SPaul Cercueil			reg = <2>;
123d32613c3SPaul Cercueil
124d32613c3SPaul Cercueil			gpio-controller;
125d32613c3SPaul Cercueil			gpio-ranges = <&pinctrl 0 64 32>;
126d32613c3SPaul Cercueil			#gpio-cells = <2>;
127d32613c3SPaul Cercueil
128d32613c3SPaul Cercueil			interrupt-controller;
129d32613c3SPaul Cercueil			#interrupt-cells = <2>;
130d32613c3SPaul Cercueil
131d32613c3SPaul Cercueil			interrupt-parent = <&intc>;
132d32613c3SPaul Cercueil			interrupts = <15>;
133d32613c3SPaul Cercueil		};
134d32613c3SPaul Cercueil
135d32613c3SPaul Cercueil		gpd: gpio@3 {
136d32613c3SPaul Cercueil			compatible = "ingenic,jz4780-gpio";
137d32613c3SPaul Cercueil			reg = <3>;
138d32613c3SPaul Cercueil
139d32613c3SPaul Cercueil			gpio-controller;
140d32613c3SPaul Cercueil			gpio-ranges = <&pinctrl 0 96 32>;
141d32613c3SPaul Cercueil			#gpio-cells = <2>;
142d32613c3SPaul Cercueil
143d32613c3SPaul Cercueil			interrupt-controller;
144d32613c3SPaul Cercueil			#interrupt-cells = <2>;
145d32613c3SPaul Cercueil
146d32613c3SPaul Cercueil			interrupt-parent = <&intc>;
147d32613c3SPaul Cercueil			interrupts = <14>;
148d32613c3SPaul Cercueil		};
149d32613c3SPaul Cercueil
150d32613c3SPaul Cercueil		gpe: gpio@4 {
151d32613c3SPaul Cercueil			compatible = "ingenic,jz4780-gpio";
152d32613c3SPaul Cercueil			reg = <4>;
153d32613c3SPaul Cercueil
154d32613c3SPaul Cercueil			gpio-controller;
155d32613c3SPaul Cercueil			gpio-ranges = <&pinctrl 0 128 32>;
156d32613c3SPaul Cercueil			#gpio-cells = <2>;
157d32613c3SPaul Cercueil
158d32613c3SPaul Cercueil			interrupt-controller;
159d32613c3SPaul Cercueil			#interrupt-cells = <2>;
160d32613c3SPaul Cercueil
161d32613c3SPaul Cercueil			interrupt-parent = <&intc>;
162d32613c3SPaul Cercueil			interrupts = <13>;
163d32613c3SPaul Cercueil		};
164d32613c3SPaul Cercueil
165d32613c3SPaul Cercueil		gpf: gpio@5 {
166d32613c3SPaul Cercueil			compatible = "ingenic,jz4780-gpio";
167d32613c3SPaul Cercueil			reg = <5>;
168d32613c3SPaul Cercueil
169d32613c3SPaul Cercueil			gpio-controller;
170d32613c3SPaul Cercueil			gpio-ranges = <&pinctrl 0 160 32>;
171d32613c3SPaul Cercueil			#gpio-cells = <2>;
172d32613c3SPaul Cercueil
173d32613c3SPaul Cercueil			interrupt-controller;
174d32613c3SPaul Cercueil			#interrupt-cells = <2>;
175d32613c3SPaul Cercueil
176d32613c3SPaul Cercueil			interrupt-parent = <&intc>;
177d32613c3SPaul Cercueil			interrupts = <12>;
178d32613c3SPaul Cercueil		};
179d32613c3SPaul Cercueil	};
180d32613c3SPaul Cercueil
181c24f5762SMathieu Malaterre	spi_gpio {
182c24f5762SMathieu Malaterre		compatible = "spi-gpio";
183c24f5762SMathieu Malaterre		#address-cells = <1>;
184c24f5762SMathieu Malaterre		#size-cells = <0>;
185c24f5762SMathieu Malaterre		num-chipselects = <2>;
186c24f5762SMathieu Malaterre
187c24f5762SMathieu Malaterre		gpio-miso = <&gpe 14 0>;
188c24f5762SMathieu Malaterre		gpio-sck = <&gpe 15 0>;
189c24f5762SMathieu Malaterre		gpio-mosi = <&gpe 17 0>;
190c24f5762SMathieu Malaterre		cs-gpios = <&gpe 16 0
191c24f5762SMathieu Malaterre			    &gpe 18 0>;
192c24f5762SMathieu Malaterre
193c24f5762SMathieu Malaterre		spidev@0 {
194c24f5762SMathieu Malaterre			compatible = "spidev";
195c24f5762SMathieu Malaterre			reg = <0>;
196c24f5762SMathieu Malaterre			spi-max-frequency = <1000000>;
197c24f5762SMathieu Malaterre		};
198c24f5762SMathieu Malaterre	};
199c24f5762SMathieu Malaterre
2005b9cdd24SPaul Burton	uart0: serial@10030000 {
2015b9cdd24SPaul Burton		compatible = "ingenic,jz4780-uart";
2025b9cdd24SPaul Burton		reg = <0x10030000 0x100>;
2035b9cdd24SPaul Burton
2045b9cdd24SPaul Burton		interrupt-parent = <&intc>;
2055b9cdd24SPaul Burton		interrupts = <51>;
2065b9cdd24SPaul Burton
2075b9cdd24SPaul Burton		clocks = <&ext>, <&cgu JZ4780_CLK_UART0>;
2085b9cdd24SPaul Burton		clock-names = "baud", "module";
2095b9cdd24SPaul Burton
2105b9cdd24SPaul Burton		status = "disabled";
2115b9cdd24SPaul Burton	};
2125b9cdd24SPaul Burton
2135b9cdd24SPaul Burton	uart1: serial@10031000 {
2145b9cdd24SPaul Burton		compatible = "ingenic,jz4780-uart";
2155b9cdd24SPaul Burton		reg = <0x10031000 0x100>;
2165b9cdd24SPaul Burton
2175b9cdd24SPaul Burton		interrupt-parent = <&intc>;
2185b9cdd24SPaul Burton		interrupts = <50>;
2195b9cdd24SPaul Burton
2205b9cdd24SPaul Burton		clocks = <&ext>, <&cgu JZ4780_CLK_UART1>;
2215b9cdd24SPaul Burton		clock-names = "baud", "module";
2225b9cdd24SPaul Burton
2235b9cdd24SPaul Burton		status = "disabled";
2245b9cdd24SPaul Burton	};
2255b9cdd24SPaul Burton
2265b9cdd24SPaul Burton	uart2: serial@10032000 {
2275b9cdd24SPaul Burton		compatible = "ingenic,jz4780-uart";
2285b9cdd24SPaul Burton		reg = <0x10032000 0x100>;
2295b9cdd24SPaul Burton
2305b9cdd24SPaul Burton		interrupt-parent = <&intc>;
2315b9cdd24SPaul Burton		interrupts = <49>;
2325b9cdd24SPaul Burton
2335b9cdd24SPaul Burton		clocks = <&ext>, <&cgu JZ4780_CLK_UART2>;
2345b9cdd24SPaul Burton		clock-names = "baud", "module";
2355b9cdd24SPaul Burton
2365b9cdd24SPaul Burton		status = "disabled";
2375b9cdd24SPaul Burton	};
2385b9cdd24SPaul Burton
2395b9cdd24SPaul Burton	uart3: serial@10033000 {
2405b9cdd24SPaul Burton		compatible = "ingenic,jz4780-uart";
2415b9cdd24SPaul Burton		reg = <0x10033000 0x100>;
2425b9cdd24SPaul Burton
2435b9cdd24SPaul Burton		interrupt-parent = <&intc>;
2445b9cdd24SPaul Burton		interrupts = <48>;
2455b9cdd24SPaul Burton
2465b9cdd24SPaul Burton		clocks = <&ext>, <&cgu JZ4780_CLK_UART3>;
2475b9cdd24SPaul Burton		clock-names = "baud", "module";
2485b9cdd24SPaul Burton
2495b9cdd24SPaul Burton		status = "disabled";
2505b9cdd24SPaul Burton	};
2515b9cdd24SPaul Burton
2525b9cdd24SPaul Burton	uart4: serial@10034000 {
2535b9cdd24SPaul Burton		compatible = "ingenic,jz4780-uart";
2545b9cdd24SPaul Burton		reg = <0x10034000 0x100>;
2555b9cdd24SPaul Burton
2565b9cdd24SPaul Burton		interrupt-parent = <&intc>;
2575b9cdd24SPaul Burton		interrupts = <34>;
2585b9cdd24SPaul Burton
2595b9cdd24SPaul Burton		clocks = <&ext>, <&cgu JZ4780_CLK_UART4>;
2605b9cdd24SPaul Burton		clock-names = "baud", "module";
2615b9cdd24SPaul Burton
2625b9cdd24SPaul Burton		status = "disabled";
2635b9cdd24SPaul Burton	};
26478800558SAlex Smith
265239e14d1SMathieu Malaterre	watchdog: watchdog@10002000 {
266239e14d1SMathieu Malaterre		compatible = "ingenic,jz4780-watchdog";
2679a0225d9SPaul Cercueil		reg = <0x10002000 0x10>;
2689a0225d9SPaul Cercueil
2699a0225d9SPaul Cercueil		clocks = <&cgu JZ4780_CLK_RTCLK>;
2709a0225d9SPaul Cercueil		clock-names = "rtc";
271239e14d1SMathieu Malaterre	};
272239e14d1SMathieu Malaterre
27378800558SAlex Smith	nemc: nemc@13410000 {
27478800558SAlex Smith		compatible = "ingenic,jz4780-nemc";
27578800558SAlex Smith		reg = <0x13410000 0x10000>;
27678800558SAlex Smith		#address-cells = <2>;
27778800558SAlex Smith		#size-cells = <1>;
27878800558SAlex Smith		ranges = <1 0 0x1b000000 0x1000000
27978800558SAlex Smith			  2 0 0x1a000000 0x1000000
28078800558SAlex Smith			  3 0 0x19000000 0x1000000
28178800558SAlex Smith			  4 0 0x18000000 0x1000000
28278800558SAlex Smith			  5 0 0x17000000 0x1000000
28378800558SAlex Smith			  6 0 0x16000000 0x1000000>;
28478800558SAlex Smith
28578800558SAlex Smith		clocks = <&cgu JZ4780_CLK_NEMC>;
28678800558SAlex Smith
28778800558SAlex Smith		status = "disabled";
28878800558SAlex Smith	};
28978800558SAlex Smith
2902d972b6aSEzequiel Garcia	dma: dma@13420000 {
2912d972b6aSEzequiel Garcia		compatible = "ingenic,jz4780-dma";
292f57879a5SPaul Cercueil		reg = <0x13420000 0x400
293f57879a5SPaul Cercueil		       0x13421000 0x40>;
2942d972b6aSEzequiel Garcia		#dma-cells = <2>;
2952d972b6aSEzequiel Garcia
2962d972b6aSEzequiel Garcia		interrupt-parent = <&intc>;
2972d972b6aSEzequiel Garcia		interrupts = <10>;
2982d972b6aSEzequiel Garcia
2992d972b6aSEzequiel Garcia		clocks = <&cgu JZ4780_CLK_PDMA>;
3002d972b6aSEzequiel Garcia	};
3012d972b6aSEzequiel Garcia
3027f5a07f4SEzequiel Garcia	mmc0: mmc@13450000 {
3037f5a07f4SEzequiel Garcia		compatible = "ingenic,jz4780-mmc";
3047f5a07f4SEzequiel Garcia		reg = <0x13450000 0x1000>;
3057f5a07f4SEzequiel Garcia
3067f5a07f4SEzequiel Garcia		interrupt-parent = <&intc>;
3077f5a07f4SEzequiel Garcia		interrupts = <37>;
3087f5a07f4SEzequiel Garcia
3097f5a07f4SEzequiel Garcia		clocks = <&cgu JZ4780_CLK_MSC0>;
3107f5a07f4SEzequiel Garcia		clock-names = "mmc";
3117f5a07f4SEzequiel Garcia
3127f5a07f4SEzequiel Garcia		cap-sd-highspeed;
3137f5a07f4SEzequiel Garcia		cap-mmc-highspeed;
3147f5a07f4SEzequiel Garcia		cap-sdio-irq;
3157f5a07f4SEzequiel Garcia		dmas = <&dma JZ4780_DMA_MSC0_RX 0xffffffff>,
3167f5a07f4SEzequiel Garcia		       <&dma JZ4780_DMA_MSC0_TX 0xffffffff>;
3177f5a07f4SEzequiel Garcia		dma-names = "rx", "tx";
3187f5a07f4SEzequiel Garcia
3197f5a07f4SEzequiel Garcia		status = "disabled";
3207f5a07f4SEzequiel Garcia	};
3217f5a07f4SEzequiel Garcia
3227f5a07f4SEzequiel Garcia	mmc1: mmc@13460000 {
3237f5a07f4SEzequiel Garcia		compatible = "ingenic,jz4780-mmc";
3247f5a07f4SEzequiel Garcia		reg = <0x13460000 0x1000>;
3257f5a07f4SEzequiel Garcia
3267f5a07f4SEzequiel Garcia		interrupt-parent = <&intc>;
3277f5a07f4SEzequiel Garcia		interrupts = <36>;
3287f5a07f4SEzequiel Garcia
3297f5a07f4SEzequiel Garcia		clocks = <&cgu JZ4780_CLK_MSC1>;
3307f5a07f4SEzequiel Garcia		clock-names = "mmc";
3317f5a07f4SEzequiel Garcia
3327f5a07f4SEzequiel Garcia		cap-sd-highspeed;
3337f5a07f4SEzequiel Garcia		cap-mmc-highspeed;
3347f5a07f4SEzequiel Garcia		cap-sdio-irq;
3357f5a07f4SEzequiel Garcia		dmas = <&dma JZ4780_DMA_MSC1_RX 0xffffffff>,
3367f5a07f4SEzequiel Garcia		       <&dma JZ4780_DMA_MSC1_TX 0xffffffff>;
3377f5a07f4SEzequiel Garcia		dma-names = "rx", "tx";
3387f5a07f4SEzequiel Garcia
3397f5a07f4SEzequiel Garcia		status = "disabled";
3407f5a07f4SEzequiel Garcia	};
3417f5a07f4SEzequiel Garcia
34278800558SAlex Smith	bch: bch@134d0000 {
34378800558SAlex Smith		compatible = "ingenic,jz4780-bch";
34478800558SAlex Smith		reg = <0x134d0000 0x10000>;
34578800558SAlex Smith
34678800558SAlex Smith		clocks = <&cgu JZ4780_CLK_BCH>;
34778800558SAlex Smith
34878800558SAlex Smith		status = "disabled";
34978800558SAlex Smith	};
3505b9cdd24SPaul Burton};
351