xref: /openbmc/linux/arch/mips/boot/dts/ingenic/jz4780.dtsi (revision c24f5762d374b7f2aae31b7a393bdfa66ed06d8b)
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
49ed326616SMathieu Malaterre	rtc_dev: rtc@10003000 {
50ed326616SMathieu Malaterre		compatible = "ingenic,jz4780-rtc";
51ed326616SMathieu Malaterre		reg = <0x10003000 0x4c>;
52ed326616SMathieu Malaterre
53ed326616SMathieu Malaterre		interrupt-parent = <&intc>;
54ed326616SMathieu Malaterre		interrupts = <32>;
55ed326616SMathieu Malaterre
56ed326616SMathieu Malaterre		clocks = <&cgu JZ4780_CLK_RTCLK>;
57ed326616SMathieu Malaterre		clock-names = "rtc";
58ed326616SMathieu Malaterre	};
59ed326616SMathieu Malaterre
60d32613c3SPaul Cercueil	pinctrl: pin-controller@10010000 {
61d32613c3SPaul Cercueil		compatible = "ingenic,jz4780-pinctrl";
62d32613c3SPaul Cercueil		reg = <0x10010000 0x600>;
63d32613c3SPaul Cercueil
64d32613c3SPaul Cercueil		#address-cells = <1>;
65d32613c3SPaul Cercueil		#size-cells = <0>;
66d32613c3SPaul Cercueil
67d32613c3SPaul Cercueil		gpa: gpio@0 {
68d32613c3SPaul Cercueil			compatible = "ingenic,jz4780-gpio";
69d32613c3SPaul Cercueil			reg = <0>;
70d32613c3SPaul Cercueil
71d32613c3SPaul Cercueil			gpio-controller;
72d32613c3SPaul Cercueil			gpio-ranges = <&pinctrl 0 0 32>;
73d32613c3SPaul Cercueil			#gpio-cells = <2>;
74d32613c3SPaul Cercueil
75d32613c3SPaul Cercueil			interrupt-controller;
76d32613c3SPaul Cercueil			#interrupt-cells = <2>;
77d32613c3SPaul Cercueil
78d32613c3SPaul Cercueil			interrupt-parent = <&intc>;
79d32613c3SPaul Cercueil			interrupts = <17>;
80d32613c3SPaul Cercueil		};
81d32613c3SPaul Cercueil
82d32613c3SPaul Cercueil		gpb: gpio@1 {
83d32613c3SPaul Cercueil			compatible = "ingenic,jz4780-gpio";
84d32613c3SPaul Cercueil			reg = <1>;
85d32613c3SPaul Cercueil
86d32613c3SPaul Cercueil			gpio-controller;
87d32613c3SPaul Cercueil			gpio-ranges = <&pinctrl 0 32 32>;
88d32613c3SPaul Cercueil			#gpio-cells = <2>;
89d32613c3SPaul Cercueil
90d32613c3SPaul Cercueil			interrupt-controller;
91d32613c3SPaul Cercueil			#interrupt-cells = <2>;
92d32613c3SPaul Cercueil
93d32613c3SPaul Cercueil			interrupt-parent = <&intc>;
94d32613c3SPaul Cercueil			interrupts = <16>;
95d32613c3SPaul Cercueil		};
96d32613c3SPaul Cercueil
97d32613c3SPaul Cercueil		gpc: gpio@2 {
98d32613c3SPaul Cercueil			compatible = "ingenic,jz4780-gpio";
99d32613c3SPaul Cercueil			reg = <2>;
100d32613c3SPaul Cercueil
101d32613c3SPaul Cercueil			gpio-controller;
102d32613c3SPaul Cercueil			gpio-ranges = <&pinctrl 0 64 32>;
103d32613c3SPaul Cercueil			#gpio-cells = <2>;
104d32613c3SPaul Cercueil
105d32613c3SPaul Cercueil			interrupt-controller;
106d32613c3SPaul Cercueil			#interrupt-cells = <2>;
107d32613c3SPaul Cercueil
108d32613c3SPaul Cercueil			interrupt-parent = <&intc>;
109d32613c3SPaul Cercueil			interrupts = <15>;
110d32613c3SPaul Cercueil		};
111d32613c3SPaul Cercueil
112d32613c3SPaul Cercueil		gpd: gpio@3 {
113d32613c3SPaul Cercueil			compatible = "ingenic,jz4780-gpio";
114d32613c3SPaul Cercueil			reg = <3>;
115d32613c3SPaul Cercueil
116d32613c3SPaul Cercueil			gpio-controller;
117d32613c3SPaul Cercueil			gpio-ranges = <&pinctrl 0 96 32>;
118d32613c3SPaul Cercueil			#gpio-cells = <2>;
119d32613c3SPaul Cercueil
120d32613c3SPaul Cercueil			interrupt-controller;
121d32613c3SPaul Cercueil			#interrupt-cells = <2>;
122d32613c3SPaul Cercueil
123d32613c3SPaul Cercueil			interrupt-parent = <&intc>;
124d32613c3SPaul Cercueil			interrupts = <14>;
125d32613c3SPaul Cercueil		};
126d32613c3SPaul Cercueil
127d32613c3SPaul Cercueil		gpe: gpio@4 {
128d32613c3SPaul Cercueil			compatible = "ingenic,jz4780-gpio";
129d32613c3SPaul Cercueil			reg = <4>;
130d32613c3SPaul Cercueil
131d32613c3SPaul Cercueil			gpio-controller;
132d32613c3SPaul Cercueil			gpio-ranges = <&pinctrl 0 128 32>;
133d32613c3SPaul Cercueil			#gpio-cells = <2>;
134d32613c3SPaul Cercueil
135d32613c3SPaul Cercueil			interrupt-controller;
136d32613c3SPaul Cercueil			#interrupt-cells = <2>;
137d32613c3SPaul Cercueil
138d32613c3SPaul Cercueil			interrupt-parent = <&intc>;
139d32613c3SPaul Cercueil			interrupts = <13>;
140d32613c3SPaul Cercueil		};
141d32613c3SPaul Cercueil
142d32613c3SPaul Cercueil		gpf: gpio@5 {
143d32613c3SPaul Cercueil			compatible = "ingenic,jz4780-gpio";
144d32613c3SPaul Cercueil			reg = <5>;
145d32613c3SPaul Cercueil
146d32613c3SPaul Cercueil			gpio-controller;
147d32613c3SPaul Cercueil			gpio-ranges = <&pinctrl 0 160 32>;
148d32613c3SPaul Cercueil			#gpio-cells = <2>;
149d32613c3SPaul Cercueil
150d32613c3SPaul Cercueil			interrupt-controller;
151d32613c3SPaul Cercueil			#interrupt-cells = <2>;
152d32613c3SPaul Cercueil
153d32613c3SPaul Cercueil			interrupt-parent = <&intc>;
154d32613c3SPaul Cercueil			interrupts = <12>;
155d32613c3SPaul Cercueil		};
156d32613c3SPaul Cercueil	};
157d32613c3SPaul Cercueil
158*c24f5762SMathieu Malaterre	spi_gpio {
159*c24f5762SMathieu Malaterre		compatible = "spi-gpio";
160*c24f5762SMathieu Malaterre		#address-cells = <1>;
161*c24f5762SMathieu Malaterre		#size-cells = <0>;
162*c24f5762SMathieu Malaterre		num-chipselects = <2>;
163*c24f5762SMathieu Malaterre
164*c24f5762SMathieu Malaterre		gpio-miso = <&gpe 14 0>;
165*c24f5762SMathieu Malaterre		gpio-sck = <&gpe 15 0>;
166*c24f5762SMathieu Malaterre		gpio-mosi = <&gpe 17 0>;
167*c24f5762SMathieu Malaterre		cs-gpios = <&gpe 16 0
168*c24f5762SMathieu Malaterre			    &gpe 18 0>;
169*c24f5762SMathieu Malaterre
170*c24f5762SMathieu Malaterre		spidev@0 {
171*c24f5762SMathieu Malaterre			compatible = "spidev";
172*c24f5762SMathieu Malaterre			reg = <0>;
173*c24f5762SMathieu Malaterre			spi-max-frequency = <1000000>;
174*c24f5762SMathieu Malaterre		};
175*c24f5762SMathieu Malaterre	};
176*c24f5762SMathieu Malaterre
1775b9cdd24SPaul Burton	uart0: serial@10030000 {
1785b9cdd24SPaul Burton		compatible = "ingenic,jz4780-uart";
1795b9cdd24SPaul Burton		reg = <0x10030000 0x100>;
1805b9cdd24SPaul Burton
1815b9cdd24SPaul Burton		interrupt-parent = <&intc>;
1825b9cdd24SPaul Burton		interrupts = <51>;
1835b9cdd24SPaul Burton
1845b9cdd24SPaul Burton		clocks = <&ext>, <&cgu JZ4780_CLK_UART0>;
1855b9cdd24SPaul Burton		clock-names = "baud", "module";
1865b9cdd24SPaul Burton
1875b9cdd24SPaul Burton		status = "disabled";
1885b9cdd24SPaul Burton	};
1895b9cdd24SPaul Burton
1905b9cdd24SPaul Burton	uart1: serial@10031000 {
1915b9cdd24SPaul Burton		compatible = "ingenic,jz4780-uart";
1925b9cdd24SPaul Burton		reg = <0x10031000 0x100>;
1935b9cdd24SPaul Burton
1945b9cdd24SPaul Burton		interrupt-parent = <&intc>;
1955b9cdd24SPaul Burton		interrupts = <50>;
1965b9cdd24SPaul Burton
1975b9cdd24SPaul Burton		clocks = <&ext>, <&cgu JZ4780_CLK_UART1>;
1985b9cdd24SPaul Burton		clock-names = "baud", "module";
1995b9cdd24SPaul Burton
2005b9cdd24SPaul Burton		status = "disabled";
2015b9cdd24SPaul Burton	};
2025b9cdd24SPaul Burton
2035b9cdd24SPaul Burton	uart2: serial@10032000 {
2045b9cdd24SPaul Burton		compatible = "ingenic,jz4780-uart";
2055b9cdd24SPaul Burton		reg = <0x10032000 0x100>;
2065b9cdd24SPaul Burton
2075b9cdd24SPaul Burton		interrupt-parent = <&intc>;
2085b9cdd24SPaul Burton		interrupts = <49>;
2095b9cdd24SPaul Burton
2105b9cdd24SPaul Burton		clocks = <&ext>, <&cgu JZ4780_CLK_UART2>;
2115b9cdd24SPaul Burton		clock-names = "baud", "module";
2125b9cdd24SPaul Burton
2135b9cdd24SPaul Burton		status = "disabled";
2145b9cdd24SPaul Burton	};
2155b9cdd24SPaul Burton
2165b9cdd24SPaul Burton	uart3: serial@10033000 {
2175b9cdd24SPaul Burton		compatible = "ingenic,jz4780-uart";
2185b9cdd24SPaul Burton		reg = <0x10033000 0x100>;
2195b9cdd24SPaul Burton
2205b9cdd24SPaul Burton		interrupt-parent = <&intc>;
2215b9cdd24SPaul Burton		interrupts = <48>;
2225b9cdd24SPaul Burton
2235b9cdd24SPaul Burton		clocks = <&ext>, <&cgu JZ4780_CLK_UART3>;
2245b9cdd24SPaul Burton		clock-names = "baud", "module";
2255b9cdd24SPaul Burton
2265b9cdd24SPaul Burton		status = "disabled";
2275b9cdd24SPaul Burton	};
2285b9cdd24SPaul Burton
2295b9cdd24SPaul Burton	uart4: serial@10034000 {
2305b9cdd24SPaul Burton		compatible = "ingenic,jz4780-uart";
2315b9cdd24SPaul Burton		reg = <0x10034000 0x100>;
2325b9cdd24SPaul Burton
2335b9cdd24SPaul Burton		interrupt-parent = <&intc>;
2345b9cdd24SPaul Burton		interrupts = <34>;
2355b9cdd24SPaul Burton
2365b9cdd24SPaul Burton		clocks = <&ext>, <&cgu JZ4780_CLK_UART4>;
2375b9cdd24SPaul Burton		clock-names = "baud", "module";
2385b9cdd24SPaul Burton
2395b9cdd24SPaul Burton		status = "disabled";
2405b9cdd24SPaul Burton	};
24178800558SAlex Smith
242239e14d1SMathieu Malaterre	watchdog: watchdog@10002000 {
243239e14d1SMathieu Malaterre		compatible = "ingenic,jz4780-watchdog";
2449a0225d9SPaul Cercueil		reg = <0x10002000 0x10>;
2459a0225d9SPaul Cercueil
2469a0225d9SPaul Cercueil		clocks = <&cgu JZ4780_CLK_RTCLK>;
2479a0225d9SPaul Cercueil		clock-names = "rtc";
248239e14d1SMathieu Malaterre	};
249239e14d1SMathieu Malaterre
25078800558SAlex Smith	nemc: nemc@13410000 {
25178800558SAlex Smith		compatible = "ingenic,jz4780-nemc";
25278800558SAlex Smith		reg = <0x13410000 0x10000>;
25378800558SAlex Smith		#address-cells = <2>;
25478800558SAlex Smith		#size-cells = <1>;
25578800558SAlex Smith		ranges = <1 0 0x1b000000 0x1000000
25678800558SAlex Smith			  2 0 0x1a000000 0x1000000
25778800558SAlex Smith			  3 0 0x19000000 0x1000000
25878800558SAlex Smith			  4 0 0x18000000 0x1000000
25978800558SAlex Smith			  5 0 0x17000000 0x1000000
26078800558SAlex Smith			  6 0 0x16000000 0x1000000>;
26178800558SAlex Smith
26278800558SAlex Smith		clocks = <&cgu JZ4780_CLK_NEMC>;
26378800558SAlex Smith
26478800558SAlex Smith		status = "disabled";
26578800558SAlex Smith	};
26678800558SAlex Smith
2672d972b6aSEzequiel Garcia	dma: dma@13420000 {
2682d972b6aSEzequiel Garcia		compatible = "ingenic,jz4780-dma";
2692d972b6aSEzequiel Garcia		reg = <0x13420000 0x10000>;
2702d972b6aSEzequiel Garcia		#dma-cells = <2>;
2712d972b6aSEzequiel Garcia
2722d972b6aSEzequiel Garcia		interrupt-parent = <&intc>;
2732d972b6aSEzequiel Garcia		interrupts = <10>;
2742d972b6aSEzequiel Garcia
2752d972b6aSEzequiel Garcia		clocks = <&cgu JZ4780_CLK_PDMA>;
2762d972b6aSEzequiel Garcia	};
2772d972b6aSEzequiel Garcia
2787f5a07f4SEzequiel Garcia	mmc0: mmc@13450000 {
2797f5a07f4SEzequiel Garcia		compatible = "ingenic,jz4780-mmc";
2807f5a07f4SEzequiel Garcia		reg = <0x13450000 0x1000>;
2817f5a07f4SEzequiel Garcia
2827f5a07f4SEzequiel Garcia		interrupt-parent = <&intc>;
2837f5a07f4SEzequiel Garcia		interrupts = <37>;
2847f5a07f4SEzequiel Garcia
2857f5a07f4SEzequiel Garcia		clocks = <&cgu JZ4780_CLK_MSC0>;
2867f5a07f4SEzequiel Garcia		clock-names = "mmc";
2877f5a07f4SEzequiel Garcia
2887f5a07f4SEzequiel Garcia		cap-sd-highspeed;
2897f5a07f4SEzequiel Garcia		cap-mmc-highspeed;
2907f5a07f4SEzequiel Garcia		cap-sdio-irq;
2917f5a07f4SEzequiel Garcia		dmas = <&dma JZ4780_DMA_MSC0_RX 0xffffffff>,
2927f5a07f4SEzequiel Garcia		       <&dma JZ4780_DMA_MSC0_TX 0xffffffff>;
2937f5a07f4SEzequiel Garcia		dma-names = "rx", "tx";
2947f5a07f4SEzequiel Garcia
2957f5a07f4SEzequiel Garcia		status = "disabled";
2967f5a07f4SEzequiel Garcia	};
2977f5a07f4SEzequiel Garcia
2987f5a07f4SEzequiel Garcia	mmc1: mmc@13460000 {
2997f5a07f4SEzequiel Garcia		compatible = "ingenic,jz4780-mmc";
3007f5a07f4SEzequiel Garcia		reg = <0x13460000 0x1000>;
3017f5a07f4SEzequiel Garcia
3027f5a07f4SEzequiel Garcia		interrupt-parent = <&intc>;
3037f5a07f4SEzequiel Garcia		interrupts = <36>;
3047f5a07f4SEzequiel Garcia
3057f5a07f4SEzequiel Garcia		clocks = <&cgu JZ4780_CLK_MSC1>;
3067f5a07f4SEzequiel Garcia		clock-names = "mmc";
3077f5a07f4SEzequiel Garcia
3087f5a07f4SEzequiel Garcia		cap-sd-highspeed;
3097f5a07f4SEzequiel Garcia		cap-mmc-highspeed;
3107f5a07f4SEzequiel Garcia		cap-sdio-irq;
3117f5a07f4SEzequiel Garcia		dmas = <&dma JZ4780_DMA_MSC1_RX 0xffffffff>,
3127f5a07f4SEzequiel Garcia		       <&dma JZ4780_DMA_MSC1_TX 0xffffffff>;
3137f5a07f4SEzequiel Garcia		dma-names = "rx", "tx";
3147f5a07f4SEzequiel Garcia
3157f5a07f4SEzequiel Garcia		status = "disabled";
3167f5a07f4SEzequiel Garcia	};
3177f5a07f4SEzequiel Garcia
31878800558SAlex Smith	bch: bch@134d0000 {
31978800558SAlex Smith		compatible = "ingenic,jz4780-bch";
32078800558SAlex Smith		reg = <0x134d0000 0x10000>;
32178800558SAlex Smith
32278800558SAlex Smith		clocks = <&cgu JZ4780_CLK_BCH>;
32378800558SAlex Smith
32478800558SAlex Smith		status = "disabled";
32578800558SAlex Smith	};
3265b9cdd24SPaul Burton};
327