xref: /freebsd/sys/contrib/device-tree/src/arm/allwinner/sun8i-a23-a33.dtsi (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
1f126890aSEmmanuel Vadot/*
2f126890aSEmmanuel Vadot * Copyright 2014 Chen-Yu Tsai
3f126890aSEmmanuel Vadot *
4f126890aSEmmanuel Vadot * Chen-Yu Tsai <wens@csie.org>
5f126890aSEmmanuel Vadot *
6f126890aSEmmanuel Vadot * This file is dual-licensed: you can use it either under the terms
7f126890aSEmmanuel Vadot * of the GPL or the X11 license, at your option. Note that this dual
8f126890aSEmmanuel Vadot * licensing only applies to this file, and not this project as a
9f126890aSEmmanuel Vadot * whole.
10f126890aSEmmanuel Vadot *
11f126890aSEmmanuel Vadot *  a) This file is free software; you can redistribute it and/or
12f126890aSEmmanuel Vadot *     modify it under the terms of the GNU General Public License as
13f126890aSEmmanuel Vadot *     published by the Free Software Foundation; either version 2 of the
14f126890aSEmmanuel Vadot *     License, or (at your option) any later version.
15f126890aSEmmanuel Vadot *
16f126890aSEmmanuel Vadot *     This file is distributed in the hope that it will be useful,
17f126890aSEmmanuel Vadot *     but WITHOUT ANY WARRANTY; without even the implied warranty of
18f126890aSEmmanuel Vadot *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19f126890aSEmmanuel Vadot *     GNU General Public License for more details.
20f126890aSEmmanuel Vadot *
21f126890aSEmmanuel Vadot * Or, alternatively,
22f126890aSEmmanuel Vadot *
23f126890aSEmmanuel Vadot *  b) Permission is hereby granted, free of charge, to any person
24f126890aSEmmanuel Vadot *     obtaining a copy of this software and associated documentation
25f126890aSEmmanuel Vadot *     files (the "Software"), to deal in the Software without
26f126890aSEmmanuel Vadot *     restriction, including without limitation the rights to use,
27f126890aSEmmanuel Vadot *     copy, modify, merge, publish, distribute, sublicense, and/or
28f126890aSEmmanuel Vadot *     sell copies of the Software, and to permit persons to whom the
29f126890aSEmmanuel Vadot *     Software is furnished to do so, subject to the following
30f126890aSEmmanuel Vadot *     conditions:
31f126890aSEmmanuel Vadot *
32f126890aSEmmanuel Vadot *     The above copyright notice and this permission notice shall be
33f126890aSEmmanuel Vadot *     included in all copies or substantial portions of the Software.
34f126890aSEmmanuel Vadot *
35f126890aSEmmanuel Vadot *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36f126890aSEmmanuel Vadot *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37f126890aSEmmanuel Vadot *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38f126890aSEmmanuel Vadot *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39f126890aSEmmanuel Vadot *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40f126890aSEmmanuel Vadot *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41f126890aSEmmanuel Vadot *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42f126890aSEmmanuel Vadot *     OTHER DEALINGS IN THE SOFTWARE.
43f126890aSEmmanuel Vadot */
44f126890aSEmmanuel Vadot
45f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
46f126890aSEmmanuel Vadot
47f126890aSEmmanuel Vadot#include <dt-bindings/clock/sun6i-rtc.h>
48f126890aSEmmanuel Vadot#include <dt-bindings/clock/sun8i-a23-a33-ccu.h>
49f126890aSEmmanuel Vadot#include <dt-bindings/reset/sun8i-a23-a33-ccu.h>
50f126890aSEmmanuel Vadot
51f126890aSEmmanuel Vadot/ {
52f126890aSEmmanuel Vadot	interrupt-parent = <&gic>;
53f126890aSEmmanuel Vadot	#address-cells = <1>;
54f126890aSEmmanuel Vadot	#size-cells = <1>;
55f126890aSEmmanuel Vadot
56f126890aSEmmanuel Vadot	chosen {
57f126890aSEmmanuel Vadot		#address-cells = <1>;
58f126890aSEmmanuel Vadot		#size-cells = <1>;
59f126890aSEmmanuel Vadot		ranges;
60f126890aSEmmanuel Vadot
61f126890aSEmmanuel Vadot		simplefb_lcd: framebuffer-lcd0 {
62f126890aSEmmanuel Vadot			compatible = "allwinner,simple-framebuffer",
63f126890aSEmmanuel Vadot				     "simple-framebuffer";
64f126890aSEmmanuel Vadot			allwinner,pipeline = "de_be0-lcd0";
65f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_LCD>, <&ccu CLK_BUS_DE_BE>,
66f126890aSEmmanuel Vadot				 <&ccu CLK_LCD_CH0>, <&ccu CLK_DE_BE>,
67f126890aSEmmanuel Vadot				 <&ccu CLK_DRAM_DE_BE>, <&ccu CLK_DRC>;
68f126890aSEmmanuel Vadot			status = "disabled";
69f126890aSEmmanuel Vadot		};
70f126890aSEmmanuel Vadot	};
71f126890aSEmmanuel Vadot
72f126890aSEmmanuel Vadot	de: display-engine {
73f126890aSEmmanuel Vadot		/* compatible gets set in SoC specific dtsi file */
74f126890aSEmmanuel Vadot		allwinner,pipelines = <&fe0>;
75f126890aSEmmanuel Vadot		status = "disabled";
76f126890aSEmmanuel Vadot	};
77f126890aSEmmanuel Vadot
78f126890aSEmmanuel Vadot	timer {
79f126890aSEmmanuel Vadot		compatible = "arm,armv7-timer";
80f126890aSEmmanuel Vadot		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
81f126890aSEmmanuel Vadot			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
82f126890aSEmmanuel Vadot			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
83f126890aSEmmanuel Vadot			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
84f126890aSEmmanuel Vadot		clock-frequency = <24000000>;
85f126890aSEmmanuel Vadot		arm,cpu-registers-not-fw-configured;
86f126890aSEmmanuel Vadot	};
87f126890aSEmmanuel Vadot
88f126890aSEmmanuel Vadot	cpus {
89f126890aSEmmanuel Vadot		enable-method = "allwinner,sun8i-a23";
90f126890aSEmmanuel Vadot		#address-cells = <1>;
91f126890aSEmmanuel Vadot		#size-cells = <0>;
92f126890aSEmmanuel Vadot
93f126890aSEmmanuel Vadot		cpu0: cpu@0 {
94f126890aSEmmanuel Vadot			compatible = "arm,cortex-a7";
95f126890aSEmmanuel Vadot			device_type = "cpu";
96f126890aSEmmanuel Vadot			reg = <0>;
97f126890aSEmmanuel Vadot		};
98f126890aSEmmanuel Vadot
99f126890aSEmmanuel Vadot		cpu@1 {
100f126890aSEmmanuel Vadot			compatible = "arm,cortex-a7";
101f126890aSEmmanuel Vadot			device_type = "cpu";
102f126890aSEmmanuel Vadot			reg = <1>;
103f126890aSEmmanuel Vadot		};
104f126890aSEmmanuel Vadot	};
105f126890aSEmmanuel Vadot
106f126890aSEmmanuel Vadot	clocks {
107f126890aSEmmanuel Vadot		#address-cells = <1>;
108f126890aSEmmanuel Vadot		#size-cells = <1>;
109f126890aSEmmanuel Vadot		ranges;
110f126890aSEmmanuel Vadot
111*7d0873ebSEmmanuel Vadot		osc24M: osc24M-clk {
112f126890aSEmmanuel Vadot			#clock-cells = <0>;
113f126890aSEmmanuel Vadot			compatible = "fixed-clock";
114f126890aSEmmanuel Vadot			clock-frequency = <24000000>;
115f126890aSEmmanuel Vadot			clock-accuracy = <50000>;
116f126890aSEmmanuel Vadot			clock-output-names = "osc24M";
117f126890aSEmmanuel Vadot		};
118f126890aSEmmanuel Vadot
119*7d0873ebSEmmanuel Vadot		ext_osc32k: ext-osc32k-clk {
120f126890aSEmmanuel Vadot			#clock-cells = <0>;
121f126890aSEmmanuel Vadot			compatible = "fixed-clock";
122f126890aSEmmanuel Vadot			clock-frequency = <32768>;
123f126890aSEmmanuel Vadot			clock-accuracy = <50000>;
124f126890aSEmmanuel Vadot			clock-output-names = "ext-osc32k";
125f126890aSEmmanuel Vadot		};
126f126890aSEmmanuel Vadot	};
127f126890aSEmmanuel Vadot
128f126890aSEmmanuel Vadot	soc {
129f126890aSEmmanuel Vadot		compatible = "simple-bus";
130f126890aSEmmanuel Vadot		#address-cells = <1>;
131f126890aSEmmanuel Vadot		#size-cells = <1>;
132f126890aSEmmanuel Vadot		ranges;
133f126890aSEmmanuel Vadot
134f126890aSEmmanuel Vadot		system-control@1c00000 {
135f126890aSEmmanuel Vadot			compatible = "allwinner,sun8i-a23-system-control";
136f126890aSEmmanuel Vadot			reg = <0x01c00000 0x30>;
137f126890aSEmmanuel Vadot			#address-cells = <1>;
138f126890aSEmmanuel Vadot			#size-cells = <1>;
139f126890aSEmmanuel Vadot			ranges;
140f126890aSEmmanuel Vadot
141f126890aSEmmanuel Vadot			sram_c: sram@1d00000 {
142f126890aSEmmanuel Vadot				compatible = "mmio-sram";
143f126890aSEmmanuel Vadot				reg = <0x01d00000 0x80000>;
144f126890aSEmmanuel Vadot				#address-cells = <1>;
145f126890aSEmmanuel Vadot				#size-cells = <1>;
146f126890aSEmmanuel Vadot				ranges = <0 0x01d00000 0x80000>;
147f126890aSEmmanuel Vadot
148f126890aSEmmanuel Vadot				ve_sram: sram-section@0 {
149f126890aSEmmanuel Vadot					compatible = "allwinner,sun8i-a23-sram-c1",
150f126890aSEmmanuel Vadot						     "allwinner,sun4i-a10-sram-c1";
151f126890aSEmmanuel Vadot					reg = <0x000000 0x80000>;
152f126890aSEmmanuel Vadot				};
153f126890aSEmmanuel Vadot			};
154f126890aSEmmanuel Vadot		};
155f126890aSEmmanuel Vadot
156f126890aSEmmanuel Vadot		dma: dma-controller@1c02000 {
157f126890aSEmmanuel Vadot			compatible = "allwinner,sun8i-a23-dma";
158f126890aSEmmanuel Vadot			reg = <0x01c02000 0x1000>;
159f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
160f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_DMA>;
161f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_DMA>;
162f126890aSEmmanuel Vadot			#dma-cells = <1>;
163f126890aSEmmanuel Vadot		};
164f126890aSEmmanuel Vadot
165f126890aSEmmanuel Vadot		nfc: nand-controller@1c03000 {
166f126890aSEmmanuel Vadot			compatible = "allwinner,sun8i-a23-nand-controller";
167f126890aSEmmanuel Vadot			reg = <0x01c03000 0x1000>;
168f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
169f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_NAND>, <&ccu CLK_NAND>;
170f126890aSEmmanuel Vadot			clock-names = "ahb", "mod";
171f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_NAND>;
172f126890aSEmmanuel Vadot			reset-names = "ahb";
173f126890aSEmmanuel Vadot			dmas = <&dma 5>;
174f126890aSEmmanuel Vadot			dma-names = "rxtx";
175f126890aSEmmanuel Vadot			pinctrl-names = "default";
176f126890aSEmmanuel Vadot			pinctrl-0 = <&nand_pins &nand_cs0_pin &nand_rb0_pin>;
177f126890aSEmmanuel Vadot			status = "disabled";
178f126890aSEmmanuel Vadot			#address-cells = <1>;
179f126890aSEmmanuel Vadot			#size-cells = <0>;
180f126890aSEmmanuel Vadot		};
181f126890aSEmmanuel Vadot
182f126890aSEmmanuel Vadot		tcon0: lcd-controller@1c0c000 {
183f126890aSEmmanuel Vadot			/* compatible gets set in SoC specific dtsi file */
184f126890aSEmmanuel Vadot			reg = <0x01c0c000 0x1000>;
185f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
186f126890aSEmmanuel Vadot			dmas = <&dma 12>;
187f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_LCD>,
188f126890aSEmmanuel Vadot				 <&ccu CLK_LCD_CH0>,
189f126890aSEmmanuel Vadot				 <&ccu 13>;
190f126890aSEmmanuel Vadot			clock-names = "ahb",
191f126890aSEmmanuel Vadot				      "tcon-ch0",
192f126890aSEmmanuel Vadot				      "lvds-alt";
193f126890aSEmmanuel Vadot			clock-output-names = "tcon-data-clock";
194f126890aSEmmanuel Vadot			#clock-cells = <0>;
195f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_LCD>,
196f126890aSEmmanuel Vadot				 <&ccu RST_BUS_LVDS>;
197f126890aSEmmanuel Vadot			reset-names = "lcd",
198f126890aSEmmanuel Vadot				      "lvds";
199f126890aSEmmanuel Vadot			status = "disabled";
200f126890aSEmmanuel Vadot
201f126890aSEmmanuel Vadot			ports {
202f126890aSEmmanuel Vadot				#address-cells = <1>;
203f126890aSEmmanuel Vadot				#size-cells = <0>;
204f126890aSEmmanuel Vadot
205f126890aSEmmanuel Vadot				tcon0_in: port@0 {
206f126890aSEmmanuel Vadot					reg = <0>;
207f126890aSEmmanuel Vadot
208f126890aSEmmanuel Vadot					tcon0_in_drc0: endpoint {
209f126890aSEmmanuel Vadot						remote-endpoint = <&drc0_out_tcon0>;
210f126890aSEmmanuel Vadot					};
211f126890aSEmmanuel Vadot				};
212f126890aSEmmanuel Vadot
213f126890aSEmmanuel Vadot				tcon0_out: port@1 {
214f126890aSEmmanuel Vadot					reg = <1>;
215f126890aSEmmanuel Vadot				};
216f126890aSEmmanuel Vadot			};
217f126890aSEmmanuel Vadot		};
218f126890aSEmmanuel Vadot
219f126890aSEmmanuel Vadot		mmc0: mmc@1c0f000 {
220f126890aSEmmanuel Vadot			compatible = "allwinner,sun7i-a20-mmc";
221f126890aSEmmanuel Vadot			reg = <0x01c0f000 0x1000>;
222f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_MMC0>,
223f126890aSEmmanuel Vadot				 <&ccu CLK_MMC0>,
224f126890aSEmmanuel Vadot				 <&ccu CLK_MMC0_OUTPUT>,
225f126890aSEmmanuel Vadot				 <&ccu CLK_MMC0_SAMPLE>;
226f126890aSEmmanuel Vadot			clock-names = "ahb",
227f126890aSEmmanuel Vadot				      "mmc",
228f126890aSEmmanuel Vadot				      "output",
229f126890aSEmmanuel Vadot				      "sample";
230f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_MMC0>;
231f126890aSEmmanuel Vadot			reset-names = "ahb";
232f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
233f126890aSEmmanuel Vadot			pinctrl-names = "default";
234f126890aSEmmanuel Vadot			pinctrl-0 = <&mmc0_pins>;
235f126890aSEmmanuel Vadot			status = "disabled";
236f126890aSEmmanuel Vadot			#address-cells = <1>;
237f126890aSEmmanuel Vadot			#size-cells = <0>;
238f126890aSEmmanuel Vadot		};
239f126890aSEmmanuel Vadot
240f126890aSEmmanuel Vadot		mmc1: mmc@1c10000 {
241f126890aSEmmanuel Vadot			compatible = "allwinner,sun7i-a20-mmc";
242f126890aSEmmanuel Vadot			reg = <0x01c10000 0x1000>;
243f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_MMC1>,
244f126890aSEmmanuel Vadot				 <&ccu CLK_MMC1>,
245f126890aSEmmanuel Vadot				 <&ccu CLK_MMC1_OUTPUT>,
246f126890aSEmmanuel Vadot				 <&ccu CLK_MMC1_SAMPLE>;
247f126890aSEmmanuel Vadot			clock-names = "ahb",
248f126890aSEmmanuel Vadot				      "mmc",
249f126890aSEmmanuel Vadot				      "output",
250f126890aSEmmanuel Vadot				      "sample";
251f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_MMC1>;
252f126890aSEmmanuel Vadot			reset-names = "ahb";
253f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
254f126890aSEmmanuel Vadot			status = "disabled";
255f126890aSEmmanuel Vadot			#address-cells = <1>;
256f126890aSEmmanuel Vadot			#size-cells = <0>;
257f126890aSEmmanuel Vadot		};
258f126890aSEmmanuel Vadot
259f126890aSEmmanuel Vadot		mmc2: mmc@1c11000 {
260f126890aSEmmanuel Vadot			compatible = "allwinner,sun7i-a20-mmc";
261f126890aSEmmanuel Vadot			reg = <0x01c11000 0x1000>;
262f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_MMC2>,
263f126890aSEmmanuel Vadot				 <&ccu CLK_MMC2>,
264f126890aSEmmanuel Vadot				 <&ccu CLK_MMC2_OUTPUT>,
265f126890aSEmmanuel Vadot				 <&ccu CLK_MMC2_SAMPLE>;
266f126890aSEmmanuel Vadot			clock-names = "ahb",
267f126890aSEmmanuel Vadot				      "mmc",
268f126890aSEmmanuel Vadot				      "output",
269f126890aSEmmanuel Vadot				      "sample";
270f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_MMC2>;
271f126890aSEmmanuel Vadot			reset-names = "ahb";
272f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
273f126890aSEmmanuel Vadot			status = "disabled";
274f126890aSEmmanuel Vadot			#address-cells = <1>;
275f126890aSEmmanuel Vadot			#size-cells = <0>;
276f126890aSEmmanuel Vadot		};
277f126890aSEmmanuel Vadot
278f126890aSEmmanuel Vadot		usb_otg: usb@1c19000 {
279f126890aSEmmanuel Vadot			/* compatible gets set in SoC specific dtsi file */
280f126890aSEmmanuel Vadot			reg = <0x01c19000 0x0400>;
281f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_OTG>;
282f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_OTG>;
283f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
284f126890aSEmmanuel Vadot			interrupt-names = "mc";
285f126890aSEmmanuel Vadot			phys = <&usbphy 0>;
286f126890aSEmmanuel Vadot			phy-names = "usb";
287f126890aSEmmanuel Vadot			extcon = <&usbphy 0>;
288f126890aSEmmanuel Vadot			dr_mode = "otg";
289f126890aSEmmanuel Vadot			status = "disabled";
290f126890aSEmmanuel Vadot		};
291f126890aSEmmanuel Vadot
292f126890aSEmmanuel Vadot		usbphy: phy@1c19400 {
293f126890aSEmmanuel Vadot			/*
294f126890aSEmmanuel Vadot			 * compatible and address regions get set in
295f126890aSEmmanuel Vadot			 * SoC specific dtsi file
296f126890aSEmmanuel Vadot			 */
297f126890aSEmmanuel Vadot			clocks = <&ccu CLK_USB_PHY0>,
298f126890aSEmmanuel Vadot				 <&ccu CLK_USB_PHY1>;
299f126890aSEmmanuel Vadot			clock-names = "usb0_phy",
300f126890aSEmmanuel Vadot				      "usb1_phy";
301f126890aSEmmanuel Vadot			resets = <&ccu RST_USB_PHY0>,
302f126890aSEmmanuel Vadot				 <&ccu RST_USB_PHY1>;
303f126890aSEmmanuel Vadot			reset-names = "usb0_reset",
304f126890aSEmmanuel Vadot				      "usb1_reset";
305f126890aSEmmanuel Vadot			status = "disabled";
306f126890aSEmmanuel Vadot			#phy-cells = <1>;
307f126890aSEmmanuel Vadot		};
308f126890aSEmmanuel Vadot
309f126890aSEmmanuel Vadot		ehci0: usb@1c1a000 {
310f126890aSEmmanuel Vadot			compatible = "allwinner,sun8i-a23-ehci", "generic-ehci";
311f126890aSEmmanuel Vadot			reg = <0x01c1a000 0x100>;
312f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
313f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_EHCI>;
314f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_EHCI>;
315f126890aSEmmanuel Vadot			phys = <&usbphy 1>;
316f126890aSEmmanuel Vadot			phy-names = "usb";
317f126890aSEmmanuel Vadot			status = "disabled";
318f126890aSEmmanuel Vadot		};
319f126890aSEmmanuel Vadot
320f126890aSEmmanuel Vadot		ohci0: usb@1c1a400 {
321f126890aSEmmanuel Vadot			compatible = "allwinner,sun8i-a23-ohci", "generic-ohci";
322f126890aSEmmanuel Vadot			reg = <0x01c1a400 0x100>;
323f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
324f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_OHCI>, <&ccu CLK_USB_OHCI>;
325f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_OHCI>;
326f126890aSEmmanuel Vadot			phys = <&usbphy 1>;
327f126890aSEmmanuel Vadot			phy-names = "usb";
328f126890aSEmmanuel Vadot			status = "disabled";
329f126890aSEmmanuel Vadot		};
330f126890aSEmmanuel Vadot
331f126890aSEmmanuel Vadot		ccu: clock@1c20000 {
332f126890aSEmmanuel Vadot			reg = <0x01c20000 0x400>;
333f126890aSEmmanuel Vadot			clocks = <&osc24M>, <&rtc CLK_OSC32K>;
334f126890aSEmmanuel Vadot			clock-names = "hosc", "losc";
335f126890aSEmmanuel Vadot			#clock-cells = <1>;
336f126890aSEmmanuel Vadot			#reset-cells = <1>;
337f126890aSEmmanuel Vadot		};
338f126890aSEmmanuel Vadot
339f126890aSEmmanuel Vadot		pio: pinctrl@1c20800 {
340f126890aSEmmanuel Vadot			/* compatible gets set in SoC specific dtsi file */
341f126890aSEmmanuel Vadot			reg = <0x01c20800 0x400>;
342f126890aSEmmanuel Vadot			interrupt-parent = <&r_intc>;
343f126890aSEmmanuel Vadot			/* interrupts get set in SoC specific dtsi file */
344f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_PIO>, <&osc24M>,
345f126890aSEmmanuel Vadot				 <&rtc CLK_OSC32K>;
346f126890aSEmmanuel Vadot			clock-names = "apb", "hosc", "losc";
347f126890aSEmmanuel Vadot			gpio-controller;
348f126890aSEmmanuel Vadot			interrupt-controller;
349f126890aSEmmanuel Vadot			#interrupt-cells = <3>;
350f126890aSEmmanuel Vadot			#gpio-cells = <3>;
351f126890aSEmmanuel Vadot
352f126890aSEmmanuel Vadot			i2c0_pins: i2c0-pins {
353f126890aSEmmanuel Vadot				pins = "PH2", "PH3";
354f126890aSEmmanuel Vadot				function = "i2c0";
355f126890aSEmmanuel Vadot			};
356f126890aSEmmanuel Vadot
357f126890aSEmmanuel Vadot			i2c1_pins: i2c1-pins {
358f126890aSEmmanuel Vadot				pins = "PH4", "PH5";
359f126890aSEmmanuel Vadot				function = "i2c1";
360f126890aSEmmanuel Vadot			};
361f126890aSEmmanuel Vadot
362f126890aSEmmanuel Vadot			i2c2_pins: i2c2-pins {
363f126890aSEmmanuel Vadot				pins = "PE12", "PE13";
364f126890aSEmmanuel Vadot				function = "i2c2";
365f126890aSEmmanuel Vadot			};
366f126890aSEmmanuel Vadot
367f126890aSEmmanuel Vadot			lcd_rgb666_pins: lcd-rgb666-pins {
368f126890aSEmmanuel Vadot				pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7",
369f126890aSEmmanuel Vadot				       "PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
370f126890aSEmmanuel Vadot				       "PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
371f126890aSEmmanuel Vadot				       "PD24", "PD25", "PD26", "PD27";
372f126890aSEmmanuel Vadot				function = "lcd0";
373f126890aSEmmanuel Vadot			};
374f126890aSEmmanuel Vadot
375f126890aSEmmanuel Vadot			mmc0_pins: mmc0-pins {
376f126890aSEmmanuel Vadot				pins = "PF0", "PF1", "PF2",
377f126890aSEmmanuel Vadot				       "PF3", "PF4", "PF5";
378f126890aSEmmanuel Vadot				function = "mmc0";
379f126890aSEmmanuel Vadot				drive-strength = <30>;
380f126890aSEmmanuel Vadot				bias-pull-up;
381f126890aSEmmanuel Vadot			};
382f126890aSEmmanuel Vadot
383f126890aSEmmanuel Vadot			mmc1_pg_pins: mmc1-pg-pins {
384f126890aSEmmanuel Vadot				pins = "PG0", "PG1", "PG2",
385f126890aSEmmanuel Vadot				       "PG3", "PG4", "PG5";
386f126890aSEmmanuel Vadot				function = "mmc1";
387f126890aSEmmanuel Vadot				drive-strength = <30>;
388f126890aSEmmanuel Vadot				bias-pull-up;
389f126890aSEmmanuel Vadot			};
390f126890aSEmmanuel Vadot
391f126890aSEmmanuel Vadot			mmc2_8bit_pins: mmc2-8bit-pins {
392f126890aSEmmanuel Vadot				pins = "PC5", "PC6", "PC8",
393f126890aSEmmanuel Vadot				       "PC9", "PC10", "PC11",
394f126890aSEmmanuel Vadot				       "PC12", "PC13", "PC14",
395f126890aSEmmanuel Vadot				       "PC15", "PC16";
396f126890aSEmmanuel Vadot				function = "mmc2";
397f126890aSEmmanuel Vadot				drive-strength = <30>;
398f126890aSEmmanuel Vadot				bias-pull-up;
399f126890aSEmmanuel Vadot			};
400f126890aSEmmanuel Vadot
401f126890aSEmmanuel Vadot			nand_pins: nand-pins {
402f126890aSEmmanuel Vadot				pins = "PC0", "PC1", "PC2", "PC5",
403f126890aSEmmanuel Vadot				       "PC8", "PC9", "PC10", "PC11",
404f126890aSEmmanuel Vadot				       "PC12", "PC13", "PC14", "PC15";
405f126890aSEmmanuel Vadot				function = "nand0";
406f126890aSEmmanuel Vadot			};
407f126890aSEmmanuel Vadot
408f126890aSEmmanuel Vadot			nand_cs0_pin: nand-cs0-pin {
409f126890aSEmmanuel Vadot				pins = "PC4";
410f126890aSEmmanuel Vadot				function = "nand0";
411f126890aSEmmanuel Vadot				bias-pull-up;
412f126890aSEmmanuel Vadot			};
413f126890aSEmmanuel Vadot
414f126890aSEmmanuel Vadot			nand_cs1_pin: nand-cs1-pin {
415f126890aSEmmanuel Vadot				pins = "PC3";
416f126890aSEmmanuel Vadot				function = "nand0";
417f126890aSEmmanuel Vadot				bias-pull-up;
418f126890aSEmmanuel Vadot			};
419f126890aSEmmanuel Vadot
420f126890aSEmmanuel Vadot			nand_rb0_pin: nand-rb0-pin {
421f126890aSEmmanuel Vadot				pins = "PC6";
422f126890aSEmmanuel Vadot				function = "nand0";
423f126890aSEmmanuel Vadot				bias-pull-up;
424f126890aSEmmanuel Vadot			};
425f126890aSEmmanuel Vadot
426f126890aSEmmanuel Vadot			nand_rb1_pin: nand-rb1-pin {
427f126890aSEmmanuel Vadot				pins = "PC7";
428f126890aSEmmanuel Vadot				function = "nand0";
429f126890aSEmmanuel Vadot				bias-pull-up;
430f126890aSEmmanuel Vadot			};
431f126890aSEmmanuel Vadot
432f126890aSEmmanuel Vadot			pwm0_pin: pwm0-pin {
433f126890aSEmmanuel Vadot				pins = "PH0";
434f126890aSEmmanuel Vadot				function = "pwm0";
435f126890aSEmmanuel Vadot			};
436f126890aSEmmanuel Vadot
437f126890aSEmmanuel Vadot			uart0_pf_pins: uart0-pf-pins {
438f126890aSEmmanuel Vadot				pins = "PF2", "PF4";
439f126890aSEmmanuel Vadot				function = "uart0";
440f126890aSEmmanuel Vadot			};
441f126890aSEmmanuel Vadot
442f126890aSEmmanuel Vadot			uart1_pg_pins: uart1-pg-pins {
443f126890aSEmmanuel Vadot				pins = "PG6", "PG7";
444f126890aSEmmanuel Vadot				function = "uart1";
445f126890aSEmmanuel Vadot			};
446f126890aSEmmanuel Vadot
447f126890aSEmmanuel Vadot			uart1_cts_rts_pg_pins: uart1-cts-rts-pg-pins {
448f126890aSEmmanuel Vadot				pins = "PG8", "PG9";
449f126890aSEmmanuel Vadot				function = "uart1";
450f126890aSEmmanuel Vadot			};
451f126890aSEmmanuel Vadot		};
452f126890aSEmmanuel Vadot
453f126890aSEmmanuel Vadot		timer@1c20c00 {
454f126890aSEmmanuel Vadot			compatible = "allwinner,sun8i-a23-timer";
455f126890aSEmmanuel Vadot			reg = <0x01c20c00 0xa0>;
456f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
457f126890aSEmmanuel Vadot				     <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
458f126890aSEmmanuel Vadot			clocks = <&osc24M>;
459f126890aSEmmanuel Vadot		};
460f126890aSEmmanuel Vadot
461f126890aSEmmanuel Vadot		wdt0: watchdog@1c20ca0 {
462f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-wdt";
463f126890aSEmmanuel Vadot			reg = <0x01c20ca0 0x20>;
464f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
465f126890aSEmmanuel Vadot			clocks = <&osc24M>;
466f126890aSEmmanuel Vadot		};
467f126890aSEmmanuel Vadot
468f126890aSEmmanuel Vadot		pwm: pwm@1c21400 {
469f126890aSEmmanuel Vadot			compatible = "allwinner,sun7i-a20-pwm";
470f126890aSEmmanuel Vadot			reg = <0x01c21400 0xc>;
471f126890aSEmmanuel Vadot			clocks = <&osc24M>;
472f126890aSEmmanuel Vadot			#pwm-cells = <3>;
473f126890aSEmmanuel Vadot			status = "disabled";
474f126890aSEmmanuel Vadot		};
475f126890aSEmmanuel Vadot
476f126890aSEmmanuel Vadot		lradc: lradc@1c22800 {
477f126890aSEmmanuel Vadot			compatible = "allwinner,sun4i-a10-lradc-keys";
478f126890aSEmmanuel Vadot			reg = <0x01c22800 0x100>;
479f126890aSEmmanuel Vadot			interrupt-parent = <&r_intc>;
480f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
481f126890aSEmmanuel Vadot			status = "disabled";
482f126890aSEmmanuel Vadot		};
483f126890aSEmmanuel Vadot
484f126890aSEmmanuel Vadot		uart0: serial@1c28000 {
485f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-uart";
486f126890aSEmmanuel Vadot			reg = <0x01c28000 0x400>;
487f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
488f126890aSEmmanuel Vadot			reg-shift = <2>;
489f126890aSEmmanuel Vadot			reg-io-width = <4>;
490f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_UART0>;
491f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_UART0>;
492f126890aSEmmanuel Vadot			dmas = <&dma 6>, <&dma 6>;
493f126890aSEmmanuel Vadot			dma-names = "tx", "rx";
494f126890aSEmmanuel Vadot			status = "disabled";
495f126890aSEmmanuel Vadot		};
496f126890aSEmmanuel Vadot
497f126890aSEmmanuel Vadot		uart1: serial@1c28400 {
498f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-uart";
499f126890aSEmmanuel Vadot			reg = <0x01c28400 0x400>;
500f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
501f126890aSEmmanuel Vadot			reg-shift = <2>;
502f126890aSEmmanuel Vadot			reg-io-width = <4>;
503f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_UART1>;
504f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_UART1>;
505f126890aSEmmanuel Vadot			dmas = <&dma 7>, <&dma 7>;
506f126890aSEmmanuel Vadot			dma-names = "tx", "rx";
507f126890aSEmmanuel Vadot			status = "disabled";
508f126890aSEmmanuel Vadot		};
509f126890aSEmmanuel Vadot
510f126890aSEmmanuel Vadot		uart2: serial@1c28800 {
511f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-uart";
512f126890aSEmmanuel Vadot			reg = <0x01c28800 0x400>;
513f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
514f126890aSEmmanuel Vadot			reg-shift = <2>;
515f126890aSEmmanuel Vadot			reg-io-width = <4>;
516f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_UART2>;
517f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_UART2>;
518f126890aSEmmanuel Vadot			dmas = <&dma 8>, <&dma 8>;
519f126890aSEmmanuel Vadot			dma-names = "tx", "rx";
520f126890aSEmmanuel Vadot			status = "disabled";
521f126890aSEmmanuel Vadot		};
522f126890aSEmmanuel Vadot
523f126890aSEmmanuel Vadot		uart3: serial@1c28c00 {
524f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-uart";
525f126890aSEmmanuel Vadot			reg = <0x01c28c00 0x400>;
526f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
527f126890aSEmmanuel Vadot			reg-shift = <2>;
528f126890aSEmmanuel Vadot			reg-io-width = <4>;
529f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_UART3>;
530f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_UART3>;
531f126890aSEmmanuel Vadot			dmas = <&dma 9>, <&dma 9>;
532f126890aSEmmanuel Vadot			dma-names = "tx", "rx";
533f126890aSEmmanuel Vadot			status = "disabled";
534f126890aSEmmanuel Vadot		};
535f126890aSEmmanuel Vadot
536f126890aSEmmanuel Vadot		uart4: serial@1c29000 {
537f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-uart";
538f126890aSEmmanuel Vadot			reg = <0x01c29000 0x400>;
539f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
540f126890aSEmmanuel Vadot			reg-shift = <2>;
541f126890aSEmmanuel Vadot			reg-io-width = <4>;
542f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_UART4>;
543f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_UART4>;
544f126890aSEmmanuel Vadot			dmas = <&dma 10>, <&dma 10>;
545f126890aSEmmanuel Vadot			dma-names = "tx", "rx";
546f126890aSEmmanuel Vadot			status = "disabled";
547f126890aSEmmanuel Vadot		};
548f126890aSEmmanuel Vadot
549f126890aSEmmanuel Vadot		i2c0: i2c@1c2ac00 {
550f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-i2c";
551f126890aSEmmanuel Vadot			reg = <0x01c2ac00 0x400>;
552f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
553f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_I2C0>;
554f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_I2C0>;
555f126890aSEmmanuel Vadot			pinctrl-names = "default";
556f126890aSEmmanuel Vadot			pinctrl-0 = <&i2c0_pins>;
557f126890aSEmmanuel Vadot			status = "disabled";
558f126890aSEmmanuel Vadot			#address-cells = <1>;
559f126890aSEmmanuel Vadot			#size-cells = <0>;
560f126890aSEmmanuel Vadot		};
561f126890aSEmmanuel Vadot
562f126890aSEmmanuel Vadot		i2c1: i2c@1c2b000 {
563f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-i2c";
564f126890aSEmmanuel Vadot			reg = <0x01c2b000 0x400>;
565f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
566f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_I2C1>;
567f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_I2C1>;
568f126890aSEmmanuel Vadot			pinctrl-names = "default";
569f126890aSEmmanuel Vadot			pinctrl-0 = <&i2c1_pins>;
570f126890aSEmmanuel Vadot			status = "disabled";
571f126890aSEmmanuel Vadot			#address-cells = <1>;
572f126890aSEmmanuel Vadot			#size-cells = <0>;
573f126890aSEmmanuel Vadot		};
574f126890aSEmmanuel Vadot
575f126890aSEmmanuel Vadot		i2c2: i2c@1c2b400 {
576f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-i2c";
577f126890aSEmmanuel Vadot			reg = <0x01c2b400 0x400>;
578f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
579f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_I2C2>;
580f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_I2C2>;
581f126890aSEmmanuel Vadot			pinctrl-names = "default";
582f126890aSEmmanuel Vadot			pinctrl-0 = <&i2c2_pins>;
583f126890aSEmmanuel Vadot			status = "disabled";
584f126890aSEmmanuel Vadot			#address-cells = <1>;
585f126890aSEmmanuel Vadot			#size-cells = <0>;
586f126890aSEmmanuel Vadot		};
587f126890aSEmmanuel Vadot
588f126890aSEmmanuel Vadot		mali: gpu@1c40000 {
589f126890aSEmmanuel Vadot			compatible = "allwinner,sun8i-a23-mali",
590f126890aSEmmanuel Vadot				     "allwinner,sun7i-a20-mali", "arm,mali-400";
591f126890aSEmmanuel Vadot			reg = <0x01c40000 0x10000>;
592f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
593f126890aSEmmanuel Vadot				     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
594f126890aSEmmanuel Vadot				     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
595f126890aSEmmanuel Vadot				     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
596f126890aSEmmanuel Vadot				     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
597f126890aSEmmanuel Vadot				     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
598f126890aSEmmanuel Vadot				     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
599f126890aSEmmanuel Vadot			interrupt-names = "gp",
600f126890aSEmmanuel Vadot					  "gpmmu",
601f126890aSEmmanuel Vadot					  "pp0",
602f126890aSEmmanuel Vadot					  "ppmmu0",
603f126890aSEmmanuel Vadot					  "pp1",
604f126890aSEmmanuel Vadot					  "ppmmu1",
605f126890aSEmmanuel Vadot					  "pmu";
606f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
607f126890aSEmmanuel Vadot			clock-names = "bus", "core";
608f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_GPU>;
609f126890aSEmmanuel Vadot			#cooling-cells = <2>;
610f126890aSEmmanuel Vadot
611f126890aSEmmanuel Vadot			assigned-clocks = <&ccu CLK_GPU>;
612f126890aSEmmanuel Vadot			assigned-clock-rates = <384000000>;
613f126890aSEmmanuel Vadot		};
614f126890aSEmmanuel Vadot
615f126890aSEmmanuel Vadot		gic: interrupt-controller@1c81000 {
616f126890aSEmmanuel Vadot			compatible = "arm,gic-400";
617f126890aSEmmanuel Vadot			reg = <0x01c81000 0x1000>,
618f126890aSEmmanuel Vadot			      <0x01c82000 0x2000>,
619f126890aSEmmanuel Vadot			      <0x01c84000 0x2000>,
620f126890aSEmmanuel Vadot			      <0x01c86000 0x2000>;
621f126890aSEmmanuel Vadot			interrupt-controller;
622f126890aSEmmanuel Vadot			#interrupt-cells = <3>;
623f126890aSEmmanuel Vadot			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
624f126890aSEmmanuel Vadot		};
625f126890aSEmmanuel Vadot
626f126890aSEmmanuel Vadot		fe0: display-frontend@1e00000 {
627f126890aSEmmanuel Vadot			/* compatible gets set in SoC specific dtsi file */
628f126890aSEmmanuel Vadot			reg = <0x01e00000 0x20000>;
629f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
630f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_DE_FE>, <&ccu CLK_DE_FE>,
631f126890aSEmmanuel Vadot				 <&ccu CLK_DRAM_DE_FE>;
632f126890aSEmmanuel Vadot			clock-names = "ahb", "mod",
633f126890aSEmmanuel Vadot				      "ram";
634f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_DE_FE>;
635f126890aSEmmanuel Vadot
636f126890aSEmmanuel Vadot			ports {
637f126890aSEmmanuel Vadot				#address-cells = <1>;
638f126890aSEmmanuel Vadot				#size-cells = <0>;
639f126890aSEmmanuel Vadot
640f126890aSEmmanuel Vadot				fe0_out: port@1 {
641f126890aSEmmanuel Vadot					reg = <1>;
642f126890aSEmmanuel Vadot
643f126890aSEmmanuel Vadot					fe0_out_be0: endpoint {
644f126890aSEmmanuel Vadot						remote-endpoint = <&be0_in_fe0>;
645f126890aSEmmanuel Vadot					};
646f126890aSEmmanuel Vadot				};
647f126890aSEmmanuel Vadot			};
648f126890aSEmmanuel Vadot		};
649f126890aSEmmanuel Vadot
650f126890aSEmmanuel Vadot		be0: display-backend@1e60000 {
651f126890aSEmmanuel Vadot			/* compatible gets set in SoC specific dtsi file */
652f126890aSEmmanuel Vadot			reg = <0x01e60000 0x10000>;
653f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
654f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_DE_BE>, <&ccu CLK_DE_BE>,
655f126890aSEmmanuel Vadot				 <&ccu CLK_DRAM_DE_BE>;
656f126890aSEmmanuel Vadot			clock-names = "ahb", "mod",
657f126890aSEmmanuel Vadot				      "ram";
658f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_DE_BE>;
659f126890aSEmmanuel Vadot
660f126890aSEmmanuel Vadot			ports {
661f126890aSEmmanuel Vadot				#address-cells = <1>;
662f126890aSEmmanuel Vadot				#size-cells = <0>;
663f126890aSEmmanuel Vadot
664f126890aSEmmanuel Vadot				be0_in: port@0 {
665f126890aSEmmanuel Vadot					reg = <0>;
666f126890aSEmmanuel Vadot
667f126890aSEmmanuel Vadot					be0_in_fe0: endpoint {
668f126890aSEmmanuel Vadot						remote-endpoint = <&fe0_out_be0>;
669f126890aSEmmanuel Vadot					};
670f126890aSEmmanuel Vadot				};
671f126890aSEmmanuel Vadot
672f126890aSEmmanuel Vadot				be0_out: port@1 {
673f126890aSEmmanuel Vadot					reg = <1>;
674f126890aSEmmanuel Vadot
675f126890aSEmmanuel Vadot					be0_out_drc0: endpoint {
676f126890aSEmmanuel Vadot						remote-endpoint = <&drc0_in_be0>;
677f126890aSEmmanuel Vadot					};
678f126890aSEmmanuel Vadot				};
679f126890aSEmmanuel Vadot			};
680f126890aSEmmanuel Vadot		};
681f126890aSEmmanuel Vadot
682f126890aSEmmanuel Vadot		drc0: drc@1e70000 {
683f126890aSEmmanuel Vadot			/* compatible gets set in SoC specific dtsi file */
684f126890aSEmmanuel Vadot			reg = <0x01e70000 0x10000>;
685f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
686f126890aSEmmanuel Vadot			clocks = <&ccu CLK_BUS_DRC>, <&ccu CLK_DRC>,
687f126890aSEmmanuel Vadot				 <&ccu CLK_DRAM_DRC>;
688f126890aSEmmanuel Vadot			clock-names = "ahb", "mod", "ram";
689f126890aSEmmanuel Vadot			resets = <&ccu RST_BUS_DRC>;
690f126890aSEmmanuel Vadot
691f126890aSEmmanuel Vadot			ports {
692f126890aSEmmanuel Vadot				#address-cells = <1>;
693f126890aSEmmanuel Vadot				#size-cells = <0>;
694f126890aSEmmanuel Vadot
695f126890aSEmmanuel Vadot				drc0_in: port@0 {
696f126890aSEmmanuel Vadot					reg = <0>;
697f126890aSEmmanuel Vadot
698f126890aSEmmanuel Vadot					drc0_in_be0: endpoint {
699f126890aSEmmanuel Vadot						remote-endpoint = <&be0_out_drc0>;
700f126890aSEmmanuel Vadot					};
701f126890aSEmmanuel Vadot				};
702f126890aSEmmanuel Vadot
703f126890aSEmmanuel Vadot				drc0_out: port@1 {
704f126890aSEmmanuel Vadot					reg = <1>;
705f126890aSEmmanuel Vadot
706f126890aSEmmanuel Vadot					drc0_out_tcon0: endpoint {
707f126890aSEmmanuel Vadot						remote-endpoint = <&tcon0_in_drc0>;
708f126890aSEmmanuel Vadot					};
709f126890aSEmmanuel Vadot				};
710f126890aSEmmanuel Vadot			};
711f126890aSEmmanuel Vadot		};
712f126890aSEmmanuel Vadot
713f126890aSEmmanuel Vadot		rtc: rtc@1f00000 {
714f126890aSEmmanuel Vadot			compatible = "allwinner,sun8i-a23-rtc";
715f126890aSEmmanuel Vadot			reg = <0x01f00000 0x400>;
716f126890aSEmmanuel Vadot			interrupt-parent = <&r_intc>;
717f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
718f126890aSEmmanuel Vadot				     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
719f126890aSEmmanuel Vadot			clock-output-names = "osc32k", "osc32k-out";
720f126890aSEmmanuel Vadot			clocks = <&ext_osc32k>;
721f126890aSEmmanuel Vadot			#clock-cells = <1>;
722f126890aSEmmanuel Vadot		};
723f126890aSEmmanuel Vadot
724f126890aSEmmanuel Vadot		r_intc: interrupt-controller@1f00c00 {
725f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-r-intc";
726f126890aSEmmanuel Vadot			interrupt-controller;
727f126890aSEmmanuel Vadot			#interrupt-cells = <3>;
728f126890aSEmmanuel Vadot			reg = <0x01f00c00 0x400>;
729f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
730f126890aSEmmanuel Vadot		};
731f126890aSEmmanuel Vadot
732f126890aSEmmanuel Vadot		prcm@1f01400 {
733f126890aSEmmanuel Vadot			compatible = "allwinner,sun8i-a23-prcm";
734f126890aSEmmanuel Vadot			reg = <0x01f01400 0x200>;
735f126890aSEmmanuel Vadot
736*7d0873ebSEmmanuel Vadot			ar100: ar100-clk {
737f126890aSEmmanuel Vadot				compatible = "fixed-factor-clock";
738f126890aSEmmanuel Vadot				#clock-cells = <0>;
739f126890aSEmmanuel Vadot				clock-div = <1>;
740f126890aSEmmanuel Vadot				clock-mult = <1>;
741f126890aSEmmanuel Vadot				clocks = <&osc24M>;
742f126890aSEmmanuel Vadot				clock-output-names = "ar100";
743f126890aSEmmanuel Vadot			};
744f126890aSEmmanuel Vadot
745*7d0873ebSEmmanuel Vadot			ahb0: ahb0-clk {
746f126890aSEmmanuel Vadot				compatible = "fixed-factor-clock";
747f126890aSEmmanuel Vadot				#clock-cells = <0>;
748f126890aSEmmanuel Vadot				clock-div = <1>;
749f126890aSEmmanuel Vadot				clock-mult = <1>;
750f126890aSEmmanuel Vadot				clocks = <&ar100>;
751f126890aSEmmanuel Vadot				clock-output-names = "ahb0";
752f126890aSEmmanuel Vadot			};
753f126890aSEmmanuel Vadot
754*7d0873ebSEmmanuel Vadot			apb0: apb0-clk {
755f126890aSEmmanuel Vadot				compatible = "allwinner,sun8i-a23-apb0-clk";
756f126890aSEmmanuel Vadot				#clock-cells = <0>;
757f126890aSEmmanuel Vadot				clocks = <&ahb0>;
758f126890aSEmmanuel Vadot				clock-output-names = "apb0";
759f126890aSEmmanuel Vadot			};
760f126890aSEmmanuel Vadot
761*7d0873ebSEmmanuel Vadot			apb0_gates: apb0-gates-clk {
762f126890aSEmmanuel Vadot				compatible = "allwinner,sun8i-a23-apb0-gates-clk";
763f126890aSEmmanuel Vadot				#clock-cells = <1>;
764f126890aSEmmanuel Vadot				clocks = <&apb0>;
765f126890aSEmmanuel Vadot				clock-output-names = "apb0_pio", "apb0_timer",
766f126890aSEmmanuel Vadot						"apb0_rsb", "apb0_uart",
767f126890aSEmmanuel Vadot						"apb0_i2c";
768f126890aSEmmanuel Vadot			};
769f126890aSEmmanuel Vadot
770*7d0873ebSEmmanuel Vadot			apb0_rst: apb0-rst {
771f126890aSEmmanuel Vadot				compatible = "allwinner,sun6i-a31-clock-reset";
772f126890aSEmmanuel Vadot				#reset-cells = <1>;
773f126890aSEmmanuel Vadot			};
774f126890aSEmmanuel Vadot
775f126890aSEmmanuel Vadot			codec_analog: codec-analog {
776f126890aSEmmanuel Vadot				compatible = "allwinner,sun8i-a23-codec-analog";
777f126890aSEmmanuel Vadot			};
778f126890aSEmmanuel Vadot		};
779f126890aSEmmanuel Vadot
780f126890aSEmmanuel Vadot		cpucfg@1f01c00 {
781f126890aSEmmanuel Vadot			compatible = "allwinner,sun8i-a23-cpuconfig";
782f126890aSEmmanuel Vadot			reg = <0x01f01c00 0x300>;
783f126890aSEmmanuel Vadot		};
784f126890aSEmmanuel Vadot
785f126890aSEmmanuel Vadot		r_uart: serial@1f02800 {
786f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-uart";
787f126890aSEmmanuel Vadot			reg = <0x01f02800 0x400>;
788f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
789f126890aSEmmanuel Vadot			reg-shift = <2>;
790f126890aSEmmanuel Vadot			reg-io-width = <4>;
791f126890aSEmmanuel Vadot			clocks = <&apb0_gates 4>;
792f126890aSEmmanuel Vadot			resets = <&apb0_rst 4>;
793f126890aSEmmanuel Vadot			status = "disabled";
794f126890aSEmmanuel Vadot		};
795f126890aSEmmanuel Vadot
796f126890aSEmmanuel Vadot		r_i2c: i2c@1f02400 {
797f126890aSEmmanuel Vadot			compatible = "allwinner,sun8i-a23-i2c",
798f126890aSEmmanuel Vadot				     "allwinner,sun6i-a31-i2c";
799f126890aSEmmanuel Vadot			reg = <0x01f02400 0x400>;
800f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
801f126890aSEmmanuel Vadot			pinctrl-names = "default";
802f126890aSEmmanuel Vadot			pinctrl-0 = <&r_i2c_pins>;
803f126890aSEmmanuel Vadot			clocks = <&apb0_gates 6>;
804f126890aSEmmanuel Vadot			resets = <&apb0_rst 6>;
805f126890aSEmmanuel Vadot			status = "disabled";
806f126890aSEmmanuel Vadot			#address-cells = <1>;
807f126890aSEmmanuel Vadot			#size-cells = <0>;
808f126890aSEmmanuel Vadot		};
809f126890aSEmmanuel Vadot
810f126890aSEmmanuel Vadot		r_pio: pinctrl@1f02c00 {
811f126890aSEmmanuel Vadot			compatible = "allwinner,sun8i-a23-r-pinctrl";
812f126890aSEmmanuel Vadot			reg = <0x01f02c00 0x400>;
813f126890aSEmmanuel Vadot			interrupt-parent = <&r_intc>;
814f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
815f126890aSEmmanuel Vadot			clocks = <&apb0_gates 0>, <&osc24M>, <&rtc CLK_OSC32K>;
816f126890aSEmmanuel Vadot			clock-names = "apb", "hosc", "losc";
817f126890aSEmmanuel Vadot			gpio-controller;
818f126890aSEmmanuel Vadot			interrupt-controller;
819f126890aSEmmanuel Vadot			#interrupt-cells = <3>;
820f126890aSEmmanuel Vadot			#gpio-cells = <3>;
821f126890aSEmmanuel Vadot
822f126890aSEmmanuel Vadot			r_i2c_pins: r-i2c-pins {
823f126890aSEmmanuel Vadot				pins = "PL0", "PL1";
824f126890aSEmmanuel Vadot				function = "s_i2c";
825f126890aSEmmanuel Vadot				bias-pull-up;
826f126890aSEmmanuel Vadot			};
827f126890aSEmmanuel Vadot
828f126890aSEmmanuel Vadot			r_rsb_pins: r-rsb-pins {
829f126890aSEmmanuel Vadot				pins = "PL0", "PL1";
830f126890aSEmmanuel Vadot				function = "s_rsb";
831f126890aSEmmanuel Vadot				drive-strength = <20>;
832f126890aSEmmanuel Vadot				bias-pull-up;
833f126890aSEmmanuel Vadot			};
834f126890aSEmmanuel Vadot
835f126890aSEmmanuel Vadot			r_uart_pins_a: r-uart-pins {
836f126890aSEmmanuel Vadot				pins = "PL2", "PL3";
837f126890aSEmmanuel Vadot				function = "s_uart";
838f126890aSEmmanuel Vadot			};
839f126890aSEmmanuel Vadot		};
840f126890aSEmmanuel Vadot
841f126890aSEmmanuel Vadot		r_rsb: rsb@1f03400 {
842f126890aSEmmanuel Vadot			compatible = "allwinner,sun8i-a23-rsb";
843f126890aSEmmanuel Vadot			reg = <0x01f03400 0x400>;
844f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
845f126890aSEmmanuel Vadot			clocks = <&apb0_gates 3>;
846f126890aSEmmanuel Vadot			clock-frequency = <3000000>;
847f126890aSEmmanuel Vadot			resets = <&apb0_rst 3>;
848f126890aSEmmanuel Vadot			pinctrl-names = "default";
849f126890aSEmmanuel Vadot			pinctrl-0 = <&r_rsb_pins>;
850f126890aSEmmanuel Vadot			status = "disabled";
851f126890aSEmmanuel Vadot			#address-cells = <1>;
852f126890aSEmmanuel Vadot			#size-cells = <0>;
853f126890aSEmmanuel Vadot		};
854f126890aSEmmanuel Vadot	};
855f126890aSEmmanuel Vadot};
856