xref: /linux/arch/arm/boot/dts/allwinner/sun9i-a80.dtsi (revision c771600c6af14749609b49565ffb4cac2959710d)
14ab328f0SChen-Yu Tsai/*
24ab328f0SChen-Yu Tsai * Copyright 2014 Chen-Yu Tsai
34ab328f0SChen-Yu Tsai *
44ab328f0SChen-Yu Tsai * Chen-Yu Tsai <wens@csie.org>
54ab328f0SChen-Yu Tsai *
64ab328f0SChen-Yu Tsai * This file is dual-licensed: you can use it either under the terms
74ab328f0SChen-Yu Tsai * of the GPL or the X11 license, at your option. Note that this dual
84ab328f0SChen-Yu Tsai * licensing only applies to this file, and not this project as a
94ab328f0SChen-Yu Tsai * whole.
104ab328f0SChen-Yu Tsai *
11136d18a8SMaxime Ripard *  a) This file is free software; you can redistribute it and/or
124ab328f0SChen-Yu Tsai *     modify it under the terms of the GNU General Public License as
134ab328f0SChen-Yu Tsai *     published by the Free Software Foundation; either version 2 of the
144ab328f0SChen-Yu Tsai *     License, or (at your option) any later version.
154ab328f0SChen-Yu Tsai *
16136d18a8SMaxime Ripard *     This file is distributed in the hope that it will be useful,
174ab328f0SChen-Yu Tsai *     but WITHOUT ANY WARRANTY; without even the implied warranty of
184ab328f0SChen-Yu Tsai *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
194ab328f0SChen-Yu Tsai *     GNU General Public License for more details.
204ab328f0SChen-Yu Tsai *
214ab328f0SChen-Yu Tsai * Or, alternatively,
224ab328f0SChen-Yu Tsai *
234ab328f0SChen-Yu Tsai *  b) Permission is hereby granted, free of charge, to any person
244ab328f0SChen-Yu Tsai *     obtaining a copy of this software and associated documentation
254ab328f0SChen-Yu Tsai *     files (the "Software"), to deal in the Software without
264ab328f0SChen-Yu Tsai *     restriction, including without limitation the rights to use,
274ab328f0SChen-Yu Tsai *     copy, modify, merge, publish, distribute, sublicense, and/or
284ab328f0SChen-Yu Tsai *     sell copies of the Software, and to permit persons to whom the
294ab328f0SChen-Yu Tsai *     Software is furnished to do so, subject to the following
304ab328f0SChen-Yu Tsai *     conditions:
314ab328f0SChen-Yu Tsai *
324ab328f0SChen-Yu Tsai *     The above copyright notice and this permission notice shall be
334ab328f0SChen-Yu Tsai *     included in all copies or substantial portions of the Software.
344ab328f0SChen-Yu Tsai *
354ab328f0SChen-Yu Tsai *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
364ab328f0SChen-Yu Tsai *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
374ab328f0SChen-Yu Tsai *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
384ab328f0SChen-Yu Tsai *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
394ab328f0SChen-Yu Tsai *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
404ab328f0SChen-Yu Tsai *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
414ab328f0SChen-Yu Tsai *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
424ab328f0SChen-Yu Tsai *     OTHER DEALINGS IN THE SOFTWARE.
434ab328f0SChen-Yu Tsai */
444ab328f0SChen-Yu Tsai
4519882b84SMaxime Ripard#include <dt-bindings/interrupt-controller/arm-gic.h>
4619882b84SMaxime Ripard
4764507fe3SChen-Yu Tsai#include <dt-bindings/clock/sun9i-a80-ccu.h>
4864507fe3SChen-Yu Tsai#include <dt-bindings/clock/sun9i-a80-de.h>
4964507fe3SChen-Yu Tsai#include <dt-bindings/clock/sun9i-a80-usb.h>
5064507fe3SChen-Yu Tsai#include <dt-bindings/reset/sun9i-a80-ccu.h>
5164507fe3SChen-Yu Tsai#include <dt-bindings/reset/sun9i-a80-de.h>
5264507fe3SChen-Yu Tsai#include <dt-bindings/reset/sun9i-a80-usb.h>
5364507fe3SChen-Yu Tsai
544ab328f0SChen-Yu Tsai/ {
5598dc89dbSMaxime Ripard	#address-cells = <2>;
5698dc89dbSMaxime Ripard	#size-cells = <2>;
574ab328f0SChen-Yu Tsai	interrupt-parent = <&gic>;
584ab328f0SChen-Yu Tsai
596fa39a54SChen-Yu Tsai	aliases {
606fa39a54SChen-Yu Tsai		ethernet0 = &gmac;
616fa39a54SChen-Yu Tsai	};
626fa39a54SChen-Yu Tsai
634ab328f0SChen-Yu Tsai	cpus {
644ab328f0SChen-Yu Tsai		#address-cells = <1>;
654ab328f0SChen-Yu Tsai		#size-cells = <0>;
664ab328f0SChen-Yu Tsai
674ab328f0SChen-Yu Tsai		cpu0: cpu@0 {
684ab328f0SChen-Yu Tsai			compatible = "arm,cortex-a7";
694ab328f0SChen-Yu Tsai			device_type = "cpu";
70f0b55841SChen-Yu Tsai			cci-control-port = <&cci_control0>;
71f0b55841SChen-Yu Tsai			clock-frequency = <12000000>;
72651f97f5SChen-Yu Tsai			enable-method = "allwinner,sun9i-a80-smp";
734ab328f0SChen-Yu Tsai			reg = <0x0>;
744ab328f0SChen-Yu Tsai		};
754ab328f0SChen-Yu Tsai
764ab328f0SChen-Yu Tsai		cpu1: cpu@1 {
774ab328f0SChen-Yu Tsai			compatible = "arm,cortex-a7";
784ab328f0SChen-Yu Tsai			device_type = "cpu";
79f0b55841SChen-Yu Tsai			cci-control-port = <&cci_control0>;
80f0b55841SChen-Yu Tsai			clock-frequency = <12000000>;
81651f97f5SChen-Yu Tsai			enable-method = "allwinner,sun9i-a80-smp";
824ab328f0SChen-Yu Tsai			reg = <0x1>;
834ab328f0SChen-Yu Tsai		};
844ab328f0SChen-Yu Tsai
854ab328f0SChen-Yu Tsai		cpu2: cpu@2 {
864ab328f0SChen-Yu Tsai			compatible = "arm,cortex-a7";
874ab328f0SChen-Yu Tsai			device_type = "cpu";
88f0b55841SChen-Yu Tsai			cci-control-port = <&cci_control0>;
89f0b55841SChen-Yu Tsai			clock-frequency = <12000000>;
90651f97f5SChen-Yu Tsai			enable-method = "allwinner,sun9i-a80-smp";
914ab328f0SChen-Yu Tsai			reg = <0x2>;
924ab328f0SChen-Yu Tsai		};
934ab328f0SChen-Yu Tsai
944ab328f0SChen-Yu Tsai		cpu3: cpu@3 {
954ab328f0SChen-Yu Tsai			compatible = "arm,cortex-a7";
964ab328f0SChen-Yu Tsai			device_type = "cpu";
97f0b55841SChen-Yu Tsai			cci-control-port = <&cci_control0>;
98f0b55841SChen-Yu Tsai			clock-frequency = <12000000>;
99651f97f5SChen-Yu Tsai			enable-method = "allwinner,sun9i-a80-smp";
1004ab328f0SChen-Yu Tsai			reg = <0x3>;
1014ab328f0SChen-Yu Tsai		};
1024ab328f0SChen-Yu Tsai
1034ab328f0SChen-Yu Tsai		cpu4: cpu@100 {
1044ab328f0SChen-Yu Tsai			compatible = "arm,cortex-a15";
1054ab328f0SChen-Yu Tsai			device_type = "cpu";
106f0b55841SChen-Yu Tsai			cci-control-port = <&cci_control1>;
107f0b55841SChen-Yu Tsai			clock-frequency = <18000000>;
108651f97f5SChen-Yu Tsai			enable-method = "allwinner,sun9i-a80-smp";
1094ab328f0SChen-Yu Tsai			reg = <0x100>;
1104ab328f0SChen-Yu Tsai		};
1114ab328f0SChen-Yu Tsai
1124ab328f0SChen-Yu Tsai		cpu5: cpu@101 {
1134ab328f0SChen-Yu Tsai			compatible = "arm,cortex-a15";
1144ab328f0SChen-Yu Tsai			device_type = "cpu";
115f0b55841SChen-Yu Tsai			cci-control-port = <&cci_control1>;
116f0b55841SChen-Yu Tsai			clock-frequency = <18000000>;
117651f97f5SChen-Yu Tsai			enable-method = "allwinner,sun9i-a80-smp";
1184ab328f0SChen-Yu Tsai			reg = <0x101>;
1194ab328f0SChen-Yu Tsai		};
1204ab328f0SChen-Yu Tsai
1214ab328f0SChen-Yu Tsai		cpu6: cpu@102 {
1224ab328f0SChen-Yu Tsai			compatible = "arm,cortex-a15";
1234ab328f0SChen-Yu Tsai			device_type = "cpu";
124f0b55841SChen-Yu Tsai			cci-control-port = <&cci_control1>;
125f0b55841SChen-Yu Tsai			clock-frequency = <18000000>;
126651f97f5SChen-Yu Tsai			enable-method = "allwinner,sun9i-a80-smp";
1274ab328f0SChen-Yu Tsai			reg = <0x102>;
1284ab328f0SChen-Yu Tsai		};
1294ab328f0SChen-Yu Tsai
1304ab328f0SChen-Yu Tsai		cpu7: cpu@103 {
1314ab328f0SChen-Yu Tsai			compatible = "arm,cortex-a15";
1324ab328f0SChen-Yu Tsai			device_type = "cpu";
133f0b55841SChen-Yu Tsai			cci-control-port = <&cci_control1>;
134f0b55841SChen-Yu Tsai			clock-frequency = <18000000>;
135651f97f5SChen-Yu Tsai			enable-method = "allwinner,sun9i-a80-smp";
1364ab328f0SChen-Yu Tsai			reg = <0x103>;
1374ab328f0SChen-Yu Tsai		};
1384ab328f0SChen-Yu Tsai	};
1394ab328f0SChen-Yu Tsai
14051e9f5ffSChen-Yu Tsai	timer {
14151e9f5ffSChen-Yu Tsai		compatible = "arm,armv7-timer";
14251e9f5ffSChen-Yu Tsai		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
14351e9f5ffSChen-Yu Tsai			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
14451e9f5ffSChen-Yu Tsai			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
14551e9f5ffSChen-Yu Tsai			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
14651e9f5ffSChen-Yu Tsai		clock-frequency = <24000000>;
14751e9f5ffSChen-Yu Tsai		arm,cpu-registers-not-fw-configured;
14851e9f5ffSChen-Yu Tsai	};
14951e9f5ffSChen-Yu Tsai
1504ab328f0SChen-Yu Tsai	clocks {
1514ab328f0SChen-Yu Tsai		#address-cells = <1>;
1524ab328f0SChen-Yu Tsai		#size-cells = <1>;
1534ab328f0SChen-Yu Tsai		/*
1544ab328f0SChen-Yu Tsai		 * map 64 bit address range down to 32 bits,
1554ab328f0SChen-Yu Tsai		 * as the peripherals are all under 512MB.
1564ab328f0SChen-Yu Tsai		 */
1574ab328f0SChen-Yu Tsai		ranges = <0 0 0 0x20000000>;
1584ab328f0SChen-Yu Tsai
159d255abd6SChen-Yu Tsai		/*
160d255abd6SChen-Yu Tsai		 * This clock is actually configurable from the PRCM address
161d255abd6SChen-Yu Tsai		 * space. The external 24M oscillator can be turned off, and
162d255abd6SChen-Yu Tsai		 * the clock switched to an internal 16M RC oscillator. Under
163d255abd6SChen-Yu Tsai		 * normal operation there's no reason to do this, and the
164d255abd6SChen-Yu Tsai		 * default is to use the external good one, so just model this
165d255abd6SChen-Yu Tsai		 * as a fixed clock. Also it is not entirely clear if the
166d255abd6SChen-Yu Tsai		 * osc24M mux in the PRCM affects the entire clock tree, which
167d255abd6SChen-Yu Tsai		 * would also throw all the PLL clock rates off, or just the
168d255abd6SChen-Yu Tsai		 * downstream clocks in the PRCM.
169d255abd6SChen-Yu Tsai		 */
17000a7088fSMaxime Ripard		osc24M: clk-24M {
1714ab328f0SChen-Yu Tsai			#clock-cells = <0>;
1724ab328f0SChen-Yu Tsai			compatible = "fixed-clock";
1734ab328f0SChen-Yu Tsai			clock-frequency = <24000000>;
1744ab328f0SChen-Yu Tsai			clock-output-names = "osc24M";
1754ab328f0SChen-Yu Tsai		};
1764ab328f0SChen-Yu Tsai
177d255abd6SChen-Yu Tsai		/*
178d255abd6SChen-Yu Tsai		 * The 32k clock is from an external source, normally the
17916266987SChen-Yu Tsai		 * AC100 codec/RTC chip. This serves as a placeholder for
18016266987SChen-Yu Tsai		 * board dts files to specify the source.
181d255abd6SChen-Yu Tsai		 */
18200a7088fSMaxime Ripard		osc32k: clk-32k {
1834ab328f0SChen-Yu Tsai			#clock-cells = <0>;
18416266987SChen-Yu Tsai			compatible = "fixed-factor-clock";
18516266987SChen-Yu Tsai			clock-div = <1>;
18616266987SChen-Yu Tsai			clock-mult = <1>;
1874ab328f0SChen-Yu Tsai			clock-output-names = "osc32k";
1884ab328f0SChen-Yu Tsai		};
189ac399a97SChen-Yu Tsai
190e78adcfeSChen-Yu Tsai		/*
191e78adcfeSChen-Yu Tsai		 * The following two are dummy clocks, placeholders
192e78adcfeSChen-Yu Tsai		 * used in the gmac_tx clock. The gmac driver will
193e78adcfeSChen-Yu Tsai		 * choose one parent depending on the PHY interface
194e78adcfeSChen-Yu Tsai		 * mode, using clk_set_rate auto-reparenting.
195e78adcfeSChen-Yu Tsai		 *
196e78adcfeSChen-Yu Tsai		 * The actual TX clock rate is not controlled by the
197e78adcfeSChen-Yu Tsai		 * gmac_tx clock.
198e78adcfeSChen-Yu Tsai		 */
1990f47ef3fSKrzysztof Kozlowski		mii_phy_tx_clk: mii-phy-tx-clk {
200e78adcfeSChen-Yu Tsai			#clock-cells = <0>;
201e78adcfeSChen-Yu Tsai			compatible = "fixed-clock";
202e78adcfeSChen-Yu Tsai			clock-frequency = <25000000>;
203e78adcfeSChen-Yu Tsai			clock-output-names = "mii_phy_tx";
204e78adcfeSChen-Yu Tsai		};
205e78adcfeSChen-Yu Tsai
2060f47ef3fSKrzysztof Kozlowski		gmac_int_tx_clk: gmac-int-tx-clk {
207e78adcfeSChen-Yu Tsai			#clock-cells = <0>;
208e78adcfeSChen-Yu Tsai			compatible = "fixed-clock";
209e78adcfeSChen-Yu Tsai			clock-frequency = <125000000>;
210e78adcfeSChen-Yu Tsai			clock-output-names = "gmac_int_tx";
211e78adcfeSChen-Yu Tsai		};
212e78adcfeSChen-Yu Tsai
213e78adcfeSChen-Yu Tsai		gmac_tx_clk: clk@800030 {
214e78adcfeSChen-Yu Tsai			#clock-cells = <0>;
215e78adcfeSChen-Yu Tsai			compatible = "allwinner,sun7i-a20-gmac-clk";
216e78adcfeSChen-Yu Tsai			reg = <0x00800030 0x4>;
217e78adcfeSChen-Yu Tsai			clocks = <&mii_phy_tx_clk>, <&gmac_int_tx_clk>;
218e78adcfeSChen-Yu Tsai			clock-output-names = "gmac_tx";
219e78adcfeSChen-Yu Tsai		};
220e78adcfeSChen-Yu Tsai
2215841f6c0SMaxime Ripard		cpus_clk: clk@8001410 {
222afd7d66cSChen-Yu Tsai			compatible = "allwinner,sun9i-a80-cpus-clk";
223afd7d66cSChen-Yu Tsai			reg = <0x08001410 0x4>;
224afd7d66cSChen-Yu Tsai			#clock-cells = <0>;
22564507fe3SChen-Yu Tsai			clocks = <&osc32k>, <&osc24M>,
22664507fe3SChen-Yu Tsai				 <&ccu CLK_PLL_PERIPH0>,
22764507fe3SChen-Yu Tsai				 <&ccu CLK_PLL_AUDIO>;
228afd7d66cSChen-Yu Tsai			clock-output-names = "cpus";
229afd7d66cSChen-Yu Tsai		};
230afd7d66cSChen-Yu Tsai
23100a7088fSMaxime Ripard		ahbs: clk-ahbs {
232afd7d66cSChen-Yu Tsai			compatible = "fixed-factor-clock";
233afd7d66cSChen-Yu Tsai			#clock-cells = <0>;
234afd7d66cSChen-Yu Tsai			clock-div = <1>;
235afd7d66cSChen-Yu Tsai			clock-mult = <1>;
236afd7d66cSChen-Yu Tsai			clocks = <&cpus_clk>;
237afd7d66cSChen-Yu Tsai			clock-output-names = "ahbs";
238afd7d66cSChen-Yu Tsai		};
239afd7d66cSChen-Yu Tsai
2405841f6c0SMaxime Ripard		apbs: clk@800141c {
241afd7d66cSChen-Yu Tsai			compatible = "allwinner,sun8i-a23-apb0-clk";
242afd7d66cSChen-Yu Tsai			reg = <0x0800141c 0x4>;
243afd7d66cSChen-Yu Tsai			#clock-cells = <0>;
244afd7d66cSChen-Yu Tsai			clocks = <&ahbs>;
245afd7d66cSChen-Yu Tsai			clock-output-names = "apbs";
246afd7d66cSChen-Yu Tsai		};
247afd7d66cSChen-Yu Tsai
2485841f6c0SMaxime Ripard		apbs_gates: clk@8001428 {
249afd7d66cSChen-Yu Tsai			compatible = "allwinner,sun9i-a80-apbs-gates-clk";
250afd7d66cSChen-Yu Tsai			reg = <0x08001428 0x4>;
251afd7d66cSChen-Yu Tsai			#clock-cells = <1>;
252afd7d66cSChen-Yu Tsai			clocks = <&apbs>;
253afd7d66cSChen-Yu Tsai			clock-indices = <0>, <1>,
254afd7d66cSChen-Yu Tsai					<2>, <3>,
255afd7d66cSChen-Yu Tsai					<4>, <5>,
256afd7d66cSChen-Yu Tsai					<6>, <7>,
257afd7d66cSChen-Yu Tsai					<12>, <13>,
258afd7d66cSChen-Yu Tsai					<16>, <17>,
259afd7d66cSChen-Yu Tsai					<18>, <20>;
260afd7d66cSChen-Yu Tsai			clock-output-names = "apbs_pio", "apbs_ir",
261afd7d66cSChen-Yu Tsai					"apbs_timer", "apbs_rsb",
262afd7d66cSChen-Yu Tsai					"apbs_uart", "apbs_1wire",
263afd7d66cSChen-Yu Tsai					"apbs_i2c0", "apbs_i2c1",
264afd7d66cSChen-Yu Tsai					"apbs_ps2_0", "apbs_ps2_1",
265afd7d66cSChen-Yu Tsai					"apbs_dma", "apbs_i2s0",
266afd7d66cSChen-Yu Tsai					"apbs_i2s1", "apbs_twd";
267afd7d66cSChen-Yu Tsai		};
268afd7d66cSChen-Yu Tsai
2695841f6c0SMaxime Ripard		r_1wire_clk: clk@8001450 {
270afd7d66cSChen-Yu Tsai			reg = <0x08001450 0x4>;
271afd7d66cSChen-Yu Tsai			#clock-cells = <0>;
272afd7d66cSChen-Yu Tsai			compatible = "allwinner,sun4i-a10-mod0-clk";
273afd7d66cSChen-Yu Tsai			clocks = <&osc32k>, <&osc24M>;
274afd7d66cSChen-Yu Tsai			clock-output-names = "r_1wire";
275afd7d66cSChen-Yu Tsai		};
276afd7d66cSChen-Yu Tsai
2775841f6c0SMaxime Ripard		r_ir_clk: clk@8001454 {
278afd7d66cSChen-Yu Tsai			reg = <0x08001454 0x4>;
279afd7d66cSChen-Yu Tsai			#clock-cells = <0>;
280afd7d66cSChen-Yu Tsai			compatible = "allwinner,sun4i-a10-mod0-clk";
281afd7d66cSChen-Yu Tsai			clocks = <&osc32k>, <&osc24M>;
282afd7d66cSChen-Yu Tsai			clock-output-names = "r_ir";
283afd7d66cSChen-Yu Tsai		};
2844ab328f0SChen-Yu Tsai	};
2854ab328f0SChen-Yu Tsai
286f1317774SChen-Yu Tsai	de: display-engine {
287f1317774SChen-Yu Tsai		compatible = "allwinner,sun9i-a80-display-engine";
288f1317774SChen-Yu Tsai		allwinner,pipelines = <&fe0>, <&fe1>;
289f1317774SChen-Yu Tsai		status = "disabled";
290f1317774SChen-Yu Tsai	};
291f1317774SChen-Yu Tsai
292927489b1SMaxime Ripard	soc@20000 {
2934ab328f0SChen-Yu Tsai		compatible = "simple-bus";
2944ab328f0SChen-Yu Tsai		#address-cells = <1>;
2954ab328f0SChen-Yu Tsai		#size-cells = <1>;
2964ab328f0SChen-Yu Tsai		/*
2974ab328f0SChen-Yu Tsai		 * map 64 bit address range down to 32 bits,
2984ab328f0SChen-Yu Tsai		 * as the peripherals are all under 512MB.
2994ab328f0SChen-Yu Tsai		 */
3004ab328f0SChen-Yu Tsai		ranges = <0 0 0 0x20000000>;
3014ab328f0SChen-Yu Tsai
30243f624aaSChen-Yu Tsai		sram_b: sram@20000 {
30343f624aaSChen-Yu Tsai			/* 256 KiB secure SRAM at 0x20000 */
30443f624aaSChen-Yu Tsai			compatible = "mmio-sram";
30543f624aaSChen-Yu Tsai			reg = <0x00020000 0x40000>;
30643f624aaSChen-Yu Tsai
30743f624aaSChen-Yu Tsai			#address-cells = <1>;
30843f624aaSChen-Yu Tsai			#size-cells = <1>;
30943f624aaSChen-Yu Tsai			ranges = <0 0x00020000 0x40000>;
31043f624aaSChen-Yu Tsai
31143f624aaSChen-Yu Tsai			smp-sram@1000 {
31243f624aaSChen-Yu Tsai				/*
31343f624aaSChen-Yu Tsai				 * This is checked by BROM to determine if
31443f624aaSChen-Yu Tsai				 * cpu0 should jump to SMP entry vector
31543f624aaSChen-Yu Tsai				 */
31643f624aaSChen-Yu Tsai				compatible = "allwinner,sun9i-a80-smp-sram";
31743f624aaSChen-Yu Tsai				reg = <0x1000 0x8>;
31843f624aaSChen-Yu Tsai			};
31943f624aaSChen-Yu Tsai		};
32043f624aaSChen-Yu Tsai
3216fa39a54SChen-Yu Tsai		gmac: ethernet@830000 {
3226fa39a54SChen-Yu Tsai			compatible = "allwinner,sun7i-a20-gmac";
3236fa39a54SChen-Yu Tsai			reg = <0x00830000 0x1054>;
3246fa39a54SChen-Yu Tsai			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
3256fa39a54SChen-Yu Tsai			interrupt-names = "macirq";
3266fa39a54SChen-Yu Tsai			clocks = <&ccu CLK_BUS_GMAC>, <&gmac_tx_clk>;
3276fa39a54SChen-Yu Tsai			clock-names = "stmmaceth", "allwinner_gmac_tx";
3286fa39a54SChen-Yu Tsai			resets = <&ccu RST_BUS_GMAC>;
3296fa39a54SChen-Yu Tsai			reset-names = "stmmaceth";
3306fa39a54SChen-Yu Tsai			snps,pbl = <2>;
3316fa39a54SChen-Yu Tsai			snps,fixed-burst;
3326fa39a54SChen-Yu Tsai			snps,force_sf_dma_mode;
3336fa39a54SChen-Yu Tsai			status = "disabled";
334968f2c91SChen-Yu Tsai
335968f2c91SChen-Yu Tsai			mdio: mdio {
336968f2c91SChen-Yu Tsai				compatible = "snps,dwmac-mdio";
3376fa39a54SChen-Yu Tsai				#address-cells = <1>;
3386fa39a54SChen-Yu Tsai				#size-cells = <0>;
3396fa39a54SChen-Yu Tsai			};
340968f2c91SChen-Yu Tsai		};
3416fa39a54SChen-Yu Tsai
3425841f6c0SMaxime Ripard		ehci0: usb@a00000 {
34370472163SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-ehci", "generic-ehci";
34470472163SChen-Yu Tsai			reg = <0x00a00000 0x100>;
34570472163SChen-Yu Tsai			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
34664507fe3SChen-Yu Tsai			clocks = <&usb_clocks CLK_BUS_HCI0>;
34764507fe3SChen-Yu Tsai			resets = <&usb_clocks RST_USB0_HCI>;
34870472163SChen-Yu Tsai			phys = <&usbphy1>;
349e6064cf4SMaxime Ripard			phy-names = "usb";
35070472163SChen-Yu Tsai			status = "disabled";
35170472163SChen-Yu Tsai		};
35270472163SChen-Yu Tsai
3535841f6c0SMaxime Ripard		ohci0: usb@a00400 {
35470472163SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-ohci", "generic-ohci";
35570472163SChen-Yu Tsai			reg = <0x00a00400 0x100>;
35670472163SChen-Yu Tsai			interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
35764507fe3SChen-Yu Tsai			clocks = <&usb_clocks CLK_BUS_HCI0>,
35864507fe3SChen-Yu Tsai				 <&usb_clocks CLK_USB_OHCI0>;
35964507fe3SChen-Yu Tsai			resets = <&usb_clocks RST_USB0_HCI>;
36070472163SChen-Yu Tsai			phys = <&usbphy1>;
361e6064cf4SMaxime Ripard			phy-names = "usb";
36270472163SChen-Yu Tsai			status = "disabled";
36370472163SChen-Yu Tsai		};
36470472163SChen-Yu Tsai
3655841f6c0SMaxime Ripard		usbphy1: phy@a00800 {
3661af5d192SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-usb-phy";
3671af5d192SChen-Yu Tsai			reg = <0x00a00800 0x4>;
36864507fe3SChen-Yu Tsai			clocks = <&usb_clocks CLK_USB0_PHY>;
3691af5d192SChen-Yu Tsai			clock-names = "phy";
37064507fe3SChen-Yu Tsai			resets = <&usb_clocks RST_USB0_PHY>;
3711af5d192SChen-Yu Tsai			reset-names = "phy";
3721af5d192SChen-Yu Tsai			status = "disabled";
3731af5d192SChen-Yu Tsai			#phy-cells = <0>;
3741af5d192SChen-Yu Tsai		};
3751af5d192SChen-Yu Tsai
3765841f6c0SMaxime Ripard		ehci1: usb@a01000 {
37770472163SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-ehci", "generic-ehci";
37870472163SChen-Yu Tsai			reg = <0x00a01000 0x100>;
37970472163SChen-Yu Tsai			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
38064507fe3SChen-Yu Tsai			clocks = <&usb_clocks CLK_BUS_HCI1>;
38164507fe3SChen-Yu Tsai			resets = <&usb_clocks RST_USB1_HCI>;
38270472163SChen-Yu Tsai			phys = <&usbphy2>;
383e6064cf4SMaxime Ripard			phy-names = "usb";
38470472163SChen-Yu Tsai			status = "disabled";
38570472163SChen-Yu Tsai		};
38670472163SChen-Yu Tsai
3875841f6c0SMaxime Ripard		usbphy2: phy@a01800 {
3881af5d192SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-usb-phy";
3891af5d192SChen-Yu Tsai			reg = <0x00a01800 0x4>;
39096940819SMaxime Ripard			clocks = <&usb_clocks CLK_USB1_PHY>,
39164507fe3SChen-Yu Tsai				 <&usb_clocks CLK_USB_HSIC>,
39296940819SMaxime Ripard				 <&usb_clocks CLK_USB1_HSIC>;
39396940819SMaxime Ripard			clock-names = "phy",
39464507fe3SChen-Yu Tsai				      "hsic_12M",
39596940819SMaxime Ripard				      "hsic_480M";
39696940819SMaxime Ripard			resets = <&usb_clocks RST_USB1_PHY>,
39796940819SMaxime Ripard				 <&usb_clocks RST_USB1_HSIC>;
39896940819SMaxime Ripard			reset-names = "phy",
39996940819SMaxime Ripard				      "hsic";
4001af5d192SChen-Yu Tsai			status = "disabled";
4011af5d192SChen-Yu Tsai			#phy-cells = <0>;
4021af5d192SChen-Yu Tsai			/* usb1 is always used with HSIC */
4031af5d192SChen-Yu Tsai			phy_type = "hsic";
4041af5d192SChen-Yu Tsai		};
4051af5d192SChen-Yu Tsai
4065841f6c0SMaxime Ripard		ehci2: usb@a02000 {
40770472163SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-ehci", "generic-ehci";
40870472163SChen-Yu Tsai			reg = <0x00a02000 0x100>;
40970472163SChen-Yu Tsai			interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
41064507fe3SChen-Yu Tsai			clocks = <&usb_clocks CLK_BUS_HCI2>;
41164507fe3SChen-Yu Tsai			resets = <&usb_clocks RST_USB2_HCI>;
41270472163SChen-Yu Tsai			phys = <&usbphy3>;
413e6064cf4SMaxime Ripard			phy-names = "usb";
41470472163SChen-Yu Tsai			status = "disabled";
41570472163SChen-Yu Tsai		};
41670472163SChen-Yu Tsai
4175841f6c0SMaxime Ripard		ohci2: usb@a02400 {
41870472163SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-ohci", "generic-ohci";
41970472163SChen-Yu Tsai			reg = <0x00a02400 0x100>;
42070472163SChen-Yu Tsai			interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
42164507fe3SChen-Yu Tsai			clocks = <&usb_clocks CLK_BUS_HCI2>,
42264507fe3SChen-Yu Tsai				 <&usb_clocks CLK_USB_OHCI2>;
42364507fe3SChen-Yu Tsai			resets = <&usb_clocks RST_USB2_HCI>;
42470472163SChen-Yu Tsai			phys = <&usbphy3>;
425e6064cf4SMaxime Ripard			phy-names = "usb";
42670472163SChen-Yu Tsai			status = "disabled";
42770472163SChen-Yu Tsai		};
42870472163SChen-Yu Tsai
4295841f6c0SMaxime Ripard		usbphy3: phy@a02800 {
4301af5d192SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-usb-phy";
4311af5d192SChen-Yu Tsai			reg = <0x00a02800 0x4>;
43296940819SMaxime Ripard			clocks = <&usb_clocks CLK_USB2_PHY>,
43364507fe3SChen-Yu Tsai				 <&usb_clocks CLK_USB_HSIC>,
43496940819SMaxime Ripard				 <&usb_clocks CLK_USB2_HSIC>;
43596940819SMaxime Ripard			clock-names = "phy",
43664507fe3SChen-Yu Tsai				      "hsic_12M",
43796940819SMaxime Ripard				      "hsic_480M";
43896940819SMaxime Ripard			resets = <&usb_clocks RST_USB2_PHY>,
43996940819SMaxime Ripard				 <&usb_clocks RST_USB2_HSIC>;
44096940819SMaxime Ripard			reset-names = "phy",
44196940819SMaxime Ripard				      "hsic";
4421af5d192SChen-Yu Tsai			status = "disabled";
4431af5d192SChen-Yu Tsai			#phy-cells = <0>;
4441af5d192SChen-Yu Tsai		};
4451af5d192SChen-Yu Tsai
4465841f6c0SMaxime Ripard		usb_clocks: clock@a08000 {
44764507fe3SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-usb-clks";
44864507fe3SChen-Yu Tsai			reg = <0x00a08000 0x8>;
44964507fe3SChen-Yu Tsai			clocks = <&ccu CLK_BUS_USB>, <&osc24M>;
45064507fe3SChen-Yu Tsai			clock-names = "bus", "hosc";
45164507fe3SChen-Yu Tsai			#clock-cells = <1>;
45264507fe3SChen-Yu Tsai			#reset-cells = <1>;
45364507fe3SChen-Yu Tsai		};
45464507fe3SChen-Yu Tsai
45561cf3ed0SChen-Yu Tsai		cpucfg@1700000 {
45661cf3ed0SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-cpucfg";
45761cf3ed0SChen-Yu Tsai			reg = <0x01700000 0x100>;
45861cf3ed0SChen-Yu Tsai		};
45961cf3ed0SChen-Yu Tsai
460edabfce6SCorentin Labbe		crypto: crypto@1c02000 {
461edabfce6SCorentin Labbe			compatible = "allwinner,sun9i-a80-crypto";
462edabfce6SCorentin Labbe			reg = <0x01c02000 0x1000>;
463edabfce6SCorentin Labbe			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
464edabfce6SCorentin Labbe			resets = <&ccu RST_BUS_SS>;
465edabfce6SCorentin Labbe			clocks = <&ccu CLK_BUS_SS>, <&ccu CLK_SS>;
466edabfce6SCorentin Labbe			clock-names = "bus", "mod";
467edabfce6SCorentin Labbe		};
468edabfce6SCorentin Labbe
4695841f6c0SMaxime Ripard		mmc0: mmc@1c0f000 {
4703a952213SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-mmc";
4712f6941cdSChen-Yu Tsai			reg = <0x01c0f000 0x1000>;
47264507fe3SChen-Yu Tsai			clocks = <&mmc_config_clk 0>, <&ccu CLK_MMC0>,
47364507fe3SChen-Yu Tsai				 <&ccu CLK_MMC0_OUTPUT>,
47464507fe3SChen-Yu Tsai				 <&ccu CLK_MMC0_SAMPLE>;
4752f6941cdSChen-Yu Tsai			clock-names = "ahb", "mmc", "output", "sample";
4762f6941cdSChen-Yu Tsai			resets = <&mmc_config_clk 0>;
4772f6941cdSChen-Yu Tsai			reset-names = "ahb";
4782f6941cdSChen-Yu Tsai			interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
4792f6941cdSChen-Yu Tsai			status = "disabled";
4804c1bb9c3SHans de Goede			#address-cells = <1>;
4814c1bb9c3SHans de Goede			#size-cells = <0>;
4822f6941cdSChen-Yu Tsai		};
4832f6941cdSChen-Yu Tsai
4845841f6c0SMaxime Ripard		mmc1: mmc@1c10000 {
4853a952213SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-mmc";
4862f6941cdSChen-Yu Tsai			reg = <0x01c10000 0x1000>;
48764507fe3SChen-Yu Tsai			clocks = <&mmc_config_clk 1>, <&ccu CLK_MMC1>,
48864507fe3SChen-Yu Tsai				 <&ccu CLK_MMC1_OUTPUT>,
48964507fe3SChen-Yu Tsai				 <&ccu CLK_MMC1_SAMPLE>;
4902f6941cdSChen-Yu Tsai			clock-names = "ahb", "mmc", "output", "sample";
4912f6941cdSChen-Yu Tsai			resets = <&mmc_config_clk 1>;
4922f6941cdSChen-Yu Tsai			reset-names = "ahb";
4932f6941cdSChen-Yu Tsai			interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
4942f6941cdSChen-Yu Tsai			status = "disabled";
4954c1bb9c3SHans de Goede			#address-cells = <1>;
4964c1bb9c3SHans de Goede			#size-cells = <0>;
4972f6941cdSChen-Yu Tsai		};
4982f6941cdSChen-Yu Tsai
4995841f6c0SMaxime Ripard		mmc2: mmc@1c11000 {
5003a952213SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-mmc";
5012f6941cdSChen-Yu Tsai			reg = <0x01c11000 0x1000>;
50264507fe3SChen-Yu Tsai			clocks = <&mmc_config_clk 2>, <&ccu CLK_MMC2>,
50364507fe3SChen-Yu Tsai				 <&ccu CLK_MMC2_OUTPUT>,
50464507fe3SChen-Yu Tsai				 <&ccu CLK_MMC2_SAMPLE>;
5052f6941cdSChen-Yu Tsai			clock-names = "ahb", "mmc", "output", "sample";
5062f6941cdSChen-Yu Tsai			resets = <&mmc_config_clk 2>;
5072f6941cdSChen-Yu Tsai			reset-names = "ahb";
5082f6941cdSChen-Yu Tsai			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
5092f6941cdSChen-Yu Tsai			status = "disabled";
5104c1bb9c3SHans de Goede			#address-cells = <1>;
5114c1bb9c3SHans de Goede			#size-cells = <0>;
5122f6941cdSChen-Yu Tsai		};
5132f6941cdSChen-Yu Tsai
5145841f6c0SMaxime Ripard		mmc3: mmc@1c12000 {
5153a952213SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-mmc";
5162f6941cdSChen-Yu Tsai			reg = <0x01c12000 0x1000>;
51764507fe3SChen-Yu Tsai			clocks = <&mmc_config_clk 3>, <&ccu CLK_MMC3>,
51864507fe3SChen-Yu Tsai				 <&ccu CLK_MMC3_OUTPUT>,
51964507fe3SChen-Yu Tsai				 <&ccu CLK_MMC3_SAMPLE>;
5202f6941cdSChen-Yu Tsai			clock-names = "ahb", "mmc", "output", "sample";
5212f6941cdSChen-Yu Tsai			resets = <&mmc_config_clk 3>;
5222f6941cdSChen-Yu Tsai			reset-names = "ahb";
5232f6941cdSChen-Yu Tsai			interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
5242f6941cdSChen-Yu Tsai			status = "disabled";
5254c1bb9c3SHans de Goede			#address-cells = <1>;
5264c1bb9c3SHans de Goede			#size-cells = <0>;
5272f6941cdSChen-Yu Tsai		};
5282f6941cdSChen-Yu Tsai
5295841f6c0SMaxime Ripard		mmc_config_clk: clk@1c13000 {
5309c56f3f3SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-mmc-config-clk";
5319c56f3f3SChen-Yu Tsai			reg = <0x01c13000 0x10>;
53264507fe3SChen-Yu Tsai			clocks = <&ccu CLK_BUS_MMC>;
53364507fe3SChen-Yu Tsai			resets = <&ccu RST_BUS_MMC>;
5349c56f3f3SChen-Yu Tsai			#clock-cells = <1>;
5359c56f3f3SChen-Yu Tsai			#reset-cells = <1>;
5369c56f3f3SChen-Yu Tsai			clock-output-names = "mmc0_config", "mmc1_config",
5379c56f3f3SChen-Yu Tsai					     "mmc2_config", "mmc3_config";
5389c56f3f3SChen-Yu Tsai		};
5399c56f3f3SChen-Yu Tsai
5405841f6c0SMaxime Ripard		gic: interrupt-controller@1c41000 {
5415400cdc1SMaxime Ripard			compatible = "arm,gic-400";
5424ab328f0SChen-Yu Tsai			reg = <0x01c41000 0x1000>,
543387720c9SMarc Zyngier			      <0x01c42000 0x2000>,
5444ab328f0SChen-Yu Tsai			      <0x01c44000 0x2000>,
5454ab328f0SChen-Yu Tsai			      <0x01c46000 0x2000>;
5464ab328f0SChen-Yu Tsai			interrupt-controller;
5474ab328f0SChen-Yu Tsai			#interrupt-cells = <3>;
54819882b84SMaxime Ripard			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
5494ab328f0SChen-Yu Tsai		};
5504ab328f0SChen-Yu Tsai
551f0b55841SChen-Yu Tsai		cci: cci@1c90000 {
552f0b55841SChen-Yu Tsai			compatible = "arm,cci-400";
553f0b55841SChen-Yu Tsai			#address-cells = <1>;
554f0b55841SChen-Yu Tsai			#size-cells = <1>;
555f0b55841SChen-Yu Tsai			reg = <0x01c90000 0x1000>;
556f0b55841SChen-Yu Tsai			ranges = <0x0 0x01c90000 0x10000>;
557f0b55841SChen-Yu Tsai
558f0b55841SChen-Yu Tsai			cci_control0: slave-if@4000 {
559f0b55841SChen-Yu Tsai				compatible = "arm,cci-400-ctrl-if";
560f0b55841SChen-Yu Tsai				interface-type = "ace";
561f0b55841SChen-Yu Tsai				reg = <0x4000 0x1000>;
562f0b55841SChen-Yu Tsai			};
563f0b55841SChen-Yu Tsai
564f0b55841SChen-Yu Tsai			cci_control1: slave-if@5000 {
565f0b55841SChen-Yu Tsai				compatible = "arm,cci-400-ctrl-if";
566f0b55841SChen-Yu Tsai				interface-type = "ace";
567f0b55841SChen-Yu Tsai				reg = <0x5000 0x1000>;
568f0b55841SChen-Yu Tsai			};
569f0b55841SChen-Yu Tsai
570f0b55841SChen-Yu Tsai			pmu@9000 {
571f0b55841SChen-Yu Tsai				 compatible = "arm,cci-400-pmu,r1";
572f0b55841SChen-Yu Tsai				 reg = <0x9000 0x5000>;
573f0b55841SChen-Yu Tsai				 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
574f0b55841SChen-Yu Tsai					      <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
575f0b55841SChen-Yu Tsai					      <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
576f0b55841SChen-Yu Tsai					      <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
577f0b55841SChen-Yu Tsai					      <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
578f0b55841SChen-Yu Tsai			};
579f0b55841SChen-Yu Tsai		};
580f0b55841SChen-Yu Tsai
5815841f6c0SMaxime Ripard		de_clocks: clock@3000000 {
58264507fe3SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-de-clks";
58364507fe3SChen-Yu Tsai			reg = <0x03000000 0x30>;
58464507fe3SChen-Yu Tsai			clocks = <&ccu CLK_DE>,
58564507fe3SChen-Yu Tsai				 <&ccu CLK_SDRAM>,
58664507fe3SChen-Yu Tsai				 <&ccu CLK_BUS_DE>;
58764507fe3SChen-Yu Tsai			clock-names = "mod",
58864507fe3SChen-Yu Tsai				      "dram",
58964507fe3SChen-Yu Tsai				      "bus";
59064507fe3SChen-Yu Tsai			resets = <&ccu RST_BUS_DE>;
59164507fe3SChen-Yu Tsai			#clock-cells = <1>;
592ac399a97SChen-Yu Tsai			#reset-cells = <1>;
593ac399a97SChen-Yu Tsai		};
594ac399a97SChen-Yu Tsai
595f1317774SChen-Yu Tsai		fe0: display-frontend@3100000 {
596f1317774SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-display-frontend";
597f1317774SChen-Yu Tsai			reg = <0x03100000 0x40000>;
598f1317774SChen-Yu Tsai			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
599f1317774SChen-Yu Tsai			clocks = <&de_clocks CLK_BUS_FE0>, <&de_clocks CLK_FE0>,
600f1317774SChen-Yu Tsai				 <&de_clocks CLK_DRAM_FE0>;
601f1317774SChen-Yu Tsai			clock-names = "ahb", "mod",
602f1317774SChen-Yu Tsai				      "ram";
603f1317774SChen-Yu Tsai			resets = <&de_clocks RST_FE0>;
604f1317774SChen-Yu Tsai
605f1317774SChen-Yu Tsai			ports {
606f1317774SChen-Yu Tsai				#address-cells = <1>;
607f1317774SChen-Yu Tsai				#size-cells = <0>;
608f1317774SChen-Yu Tsai
609f1317774SChen-Yu Tsai				fe0_out: port@1 {
610f1317774SChen-Yu Tsai					reg = <1>;
611f1317774SChen-Yu Tsai
612c4953ba1SMaxime Ripard					fe0_out_deu0: endpoint {
613f1317774SChen-Yu Tsai						remote-endpoint = <&deu0_in_fe0>;
614f1317774SChen-Yu Tsai					};
615f1317774SChen-Yu Tsai				};
616f1317774SChen-Yu Tsai			};
617f1317774SChen-Yu Tsai		};
618f1317774SChen-Yu Tsai
619f1317774SChen-Yu Tsai		fe1: display-frontend@3140000 {
620f1317774SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-display-frontend";
621f1317774SChen-Yu Tsai			reg = <0x03140000 0x40000>;
622f1317774SChen-Yu Tsai			interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
623f1317774SChen-Yu Tsai			clocks = <&de_clocks CLK_BUS_FE1>, <&de_clocks CLK_FE1>,
624f1317774SChen-Yu Tsai				 <&de_clocks CLK_DRAM_FE1>;
625f1317774SChen-Yu Tsai			clock-names = "ahb", "mod",
626f1317774SChen-Yu Tsai				      "ram";
627f1317774SChen-Yu Tsai			resets = <&de_clocks RST_FE0>;
628f1317774SChen-Yu Tsai
629f1317774SChen-Yu Tsai			ports {
630f1317774SChen-Yu Tsai				#address-cells = <1>;
631f1317774SChen-Yu Tsai				#size-cells = <0>;
632f1317774SChen-Yu Tsai
633f1317774SChen-Yu Tsai				fe1_out: port@1 {
634f1317774SChen-Yu Tsai					reg = <1>;
635f1317774SChen-Yu Tsai
636c4953ba1SMaxime Ripard					fe1_out_deu1: endpoint {
637f1317774SChen-Yu Tsai						remote-endpoint = <&deu1_in_fe1>;
638f1317774SChen-Yu Tsai					};
639f1317774SChen-Yu Tsai				};
640f1317774SChen-Yu Tsai			};
641f1317774SChen-Yu Tsai		};
642f1317774SChen-Yu Tsai
643f1317774SChen-Yu Tsai		be0: display-backend@3200000 {
644f1317774SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-display-backend";
645f1317774SChen-Yu Tsai			reg = <0x03200000 0x40000>;
646f1317774SChen-Yu Tsai			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
647f1317774SChen-Yu Tsai			clocks = <&de_clocks CLK_BUS_BE0>, <&de_clocks CLK_BE0>,
648f1317774SChen-Yu Tsai				 <&de_clocks CLK_DRAM_BE0>;
649f1317774SChen-Yu Tsai			clock-names = "ahb", "mod",
650f1317774SChen-Yu Tsai				      "ram";
651f1317774SChen-Yu Tsai			resets = <&de_clocks RST_BE0>;
652f1317774SChen-Yu Tsai
653f1317774SChen-Yu Tsai			ports {
654f1317774SChen-Yu Tsai				#address-cells = <1>;
655f1317774SChen-Yu Tsai				#size-cells = <0>;
656f1317774SChen-Yu Tsai
657f1317774SChen-Yu Tsai				be0_in: port@0 {
658f1317774SChen-Yu Tsai					#address-cells = <1>;
659f1317774SChen-Yu Tsai					#size-cells = <0>;
660f1317774SChen-Yu Tsai					reg = <0>;
661f1317774SChen-Yu Tsai
662f1317774SChen-Yu Tsai					be0_in_deu0: endpoint@0 {
663f1317774SChen-Yu Tsai						reg = <0>;
664f1317774SChen-Yu Tsai						remote-endpoint = <&deu0_out_be0>;
665f1317774SChen-Yu Tsai					};
666f1317774SChen-Yu Tsai
667f1317774SChen-Yu Tsai					be0_in_deu1: endpoint@1 {
668f1317774SChen-Yu Tsai						reg = <1>;
669f1317774SChen-Yu Tsai						remote-endpoint = <&deu1_out_be0>;
670f1317774SChen-Yu Tsai					};
671f1317774SChen-Yu Tsai				};
672f1317774SChen-Yu Tsai
673f1317774SChen-Yu Tsai				be0_out: port@1 {
674f1317774SChen-Yu Tsai					reg = <1>;
675f1317774SChen-Yu Tsai
676c4953ba1SMaxime Ripard					be0_out_drc0: endpoint {
677f1317774SChen-Yu Tsai						remote-endpoint = <&drc0_in_be0>;
678f1317774SChen-Yu Tsai					};
679f1317774SChen-Yu Tsai				};
680f1317774SChen-Yu Tsai			};
681f1317774SChen-Yu Tsai		};
682f1317774SChen-Yu Tsai
683f1317774SChen-Yu Tsai		be1: display-backend@3240000 {
684f1317774SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-display-backend";
685f1317774SChen-Yu Tsai			reg = <0x03240000 0x40000>;
686f1317774SChen-Yu Tsai			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
687f1317774SChen-Yu Tsai			clocks = <&de_clocks CLK_BUS_BE1>, <&de_clocks CLK_BE1>,
688f1317774SChen-Yu Tsai				 <&de_clocks CLK_DRAM_BE1>;
689f1317774SChen-Yu Tsai			clock-names = "ahb", "mod",
690f1317774SChen-Yu Tsai				      "ram";
691f1317774SChen-Yu Tsai			resets = <&de_clocks RST_BE1>;
692f1317774SChen-Yu Tsai
693f1317774SChen-Yu Tsai			ports {
694f1317774SChen-Yu Tsai				#address-cells = <1>;
695f1317774SChen-Yu Tsai				#size-cells = <0>;
696f1317774SChen-Yu Tsai
697f1317774SChen-Yu Tsai				be1_in: port@0 {
698f1317774SChen-Yu Tsai					#address-cells = <1>;
699f1317774SChen-Yu Tsai					#size-cells = <0>;
700f1317774SChen-Yu Tsai					reg = <0>;
701f1317774SChen-Yu Tsai
702f1317774SChen-Yu Tsai					be1_in_deu0: endpoint@0 {
703f1317774SChen-Yu Tsai						reg = <0>;
704f1317774SChen-Yu Tsai						remote-endpoint = <&deu0_out_be1>;
705f1317774SChen-Yu Tsai					};
706f1317774SChen-Yu Tsai
707f1317774SChen-Yu Tsai					be1_in_deu1: endpoint@1 {
708f1317774SChen-Yu Tsai						reg = <1>;
709f1317774SChen-Yu Tsai						remote-endpoint = <&deu1_out_be1>;
710f1317774SChen-Yu Tsai					};
711f1317774SChen-Yu Tsai				};
712f1317774SChen-Yu Tsai
713f1317774SChen-Yu Tsai				be1_out: port@1 {
714f1317774SChen-Yu Tsai					reg = <1>;
715f1317774SChen-Yu Tsai
716c4953ba1SMaxime Ripard					be1_out_drc1: endpoint {
717f1317774SChen-Yu Tsai						remote-endpoint = <&drc1_in_be1>;
718f1317774SChen-Yu Tsai					};
719f1317774SChen-Yu Tsai				};
720f1317774SChen-Yu Tsai			};
721f1317774SChen-Yu Tsai		};
722f1317774SChen-Yu Tsai
723f1317774SChen-Yu Tsai		deu0: deu@3300000 {
724f1317774SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-deu";
725f1317774SChen-Yu Tsai			reg = <0x03300000 0x40000>;
726f1317774SChen-Yu Tsai			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
727f1317774SChen-Yu Tsai			clocks = <&de_clocks CLK_BUS_DEU0>,
728f1317774SChen-Yu Tsai				 <&de_clocks CLK_IEP_DEU0>,
729f1317774SChen-Yu Tsai				 <&de_clocks CLK_DRAM_DEU0>;
730f1317774SChen-Yu Tsai			clock-names = "ahb",
731f1317774SChen-Yu Tsai				      "mod",
732f1317774SChen-Yu Tsai				      "ram";
733f1317774SChen-Yu Tsai			resets = <&de_clocks RST_DEU0>;
734f1317774SChen-Yu Tsai
735f1317774SChen-Yu Tsai			ports {
736f1317774SChen-Yu Tsai				#address-cells = <1>;
737f1317774SChen-Yu Tsai				#size-cells = <0>;
738f1317774SChen-Yu Tsai
739f1317774SChen-Yu Tsai				deu0_in: port@0 {
740f1317774SChen-Yu Tsai					reg = <0>;
741f1317774SChen-Yu Tsai
742c4953ba1SMaxime Ripard					deu0_in_fe0: endpoint {
743f1317774SChen-Yu Tsai						remote-endpoint = <&fe0_out_deu0>;
744f1317774SChen-Yu Tsai					};
745f1317774SChen-Yu Tsai				};
746f1317774SChen-Yu Tsai
747f1317774SChen-Yu Tsai				deu0_out: port@1 {
748f1317774SChen-Yu Tsai					#address-cells = <1>;
749f1317774SChen-Yu Tsai					#size-cells = <0>;
750f1317774SChen-Yu Tsai					reg = <1>;
751f1317774SChen-Yu Tsai
752f1317774SChen-Yu Tsai					deu0_out_be0: endpoint@0 {
753f1317774SChen-Yu Tsai						reg = <0>;
754f1317774SChen-Yu Tsai						remote-endpoint = <&be0_in_deu0>;
755f1317774SChen-Yu Tsai					};
756f1317774SChen-Yu Tsai
757f1317774SChen-Yu Tsai					deu0_out_be1: endpoint@1 {
758f1317774SChen-Yu Tsai						reg = <1>;
759f1317774SChen-Yu Tsai						remote-endpoint = <&be1_in_deu0>;
760f1317774SChen-Yu Tsai					};
761f1317774SChen-Yu Tsai				};
762f1317774SChen-Yu Tsai			};
763f1317774SChen-Yu Tsai		};
764f1317774SChen-Yu Tsai
765f1317774SChen-Yu Tsai		deu1: deu@3340000 {
766f1317774SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-deu";
767f1317774SChen-Yu Tsai			reg = <0x03340000 0x40000>;
768f1317774SChen-Yu Tsai			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
769f1317774SChen-Yu Tsai			clocks = <&de_clocks CLK_BUS_DEU1>,
770f1317774SChen-Yu Tsai				 <&de_clocks CLK_IEP_DEU1>,
771f1317774SChen-Yu Tsai				 <&de_clocks CLK_DRAM_DEU1>;
772f1317774SChen-Yu Tsai			clock-names = "ahb",
773f1317774SChen-Yu Tsai				      "mod",
774f1317774SChen-Yu Tsai				      "ram";
775f1317774SChen-Yu Tsai			resets = <&de_clocks RST_DEU1>;
776f1317774SChen-Yu Tsai
777f1317774SChen-Yu Tsai			ports {
778f1317774SChen-Yu Tsai				#address-cells = <1>;
779f1317774SChen-Yu Tsai				#size-cells = <0>;
780f1317774SChen-Yu Tsai
781f1317774SChen-Yu Tsai				deu1_in: port@0 {
782f1317774SChen-Yu Tsai					reg = <0>;
783f1317774SChen-Yu Tsai
784c4953ba1SMaxime Ripard					deu1_in_fe1: endpoint {
785f1317774SChen-Yu Tsai						remote-endpoint = <&fe1_out_deu1>;
786f1317774SChen-Yu Tsai					};
787f1317774SChen-Yu Tsai				};
788f1317774SChen-Yu Tsai
789f1317774SChen-Yu Tsai				deu1_out: port@1 {
790f1317774SChen-Yu Tsai					#address-cells = <1>;
791f1317774SChen-Yu Tsai					#size-cells = <0>;
792f1317774SChen-Yu Tsai					reg = <1>;
793f1317774SChen-Yu Tsai
794f1317774SChen-Yu Tsai					deu1_out_be0: endpoint@0 {
795f1317774SChen-Yu Tsai						reg = <0>;
796f1317774SChen-Yu Tsai						remote-endpoint = <&be0_in_deu1>;
797f1317774SChen-Yu Tsai					};
798f1317774SChen-Yu Tsai
799f1317774SChen-Yu Tsai					deu1_out_be1: endpoint@1 {
800f1317774SChen-Yu Tsai						reg = <1>;
801f1317774SChen-Yu Tsai						remote-endpoint = <&be1_in_deu1>;
802f1317774SChen-Yu Tsai					};
803f1317774SChen-Yu Tsai				};
804f1317774SChen-Yu Tsai			};
805f1317774SChen-Yu Tsai		};
806f1317774SChen-Yu Tsai
807f1317774SChen-Yu Tsai		drc0: drc@3400000 {
808f1317774SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-drc";
809f1317774SChen-Yu Tsai			reg = <0x03400000 0x40000>;
810f1317774SChen-Yu Tsai			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
811f1317774SChen-Yu Tsai			clocks = <&de_clocks CLK_BUS_DRC0>,
812f1317774SChen-Yu Tsai				 <&de_clocks CLK_IEP_DRC0>,
813f1317774SChen-Yu Tsai				 <&de_clocks CLK_DRAM_DRC0>;
814f1317774SChen-Yu Tsai			clock-names = "ahb",
815f1317774SChen-Yu Tsai				      "mod",
816f1317774SChen-Yu Tsai				      "ram";
817f1317774SChen-Yu Tsai			resets = <&de_clocks RST_DRC0>;
818f1317774SChen-Yu Tsai
819f1317774SChen-Yu Tsai			ports {
820f1317774SChen-Yu Tsai				#address-cells = <1>;
821f1317774SChen-Yu Tsai				#size-cells = <0>;
822f1317774SChen-Yu Tsai
823f1317774SChen-Yu Tsai				drc0_in: port@0 {
824f1317774SChen-Yu Tsai					reg = <0>;
825f1317774SChen-Yu Tsai
826c4953ba1SMaxime Ripard					drc0_in_be0: endpoint {
827f1317774SChen-Yu Tsai						remote-endpoint = <&be0_out_drc0>;
828f1317774SChen-Yu Tsai					};
829f1317774SChen-Yu Tsai				};
830f1317774SChen-Yu Tsai
831f1317774SChen-Yu Tsai				drc0_out: port@1 {
832f1317774SChen-Yu Tsai					reg = <1>;
833f1317774SChen-Yu Tsai
834c4953ba1SMaxime Ripard					drc0_out_tcon0: endpoint {
835f1317774SChen-Yu Tsai						remote-endpoint = <&tcon0_in_drc0>;
836f1317774SChen-Yu Tsai					};
837f1317774SChen-Yu Tsai				};
838f1317774SChen-Yu Tsai			};
839f1317774SChen-Yu Tsai		};
840f1317774SChen-Yu Tsai
841f1317774SChen-Yu Tsai		drc1: drc@3440000 {
842f1317774SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-drc";
843f1317774SChen-Yu Tsai			reg = <0x03440000 0x40000>;
844f1317774SChen-Yu Tsai			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
845f1317774SChen-Yu Tsai			clocks = <&de_clocks CLK_BUS_DRC1>,
846f1317774SChen-Yu Tsai				 <&de_clocks CLK_IEP_DRC1>,
847f1317774SChen-Yu Tsai				 <&de_clocks CLK_DRAM_DRC1>;
848f1317774SChen-Yu Tsai			clock-names = "ahb",
849f1317774SChen-Yu Tsai				      "mod",
850f1317774SChen-Yu Tsai				      "ram";
851f1317774SChen-Yu Tsai			resets = <&de_clocks RST_DRC1>;
852f1317774SChen-Yu Tsai
853f1317774SChen-Yu Tsai			ports {
854f1317774SChen-Yu Tsai				#address-cells = <1>;
855f1317774SChen-Yu Tsai				#size-cells = <0>;
856f1317774SChen-Yu Tsai
857f1317774SChen-Yu Tsai				drc1_in: port@0 {
858f1317774SChen-Yu Tsai					reg = <0>;
859f1317774SChen-Yu Tsai
860c4953ba1SMaxime Ripard					drc1_in_be1: endpoint {
861f1317774SChen-Yu Tsai						remote-endpoint = <&be1_out_drc1>;
862f1317774SChen-Yu Tsai					};
863f1317774SChen-Yu Tsai				};
864f1317774SChen-Yu Tsai
865f1317774SChen-Yu Tsai				drc1_out: port@1 {
866f1317774SChen-Yu Tsai					reg = <1>;
867f1317774SChen-Yu Tsai
868c4953ba1SMaxime Ripard					drc1_out_tcon1: endpoint {
869f1317774SChen-Yu Tsai						remote-endpoint = <&tcon1_in_drc1>;
870f1317774SChen-Yu Tsai					};
871f1317774SChen-Yu Tsai				};
872f1317774SChen-Yu Tsai			};
873f1317774SChen-Yu Tsai		};
874f1317774SChen-Yu Tsai
875f1317774SChen-Yu Tsai		tcon0: lcd-controller@3c00000 {
876f1317774SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-tcon-lcd";
877f1317774SChen-Yu Tsai			reg = <0x03c00000 0x10000>;
878f1317774SChen-Yu Tsai			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
879f1317774SChen-Yu Tsai			clocks = <&ccu CLK_BUS_LCD0>, <&ccu CLK_LCD0>;
880f1317774SChen-Yu Tsai			clock-names = "ahb", "tcon-ch0";
88106dfaf1dSMaxime Ripard			resets = <&ccu RST_BUS_LCD0>,
88206dfaf1dSMaxime Ripard				 <&ccu RST_BUS_EDP>,
88306dfaf1dSMaxime Ripard				 <&ccu RST_BUS_LVDS>;
88406dfaf1dSMaxime Ripard			reset-names = "lcd",
88506dfaf1dSMaxime Ripard				      "edp",
88606dfaf1dSMaxime Ripard				      "lvds";
887f1317774SChen-Yu Tsai			clock-output-names = "tcon0-pixel-clock";
88809f29dccSMaxime Ripard			#clock-cells = <0>;
889f1317774SChen-Yu Tsai
890f1317774SChen-Yu Tsai			ports {
891f1317774SChen-Yu Tsai				#address-cells = <1>;
892f1317774SChen-Yu Tsai				#size-cells = <0>;
893f1317774SChen-Yu Tsai
894f1317774SChen-Yu Tsai				tcon0_in: port@0 {
895f1317774SChen-Yu Tsai					reg = <0>;
896f1317774SChen-Yu Tsai
897c4953ba1SMaxime Ripard					tcon0_in_drc0: endpoint {
898f1317774SChen-Yu Tsai						remote-endpoint = <&drc0_out_tcon0>;
899f1317774SChen-Yu Tsai					};
900f1317774SChen-Yu Tsai				};
901f1317774SChen-Yu Tsai
902f1317774SChen-Yu Tsai				tcon0_out: port@1 {
903f1317774SChen-Yu Tsai					reg = <1>;
904f1317774SChen-Yu Tsai				};
905f1317774SChen-Yu Tsai			};
906f1317774SChen-Yu Tsai		};
907f1317774SChen-Yu Tsai
908f1317774SChen-Yu Tsai		tcon1: lcd-controller@3c10000 {
909f1317774SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-tcon-tv";
910f1317774SChen-Yu Tsai			reg = <0x03c10000 0x10000>;
911f1317774SChen-Yu Tsai			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
912f1317774SChen-Yu Tsai			clocks = <&ccu CLK_BUS_LCD1>, <&ccu CLK_LCD1>;
913f1317774SChen-Yu Tsai			clock-names = "ahb", "tcon-ch1";
914f1317774SChen-Yu Tsai			resets = <&ccu RST_BUS_LCD1>, <&ccu RST_BUS_EDP>;
915f1317774SChen-Yu Tsai			reset-names = "lcd", "edp";
916f1317774SChen-Yu Tsai
917f1317774SChen-Yu Tsai			ports {
918f1317774SChen-Yu Tsai				#address-cells = <1>;
919f1317774SChen-Yu Tsai				#size-cells = <0>;
920f1317774SChen-Yu Tsai
921f1317774SChen-Yu Tsai				tcon1_in: port@0 {
922f1317774SChen-Yu Tsai					reg = <0>;
923f1317774SChen-Yu Tsai
924c4953ba1SMaxime Ripard					tcon1_in_drc1: endpoint {
925f1317774SChen-Yu Tsai						remote-endpoint = <&drc1_out_tcon1>;
926f1317774SChen-Yu Tsai					};
927f1317774SChen-Yu Tsai				};
928f1317774SChen-Yu Tsai
929f1317774SChen-Yu Tsai				tcon1_out: port@1 {
930f1317774SChen-Yu Tsai					reg = <1>;
931f1317774SChen-Yu Tsai				};
932f1317774SChen-Yu Tsai			};
933f1317774SChen-Yu Tsai		};
934f1317774SChen-Yu Tsai
9355841f6c0SMaxime Ripard		ccu: clock@6000000 {
93664507fe3SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-ccu";
93764507fe3SChen-Yu Tsai			reg = <0x06000000 0x800>;
93864507fe3SChen-Yu Tsai			clocks = <&osc24M>, <&osc32k>;
93964507fe3SChen-Yu Tsai			clock-names = "hosc", "losc";
94064507fe3SChen-Yu Tsai			#clock-cells = <1>;
941ac399a97SChen-Yu Tsai			#reset-cells = <1>;
942ac399a97SChen-Yu Tsai		};
943ac399a97SChen-Yu Tsai
9445841f6c0SMaxime Ripard		timer@6000c00 {
9454ab328f0SChen-Yu Tsai			compatible = "allwinner,sun4i-a10-timer";
9464ab328f0SChen-Yu Tsai			reg = <0x06000c00 0xa0>;
94719882b84SMaxime Ripard			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
94819882b84SMaxime Ripard				     <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
94919882b84SMaxime Ripard				     <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
95019882b84SMaxime Ripard				     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
95119882b84SMaxime Ripard				     <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
95219882b84SMaxime Ripard				     <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
9534ab328f0SChen-Yu Tsai
9544ab328f0SChen-Yu Tsai			clocks = <&osc24M>;
9554ab328f0SChen-Yu Tsai		};
9564ab328f0SChen-Yu Tsai
9575841f6c0SMaxime Ripard		wdt: watchdog@6000ca0 {
9586d6693c8SChen-Yu Tsai			compatible = "allwinner,sun6i-a31-wdt";
9596d6693c8SChen-Yu Tsai			reg = <0x06000ca0 0x20>;
9606d6693c8SChen-Yu Tsai			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
96127b705fbSMaxime Ripard			clocks = <&osc24M>;
9626d6693c8SChen-Yu Tsai		};
9636d6693c8SChen-Yu Tsai
9645841f6c0SMaxime Ripard		pio: pinctrl@6000800 {
96543d024d3SMaxime Ripard			compatible = "allwinner,sun9i-a80-pinctrl";
96643d024d3SMaxime Ripard			reg = <0x06000800 0x400>;
96719882b84SMaxime Ripard			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
96819882b84SMaxime Ripard				     <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
96919882b84SMaxime Ripard				     <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
97019882b84SMaxime Ripard				     <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
97119882b84SMaxime Ripard				     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
97264507fe3SChen-Yu Tsai			clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
973be7bc6b9SMaxime Ripard			clock-names = "apb", "hosc", "losc";
97443d024d3SMaxime Ripard			gpio-controller;
97543d024d3SMaxime Ripard			interrupt-controller;
9766d55d339SHans de Goede			#interrupt-cells = <3>;
97743d024d3SMaxime Ripard			#gpio-cells = <3>;
978888366faSMaxime Ripard
97972acaa13SChen-Yu Tsai			gmac_rgmii_pins: gmac-rgmii-pins {
980a79668c1SMaxime Ripard				pins = "PA0", "PA1", "PA2", "PA3", "PA4", "PA5",
981a79668c1SMaxime Ripard				       "PA7", "PA8", "PA9", "PA10", "PA12",
982a79668c1SMaxime Ripard				       "PA13", "PA15", "PA16", "PA17";
983a79668c1SMaxime Ripard				function = "gmac";
98472acaa13SChen-Yu Tsai				/*
98572acaa13SChen-Yu Tsai				 * data lines in RGMII mode use DDR mode
98672acaa13SChen-Yu Tsai				 * and need a higher signal drive strength
98772acaa13SChen-Yu Tsai				 */
98872acaa13SChen-Yu Tsai				drive-strength = <40>;
98972acaa13SChen-Yu Tsai			};
99072acaa13SChen-Yu Tsai
991d177864fSMaxime Ripard			i2c3_pins: i2c3-pins {
9921edcd36fSMaxime Ripard				pins = "PG10", "PG11";
9931edcd36fSMaxime Ripard				function = "i2c3";
9946657a058SChen-Yu Tsai			};
9956657a058SChen-Yu Tsai
99602104704SChen-Yu Tsai			lcd0_rgb888_pins: lcd0-rgb888-pins {
99702104704SChen-Yu Tsai				pins = "PD0", "PD1", "PD2", "PD3",
99802104704SChen-Yu Tsai				       "PD4", "PD5", "PD6", "PD7",
99902104704SChen-Yu Tsai				       "PD8", "PD9", "PD10", "PD11",
100002104704SChen-Yu Tsai				       "PD12", "PD13", "PD14", "PD15",
100102104704SChen-Yu Tsai				       "PD16", "PD17", "PD18", "PD19",
100202104704SChen-Yu Tsai				       "PD20", "PD21", "PD22", "PD23",
100302104704SChen-Yu Tsai				       "PD24", "PD25", "PD26", "PD27";
100402104704SChen-Yu Tsai				function = "lcd0";
100502104704SChen-Yu Tsai			};
100602104704SChen-Yu Tsai
1007d177864fSMaxime Ripard			mmc0_pins: mmc0-pins {
10081edcd36fSMaxime Ripard				pins = "PF0", "PF1" ,"PF2", "PF3",
1009cd23e2e5SChen-Yu Tsai				       "PF4", "PF5";
10101edcd36fSMaxime Ripard				function = "mmc0";
10111edcd36fSMaxime Ripard				drive-strength = <30>;
101280ee72e7SChen-Yu Tsai				bias-pull-up;
1013cd23e2e5SChen-Yu Tsai			};
1014cd23e2e5SChen-Yu Tsai
1015d177864fSMaxime Ripard			mmc1_pins: mmc1-pins {
10161edcd36fSMaxime Ripard				pins = "PG0", "PG1" ,"PG2", "PG3",
101756b07301SChen-Yu Tsai						 "PG4", "PG5";
10181edcd36fSMaxime Ripard				function = "mmc1";
10191edcd36fSMaxime Ripard				drive-strength = <30>;
102080ee72e7SChen-Yu Tsai				bias-pull-up;
102156b07301SChen-Yu Tsai			};
102256b07301SChen-Yu Tsai
1023d177864fSMaxime Ripard			mmc2_8bit_pins: mmc2-8bit-pins {
10241edcd36fSMaxime Ripard				pins = "PC6", "PC7", "PC8", "PC9",
102523a602b6SChen-Yu Tsai				       "PC10", "PC11", "PC12",
1026675ec62bSChen-Yu Tsai				       "PC13", "PC14", "PC15",
1027675ec62bSChen-Yu Tsai				       "PC16";
10281edcd36fSMaxime Ripard				function = "mmc2";
10291edcd36fSMaxime Ripard				drive-strength = <30>;
103080ee72e7SChen-Yu Tsai				bias-pull-up;
1031888366faSMaxime Ripard			};
103243d024d3SMaxime Ripard
1033d177864fSMaxime Ripard			uart0_ph_pins: uart0-ph-pins {
10341edcd36fSMaxime Ripard				pins = "PH12", "PH13";
10351edcd36fSMaxime Ripard				function = "uart0";
10364ab328f0SChen-Yu Tsai			};
10372a950b2cSChen-Yu Tsai
1038d177864fSMaxime Ripard			uart4_pins: uart4-pins {
10391edcd36fSMaxime Ripard				pins = "PG12", "PG13", "PG14", "PG15";
10401edcd36fSMaxime Ripard				function = "uart4";
10412a950b2cSChen-Yu Tsai			};
10424ab328f0SChen-Yu Tsai		};
10434ab328f0SChen-Yu Tsai
10445841f6c0SMaxime Ripard		uart0: serial@7000000 {
10454ab328f0SChen-Yu Tsai			compatible = "snps,dw-apb-uart";
10464ab328f0SChen-Yu Tsai			reg = <0x07000000 0x400>;
104719882b84SMaxime Ripard			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
10484ab328f0SChen-Yu Tsai			reg-shift = <2>;
10494ab328f0SChen-Yu Tsai			reg-io-width = <4>;
105064507fe3SChen-Yu Tsai			clocks = <&ccu CLK_BUS_UART0>;
105164507fe3SChen-Yu Tsai			resets = <&ccu RST_BUS_UART0>;
10524ab328f0SChen-Yu Tsai			status = "disabled";
10534ab328f0SChen-Yu Tsai		};
10544ab328f0SChen-Yu Tsai
10555841f6c0SMaxime Ripard		uart1: serial@7000400 {
10564ab328f0SChen-Yu Tsai			compatible = "snps,dw-apb-uart";
10574ab328f0SChen-Yu Tsai			reg = <0x07000400 0x400>;
105819882b84SMaxime Ripard			interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
10594ab328f0SChen-Yu Tsai			reg-shift = <2>;
10604ab328f0SChen-Yu Tsai			reg-io-width = <4>;
106164507fe3SChen-Yu Tsai			clocks = <&ccu CLK_BUS_UART1>;
106264507fe3SChen-Yu Tsai			resets = <&ccu RST_BUS_UART1>;
10634ab328f0SChen-Yu Tsai			status = "disabled";
10644ab328f0SChen-Yu Tsai		};
10654ab328f0SChen-Yu Tsai
10665841f6c0SMaxime Ripard		uart2: serial@7000800 {
10674ab328f0SChen-Yu Tsai			compatible = "snps,dw-apb-uart";
10684ab328f0SChen-Yu Tsai			reg = <0x07000800 0x400>;
106919882b84SMaxime Ripard			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
10704ab328f0SChen-Yu Tsai			reg-shift = <2>;
10714ab328f0SChen-Yu Tsai			reg-io-width = <4>;
107264507fe3SChen-Yu Tsai			clocks = <&ccu CLK_BUS_UART2>;
107364507fe3SChen-Yu Tsai			resets = <&ccu RST_BUS_UART2>;
10744ab328f0SChen-Yu Tsai			status = "disabled";
10754ab328f0SChen-Yu Tsai		};
10764ab328f0SChen-Yu Tsai
10775841f6c0SMaxime Ripard		uart3: serial@7000c00 {
10784ab328f0SChen-Yu Tsai			compatible = "snps,dw-apb-uart";
10794ab328f0SChen-Yu Tsai			reg = <0x07000c00 0x400>;
108019882b84SMaxime Ripard			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
10814ab328f0SChen-Yu Tsai			reg-shift = <2>;
10824ab328f0SChen-Yu Tsai			reg-io-width = <4>;
108364507fe3SChen-Yu Tsai			clocks = <&ccu CLK_BUS_UART3>;
108464507fe3SChen-Yu Tsai			resets = <&ccu RST_BUS_UART3>;
10854ab328f0SChen-Yu Tsai			status = "disabled";
10864ab328f0SChen-Yu Tsai		};
10874ab328f0SChen-Yu Tsai
10885841f6c0SMaxime Ripard		uart4: serial@7001000 {
10894ab328f0SChen-Yu Tsai			compatible = "snps,dw-apb-uart";
10904ab328f0SChen-Yu Tsai			reg = <0x07001000 0x400>;
109119882b84SMaxime Ripard			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
10924ab328f0SChen-Yu Tsai			reg-shift = <2>;
10934ab328f0SChen-Yu Tsai			reg-io-width = <4>;
109464507fe3SChen-Yu Tsai			clocks = <&ccu CLK_BUS_UART4>;
109564507fe3SChen-Yu Tsai			resets = <&ccu RST_BUS_UART4>;
10964ab328f0SChen-Yu Tsai			status = "disabled";
10974ab328f0SChen-Yu Tsai		};
10984ab328f0SChen-Yu Tsai
10995841f6c0SMaxime Ripard		uart5: serial@7001400 {
11004ab328f0SChen-Yu Tsai			compatible = "snps,dw-apb-uart";
11014ab328f0SChen-Yu Tsai			reg = <0x07001400 0x400>;
110219882b84SMaxime Ripard			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
11034ab328f0SChen-Yu Tsai			reg-shift = <2>;
11044ab328f0SChen-Yu Tsai			reg-io-width = <4>;
110564507fe3SChen-Yu Tsai			clocks = <&ccu CLK_BUS_UART5>;
110664507fe3SChen-Yu Tsai			resets = <&ccu RST_BUS_UART5>;
11074ab328f0SChen-Yu Tsai			status = "disabled";
11084ab328f0SChen-Yu Tsai		};
11094ab328f0SChen-Yu Tsai
11105841f6c0SMaxime Ripard		i2c0: i2c@7002800 {
1111e4aa753aSChen-Yu Tsai			compatible = "allwinner,sun6i-a31-i2c";
1112e4aa753aSChen-Yu Tsai			reg = <0x07002800 0x400>;
111319882b84SMaxime Ripard			interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
111464507fe3SChen-Yu Tsai			clocks = <&ccu CLK_BUS_I2C0>;
111564507fe3SChen-Yu Tsai			resets = <&ccu RST_BUS_I2C0>;
1116e4aa753aSChen-Yu Tsai			status = "disabled";
1117e4aa753aSChen-Yu Tsai			#address-cells = <1>;
1118e4aa753aSChen-Yu Tsai			#size-cells = <0>;
1119e4aa753aSChen-Yu Tsai		};
1120e4aa753aSChen-Yu Tsai
11215841f6c0SMaxime Ripard		i2c1: i2c@7002c00 {
1122e4aa753aSChen-Yu Tsai			compatible = "allwinner,sun6i-a31-i2c";
1123e4aa753aSChen-Yu Tsai			reg = <0x07002c00 0x400>;
112419882b84SMaxime Ripard			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
112564507fe3SChen-Yu Tsai			clocks = <&ccu CLK_BUS_I2C1>;
112664507fe3SChen-Yu Tsai			resets = <&ccu RST_BUS_I2C1>;
1127e4aa753aSChen-Yu Tsai			status = "disabled";
1128e4aa753aSChen-Yu Tsai			#address-cells = <1>;
1129e4aa753aSChen-Yu Tsai			#size-cells = <0>;
1130e4aa753aSChen-Yu Tsai		};
1131e4aa753aSChen-Yu Tsai
11325841f6c0SMaxime Ripard		i2c2: i2c@7003000 {
1133e4aa753aSChen-Yu Tsai			compatible = "allwinner,sun6i-a31-i2c";
1134e4aa753aSChen-Yu Tsai			reg = <0x07003000 0x400>;
113519882b84SMaxime Ripard			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
113664507fe3SChen-Yu Tsai			clocks = <&ccu CLK_BUS_I2C2>;
113764507fe3SChen-Yu Tsai			resets = <&ccu RST_BUS_I2C2>;
1138e4aa753aSChen-Yu Tsai			status = "disabled";
1139e4aa753aSChen-Yu Tsai			#address-cells = <1>;
1140e4aa753aSChen-Yu Tsai			#size-cells = <0>;
1141e4aa753aSChen-Yu Tsai		};
1142e4aa753aSChen-Yu Tsai
11435841f6c0SMaxime Ripard		i2c3: i2c@7003400 {
1144e4aa753aSChen-Yu Tsai			compatible = "allwinner,sun6i-a31-i2c";
1145e4aa753aSChen-Yu Tsai			reg = <0x07003400 0x400>;
114619882b84SMaxime Ripard			interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
114764507fe3SChen-Yu Tsai			clocks = <&ccu CLK_BUS_I2C3>;
114864507fe3SChen-Yu Tsai			resets = <&ccu RST_BUS_I2C3>;
1149e4aa753aSChen-Yu Tsai			status = "disabled";
1150e4aa753aSChen-Yu Tsai			#address-cells = <1>;
1151e4aa753aSChen-Yu Tsai			#size-cells = <0>;
1152e4aa753aSChen-Yu Tsai		};
1153e4aa753aSChen-Yu Tsai
11545841f6c0SMaxime Ripard		i2c4: i2c@7003800 {
1155e4aa753aSChen-Yu Tsai			compatible = "allwinner,sun6i-a31-i2c";
1156e4aa753aSChen-Yu Tsai			reg = <0x07003800 0x400>;
115719882b84SMaxime Ripard			interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
115864507fe3SChen-Yu Tsai			clocks = <&ccu CLK_BUS_I2C4>;
115964507fe3SChen-Yu Tsai			resets = <&ccu RST_BUS_I2C4>;
1160e4aa753aSChen-Yu Tsai			status = "disabled";
1161e4aa753aSChen-Yu Tsai			#address-cells = <1>;
1162e4aa753aSChen-Yu Tsai			#size-cells = <0>;
1163e4aa753aSChen-Yu Tsai		};
1164e4aa753aSChen-Yu Tsai
11655841f6c0SMaxime Ripard		r_wdt: watchdog@8001000 {
11664ab328f0SChen-Yu Tsai			compatible = "allwinner,sun6i-a31-wdt";
11674ab328f0SChen-Yu Tsai			reg = <0x08001000 0x20>;
116819882b84SMaxime Ripard			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
116927b705fbSMaxime Ripard			clocks = <&osc24M>;
11704ab328f0SChen-Yu Tsai		};
11714ab328f0SChen-Yu Tsai
1172fd4b0c33SChen-Yu Tsai		prcm@8001400 {
1173fd4b0c33SChen-Yu Tsai			compatible = "allwinner,sun9i-a80-prcm";
1174fd4b0c33SChen-Yu Tsai			reg = <0x08001400 0x200>;
1175fd4b0c33SChen-Yu Tsai		};
1176fd4b0c33SChen-Yu Tsai
11775841f6c0SMaxime Ripard		apbs_rst: reset@80014b0 {
1178afd7d66cSChen-Yu Tsai			reg = <0x080014b0 0x4>;
1179afd7d66cSChen-Yu Tsai			compatible = "allwinner,sun6i-a31-clock-reset";
1180afd7d66cSChen-Yu Tsai			#reset-cells = <1>;
1181afd7d66cSChen-Yu Tsai		};
1182afd7d66cSChen-Yu Tsai
11835841f6c0SMaxime Ripard		nmi_intc: interrupt-controller@80015a0 {
118467e1cbfbSChen-Yu Tsai			compatible = "allwinner,sun9i-a80-nmi";
118567e1cbfbSChen-Yu Tsai			interrupt-controller;
118667e1cbfbSChen-Yu Tsai			#interrupt-cells = <2>;
118767e1cbfbSChen-Yu Tsai			reg = <0x080015a0 0xc>;
118867e1cbfbSChen-Yu Tsai			interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
118967e1cbfbSChen-Yu Tsai		};
119067e1cbfbSChen-Yu Tsai
11915841f6c0SMaxime Ripard		r_ir: ir@8002000 {
1192342d23a7SClément Péron			compatible = "allwinner,sun6i-a31-ir";
11931595b37cSChen-Yu Tsai			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
11941595b37cSChen-Yu Tsai			pinctrl-names = "default";
11951595b37cSChen-Yu Tsai			pinctrl-0 = <&r_ir_pins>;
11961595b37cSChen-Yu Tsai			clocks = <&apbs_gates 1>, <&r_ir_clk>;
11971595b37cSChen-Yu Tsai			clock-names = "apb", "ir";
11981595b37cSChen-Yu Tsai			resets = <&apbs_rst 1>;
11991595b37cSChen-Yu Tsai			reg = <0x08002000 0x40>;
12001595b37cSChen-Yu Tsai			status = "disabled";
12011595b37cSChen-Yu Tsai		};
12021595b37cSChen-Yu Tsai
12035841f6c0SMaxime Ripard		r_uart: serial@8002800 {
12044ab328f0SChen-Yu Tsai			compatible = "snps,dw-apb-uart";
12054ab328f0SChen-Yu Tsai			reg = <0x08002800 0x400>;
120619882b84SMaxime Ripard			interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
12074ab328f0SChen-Yu Tsai			reg-shift = <2>;
12084ab328f0SChen-Yu Tsai			reg-io-width = <4>;
1209afd7d66cSChen-Yu Tsai			clocks = <&apbs_gates 4>;
1210afd7d66cSChen-Yu Tsai			resets = <&apbs_rst 4>;
12114ab328f0SChen-Yu Tsai			status = "disabled";
12124ab328f0SChen-Yu Tsai		};
12131ac56a6dSChen-Yu Tsai
12145841f6c0SMaxime Ripard		r_pio: pinctrl@8002c00 {
12151ac56a6dSChen-Yu Tsai			compatible = "allwinner,sun9i-a80-r-pinctrl";
12161ac56a6dSChen-Yu Tsai			reg = <0x08002c00 0x400>;
12171ac56a6dSChen-Yu Tsai			interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
12181ac56a6dSChen-Yu Tsai				     <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
1219be7bc6b9SMaxime Ripard			clocks = <&apbs_gates 0>, <&osc24M>, <&osc32k>;
1220be7bc6b9SMaxime Ripard			clock-names = "apb", "hosc", "losc";
12211ac56a6dSChen-Yu Tsai			gpio-controller;
12221ac56a6dSChen-Yu Tsai			interrupt-controller;
122306ad11beSChen-Yu Tsai			#interrupt-cells = <3>;
12241ac56a6dSChen-Yu Tsai			#gpio-cells = <3>;
12251595b37cSChen-Yu Tsai
122600a7088fSMaxime Ripard			r_ir_pins: r-ir-pins {
12271edcd36fSMaxime Ripard				pins = "PL6";
12281edcd36fSMaxime Ripard				function = "s_cir_rx";
12291595b37cSChen-Yu Tsai			};
1230ed473ebdSChen-Yu Tsai
123100a7088fSMaxime Ripard			r_rsb_pins: r-rsb-pins {
12321edcd36fSMaxime Ripard				pins = "PN0", "PN1";
12331edcd36fSMaxime Ripard				function = "s_rsb";
12341edcd36fSMaxime Ripard				drive-strength = <20>;
12351edcd36fSMaxime Ripard				bias-pull-up;
1236ed473ebdSChen-Yu Tsai			};
1237ed473ebdSChen-Yu Tsai		};
1238ed473ebdSChen-Yu Tsai
123957a83c52SRob Herring		r_rsb: rsb@8003400 {
1240ed473ebdSChen-Yu Tsai			compatible = "allwinner,sun8i-a23-rsb";
1241ed473ebdSChen-Yu Tsai			reg = <0x08003400 0x400>;
1242ed473ebdSChen-Yu Tsai			interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
1243ed473ebdSChen-Yu Tsai			clocks = <&apbs_gates 3>;
1244ed473ebdSChen-Yu Tsai			clock-frequency = <3000000>;
1245ed473ebdSChen-Yu Tsai			resets = <&apbs_rst 3>;
1246ed473ebdSChen-Yu Tsai			pinctrl-names = "default";
1247ed473ebdSChen-Yu Tsai			pinctrl-0 = <&r_rsb_pins>;
1248ed473ebdSChen-Yu Tsai			status = "disabled";
1249ed473ebdSChen-Yu Tsai			#address-cells = <1>;
1250ed473ebdSChen-Yu Tsai			#size-cells = <0>;
12511ac56a6dSChen-Yu Tsai		};
12524ab328f0SChen-Yu Tsai	};
12534ab328f0SChen-Yu Tsai};
1254