xref: /freebsd-src/sys/contrib/device-tree/src/arm/allwinner/sun6i-a31.dtsi (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
1f126890aSEmmanuel Vadot/*
2f126890aSEmmanuel Vadot * Copyright 2013 Maxime Ripard
3f126890aSEmmanuel Vadot *
4f126890aSEmmanuel Vadot * Maxime Ripard <maxime.ripard@free-electrons.com>
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#include <dt-bindings/thermal/thermal.h>
47f126890aSEmmanuel Vadot
48f126890aSEmmanuel Vadot#include <dt-bindings/clock/sun6i-a31-ccu.h>
49f126890aSEmmanuel Vadot#include <dt-bindings/clock/sun6i-rtc.h>
50f126890aSEmmanuel Vadot#include <dt-bindings/reset/sun6i-a31-ccu.h>
51f126890aSEmmanuel Vadot
52f126890aSEmmanuel Vadot/ {
53f126890aSEmmanuel Vadot	interrupt-parent = <&gic>;
54f126890aSEmmanuel Vadot	#address-cells = <1>;
55f126890aSEmmanuel Vadot	#size-cells = <1>;
56f126890aSEmmanuel Vadot
57f126890aSEmmanuel Vadot	aliases {
58f126890aSEmmanuel Vadot		ethernet0 = &gmac;
59f126890aSEmmanuel Vadot	};
60f126890aSEmmanuel Vadot
61f126890aSEmmanuel Vadot	chosen {
62f126890aSEmmanuel Vadot		#address-cells = <1>;
63f126890aSEmmanuel Vadot		#size-cells = <1>;
64f126890aSEmmanuel Vadot		ranges;
65f126890aSEmmanuel Vadot
66f126890aSEmmanuel Vadot		simplefb_hdmi: framebuffer-lcd0-hdmi {
67f126890aSEmmanuel Vadot			compatible = "allwinner,simple-framebuffer",
68f126890aSEmmanuel Vadot				     "simple-framebuffer";
69f126890aSEmmanuel Vadot			allwinner,pipeline = "de_be0-lcd0-hdmi";
70f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_BE0>, <&ccu CLK_AHB1_LCD0>,
71f126890aSEmmanuel Vadot				 <&ccu CLK_AHB1_HDMI>, <&ccu CLK_DRAM_BE0>,
72f126890aSEmmanuel Vadot				 <&ccu CLK_IEP_DRC0>, <&ccu CLK_BE0>,
73f126890aSEmmanuel Vadot				 <&ccu CLK_LCD0_CH1>, <&ccu CLK_HDMI>;
74f126890aSEmmanuel Vadot			status = "disabled";
75f126890aSEmmanuel Vadot		};
76f126890aSEmmanuel Vadot
77f126890aSEmmanuel Vadot		simplefb_lcd: framebuffer-lcd0 {
78f126890aSEmmanuel Vadot			compatible = "allwinner,simple-framebuffer",
79f126890aSEmmanuel Vadot				     "simple-framebuffer";
80f126890aSEmmanuel Vadot			allwinner,pipeline = "de_be0-lcd0";
81f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_BE0>, <&ccu CLK_AHB1_LCD0>,
82f126890aSEmmanuel Vadot				 <&ccu CLK_DRAM_BE0>, <&ccu CLK_IEP_DRC0>,
83f126890aSEmmanuel Vadot				 <&ccu CLK_BE0>, <&ccu CLK_LCD0_CH0>;
84f126890aSEmmanuel Vadot			status = "disabled";
85f126890aSEmmanuel Vadot		};
86f126890aSEmmanuel Vadot	};
87f126890aSEmmanuel Vadot
88f126890aSEmmanuel Vadot	timer {
89f126890aSEmmanuel Vadot		compatible = "arm,armv7-timer";
90f126890aSEmmanuel Vadot		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
91f126890aSEmmanuel Vadot			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
92f126890aSEmmanuel Vadot			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
93f126890aSEmmanuel Vadot			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
94f126890aSEmmanuel Vadot		clock-frequency = <24000000>;
95f126890aSEmmanuel Vadot		arm,cpu-registers-not-fw-configured;
96f126890aSEmmanuel Vadot	};
97f126890aSEmmanuel Vadot
98f126890aSEmmanuel Vadot	cpus {
99f126890aSEmmanuel Vadot		enable-method = "allwinner,sun6i-a31";
100f126890aSEmmanuel Vadot		#address-cells = <1>;
101f126890aSEmmanuel Vadot		#size-cells = <0>;
102f126890aSEmmanuel Vadot
103f126890aSEmmanuel Vadot		cpu0: cpu@0 {
104f126890aSEmmanuel Vadot			compatible = "arm,cortex-a7";
105f126890aSEmmanuel Vadot			device_type = "cpu";
106f126890aSEmmanuel Vadot			reg = <0>;
107f126890aSEmmanuel Vadot			clocks = <&ccu CLK_CPU>;
108f126890aSEmmanuel Vadot			clock-latency = <244144>; /* 8 32k periods */
109f126890aSEmmanuel Vadot			operating-points =
110f126890aSEmmanuel Vadot				/* kHz	  uV */
111f126890aSEmmanuel Vadot				<1008000 1200000>,
112f126890aSEmmanuel Vadot				<864000 1200000>,
113f126890aSEmmanuel Vadot				<720000 1100000>,
114f126890aSEmmanuel Vadot				<480000 1000000>;
115f126890aSEmmanuel Vadot			#cooling-cells = <2>;
116f126890aSEmmanuel Vadot		};
117f126890aSEmmanuel Vadot
118f126890aSEmmanuel Vadot		cpu1: cpu@1 {
119f126890aSEmmanuel Vadot			compatible = "arm,cortex-a7";
120f126890aSEmmanuel Vadot			device_type = "cpu";
121f126890aSEmmanuel Vadot			reg = <1>;
122f126890aSEmmanuel Vadot			clocks = <&ccu CLK_CPU>;
123f126890aSEmmanuel Vadot			clock-latency = <244144>; /* 8 32k periods */
124f126890aSEmmanuel Vadot			operating-points =
125f126890aSEmmanuel Vadot				/* kHz	  uV */
126f126890aSEmmanuel Vadot				<1008000 1200000>,
127f126890aSEmmanuel Vadot				<864000 1200000>,
128f126890aSEmmanuel Vadot				<720000 1100000>,
129f126890aSEmmanuel Vadot				<480000 1000000>;
130f126890aSEmmanuel Vadot			#cooling-cells = <2>;
131f126890aSEmmanuel Vadot		};
132f126890aSEmmanuel Vadot
133f126890aSEmmanuel Vadot		cpu2: cpu@2 {
134f126890aSEmmanuel Vadot			compatible = "arm,cortex-a7";
135f126890aSEmmanuel Vadot			device_type = "cpu";
136f126890aSEmmanuel Vadot			reg = <2>;
137f126890aSEmmanuel Vadot			clocks = <&ccu CLK_CPU>;
138f126890aSEmmanuel Vadot			clock-latency = <244144>; /* 8 32k periods */
139f126890aSEmmanuel Vadot			operating-points =
140f126890aSEmmanuel Vadot				/* kHz	  uV */
141f126890aSEmmanuel Vadot				<1008000 1200000>,
142f126890aSEmmanuel Vadot				<864000 1200000>,
143f126890aSEmmanuel Vadot				<720000 1100000>,
144f126890aSEmmanuel Vadot				<480000 1000000>;
145f126890aSEmmanuel Vadot			#cooling-cells = <2>;
146f126890aSEmmanuel Vadot		};
147f126890aSEmmanuel Vadot
148f126890aSEmmanuel Vadot		cpu3: cpu@3 {
149f126890aSEmmanuel Vadot			compatible = "arm,cortex-a7";
150f126890aSEmmanuel Vadot			device_type = "cpu";
151f126890aSEmmanuel Vadot			reg = <3>;
152f126890aSEmmanuel Vadot			clocks = <&ccu CLK_CPU>;
153f126890aSEmmanuel Vadot			clock-latency = <244144>; /* 8 32k periods */
154f126890aSEmmanuel Vadot			operating-points =
155f126890aSEmmanuel Vadot				/* kHz	  uV */
156f126890aSEmmanuel Vadot				<1008000 1200000>,
157f126890aSEmmanuel Vadot				<864000 1200000>,
158f126890aSEmmanuel Vadot				<720000 1100000>,
159f126890aSEmmanuel Vadot				<480000 1000000>;
160f126890aSEmmanuel Vadot			#cooling-cells = <2>;
161f126890aSEmmanuel Vadot		};
162f126890aSEmmanuel Vadot	};
163f126890aSEmmanuel Vadot
164f126890aSEmmanuel Vadot	thermal-zones {
165f126890aSEmmanuel Vadot		cpu-thermal {
166f126890aSEmmanuel Vadot			/* milliseconds */
167f126890aSEmmanuel Vadot			polling-delay-passive = <250>;
168f126890aSEmmanuel Vadot			polling-delay = <1000>;
169f126890aSEmmanuel Vadot			thermal-sensors = <&rtp>;
170f126890aSEmmanuel Vadot
171f126890aSEmmanuel Vadot			cooling-maps {
172f126890aSEmmanuel Vadot				map0 {
173f126890aSEmmanuel Vadot					trip = <&cpu_alert0>;
174f126890aSEmmanuel Vadot					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
175f126890aSEmmanuel Vadot							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
176f126890aSEmmanuel Vadot							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
177f126890aSEmmanuel Vadot							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
178f126890aSEmmanuel Vadot				};
179f126890aSEmmanuel Vadot			};
180f126890aSEmmanuel Vadot
181f126890aSEmmanuel Vadot			trips {
182*7d0873ebSEmmanuel Vadot				cpu_alert0: cpu-alert0 {
183f126890aSEmmanuel Vadot					/* milliCelsius */
184f126890aSEmmanuel Vadot					temperature = <70000>;
185f126890aSEmmanuel Vadot					hysteresis = <2000>;
186f126890aSEmmanuel Vadot					type = "passive";
187f126890aSEmmanuel Vadot				};
188f126890aSEmmanuel Vadot
189*7d0873ebSEmmanuel Vadot				cpu_crit: cpu-crit {
190f126890aSEmmanuel Vadot					/* milliCelsius */
191f126890aSEmmanuel Vadot					temperature = <100000>;
192f126890aSEmmanuel Vadot					hysteresis = <2000>;
193f126890aSEmmanuel Vadot					type = "critical";
194f126890aSEmmanuel Vadot				};
195f126890aSEmmanuel Vadot			};
196f126890aSEmmanuel Vadot		};
197f126890aSEmmanuel Vadot	};
198f126890aSEmmanuel Vadot
199f126890aSEmmanuel Vadot	pmu {
200f126890aSEmmanuel Vadot		compatible = "arm,cortex-a7-pmu";
201f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
202f126890aSEmmanuel Vadot			     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
203f126890aSEmmanuel Vadot			     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
204f126890aSEmmanuel Vadot			     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
205f126890aSEmmanuel Vadot	};
206f126890aSEmmanuel Vadot
207f126890aSEmmanuel Vadot	clocks {
208f126890aSEmmanuel Vadot		#address-cells = <1>;
209f126890aSEmmanuel Vadot		#size-cells = <1>;
210f126890aSEmmanuel Vadot		ranges;
211f126890aSEmmanuel Vadot
212f126890aSEmmanuel Vadot		osc24M: clk-24M {
213f126890aSEmmanuel Vadot			#clock-cells = <0>;
214f126890aSEmmanuel Vadot			compatible = "fixed-clock";
215f126890aSEmmanuel Vadot			clock-frequency = <24000000>;
216f126890aSEmmanuel Vadot			clock-accuracy = <50000>;
217f126890aSEmmanuel Vadot			clock-output-names = "osc24M";
218f126890aSEmmanuel Vadot		};
219f126890aSEmmanuel Vadot
220f126890aSEmmanuel Vadot		osc32k: clk-32k {
221f126890aSEmmanuel Vadot			#clock-cells = <0>;
222f126890aSEmmanuel Vadot			compatible = "fixed-clock";
223f126890aSEmmanuel Vadot			clock-frequency = <32768>;
224f126890aSEmmanuel Vadot			clock-accuracy = <50000>;
225f126890aSEmmanuel Vadot			clock-output-names = "ext_osc32k";
226f126890aSEmmanuel Vadot		};
227f126890aSEmmanuel Vadot
228f126890aSEmmanuel Vadot		/*
229f126890aSEmmanuel Vadot		 * The following two are dummy clocks, placeholders
230f126890aSEmmanuel Vadot		 * used in the gmac_tx clock. The gmac driver will
231f126890aSEmmanuel Vadot		 * choose one parent depending on the PHY interface
232f126890aSEmmanuel Vadot		 * mode, using clk_set_rate auto-reparenting.
233f126890aSEmmanuel Vadot		 *
234f126890aSEmmanuel Vadot		 * The actual TX clock rate is not controlled by the
235f126890aSEmmanuel Vadot		 * gmac_tx clock.
236f126890aSEmmanuel Vadot		 */
237f126890aSEmmanuel Vadot		mii_phy_tx_clk: clk-mii-phy-tx {
238f126890aSEmmanuel Vadot			#clock-cells = <0>;
239f126890aSEmmanuel Vadot			compatible = "fixed-clock";
240f126890aSEmmanuel Vadot			clock-frequency = <25000000>;
241f126890aSEmmanuel Vadot			clock-output-names = "mii_phy_tx";
242f126890aSEmmanuel Vadot		};
243f126890aSEmmanuel Vadot
244f126890aSEmmanuel Vadot		gmac_int_tx_clk: clk-gmac-int-tx {
245f126890aSEmmanuel Vadot			#clock-cells = <0>;
246f126890aSEmmanuel Vadot			compatible = "fixed-clock";
247f126890aSEmmanuel Vadot			clock-frequency = <125000000>;
248f126890aSEmmanuel Vadot			clock-output-names = "gmac_int_tx";
249f126890aSEmmanuel Vadot		};
250f126890aSEmmanuel Vadot
251f126890aSEmmanuel Vadot		gmac_tx_clk: clk@1c200d0 {
252f126890aSEmmanuel Vadot			#clock-cells = <0>;
253f126890aSEmmanuel Vadot			compatible = "allwinner,sun7i-a20-gmac-clk";
254f126890aSEmmanuel Vadot			reg = <0x01c200d0 0x4>;
255f126890aSEmmanuel Vadot			clocks = <&mii_phy_tx_clk>, <&gmac_int_tx_clk>;
256f126890aSEmmanuel Vadot			clock-output-names = "gmac_tx";
257f126890aSEmmanuel Vadot		};
258f126890aSEmmanuel Vadot	};
259f126890aSEmmanuel Vadot
260f126890aSEmmanuel Vadot	de: display-engine {
261f126890aSEmmanuel Vadot		compatible = "allwinner,sun6i-a31-display-engine";
262f126890aSEmmanuel Vadot		allwinner,pipelines = <&fe0>, <&fe1>;
263f126890aSEmmanuel Vadot		status = "disabled";
264f126890aSEmmanuel Vadot	};
265f126890aSEmmanuel Vadot
266f126890aSEmmanuel Vadot	soc {
267f126890aSEmmanuel Vadot		compatible = "simple-bus";
268f126890aSEmmanuel Vadot		#address-cells = <1>;
269f126890aSEmmanuel Vadot		#size-cells = <1>;
270f126890aSEmmanuel Vadot		ranges;
271f126890aSEmmanuel Vadot
272f126890aSEmmanuel Vadot		dma: dma-controller@1c02000 {
273f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-dma";
274f126890aSEmmanuel Vadot			reg = <0x01c02000 0x1000>;
275f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
276f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_DMA>;
277f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_DMA>;
278f126890aSEmmanuel Vadot			#dma-cells = <1>;
279f126890aSEmmanuel Vadot		};
280f126890aSEmmanuel Vadot
281f126890aSEmmanuel Vadot		tcon0: lcd-controller@1c0c000 {
282f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-tcon";
283f126890aSEmmanuel Vadot			reg = <0x01c0c000 0x1000>;
284f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
285f126890aSEmmanuel Vadot			dmas = <&dma 11>;
286f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_LCD0>,
287f126890aSEmmanuel Vadot				 <&ccu RST_AHB1_LVDS>;
288f126890aSEmmanuel Vadot			reset-names = "lcd",
289f126890aSEmmanuel Vadot				      "lvds";
290f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_LCD0>,
291f126890aSEmmanuel Vadot				 <&ccu CLK_LCD0_CH0>,
292f126890aSEmmanuel Vadot				 <&ccu CLK_LCD0_CH1>,
293f126890aSEmmanuel Vadot				 <&ccu 15>;
294f126890aSEmmanuel Vadot			clock-names = "ahb",
295f126890aSEmmanuel Vadot				      "tcon-ch0",
296f126890aSEmmanuel Vadot				      "tcon-ch1",
297f126890aSEmmanuel Vadot				      "lvds-alt";
298f126890aSEmmanuel Vadot			clock-output-names = "tcon0-pixel-clock";
299f126890aSEmmanuel Vadot			#clock-cells = <0>;
300f126890aSEmmanuel Vadot
301f126890aSEmmanuel Vadot			ports {
302f126890aSEmmanuel Vadot				#address-cells = <1>;
303f126890aSEmmanuel Vadot				#size-cells = <0>;
304f126890aSEmmanuel Vadot
305f126890aSEmmanuel Vadot				tcon0_in: port@0 {
306f126890aSEmmanuel Vadot					#address-cells = <1>;
307f126890aSEmmanuel Vadot					#size-cells = <0>;
308f126890aSEmmanuel Vadot					reg = <0>;
309f126890aSEmmanuel Vadot
310f126890aSEmmanuel Vadot					tcon0_in_drc0: endpoint@0 {
311f126890aSEmmanuel Vadot						reg = <0>;
312f126890aSEmmanuel Vadot						remote-endpoint = <&drc0_out_tcon0>;
313f126890aSEmmanuel Vadot					};
314f126890aSEmmanuel Vadot
315f126890aSEmmanuel Vadot					tcon0_in_drc1: endpoint@1 {
316f126890aSEmmanuel Vadot						reg = <1>;
317f126890aSEmmanuel Vadot						remote-endpoint = <&drc1_out_tcon0>;
318f126890aSEmmanuel Vadot					};
319f126890aSEmmanuel Vadot				};
320f126890aSEmmanuel Vadot
321f126890aSEmmanuel Vadot				tcon0_out: port@1 {
322f126890aSEmmanuel Vadot					#address-cells = <1>;
323f126890aSEmmanuel Vadot					#size-cells = <0>;
324f126890aSEmmanuel Vadot					reg = <1>;
325f126890aSEmmanuel Vadot
326f126890aSEmmanuel Vadot					tcon0_out_hdmi: endpoint@1 {
327f126890aSEmmanuel Vadot						reg = <1>;
328f126890aSEmmanuel Vadot						remote-endpoint = <&hdmi_in_tcon0>;
329f126890aSEmmanuel Vadot						allwinner,tcon-channel = <1>;
330f126890aSEmmanuel Vadot					};
331f126890aSEmmanuel Vadot				};
332f126890aSEmmanuel Vadot			};
333f126890aSEmmanuel Vadot		};
334f126890aSEmmanuel Vadot
335f126890aSEmmanuel Vadot		tcon1: lcd-controller@1c0d000 {
336f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-tcon";
337f126890aSEmmanuel Vadot			reg = <0x01c0d000 0x1000>;
338f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
339f126890aSEmmanuel Vadot			dmas = <&dma 12>;
340f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_LCD1>,
341f126890aSEmmanuel Vadot				 <&ccu RST_AHB1_LVDS>;
342f126890aSEmmanuel Vadot			reset-names = "lcd", "lvds";
343f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_LCD1>,
344f126890aSEmmanuel Vadot				 <&ccu CLK_LCD1_CH0>,
345f126890aSEmmanuel Vadot				 <&ccu CLK_LCD1_CH1>,
346f126890aSEmmanuel Vadot				 <&ccu 15>;
347f126890aSEmmanuel Vadot			clock-names = "ahb",
348f126890aSEmmanuel Vadot				      "tcon-ch0",
349f126890aSEmmanuel Vadot				      "tcon-ch1",
350f126890aSEmmanuel Vadot				      "lvds-alt";
351f126890aSEmmanuel Vadot			clock-output-names = "tcon1-pixel-clock";
352f126890aSEmmanuel Vadot			#clock-cells = <0>;
353f126890aSEmmanuel Vadot
354f126890aSEmmanuel Vadot			ports {
355f126890aSEmmanuel Vadot				#address-cells = <1>;
356f126890aSEmmanuel Vadot				#size-cells = <0>;
357f126890aSEmmanuel Vadot
358f126890aSEmmanuel Vadot				tcon1_in: port@0 {
359f126890aSEmmanuel Vadot					#address-cells = <1>;
360f126890aSEmmanuel Vadot					#size-cells = <0>;
361f126890aSEmmanuel Vadot					reg = <0>;
362f126890aSEmmanuel Vadot
363f126890aSEmmanuel Vadot					tcon1_in_drc0: endpoint@0 {
364f126890aSEmmanuel Vadot						reg = <0>;
365f126890aSEmmanuel Vadot						remote-endpoint = <&drc0_out_tcon1>;
366f126890aSEmmanuel Vadot					};
367f126890aSEmmanuel Vadot
368f126890aSEmmanuel Vadot					tcon1_in_drc1: endpoint@1 {
369f126890aSEmmanuel Vadot						reg = <1>;
370f126890aSEmmanuel Vadot						remote-endpoint = <&drc1_out_tcon1>;
371f126890aSEmmanuel Vadot					};
372f126890aSEmmanuel Vadot				};
373f126890aSEmmanuel Vadot
374f126890aSEmmanuel Vadot				tcon1_out: port@1 {
375f126890aSEmmanuel Vadot					#address-cells = <1>;
376f126890aSEmmanuel Vadot					#size-cells = <0>;
377f126890aSEmmanuel Vadot					reg = <1>;
378f126890aSEmmanuel Vadot
379f126890aSEmmanuel Vadot					tcon1_out_hdmi: endpoint@1 {
380f126890aSEmmanuel Vadot						reg = <1>;
381f126890aSEmmanuel Vadot						remote-endpoint = <&hdmi_in_tcon1>;
382f126890aSEmmanuel Vadot						allwinner,tcon-channel = <1>;
383f126890aSEmmanuel Vadot					};
384f126890aSEmmanuel Vadot				};
385f126890aSEmmanuel Vadot			};
386f126890aSEmmanuel Vadot		};
387f126890aSEmmanuel Vadot
388f126890aSEmmanuel Vadot		mmc0: mmc@1c0f000 {
389f126890aSEmmanuel Vadot			compatible = "allwinner,sun7i-a20-mmc";
390f126890aSEmmanuel Vadot			reg = <0x01c0f000 0x1000>;
391f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_MMC0>,
392f126890aSEmmanuel Vadot				 <&ccu CLK_MMC0>,
393f126890aSEmmanuel Vadot				 <&ccu CLK_MMC0_OUTPUT>,
394f126890aSEmmanuel Vadot				 <&ccu CLK_MMC0_SAMPLE>;
395f126890aSEmmanuel Vadot			clock-names = "ahb",
396f126890aSEmmanuel Vadot				      "mmc",
397f126890aSEmmanuel Vadot				      "output",
398f126890aSEmmanuel Vadot				      "sample";
399f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_MMC0>;
400f126890aSEmmanuel Vadot			reset-names = "ahb";
401f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
402f126890aSEmmanuel Vadot			pinctrl-names = "default";
403f126890aSEmmanuel Vadot			pinctrl-0 = <&mmc0_pins>;
404f126890aSEmmanuel Vadot			status = "disabled";
405f126890aSEmmanuel Vadot			#address-cells = <1>;
406f126890aSEmmanuel Vadot			#size-cells = <0>;
407f126890aSEmmanuel Vadot		};
408f126890aSEmmanuel Vadot
409f126890aSEmmanuel Vadot		mmc1: mmc@1c10000 {
410f126890aSEmmanuel Vadot			compatible = "allwinner,sun7i-a20-mmc";
411f126890aSEmmanuel Vadot			reg = <0x01c10000 0x1000>;
412f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_MMC1>,
413f126890aSEmmanuel Vadot				 <&ccu CLK_MMC1>,
414f126890aSEmmanuel Vadot				 <&ccu CLK_MMC1_OUTPUT>,
415f126890aSEmmanuel Vadot				 <&ccu CLK_MMC1_SAMPLE>;
416f126890aSEmmanuel Vadot			clock-names = "ahb",
417f126890aSEmmanuel Vadot				      "mmc",
418f126890aSEmmanuel Vadot				      "output",
419f126890aSEmmanuel Vadot				      "sample";
420f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_MMC1>;
421f126890aSEmmanuel Vadot			reset-names = "ahb";
422f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
423f126890aSEmmanuel Vadot			pinctrl-names = "default";
424f126890aSEmmanuel Vadot			pinctrl-0 = <&mmc1_pins>;
425f126890aSEmmanuel Vadot			status = "disabled";
426f126890aSEmmanuel Vadot			#address-cells = <1>;
427f126890aSEmmanuel Vadot			#size-cells = <0>;
428f126890aSEmmanuel Vadot		};
429f126890aSEmmanuel Vadot
430f126890aSEmmanuel Vadot		mmc2: mmc@1c11000 {
431f126890aSEmmanuel Vadot			compatible = "allwinner,sun7i-a20-mmc";
432f126890aSEmmanuel Vadot			reg = <0x01c11000 0x1000>;
433f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_MMC2>,
434f126890aSEmmanuel Vadot				 <&ccu CLK_MMC2>,
435f126890aSEmmanuel Vadot				 <&ccu CLK_MMC2_OUTPUT>,
436f126890aSEmmanuel Vadot				 <&ccu CLK_MMC2_SAMPLE>;
437f126890aSEmmanuel Vadot			clock-names = "ahb",
438f126890aSEmmanuel Vadot				      "mmc",
439f126890aSEmmanuel Vadot				      "output",
440f126890aSEmmanuel Vadot				      "sample";
441f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_MMC2>;
442f126890aSEmmanuel Vadot			reset-names = "ahb";
443f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
444f126890aSEmmanuel Vadot			status = "disabled";
445f126890aSEmmanuel Vadot			#address-cells = <1>;
446f126890aSEmmanuel Vadot			#size-cells = <0>;
447f126890aSEmmanuel Vadot		};
448f126890aSEmmanuel Vadot
449f126890aSEmmanuel Vadot		mmc3: mmc@1c12000 {
450f126890aSEmmanuel Vadot			compatible = "allwinner,sun7i-a20-mmc";
451f126890aSEmmanuel Vadot			reg = <0x01c12000 0x1000>;
452f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_MMC3>,
453f126890aSEmmanuel Vadot				 <&ccu CLK_MMC3>,
454f126890aSEmmanuel Vadot				 <&ccu CLK_MMC3_OUTPUT>,
455f126890aSEmmanuel Vadot				 <&ccu CLK_MMC3_SAMPLE>;
456f126890aSEmmanuel Vadot			clock-names = "ahb",
457f126890aSEmmanuel Vadot				      "mmc",
458f126890aSEmmanuel Vadot				      "output",
459f126890aSEmmanuel Vadot				      "sample";
460f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_MMC3>;
461f126890aSEmmanuel Vadot			reset-names = "ahb";
462f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
463f126890aSEmmanuel Vadot			status = "disabled";
464f126890aSEmmanuel Vadot			#address-cells = <1>;
465f126890aSEmmanuel Vadot			#size-cells = <0>;
466f126890aSEmmanuel Vadot		};
467f126890aSEmmanuel Vadot
468f126890aSEmmanuel Vadot		hdmi: hdmi@1c16000 {
469f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-hdmi";
470f126890aSEmmanuel Vadot			reg = <0x01c16000 0x1000>;
471f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
472f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_HDMI>, <&ccu CLK_HDMI>,
473f126890aSEmmanuel Vadot				 <&ccu CLK_HDMI_DDC>,
474f126890aSEmmanuel Vadot				 <&ccu CLK_PLL_VIDEO0_2X>,
475f126890aSEmmanuel Vadot				 <&ccu CLK_PLL_VIDEO1_2X>;
476f126890aSEmmanuel Vadot			clock-names = "ahb", "mod", "ddc", "pll-0", "pll-1";
477f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_HDMI>;
478f126890aSEmmanuel Vadot			dma-names = "ddc-tx", "ddc-rx", "audio-tx";
479f126890aSEmmanuel Vadot			dmas = <&dma 13>, <&dma 13>, <&dma 14>;
480f126890aSEmmanuel Vadot			status = "disabled";
481f126890aSEmmanuel Vadot
482f126890aSEmmanuel Vadot			ports {
483f126890aSEmmanuel Vadot				#address-cells = <1>;
484f126890aSEmmanuel Vadot				#size-cells = <0>;
485f126890aSEmmanuel Vadot
486f126890aSEmmanuel Vadot				hdmi_in: port@0 {
487f126890aSEmmanuel Vadot					#address-cells = <1>;
488f126890aSEmmanuel Vadot					#size-cells = <0>;
489f126890aSEmmanuel Vadot					reg = <0>;
490f126890aSEmmanuel Vadot
491f126890aSEmmanuel Vadot					hdmi_in_tcon0: endpoint@0 {
492f126890aSEmmanuel Vadot						reg = <0>;
493f126890aSEmmanuel Vadot						remote-endpoint = <&tcon0_out_hdmi>;
494f126890aSEmmanuel Vadot					};
495f126890aSEmmanuel Vadot
496f126890aSEmmanuel Vadot					hdmi_in_tcon1: endpoint@1 {
497f126890aSEmmanuel Vadot						reg = <1>;
498f126890aSEmmanuel Vadot						remote-endpoint = <&tcon1_out_hdmi>;
499f126890aSEmmanuel Vadot					};
500f126890aSEmmanuel Vadot				};
501f126890aSEmmanuel Vadot
502f126890aSEmmanuel Vadot				hdmi_out: port@1 {
503f126890aSEmmanuel Vadot					reg = <1>;
504f126890aSEmmanuel Vadot				};
505f126890aSEmmanuel Vadot			};
506f126890aSEmmanuel Vadot		};
507f126890aSEmmanuel Vadot
508f126890aSEmmanuel Vadot		usb_otg: usb@1c19000 {
509f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-musb";
510f126890aSEmmanuel Vadot			reg = <0x01c19000 0x0400>;
511f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_OTG>;
512f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_OTG>;
513f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
514f126890aSEmmanuel Vadot			interrupt-names = "mc";
515f126890aSEmmanuel Vadot			phys = <&usbphy 0>;
516f126890aSEmmanuel Vadot			phy-names = "usb";
517f126890aSEmmanuel Vadot			extcon = <&usbphy 0>;
518f126890aSEmmanuel Vadot			dr_mode = "otg";
519f126890aSEmmanuel Vadot			status = "disabled";
520f126890aSEmmanuel Vadot		};
521f126890aSEmmanuel Vadot
522f126890aSEmmanuel Vadot		usbphy: phy@1c19400 {
523f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-usb-phy";
524f126890aSEmmanuel Vadot			reg = <0x01c19400 0x10>,
525f126890aSEmmanuel Vadot			      <0x01c1a800 0x4>,
526f126890aSEmmanuel Vadot			      <0x01c1b800 0x4>;
527f126890aSEmmanuel Vadot			reg-names = "phy_ctrl",
528f126890aSEmmanuel Vadot				    "pmu1",
529f126890aSEmmanuel Vadot				    "pmu2";
530f126890aSEmmanuel Vadot			clocks = <&ccu CLK_USB_PHY0>,
531f126890aSEmmanuel Vadot				 <&ccu CLK_USB_PHY1>,
532f126890aSEmmanuel Vadot				 <&ccu CLK_USB_PHY2>;
533f126890aSEmmanuel Vadot			clock-names = "usb0_phy",
534f126890aSEmmanuel Vadot				      "usb1_phy",
535f126890aSEmmanuel Vadot				      "usb2_phy";
536f126890aSEmmanuel Vadot			resets = <&ccu RST_USB_PHY0>,
537f126890aSEmmanuel Vadot				 <&ccu RST_USB_PHY1>,
538f126890aSEmmanuel Vadot				 <&ccu RST_USB_PHY2>;
539f126890aSEmmanuel Vadot			reset-names = "usb0_reset",
540f126890aSEmmanuel Vadot				      "usb1_reset",
541f126890aSEmmanuel Vadot				      "usb2_reset";
542f126890aSEmmanuel Vadot			status = "disabled";
543f126890aSEmmanuel Vadot			#phy-cells = <1>;
544f126890aSEmmanuel Vadot		};
545f126890aSEmmanuel Vadot
546f126890aSEmmanuel Vadot		ehci0: usb@1c1a000 {
547f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-ehci", "generic-ehci";
548f126890aSEmmanuel Vadot			reg = <0x01c1a000 0x100>;
549f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
550f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_EHCI0>;
551f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_EHCI0>;
552f126890aSEmmanuel Vadot			phys = <&usbphy 1>;
553f126890aSEmmanuel Vadot			phy-names = "usb";
554f126890aSEmmanuel Vadot			status = "disabled";
555f126890aSEmmanuel Vadot		};
556f126890aSEmmanuel Vadot
557f126890aSEmmanuel Vadot		ohci0: usb@1c1a400 {
558f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-ohci", "generic-ohci";
559f126890aSEmmanuel Vadot			reg = <0x01c1a400 0x100>;
560f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
561f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_OHCI0>, <&ccu CLK_USB_OHCI0>;
562f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_OHCI0>;
563f126890aSEmmanuel Vadot			phys = <&usbphy 1>;
564f126890aSEmmanuel Vadot			phy-names = "usb";
565f126890aSEmmanuel Vadot			status = "disabled";
566f126890aSEmmanuel Vadot		};
567f126890aSEmmanuel Vadot
568f126890aSEmmanuel Vadot		ehci1: usb@1c1b000 {
569f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-ehci", "generic-ehci";
570f126890aSEmmanuel Vadot			reg = <0x01c1b000 0x100>;
571f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
572f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_EHCI1>;
573f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_EHCI1>;
574f126890aSEmmanuel Vadot			phys = <&usbphy 2>;
575f126890aSEmmanuel Vadot			phy-names = "usb";
576f126890aSEmmanuel Vadot			status = "disabled";
577f126890aSEmmanuel Vadot		};
578f126890aSEmmanuel Vadot
579f126890aSEmmanuel Vadot		ohci1: usb@1c1b400 {
580f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-ohci", "generic-ohci";
581f126890aSEmmanuel Vadot			reg = <0x01c1b400 0x100>;
582f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
583f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_OHCI1>, <&ccu CLK_USB_OHCI1>;
584f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_OHCI1>;
585f126890aSEmmanuel Vadot			phys = <&usbphy 2>;
586f126890aSEmmanuel Vadot			phy-names = "usb";
587f126890aSEmmanuel Vadot			status = "disabled";
588f126890aSEmmanuel Vadot		};
589f126890aSEmmanuel Vadot
590f126890aSEmmanuel Vadot		ohci2: usb@1c1c400 {
591f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-ohci", "generic-ohci";
592f126890aSEmmanuel Vadot			reg = <0x01c1c400 0x100>;
593f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
594f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_OHCI2>, <&ccu CLK_USB_OHCI2>;
595f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_OHCI2>;
596f126890aSEmmanuel Vadot			status = "disabled";
597f126890aSEmmanuel Vadot		};
598f126890aSEmmanuel Vadot
599f126890aSEmmanuel Vadot		ccu: clock@1c20000 {
600f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-ccu";
601f126890aSEmmanuel Vadot			reg = <0x01c20000 0x400>;
602f126890aSEmmanuel Vadot			clocks = <&osc24M>, <&rtc CLK_OSC32K>;
603f126890aSEmmanuel Vadot			clock-names = "hosc", "losc";
604f126890aSEmmanuel Vadot			#clock-cells = <1>;
605f126890aSEmmanuel Vadot			#reset-cells = <1>;
606f126890aSEmmanuel Vadot		};
607f126890aSEmmanuel Vadot
608f126890aSEmmanuel Vadot		pio: pinctrl@1c20800 {
609f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-pinctrl";
610f126890aSEmmanuel Vadot			reg = <0x01c20800 0x400>;
611f126890aSEmmanuel Vadot			interrupt-parent = <&r_intc>;
612f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
613f126890aSEmmanuel Vadot				     <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
614f126890aSEmmanuel Vadot				     <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
615f126890aSEmmanuel Vadot				     <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
616f126890aSEmmanuel Vadot			clocks = <&ccu CLK_APB1_PIO>, <&osc24M>,
617f126890aSEmmanuel Vadot				 <&rtc CLK_OSC32K>;
618f126890aSEmmanuel Vadot			clock-names = "apb", "hosc", "losc";
619f126890aSEmmanuel Vadot			gpio-controller;
620f126890aSEmmanuel Vadot			interrupt-controller;
621f126890aSEmmanuel Vadot			#interrupt-cells = <3>;
622f126890aSEmmanuel Vadot			#gpio-cells = <3>;
623f126890aSEmmanuel Vadot
624f126890aSEmmanuel Vadot			gmac_gmii_pins: gmac-gmii-pins {
625f126890aSEmmanuel Vadot				pins = "PA0", "PA1", "PA2", "PA3",
626f126890aSEmmanuel Vadot						"PA4", "PA5", "PA6", "PA7",
627f126890aSEmmanuel Vadot						"PA8", "PA9", "PA10", "PA11",
628f126890aSEmmanuel Vadot						"PA12", "PA13", "PA14",	"PA15",
629f126890aSEmmanuel Vadot						"PA16", "PA17", "PA18", "PA19",
630f126890aSEmmanuel Vadot						"PA20", "PA21", "PA22", "PA23",
631f126890aSEmmanuel Vadot						"PA24", "PA25", "PA26", "PA27";
632f126890aSEmmanuel Vadot				function = "gmac";
633f126890aSEmmanuel Vadot				/*
634f126890aSEmmanuel Vadot				 * data lines in GMII mode run at 125MHz and
635f126890aSEmmanuel Vadot				 * might need a higher signal drive strength
636f126890aSEmmanuel Vadot				 */
637f126890aSEmmanuel Vadot				drive-strength = <30>;
638f126890aSEmmanuel Vadot			};
639f126890aSEmmanuel Vadot
640f126890aSEmmanuel Vadot			gmac_mii_pins: gmac-mii-pins {
641f126890aSEmmanuel Vadot				pins = "PA0", "PA1", "PA2", "PA3",
642f126890aSEmmanuel Vadot						"PA8", "PA9", "PA11",
643f126890aSEmmanuel Vadot						"PA12", "PA13", "PA14", "PA19",
644f126890aSEmmanuel Vadot						"PA20", "PA21", "PA22", "PA23",
645f126890aSEmmanuel Vadot						"PA24", "PA26", "PA27";
646f126890aSEmmanuel Vadot				function = "gmac";
647f126890aSEmmanuel Vadot			};
648f126890aSEmmanuel Vadot
649f126890aSEmmanuel Vadot			gmac_rgmii_pins: gmac-rgmii-pins {
650f126890aSEmmanuel Vadot				pins = "PA0", "PA1", "PA2", "PA3",
651f126890aSEmmanuel Vadot						"PA9", "PA10", "PA11",
652f126890aSEmmanuel Vadot						"PA12", "PA13", "PA14", "PA19",
653f126890aSEmmanuel Vadot						"PA20", "PA25", "PA26", "PA27";
654f126890aSEmmanuel Vadot				function = "gmac";
655f126890aSEmmanuel Vadot				/*
656f126890aSEmmanuel Vadot				 * data lines in RGMII mode use DDR mode
657f126890aSEmmanuel Vadot				 * and need a higher signal drive strength
658f126890aSEmmanuel Vadot				 */
659f126890aSEmmanuel Vadot				drive-strength = <40>;
660f126890aSEmmanuel Vadot			};
661f126890aSEmmanuel Vadot
662f126890aSEmmanuel Vadot			i2c0_pins: i2c0-pins {
663f126890aSEmmanuel Vadot				pins = "PH14", "PH15";
664f126890aSEmmanuel Vadot				function = "i2c0";
665f126890aSEmmanuel Vadot			};
666f126890aSEmmanuel Vadot
667f126890aSEmmanuel Vadot			i2c1_pins: i2c1-pins {
668f126890aSEmmanuel Vadot				pins = "PH16", "PH17";
669f126890aSEmmanuel Vadot				function = "i2c1";
670f126890aSEmmanuel Vadot			};
671f126890aSEmmanuel Vadot
672f126890aSEmmanuel Vadot			i2c2_pins: i2c2-pins {
673f126890aSEmmanuel Vadot				pins = "PH18", "PH19";
674f126890aSEmmanuel Vadot				function = "i2c2";
675f126890aSEmmanuel Vadot			};
676f126890aSEmmanuel Vadot
677f126890aSEmmanuel Vadot			lcd0_rgb888_pins: lcd0-rgb888-pins {
678f126890aSEmmanuel Vadot				pins = "PD0", "PD1", "PD2", "PD3",
679f126890aSEmmanuel Vadot						 "PD4", "PD5", "PD6", "PD7",
680f126890aSEmmanuel Vadot						 "PD8", "PD9", "PD10", "PD11",
681f126890aSEmmanuel Vadot						 "PD12", "PD13", "PD14", "PD15",
682f126890aSEmmanuel Vadot						 "PD16", "PD17", "PD18", "PD19",
683f126890aSEmmanuel Vadot						 "PD20", "PD21", "PD22", "PD23",
684f126890aSEmmanuel Vadot						 "PD24", "PD25", "PD26", "PD27";
685f126890aSEmmanuel Vadot				function = "lcd0";
686f126890aSEmmanuel Vadot			};
687f126890aSEmmanuel Vadot
688f126890aSEmmanuel Vadot			mmc0_pins: mmc0-pins {
689f126890aSEmmanuel Vadot				pins = "PF0", "PF1", "PF2",
690f126890aSEmmanuel Vadot						 "PF3", "PF4", "PF5";
691f126890aSEmmanuel Vadot				function = "mmc0";
692f126890aSEmmanuel Vadot				drive-strength = <30>;
693f126890aSEmmanuel Vadot				bias-pull-up;
694f126890aSEmmanuel Vadot			};
695f126890aSEmmanuel Vadot
696f126890aSEmmanuel Vadot			mmc1_pins: mmc1-pins {
697f126890aSEmmanuel Vadot				pins = "PG0", "PG1", "PG2", "PG3",
698f126890aSEmmanuel Vadot						 "PG4", "PG5";
699f126890aSEmmanuel Vadot				function = "mmc1";
700f126890aSEmmanuel Vadot				drive-strength = <30>;
701f126890aSEmmanuel Vadot				bias-pull-up;
702f126890aSEmmanuel Vadot			};
703f126890aSEmmanuel Vadot
704f126890aSEmmanuel Vadot			mmc2_4bit_pins: mmc2-4bit-pins {
705f126890aSEmmanuel Vadot				pins = "PC6", "PC7", "PC8", "PC9",
706f126890aSEmmanuel Vadot						 "PC10", "PC11";
707f126890aSEmmanuel Vadot				function = "mmc2";
708f126890aSEmmanuel Vadot				drive-strength = <30>;
709f126890aSEmmanuel Vadot				bias-pull-up;
710f126890aSEmmanuel Vadot			};
711f126890aSEmmanuel Vadot
712f126890aSEmmanuel Vadot			mmc2_8bit_emmc_pins: mmc2-8bit-emmc-pins {
713f126890aSEmmanuel Vadot				pins = "PC6", "PC7", "PC8", "PC9",
714f126890aSEmmanuel Vadot						 "PC10", "PC11", "PC12",
715f126890aSEmmanuel Vadot						 "PC13", "PC14", "PC15",
716f126890aSEmmanuel Vadot						 "PC24";
717f126890aSEmmanuel Vadot				function = "mmc2";
718f126890aSEmmanuel Vadot				drive-strength = <30>;
719f126890aSEmmanuel Vadot				bias-pull-up;
720f126890aSEmmanuel Vadot			};
721f126890aSEmmanuel Vadot
722f126890aSEmmanuel Vadot			mmc3_8bit_emmc_pins: mmc3-8bit-emmc-pins {
723f126890aSEmmanuel Vadot				pins = "PC6", "PC7", "PC8", "PC9",
724f126890aSEmmanuel Vadot						 "PC10", "PC11", "PC12",
725f126890aSEmmanuel Vadot						 "PC13", "PC14", "PC15",
726f126890aSEmmanuel Vadot						 "PC24";
727f126890aSEmmanuel Vadot				function = "mmc3";
728f126890aSEmmanuel Vadot				drive-strength = <40>;
729f126890aSEmmanuel Vadot				bias-pull-up;
730f126890aSEmmanuel Vadot			};
731f126890aSEmmanuel Vadot
732f126890aSEmmanuel Vadot			spdif_tx_pin: spdif-tx-pin {
733f126890aSEmmanuel Vadot				pins = "PH28";
734f126890aSEmmanuel Vadot				function = "spdif";
735f126890aSEmmanuel Vadot			};
736f126890aSEmmanuel Vadot
737f126890aSEmmanuel Vadot			uart0_ph_pins: uart0-ph-pins {
738f126890aSEmmanuel Vadot				pins = "PH20", "PH21";
739f126890aSEmmanuel Vadot				function = "uart0";
740f126890aSEmmanuel Vadot			};
741f126890aSEmmanuel Vadot		};
742f126890aSEmmanuel Vadot
743f126890aSEmmanuel Vadot		timer@1c20c00 {
744f126890aSEmmanuel Vadot			compatible = "allwinner,sun4i-a10-timer";
745f126890aSEmmanuel Vadot			reg = <0x01c20c00 0xa0>;
746f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
747f126890aSEmmanuel Vadot				     <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
748f126890aSEmmanuel Vadot				     <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
749f126890aSEmmanuel Vadot				     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
750f126890aSEmmanuel Vadot				     <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
751f126890aSEmmanuel Vadot				     <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
752f126890aSEmmanuel Vadot			clocks = <&osc24M>;
753f126890aSEmmanuel Vadot		};
754f126890aSEmmanuel Vadot
755f126890aSEmmanuel Vadot		wdt1: watchdog@1c20ca0 {
756f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-wdt";
757f126890aSEmmanuel Vadot			reg = <0x01c20ca0 0x20>;
758f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
759f126890aSEmmanuel Vadot			clocks = <&osc24M>;
760f126890aSEmmanuel Vadot		};
761f126890aSEmmanuel Vadot
762f126890aSEmmanuel Vadot		spdif: spdif@1c21000 {
763f126890aSEmmanuel Vadot			#sound-dai-cells = <0>;
764f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-spdif";
765f126890aSEmmanuel Vadot			reg = <0x01c21000 0x400>;
766f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
767f126890aSEmmanuel Vadot			clocks = <&ccu CLK_APB1_SPDIF>, <&ccu CLK_SPDIF>;
768f126890aSEmmanuel Vadot			resets = <&ccu RST_APB1_SPDIF>;
769f126890aSEmmanuel Vadot			clock-names = "apb", "spdif";
770f126890aSEmmanuel Vadot			dmas = <&dma 2>, <&dma 2>;
771f126890aSEmmanuel Vadot			dma-names = "rx", "tx";
772f126890aSEmmanuel Vadot			status = "disabled";
773f126890aSEmmanuel Vadot		};
774f126890aSEmmanuel Vadot
775f126890aSEmmanuel Vadot		i2s0: i2s@1c22000 {
776f126890aSEmmanuel Vadot			#sound-dai-cells = <0>;
777f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-i2s";
778f126890aSEmmanuel Vadot			reg = <0x01c22000 0x400>;
779f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
780f126890aSEmmanuel Vadot			clocks = <&ccu CLK_APB1_DAUDIO0>, <&ccu CLK_DAUDIO0>;
781f126890aSEmmanuel Vadot			resets = <&ccu RST_APB1_DAUDIO0>;
782f126890aSEmmanuel Vadot			clock-names = "apb", "mod";
783f126890aSEmmanuel Vadot			dmas = <&dma 3>, <&dma 3>;
784f126890aSEmmanuel Vadot			dma-names = "rx", "tx";
785f126890aSEmmanuel Vadot			status = "disabled";
786f126890aSEmmanuel Vadot		};
787f126890aSEmmanuel Vadot
788f126890aSEmmanuel Vadot		i2s1: i2s@1c22400 {
789f126890aSEmmanuel Vadot			#sound-dai-cells = <0>;
790f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-i2s";
791f126890aSEmmanuel Vadot			reg = <0x01c22400 0x400>;
792f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
793f126890aSEmmanuel Vadot			clocks = <&ccu CLK_APB1_DAUDIO1>, <&ccu CLK_DAUDIO1>;
794f126890aSEmmanuel Vadot			resets = <&ccu RST_APB1_DAUDIO1>;
795f126890aSEmmanuel Vadot			clock-names = "apb", "mod";
796f126890aSEmmanuel Vadot			dmas = <&dma 4>, <&dma 4>;
797f126890aSEmmanuel Vadot			dma-names = "rx", "tx";
798f126890aSEmmanuel Vadot			status = "disabled";
799f126890aSEmmanuel Vadot		};
800f126890aSEmmanuel Vadot
801f126890aSEmmanuel Vadot		lradc: lradc@1c22800 {
802f126890aSEmmanuel Vadot			compatible = "allwinner,sun4i-a10-lradc-keys";
803f126890aSEmmanuel Vadot			reg = <0x01c22800 0x100>;
804f126890aSEmmanuel Vadot			interrupt-parent = <&r_intc>;
805f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
806f126890aSEmmanuel Vadot			status = "disabled";
807f126890aSEmmanuel Vadot		};
808f126890aSEmmanuel Vadot
809f126890aSEmmanuel Vadot		rtp: rtp@1c25000 {
810f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-ts";
811f126890aSEmmanuel Vadot			reg = <0x01c25000 0x100>;
812f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
813f126890aSEmmanuel Vadot			#thermal-sensor-cells = <0>;
814f126890aSEmmanuel Vadot		};
815f126890aSEmmanuel Vadot
816f126890aSEmmanuel Vadot		uart0: serial@1c28000 {
817f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-uart";
818f126890aSEmmanuel Vadot			reg = <0x01c28000 0x400>;
819f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
820f126890aSEmmanuel Vadot			reg-shift = <2>;
821f126890aSEmmanuel Vadot			reg-io-width = <4>;
822f126890aSEmmanuel Vadot			clocks = <&ccu CLK_APB2_UART0>;
823f126890aSEmmanuel Vadot			resets = <&ccu RST_APB2_UART0>;
824f126890aSEmmanuel Vadot			dmas = <&dma 6>, <&dma 6>;
825f126890aSEmmanuel Vadot			dma-names = "tx", "rx";
826f126890aSEmmanuel Vadot			status = "disabled";
827f126890aSEmmanuel Vadot		};
828f126890aSEmmanuel Vadot
829f126890aSEmmanuel Vadot		uart1: serial@1c28400 {
830f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-uart";
831f126890aSEmmanuel Vadot			reg = <0x01c28400 0x400>;
832f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
833f126890aSEmmanuel Vadot			reg-shift = <2>;
834f126890aSEmmanuel Vadot			reg-io-width = <4>;
835f126890aSEmmanuel Vadot			clocks = <&ccu CLK_APB2_UART1>;
836f126890aSEmmanuel Vadot			resets = <&ccu RST_APB2_UART1>;
837f126890aSEmmanuel Vadot			dmas = <&dma 7>, <&dma 7>;
838f126890aSEmmanuel Vadot			dma-names = "tx", "rx";
839f126890aSEmmanuel Vadot			status = "disabled";
840f126890aSEmmanuel Vadot		};
841f126890aSEmmanuel Vadot
842f126890aSEmmanuel Vadot		uart2: serial@1c28800 {
843f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-uart";
844f126890aSEmmanuel Vadot			reg = <0x01c28800 0x400>;
845f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
846f126890aSEmmanuel Vadot			reg-shift = <2>;
847f126890aSEmmanuel Vadot			reg-io-width = <4>;
848f126890aSEmmanuel Vadot			clocks = <&ccu CLK_APB2_UART2>;
849f126890aSEmmanuel Vadot			resets = <&ccu RST_APB2_UART2>;
850f126890aSEmmanuel Vadot			dmas = <&dma 8>, <&dma 8>;
851f126890aSEmmanuel Vadot			dma-names = "tx", "rx";
852f126890aSEmmanuel Vadot			status = "disabled";
853f126890aSEmmanuel Vadot		};
854f126890aSEmmanuel Vadot
855f126890aSEmmanuel Vadot		uart3: serial@1c28c00 {
856f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-uart";
857f126890aSEmmanuel Vadot			reg = <0x01c28c00 0x400>;
858f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
859f126890aSEmmanuel Vadot			reg-shift = <2>;
860f126890aSEmmanuel Vadot			reg-io-width = <4>;
861f126890aSEmmanuel Vadot			clocks = <&ccu CLK_APB2_UART3>;
862f126890aSEmmanuel Vadot			resets = <&ccu RST_APB2_UART3>;
863f126890aSEmmanuel Vadot			dmas = <&dma 9>, <&dma 9>;
864f126890aSEmmanuel Vadot			dma-names = "tx", "rx";
865f126890aSEmmanuel Vadot			status = "disabled";
866f126890aSEmmanuel Vadot		};
867f126890aSEmmanuel Vadot
868f126890aSEmmanuel Vadot		uart4: serial@1c29000 {
869f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-uart";
870f126890aSEmmanuel Vadot			reg = <0x01c29000 0x400>;
871f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
872f126890aSEmmanuel Vadot			reg-shift = <2>;
873f126890aSEmmanuel Vadot			reg-io-width = <4>;
874f126890aSEmmanuel Vadot			clocks = <&ccu CLK_APB2_UART4>;
875f126890aSEmmanuel Vadot			resets = <&ccu RST_APB2_UART4>;
876f126890aSEmmanuel Vadot			dmas = <&dma 10>, <&dma 10>;
877f126890aSEmmanuel Vadot			dma-names = "tx", "rx";
878f126890aSEmmanuel Vadot			status = "disabled";
879f126890aSEmmanuel Vadot		};
880f126890aSEmmanuel Vadot
881f126890aSEmmanuel Vadot		uart5: serial@1c29400 {
882f126890aSEmmanuel Vadot			compatible = "snps,dw-apb-uart";
883f126890aSEmmanuel Vadot			reg = <0x01c29400 0x400>;
884f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
885f126890aSEmmanuel Vadot			reg-shift = <2>;
886f126890aSEmmanuel Vadot			reg-io-width = <4>;
887f126890aSEmmanuel Vadot			clocks = <&ccu CLK_APB2_UART5>;
888f126890aSEmmanuel Vadot			resets = <&ccu RST_APB2_UART5>;
889f126890aSEmmanuel Vadot			dmas = <&dma 22>, <&dma 22>;
890f126890aSEmmanuel Vadot			dma-names = "tx", "rx";
891f126890aSEmmanuel Vadot			status = "disabled";
892f126890aSEmmanuel Vadot		};
893f126890aSEmmanuel Vadot
894f126890aSEmmanuel Vadot		i2c0: i2c@1c2ac00 {
895f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-i2c";
896f126890aSEmmanuel Vadot			reg = <0x01c2ac00 0x400>;
897f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
898f126890aSEmmanuel Vadot			clocks = <&ccu CLK_APB2_I2C0>;
899f126890aSEmmanuel Vadot			resets = <&ccu RST_APB2_I2C0>;
900f126890aSEmmanuel Vadot			pinctrl-names = "default";
901f126890aSEmmanuel Vadot			pinctrl-0 = <&i2c0_pins>;
902f126890aSEmmanuel Vadot			status = "disabled";
903f126890aSEmmanuel Vadot			#address-cells = <1>;
904f126890aSEmmanuel Vadot			#size-cells = <0>;
905f126890aSEmmanuel Vadot		};
906f126890aSEmmanuel Vadot
907f126890aSEmmanuel Vadot		i2c1: i2c@1c2b000 {
908f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-i2c";
909f126890aSEmmanuel Vadot			reg = <0x01c2b000 0x400>;
910f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
911f126890aSEmmanuel Vadot			clocks = <&ccu CLK_APB2_I2C1>;
912f126890aSEmmanuel Vadot			resets = <&ccu RST_APB2_I2C1>;
913f126890aSEmmanuel Vadot			pinctrl-names = "default";
914f126890aSEmmanuel Vadot			pinctrl-0 = <&i2c1_pins>;
915f126890aSEmmanuel Vadot			status = "disabled";
916f126890aSEmmanuel Vadot			#address-cells = <1>;
917f126890aSEmmanuel Vadot			#size-cells = <0>;
918f126890aSEmmanuel Vadot		};
919f126890aSEmmanuel Vadot
920f126890aSEmmanuel Vadot		i2c2: i2c@1c2b400 {
921f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-i2c";
922f126890aSEmmanuel Vadot			reg = <0x01c2b400 0x400>;
923f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
924f126890aSEmmanuel Vadot			clocks = <&ccu CLK_APB2_I2C2>;
925f126890aSEmmanuel Vadot			resets = <&ccu RST_APB2_I2C2>;
926f126890aSEmmanuel Vadot			pinctrl-names = "default";
927f126890aSEmmanuel Vadot			pinctrl-0 = <&i2c2_pins>;
928f126890aSEmmanuel Vadot			status = "disabled";
929f126890aSEmmanuel Vadot			#address-cells = <1>;
930f126890aSEmmanuel Vadot			#size-cells = <0>;
931f126890aSEmmanuel Vadot		};
932f126890aSEmmanuel Vadot
933f126890aSEmmanuel Vadot		i2c3: i2c@1c2b800 {
934f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-i2c";
935f126890aSEmmanuel Vadot			reg = <0x01c2b800 0x400>;
936f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
937f126890aSEmmanuel Vadot			clocks = <&ccu CLK_APB2_I2C3>;
938f126890aSEmmanuel Vadot			resets = <&ccu RST_APB2_I2C3>;
939f126890aSEmmanuel Vadot			status = "disabled";
940f126890aSEmmanuel Vadot			#address-cells = <1>;
941f126890aSEmmanuel Vadot			#size-cells = <0>;
942f126890aSEmmanuel Vadot		};
943f126890aSEmmanuel Vadot
944f126890aSEmmanuel Vadot		gmac: ethernet@1c30000 {
945f126890aSEmmanuel Vadot			compatible = "allwinner,sun7i-a20-gmac";
946f126890aSEmmanuel Vadot			reg = <0x01c30000 0x1054>;
947f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
948f126890aSEmmanuel Vadot			interrupt-names = "macirq";
949f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_EMAC>, <&gmac_tx_clk>;
950f126890aSEmmanuel Vadot			clock-names = "stmmaceth", "allwinner_gmac_tx";
951f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_EMAC>;
952f126890aSEmmanuel Vadot			reset-names = "stmmaceth";
953f126890aSEmmanuel Vadot			snps,pbl = <2>;
954f126890aSEmmanuel Vadot			snps,fixed-burst;
955f126890aSEmmanuel Vadot			snps,force_sf_dma_mode;
956f126890aSEmmanuel Vadot			status = "disabled";
957f126890aSEmmanuel Vadot
958f126890aSEmmanuel Vadot			mdio: mdio {
959f126890aSEmmanuel Vadot				compatible = "snps,dwmac-mdio";
960f126890aSEmmanuel Vadot				#address-cells = <1>;
961f126890aSEmmanuel Vadot				#size-cells = <0>;
962f126890aSEmmanuel Vadot			};
963f126890aSEmmanuel Vadot		};
964f126890aSEmmanuel Vadot
965f126890aSEmmanuel Vadot		crypto: crypto-engine@1c15000 {
966f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-crypto",
967f126890aSEmmanuel Vadot				     "allwinner,sun4i-a10-crypto";
968f126890aSEmmanuel Vadot			reg = <0x01c15000 0x1000>;
969f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
970f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_SS>, <&ccu CLK_SS>;
971f126890aSEmmanuel Vadot			clock-names = "ahb", "mod";
972f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_SS>;
973f126890aSEmmanuel Vadot			reset-names = "ahb";
974f126890aSEmmanuel Vadot		};
975f126890aSEmmanuel Vadot
976f126890aSEmmanuel Vadot		codec: codec@1c22c00 {
977f126890aSEmmanuel Vadot			#sound-dai-cells = <0>;
978f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-codec";
979f126890aSEmmanuel Vadot			reg = <0x01c22c00 0x400>;
980f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
981f126890aSEmmanuel Vadot			clocks = <&ccu CLK_APB1_CODEC>, <&ccu CLK_CODEC>;
982f126890aSEmmanuel Vadot			clock-names = "apb", "codec";
983f126890aSEmmanuel Vadot			resets = <&ccu RST_APB1_CODEC>;
984f126890aSEmmanuel Vadot			dmas = <&dma 15>, <&dma 15>;
985f126890aSEmmanuel Vadot			dma-names = "rx", "tx";
986f126890aSEmmanuel Vadot			status = "disabled";
987f126890aSEmmanuel Vadot		};
988f126890aSEmmanuel Vadot
989f126890aSEmmanuel Vadot		timer@1c60000 {
990f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-hstimer",
991f126890aSEmmanuel Vadot				     "allwinner,sun7i-a20-hstimer";
992f126890aSEmmanuel Vadot			reg = <0x01c60000 0x1000>;
993f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
994f126890aSEmmanuel Vadot				     <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
995f126890aSEmmanuel Vadot				     <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
996f126890aSEmmanuel Vadot				     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
997f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_HSTIMER>;
998f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_HSTIMER>;
999f126890aSEmmanuel Vadot		};
1000f126890aSEmmanuel Vadot
1001f126890aSEmmanuel Vadot		spi0: spi@1c68000 {
1002f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-spi";
1003f126890aSEmmanuel Vadot			reg = <0x01c68000 0x1000>;
1004f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
1005f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_SPI0>, <&ccu CLK_SPI0>;
1006f126890aSEmmanuel Vadot			clock-names = "ahb", "mod";
1007f126890aSEmmanuel Vadot			dmas = <&dma 23>, <&dma 23>;
1008f126890aSEmmanuel Vadot			dma-names = "rx", "tx";
1009f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_SPI0>;
1010f126890aSEmmanuel Vadot			status = "disabled";
1011f126890aSEmmanuel Vadot			#address-cells = <1>;
1012f126890aSEmmanuel Vadot			#size-cells = <0>;
1013f126890aSEmmanuel Vadot		};
1014f126890aSEmmanuel Vadot
1015f126890aSEmmanuel Vadot		spi1: spi@1c69000 {
1016f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-spi";
1017f126890aSEmmanuel Vadot			reg = <0x01c69000 0x1000>;
1018f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
1019f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_SPI1>, <&ccu CLK_SPI1>;
1020f126890aSEmmanuel Vadot			clock-names = "ahb", "mod";
1021f126890aSEmmanuel Vadot			dmas = <&dma 24>, <&dma 24>;
1022f126890aSEmmanuel Vadot			dma-names = "rx", "tx";
1023f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_SPI1>;
1024f126890aSEmmanuel Vadot			status = "disabled";
1025f126890aSEmmanuel Vadot			#address-cells = <1>;
1026f126890aSEmmanuel Vadot			#size-cells = <0>;
1027f126890aSEmmanuel Vadot		};
1028f126890aSEmmanuel Vadot
1029f126890aSEmmanuel Vadot		spi2: spi@1c6a000 {
1030f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-spi";
1031f126890aSEmmanuel Vadot			reg = <0x01c6a000 0x1000>;
1032f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
1033f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_SPI2>, <&ccu CLK_SPI2>;
1034f126890aSEmmanuel Vadot			clock-names = "ahb", "mod";
1035f126890aSEmmanuel Vadot			dmas = <&dma 25>, <&dma 25>;
1036f126890aSEmmanuel Vadot			dma-names = "rx", "tx";
1037f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_SPI2>;
1038f126890aSEmmanuel Vadot			status = "disabled";
1039f126890aSEmmanuel Vadot			#address-cells = <1>;
1040f126890aSEmmanuel Vadot			#size-cells = <0>;
1041f126890aSEmmanuel Vadot		};
1042f126890aSEmmanuel Vadot
1043f126890aSEmmanuel Vadot		spi3: spi@1c6b000 {
1044f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-spi";
1045f126890aSEmmanuel Vadot			reg = <0x01c6b000 0x1000>;
1046f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
1047f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_SPI3>, <&ccu CLK_SPI3>;
1048f126890aSEmmanuel Vadot			clock-names = "ahb", "mod";
1049f126890aSEmmanuel Vadot			dmas = <&dma 26>, <&dma 26>;
1050f126890aSEmmanuel Vadot			dma-names = "rx", "tx";
1051f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_SPI3>;
1052f126890aSEmmanuel Vadot			status = "disabled";
1053f126890aSEmmanuel Vadot			#address-cells = <1>;
1054f126890aSEmmanuel Vadot			#size-cells = <0>;
1055f126890aSEmmanuel Vadot		};
1056f126890aSEmmanuel Vadot
1057f126890aSEmmanuel Vadot		gic: interrupt-controller@1c81000 {
1058f126890aSEmmanuel Vadot			compatible = "arm,gic-400";
1059f126890aSEmmanuel Vadot			reg = <0x01c81000 0x1000>,
1060f126890aSEmmanuel Vadot			      <0x01c82000 0x2000>,
1061f126890aSEmmanuel Vadot			      <0x01c84000 0x2000>,
1062f126890aSEmmanuel Vadot			      <0x01c86000 0x2000>;
1063f126890aSEmmanuel Vadot			interrupt-controller;
1064f126890aSEmmanuel Vadot			#interrupt-cells = <3>;
1065f126890aSEmmanuel Vadot			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
1066f126890aSEmmanuel Vadot		};
1067f126890aSEmmanuel Vadot
1068f126890aSEmmanuel Vadot		fe0: display-frontend@1e00000 {
1069f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-display-frontend";
1070f126890aSEmmanuel Vadot			reg = <0x01e00000 0x20000>;
1071f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
1072f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_FE0>, <&ccu CLK_FE0>,
1073f126890aSEmmanuel Vadot				 <&ccu CLK_DRAM_FE0>;
1074f126890aSEmmanuel Vadot			clock-names = "ahb", "mod",
1075f126890aSEmmanuel Vadot				      "ram";
1076f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_FE0>;
1077f126890aSEmmanuel Vadot
1078f126890aSEmmanuel Vadot			ports {
1079f126890aSEmmanuel Vadot				#address-cells = <1>;
1080f126890aSEmmanuel Vadot				#size-cells = <0>;
1081f126890aSEmmanuel Vadot
1082f126890aSEmmanuel Vadot				fe0_out: port@1 {
1083f126890aSEmmanuel Vadot					#address-cells = <1>;
1084f126890aSEmmanuel Vadot					#size-cells = <0>;
1085f126890aSEmmanuel Vadot					reg = <1>;
1086f126890aSEmmanuel Vadot
1087f126890aSEmmanuel Vadot					fe0_out_be0: endpoint@0 {
1088f126890aSEmmanuel Vadot						reg = <0>;
1089f126890aSEmmanuel Vadot						remote-endpoint = <&be0_in_fe0>;
1090f126890aSEmmanuel Vadot					};
1091f126890aSEmmanuel Vadot
1092f126890aSEmmanuel Vadot					fe0_out_be1: endpoint@1 {
1093f126890aSEmmanuel Vadot						reg = <1>;
1094f126890aSEmmanuel Vadot						remote-endpoint = <&be1_in_fe0>;
1095f126890aSEmmanuel Vadot					};
1096f126890aSEmmanuel Vadot				};
1097f126890aSEmmanuel Vadot			};
1098f126890aSEmmanuel Vadot		};
1099f126890aSEmmanuel Vadot
1100f126890aSEmmanuel Vadot		fe1: display-frontend@1e20000 {
1101f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-display-frontend";
1102f126890aSEmmanuel Vadot			reg = <0x01e20000 0x20000>;
1103f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
1104f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_FE1>, <&ccu CLK_FE1>,
1105f126890aSEmmanuel Vadot				 <&ccu CLK_DRAM_FE1>;
1106f126890aSEmmanuel Vadot			clock-names = "ahb", "mod",
1107f126890aSEmmanuel Vadot				      "ram";
1108f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_FE1>;
1109f126890aSEmmanuel Vadot
1110f126890aSEmmanuel Vadot			ports {
1111f126890aSEmmanuel Vadot				#address-cells = <1>;
1112f126890aSEmmanuel Vadot				#size-cells = <0>;
1113f126890aSEmmanuel Vadot
1114f126890aSEmmanuel Vadot				fe1_out: port@1 {
1115f126890aSEmmanuel Vadot					#address-cells = <1>;
1116f126890aSEmmanuel Vadot					#size-cells = <0>;
1117f126890aSEmmanuel Vadot					reg = <1>;
1118f126890aSEmmanuel Vadot
1119f126890aSEmmanuel Vadot					fe1_out_be0: endpoint@0 {
1120f126890aSEmmanuel Vadot						reg = <0>;
1121f126890aSEmmanuel Vadot						remote-endpoint = <&be0_in_fe1>;
1122f126890aSEmmanuel Vadot					};
1123f126890aSEmmanuel Vadot
1124f126890aSEmmanuel Vadot					fe1_out_be1: endpoint@1 {
1125f126890aSEmmanuel Vadot						reg = <1>;
1126f126890aSEmmanuel Vadot						remote-endpoint = <&be1_in_fe1>;
1127f126890aSEmmanuel Vadot					};
1128f126890aSEmmanuel Vadot				};
1129f126890aSEmmanuel Vadot			};
1130f126890aSEmmanuel Vadot		};
1131f126890aSEmmanuel Vadot
1132f126890aSEmmanuel Vadot		be1: display-backend@1e40000 {
1133f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-display-backend";
1134f126890aSEmmanuel Vadot			reg = <0x01e40000 0x10000>;
1135f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1136f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_BE1>, <&ccu CLK_BE1>,
1137f126890aSEmmanuel Vadot				 <&ccu CLK_DRAM_BE1>;
1138f126890aSEmmanuel Vadot			clock-names = "ahb", "mod",
1139f126890aSEmmanuel Vadot				      "ram";
1140f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_BE1>;
1141f126890aSEmmanuel Vadot
1142f126890aSEmmanuel Vadot			ports {
1143f126890aSEmmanuel Vadot				#address-cells = <1>;
1144f126890aSEmmanuel Vadot				#size-cells = <0>;
1145f126890aSEmmanuel Vadot
1146f126890aSEmmanuel Vadot				be1_in: port@0 {
1147f126890aSEmmanuel Vadot					#address-cells = <1>;
1148f126890aSEmmanuel Vadot					#size-cells = <0>;
1149f126890aSEmmanuel Vadot					reg = <0>;
1150f126890aSEmmanuel Vadot
1151f126890aSEmmanuel Vadot					be1_in_fe0: endpoint@0 {
1152f126890aSEmmanuel Vadot						reg = <0>;
1153f126890aSEmmanuel Vadot						remote-endpoint = <&fe0_out_be1>;
1154f126890aSEmmanuel Vadot					};
1155f126890aSEmmanuel Vadot
1156f126890aSEmmanuel Vadot					be1_in_fe1: endpoint@1 {
1157f126890aSEmmanuel Vadot						reg = <1>;
1158f126890aSEmmanuel Vadot						remote-endpoint = <&fe1_out_be1>;
1159f126890aSEmmanuel Vadot					};
1160f126890aSEmmanuel Vadot				};
1161f126890aSEmmanuel Vadot
1162f126890aSEmmanuel Vadot				be1_out: port@1 {
1163f126890aSEmmanuel Vadot					#address-cells = <1>;
1164f126890aSEmmanuel Vadot					#size-cells = <0>;
1165f126890aSEmmanuel Vadot					reg = <1>;
1166f126890aSEmmanuel Vadot
1167f126890aSEmmanuel Vadot					be1_out_drc1: endpoint@1 {
1168f126890aSEmmanuel Vadot						reg = <1>;
1169f126890aSEmmanuel Vadot						remote-endpoint = <&drc1_in_be1>;
1170f126890aSEmmanuel Vadot					};
1171f126890aSEmmanuel Vadot				};
1172f126890aSEmmanuel Vadot			};
1173f126890aSEmmanuel Vadot		};
1174f126890aSEmmanuel Vadot
1175f126890aSEmmanuel Vadot		drc1: drc@1e50000 {
1176f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-drc";
1177f126890aSEmmanuel Vadot			reg = <0x01e50000 0x10000>;
1178f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
1179f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_DRC1>, <&ccu CLK_IEP_DRC1>,
1180f126890aSEmmanuel Vadot				 <&ccu CLK_DRAM_DRC1>;
1181f126890aSEmmanuel Vadot			clock-names = "ahb", "mod",
1182f126890aSEmmanuel Vadot				      "ram";
1183f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_DRC1>;
1184f126890aSEmmanuel Vadot
1185f126890aSEmmanuel Vadot			ports {
1186f126890aSEmmanuel Vadot				#address-cells = <1>;
1187f126890aSEmmanuel Vadot				#size-cells = <0>;
1188f126890aSEmmanuel Vadot
1189f126890aSEmmanuel Vadot				drc1_in: port@0 {
1190f126890aSEmmanuel Vadot					#address-cells = <1>;
1191f126890aSEmmanuel Vadot					#size-cells = <0>;
1192f126890aSEmmanuel Vadot					reg = <0>;
1193f126890aSEmmanuel Vadot
1194f126890aSEmmanuel Vadot					drc1_in_be1: endpoint@1 {
1195f126890aSEmmanuel Vadot						reg = <1>;
1196f126890aSEmmanuel Vadot						remote-endpoint = <&be1_out_drc1>;
1197f126890aSEmmanuel Vadot					};
1198f126890aSEmmanuel Vadot				};
1199f126890aSEmmanuel Vadot
1200f126890aSEmmanuel Vadot				drc1_out: port@1 {
1201f126890aSEmmanuel Vadot					#address-cells = <1>;
1202f126890aSEmmanuel Vadot					#size-cells = <0>;
1203f126890aSEmmanuel Vadot					reg = <1>;
1204f126890aSEmmanuel Vadot
1205f126890aSEmmanuel Vadot					drc1_out_tcon0: endpoint@0 {
1206f126890aSEmmanuel Vadot						reg = <0>;
1207f126890aSEmmanuel Vadot						remote-endpoint = <&tcon0_in_drc1>;
1208f126890aSEmmanuel Vadot					};
1209f126890aSEmmanuel Vadot
1210f126890aSEmmanuel Vadot					drc1_out_tcon1: endpoint@1 {
1211f126890aSEmmanuel Vadot						reg = <1>;
1212f126890aSEmmanuel Vadot						remote-endpoint = <&tcon1_in_drc1>;
1213f126890aSEmmanuel Vadot					};
1214f126890aSEmmanuel Vadot				};
1215f126890aSEmmanuel Vadot			};
1216f126890aSEmmanuel Vadot		};
1217f126890aSEmmanuel Vadot
1218f126890aSEmmanuel Vadot		be0: display-backend@1e60000 {
1219f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-display-backend";
1220f126890aSEmmanuel Vadot			reg = <0x01e60000 0x10000>;
1221f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
1222f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_BE0>, <&ccu CLK_BE0>,
1223f126890aSEmmanuel Vadot				 <&ccu CLK_DRAM_BE0>;
1224f126890aSEmmanuel Vadot			clock-names = "ahb", "mod",
1225f126890aSEmmanuel Vadot				      "ram";
1226f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_BE0>;
1227f126890aSEmmanuel Vadot
1228f126890aSEmmanuel Vadot			ports {
1229f126890aSEmmanuel Vadot				#address-cells = <1>;
1230f126890aSEmmanuel Vadot				#size-cells = <0>;
1231f126890aSEmmanuel Vadot
1232f126890aSEmmanuel Vadot				be0_in: port@0 {
1233f126890aSEmmanuel Vadot					#address-cells = <1>;
1234f126890aSEmmanuel Vadot					#size-cells = <0>;
1235f126890aSEmmanuel Vadot					reg = <0>;
1236f126890aSEmmanuel Vadot
1237f126890aSEmmanuel Vadot					be0_in_fe0: endpoint@0 {
1238f126890aSEmmanuel Vadot						reg = <0>;
1239f126890aSEmmanuel Vadot						remote-endpoint = <&fe0_out_be0>;
1240f126890aSEmmanuel Vadot					};
1241f126890aSEmmanuel Vadot
1242f126890aSEmmanuel Vadot					be0_in_fe1: endpoint@1 {
1243f126890aSEmmanuel Vadot						reg = <1>;
1244f126890aSEmmanuel Vadot						remote-endpoint = <&fe1_out_be0>;
1245f126890aSEmmanuel Vadot					};
1246f126890aSEmmanuel Vadot				};
1247f126890aSEmmanuel Vadot
1248f126890aSEmmanuel Vadot				be0_out: port@1 {
1249f126890aSEmmanuel Vadot					reg = <1>;
1250f126890aSEmmanuel Vadot
1251f126890aSEmmanuel Vadot					be0_out_drc0: endpoint {
1252f126890aSEmmanuel Vadot						remote-endpoint = <&drc0_in_be0>;
1253f126890aSEmmanuel Vadot					};
1254f126890aSEmmanuel Vadot				};
1255f126890aSEmmanuel Vadot			};
1256f126890aSEmmanuel Vadot		};
1257f126890aSEmmanuel Vadot
1258f126890aSEmmanuel Vadot		drc0: drc@1e70000 {
1259f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-drc";
1260f126890aSEmmanuel Vadot			reg = <0x01e70000 0x10000>;
1261f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
1262f126890aSEmmanuel Vadot			clocks = <&ccu CLK_AHB1_DRC0>, <&ccu CLK_IEP_DRC0>,
1263f126890aSEmmanuel Vadot				 <&ccu CLK_DRAM_DRC0>;
1264f126890aSEmmanuel Vadot			clock-names = "ahb", "mod",
1265f126890aSEmmanuel Vadot				      "ram";
1266f126890aSEmmanuel Vadot			resets = <&ccu RST_AHB1_DRC0>;
1267f126890aSEmmanuel Vadot
1268f126890aSEmmanuel Vadot			ports {
1269f126890aSEmmanuel Vadot				#address-cells = <1>;
1270f126890aSEmmanuel Vadot				#size-cells = <0>;
1271f126890aSEmmanuel Vadot
1272f126890aSEmmanuel Vadot				drc0_in: port@0 {
1273f126890aSEmmanuel Vadot					reg = <0>;
1274f126890aSEmmanuel Vadot
1275f126890aSEmmanuel Vadot					drc0_in_be0: endpoint {
1276f126890aSEmmanuel Vadot						remote-endpoint = <&be0_out_drc0>;
1277f126890aSEmmanuel Vadot					};
1278f126890aSEmmanuel Vadot				};
1279f126890aSEmmanuel Vadot
1280f126890aSEmmanuel Vadot				drc0_out: port@1 {
1281f126890aSEmmanuel Vadot					#address-cells = <1>;
1282f126890aSEmmanuel Vadot					#size-cells = <0>;
1283f126890aSEmmanuel Vadot					reg = <1>;
1284f126890aSEmmanuel Vadot
1285f126890aSEmmanuel Vadot					drc0_out_tcon0: endpoint@0 {
1286f126890aSEmmanuel Vadot						reg = <0>;
1287f126890aSEmmanuel Vadot						remote-endpoint = <&tcon0_in_drc0>;
1288f126890aSEmmanuel Vadot					};
1289f126890aSEmmanuel Vadot
1290f126890aSEmmanuel Vadot					drc0_out_tcon1: endpoint@1 {
1291f126890aSEmmanuel Vadot						reg = <1>;
1292f126890aSEmmanuel Vadot						remote-endpoint = <&tcon1_in_drc0>;
1293f126890aSEmmanuel Vadot					};
1294f126890aSEmmanuel Vadot				};
1295f126890aSEmmanuel Vadot			};
1296f126890aSEmmanuel Vadot		};
1297f126890aSEmmanuel Vadot
1298f126890aSEmmanuel Vadot		rtc: rtc@1f00000 {
1299f126890aSEmmanuel Vadot			#clock-cells = <1>;
1300f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-rtc";
1301f126890aSEmmanuel Vadot			reg = <0x01f00000 0x54>;
1302f126890aSEmmanuel Vadot			interrupt-parent = <&r_intc>;
1303f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
1304f126890aSEmmanuel Vadot				     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
1305f126890aSEmmanuel Vadot			clocks = <&osc32k>;
1306f126890aSEmmanuel Vadot			clock-output-names = "osc32k";
1307f126890aSEmmanuel Vadot		};
1308f126890aSEmmanuel Vadot
1309f126890aSEmmanuel Vadot		r_intc: interrupt-controller@1f00c00 {
1310f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-r-intc";
1311f126890aSEmmanuel Vadot			interrupt-controller;
1312f126890aSEmmanuel Vadot			#interrupt-cells = <3>;
1313f126890aSEmmanuel Vadot			reg = <0x01f00c00 0x400>;
1314f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
1315f126890aSEmmanuel Vadot		};
1316f126890aSEmmanuel Vadot
1317f126890aSEmmanuel Vadot		prcm@1f01400 {
1318f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-prcm";
1319f126890aSEmmanuel Vadot			reg = <0x01f01400 0x200>;
1320f126890aSEmmanuel Vadot
1321*7d0873ebSEmmanuel Vadot			ar100: ar100-clk {
1322f126890aSEmmanuel Vadot				compatible = "allwinner,sun6i-a31-ar100-clk";
1323f126890aSEmmanuel Vadot				#clock-cells = <0>;
1324f126890aSEmmanuel Vadot				clocks = <&rtc CLK_OSC32K>, <&osc24M>,
1325f126890aSEmmanuel Vadot					 <&ccu CLK_PLL_PERIPH>,
1326f126890aSEmmanuel Vadot					 <&ccu CLK_PLL_PERIPH>;
1327f126890aSEmmanuel Vadot				clock-output-names = "ar100";
1328f126890aSEmmanuel Vadot			};
1329f126890aSEmmanuel Vadot
1330*7d0873ebSEmmanuel Vadot			ahb0: ahb0-clk {
1331f126890aSEmmanuel Vadot				compatible = "fixed-factor-clock";
1332f126890aSEmmanuel Vadot				#clock-cells = <0>;
1333f126890aSEmmanuel Vadot				clock-div = <1>;
1334f126890aSEmmanuel Vadot				clock-mult = <1>;
1335f126890aSEmmanuel Vadot				clocks = <&ar100>;
1336f126890aSEmmanuel Vadot				clock-output-names = "ahb0";
1337f126890aSEmmanuel Vadot			};
1338f126890aSEmmanuel Vadot
1339*7d0873ebSEmmanuel Vadot			apb0: apb0-clk {
1340f126890aSEmmanuel Vadot				compatible = "allwinner,sun6i-a31-apb0-clk";
1341f126890aSEmmanuel Vadot				#clock-cells = <0>;
1342f126890aSEmmanuel Vadot				clocks = <&ahb0>;
1343f126890aSEmmanuel Vadot				clock-output-names = "apb0";
1344f126890aSEmmanuel Vadot			};
1345f126890aSEmmanuel Vadot
1346*7d0873ebSEmmanuel Vadot			apb0_gates: apb0-gates-clk {
1347f126890aSEmmanuel Vadot				compatible = "allwinner,sun6i-a31-apb0-gates-clk";
1348f126890aSEmmanuel Vadot				#clock-cells = <1>;
1349f126890aSEmmanuel Vadot				clocks = <&apb0>;
1350f126890aSEmmanuel Vadot				clock-output-names = "apb0_pio", "apb0_ir",
1351f126890aSEmmanuel Vadot						"apb0_timer", "apb0_p2wi",
1352f126890aSEmmanuel Vadot						"apb0_uart", "apb0_1wire",
1353f126890aSEmmanuel Vadot						"apb0_i2c";
1354f126890aSEmmanuel Vadot			};
1355f126890aSEmmanuel Vadot
1356*7d0873ebSEmmanuel Vadot			ir_clk: ir-clk {
1357f126890aSEmmanuel Vadot				#clock-cells = <0>;
1358f126890aSEmmanuel Vadot				compatible = "allwinner,sun4i-a10-mod0-clk";
1359f126890aSEmmanuel Vadot				clocks = <&rtc CLK_OSC32K>, <&osc24M>;
1360f126890aSEmmanuel Vadot				clock-output-names = "ir";
1361f126890aSEmmanuel Vadot			};
1362f126890aSEmmanuel Vadot
1363*7d0873ebSEmmanuel Vadot			apb0_rst: apb0-rst {
1364f126890aSEmmanuel Vadot				compatible = "allwinner,sun6i-a31-clock-reset";
1365f126890aSEmmanuel Vadot				#reset-cells = <1>;
1366f126890aSEmmanuel Vadot			};
1367f126890aSEmmanuel Vadot		};
1368f126890aSEmmanuel Vadot
1369f126890aSEmmanuel Vadot		cpucfg@1f01c00 {
1370f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-cpuconfig";
1371f126890aSEmmanuel Vadot			reg = <0x01f01c00 0x300>;
1372f126890aSEmmanuel Vadot		};
1373f126890aSEmmanuel Vadot
1374f126890aSEmmanuel Vadot		ir: ir@1f02000 {
1375f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-ir";
1376f126890aSEmmanuel Vadot			clocks = <&apb0_gates 1>, <&ir_clk>;
1377f126890aSEmmanuel Vadot			clock-names = "apb", "ir";
1378f126890aSEmmanuel Vadot			resets = <&apb0_rst 1>;
1379f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
1380f126890aSEmmanuel Vadot			reg = <0x01f02000 0x40>;
1381f126890aSEmmanuel Vadot			status = "disabled";
1382f126890aSEmmanuel Vadot		};
1383f126890aSEmmanuel Vadot
1384f126890aSEmmanuel Vadot		r_pio: pinctrl@1f02c00 {
1385f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-r-pinctrl";
1386f126890aSEmmanuel Vadot			reg = <0x01f02c00 0x400>;
1387f126890aSEmmanuel Vadot			interrupt-parent = <&r_intc>;
1388f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
1389f126890aSEmmanuel Vadot				     <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
1390f126890aSEmmanuel Vadot			clocks = <&apb0_gates 0>, <&osc24M>, <&rtc CLK_OSC32K>;
1391f126890aSEmmanuel Vadot			clock-names = "apb", "hosc", "losc";
1392f126890aSEmmanuel Vadot			gpio-controller;
1393f126890aSEmmanuel Vadot			interrupt-controller;
1394f126890aSEmmanuel Vadot			#interrupt-cells = <3>;
1395f126890aSEmmanuel Vadot			#gpio-cells = <3>;
1396f126890aSEmmanuel Vadot
1397f126890aSEmmanuel Vadot			s_ir_rx_pin: s-ir-rx-pin {
1398f126890aSEmmanuel Vadot				pins = "PL4";
1399f126890aSEmmanuel Vadot				function = "s_ir";
1400f126890aSEmmanuel Vadot			};
1401f126890aSEmmanuel Vadot
1402f126890aSEmmanuel Vadot			s_p2wi_pins: s-p2wi-pins {
1403f126890aSEmmanuel Vadot				pins = "PL0", "PL1";
1404f126890aSEmmanuel Vadot				function = "s_p2wi";
1405f126890aSEmmanuel Vadot			};
1406f126890aSEmmanuel Vadot		};
1407f126890aSEmmanuel Vadot
1408f126890aSEmmanuel Vadot		p2wi: i2c@1f03400 {
1409f126890aSEmmanuel Vadot			compatible = "allwinner,sun6i-a31-p2wi";
1410f126890aSEmmanuel Vadot			reg = <0x01f03400 0x400>;
1411f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
1412f126890aSEmmanuel Vadot			clocks = <&apb0_gates 3>;
1413f126890aSEmmanuel Vadot			clock-frequency = <100000>;
1414f126890aSEmmanuel Vadot			resets = <&apb0_rst 3>;
1415f126890aSEmmanuel Vadot			pinctrl-names = "default";
1416f126890aSEmmanuel Vadot			pinctrl-0 = <&s_p2wi_pins>;
1417f126890aSEmmanuel Vadot			status = "disabled";
1418f126890aSEmmanuel Vadot			#address-cells = <1>;
1419f126890aSEmmanuel Vadot			#size-cells = <0>;
1420f126890aSEmmanuel Vadot		};
1421f126890aSEmmanuel Vadot	};
1422f126890aSEmmanuel Vadot};
1423