xref: /rk3399_rockchip-uboot/arch/arm/dts/sun6i-a31.dtsi (revision c6b968da78ce3fa7224c0ddf15fe170c7c05b27e)
153ab4af3SHans de Goede/*
253ab4af3SHans de Goede * Copyright 2013 Maxime Ripard
353ab4af3SHans de Goede *
453ab4af3SHans de Goede * Maxime Ripard <maxime.ripard@free-electrons.com>
553ab4af3SHans de Goede *
653ab4af3SHans de Goede * This file is dual-licensed: you can use it either under the terms
753ab4af3SHans de Goede * of the GPL or the X11 license, at your option. Note that this dual
853ab4af3SHans de Goede * licensing only applies to this file, and not this project as a
953ab4af3SHans de Goede * whole.
1053ab4af3SHans de Goede *
1153ab4af3SHans de Goede *  a) This file is free software; you can redistribute it and/or
1253ab4af3SHans de Goede *     modify it under the terms of the GNU General Public License as
1353ab4af3SHans de Goede *     published by the Free Software Foundation; either version 2 of the
1453ab4af3SHans de Goede *     License, or (at your option) any later version.
1553ab4af3SHans de Goede *
1653ab4af3SHans de Goede *     This file is distributed in the hope that it will be useful,
1753ab4af3SHans de Goede *     but WITHOUT ANY WARRANTY; without even the implied warranty of
1853ab4af3SHans de Goede *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1953ab4af3SHans de Goede *     GNU General Public License for more details.
2053ab4af3SHans de Goede *
2153ab4af3SHans de Goede * Or, alternatively,
2253ab4af3SHans de Goede *
2353ab4af3SHans de Goede *  b) Permission is hereby granted, free of charge, to any person
2453ab4af3SHans de Goede *     obtaining a copy of this software and associated documentation
2553ab4af3SHans de Goede *     files (the "Software"), to deal in the Software without
2653ab4af3SHans de Goede *     restriction, including without limitation the rights to use,
2753ab4af3SHans de Goede *     copy, modify, merge, publish, distribute, sublicense, and/or
2853ab4af3SHans de Goede *     sell copies of the Software, and to permit persons to whom the
2953ab4af3SHans de Goede *     Software is furnished to do so, subject to the following
3053ab4af3SHans de Goede *     conditions:
3153ab4af3SHans de Goede *
3253ab4af3SHans de Goede *     The above copyright notice and this permission notice shall be
3353ab4af3SHans de Goede *     included in all copies or substantial portions of the Software.
3453ab4af3SHans de Goede *
3553ab4af3SHans de Goede *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
3653ab4af3SHans de Goede *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
3753ab4af3SHans de Goede *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
3853ab4af3SHans de Goede *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
3953ab4af3SHans de Goede *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
4053ab4af3SHans de Goede *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
4153ab4af3SHans de Goede *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
4253ab4af3SHans de Goede *     OTHER DEALINGS IN THE SOFTWARE.
4353ab4af3SHans de Goede */
4453ab4af3SHans de Goede
4553ab4af3SHans de Goede#include "skeleton.dtsi"
4653ab4af3SHans de Goede
4753ab4af3SHans de Goede#include <dt-bindings/interrupt-controller/arm-gic.h>
4853ab4af3SHans de Goede#include <dt-bindings/thermal/thermal.h>
4953ab4af3SHans de Goede
5053ab4af3SHans de Goede#include <dt-bindings/pinctrl/sun4i-a10.h>
5153ab4af3SHans de Goede
5253ab4af3SHans de Goede/ {
5353ab4af3SHans de Goede	interrupt-parent = <&gic>;
5453ab4af3SHans de Goede
5553ab4af3SHans de Goede	aliases {
5653ab4af3SHans de Goede		ethernet0 = &gmac;
5753ab4af3SHans de Goede	};
5853ab4af3SHans de Goede
5953ab4af3SHans de Goede	chosen {
6053ab4af3SHans de Goede		#address-cells = <1>;
6153ab4af3SHans de Goede		#size-cells = <1>;
6253ab4af3SHans de Goede		ranges;
6353ab4af3SHans de Goede
6480e5f83cSHans de Goede		simplefb_hdmi: framebuffer@0 {
658b1ba941SHans de Goede			compatible = "allwinner,simple-framebuffer",
668b1ba941SHans de Goede				     "simple-framebuffer";
6753ab4af3SHans de Goede			allwinner,pipeline = "de_be0-lcd0-hdmi";
6853ab4af3SHans de Goede			clocks = <&pll6 0>;
6953ab4af3SHans de Goede			status = "disabled";
7053ab4af3SHans de Goede		};
7153ab4af3SHans de Goede
7280e5f83cSHans de Goede		simplefb_lcd: framebuffer@1 {
7353ab4af3SHans de Goede			compatible = "allwinner,simple-framebuffer",
7453ab4af3SHans de Goede				     "simple-framebuffer";
7553ab4af3SHans de Goede			allwinner,pipeline = "de_be0-lcd0";
7653ab4af3SHans de Goede			clocks = <&pll6 0>;
7753ab4af3SHans de Goede			status = "disabled";
7853ab4af3SHans de Goede		};
7953ab4af3SHans de Goede	};
8053ab4af3SHans de Goede
8153ab4af3SHans de Goede	timer {
8253ab4af3SHans de Goede		compatible = "arm,armv7-timer";
8353ab4af3SHans de Goede		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
8453ab4af3SHans de Goede			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
8553ab4af3SHans de Goede			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
8653ab4af3SHans de Goede			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
8753ab4af3SHans de Goede		clock-frequency = <24000000>;
8853ab4af3SHans de Goede		arm,cpu-registers-not-fw-configured;
8953ab4af3SHans de Goede	};
9053ab4af3SHans de Goede
9153ab4af3SHans de Goede	cpus {
9253ab4af3SHans de Goede		enable-method = "allwinner,sun6i-a31";
9353ab4af3SHans de Goede		#address-cells = <1>;
9453ab4af3SHans de Goede		#size-cells = <0>;
9553ab4af3SHans de Goede
9653ab4af3SHans de Goede		cpu0: cpu@0 {
9753ab4af3SHans de Goede			compatible = "arm,cortex-a7";
9853ab4af3SHans de Goede			device_type = "cpu";
9953ab4af3SHans de Goede			reg = <0>;
10053ab4af3SHans de Goede			clocks = <&cpu>;
10153ab4af3SHans de Goede			clock-latency = <244144>; /* 8 32k periods */
10253ab4af3SHans de Goede			operating-points = <
10353ab4af3SHans de Goede				/* kHz	  uV */
10453ab4af3SHans de Goede				1008000	1200000
10553ab4af3SHans de Goede				864000	1200000
10653ab4af3SHans de Goede				720000	1100000
10753ab4af3SHans de Goede				480000	1000000
10853ab4af3SHans de Goede				>;
10953ab4af3SHans de Goede			#cooling-cells = <2>;
11053ab4af3SHans de Goede			cooling-min-level = <0>;
11153ab4af3SHans de Goede			cooling-max-level = <3>;
11253ab4af3SHans de Goede		};
11353ab4af3SHans de Goede
11453ab4af3SHans de Goede		cpu@1 {
11553ab4af3SHans de Goede			compatible = "arm,cortex-a7";
11653ab4af3SHans de Goede			device_type = "cpu";
11753ab4af3SHans de Goede			reg = <1>;
11853ab4af3SHans de Goede		};
11953ab4af3SHans de Goede
12053ab4af3SHans de Goede		cpu@2 {
12153ab4af3SHans de Goede			compatible = "arm,cortex-a7";
12253ab4af3SHans de Goede			device_type = "cpu";
12353ab4af3SHans de Goede			reg = <2>;
12453ab4af3SHans de Goede		};
12553ab4af3SHans de Goede
12653ab4af3SHans de Goede		cpu@3 {
12753ab4af3SHans de Goede			compatible = "arm,cortex-a7";
12853ab4af3SHans de Goede			device_type = "cpu";
12953ab4af3SHans de Goede			reg = <3>;
13053ab4af3SHans de Goede		};
13153ab4af3SHans de Goede	};
13253ab4af3SHans de Goede
13353ab4af3SHans de Goede	thermal-zones {
13453ab4af3SHans de Goede		cpu_thermal {
13553ab4af3SHans de Goede			/* milliseconds */
13653ab4af3SHans de Goede			polling-delay-passive = <250>;
13753ab4af3SHans de Goede			polling-delay = <1000>;
13853ab4af3SHans de Goede			thermal-sensors = <&rtp>;
13953ab4af3SHans de Goede
14053ab4af3SHans de Goede			cooling-maps {
14153ab4af3SHans de Goede				map0 {
14253ab4af3SHans de Goede					trip = <&cpu_alert0>;
14353ab4af3SHans de Goede					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
14453ab4af3SHans de Goede				};
14553ab4af3SHans de Goede			};
14653ab4af3SHans de Goede
14753ab4af3SHans de Goede			trips {
14853ab4af3SHans de Goede				cpu_alert0: cpu_alert0 {
14953ab4af3SHans de Goede					/* milliCelsius */
15053ab4af3SHans de Goede					temperature = <70000>;
15153ab4af3SHans de Goede					hysteresis = <2000>;
15253ab4af3SHans de Goede					type = "passive";
15353ab4af3SHans de Goede				};
15453ab4af3SHans de Goede
15553ab4af3SHans de Goede				cpu_crit: cpu_crit {
15653ab4af3SHans de Goede					/* milliCelsius */
15753ab4af3SHans de Goede					temperature = <100000>;
15853ab4af3SHans de Goede					hysteresis = <2000>;
15953ab4af3SHans de Goede					type = "critical";
16053ab4af3SHans de Goede				};
16153ab4af3SHans de Goede			};
16253ab4af3SHans de Goede		};
16353ab4af3SHans de Goede	};
16453ab4af3SHans de Goede
16553ab4af3SHans de Goede	memory {
16653ab4af3SHans de Goede		reg = <0x40000000 0x80000000>;
16753ab4af3SHans de Goede	};
16853ab4af3SHans de Goede
16953ab4af3SHans de Goede	pmu {
17053ab4af3SHans de Goede		compatible = "arm,cortex-a7-pmu", "arm,cortex-a15-pmu";
17153ab4af3SHans de Goede		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
17253ab4af3SHans de Goede			     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
17353ab4af3SHans de Goede			     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
17453ab4af3SHans de Goede			     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
17553ab4af3SHans de Goede	};
17653ab4af3SHans de Goede
17753ab4af3SHans de Goede	clocks {
17853ab4af3SHans de Goede		#address-cells = <1>;
17953ab4af3SHans de Goede		#size-cells = <1>;
18053ab4af3SHans de Goede		ranges;
18153ab4af3SHans de Goede
18253ab4af3SHans de Goede		osc24M: osc24M {
18353ab4af3SHans de Goede			#clock-cells = <0>;
18453ab4af3SHans de Goede			compatible = "fixed-clock";
18553ab4af3SHans de Goede			clock-frequency = <24000000>;
18653ab4af3SHans de Goede		};
18753ab4af3SHans de Goede
18853ab4af3SHans de Goede		osc32k: clk@0 {
18953ab4af3SHans de Goede			#clock-cells = <0>;
19053ab4af3SHans de Goede			compatible = "fixed-clock";
19153ab4af3SHans de Goede			clock-frequency = <32768>;
19253ab4af3SHans de Goede			clock-output-names = "osc32k";
19353ab4af3SHans de Goede		};
19453ab4af3SHans de Goede
19553ab4af3SHans de Goede		pll1: clk@01c20000 {
19653ab4af3SHans de Goede			#clock-cells = <0>;
19753ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-pll1-clk";
19853ab4af3SHans de Goede			reg = <0x01c20000 0x4>;
19953ab4af3SHans de Goede			clocks = <&osc24M>;
20053ab4af3SHans de Goede			clock-output-names = "pll1";
20153ab4af3SHans de Goede		};
20253ab4af3SHans de Goede
20353ab4af3SHans de Goede		pll6: clk@01c20028 {
20453ab4af3SHans de Goede			#clock-cells = <1>;
20553ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-pll6-clk";
20653ab4af3SHans de Goede			reg = <0x01c20028 0x4>;
20753ab4af3SHans de Goede			clocks = <&osc24M>;
20853ab4af3SHans de Goede			clock-output-names = "pll6", "pll6x2";
20953ab4af3SHans de Goede		};
21053ab4af3SHans de Goede
21153ab4af3SHans de Goede		cpu: cpu@01c20050 {
21253ab4af3SHans de Goede			#clock-cells = <0>;
21353ab4af3SHans de Goede			compatible = "allwinner,sun4i-a10-cpu-clk";
21453ab4af3SHans de Goede			reg = <0x01c20050 0x4>;
21553ab4af3SHans de Goede
21653ab4af3SHans de Goede			/*
21753ab4af3SHans de Goede			 * PLL1 is listed twice here.
21853ab4af3SHans de Goede			 * While it looks suspicious, it's actually documented
21953ab4af3SHans de Goede			 * that way both in the datasheet and in the code from
22053ab4af3SHans de Goede			 * Allwinner.
22153ab4af3SHans de Goede			 */
22253ab4af3SHans de Goede			clocks = <&osc32k>, <&osc24M>, <&pll1>, <&pll1>;
22353ab4af3SHans de Goede			clock-output-names = "cpu";
22453ab4af3SHans de Goede		};
22553ab4af3SHans de Goede
22653ab4af3SHans de Goede		axi: axi@01c20050 {
22753ab4af3SHans de Goede			#clock-cells = <0>;
22853ab4af3SHans de Goede			compatible = "allwinner,sun4i-a10-axi-clk";
22953ab4af3SHans de Goede			reg = <0x01c20050 0x4>;
23053ab4af3SHans de Goede			clocks = <&cpu>;
23153ab4af3SHans de Goede			clock-output-names = "axi";
23253ab4af3SHans de Goede		};
23353ab4af3SHans de Goede
23453ab4af3SHans de Goede		ahb1: ahb1@01c20054 {
23553ab4af3SHans de Goede			#clock-cells = <0>;
23653ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-ahb1-clk";
23753ab4af3SHans de Goede			reg = <0x01c20054 0x4>;
23853ab4af3SHans de Goede			clocks = <&osc32k>, <&osc24M>, <&axi>, <&pll6 0>;
23953ab4af3SHans de Goede			clock-output-names = "ahb1";
2408b1ba941SHans de Goede
2418b1ba941SHans de Goede			/*
2428b1ba941SHans de Goede			 * Clock AHB1 from PLL6, instead of CPU/AXI which
2438b1ba941SHans de Goede			 * has rate changes due to cpufreq. Also the DMA
2448b1ba941SHans de Goede			 * controller requires AHB1 clocked from PLL6.
2458b1ba941SHans de Goede			 */
2468b1ba941SHans de Goede			assigned-clocks = <&ahb1>;
2478b1ba941SHans de Goede			assigned-clock-parents = <&pll6 0>;
24853ab4af3SHans de Goede		};
24953ab4af3SHans de Goede
25053ab4af3SHans de Goede		ahb1_gates: clk@01c20060 {
25153ab4af3SHans de Goede			#clock-cells = <1>;
25253ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-ahb1-gates-clk";
25353ab4af3SHans de Goede			reg = <0x01c20060 0x8>;
25453ab4af3SHans de Goede			clocks = <&ahb1>;
25580e5f83cSHans de Goede			clock-indices = <1>, <5>,
25680e5f83cSHans de Goede					<6>, <8>, <9>,
25780e5f83cSHans de Goede					<10>, <11>, <12>,
25880e5f83cSHans de Goede					<13>, <14>,
25980e5f83cSHans de Goede					<17>, <18>, <19>,
26080e5f83cSHans de Goede					<20>, <21>, <22>,
26180e5f83cSHans de Goede					<23>, <24>, <26>,
26280e5f83cSHans de Goede					<27>, <29>,
26380e5f83cSHans de Goede					<30>, <31>, <32>,
26480e5f83cSHans de Goede					<36>, <37>, <40>,
26580e5f83cSHans de Goede					<43>, <44>, <45>,
26680e5f83cSHans de Goede					<46>, <47>, <50>,
26780e5f83cSHans de Goede					<52>, <55>, <56>,
26880e5f83cSHans de Goede					<57>, <58>;
26953ab4af3SHans de Goede			clock-output-names = "ahb1_mipidsi", "ahb1_ss",
27053ab4af3SHans de Goede					"ahb1_dma", "ahb1_mmc0", "ahb1_mmc1",
27153ab4af3SHans de Goede					"ahb1_mmc2", "ahb1_mmc3", "ahb1_nand1",
27253ab4af3SHans de Goede					"ahb1_nand0", "ahb1_sdram",
27353ab4af3SHans de Goede					"ahb1_gmac", "ahb1_ts", "ahb1_hstimer",
27453ab4af3SHans de Goede					"ahb1_spi0", "ahb1_spi1", "ahb1_spi2",
27553ab4af3SHans de Goede					"ahb1_spi3", "ahb1_otg", "ahb1_ehci0",
27653ab4af3SHans de Goede					"ahb1_ehci1", "ahb1_ohci0",
27753ab4af3SHans de Goede					"ahb1_ohci1", "ahb1_ohci2", "ahb1_ve",
27853ab4af3SHans de Goede					"ahb1_lcd0", "ahb1_lcd1", "ahb1_csi",
27953ab4af3SHans de Goede					"ahb1_hdmi", "ahb1_de0", "ahb1_de1",
28053ab4af3SHans de Goede					"ahb1_fe0", "ahb1_fe1", "ahb1_mp",
28153ab4af3SHans de Goede					"ahb1_gpu", "ahb1_deu0", "ahb1_deu1",
28253ab4af3SHans de Goede					"ahb1_drc0", "ahb1_drc1";
28353ab4af3SHans de Goede		};
28453ab4af3SHans de Goede
28553ab4af3SHans de Goede		apb1: apb1@01c20054 {
28653ab4af3SHans de Goede			#clock-cells = <0>;
28753ab4af3SHans de Goede			compatible = "allwinner,sun4i-a10-apb0-clk";
28853ab4af3SHans de Goede			reg = <0x01c20054 0x4>;
28953ab4af3SHans de Goede			clocks = <&ahb1>;
29053ab4af3SHans de Goede			clock-output-names = "apb1";
29153ab4af3SHans de Goede		};
29253ab4af3SHans de Goede
29353ab4af3SHans de Goede		apb1_gates: clk@01c20068 {
29453ab4af3SHans de Goede			#clock-cells = <1>;
29553ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-apb1-gates-clk";
29653ab4af3SHans de Goede			reg = <0x01c20068 0x4>;
29753ab4af3SHans de Goede			clocks = <&apb1>;
29880e5f83cSHans de Goede			clock-indices = <0>, <4>,
29980e5f83cSHans de Goede					<5>, <12>,
30080e5f83cSHans de Goede					<13>;
30153ab4af3SHans de Goede			clock-output-names = "apb1_codec", "apb1_digital_mic",
30253ab4af3SHans de Goede					"apb1_pio", "apb1_daudio0",
30353ab4af3SHans de Goede					"apb1_daudio1";
30453ab4af3SHans de Goede		};
30553ab4af3SHans de Goede
30653ab4af3SHans de Goede		apb2: clk@01c20058 {
30753ab4af3SHans de Goede			#clock-cells = <0>;
30853ab4af3SHans de Goede			compatible = "allwinner,sun4i-a10-apb1-clk";
30953ab4af3SHans de Goede			reg = <0x01c20058 0x4>;
31053ab4af3SHans de Goede			clocks = <&osc32k>, <&osc24M>, <&pll6 0>, <&pll6 0>;
31153ab4af3SHans de Goede			clock-output-names = "apb2";
31253ab4af3SHans de Goede		};
31353ab4af3SHans de Goede
31453ab4af3SHans de Goede		apb2_gates: clk@01c2006c {
31553ab4af3SHans de Goede			#clock-cells = <1>;
31653ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-apb2-gates-clk";
31753ab4af3SHans de Goede			reg = <0x01c2006c 0x4>;
31853ab4af3SHans de Goede			clocks = <&apb2>;
31980e5f83cSHans de Goede			clock-indices = <0>, <1>,
32080e5f83cSHans de Goede					<2>, <3>, <16>,
32180e5f83cSHans de Goede					<17>, <18>, <19>,
32280e5f83cSHans de Goede					<20>, <21>;
32353ab4af3SHans de Goede			clock-output-names = "apb2_i2c0", "apb2_i2c1",
3248b1ba941SHans de Goede					     "apb2_i2c2", "apb2_i2c3",
3258b1ba941SHans de Goede					     "apb2_uart0", "apb2_uart1",
3268b1ba941SHans de Goede					     "apb2_uart2", "apb2_uart3",
32753ab4af3SHans de Goede					     "apb2_uart4", "apb2_uart5";
32853ab4af3SHans de Goede		};
32953ab4af3SHans de Goede
33053ab4af3SHans de Goede		mmc0_clk: clk@01c20088 {
33153ab4af3SHans de Goede			#clock-cells = <1>;
33253ab4af3SHans de Goede			compatible = "allwinner,sun4i-a10-mmc-clk";
33353ab4af3SHans de Goede			reg = <0x01c20088 0x4>;
33453ab4af3SHans de Goede			clocks = <&osc24M>, <&pll6 0>;
33553ab4af3SHans de Goede			clock-output-names = "mmc0",
33653ab4af3SHans de Goede					     "mmc0_output",
33753ab4af3SHans de Goede					     "mmc0_sample";
33853ab4af3SHans de Goede		};
33953ab4af3SHans de Goede
34053ab4af3SHans de Goede		mmc1_clk: clk@01c2008c {
34153ab4af3SHans de Goede			#clock-cells = <1>;
34253ab4af3SHans de Goede			compatible = "allwinner,sun4i-a10-mmc-clk";
34353ab4af3SHans de Goede			reg = <0x01c2008c 0x4>;
34453ab4af3SHans de Goede			clocks = <&osc24M>, <&pll6 0>;
34553ab4af3SHans de Goede			clock-output-names = "mmc1",
34653ab4af3SHans de Goede					     "mmc1_output",
34753ab4af3SHans de Goede					     "mmc1_sample";
34853ab4af3SHans de Goede		};
34953ab4af3SHans de Goede
35053ab4af3SHans de Goede		mmc2_clk: clk@01c20090 {
35153ab4af3SHans de Goede			#clock-cells = <1>;
35253ab4af3SHans de Goede			compatible = "allwinner,sun4i-a10-mmc-clk";
35353ab4af3SHans de Goede			reg = <0x01c20090 0x4>;
35453ab4af3SHans de Goede			clocks = <&osc24M>, <&pll6 0>;
35553ab4af3SHans de Goede			clock-output-names = "mmc2",
35653ab4af3SHans de Goede					     "mmc2_output",
35753ab4af3SHans de Goede					     "mmc2_sample";
35853ab4af3SHans de Goede		};
35953ab4af3SHans de Goede
36053ab4af3SHans de Goede		mmc3_clk: clk@01c20094 {
36153ab4af3SHans de Goede			#clock-cells = <1>;
36253ab4af3SHans de Goede			compatible = "allwinner,sun4i-a10-mmc-clk";
36353ab4af3SHans de Goede			reg = <0x01c20094 0x4>;
36453ab4af3SHans de Goede			clocks = <&osc24M>, <&pll6 0>;
36553ab4af3SHans de Goede			clock-output-names = "mmc3",
36653ab4af3SHans de Goede					     "mmc3_output",
36753ab4af3SHans de Goede					     "mmc3_sample";
36853ab4af3SHans de Goede		};
36953ab4af3SHans de Goede
37080e5f83cSHans de Goede		ss_clk: clk@01c2009c {
37180e5f83cSHans de Goede			#clock-cells = <0>;
37280e5f83cSHans de Goede			compatible = "allwinner,sun4i-a10-mod0-clk";
37380e5f83cSHans de Goede			reg = <0x01c2009c 0x4>;
37480e5f83cSHans de Goede			clocks = <&osc24M>, <&pll6 0>;
37580e5f83cSHans de Goede			clock-output-names = "ss";
37680e5f83cSHans de Goede		};
37780e5f83cSHans de Goede
37853ab4af3SHans de Goede		spi0_clk: clk@01c200a0 {
37953ab4af3SHans de Goede			#clock-cells = <0>;
38053ab4af3SHans de Goede			compatible = "allwinner,sun4i-a10-mod0-clk";
38153ab4af3SHans de Goede			reg = <0x01c200a0 0x4>;
38253ab4af3SHans de Goede			clocks = <&osc24M>, <&pll6 0>;
38353ab4af3SHans de Goede			clock-output-names = "spi0";
38453ab4af3SHans de Goede		};
38553ab4af3SHans de Goede
38653ab4af3SHans de Goede		spi1_clk: clk@01c200a4 {
38753ab4af3SHans de Goede			#clock-cells = <0>;
38853ab4af3SHans de Goede			compatible = "allwinner,sun4i-a10-mod0-clk";
38953ab4af3SHans de Goede			reg = <0x01c200a4 0x4>;
39053ab4af3SHans de Goede			clocks = <&osc24M>, <&pll6 0>;
39153ab4af3SHans de Goede			clock-output-names = "spi1";
39253ab4af3SHans de Goede		};
39353ab4af3SHans de Goede
39453ab4af3SHans de Goede		spi2_clk: clk@01c200a8 {
39553ab4af3SHans de Goede			#clock-cells = <0>;
39653ab4af3SHans de Goede			compatible = "allwinner,sun4i-a10-mod0-clk";
39753ab4af3SHans de Goede			reg = <0x01c200a8 0x4>;
39853ab4af3SHans de Goede			clocks = <&osc24M>, <&pll6 0>;
39953ab4af3SHans de Goede			clock-output-names = "spi2";
40053ab4af3SHans de Goede		};
40153ab4af3SHans de Goede
40253ab4af3SHans de Goede		spi3_clk: clk@01c200ac {
40353ab4af3SHans de Goede			#clock-cells = <0>;
40453ab4af3SHans de Goede			compatible = "allwinner,sun4i-a10-mod0-clk";
40553ab4af3SHans de Goede			reg = <0x01c200ac 0x4>;
40653ab4af3SHans de Goede			clocks = <&osc24M>, <&pll6 0>;
40753ab4af3SHans de Goede			clock-output-names = "spi3";
40853ab4af3SHans de Goede		};
40953ab4af3SHans de Goede
41053ab4af3SHans de Goede		usb_clk: clk@01c200cc {
41153ab4af3SHans de Goede			#clock-cells = <1>;
41253ab4af3SHans de Goede			#reset-cells = <1>;
41353ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-usb-clk";
41453ab4af3SHans de Goede			reg = <0x01c200cc 0x4>;
41553ab4af3SHans de Goede			clocks = <&osc24M>;
41680e5f83cSHans de Goede			clock-indices = <8>, <9>, <10>,
41780e5f83cSHans de Goede					<16>, <17>,
41880e5f83cSHans de Goede					<18>;
41953ab4af3SHans de Goede			clock-output-names = "usb_phy0", "usb_phy1", "usb_phy2",
42053ab4af3SHans de Goede					     "usb_ohci0", "usb_ohci1",
42153ab4af3SHans de Goede					     "usb_ohci2";
42253ab4af3SHans de Goede		};
42353ab4af3SHans de Goede
42453ab4af3SHans de Goede		/*
4258b1ba941SHans de Goede		 * The following two are dummy clocks, placeholders
4268b1ba941SHans de Goede		 * used in the gmac_tx clock. The gmac driver will
4278b1ba941SHans de Goede		 * choose one parent depending on the PHY interface
4288b1ba941SHans de Goede		 * mode, using clk_set_rate auto-reparenting.
4298b1ba941SHans de Goede		 *
4308b1ba941SHans de Goede		 * The actual TX clock rate is not controlled by the
4318b1ba941SHans de Goede		 * gmac_tx clock.
43253ab4af3SHans de Goede		 */
43353ab4af3SHans de Goede		mii_phy_tx_clk: clk@1 {
43453ab4af3SHans de Goede			#clock-cells = <0>;
43553ab4af3SHans de Goede			compatible = "fixed-clock";
43653ab4af3SHans de Goede			clock-frequency = <25000000>;
43753ab4af3SHans de Goede			clock-output-names = "mii_phy_tx";
43853ab4af3SHans de Goede		};
43953ab4af3SHans de Goede
44053ab4af3SHans de Goede		gmac_int_tx_clk: clk@2 {
44153ab4af3SHans de Goede			#clock-cells = <0>;
44253ab4af3SHans de Goede			compatible = "fixed-clock";
44353ab4af3SHans de Goede			clock-frequency = <125000000>;
44453ab4af3SHans de Goede			clock-output-names = "gmac_int_tx";
44553ab4af3SHans de Goede		};
44653ab4af3SHans de Goede
44753ab4af3SHans de Goede		gmac_tx_clk: clk@01c200d0 {
44853ab4af3SHans de Goede			#clock-cells = <0>;
44953ab4af3SHans de Goede			compatible = "allwinner,sun7i-a20-gmac-clk";
45053ab4af3SHans de Goede			reg = <0x01c200d0 0x4>;
45153ab4af3SHans de Goede			clocks = <&mii_phy_tx_clk>, <&gmac_int_tx_clk>;
45253ab4af3SHans de Goede			clock-output-names = "gmac_tx";
45353ab4af3SHans de Goede		};
45453ab4af3SHans de Goede	};
45553ab4af3SHans de Goede
45653ab4af3SHans de Goede	soc@01c00000 {
45753ab4af3SHans de Goede		compatible = "simple-bus";
45853ab4af3SHans de Goede		#address-cells = <1>;
45953ab4af3SHans de Goede		#size-cells = <1>;
46053ab4af3SHans de Goede		ranges;
46153ab4af3SHans de Goede
46253ab4af3SHans de Goede		dma: dma-controller@01c02000 {
46353ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-dma";
46453ab4af3SHans de Goede			reg = <0x01c02000 0x1000>;
46553ab4af3SHans de Goede			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
46653ab4af3SHans de Goede			clocks = <&ahb1_gates 6>;
46753ab4af3SHans de Goede			resets = <&ahb1_rst 6>;
46853ab4af3SHans de Goede			#dma-cells = <1>;
46953ab4af3SHans de Goede		};
47053ab4af3SHans de Goede
47153ab4af3SHans de Goede		mmc0: mmc@01c0f000 {
472*860fbdd4SHans de Goede			compatible = "allwinner,sun7i-a20-mmc",
473*860fbdd4SHans de Goede				     "allwinner,sun5i-a13-mmc";
47453ab4af3SHans de Goede			reg = <0x01c0f000 0x1000>;
47553ab4af3SHans de Goede			clocks = <&ahb1_gates 8>,
47653ab4af3SHans de Goede				 <&mmc0_clk 0>,
47753ab4af3SHans de Goede				 <&mmc0_clk 1>,
47853ab4af3SHans de Goede				 <&mmc0_clk 2>;
47953ab4af3SHans de Goede			clock-names = "ahb",
48053ab4af3SHans de Goede				      "mmc",
48153ab4af3SHans de Goede				      "output",
48253ab4af3SHans de Goede				      "sample";
48353ab4af3SHans de Goede			resets = <&ahb1_rst 8>;
48453ab4af3SHans de Goede			reset-names = "ahb";
48553ab4af3SHans de Goede			interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
48653ab4af3SHans de Goede			status = "disabled";
48753ab4af3SHans de Goede			#address-cells = <1>;
48853ab4af3SHans de Goede			#size-cells = <0>;
48953ab4af3SHans de Goede		};
49053ab4af3SHans de Goede
49153ab4af3SHans de Goede		mmc1: mmc@01c10000 {
492*860fbdd4SHans de Goede			compatible = "allwinner,sun7i-a20-mmc",
493*860fbdd4SHans de Goede				     "allwinner,sun5i-a13-mmc";
49453ab4af3SHans de Goede			reg = <0x01c10000 0x1000>;
49553ab4af3SHans de Goede			clocks = <&ahb1_gates 9>,
49653ab4af3SHans de Goede				 <&mmc1_clk 0>,
49753ab4af3SHans de Goede				 <&mmc1_clk 1>,
49853ab4af3SHans de Goede				 <&mmc1_clk 2>;
49953ab4af3SHans de Goede			clock-names = "ahb",
50053ab4af3SHans de Goede				      "mmc",
50153ab4af3SHans de Goede				      "output",
50253ab4af3SHans de Goede				      "sample";
50353ab4af3SHans de Goede			resets = <&ahb1_rst 9>;
50453ab4af3SHans de Goede			reset-names = "ahb";
50553ab4af3SHans de Goede			interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
50653ab4af3SHans de Goede			status = "disabled";
50753ab4af3SHans de Goede			#address-cells = <1>;
50853ab4af3SHans de Goede			#size-cells = <0>;
50953ab4af3SHans de Goede		};
51053ab4af3SHans de Goede
51153ab4af3SHans de Goede		mmc2: mmc@01c11000 {
512*860fbdd4SHans de Goede			compatible = "allwinner,sun7i-a20-mmc",
513*860fbdd4SHans de Goede				     "allwinner,sun5i-a13-mmc";
51453ab4af3SHans de Goede			reg = <0x01c11000 0x1000>;
51553ab4af3SHans de Goede			clocks = <&ahb1_gates 10>,
51653ab4af3SHans de Goede				 <&mmc2_clk 0>,
51753ab4af3SHans de Goede				 <&mmc2_clk 1>,
51853ab4af3SHans de Goede				 <&mmc2_clk 2>;
51953ab4af3SHans de Goede			clock-names = "ahb",
52053ab4af3SHans de Goede				      "mmc",
52153ab4af3SHans de Goede				      "output",
52253ab4af3SHans de Goede				      "sample";
52353ab4af3SHans de Goede			resets = <&ahb1_rst 10>;
52453ab4af3SHans de Goede			reset-names = "ahb";
52553ab4af3SHans de Goede			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
52653ab4af3SHans de Goede			status = "disabled";
52753ab4af3SHans de Goede			#address-cells = <1>;
52853ab4af3SHans de Goede			#size-cells = <0>;
52953ab4af3SHans de Goede		};
53053ab4af3SHans de Goede
53153ab4af3SHans de Goede		mmc3: mmc@01c12000 {
532*860fbdd4SHans de Goede			compatible = "allwinner,sun7i-a20-mmc",
533*860fbdd4SHans de Goede				     "allwinner,sun5i-a13-mmc";
53453ab4af3SHans de Goede			reg = <0x01c12000 0x1000>;
53553ab4af3SHans de Goede			clocks = <&ahb1_gates 11>,
53653ab4af3SHans de Goede				 <&mmc3_clk 0>,
53753ab4af3SHans de Goede				 <&mmc3_clk 1>,
53853ab4af3SHans de Goede				 <&mmc3_clk 2>;
53953ab4af3SHans de Goede			clock-names = "ahb",
54053ab4af3SHans de Goede				      "mmc",
54153ab4af3SHans de Goede				      "output",
54253ab4af3SHans de Goede				      "sample";
54353ab4af3SHans de Goede			resets = <&ahb1_rst 11>;
54453ab4af3SHans de Goede			reset-names = "ahb";
54553ab4af3SHans de Goede			interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
54653ab4af3SHans de Goede			status = "disabled";
54753ab4af3SHans de Goede			#address-cells = <1>;
54853ab4af3SHans de Goede			#size-cells = <0>;
54953ab4af3SHans de Goede		};
55053ab4af3SHans de Goede
551da52a4a3SHans de Goede		usb_otg: usb@01c19000 {
552da52a4a3SHans de Goede			compatible = "allwinner,sun6i-a31-musb";
553da52a4a3SHans de Goede			reg = <0x01c19000 0x0400>;
554da52a4a3SHans de Goede			clocks = <&ahb1_gates 24>;
555da52a4a3SHans de Goede			resets = <&ahb1_rst 24>;
556da52a4a3SHans de Goede			interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
557da52a4a3SHans de Goede			interrupt-names = "mc";
558da52a4a3SHans de Goede			phys = <&usbphy 0>;
559da52a4a3SHans de Goede			phy-names = "usb";
560da52a4a3SHans de Goede			extcon = <&usbphy 0>;
561da52a4a3SHans de Goede			status = "disabled";
562da52a4a3SHans de Goede		};
563da52a4a3SHans de Goede
56453ab4af3SHans de Goede		usbphy: phy@01c19400 {
56553ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-usb-phy";
56653ab4af3SHans de Goede			reg = <0x01c19400 0x10>,
56753ab4af3SHans de Goede			      <0x01c1a800 0x4>,
56853ab4af3SHans de Goede			      <0x01c1b800 0x4>;
56953ab4af3SHans de Goede			reg-names = "phy_ctrl",
57053ab4af3SHans de Goede				    "pmu1",
57153ab4af3SHans de Goede				    "pmu2";
57253ab4af3SHans de Goede			clocks = <&usb_clk 8>,
57353ab4af3SHans de Goede				 <&usb_clk 9>,
57453ab4af3SHans de Goede				 <&usb_clk 10>;
57553ab4af3SHans de Goede			clock-names = "usb0_phy",
57653ab4af3SHans de Goede				      "usb1_phy",
57753ab4af3SHans de Goede				      "usb2_phy";
57853ab4af3SHans de Goede			resets = <&usb_clk 0>,
57953ab4af3SHans de Goede				 <&usb_clk 1>,
58053ab4af3SHans de Goede				 <&usb_clk 2>;
58153ab4af3SHans de Goede			reset-names = "usb0_reset",
58253ab4af3SHans de Goede				      "usb1_reset",
58353ab4af3SHans de Goede				      "usb2_reset";
58453ab4af3SHans de Goede			status = "disabled";
58553ab4af3SHans de Goede			#phy-cells = <1>;
58653ab4af3SHans de Goede		};
58753ab4af3SHans de Goede
58853ab4af3SHans de Goede		ehci0: usb@01c1a000 {
58953ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-ehci", "generic-ehci";
59053ab4af3SHans de Goede			reg = <0x01c1a000 0x100>;
59153ab4af3SHans de Goede			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
59253ab4af3SHans de Goede			clocks = <&ahb1_gates 26>;
59353ab4af3SHans de Goede			resets = <&ahb1_rst 26>;
59453ab4af3SHans de Goede			phys = <&usbphy 1>;
59553ab4af3SHans de Goede			phy-names = "usb";
59653ab4af3SHans de Goede			status = "disabled";
59753ab4af3SHans de Goede		};
59853ab4af3SHans de Goede
59953ab4af3SHans de Goede		ohci0: usb@01c1a400 {
60053ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-ohci", "generic-ohci";
60153ab4af3SHans de Goede			reg = <0x01c1a400 0x100>;
60253ab4af3SHans de Goede			interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
60353ab4af3SHans de Goede			clocks = <&ahb1_gates 29>, <&usb_clk 16>;
60453ab4af3SHans de Goede			resets = <&ahb1_rst 29>;
60553ab4af3SHans de Goede			phys = <&usbphy 1>;
60653ab4af3SHans de Goede			phy-names = "usb";
60753ab4af3SHans de Goede			status = "disabled";
60853ab4af3SHans de Goede		};
60953ab4af3SHans de Goede
61053ab4af3SHans de Goede		ehci1: usb@01c1b000 {
61153ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-ehci", "generic-ehci";
61253ab4af3SHans de Goede			reg = <0x01c1b000 0x100>;
61353ab4af3SHans de Goede			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
61453ab4af3SHans de Goede			clocks = <&ahb1_gates 27>;
61553ab4af3SHans de Goede			resets = <&ahb1_rst 27>;
61653ab4af3SHans de Goede			phys = <&usbphy 2>;
61753ab4af3SHans de Goede			phy-names = "usb";
61853ab4af3SHans de Goede			status = "disabled";
61953ab4af3SHans de Goede		};
62053ab4af3SHans de Goede
62153ab4af3SHans de Goede		ohci1: usb@01c1b400 {
62253ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-ohci", "generic-ohci";
62353ab4af3SHans de Goede			reg = <0x01c1b400 0x100>;
62453ab4af3SHans de Goede			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
62553ab4af3SHans de Goede			clocks = <&ahb1_gates 30>, <&usb_clk 17>;
62653ab4af3SHans de Goede			resets = <&ahb1_rst 30>;
62753ab4af3SHans de Goede			phys = <&usbphy 2>;
62853ab4af3SHans de Goede			phy-names = "usb";
62953ab4af3SHans de Goede			status = "disabled";
63053ab4af3SHans de Goede		};
63153ab4af3SHans de Goede
63253ab4af3SHans de Goede		ohci2: usb@01c1c400 {
63353ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-ohci", "generic-ohci";
63453ab4af3SHans de Goede			reg = <0x01c1c400 0x100>;
63553ab4af3SHans de Goede			interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
63653ab4af3SHans de Goede			clocks = <&ahb1_gates 31>, <&usb_clk 18>;
63753ab4af3SHans de Goede			resets = <&ahb1_rst 31>;
63853ab4af3SHans de Goede			status = "disabled";
63953ab4af3SHans de Goede		};
64053ab4af3SHans de Goede
64153ab4af3SHans de Goede		pio: pinctrl@01c20800 {
64253ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-pinctrl";
64353ab4af3SHans de Goede			reg = <0x01c20800 0x400>;
64453ab4af3SHans de Goede			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
64553ab4af3SHans de Goede				     <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
64653ab4af3SHans de Goede				     <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
64753ab4af3SHans de Goede				     <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
64853ab4af3SHans de Goede			clocks = <&apb1_gates 5>;
64953ab4af3SHans de Goede			gpio-controller;
65053ab4af3SHans de Goede			interrupt-controller;
651da52a4a3SHans de Goede			#interrupt-cells = <3>;
65253ab4af3SHans de Goede			#gpio-cells = <3>;
65353ab4af3SHans de Goede
65453ab4af3SHans de Goede			uart0_pins_a: uart0@0 {
65553ab4af3SHans de Goede				allwinner,pins = "PH20", "PH21";
65653ab4af3SHans de Goede				allwinner,function = "uart0";
65753ab4af3SHans de Goede				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
65853ab4af3SHans de Goede				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
65953ab4af3SHans de Goede			};
66053ab4af3SHans de Goede
66153ab4af3SHans de Goede			i2c0_pins_a: i2c0@0 {
66253ab4af3SHans de Goede				allwinner,pins = "PH14", "PH15";
66353ab4af3SHans de Goede				allwinner,function = "i2c0";
66453ab4af3SHans de Goede				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
66553ab4af3SHans de Goede				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
66653ab4af3SHans de Goede			};
66753ab4af3SHans de Goede
66853ab4af3SHans de Goede			i2c1_pins_a: i2c1@0 {
66953ab4af3SHans de Goede				allwinner,pins = "PH16", "PH17";
67053ab4af3SHans de Goede				allwinner,function = "i2c1";
67153ab4af3SHans de Goede				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
67253ab4af3SHans de Goede				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
67353ab4af3SHans de Goede			};
67453ab4af3SHans de Goede
67553ab4af3SHans de Goede			i2c2_pins_a: i2c2@0 {
67653ab4af3SHans de Goede				allwinner,pins = "PH18", "PH19";
67753ab4af3SHans de Goede				allwinner,function = "i2c2";
67853ab4af3SHans de Goede				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
67953ab4af3SHans de Goede				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
68053ab4af3SHans de Goede			};
68153ab4af3SHans de Goede
68253ab4af3SHans de Goede			mmc0_pins_a: mmc0@0 {
6838b1ba941SHans de Goede				allwinner,pins = "PF0", "PF1", "PF2",
6848b1ba941SHans de Goede						 "PF3", "PF4", "PF5";
68553ab4af3SHans de Goede				allwinner,function = "mmc0";
68653ab4af3SHans de Goede				allwinner,drive = <SUN4I_PINCTRL_30_MA>;
68753ab4af3SHans de Goede				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
68853ab4af3SHans de Goede			};
68953ab4af3SHans de Goede
69053ab4af3SHans de Goede			mmc1_pins_a: mmc1@0 {
69153ab4af3SHans de Goede				allwinner,pins = "PG0", "PG1", "PG2", "PG3",
69253ab4af3SHans de Goede						 "PG4", "PG5";
69353ab4af3SHans de Goede				allwinner,function = "mmc1";
69453ab4af3SHans de Goede				allwinner,drive = <SUN4I_PINCTRL_30_MA>;
69553ab4af3SHans de Goede				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
69653ab4af3SHans de Goede			};
69753ab4af3SHans de Goede
698fc01daeeSHans de Goede			mmc2_pins_a: mmc2@0 {
699fc01daeeSHans de Goede				allwinner,pins = "PC6", "PC7", "PC8", "PC9",
700fc01daeeSHans de Goede						 "PC10", "PC11";
701fc01daeeSHans de Goede				allwinner,function = "mmc2";
702fc01daeeSHans de Goede				allwinner,drive = <SUN4I_PINCTRL_30_MA>;
703fc01daeeSHans de Goede				allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
704fc01daeeSHans de Goede			};
705fc01daeeSHans de Goede
706fc01daeeSHans de Goede			mmc2_8bit_emmc_pins: mmc2@1 {
707fc01daeeSHans de Goede				allwinner,pins = "PC6", "PC7", "PC8", "PC9",
708fc01daeeSHans de Goede						 "PC10", "PC11", "PC12",
709fc01daeeSHans de Goede						 "PC13", "PC14", "PC15",
710fc01daeeSHans de Goede						 "PC24";
711fc01daeeSHans de Goede				allwinner,function = "mmc2";
712fc01daeeSHans de Goede				allwinner,drive = <SUN4I_PINCTRL_30_MA>;
713fc01daeeSHans de Goede				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
714fc01daeeSHans de Goede			};
715fc01daeeSHans de Goede
71680e5f83cSHans de Goede			mmc3_8bit_emmc_pins: mmc3@1 {
71780e5f83cSHans de Goede				allwinner,pins = "PC6", "PC7", "PC8", "PC9",
71880e5f83cSHans de Goede						 "PC10", "PC11", "PC12",
71980e5f83cSHans de Goede						 "PC13", "PC14", "PC15",
72080e5f83cSHans de Goede						 "PC24";
72180e5f83cSHans de Goede				allwinner,function = "mmc3";
72280e5f83cSHans de Goede				allwinner,drive = <SUN4I_PINCTRL_40_MA>;
72380e5f83cSHans de Goede				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
72480e5f83cSHans de Goede			};
72580e5f83cSHans de Goede
72653ab4af3SHans de Goede			gmac_pins_mii_a: gmac_mii@0 {
72753ab4af3SHans de Goede				allwinner,pins = "PA0", "PA1", "PA2", "PA3",
72853ab4af3SHans de Goede						"PA8", "PA9", "PA11",
72953ab4af3SHans de Goede						"PA12", "PA13", "PA14", "PA19",
73053ab4af3SHans de Goede						"PA20", "PA21", "PA22", "PA23",
73153ab4af3SHans de Goede						"PA24", "PA26", "PA27";
73253ab4af3SHans de Goede				allwinner,function = "gmac";
73353ab4af3SHans de Goede				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
73453ab4af3SHans de Goede				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
73553ab4af3SHans de Goede			};
73653ab4af3SHans de Goede
73753ab4af3SHans de Goede			gmac_pins_gmii_a: gmac_gmii@0 {
73853ab4af3SHans de Goede				allwinner,pins = "PA0", "PA1", "PA2", "PA3",
73953ab4af3SHans de Goede						"PA4", "PA5", "PA6", "PA7",
74053ab4af3SHans de Goede						"PA8", "PA9", "PA10", "PA11",
74153ab4af3SHans de Goede						"PA12", "PA13", "PA14",	"PA15",
74253ab4af3SHans de Goede						"PA16", "PA17", "PA18", "PA19",
74353ab4af3SHans de Goede						"PA20", "PA21", "PA22", "PA23",
74453ab4af3SHans de Goede						"PA24", "PA25", "PA26", "PA27";
74553ab4af3SHans de Goede				allwinner,function = "gmac";
74653ab4af3SHans de Goede				/*
74753ab4af3SHans de Goede				 * data lines in GMII mode run at 125MHz and
74853ab4af3SHans de Goede				 * might need a higher signal drive strength
74953ab4af3SHans de Goede				 */
75053ab4af3SHans de Goede				allwinner,drive = <SUN4I_PINCTRL_30_MA>;
75153ab4af3SHans de Goede				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
75253ab4af3SHans de Goede			};
75353ab4af3SHans de Goede
75453ab4af3SHans de Goede			gmac_pins_rgmii_a: gmac_rgmii@0 {
75553ab4af3SHans de Goede				allwinner,pins = "PA0", "PA1", "PA2", "PA3",
75653ab4af3SHans de Goede						"PA9", "PA10", "PA11",
75753ab4af3SHans de Goede						"PA12", "PA13", "PA14", "PA19",
75853ab4af3SHans de Goede						"PA20", "PA25", "PA26", "PA27";
75953ab4af3SHans de Goede				allwinner,function = "gmac";
76053ab4af3SHans de Goede				/*
76153ab4af3SHans de Goede				 * data lines in RGMII mode use DDR mode
76253ab4af3SHans de Goede				 * and need a higher signal drive strength
76353ab4af3SHans de Goede				 */
76453ab4af3SHans de Goede				allwinner,drive = <SUN4I_PINCTRL_40_MA>;
76553ab4af3SHans de Goede				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
76653ab4af3SHans de Goede			};
76753ab4af3SHans de Goede		};
76853ab4af3SHans de Goede
76953ab4af3SHans de Goede		ahb1_rst: reset@01c202c0 {
77053ab4af3SHans de Goede			#reset-cells = <1>;
77153ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-ahb1-reset";
77253ab4af3SHans de Goede			reg = <0x01c202c0 0xc>;
77353ab4af3SHans de Goede		};
77453ab4af3SHans de Goede
77553ab4af3SHans de Goede		apb1_rst: reset@01c202d0 {
77653ab4af3SHans de Goede			#reset-cells = <1>;
77753ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-clock-reset";
77853ab4af3SHans de Goede			reg = <0x01c202d0 0x4>;
77953ab4af3SHans de Goede		};
78053ab4af3SHans de Goede
78153ab4af3SHans de Goede		apb2_rst: reset@01c202d8 {
78253ab4af3SHans de Goede			#reset-cells = <1>;
78353ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-clock-reset";
78453ab4af3SHans de Goede			reg = <0x01c202d8 0x4>;
78553ab4af3SHans de Goede		};
78653ab4af3SHans de Goede
78753ab4af3SHans de Goede		timer@01c20c00 {
78853ab4af3SHans de Goede			compatible = "allwinner,sun4i-a10-timer";
78953ab4af3SHans de Goede			reg = <0x01c20c00 0xa0>;
79053ab4af3SHans de Goede			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
79153ab4af3SHans de Goede				     <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
79253ab4af3SHans de Goede				     <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
79353ab4af3SHans de Goede				     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
79453ab4af3SHans de Goede				     <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
79553ab4af3SHans de Goede			clocks = <&osc24M>;
79653ab4af3SHans de Goede		};
79753ab4af3SHans de Goede
79853ab4af3SHans de Goede		wdt1: watchdog@01c20ca0 {
79953ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-wdt";
80053ab4af3SHans de Goede			reg = <0x01c20ca0 0x20>;
80153ab4af3SHans de Goede		};
80253ab4af3SHans de Goede
80380e5f83cSHans de Goede		lradc: lradc@01c22800 {
80480e5f83cSHans de Goede			compatible = "allwinner,sun4i-a10-lradc-keys";
80580e5f83cSHans de Goede			reg = <0x01c22800 0x100>;
80680e5f83cSHans de Goede			interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
80780e5f83cSHans de Goede			status = "disabled";
80880e5f83cSHans de Goede		};
80980e5f83cSHans de Goede
81053ab4af3SHans de Goede		rtp: rtp@01c25000 {
81153ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-ts";
81253ab4af3SHans de Goede			reg = <0x01c25000 0x100>;
81353ab4af3SHans de Goede			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
81453ab4af3SHans de Goede			#thermal-sensor-cells = <0>;
81553ab4af3SHans de Goede		};
81653ab4af3SHans de Goede
81753ab4af3SHans de Goede		uart0: serial@01c28000 {
81853ab4af3SHans de Goede			compatible = "snps,dw-apb-uart";
81953ab4af3SHans de Goede			reg = <0x01c28000 0x400>;
82053ab4af3SHans de Goede			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
82153ab4af3SHans de Goede			reg-shift = <2>;
82253ab4af3SHans de Goede			reg-io-width = <4>;
82353ab4af3SHans de Goede			clocks = <&apb2_gates 16>;
82453ab4af3SHans de Goede			resets = <&apb2_rst 16>;
82553ab4af3SHans de Goede			dmas = <&dma 6>, <&dma 6>;
82653ab4af3SHans de Goede			dma-names = "rx", "tx";
82753ab4af3SHans de Goede			status = "disabled";
82853ab4af3SHans de Goede		};
82953ab4af3SHans de Goede
83053ab4af3SHans de Goede		uart1: serial@01c28400 {
83153ab4af3SHans de Goede			compatible = "snps,dw-apb-uart";
83253ab4af3SHans de Goede			reg = <0x01c28400 0x400>;
83353ab4af3SHans de Goede			interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
83453ab4af3SHans de Goede			reg-shift = <2>;
83553ab4af3SHans de Goede			reg-io-width = <4>;
83653ab4af3SHans de Goede			clocks = <&apb2_gates 17>;
83753ab4af3SHans de Goede			resets = <&apb2_rst 17>;
83853ab4af3SHans de Goede			dmas = <&dma 7>, <&dma 7>;
83953ab4af3SHans de Goede			dma-names = "rx", "tx";
84053ab4af3SHans de Goede			status = "disabled";
84153ab4af3SHans de Goede		};
84253ab4af3SHans de Goede
84353ab4af3SHans de Goede		uart2: serial@01c28800 {
84453ab4af3SHans de Goede			compatible = "snps,dw-apb-uart";
84553ab4af3SHans de Goede			reg = <0x01c28800 0x400>;
84653ab4af3SHans de Goede			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
84753ab4af3SHans de Goede			reg-shift = <2>;
84853ab4af3SHans de Goede			reg-io-width = <4>;
84953ab4af3SHans de Goede			clocks = <&apb2_gates 18>;
85053ab4af3SHans de Goede			resets = <&apb2_rst 18>;
85153ab4af3SHans de Goede			dmas = <&dma 8>, <&dma 8>;
85253ab4af3SHans de Goede			dma-names = "rx", "tx";
85353ab4af3SHans de Goede			status = "disabled";
85453ab4af3SHans de Goede		};
85553ab4af3SHans de Goede
85653ab4af3SHans de Goede		uart3: serial@01c28c00 {
85753ab4af3SHans de Goede			compatible = "snps,dw-apb-uart";
85853ab4af3SHans de Goede			reg = <0x01c28c00 0x400>;
85953ab4af3SHans de Goede			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
86053ab4af3SHans de Goede			reg-shift = <2>;
86153ab4af3SHans de Goede			reg-io-width = <4>;
86253ab4af3SHans de Goede			clocks = <&apb2_gates 19>;
86353ab4af3SHans de Goede			resets = <&apb2_rst 19>;
86453ab4af3SHans de Goede			dmas = <&dma 9>, <&dma 9>;
86553ab4af3SHans de Goede			dma-names = "rx", "tx";
86653ab4af3SHans de Goede			status = "disabled";
86753ab4af3SHans de Goede		};
86853ab4af3SHans de Goede
86953ab4af3SHans de Goede		uart4: serial@01c29000 {
87053ab4af3SHans de Goede			compatible = "snps,dw-apb-uart";
87153ab4af3SHans de Goede			reg = <0x01c29000 0x400>;
87253ab4af3SHans de Goede			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
87353ab4af3SHans de Goede			reg-shift = <2>;
87453ab4af3SHans de Goede			reg-io-width = <4>;
87553ab4af3SHans de Goede			clocks = <&apb2_gates 20>;
87653ab4af3SHans de Goede			resets = <&apb2_rst 20>;
87753ab4af3SHans de Goede			dmas = <&dma 10>, <&dma 10>;
87853ab4af3SHans de Goede			dma-names = "rx", "tx";
87953ab4af3SHans de Goede			status = "disabled";
88053ab4af3SHans de Goede		};
88153ab4af3SHans de Goede
88253ab4af3SHans de Goede		uart5: serial@01c29400 {
88353ab4af3SHans de Goede			compatible = "snps,dw-apb-uart";
88453ab4af3SHans de Goede			reg = <0x01c29400 0x400>;
88553ab4af3SHans de Goede			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
88653ab4af3SHans de Goede			reg-shift = <2>;
88753ab4af3SHans de Goede			reg-io-width = <4>;
88853ab4af3SHans de Goede			clocks = <&apb2_gates 21>;
88953ab4af3SHans de Goede			resets = <&apb2_rst 21>;
89053ab4af3SHans de Goede			dmas = <&dma 22>, <&dma 22>;
89153ab4af3SHans de Goede			dma-names = "rx", "tx";
89253ab4af3SHans de Goede			status = "disabled";
89353ab4af3SHans de Goede		};
89453ab4af3SHans de Goede
89553ab4af3SHans de Goede		i2c0: i2c@01c2ac00 {
89653ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-i2c";
89753ab4af3SHans de Goede			reg = <0x01c2ac00 0x400>;
89853ab4af3SHans de Goede			interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
89953ab4af3SHans de Goede			clocks = <&apb2_gates 0>;
90053ab4af3SHans de Goede			resets = <&apb2_rst 0>;
90153ab4af3SHans de Goede			status = "disabled";
90253ab4af3SHans de Goede			#address-cells = <1>;
90353ab4af3SHans de Goede			#size-cells = <0>;
90453ab4af3SHans de Goede		};
90553ab4af3SHans de Goede
90653ab4af3SHans de Goede		i2c1: i2c@01c2b000 {
90753ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-i2c";
90853ab4af3SHans de Goede			reg = <0x01c2b000 0x400>;
90953ab4af3SHans de Goede			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
91053ab4af3SHans de Goede			clocks = <&apb2_gates 1>;
91153ab4af3SHans de Goede			resets = <&apb2_rst 1>;
91253ab4af3SHans de Goede			status = "disabled";
91353ab4af3SHans de Goede			#address-cells = <1>;
91453ab4af3SHans de Goede			#size-cells = <0>;
91553ab4af3SHans de Goede		};
91653ab4af3SHans de Goede
91753ab4af3SHans de Goede		i2c2: i2c@01c2b400 {
91853ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-i2c";
91953ab4af3SHans de Goede			reg = <0x01c2b400 0x400>;
92053ab4af3SHans de Goede			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
92153ab4af3SHans de Goede			clocks = <&apb2_gates 2>;
92253ab4af3SHans de Goede			resets = <&apb2_rst 2>;
92353ab4af3SHans de Goede			status = "disabled";
92453ab4af3SHans de Goede			#address-cells = <1>;
92553ab4af3SHans de Goede			#size-cells = <0>;
92653ab4af3SHans de Goede		};
92753ab4af3SHans de Goede
92853ab4af3SHans de Goede		i2c3: i2c@01c2b800 {
92953ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-i2c";
93053ab4af3SHans de Goede			reg = <0x01c2b800 0x400>;
93153ab4af3SHans de Goede			interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
93253ab4af3SHans de Goede			clocks = <&apb2_gates 3>;
93353ab4af3SHans de Goede			resets = <&apb2_rst 3>;
93453ab4af3SHans de Goede			status = "disabled";
93553ab4af3SHans de Goede			#address-cells = <1>;
93653ab4af3SHans de Goede			#size-cells = <0>;
93753ab4af3SHans de Goede		};
93853ab4af3SHans de Goede
93953ab4af3SHans de Goede		gmac: ethernet@01c30000 {
94053ab4af3SHans de Goede			compatible = "allwinner,sun7i-a20-gmac";
94153ab4af3SHans de Goede			reg = <0x01c30000 0x1054>;
94253ab4af3SHans de Goede			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
94353ab4af3SHans de Goede			interrupt-names = "macirq";
94453ab4af3SHans de Goede			clocks = <&ahb1_gates 17>, <&gmac_tx_clk>;
94553ab4af3SHans de Goede			clock-names = "stmmaceth", "allwinner_gmac_tx";
94653ab4af3SHans de Goede			resets = <&ahb1_rst 17>;
94753ab4af3SHans de Goede			reset-names = "stmmaceth";
94853ab4af3SHans de Goede			snps,pbl = <2>;
94953ab4af3SHans de Goede			snps,fixed-burst;
95053ab4af3SHans de Goede			snps,force_sf_dma_mode;
95153ab4af3SHans de Goede			status = "disabled";
95253ab4af3SHans de Goede			#address-cells = <1>;
95353ab4af3SHans de Goede			#size-cells = <0>;
95453ab4af3SHans de Goede		};
95553ab4af3SHans de Goede
95680e5f83cSHans de Goede		crypto: crypto-engine@01c15000 {
95780e5f83cSHans de Goede			compatible = "allwinner,sun4i-a10-crypto";
95880e5f83cSHans de Goede			reg = <0x01c15000 0x1000>;
95980e5f83cSHans de Goede			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
96080e5f83cSHans de Goede			clocks = <&ahb1_gates 5>, <&ss_clk>;
96180e5f83cSHans de Goede			clock-names = "ahb", "mod";
96280e5f83cSHans de Goede			resets = <&ahb1_rst 5>;
96380e5f83cSHans de Goede			reset-names = "ahb";
96480e5f83cSHans de Goede		};
96580e5f83cSHans de Goede
96653ab4af3SHans de Goede		timer@01c60000 {
9678b1ba941SHans de Goede			compatible = "allwinner,sun6i-a31-hstimer",
9688b1ba941SHans de Goede				     "allwinner,sun7i-a20-hstimer";
96953ab4af3SHans de Goede			reg = <0x01c60000 0x1000>;
97053ab4af3SHans de Goede			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
97153ab4af3SHans de Goede				     <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
97253ab4af3SHans de Goede				     <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
97353ab4af3SHans de Goede				     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
97453ab4af3SHans de Goede			clocks = <&ahb1_gates 19>;
97553ab4af3SHans de Goede			resets = <&ahb1_rst 19>;
97653ab4af3SHans de Goede		};
97753ab4af3SHans de Goede
97853ab4af3SHans de Goede		spi0: spi@01c68000 {
97953ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-spi";
98053ab4af3SHans de Goede			reg = <0x01c68000 0x1000>;
98153ab4af3SHans de Goede			interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
98253ab4af3SHans de Goede			clocks = <&ahb1_gates 20>, <&spi0_clk>;
98353ab4af3SHans de Goede			clock-names = "ahb", "mod";
98453ab4af3SHans de Goede			dmas = <&dma 23>, <&dma 23>;
98553ab4af3SHans de Goede			dma-names = "rx", "tx";
98653ab4af3SHans de Goede			resets = <&ahb1_rst 20>;
98753ab4af3SHans de Goede			status = "disabled";
98853ab4af3SHans de Goede		};
98953ab4af3SHans de Goede
99053ab4af3SHans de Goede		spi1: spi@01c69000 {
99153ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-spi";
99253ab4af3SHans de Goede			reg = <0x01c69000 0x1000>;
99353ab4af3SHans de Goede			interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
99453ab4af3SHans de Goede			clocks = <&ahb1_gates 21>, <&spi1_clk>;
99553ab4af3SHans de Goede			clock-names = "ahb", "mod";
99653ab4af3SHans de Goede			dmas = <&dma 24>, <&dma 24>;
99753ab4af3SHans de Goede			dma-names = "rx", "tx";
99853ab4af3SHans de Goede			resets = <&ahb1_rst 21>;
99953ab4af3SHans de Goede			status = "disabled";
100053ab4af3SHans de Goede		};
100153ab4af3SHans de Goede
100253ab4af3SHans de Goede		spi2: spi@01c6a000 {
100353ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-spi";
100453ab4af3SHans de Goede			reg = <0x01c6a000 0x1000>;
100553ab4af3SHans de Goede			interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
100653ab4af3SHans de Goede			clocks = <&ahb1_gates 22>, <&spi2_clk>;
100753ab4af3SHans de Goede			clock-names = "ahb", "mod";
100853ab4af3SHans de Goede			dmas = <&dma 25>, <&dma 25>;
100953ab4af3SHans de Goede			dma-names = "rx", "tx";
101053ab4af3SHans de Goede			resets = <&ahb1_rst 22>;
101153ab4af3SHans de Goede			status = "disabled";
101253ab4af3SHans de Goede		};
101353ab4af3SHans de Goede
101453ab4af3SHans de Goede		spi3: spi@01c6b000 {
101553ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-spi";
101653ab4af3SHans de Goede			reg = <0x01c6b000 0x1000>;
101753ab4af3SHans de Goede			interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
101853ab4af3SHans de Goede			clocks = <&ahb1_gates 23>, <&spi3_clk>;
101953ab4af3SHans de Goede			clock-names = "ahb", "mod";
102053ab4af3SHans de Goede			dmas = <&dma 26>, <&dma 26>;
102153ab4af3SHans de Goede			dma-names = "rx", "tx";
102253ab4af3SHans de Goede			resets = <&ahb1_rst 23>;
102353ab4af3SHans de Goede			status = "disabled";
102453ab4af3SHans de Goede		};
102553ab4af3SHans de Goede
102653ab4af3SHans de Goede		gic: interrupt-controller@01c81000 {
102753ab4af3SHans de Goede			compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
102853ab4af3SHans de Goede			reg = <0x01c81000 0x1000>,
102953ab4af3SHans de Goede			      <0x01c82000 0x1000>,
103053ab4af3SHans de Goede			      <0x01c84000 0x2000>,
103153ab4af3SHans de Goede			      <0x01c86000 0x2000>;
103253ab4af3SHans de Goede			interrupt-controller;
103353ab4af3SHans de Goede			#interrupt-cells = <3>;
103453ab4af3SHans de Goede			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
103553ab4af3SHans de Goede		};
103653ab4af3SHans de Goede
103753ab4af3SHans de Goede		rtc: rtc@01f00000 {
103853ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-rtc";
103953ab4af3SHans de Goede			reg = <0x01f00000 0x54>;
104053ab4af3SHans de Goede			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
104153ab4af3SHans de Goede				     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
104253ab4af3SHans de Goede		};
104353ab4af3SHans de Goede
104453ab4af3SHans de Goede		nmi_intc: interrupt-controller@01f00c0c {
104553ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-sc-nmi";
104653ab4af3SHans de Goede			interrupt-controller;
104753ab4af3SHans de Goede			#interrupt-cells = <2>;
104853ab4af3SHans de Goede			reg = <0x01f00c0c 0x38>;
104953ab4af3SHans de Goede			interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
105053ab4af3SHans de Goede		};
105153ab4af3SHans de Goede
105253ab4af3SHans de Goede		prcm@01f01400 {
105353ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-prcm";
105453ab4af3SHans de Goede			reg = <0x01f01400 0x200>;
105553ab4af3SHans de Goede
105653ab4af3SHans de Goede			ar100: ar100_clk {
105753ab4af3SHans de Goede				compatible = "allwinner,sun6i-a31-ar100-clk";
105853ab4af3SHans de Goede				#clock-cells = <0>;
10598b1ba941SHans de Goede				clocks = <&osc32k>, <&osc24M>, <&pll6 0>,
10608b1ba941SHans de Goede					 <&pll6 0>;
106153ab4af3SHans de Goede				clock-output-names = "ar100";
106253ab4af3SHans de Goede			};
106353ab4af3SHans de Goede
106453ab4af3SHans de Goede			ahb0: ahb0_clk {
106553ab4af3SHans de Goede				compatible = "fixed-factor-clock";
106653ab4af3SHans de Goede				#clock-cells = <0>;
106753ab4af3SHans de Goede				clock-div = <1>;
106853ab4af3SHans de Goede				clock-mult = <1>;
106953ab4af3SHans de Goede				clocks = <&ar100>;
107053ab4af3SHans de Goede				clock-output-names = "ahb0";
107153ab4af3SHans de Goede			};
107253ab4af3SHans de Goede
107353ab4af3SHans de Goede			apb0: apb0_clk {
107453ab4af3SHans de Goede				compatible = "allwinner,sun6i-a31-apb0-clk";
107553ab4af3SHans de Goede				#clock-cells = <0>;
107653ab4af3SHans de Goede				clocks = <&ahb0>;
107753ab4af3SHans de Goede				clock-output-names = "apb0";
107853ab4af3SHans de Goede			};
107953ab4af3SHans de Goede
108053ab4af3SHans de Goede			apb0_gates: apb0_gates_clk {
108153ab4af3SHans de Goede				compatible = "allwinner,sun6i-a31-apb0-gates-clk";
108253ab4af3SHans de Goede				#clock-cells = <1>;
108353ab4af3SHans de Goede				clocks = <&apb0>;
108453ab4af3SHans de Goede				clock-output-names = "apb0_pio", "apb0_ir",
108553ab4af3SHans de Goede						"apb0_timer", "apb0_p2wi",
108653ab4af3SHans de Goede						"apb0_uart", "apb0_1wire",
108753ab4af3SHans de Goede						"apb0_i2c";
108853ab4af3SHans de Goede			};
108953ab4af3SHans de Goede
109053ab4af3SHans de Goede			ir_clk: ir_clk {
109153ab4af3SHans de Goede				#clock-cells = <0>;
109253ab4af3SHans de Goede				compatible = "allwinner,sun4i-a10-mod0-clk";
109353ab4af3SHans de Goede				clocks = <&osc32k>, <&osc24M>;
109453ab4af3SHans de Goede				clock-output-names = "ir";
109553ab4af3SHans de Goede			};
109653ab4af3SHans de Goede
109753ab4af3SHans de Goede			apb0_rst: apb0_rst {
109853ab4af3SHans de Goede				compatible = "allwinner,sun6i-a31-clock-reset";
109953ab4af3SHans de Goede				#reset-cells = <1>;
110053ab4af3SHans de Goede			};
110153ab4af3SHans de Goede		};
110253ab4af3SHans de Goede
110353ab4af3SHans de Goede		cpucfg@01f01c00 {
110453ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-cpuconfig";
110553ab4af3SHans de Goede			reg = <0x01f01c00 0x300>;
110653ab4af3SHans de Goede		};
110753ab4af3SHans de Goede
110853ab4af3SHans de Goede		ir: ir@01f02000 {
110953ab4af3SHans de Goede			compatible = "allwinner,sun5i-a13-ir";
111053ab4af3SHans de Goede			clocks = <&apb0_gates 1>, <&ir_clk>;
111153ab4af3SHans de Goede			clock-names = "apb", "ir";
111253ab4af3SHans de Goede			resets = <&apb0_rst 1>;
111353ab4af3SHans de Goede			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
111453ab4af3SHans de Goede			reg = <0x01f02000 0x40>;
111553ab4af3SHans de Goede			status = "disabled";
111653ab4af3SHans de Goede		};
111753ab4af3SHans de Goede
111853ab4af3SHans de Goede		r_pio: pinctrl@01f02c00 {
111953ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-r-pinctrl";
112053ab4af3SHans de Goede			reg = <0x01f02c00 0x400>;
112153ab4af3SHans de Goede			interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
112253ab4af3SHans de Goede				     <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
112353ab4af3SHans de Goede			clocks = <&apb0_gates 0>;
112453ab4af3SHans de Goede			resets = <&apb0_rst 0>;
112553ab4af3SHans de Goede			gpio-controller;
112653ab4af3SHans de Goede			interrupt-controller;
112780e5f83cSHans de Goede			#interrupt-cells = <3>;
112853ab4af3SHans de Goede			#size-cells = <0>;
112953ab4af3SHans de Goede			#gpio-cells = <3>;
113053ab4af3SHans de Goede
113153ab4af3SHans de Goede			ir_pins_a: ir@0 {
113253ab4af3SHans de Goede				allwinner,pins = "PL4";
113353ab4af3SHans de Goede				allwinner,function = "s_ir";
113453ab4af3SHans de Goede				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
113553ab4af3SHans de Goede				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
113653ab4af3SHans de Goede			};
113753ab4af3SHans de Goede
113853ab4af3SHans de Goede			p2wi_pins: p2wi {
113953ab4af3SHans de Goede				allwinner,pins = "PL0", "PL1";
114053ab4af3SHans de Goede				allwinner,function = "s_p2wi";
114153ab4af3SHans de Goede				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
114253ab4af3SHans de Goede				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
114353ab4af3SHans de Goede			};
114453ab4af3SHans de Goede		};
114553ab4af3SHans de Goede
114653ab4af3SHans de Goede		p2wi: i2c@01f03400 {
114753ab4af3SHans de Goede			compatible = "allwinner,sun6i-a31-p2wi";
114853ab4af3SHans de Goede			reg = <0x01f03400 0x400>;
114953ab4af3SHans de Goede			interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
115053ab4af3SHans de Goede			clocks = <&apb0_gates 3>;
115153ab4af3SHans de Goede			clock-frequency = <100000>;
115253ab4af3SHans de Goede			resets = <&apb0_rst 3>;
115353ab4af3SHans de Goede			pinctrl-names = "default";
115453ab4af3SHans de Goede			pinctrl-0 = <&p2wi_pins>;
115553ab4af3SHans de Goede			status = "disabled";
115653ab4af3SHans de Goede			#address-cells = <1>;
115753ab4af3SHans de Goede			#size-cells = <0>;
115853ab4af3SHans de Goede		};
115953ab4af3SHans de Goede	};
116053ab4af3SHans de Goede};
1161