xref: /linux/scripts/dtc/include-prefixes/arm/allwinner/sun8i-r40.dtsi (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
1724ba675SRob Herring/*
2724ba675SRob Herring * Copyright 2017 Chen-Yu Tsai <wens@csie.org>
3724ba675SRob Herring * Copyright 2017 Icenowy Zheng <icenowy@aosc.io>
4724ba675SRob Herring *
5724ba675SRob Herring * This file is dual-licensed: you can use it either under the terms
6724ba675SRob Herring * of the GPL or the X11 license, at your option. Note that this dual
7724ba675SRob Herring * licensing only applies to this file, and not this project as a
8724ba675SRob Herring * whole.
9724ba675SRob Herring *
10724ba675SRob Herring *  a) This file is free software; you can redistribute it and/or
11724ba675SRob Herring *     modify it under the terms of the GNU General Public License as
12724ba675SRob Herring *     published by the Free Software Foundation; either version 2 of the
13724ba675SRob Herring *     License, or (at your option) any later version.
14724ba675SRob Herring *
15724ba675SRob Herring *     This file is distributed in the hope that it will be useful,
16724ba675SRob Herring *     but WITHOUT ANY WARRANTY; without even the implied warranty of
17724ba675SRob Herring *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18724ba675SRob Herring *     GNU General Public License for more details.
19724ba675SRob Herring *
20724ba675SRob Herring * Or, alternatively,
21724ba675SRob Herring *
22724ba675SRob Herring *  b) Permission is hereby granted, free of charge, to any person
23724ba675SRob Herring *     obtaining a copy of this software and associated documentation
24724ba675SRob Herring *     files (the "Software"), to deal in the Software without
25724ba675SRob Herring *     restriction, including without limitation the rights to use,
26724ba675SRob Herring *     copy, modify, merge, publish, distribute, sublicense, and/or
27724ba675SRob Herring *     sell copies of the Software, and to permit persons to whom the
28724ba675SRob Herring *     Software is furnished to do so, subject to the following
29724ba675SRob Herring *     conditions:
30724ba675SRob Herring *
31724ba675SRob Herring *     The above copyright notice and this permission notice shall be
32724ba675SRob Herring *     included in all copies or substantial portions of the Software.
33724ba675SRob Herring *
34724ba675SRob Herring *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35724ba675SRob Herring *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36724ba675SRob Herring *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37724ba675SRob Herring *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38724ba675SRob Herring *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39724ba675SRob Herring *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40724ba675SRob Herring *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41724ba675SRob Herring *     OTHER DEALINGS IN THE SOFTWARE.
42724ba675SRob Herring */
43724ba675SRob Herring
44724ba675SRob Herring#include <dt-bindings/interrupt-controller/arm-gic.h>
45724ba675SRob Herring#include <dt-bindings/clock/sun6i-rtc.h>
46724ba675SRob Herring#include <dt-bindings/clock/sun8i-de2.h>
47724ba675SRob Herring#include <dt-bindings/clock/sun8i-r40-ccu.h>
48724ba675SRob Herring#include <dt-bindings/clock/sun8i-tcon-top.h>
49724ba675SRob Herring#include <dt-bindings/reset/sun8i-r40-ccu.h>
50724ba675SRob Herring#include <dt-bindings/reset/sun8i-de2.h>
51724ba675SRob Herring#include <dt-bindings/thermal/thermal.h>
52724ba675SRob Herring
53724ba675SRob Herring/ {
54724ba675SRob Herring	#address-cells = <1>;
55724ba675SRob Herring	#size-cells = <1>;
56724ba675SRob Herring	interrupt-parent = <&gic>;
57724ba675SRob Herring
58724ba675SRob Herring	clocks {
59724ba675SRob Herring		#address-cells = <1>;
60724ba675SRob Herring		#size-cells = <1>;
61724ba675SRob Herring		ranges;
62724ba675SRob Herring
63724ba675SRob Herring		osc24M: osc24M {
64724ba675SRob Herring			#clock-cells = <0>;
65724ba675SRob Herring			compatible = "fixed-clock";
66724ba675SRob Herring			clock-frequency = <24000000>;
67724ba675SRob Herring			clock-accuracy = <50000>;
68724ba675SRob Herring			clock-output-names = "osc24M";
69724ba675SRob Herring		};
70724ba675SRob Herring
71724ba675SRob Herring		osc32k: osc32k {
72724ba675SRob Herring			#clock-cells = <0>;
73724ba675SRob Herring			compatible = "fixed-clock";
74724ba675SRob Herring			clock-frequency = <32768>;
75724ba675SRob Herring			clock-accuracy = <20000>;
76724ba675SRob Herring			clock-output-names = "ext-osc32k";
77724ba675SRob Herring		};
78724ba675SRob Herring	};
79724ba675SRob Herring
80724ba675SRob Herring	cpus {
81724ba675SRob Herring		#address-cells = <1>;
82724ba675SRob Herring		#size-cells = <0>;
83724ba675SRob Herring
84724ba675SRob Herring		cpu0: cpu@0 {
85724ba675SRob Herring			compatible = "arm,cortex-a7";
86724ba675SRob Herring			device_type = "cpu";
87724ba675SRob Herring			reg = <0>;
88724ba675SRob Herring			clocks = <&ccu CLK_CPU>;
89724ba675SRob Herring			clock-names = "cpu";
90724ba675SRob Herring			#cooling-cells = <2>;
91724ba675SRob Herring		};
92724ba675SRob Herring
93724ba675SRob Herring		cpu1: cpu@1 {
94724ba675SRob Herring			compatible = "arm,cortex-a7";
95724ba675SRob Herring			device_type = "cpu";
96724ba675SRob Herring			reg = <1>;
97724ba675SRob Herring			clocks = <&ccu CLK_CPU>;
98724ba675SRob Herring			clock-names = "cpu";
99724ba675SRob Herring			#cooling-cells = <2>;
100724ba675SRob Herring		};
101724ba675SRob Herring
102724ba675SRob Herring		cpu2: cpu@2 {
103724ba675SRob Herring			compatible = "arm,cortex-a7";
104724ba675SRob Herring			device_type = "cpu";
105724ba675SRob Herring			reg = <2>;
106724ba675SRob Herring			clocks = <&ccu CLK_CPU>;
107724ba675SRob Herring			clock-names = "cpu";
108724ba675SRob Herring			#cooling-cells = <2>;
109724ba675SRob Herring		};
110724ba675SRob Herring
111724ba675SRob Herring		cpu3: cpu@3 {
112724ba675SRob Herring			compatible = "arm,cortex-a7";
113724ba675SRob Herring			device_type = "cpu";
114724ba675SRob Herring			reg = <3>;
115724ba675SRob Herring			clocks = <&ccu CLK_CPU>;
116724ba675SRob Herring			clock-names = "cpu";
117724ba675SRob Herring			#cooling-cells = <2>;
118724ba675SRob Herring		};
119724ba675SRob Herring	};
120724ba675SRob Herring
121724ba675SRob Herring	de: display-engine {
122724ba675SRob Herring		compatible = "allwinner,sun8i-r40-display-engine";
123724ba675SRob Herring		allwinner,pipelines = <&mixer0>, <&mixer1>;
124724ba675SRob Herring		status = "disabled";
125724ba675SRob Herring	};
126724ba675SRob Herring
127724ba675SRob Herring	thermal-zones {
128724ba675SRob Herring		cpu_thermal: cpu0-thermal {
129724ba675SRob Herring			/* milliseconds */
130724ba675SRob Herring			polling-delay-passive = <0>;
131724ba675SRob Herring			polling-delay = <0>;
132724ba675SRob Herring			thermal-sensors = <&ths 0>;
133724ba675SRob Herring
134724ba675SRob Herring			trips {
135724ba675SRob Herring				cpu_hot_trip: cpu-hot {
136724ba675SRob Herring					temperature = <80000>;
137724ba675SRob Herring					hysteresis = <2000>;
138724ba675SRob Herring					type = "passive";
139724ba675SRob Herring				};
140724ba675SRob Herring
141724ba675SRob Herring				cpu_very_hot_trip: cpu-very-hot {
142724ba675SRob Herring					temperature = <115000>;
143724ba675SRob Herring					hysteresis = <0>;
144724ba675SRob Herring					type = "critical";
145724ba675SRob Herring				};
146724ba675SRob Herring			};
147724ba675SRob Herring
148724ba675SRob Herring			cooling-maps {
149724ba675SRob Herring				cpu-hot-limit {
150724ba675SRob Herring					trip = <&cpu_hot_trip>;
151724ba675SRob Herring					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
152724ba675SRob Herring							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
153724ba675SRob Herring							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
154724ba675SRob Herring							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
155724ba675SRob Herring				};
156724ba675SRob Herring			};
157724ba675SRob Herring		};
158724ba675SRob Herring
159724ba675SRob Herring		gpu_thermal: gpu-thermal {
160724ba675SRob Herring			/* milliseconds */
161724ba675SRob Herring			polling-delay-passive = <0>;
162724ba675SRob Herring			polling-delay = <0>;
163724ba675SRob Herring			thermal-sensors = <&ths 1>;
164724ba675SRob Herring		};
165724ba675SRob Herring	};
166724ba675SRob Herring
167724ba675SRob Herring	soc {
168724ba675SRob Herring		compatible = "simple-bus";
169724ba675SRob Herring		#address-cells = <1>;
170724ba675SRob Herring		#size-cells = <1>;
171724ba675SRob Herring		ranges;
172724ba675SRob Herring
173724ba675SRob Herring		display_clocks: clock@1000000 {
174724ba675SRob Herring			compatible = "allwinner,sun8i-r40-de2-clk",
175724ba675SRob Herring				     "allwinner,sun8i-h3-de2-clk";
176724ba675SRob Herring			reg = <0x01000000 0x10000>;
177724ba675SRob Herring			clocks = <&ccu CLK_BUS_DE>,
178724ba675SRob Herring				 <&ccu CLK_DE>;
179724ba675SRob Herring			clock-names = "bus",
180724ba675SRob Herring				      "mod";
181724ba675SRob Herring			resets = <&ccu RST_BUS_DE>;
182724ba675SRob Herring			#clock-cells = <1>;
183724ba675SRob Herring			#reset-cells = <1>;
184724ba675SRob Herring		};
185724ba675SRob Herring
186724ba675SRob Herring		mixer0: mixer@1100000 {
187724ba675SRob Herring			compatible = "allwinner,sun8i-r40-de2-mixer-0";
188724ba675SRob Herring			reg = <0x01100000 0x100000>;
189724ba675SRob Herring			clocks = <&display_clocks CLK_BUS_MIXER0>,
190724ba675SRob Herring				 <&display_clocks CLK_MIXER0>;
191724ba675SRob Herring			clock-names = "bus",
192724ba675SRob Herring				      "mod";
193724ba675SRob Herring			resets = <&display_clocks RST_MIXER0>;
194724ba675SRob Herring
195724ba675SRob Herring			ports {
196724ba675SRob Herring				#address-cells = <1>;
197724ba675SRob Herring				#size-cells = <0>;
198724ba675SRob Herring
199724ba675SRob Herring				mixer0_out: port@1 {
200724ba675SRob Herring					reg = <1>;
201724ba675SRob Herring					mixer0_out_tcon_top: endpoint {
202724ba675SRob Herring						remote-endpoint = <&tcon_top_mixer0_in_mixer0>;
203724ba675SRob Herring					};
204724ba675SRob Herring				};
205724ba675SRob Herring			};
206724ba675SRob Herring		};
207724ba675SRob Herring
208724ba675SRob Herring		mixer1: mixer@1200000 {
209724ba675SRob Herring			compatible = "allwinner,sun8i-r40-de2-mixer-1";
210724ba675SRob Herring			reg = <0x01200000 0x100000>;
211724ba675SRob Herring			clocks = <&display_clocks CLK_BUS_MIXER1>,
212724ba675SRob Herring				 <&display_clocks CLK_MIXER1>;
213724ba675SRob Herring			clock-names = "bus",
214724ba675SRob Herring				      "mod";
215724ba675SRob Herring			resets = <&display_clocks RST_WB>;
216724ba675SRob Herring
217724ba675SRob Herring			ports {
218724ba675SRob Herring				#address-cells = <1>;
219724ba675SRob Herring				#size-cells = <0>;
220724ba675SRob Herring
221724ba675SRob Herring				mixer1_out: port@1 {
222724ba675SRob Herring					reg = <1>;
223724ba675SRob Herring					mixer1_out_tcon_top: endpoint {
224724ba675SRob Herring						remote-endpoint = <&tcon_top_mixer1_in_mixer1>;
225724ba675SRob Herring					};
226724ba675SRob Herring				};
227724ba675SRob Herring			};
228724ba675SRob Herring		};
229724ba675SRob Herring
230724ba675SRob Herring		deinterlace: deinterlace@1400000 {
231724ba675SRob Herring			compatible = "allwinner,sun8i-r40-deinterlace",
232724ba675SRob Herring				     "allwinner,sun8i-h3-deinterlace";
233724ba675SRob Herring			reg = <0x01400000 0x20000>;
234724ba675SRob Herring			clocks = <&ccu CLK_BUS_DEINTERLACE>,
235724ba675SRob Herring				 <&ccu CLK_DEINTERLACE>,
236724ba675SRob Herring				 /*
237724ba675SRob Herring				  * NOTE: Contrary to what datasheet claims,
238724ba675SRob Herring				  * DRAM deinterlace gate doesn't exist and
239724ba675SRob Herring				  * it's shared with CSI1.
240724ba675SRob Herring				  */
241724ba675SRob Herring				 <&ccu CLK_DRAM_CSI1>;
242724ba675SRob Herring			clock-names = "bus", "mod", "ram";
243724ba675SRob Herring			resets = <&ccu RST_BUS_DEINTERLACE>;
244724ba675SRob Herring			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
245724ba675SRob Herring			interconnects = <&mbus 9>;
246724ba675SRob Herring			interconnect-names = "dma-mem";
247724ba675SRob Herring		};
248724ba675SRob Herring
249724ba675SRob Herring		syscon: system-control@1c00000 {
250724ba675SRob Herring			compatible = "allwinner,sun8i-r40-system-control",
251724ba675SRob Herring				     "allwinner,sun4i-a10-system-control";
252724ba675SRob Herring			reg = <0x01c00000 0x30>;
253724ba675SRob Herring			#address-cells = <1>;
254724ba675SRob Herring			#size-cells = <1>;
255724ba675SRob Herring			ranges;
256724ba675SRob Herring
257724ba675SRob Herring			sram_c: sram@1d00000 {
258724ba675SRob Herring				compatible = "mmio-sram";
259724ba675SRob Herring				reg = <0x01d00000 0xd0000>;
260724ba675SRob Herring				#address-cells = <1>;
261724ba675SRob Herring				#size-cells = <1>;
262724ba675SRob Herring				ranges = <0 0x01d00000 0xd0000>;
263724ba675SRob Herring
264724ba675SRob Herring				ve_sram: sram-section@0 {
265724ba675SRob Herring					compatible = "allwinner,sun8i-r40-sram-c1",
266724ba675SRob Herring						     "allwinner,sun4i-a10-sram-c1";
267724ba675SRob Herring					reg = <0x000000 0x80000>;
268724ba675SRob Herring				};
269724ba675SRob Herring			};
270724ba675SRob Herring		};
271724ba675SRob Herring
272724ba675SRob Herring		nmi_intc: interrupt-controller@1c00030 {
273724ba675SRob Herring			compatible = "allwinner,sun7i-a20-sc-nmi";
274724ba675SRob Herring			interrupt-controller;
275724ba675SRob Herring			#interrupt-cells = <2>;
276724ba675SRob Herring			reg = <0x01c00030 0x0c>;
277724ba675SRob Herring			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
278724ba675SRob Herring		};
279724ba675SRob Herring
280724ba675SRob Herring		dma: dma-controller@1c02000 {
281724ba675SRob Herring			compatible = "allwinner,sun8i-r40-dma",
282724ba675SRob Herring				     "allwinner,sun50i-a64-dma";
283724ba675SRob Herring			reg = <0x01c02000 0x1000>;
284724ba675SRob Herring			interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
285724ba675SRob Herring			clocks = <&ccu CLK_BUS_DMA>;
286724ba675SRob Herring			dma-channels = <16>;
287724ba675SRob Herring			dma-requests = <31>;
288724ba675SRob Herring			resets = <&ccu RST_BUS_DMA>;
289724ba675SRob Herring			#dma-cells = <1>;
290724ba675SRob Herring		};
291724ba675SRob Herring
292724ba675SRob Herring		spi0: spi@1c05000 {
293724ba675SRob Herring			compatible = "allwinner,sun8i-r40-spi",
294724ba675SRob Herring				     "allwinner,sun8i-h3-spi";
295724ba675SRob Herring			reg = <0x01c05000 0x1000>;
296724ba675SRob Herring			interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
297724ba675SRob Herring			clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
298724ba675SRob Herring			clock-names = "ahb", "mod";
299724ba675SRob Herring			resets = <&ccu RST_BUS_SPI0>;
300724ba675SRob Herring			status = "disabled";
301724ba675SRob Herring			#address-cells = <1>;
302724ba675SRob Herring			#size-cells = <0>;
303724ba675SRob Herring		};
304724ba675SRob Herring
305724ba675SRob Herring		spi1: spi@1c06000 {
306724ba675SRob Herring			compatible = "allwinner,sun8i-r40-spi",
307724ba675SRob Herring				     "allwinner,sun8i-h3-spi";
308724ba675SRob Herring			reg = <0x01c06000 0x1000>;
309724ba675SRob Herring			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
310724ba675SRob Herring			clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
311724ba675SRob Herring			clock-names = "ahb", "mod";
312724ba675SRob Herring			resets = <&ccu RST_BUS_SPI1>;
313724ba675SRob Herring			status = "disabled";
314724ba675SRob Herring			#address-cells = <1>;
315724ba675SRob Herring			#size-cells = <0>;
316724ba675SRob Herring		};
317724ba675SRob Herring
318724ba675SRob Herring		csi0: csi@1c09000 {
319724ba675SRob Herring			compatible = "allwinner,sun8i-r40-csi0",
320724ba675SRob Herring				     "allwinner,sun7i-a20-csi0";
321724ba675SRob Herring			reg = <0x01c09000 0x1000>;
322724ba675SRob Herring			interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
323724ba675SRob Herring			clocks = <&ccu CLK_BUS_CSI0>, <&ccu CLK_CSI_SCLK>,
324724ba675SRob Herring				 <&ccu CLK_DRAM_CSI0>;
325724ba675SRob Herring			clock-names = "bus", "isp", "ram";
326724ba675SRob Herring			resets = <&ccu RST_BUS_CSI0>;
327724ba675SRob Herring			interconnects = <&mbus 5>;
328724ba675SRob Herring			interconnect-names = "dma-mem";
329724ba675SRob Herring			status = "disabled";
330724ba675SRob Herring		};
331724ba675SRob Herring
332724ba675SRob Herring		video-codec@1c0e000 {
333724ba675SRob Herring			compatible = "allwinner,sun8i-r40-video-engine";
334724ba675SRob Herring			reg = <0x01c0e000 0x1000>;
335724ba675SRob Herring			clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
336724ba675SRob Herring			<&ccu CLK_DRAM_VE>;
337724ba675SRob Herring			clock-names = "ahb", "mod", "ram";
338724ba675SRob Herring			resets = <&ccu RST_BUS_VE>;
339724ba675SRob Herring			interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
340724ba675SRob Herring			allwinner,sram = <&ve_sram 1>;
341*61ebaa04SJernej Skrabec			interconnects = <&mbus 4>;
342*61ebaa04SJernej Skrabec			interconnect-names = "dma-mem";
343724ba675SRob Herring		};
344724ba675SRob Herring
345724ba675SRob Herring		mmc0: mmc@1c0f000 {
346724ba675SRob Herring			compatible = "allwinner,sun8i-r40-mmc",
347724ba675SRob Herring				     "allwinner,sun50i-a64-mmc";
348724ba675SRob Herring			reg = <0x01c0f000 0x1000>;
349724ba675SRob Herring			clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>;
350724ba675SRob Herring			clock-names = "ahb", "mmc";
351724ba675SRob Herring			resets = <&ccu RST_BUS_MMC0>;
352724ba675SRob Herring			reset-names = "ahb";
353724ba675SRob Herring			pinctrl-0 = <&mmc0_pins>;
354724ba675SRob Herring			pinctrl-names = "default";
355724ba675SRob Herring			interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
356724ba675SRob Herring			status = "disabled";
357724ba675SRob Herring			#address-cells = <1>;
358724ba675SRob Herring			#size-cells = <0>;
359724ba675SRob Herring		};
360724ba675SRob Herring
361724ba675SRob Herring		mmc1: mmc@1c10000 {
362724ba675SRob Herring			compatible = "allwinner,sun8i-r40-mmc",
363724ba675SRob Herring				     "allwinner,sun50i-a64-mmc";
364724ba675SRob Herring			reg = <0x01c10000 0x1000>;
365724ba675SRob Herring			clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>;
366724ba675SRob Herring			clock-names = "ahb", "mmc";
367724ba675SRob Herring			resets = <&ccu RST_BUS_MMC1>;
368724ba675SRob Herring			reset-names = "ahb";
369724ba675SRob Herring			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
370724ba675SRob Herring			status = "disabled";
371724ba675SRob Herring			#address-cells = <1>;
372724ba675SRob Herring			#size-cells = <0>;
373724ba675SRob Herring		};
374724ba675SRob Herring
375724ba675SRob Herring		mmc2: mmc@1c11000 {
376724ba675SRob Herring			compatible = "allwinner,sun8i-r40-emmc",
377724ba675SRob Herring				     "allwinner,sun50i-a64-emmc";
378724ba675SRob Herring			reg = <0x01c11000 0x1000>;
379724ba675SRob Herring			clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
380724ba675SRob Herring			clock-names = "ahb", "mmc";
381724ba675SRob Herring			resets = <&ccu RST_BUS_MMC2>;
382724ba675SRob Herring			reset-names = "ahb";
383724ba675SRob Herring			pinctrl-0 = <&mmc2_pins>;
384724ba675SRob Herring			pinctrl-names = "default";
385724ba675SRob Herring			interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
386724ba675SRob Herring			status = "disabled";
387724ba675SRob Herring			#address-cells = <1>;
388724ba675SRob Herring			#size-cells = <0>;
389724ba675SRob Herring		};
390724ba675SRob Herring
391724ba675SRob Herring		mmc3: mmc@1c12000 {
392724ba675SRob Herring			compatible = "allwinner,sun8i-r40-mmc",
393724ba675SRob Herring				     "allwinner,sun50i-a64-mmc";
394724ba675SRob Herring			reg = <0x01c12000 0x1000>;
395724ba675SRob Herring			clocks = <&ccu CLK_BUS_MMC3>, <&ccu CLK_MMC3>;
396724ba675SRob Herring			clock-names = "ahb", "mmc";
397724ba675SRob Herring			resets = <&ccu RST_BUS_MMC3>;
398724ba675SRob Herring			reset-names = "ahb";
399724ba675SRob Herring			pinctrl-0 = <&mmc3_pins>;
400724ba675SRob Herring			pinctrl-names = "default";
401724ba675SRob Herring			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
402724ba675SRob Herring			status = "disabled";
403724ba675SRob Herring			#address-cells = <1>;
404724ba675SRob Herring			#size-cells = <0>;
405724ba675SRob Herring		};
406724ba675SRob Herring
407724ba675SRob Herring		usbphy: phy@1c13400 {
408724ba675SRob Herring			compatible = "allwinner,sun8i-r40-usb-phy";
409724ba675SRob Herring			reg = <0x01c13400 0x14>,
410724ba675SRob Herring			      <0x01c14800 0x4>,
411724ba675SRob Herring			      <0x01c19800 0x4>,
412724ba675SRob Herring			      <0x01c1c800 0x4>;
413724ba675SRob Herring			reg-names = "phy_ctrl",
414724ba675SRob Herring				    "pmu0",
415724ba675SRob Herring				    "pmu1",
416724ba675SRob Herring				    "pmu2";
417724ba675SRob Herring			clocks = <&ccu CLK_USB_PHY0>,
418724ba675SRob Herring				 <&ccu CLK_USB_PHY1>,
419724ba675SRob Herring				 <&ccu CLK_USB_PHY2>;
420724ba675SRob Herring			clock-names = "usb0_phy",
421724ba675SRob Herring				      "usb1_phy",
422724ba675SRob Herring				      "usb2_phy";
423724ba675SRob Herring			resets = <&ccu RST_USB_PHY0>,
424724ba675SRob Herring				 <&ccu RST_USB_PHY1>,
425724ba675SRob Herring				 <&ccu RST_USB_PHY2>;
426724ba675SRob Herring			reset-names = "usb0_reset",
427724ba675SRob Herring				      "usb1_reset",
428724ba675SRob Herring				      "usb2_reset";
429724ba675SRob Herring			status = "disabled";
430724ba675SRob Herring			#phy-cells = <1>;
431724ba675SRob Herring		};
432724ba675SRob Herring
433724ba675SRob Herring		crypto: crypto@1c15000 {
434724ba675SRob Herring			compatible = "allwinner,sun8i-r40-crypto";
435724ba675SRob Herring			reg = <0x01c15000 0x1000>;
436724ba675SRob Herring			interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
437724ba675SRob Herring			clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>;
438724ba675SRob Herring			clock-names = "bus", "mod";
439724ba675SRob Herring			resets = <&ccu RST_BUS_CE>;
440724ba675SRob Herring		};
441724ba675SRob Herring
442724ba675SRob Herring		spi2: spi@1c17000 {
443724ba675SRob Herring			compatible = "allwinner,sun8i-r40-spi",
444724ba675SRob Herring				     "allwinner,sun8i-h3-spi";
445724ba675SRob Herring			reg = <0x01c17000 0x1000>;
446724ba675SRob Herring			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
447724ba675SRob Herring			clocks = <&ccu CLK_BUS_SPI2>, <&ccu CLK_SPI2>;
448724ba675SRob Herring			clock-names = "ahb", "mod";
449724ba675SRob Herring			resets = <&ccu RST_BUS_SPI2>;
450724ba675SRob Herring			status = "disabled";
451724ba675SRob Herring			#address-cells = <1>;
452724ba675SRob Herring			#size-cells = <0>;
453724ba675SRob Herring		};
454724ba675SRob Herring
455724ba675SRob Herring		ahci: sata@1c18000 {
456724ba675SRob Herring			compatible = "allwinner,sun8i-r40-ahci";
457724ba675SRob Herring			reg = <0x01c18000 0x1000>;
458724ba675SRob Herring			interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
459724ba675SRob Herring			clocks = <&ccu CLK_BUS_SATA>, <&ccu CLK_SATA>;
460724ba675SRob Herring			resets = <&ccu RST_BUS_SATA>;
461724ba675SRob Herring			reset-names = "ahci";
462724ba675SRob Herring			status = "disabled";
463724ba675SRob Herring		};
464724ba675SRob Herring
465724ba675SRob Herring		ehci1: usb@1c19000 {
466724ba675SRob Herring			compatible = "allwinner,sun8i-r40-ehci", "generic-ehci";
467724ba675SRob Herring			reg = <0x01c19000 0x100>;
468724ba675SRob Herring			interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
469724ba675SRob Herring			clocks = <&ccu CLK_BUS_EHCI1>;
470724ba675SRob Herring			resets = <&ccu RST_BUS_EHCI1>;
471724ba675SRob Herring			phys = <&usbphy 1>;
472724ba675SRob Herring			phy-names = "usb";
473724ba675SRob Herring			status = "disabled";
474724ba675SRob Herring		};
475724ba675SRob Herring
476724ba675SRob Herring		ohci1: usb@1c19400 {
477724ba675SRob Herring			compatible = "allwinner,sun8i-r40-ohci", "generic-ohci";
478724ba675SRob Herring			reg = <0x01c19400 0x100>;
479724ba675SRob Herring			interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
480724ba675SRob Herring			clocks = <&ccu CLK_BUS_OHCI1>,
481724ba675SRob Herring				 <&ccu CLK_USB_OHCI1>;
482724ba675SRob Herring			resets = <&ccu RST_BUS_OHCI1>;
483724ba675SRob Herring			phys = <&usbphy 1>;
484724ba675SRob Herring			phy-names = "usb";
485724ba675SRob Herring			status = "disabled";
486724ba675SRob Herring		};
487724ba675SRob Herring
488724ba675SRob Herring		ehci2: usb@1c1c000 {
489724ba675SRob Herring			compatible = "allwinner,sun8i-r40-ehci", "generic-ehci";
490724ba675SRob Herring			reg = <0x01c1c000 0x100>;
491724ba675SRob Herring			interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
492724ba675SRob Herring			clocks = <&ccu CLK_BUS_EHCI2>;
493724ba675SRob Herring			resets = <&ccu RST_BUS_EHCI2>;
494724ba675SRob Herring			phys = <&usbphy 2>;
495724ba675SRob Herring			phy-names = "usb";
496724ba675SRob Herring			status = "disabled";
497724ba675SRob Herring		};
498724ba675SRob Herring
499724ba675SRob Herring		ohci2: usb@1c1c400 {
500724ba675SRob Herring			compatible = "allwinner,sun8i-r40-ohci", "generic-ohci";
501724ba675SRob Herring			reg = <0x01c1c400 0x100>;
502724ba675SRob Herring			interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
503724ba675SRob Herring			clocks = <&ccu CLK_BUS_OHCI2>,
504724ba675SRob Herring				 <&ccu CLK_USB_OHCI2>;
505724ba675SRob Herring			resets = <&ccu RST_BUS_OHCI2>;
506724ba675SRob Herring			phys = <&usbphy 2>;
507724ba675SRob Herring			phy-names = "usb";
508724ba675SRob Herring			status = "disabled";
509724ba675SRob Herring		};
510724ba675SRob Herring
511724ba675SRob Herring		spi3: spi@1c1f000 {
512724ba675SRob Herring			compatible = "allwinner,sun8i-r40-spi",
513724ba675SRob Herring				     "allwinner,sun8i-h3-spi";
514724ba675SRob Herring			reg = <0x01c1f000 0x1000>;
515724ba675SRob Herring			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
516724ba675SRob Herring			clocks = <&ccu CLK_BUS_SPI3>, <&ccu CLK_SPI3>;
517724ba675SRob Herring			clock-names = "ahb", "mod";
518724ba675SRob Herring			resets = <&ccu RST_BUS_SPI3>;
519724ba675SRob Herring			status = "disabled";
520724ba675SRob Herring			#address-cells = <1>;
521724ba675SRob Herring			#size-cells = <0>;
522724ba675SRob Herring		};
523724ba675SRob Herring
524724ba675SRob Herring		ccu: clock@1c20000 {
525724ba675SRob Herring			compatible = "allwinner,sun8i-r40-ccu";
526724ba675SRob Herring			reg = <0x01c20000 0x400>;
527724ba675SRob Herring			clocks = <&osc24M>, <&rtc CLK_OSC32K>;
528724ba675SRob Herring			clock-names = "hosc", "losc";
529724ba675SRob Herring			#clock-cells = <1>;
530724ba675SRob Herring			#reset-cells = <1>;
531724ba675SRob Herring		};
532724ba675SRob Herring
533724ba675SRob Herring		rtc: rtc@1c20400 {
534724ba675SRob Herring			compatible = "allwinner,sun8i-r40-rtc";
535724ba675SRob Herring			reg = <0x01c20400 0x400>;
536724ba675SRob Herring			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
537724ba675SRob Herring			clock-output-names = "osc32k", "osc32k-out";
538724ba675SRob Herring			clocks = <&osc32k>;
539724ba675SRob Herring			#clock-cells = <1>;
540724ba675SRob Herring		};
541724ba675SRob Herring
542724ba675SRob Herring		pio: pinctrl@1c20800 {
543724ba675SRob Herring			compatible = "allwinner,sun8i-r40-pinctrl";
544724ba675SRob Herring			reg = <0x01c20800 0x400>;
545724ba675SRob Herring			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
546724ba675SRob Herring			clocks = <&ccu CLK_BUS_PIO>, <&osc24M>,
547724ba675SRob Herring				 <&rtc CLK_OSC32K>;
548724ba675SRob Herring			clock-names = "apb", "hosc", "losc";
549724ba675SRob Herring			gpio-controller;
550724ba675SRob Herring			interrupt-controller;
551724ba675SRob Herring			#interrupt-cells = <3>;
552724ba675SRob Herring			#gpio-cells = <3>;
553724ba675SRob Herring
554724ba675SRob Herring			can_ph_pins: can-ph-pins {
555724ba675SRob Herring				pins = "PH20", "PH21";
556724ba675SRob Herring				function = "can";
557724ba675SRob Herring			};
558724ba675SRob Herring
559724ba675SRob Herring			can_pa_pins: can-pa-pins {
560724ba675SRob Herring				pins = "PA16", "PA17";
561724ba675SRob Herring				function = "can";
562724ba675SRob Herring			};
563724ba675SRob Herring
564724ba675SRob Herring			clk_out_a_pin: clk-out-a-pin {
565724ba675SRob Herring				pins = "PI12";
566724ba675SRob Herring				function = "clk_out_a";
567724ba675SRob Herring			};
568724ba675SRob Herring
569724ba675SRob Herring			/omit-if-no-ref/
570724ba675SRob Herring			csi0_8bits_pins: csi0-8bits-pins {
571724ba675SRob Herring				pins = "PE0", "PE2", "PE3", "PE4", "PE5",
572724ba675SRob Herring				       "PE6", "PE7", "PE8", "PE9", "PE10",
573724ba675SRob Herring				       "PE11";
574724ba675SRob Herring				function = "csi0";
575724ba675SRob Herring			};
576724ba675SRob Herring
577724ba675SRob Herring			/omit-if-no-ref/
578724ba675SRob Herring			csi0_mclk_pin: csi0-mclk-pin {
579724ba675SRob Herring				pins = "PE1";
580724ba675SRob Herring				function = "csi0";
581724ba675SRob Herring			};
582724ba675SRob Herring
583724ba675SRob Herring			gmac_rgmii_pins: gmac-rgmii-pins {
584724ba675SRob Herring				pins = "PA0", "PA1", "PA2", "PA3",
585724ba675SRob Herring				       "PA4", "PA5", "PA6", "PA7",
586724ba675SRob Herring				       "PA8", "PA10", "PA11", "PA12",
587724ba675SRob Herring				       "PA13", "PA15", "PA16";
588724ba675SRob Herring				function = "gmac";
589724ba675SRob Herring				/*
590724ba675SRob Herring				 * data lines in RGMII mode use DDR mode
591724ba675SRob Herring				 * and need a higher signal drive strength
592724ba675SRob Herring				 */
593724ba675SRob Herring				drive-strength = <40>;
594724ba675SRob Herring			};
595724ba675SRob Herring
596724ba675SRob Herring			i2c0_pins: i2c0-pins {
597724ba675SRob Herring				pins = "PB0", "PB1";
598724ba675SRob Herring				function = "i2c0";
599724ba675SRob Herring			};
600724ba675SRob Herring
601724ba675SRob Herring			i2c1_pins: i2c1-pins {
602724ba675SRob Herring				pins = "PB18", "PB19";
603724ba675SRob Herring				function = "i2c1";
604724ba675SRob Herring			};
605724ba675SRob Herring
606724ba675SRob Herring			i2c2_pins: i2c2-pins {
607724ba675SRob Herring				pins = "PB20", "PB21";
608724ba675SRob Herring				function = "i2c2";
609724ba675SRob Herring			};
610724ba675SRob Herring
611724ba675SRob Herring			i2c3_pins: i2c3-pins {
612724ba675SRob Herring				pins = "PI0", "PI1";
613724ba675SRob Herring				function = "i2c3";
614724ba675SRob Herring			};
615724ba675SRob Herring
616724ba675SRob Herring			i2c4_pins: i2c4-pins {
617724ba675SRob Herring				pins = "PI2", "PI3";
618724ba675SRob Herring				function = "i2c4";
619724ba675SRob Herring			};
620724ba675SRob Herring
621724ba675SRob Herring			ir0_pins: ir0-pins {
622724ba675SRob Herring				pins = "PB4";
623724ba675SRob Herring				function = "ir0";
624724ba675SRob Herring			};
625724ba675SRob Herring
626724ba675SRob Herring			ir1_pins: ir1-pins {
627724ba675SRob Herring				pins = "PB23";
628724ba675SRob Herring				function = "ir1";
629724ba675SRob Herring			};
630724ba675SRob Herring
631724ba675SRob Herring			mmc0_pins: mmc0-pins {
632724ba675SRob Herring				pins = "PF0", "PF1", "PF2",
633724ba675SRob Herring				       "PF3", "PF4", "PF5";
634724ba675SRob Herring				function = "mmc0";
635724ba675SRob Herring				drive-strength = <30>;
636724ba675SRob Herring				bias-pull-up;
637724ba675SRob Herring			};
638724ba675SRob Herring
639724ba675SRob Herring			mmc1_pg_pins: mmc1-pg-pins {
640724ba675SRob Herring				pins = "PG0", "PG1", "PG2",
641724ba675SRob Herring				       "PG3", "PG4", "PG5";
642724ba675SRob Herring				function = "mmc1";
643724ba675SRob Herring				drive-strength = <30>;
644724ba675SRob Herring				bias-pull-up;
645724ba675SRob Herring			};
646724ba675SRob Herring
647724ba675SRob Herring			mmc2_pins: mmc2-pins {
648724ba675SRob Herring				pins = "PC5", "PC6", "PC7", "PC8", "PC9",
649724ba675SRob Herring				       "PC10", "PC11", "PC12", "PC13", "PC14",
650724ba675SRob Herring				       "PC15", "PC24";
651724ba675SRob Herring				function = "mmc2";
652724ba675SRob Herring				drive-strength = <30>;
653724ba675SRob Herring				bias-pull-up;
654724ba675SRob Herring			};
655724ba675SRob Herring
656724ba675SRob Herring			/omit-if-no-ref/
657724ba675SRob Herring			mmc3_pins: mmc3-pins {
658724ba675SRob Herring				pins = "PI4", "PI5", "PI6",
659724ba675SRob Herring				       "PI7", "PI8", "PI9";
660724ba675SRob Herring				function = "mmc3";
661724ba675SRob Herring				drive-strength = <30>;
662724ba675SRob Herring				bias-pull-up;
663724ba675SRob Herring			};
664724ba675SRob Herring
665724ba675SRob Herring			/omit-if-no-ref/
666724ba675SRob Herring			spi0_pc_pins: spi0-pc-pins {
667724ba675SRob Herring				pins = "PC0", "PC1", "PC2";
668724ba675SRob Herring				function = "spi0";
669724ba675SRob Herring			};
670724ba675SRob Herring
671724ba675SRob Herring			/omit-if-no-ref/
672724ba675SRob Herring			spi0_cs0_pc_pin: spi0-cs0-pc-pin {
673724ba675SRob Herring				pins = "PC23";
674724ba675SRob Herring				function = "spi0";
675724ba675SRob Herring			};
676724ba675SRob Herring
677724ba675SRob Herring			/omit-if-no-ref/
678724ba675SRob Herring			spi1_pi_pins: spi1-pi-pins {
679724ba675SRob Herring				pins = "PI17", "PI18", "PI19";
680724ba675SRob Herring				function = "spi1";
681724ba675SRob Herring			};
682724ba675SRob Herring
683724ba675SRob Herring			/omit-if-no-ref/
684724ba675SRob Herring			spi1_cs0_pi_pin: spi1-cs0-pi-pin {
685724ba675SRob Herring				pins = "PI16";
686724ba675SRob Herring				function = "spi1";
687724ba675SRob Herring			};
688724ba675SRob Herring
689724ba675SRob Herring			/omit-if-no-ref/
690724ba675SRob Herring			spi1_cs1_pi_pin: spi1-cs1-pi-pin {
691724ba675SRob Herring				pins = "PI15";
692724ba675SRob Herring				function = "spi1";
693724ba675SRob Herring			};
694724ba675SRob Herring
695724ba675SRob Herring			/omit-if-no-ref/
696724ba675SRob Herring			uart0_pb_pins: uart0-pb-pins {
697724ba675SRob Herring				pins = "PB22", "PB23";
698724ba675SRob Herring				function = "uart0";
699724ba675SRob Herring			};
700724ba675SRob Herring
701724ba675SRob Herring			/omit-if-no-ref/
702724ba675SRob Herring			uart2_pi_pins: uart2-pi-pins {
703724ba675SRob Herring				pins = "PI18", "PI19";
704724ba675SRob Herring				function = "uart2";
705724ba675SRob Herring			};
706724ba675SRob Herring
707724ba675SRob Herring			/omit-if-no-ref/
708724ba675SRob Herring			uart2_rts_cts_pi_pins: uart2-rts-cts-pi-pins{
709724ba675SRob Herring				pins = "PI16", "PI17";
710724ba675SRob Herring				function = "uart2";
711724ba675SRob Herring			};
712724ba675SRob Herring
713724ba675SRob Herring			/omit-if-no-ref/
714724ba675SRob Herring			uart3_pg_pins: uart3-pg-pins {
715724ba675SRob Herring				pins = "PG6", "PG7";
716724ba675SRob Herring				function = "uart3";
717724ba675SRob Herring			};
718724ba675SRob Herring
719724ba675SRob Herring			/omit-if-no-ref/
720724ba675SRob Herring			uart3_rts_cts_pg_pins: uart3-rts-cts-pg-pins {
721724ba675SRob Herring				pins = "PG8", "PG9";
722724ba675SRob Herring				function = "uart3";
723724ba675SRob Herring			};
724724ba675SRob Herring
725724ba675SRob Herring			/omit-if-no-ref/
726724ba675SRob Herring			uart4_pg_pins: uart4-pg-pins {
727724ba675SRob Herring				pins = "PG10", "PG11";
728724ba675SRob Herring				function = "uart4";
729724ba675SRob Herring			};
730724ba675SRob Herring
731724ba675SRob Herring			/omit-if-no-ref/
732724ba675SRob Herring			uart5_ph_pins: uart5-ph-pins {
733724ba675SRob Herring				pins = "PH6", "PH7";
734724ba675SRob Herring				function = "uart5";
735724ba675SRob Herring			};
736724ba675SRob Herring
737724ba675SRob Herring			/omit-if-no-ref/
738724ba675SRob Herring			uart7_pi_pins: uart7-pi-pins {
739724ba675SRob Herring				pins = "PI20", "PI21";
740724ba675SRob Herring				function = "uart7";
741724ba675SRob Herring			};
742724ba675SRob Herring		};
743724ba675SRob Herring
744724ba675SRob Herring		timer@1c20c00 {
745724ba675SRob Herring			compatible = "allwinner,sun4i-a10-timer";
746724ba675SRob Herring			reg = <0x01c20c00 0x90>;
747724ba675SRob Herring			interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
748724ba675SRob Herring				     <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
749724ba675SRob Herring				     <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
750724ba675SRob Herring				     <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
751724ba675SRob Herring				     <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
752724ba675SRob Herring				     <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
753724ba675SRob Herring			clocks = <&osc24M>;
754724ba675SRob Herring		};
755724ba675SRob Herring
756724ba675SRob Herring		wdt: watchdog@1c20c90 {
757724ba675SRob Herring			compatible = "allwinner,sun4i-a10-wdt";
758724ba675SRob Herring			reg = <0x01c20c90 0x10>;
759724ba675SRob Herring			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
760724ba675SRob Herring			clocks = <&osc24M>;
761724ba675SRob Herring		};
762724ba675SRob Herring
763724ba675SRob Herring		ir0: ir@1c21800 {
764724ba675SRob Herring			compatible = "allwinner,sun8i-r40-ir",
765724ba675SRob Herring				     "allwinner,sun6i-a31-ir";
766724ba675SRob Herring			reg = <0x01c21800 0x400>;
767724ba675SRob Herring			pinctrl-0 = <&ir0_pins>;
768724ba675SRob Herring			pinctrl-names = "default";
769724ba675SRob Herring			clocks = <&ccu CLK_BUS_IR0>, <&ccu CLK_IR0>;
770724ba675SRob Herring			clock-names = "apb", "ir";
771724ba675SRob Herring			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
772724ba675SRob Herring			resets = <&ccu RST_BUS_IR0>;
773724ba675SRob Herring			status = "disabled";
774724ba675SRob Herring		};
775724ba675SRob Herring
776724ba675SRob Herring		ir1: ir@1c21c00 {
777724ba675SRob Herring			compatible = "allwinner,sun8i-r40-ir",
778724ba675SRob Herring				     "allwinner,sun6i-a31-ir";
779724ba675SRob Herring			reg = <0x01c21c00 0x400>;
780724ba675SRob Herring			pinctrl-0 = <&ir1_pins>;
781724ba675SRob Herring			pinctrl-names = "default";
782724ba675SRob Herring			clocks = <&ccu CLK_BUS_IR1>, <&ccu CLK_IR1>;
783724ba675SRob Herring			clock-names = "apb", "ir";
784724ba675SRob Herring			interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
785724ba675SRob Herring			resets = <&ccu RST_BUS_IR1>;
786724ba675SRob Herring			status = "disabled";
787724ba675SRob Herring		};
788724ba675SRob Herring
789724ba675SRob Herring		i2s0: i2s@1c22000 {
790724ba675SRob Herring			#sound-dai-cells = <0>;
791724ba675SRob Herring			compatible = "allwinner,sun8i-r40-i2s",
792724ba675SRob Herring				     "allwinner,sun8i-h3-i2s";
793724ba675SRob Herring			reg = <0x01c22000 0x400>;
794724ba675SRob Herring			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
795724ba675SRob Herring			clocks = <&ccu CLK_BUS_I2S0>, <&ccu CLK_I2S0>;
796724ba675SRob Herring			clock-names = "apb", "mod";
797724ba675SRob Herring			resets = <&ccu RST_BUS_I2S0>;
798724ba675SRob Herring			dmas = <&dma 3>, <&dma 3>;
799724ba675SRob Herring			dma-names = "rx", "tx";
800724ba675SRob Herring		};
801724ba675SRob Herring
802724ba675SRob Herring		i2s1: i2s@1c22400 {
803724ba675SRob Herring			#sound-dai-cells = <0>;
804724ba675SRob Herring			compatible = "allwinner,sun8i-r40-i2s",
805724ba675SRob Herring				     "allwinner,sun8i-h3-i2s";
806724ba675SRob Herring			reg = <0x01c22400 0x400>;
807724ba675SRob Herring			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
808724ba675SRob Herring			clocks = <&ccu CLK_BUS_I2S1>, <&ccu CLK_I2S1>;
809724ba675SRob Herring			clock-names = "apb", "mod";
810724ba675SRob Herring			resets = <&ccu RST_BUS_I2S1>;
811724ba675SRob Herring			dmas = <&dma 4>, <&dma 4>;
812724ba675SRob Herring			dma-names = "rx", "tx";
813724ba675SRob Herring		};
814724ba675SRob Herring
815724ba675SRob Herring		i2s2: i2s@1c22800 {
816724ba675SRob Herring			#sound-dai-cells = <0>;
817724ba675SRob Herring			compatible = "allwinner,sun8i-r40-i2s",
818724ba675SRob Herring				     "allwinner,sun8i-h3-i2s";
819724ba675SRob Herring			reg = <0x01c22800 0x400>;
820724ba675SRob Herring			interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
821724ba675SRob Herring			clocks = <&ccu CLK_BUS_I2S2>, <&ccu CLK_I2S2>;
822724ba675SRob Herring			clock-names = "apb", "mod";
823724ba675SRob Herring			resets = <&ccu RST_BUS_I2S2>;
824724ba675SRob Herring			dmas = <&dma 6>, <&dma 6>;
825724ba675SRob Herring			dma-names = "rx", "tx";
826724ba675SRob Herring		};
827724ba675SRob Herring
828724ba675SRob Herring		ths: thermal-sensor@1c24c00 {
829724ba675SRob Herring			compatible = "allwinner,sun8i-r40-ths";
830724ba675SRob Herring			reg = <0x01c24c00 0x100>;
831724ba675SRob Herring			clocks = <&ccu CLK_BUS_THS>, <&ccu CLK_THS>;
832724ba675SRob Herring			clock-names = "bus", "mod";
833724ba675SRob Herring			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
834724ba675SRob Herring			resets = <&ccu RST_BUS_THS>;
835724ba675SRob Herring			/* TODO: add nvmem-cells for calibration */
836724ba675SRob Herring			#thermal-sensor-cells = <1>;
837724ba675SRob Herring		};
838724ba675SRob Herring
839724ba675SRob Herring		uart0: serial@1c28000 {
840724ba675SRob Herring			compatible = "snps,dw-apb-uart";
841724ba675SRob Herring			reg = <0x01c28000 0x400>;
842724ba675SRob Herring			interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
843724ba675SRob Herring			reg-shift = <2>;
844724ba675SRob Herring			reg-io-width = <4>;
845724ba675SRob Herring			clocks = <&ccu CLK_BUS_UART0>;
846724ba675SRob Herring			resets = <&ccu RST_BUS_UART0>;
847724ba675SRob Herring			status = "disabled";
848724ba675SRob Herring		};
849724ba675SRob Herring
850724ba675SRob Herring		uart1: serial@1c28400 {
851724ba675SRob Herring			compatible = "snps,dw-apb-uart";
852724ba675SRob Herring			reg = <0x01c28400 0x400>;
853724ba675SRob Herring			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
854724ba675SRob Herring			reg-shift = <2>;
855724ba675SRob Herring			reg-io-width = <4>;
856724ba675SRob Herring			clocks = <&ccu CLK_BUS_UART1>;
857724ba675SRob Herring			resets = <&ccu RST_BUS_UART1>;
858724ba675SRob Herring			status = "disabled";
859724ba675SRob Herring		};
860724ba675SRob Herring
861724ba675SRob Herring		uart2: serial@1c28800 {
862724ba675SRob Herring			compatible = "snps,dw-apb-uart";
863724ba675SRob Herring			reg = <0x01c28800 0x400>;
864724ba675SRob Herring			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
865724ba675SRob Herring			reg-shift = <2>;
866724ba675SRob Herring			reg-io-width = <4>;
867724ba675SRob Herring			clocks = <&ccu CLK_BUS_UART2>;
868724ba675SRob Herring			resets = <&ccu RST_BUS_UART2>;
869724ba675SRob Herring			status = "disabled";
870724ba675SRob Herring		};
871724ba675SRob Herring
872724ba675SRob Herring		uart3: serial@1c28c00 {
873724ba675SRob Herring			compatible = "snps,dw-apb-uart";
874724ba675SRob Herring			reg = <0x01c28c00 0x400>;
875724ba675SRob Herring			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
876724ba675SRob Herring			reg-shift = <2>;
877724ba675SRob Herring			reg-io-width = <4>;
878724ba675SRob Herring			clocks = <&ccu CLK_BUS_UART3>;
879724ba675SRob Herring			resets = <&ccu RST_BUS_UART3>;
880724ba675SRob Herring			status = "disabled";
881724ba675SRob Herring		};
882724ba675SRob Herring
883724ba675SRob Herring		uart4: serial@1c29000 {
884724ba675SRob Herring			compatible = "snps,dw-apb-uart";
885724ba675SRob Herring			reg = <0x01c29000 0x400>;
886724ba675SRob Herring			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
887724ba675SRob Herring			reg-shift = <2>;
888724ba675SRob Herring			reg-io-width = <4>;
889724ba675SRob Herring			clocks = <&ccu CLK_BUS_UART4>;
890724ba675SRob Herring			resets = <&ccu RST_BUS_UART4>;
891724ba675SRob Herring			status = "disabled";
892724ba675SRob Herring		};
893724ba675SRob Herring
894724ba675SRob Herring		uart5: serial@1c29400 {
895724ba675SRob Herring			compatible = "snps,dw-apb-uart";
896724ba675SRob Herring			reg = <0x01c29400 0x400>;
897724ba675SRob Herring			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
898724ba675SRob Herring			reg-shift = <2>;
899724ba675SRob Herring			reg-io-width = <4>;
900724ba675SRob Herring			clocks = <&ccu CLK_BUS_UART5>;
901724ba675SRob Herring			resets = <&ccu RST_BUS_UART5>;
902724ba675SRob Herring			status = "disabled";
903724ba675SRob Herring		};
904724ba675SRob Herring
905724ba675SRob Herring		uart6: serial@1c29800 {
906724ba675SRob Herring			compatible = "snps,dw-apb-uart";
907724ba675SRob Herring			reg = <0x01c29800 0x400>;
908724ba675SRob Herring			interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
909724ba675SRob Herring			reg-shift = <2>;
910724ba675SRob Herring			reg-io-width = <4>;
911724ba675SRob Herring			clocks = <&ccu CLK_BUS_UART6>;
912724ba675SRob Herring			resets = <&ccu RST_BUS_UART6>;
913724ba675SRob Herring			status = "disabled";
914724ba675SRob Herring		};
915724ba675SRob Herring
916724ba675SRob Herring		uart7: serial@1c29c00 {
917724ba675SRob Herring			compatible = "snps,dw-apb-uart";
918724ba675SRob Herring			reg = <0x01c29c00 0x400>;
919724ba675SRob Herring			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
920724ba675SRob Herring			reg-shift = <2>;
921724ba675SRob Herring			reg-io-width = <4>;
922724ba675SRob Herring			clocks = <&ccu CLK_BUS_UART7>;
923724ba675SRob Herring			resets = <&ccu RST_BUS_UART7>;
924724ba675SRob Herring			status = "disabled";
925724ba675SRob Herring		};
926724ba675SRob Herring
927724ba675SRob Herring		i2c0: i2c@1c2ac00 {
928724ba675SRob Herring			compatible = "allwinner,sun6i-a31-i2c";
929724ba675SRob Herring			reg = <0x01c2ac00 0x400>;
930724ba675SRob Herring			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
931724ba675SRob Herring			clocks = <&ccu CLK_BUS_I2C0>;
932724ba675SRob Herring			resets = <&ccu RST_BUS_I2C0>;
933724ba675SRob Herring			pinctrl-0 = <&i2c0_pins>;
934724ba675SRob Herring			pinctrl-names = "default";
935724ba675SRob Herring			status = "disabled";
936724ba675SRob Herring			#address-cells = <1>;
937724ba675SRob Herring			#size-cells = <0>;
938724ba675SRob Herring		};
939724ba675SRob Herring
940724ba675SRob Herring		i2c1: i2c@1c2b000 {
941724ba675SRob Herring			compatible = "allwinner,sun6i-a31-i2c";
942724ba675SRob Herring			reg = <0x01c2b000 0x400>;
943724ba675SRob Herring			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
944724ba675SRob Herring			clocks = <&ccu CLK_BUS_I2C1>;
945724ba675SRob Herring			resets = <&ccu RST_BUS_I2C1>;
946724ba675SRob Herring			pinctrl-0 = <&i2c1_pins>;
947724ba675SRob Herring			pinctrl-names = "default";
948724ba675SRob Herring			status = "disabled";
949724ba675SRob Herring			#address-cells = <1>;
950724ba675SRob Herring			#size-cells = <0>;
951724ba675SRob Herring		};
952724ba675SRob Herring
953724ba675SRob Herring		i2c2: i2c@1c2b400 {
954724ba675SRob Herring			compatible = "allwinner,sun6i-a31-i2c";
955724ba675SRob Herring			reg = <0x01c2b400 0x400>;
956724ba675SRob Herring			interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
957724ba675SRob Herring			clocks = <&ccu CLK_BUS_I2C2>;
958724ba675SRob Herring			resets = <&ccu RST_BUS_I2C2>;
959724ba675SRob Herring			pinctrl-0 = <&i2c2_pins>;
960724ba675SRob Herring			pinctrl-names = "default";
961724ba675SRob Herring			status = "disabled";
962724ba675SRob Herring			#address-cells = <1>;
963724ba675SRob Herring			#size-cells = <0>;
964724ba675SRob Herring		};
965724ba675SRob Herring
966724ba675SRob Herring		i2c3: i2c@1c2b800 {
967724ba675SRob Herring			compatible = "allwinner,sun6i-a31-i2c";
968724ba675SRob Herring			reg = <0x01c2b800 0x400>;
969724ba675SRob Herring			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
970724ba675SRob Herring			clocks = <&ccu CLK_BUS_I2C3>;
971724ba675SRob Herring			resets = <&ccu RST_BUS_I2C3>;
972724ba675SRob Herring			pinctrl-0 = <&i2c3_pins>;
973724ba675SRob Herring			pinctrl-names = "default";
974724ba675SRob Herring			status = "disabled";
975724ba675SRob Herring			#address-cells = <1>;
976724ba675SRob Herring			#size-cells = <0>;
977724ba675SRob Herring		};
978724ba675SRob Herring
979724ba675SRob Herring		can0: can@1c2bc00 {
980724ba675SRob Herring			compatible = "allwinner,sun8i-r40-can";
981724ba675SRob Herring			reg = <0x01c2bc00 0x400>;
982724ba675SRob Herring			interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
983724ba675SRob Herring			clocks = <&ccu CLK_BUS_CAN>;
984724ba675SRob Herring			resets = <&ccu RST_BUS_CAN>;
985724ba675SRob Herring			status = "disabled";
986724ba675SRob Herring		};
987724ba675SRob Herring
988724ba675SRob Herring		i2c4: i2c@1c2c000 {
989724ba675SRob Herring			compatible = "allwinner,sun6i-a31-i2c";
990724ba675SRob Herring			reg = <0x01c2c000 0x400>;
991724ba675SRob Herring			interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
992724ba675SRob Herring			clocks = <&ccu CLK_BUS_I2C4>;
993724ba675SRob Herring			resets = <&ccu RST_BUS_I2C4>;
994724ba675SRob Herring			pinctrl-0 = <&i2c4_pins>;
995724ba675SRob Herring			pinctrl-names = "default";
996724ba675SRob Herring			status = "disabled";
997724ba675SRob Herring			#address-cells = <1>;
998724ba675SRob Herring			#size-cells = <0>;
999724ba675SRob Herring		};
1000724ba675SRob Herring
1001724ba675SRob Herring		mali: gpu@1c40000 {
1002724ba675SRob Herring			compatible = "allwinner,sun8i-r40-mali", "arm,mali-400";
1003724ba675SRob Herring			reg = <0x01c40000 0x10000>;
1004724ba675SRob Herring			interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
1005724ba675SRob Herring				     <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
1006724ba675SRob Herring				     <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
1007724ba675SRob Herring				     <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
1008724ba675SRob Herring				     <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
1009724ba675SRob Herring				     <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
1010724ba675SRob Herring				     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
1011724ba675SRob Herring			interrupt-names = "gp",
1012724ba675SRob Herring					  "gpmmu",
1013724ba675SRob Herring					  "pp0",
1014724ba675SRob Herring					  "ppmmu0",
1015724ba675SRob Herring					  "pp1",
1016724ba675SRob Herring					  "ppmmu1",
1017724ba675SRob Herring					  "pmu";
1018724ba675SRob Herring			clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
1019724ba675SRob Herring			clock-names = "bus", "core";
1020724ba675SRob Herring			resets = <&ccu RST_BUS_GPU>;
1021724ba675SRob Herring		};
1022724ba675SRob Herring
1023724ba675SRob Herring		gmac: ethernet@1c50000 {
1024724ba675SRob Herring			compatible = "allwinner,sun8i-r40-gmac";
1025724ba675SRob Herring			syscon = <&ccu>;
1026724ba675SRob Herring			reg = <0x01c50000 0x10000>;
1027724ba675SRob Herring			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
1028724ba675SRob Herring			interrupt-names = "macirq";
1029724ba675SRob Herring			resets = <&ccu RST_BUS_GMAC>;
1030724ba675SRob Herring			reset-names = "stmmaceth";
1031724ba675SRob Herring			clocks = <&ccu CLK_BUS_GMAC>;
1032724ba675SRob Herring			clock-names = "stmmaceth";
1033724ba675SRob Herring			status = "disabled";
1034724ba675SRob Herring
1035724ba675SRob Herring			gmac_mdio: mdio {
1036724ba675SRob Herring				compatible = "snps,dwmac-mdio";
1037724ba675SRob Herring				#address-cells = <1>;
1038724ba675SRob Herring				#size-cells = <0>;
1039724ba675SRob Herring			};
1040724ba675SRob Herring		};
1041724ba675SRob Herring
1042724ba675SRob Herring		mbus: dram-controller@1c62000 {
1043724ba675SRob Herring			compatible = "allwinner,sun8i-r40-mbus";
1044724ba675SRob Herring			reg = <0x01c62000 0x1000>;
1045724ba675SRob Herring			clocks = <&ccu 155>;
1046724ba675SRob Herring			#address-cells = <1>;
1047724ba675SRob Herring			#size-cells = <1>;
1048724ba675SRob Herring			dma-ranges = <0x00000000 0x40000000 0x80000000>;
1049724ba675SRob Herring			#interconnect-cells = <1>;
1050724ba675SRob Herring		};
1051724ba675SRob Herring
1052724ba675SRob Herring		tcon_top: tcon-top@1c70000 {
1053724ba675SRob Herring			compatible = "allwinner,sun8i-r40-tcon-top";
1054724ba675SRob Herring			reg = <0x01c70000 0x1000>;
1055724ba675SRob Herring			clocks = <&ccu CLK_BUS_TCON_TOP>,
1056724ba675SRob Herring				 <&ccu CLK_TCON_TV0>,
1057724ba675SRob Herring				 <&ccu CLK_TVE0>,
1058724ba675SRob Herring				 <&ccu CLK_TCON_TV1>,
1059724ba675SRob Herring				 <&ccu CLK_TVE1>,
1060724ba675SRob Herring				 <&ccu CLK_DSI_DPHY>;
1061724ba675SRob Herring			clock-names = "bus",
1062724ba675SRob Herring				      "tcon-tv0",
1063724ba675SRob Herring				      "tve0",
1064724ba675SRob Herring				      "tcon-tv1",
1065724ba675SRob Herring				      "tve1",
1066724ba675SRob Herring				      "dsi";
1067724ba675SRob Herring			clock-output-names = "tcon-top-tv0",
1068724ba675SRob Herring					     "tcon-top-tv1",
1069724ba675SRob Herring					     "tcon-top-dsi";
1070724ba675SRob Herring			resets = <&ccu RST_BUS_TCON_TOP>;
1071724ba675SRob Herring			#clock-cells = <1>;
1072724ba675SRob Herring
1073724ba675SRob Herring			ports {
1074724ba675SRob Herring				#address-cells = <1>;
1075724ba675SRob Herring				#size-cells = <0>;
1076724ba675SRob Herring
1077724ba675SRob Herring				tcon_top_mixer0_in: port@0 {
1078724ba675SRob Herring					reg = <0>;
1079724ba675SRob Herring
1080724ba675SRob Herring					tcon_top_mixer0_in_mixer0: endpoint {
1081724ba675SRob Herring						remote-endpoint = <&mixer0_out_tcon_top>;
1082724ba675SRob Herring					};
1083724ba675SRob Herring				};
1084724ba675SRob Herring
1085724ba675SRob Herring				tcon_top_mixer0_out: port@1 {
1086724ba675SRob Herring					#address-cells = <1>;
1087724ba675SRob Herring					#size-cells = <0>;
1088724ba675SRob Herring					reg = <1>;
1089724ba675SRob Herring
1090724ba675SRob Herring					tcon_top_mixer0_out_tcon_lcd0: endpoint@0 {
1091724ba675SRob Herring						reg = <0>;
1092724ba675SRob Herring					};
1093724ba675SRob Herring
1094724ba675SRob Herring					tcon_top_mixer0_out_tcon_lcd1: endpoint@1 {
1095724ba675SRob Herring						reg = <1>;
1096724ba675SRob Herring					};
1097724ba675SRob Herring
1098724ba675SRob Herring					tcon_top_mixer0_out_tcon_tv0: endpoint@2 {
1099724ba675SRob Herring						reg = <2>;
1100724ba675SRob Herring						remote-endpoint = <&tcon_tv0_in_tcon_top_mixer0>;
1101724ba675SRob Herring					};
1102724ba675SRob Herring
1103724ba675SRob Herring					tcon_top_mixer0_out_tcon_tv1: endpoint@3 {
1104724ba675SRob Herring						reg = <3>;
1105724ba675SRob Herring						remote-endpoint = <&tcon_tv1_in_tcon_top_mixer0>;
1106724ba675SRob Herring					};
1107724ba675SRob Herring				};
1108724ba675SRob Herring
1109724ba675SRob Herring				tcon_top_mixer1_in: port@2 {
1110724ba675SRob Herring					#address-cells = <1>;
1111724ba675SRob Herring					#size-cells = <0>;
1112724ba675SRob Herring					reg = <2>;
1113724ba675SRob Herring
1114724ba675SRob Herring					tcon_top_mixer1_in_mixer1: endpoint@1 {
1115724ba675SRob Herring						reg = <1>;
1116724ba675SRob Herring						remote-endpoint = <&mixer1_out_tcon_top>;
1117724ba675SRob Herring					};
1118724ba675SRob Herring				};
1119724ba675SRob Herring
1120724ba675SRob Herring				tcon_top_mixer1_out: port@3 {
1121724ba675SRob Herring					#address-cells = <1>;
1122724ba675SRob Herring					#size-cells = <0>;
1123724ba675SRob Herring					reg = <3>;
1124724ba675SRob Herring
1125724ba675SRob Herring					tcon_top_mixer1_out_tcon_lcd0: endpoint@0 {
1126724ba675SRob Herring						reg = <0>;
1127724ba675SRob Herring					};
1128724ba675SRob Herring
1129724ba675SRob Herring					tcon_top_mixer1_out_tcon_lcd1: endpoint@1 {
1130724ba675SRob Herring						reg = <1>;
1131724ba675SRob Herring					};
1132724ba675SRob Herring
1133724ba675SRob Herring					tcon_top_mixer1_out_tcon_tv0: endpoint@2 {
1134724ba675SRob Herring						reg = <2>;
1135724ba675SRob Herring						remote-endpoint = <&tcon_tv0_in_tcon_top_mixer1>;
1136724ba675SRob Herring					};
1137724ba675SRob Herring
1138724ba675SRob Herring					tcon_top_mixer1_out_tcon_tv1: endpoint@3 {
1139724ba675SRob Herring						reg = <3>;
1140724ba675SRob Herring						remote-endpoint = <&tcon_tv1_in_tcon_top_mixer1>;
1141724ba675SRob Herring					};
1142724ba675SRob Herring				};
1143724ba675SRob Herring
1144724ba675SRob Herring				tcon_top_hdmi_in: port@4 {
1145724ba675SRob Herring					#address-cells = <1>;
1146724ba675SRob Herring					#size-cells = <0>;
1147724ba675SRob Herring					reg = <4>;
1148724ba675SRob Herring
1149724ba675SRob Herring					tcon_top_hdmi_in_tcon_tv0: endpoint@0 {
1150724ba675SRob Herring						reg = <0>;
1151724ba675SRob Herring						remote-endpoint = <&tcon_tv0_out_tcon_top>;
1152724ba675SRob Herring					};
1153724ba675SRob Herring
1154724ba675SRob Herring					tcon_top_hdmi_in_tcon_tv1: endpoint@1 {
1155724ba675SRob Herring						reg = <1>;
1156724ba675SRob Herring						remote-endpoint = <&tcon_tv1_out_tcon_top>;
1157724ba675SRob Herring					};
1158724ba675SRob Herring				};
1159724ba675SRob Herring
1160724ba675SRob Herring				tcon_top_hdmi_out: port@5 {
1161724ba675SRob Herring					reg = <5>;
1162724ba675SRob Herring
1163724ba675SRob Herring					tcon_top_hdmi_out_hdmi: endpoint {
1164724ba675SRob Herring						remote-endpoint = <&hdmi_in_tcon_top>;
1165724ba675SRob Herring					};
1166724ba675SRob Herring				};
1167724ba675SRob Herring			};
1168724ba675SRob Herring		};
1169724ba675SRob Herring
1170724ba675SRob Herring		tcon_tv0: lcd-controller@1c73000 {
1171724ba675SRob Herring			compatible = "allwinner,sun8i-r40-tcon-tv";
1172724ba675SRob Herring			reg = <0x01c73000 0x1000>;
1173724ba675SRob Herring			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
1174724ba675SRob Herring			clocks = <&ccu CLK_BUS_TCON_TV0>, <&tcon_top CLK_TCON_TOP_TV0>;
1175724ba675SRob Herring			clock-names = "ahb", "tcon-ch1";
1176724ba675SRob Herring			resets = <&ccu RST_BUS_TCON_TV0>;
1177724ba675SRob Herring			reset-names = "lcd";
1178724ba675SRob Herring			status = "disabled";
1179724ba675SRob Herring
1180724ba675SRob Herring			ports {
1181724ba675SRob Herring				#address-cells = <1>;
1182724ba675SRob Herring				#size-cells = <0>;
1183724ba675SRob Herring
1184724ba675SRob Herring				tcon_tv0_in: port@0 {
1185724ba675SRob Herring					#address-cells = <1>;
1186724ba675SRob Herring					#size-cells = <0>;
1187724ba675SRob Herring					reg = <0>;
1188724ba675SRob Herring
1189724ba675SRob Herring					tcon_tv0_in_tcon_top_mixer0: endpoint@0 {
1190724ba675SRob Herring						reg = <0>;
1191724ba675SRob Herring						remote-endpoint = <&tcon_top_mixer0_out_tcon_tv0>;
1192724ba675SRob Herring					};
1193724ba675SRob Herring
1194724ba675SRob Herring					tcon_tv0_in_tcon_top_mixer1: endpoint@1 {
1195724ba675SRob Herring						reg = <1>;
1196724ba675SRob Herring						remote-endpoint = <&tcon_top_mixer1_out_tcon_tv0>;
1197724ba675SRob Herring					};
1198724ba675SRob Herring				};
1199724ba675SRob Herring
1200724ba675SRob Herring				tcon_tv0_out: port@1 {
1201724ba675SRob Herring					#address-cells = <1>;
1202724ba675SRob Herring					#size-cells = <0>;
1203724ba675SRob Herring					reg = <1>;
1204724ba675SRob Herring
1205724ba675SRob Herring					tcon_tv0_out_tcon_top: endpoint@1 {
1206724ba675SRob Herring						reg = <1>;
1207724ba675SRob Herring						remote-endpoint = <&tcon_top_hdmi_in_tcon_tv0>;
1208724ba675SRob Herring					};
1209724ba675SRob Herring				};
1210724ba675SRob Herring			};
1211724ba675SRob Herring		};
1212724ba675SRob Herring
1213724ba675SRob Herring		tcon_tv1: lcd-controller@1c74000 {
1214724ba675SRob Herring			compatible = "allwinner,sun8i-r40-tcon-tv";
1215724ba675SRob Herring			reg = <0x01c74000 0x1000>;
1216724ba675SRob Herring			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
1217724ba675SRob Herring			clocks = <&ccu CLK_BUS_TCON_TV1>, <&tcon_top CLK_TCON_TOP_TV1>;
1218724ba675SRob Herring			clock-names = "ahb", "tcon-ch1";
1219724ba675SRob Herring			resets = <&ccu RST_BUS_TCON_TV1>;
1220724ba675SRob Herring			reset-names = "lcd";
1221724ba675SRob Herring			status = "disabled";
1222724ba675SRob Herring
1223724ba675SRob Herring			ports {
1224724ba675SRob Herring				#address-cells = <1>;
1225724ba675SRob Herring				#size-cells = <0>;
1226724ba675SRob Herring
1227724ba675SRob Herring				tcon_tv1_in: port@0 {
1228724ba675SRob Herring					#address-cells = <1>;
1229724ba675SRob Herring					#size-cells = <0>;
1230724ba675SRob Herring					reg = <0>;
1231724ba675SRob Herring
1232724ba675SRob Herring					tcon_tv1_in_tcon_top_mixer0: endpoint@0 {
1233724ba675SRob Herring						reg = <0>;
1234724ba675SRob Herring						remote-endpoint = <&tcon_top_mixer0_out_tcon_tv1>;
1235724ba675SRob Herring					};
1236724ba675SRob Herring
1237724ba675SRob Herring					tcon_tv1_in_tcon_top_mixer1: endpoint@1 {
1238724ba675SRob Herring						reg = <1>;
1239724ba675SRob Herring						remote-endpoint = <&tcon_top_mixer1_out_tcon_tv1>;
1240724ba675SRob Herring					};
1241724ba675SRob Herring				};
1242724ba675SRob Herring
1243724ba675SRob Herring				tcon_tv1_out: port@1 {
1244724ba675SRob Herring					#address-cells = <1>;
1245724ba675SRob Herring					#size-cells = <0>;
1246724ba675SRob Herring					reg = <1>;
1247724ba675SRob Herring
1248724ba675SRob Herring					tcon_tv1_out_tcon_top: endpoint@1 {
1249724ba675SRob Herring						reg = <1>;
1250724ba675SRob Herring						remote-endpoint = <&tcon_top_hdmi_in_tcon_tv1>;
1251724ba675SRob Herring					};
1252724ba675SRob Herring				};
1253724ba675SRob Herring			};
1254724ba675SRob Herring		};
1255724ba675SRob Herring
1256724ba675SRob Herring		gic: interrupt-controller@1c81000 {
1257724ba675SRob Herring			compatible = "arm,gic-400";
1258724ba675SRob Herring			reg = <0x01c81000 0x1000>,
1259724ba675SRob Herring			      <0x01c82000 0x2000>,
1260724ba675SRob Herring			      <0x01c84000 0x2000>,
1261724ba675SRob Herring			      <0x01c86000 0x2000>;
1262724ba675SRob Herring			interrupt-controller;
1263724ba675SRob Herring			#interrupt-cells = <3>;
1264724ba675SRob Herring			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
1265724ba675SRob Herring		};
1266724ba675SRob Herring
1267724ba675SRob Herring		hdmi: hdmi@1ee0000 {
1268724ba675SRob Herring			compatible = "allwinner,sun8i-r40-dw-hdmi",
1269724ba675SRob Herring				     "allwinner,sun8i-a83t-dw-hdmi";
1270724ba675SRob Herring			reg = <0x01ee0000 0x10000>;
1271724ba675SRob Herring			reg-io-width = <1>;
1272724ba675SRob Herring			interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
1273724ba675SRob Herring			clocks = <&ccu CLK_BUS_HDMI0>, <&ccu CLK_HDMI_SLOW>,
1274724ba675SRob Herring				 <&ccu CLK_HDMI>, <&rtc CLK_OSC32K>;
1275724ba675SRob Herring			clock-names = "iahb", "isfr", "tmds", "cec";
1276724ba675SRob Herring			resets = <&ccu RST_BUS_HDMI1>;
1277724ba675SRob Herring			reset-names = "ctrl";
1278724ba675SRob Herring			phys = <&hdmi_phy>;
1279724ba675SRob Herring			phy-names = "phy";
1280724ba675SRob Herring			status = "disabled";
1281724ba675SRob Herring
1282724ba675SRob Herring			ports {
1283724ba675SRob Herring				#address-cells = <1>;
1284724ba675SRob Herring				#size-cells = <0>;
1285724ba675SRob Herring
1286724ba675SRob Herring				hdmi_in: port@0 {
1287724ba675SRob Herring					reg = <0>;
1288724ba675SRob Herring
1289724ba675SRob Herring					hdmi_in_tcon_top: endpoint {
1290724ba675SRob Herring						remote-endpoint = <&tcon_top_hdmi_out_hdmi>;
1291724ba675SRob Herring					};
1292724ba675SRob Herring				};
1293724ba675SRob Herring
1294724ba675SRob Herring				hdmi_out: port@1 {
1295724ba675SRob Herring					reg = <1>;
1296724ba675SRob Herring				};
1297724ba675SRob Herring			};
1298724ba675SRob Herring		};
1299724ba675SRob Herring
1300724ba675SRob Herring		hdmi_phy: hdmi-phy@1ef0000 {
1301724ba675SRob Herring			compatible = "allwinner,sun8i-r40-hdmi-phy";
1302724ba675SRob Herring			reg = <0x01ef0000 0x10000>;
1303724ba675SRob Herring			clocks = <&ccu CLK_BUS_HDMI1>, <&ccu CLK_HDMI_SLOW>,
1304724ba675SRob Herring				 <&ccu CLK_PLL_VIDEO0>, <&ccu CLK_PLL_VIDEO1>;
1305724ba675SRob Herring			clock-names = "bus", "mod", "pll-0", "pll-1";
1306724ba675SRob Herring			resets = <&ccu RST_BUS_HDMI0>;
1307724ba675SRob Herring			reset-names = "phy";
1308724ba675SRob Herring			#phy-cells = <0>;
1309724ba675SRob Herring		};
1310724ba675SRob Herring	};
1311724ba675SRob Herring
1312724ba675SRob Herring	pmu {
1313724ba675SRob Herring		compatible = "arm,cortex-a7-pmu";
1314724ba675SRob Herring		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
1315724ba675SRob Herring			     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
1316724ba675SRob Herring			     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
1317724ba675SRob Herring			     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
1318724ba675SRob Herring		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
1319724ba675SRob Herring	};
1320724ba675SRob Herring
1321724ba675SRob Herring	timer {
1322724ba675SRob Herring		compatible = "arm,armv7-timer";
1323724ba675SRob Herring		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1324724ba675SRob Herring			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1325724ba675SRob Herring			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1326724ba675SRob Herring			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
1327724ba675SRob Herring	};
1328724ba675SRob Herring};
1329