162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ or MIT)
262306a36Sopenharmony_ci// Copyright (C) 2021-2022 Samuel Holland <samuel@sholland.org>
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci#include <dt-bindings/clock/sun6i-rtc.h>
562306a36Sopenharmony_ci#include <dt-bindings/clock/sun8i-de2.h>
662306a36Sopenharmony_ci#include <dt-bindings/clock/sun8i-tcon-top.h>
762306a36Sopenharmony_ci#include <dt-bindings/clock/sun20i-d1-ccu.h>
862306a36Sopenharmony_ci#include <dt-bindings/clock/sun20i-d1-r-ccu.h>
962306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h>
1062306a36Sopenharmony_ci#include <dt-bindings/reset/sun8i-de2.h>
1162306a36Sopenharmony_ci#include <dt-bindings/reset/sun20i-d1-ccu.h>
1262306a36Sopenharmony_ci#include <dt-bindings/reset/sun20i-d1-r-ccu.h>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci/ {
1562306a36Sopenharmony_ci	#address-cells = <1>;
1662306a36Sopenharmony_ci	#size-cells = <1>;
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci	dcxo: dcxo-clk {
1962306a36Sopenharmony_ci		compatible = "fixed-clock";
2062306a36Sopenharmony_ci		clock-output-names = "dcxo";
2162306a36Sopenharmony_ci		#clock-cells = <0>;
2262306a36Sopenharmony_ci	};
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci	de: display-engine {
2562306a36Sopenharmony_ci		compatible = "allwinner,sun20i-d1-display-engine";
2662306a36Sopenharmony_ci		allwinner,pipelines = <&mixer0>, <&mixer1>;
2762306a36Sopenharmony_ci		status = "disabled";
2862306a36Sopenharmony_ci	};
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci	soc {
3162306a36Sopenharmony_ci		compatible = "simple-bus";
3262306a36Sopenharmony_ci		ranges;
3362306a36Sopenharmony_ci		dma-noncoherent;
3462306a36Sopenharmony_ci		#address-cells = <1>;
3562306a36Sopenharmony_ci		#size-cells = <1>;
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci		pio: pinctrl@2000000 {
3862306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-pinctrl";
3962306a36Sopenharmony_ci			reg = <0x2000000 0x800>;
4062306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(69) IRQ_TYPE_LEVEL_HIGH>,
4162306a36Sopenharmony_ci				     <SOC_PERIPHERAL_IRQ(71) IRQ_TYPE_LEVEL_HIGH>,
4262306a36Sopenharmony_ci				     <SOC_PERIPHERAL_IRQ(73) IRQ_TYPE_LEVEL_HIGH>,
4362306a36Sopenharmony_ci				     <SOC_PERIPHERAL_IRQ(75) IRQ_TYPE_LEVEL_HIGH>,
4462306a36Sopenharmony_ci				     <SOC_PERIPHERAL_IRQ(77) IRQ_TYPE_LEVEL_HIGH>,
4562306a36Sopenharmony_ci				     <SOC_PERIPHERAL_IRQ(79) IRQ_TYPE_LEVEL_HIGH>;
4662306a36Sopenharmony_ci			clocks = <&ccu CLK_APB0>,
4762306a36Sopenharmony_ci				 <&dcxo>,
4862306a36Sopenharmony_ci				 <&rtc CLK_OSC32K>;
4962306a36Sopenharmony_ci			clock-names = "apb", "hosc", "losc";
5062306a36Sopenharmony_ci			gpio-controller;
5162306a36Sopenharmony_ci			interrupt-controller;
5262306a36Sopenharmony_ci			#gpio-cells = <3>;
5362306a36Sopenharmony_ci			#interrupt-cells = <3>;
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci			/omit-if-no-ref/
5662306a36Sopenharmony_ci			can0_pins: can0-pins {
5762306a36Sopenharmony_ci				pins = "PB2", "PB3";
5862306a36Sopenharmony_ci				function = "can0";
5962306a36Sopenharmony_ci			};
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci			/omit-if-no-ref/
6262306a36Sopenharmony_ci			can1_pins: can1-pins {
6362306a36Sopenharmony_ci				pins = "PB4", "PB5";
6462306a36Sopenharmony_ci				function = "can1";
6562306a36Sopenharmony_ci			};
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci			/omit-if-no-ref/
6862306a36Sopenharmony_ci			clk_pg11_pin: clk-pg11-pin {
6962306a36Sopenharmony_ci				pins = "PG11";
7062306a36Sopenharmony_ci				function = "clk";
7162306a36Sopenharmony_ci			};
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci			/omit-if-no-ref/
7462306a36Sopenharmony_ci			dsi_4lane_pins: dsi-4lane-pins {
7562306a36Sopenharmony_ci				pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5",
7662306a36Sopenharmony_ci				       "PD6", "PD7", "PD8", "PD9";
7762306a36Sopenharmony_ci				drive-strength = <30>;
7862306a36Sopenharmony_ci				function = "dsi";
7962306a36Sopenharmony_ci			};
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci			/omit-if-no-ref/
8262306a36Sopenharmony_ci			lcd_rgb666_pins: lcd-rgb666-pins {
8362306a36Sopenharmony_ci				pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5",
8462306a36Sopenharmony_ci				       "PD6", "PD7", "PD8", "PD9", "PD10", "PD11",
8562306a36Sopenharmony_ci				       "PD12", "PD13", "PD14", "PD15", "PD16", "PD17",
8662306a36Sopenharmony_ci				       "PD18", "PD19", "PD20", "PD21";
8762306a36Sopenharmony_ci				function = "lcd0";
8862306a36Sopenharmony_ci			};
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci			/omit-if-no-ref/
9162306a36Sopenharmony_ci			mmc0_pins: mmc0-pins {
9262306a36Sopenharmony_ci				pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5";
9362306a36Sopenharmony_ci				function = "mmc0";
9462306a36Sopenharmony_ci			};
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci			/omit-if-no-ref/
9762306a36Sopenharmony_ci			mmc1_pins: mmc1-pins {
9862306a36Sopenharmony_ci				pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5";
9962306a36Sopenharmony_ci				function = "mmc1";
10062306a36Sopenharmony_ci			};
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci			/omit-if-no-ref/
10362306a36Sopenharmony_ci			mmc2_pins: mmc2-pins {
10462306a36Sopenharmony_ci				pins = "PC2", "PC3", "PC4", "PC5", "PC6", "PC7";
10562306a36Sopenharmony_ci				function = "mmc2";
10662306a36Sopenharmony_ci			};
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci			/omit-if-no-ref/
10962306a36Sopenharmony_ci			rgmii_pe_pins: rgmii-pe-pins {
11062306a36Sopenharmony_ci				pins = "PE0", "PE1", "PE2", "PE3", "PE4",
11162306a36Sopenharmony_ci				       "PE5", "PE6", "PE7", "PE8", "PE9",
11262306a36Sopenharmony_ci				       "PE11", "PE12", "PE13", "PE14", "PE15";
11362306a36Sopenharmony_ci				function = "emac";
11462306a36Sopenharmony_ci			};
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci			/omit-if-no-ref/
11762306a36Sopenharmony_ci			rmii_pe_pins: rmii-pe-pins {
11862306a36Sopenharmony_ci				pins = "PE0", "PE1", "PE2", "PE3", "PE4",
11962306a36Sopenharmony_ci				       "PE5", "PE6", "PE7", "PE8", "PE9";
12062306a36Sopenharmony_ci				function = "emac";
12162306a36Sopenharmony_ci			};
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ci			/omit-if-no-ref/
12462306a36Sopenharmony_ci			spi0_pins: spi0-pins {
12562306a36Sopenharmony_ci				pins = "PC2", "PC3", "PC4", "PC5";
12662306a36Sopenharmony_ci				function = "spi0";
12762306a36Sopenharmony_ci			};
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci			/omit-if-no-ref/
13062306a36Sopenharmony_ci			uart1_pg6_pins: uart1-pg6-pins {
13162306a36Sopenharmony_ci				pins = "PG6", "PG7";
13262306a36Sopenharmony_ci				function = "uart1";
13362306a36Sopenharmony_ci			};
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci			/omit-if-no-ref/
13662306a36Sopenharmony_ci			uart1_pg8_rts_cts_pins: uart1-pg8-rts-cts-pins {
13762306a36Sopenharmony_ci				pins = "PG8", "PG9";
13862306a36Sopenharmony_ci				function = "uart1";
13962306a36Sopenharmony_ci			};
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci			/omit-if-no-ref/
14262306a36Sopenharmony_ci			uart3_pb_pins: uart3-pb-pins {
14362306a36Sopenharmony_ci				pins = "PB6", "PB7";
14462306a36Sopenharmony_ci				function = "uart3";
14562306a36Sopenharmony_ci			};
14662306a36Sopenharmony_ci		};
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ci		ccu: clock-controller@2001000 {
14962306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-ccu";
15062306a36Sopenharmony_ci			reg = <0x2001000 0x1000>;
15162306a36Sopenharmony_ci			clocks = <&dcxo>,
15262306a36Sopenharmony_ci				 <&rtc CLK_OSC32K>,
15362306a36Sopenharmony_ci				 <&rtc CLK_IOSC>;
15462306a36Sopenharmony_ci			clock-names = "hosc", "losc", "iosc";
15562306a36Sopenharmony_ci			#clock-cells = <1>;
15662306a36Sopenharmony_ci			#reset-cells = <1>;
15762306a36Sopenharmony_ci		};
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_ci		gpadc: adc@2009000 {
16062306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-gpadc";
16162306a36Sopenharmony_ci			reg = <0x2009000 0x400>;
16262306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_GPADC>;
16362306a36Sopenharmony_ci			resets = <&ccu RST_BUS_GPADC>;
16462306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(57) IRQ_TYPE_LEVEL_HIGH>;
16562306a36Sopenharmony_ci			status = "disabled";
16662306a36Sopenharmony_ci			#io-channel-cells = <1>;
16762306a36Sopenharmony_ci		};
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ci		dmic: dmic@2031000 {
17062306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-dmic",
17162306a36Sopenharmony_ci				     "allwinner,sun50i-h6-dmic";
17262306a36Sopenharmony_ci			reg = <0x2031000 0x400>;
17362306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(24) IRQ_TYPE_LEVEL_HIGH>;
17462306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_DMIC>,
17562306a36Sopenharmony_ci				 <&ccu CLK_DMIC>;
17662306a36Sopenharmony_ci			clock-names = "bus", "mod";
17762306a36Sopenharmony_ci			resets = <&ccu RST_BUS_DMIC>;
17862306a36Sopenharmony_ci			dmas = <&dma 8>;
17962306a36Sopenharmony_ci			dma-names = "rx";
18062306a36Sopenharmony_ci			status = "disabled";
18162306a36Sopenharmony_ci			#sound-dai-cells = <0>;
18262306a36Sopenharmony_ci		};
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_ci		i2s1: i2s@2033000 {
18562306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-i2s",
18662306a36Sopenharmony_ci				     "allwinner,sun50i-r329-i2s";
18762306a36Sopenharmony_ci			reg = <0x2033000 0x1000>;
18862306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(27) IRQ_TYPE_LEVEL_HIGH>;
18962306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_I2S1>,
19062306a36Sopenharmony_ci				 <&ccu CLK_I2S1>;
19162306a36Sopenharmony_ci			clock-names = "apb", "mod";
19262306a36Sopenharmony_ci			resets = <&ccu RST_BUS_I2S1>;
19362306a36Sopenharmony_ci			dmas = <&dma 4>, <&dma 4>;
19462306a36Sopenharmony_ci			dma-names = "rx", "tx";
19562306a36Sopenharmony_ci			status = "disabled";
19662306a36Sopenharmony_ci			#sound-dai-cells = <0>;
19762306a36Sopenharmony_ci		};
19862306a36Sopenharmony_ci
19962306a36Sopenharmony_ci		i2s2: i2s@2034000 {
20062306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-i2s",
20162306a36Sopenharmony_ci				     "allwinner,sun50i-r329-i2s";
20262306a36Sopenharmony_ci			reg = <0x2034000 0x1000>;
20362306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(28) IRQ_TYPE_LEVEL_HIGH>;
20462306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_I2S2>,
20562306a36Sopenharmony_ci				 <&ccu CLK_I2S2>;
20662306a36Sopenharmony_ci			clock-names = "apb", "mod";
20762306a36Sopenharmony_ci			resets = <&ccu RST_BUS_I2S2>;
20862306a36Sopenharmony_ci			dmas = <&dma 5>, <&dma 5>;
20962306a36Sopenharmony_ci			dma-names = "rx", "tx";
21062306a36Sopenharmony_ci			status = "disabled";
21162306a36Sopenharmony_ci			#sound-dai-cells = <0>;
21262306a36Sopenharmony_ci		};
21362306a36Sopenharmony_ci
21462306a36Sopenharmony_ci		timer: timer@2050000 {
21562306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-timer",
21662306a36Sopenharmony_ci				     "allwinner,sun8i-a23-timer";
21762306a36Sopenharmony_ci			reg = <0x2050000 0xa0>;
21862306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(59) IRQ_TYPE_LEVEL_HIGH>,
21962306a36Sopenharmony_ci				     <SOC_PERIPHERAL_IRQ(60) IRQ_TYPE_LEVEL_HIGH>;
22062306a36Sopenharmony_ci			clocks = <&dcxo>;
22162306a36Sopenharmony_ci		};
22262306a36Sopenharmony_ci
22362306a36Sopenharmony_ci		wdt: watchdog@20500a0 {
22462306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-wdt-reset",
22562306a36Sopenharmony_ci				     "allwinner,sun20i-d1-wdt";
22662306a36Sopenharmony_ci			reg = <0x20500a0 0x20>;
22762306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(63) IRQ_TYPE_LEVEL_HIGH>;
22862306a36Sopenharmony_ci			clocks = <&dcxo>, <&rtc CLK_OSC32K>;
22962306a36Sopenharmony_ci			clock-names = "hosc", "losc";
23062306a36Sopenharmony_ci			status = "reserved";
23162306a36Sopenharmony_ci		};
23262306a36Sopenharmony_ci
23362306a36Sopenharmony_ci		uart0: serial@2500000 {
23462306a36Sopenharmony_ci			compatible = "snps,dw-apb-uart";
23562306a36Sopenharmony_ci			reg = <0x2500000 0x400>;
23662306a36Sopenharmony_ci			reg-io-width = <4>;
23762306a36Sopenharmony_ci			reg-shift = <2>;
23862306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(2) IRQ_TYPE_LEVEL_HIGH>;
23962306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_UART0>;
24062306a36Sopenharmony_ci			resets = <&ccu RST_BUS_UART0>;
24162306a36Sopenharmony_ci			dmas = <&dma 14>, <&dma 14>;
24262306a36Sopenharmony_ci			dma-names = "tx", "rx";
24362306a36Sopenharmony_ci			status = "disabled";
24462306a36Sopenharmony_ci		};
24562306a36Sopenharmony_ci
24662306a36Sopenharmony_ci		uart1: serial@2500400 {
24762306a36Sopenharmony_ci			compatible = "snps,dw-apb-uart";
24862306a36Sopenharmony_ci			reg = <0x2500400 0x400>;
24962306a36Sopenharmony_ci			reg-io-width = <4>;
25062306a36Sopenharmony_ci			reg-shift = <2>;
25162306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(3) IRQ_TYPE_LEVEL_HIGH>;
25262306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_UART1>;
25362306a36Sopenharmony_ci			resets = <&ccu RST_BUS_UART1>;
25462306a36Sopenharmony_ci			dmas = <&dma 15>, <&dma 15>;
25562306a36Sopenharmony_ci			dma-names = "tx", "rx";
25662306a36Sopenharmony_ci			status = "disabled";
25762306a36Sopenharmony_ci		};
25862306a36Sopenharmony_ci
25962306a36Sopenharmony_ci		uart2: serial@2500800 {
26062306a36Sopenharmony_ci			compatible = "snps,dw-apb-uart";
26162306a36Sopenharmony_ci			reg = <0x2500800 0x400>;
26262306a36Sopenharmony_ci			reg-io-width = <4>;
26362306a36Sopenharmony_ci			reg-shift = <2>;
26462306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(4) IRQ_TYPE_LEVEL_HIGH>;
26562306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_UART2>;
26662306a36Sopenharmony_ci			resets = <&ccu RST_BUS_UART2>;
26762306a36Sopenharmony_ci			dmas = <&dma 16>, <&dma 16>;
26862306a36Sopenharmony_ci			dma-names = "tx", "rx";
26962306a36Sopenharmony_ci			status = "disabled";
27062306a36Sopenharmony_ci		};
27162306a36Sopenharmony_ci
27262306a36Sopenharmony_ci		uart3: serial@2500c00 {
27362306a36Sopenharmony_ci			compatible = "snps,dw-apb-uart";
27462306a36Sopenharmony_ci			reg = <0x2500c00 0x400>;
27562306a36Sopenharmony_ci			reg-io-width = <4>;
27662306a36Sopenharmony_ci			reg-shift = <2>;
27762306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(5) IRQ_TYPE_LEVEL_HIGH>;
27862306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_UART3>;
27962306a36Sopenharmony_ci			resets = <&ccu RST_BUS_UART3>;
28062306a36Sopenharmony_ci			dmas = <&dma 17>, <&dma 17>;
28162306a36Sopenharmony_ci			dma-names = "tx", "rx";
28262306a36Sopenharmony_ci			status = "disabled";
28362306a36Sopenharmony_ci		};
28462306a36Sopenharmony_ci
28562306a36Sopenharmony_ci		uart4: serial@2501000 {
28662306a36Sopenharmony_ci			compatible = "snps,dw-apb-uart";
28762306a36Sopenharmony_ci			reg = <0x2501000 0x400>;
28862306a36Sopenharmony_ci			reg-io-width = <4>;
28962306a36Sopenharmony_ci			reg-shift = <2>;
29062306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(6) IRQ_TYPE_LEVEL_HIGH>;
29162306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_UART4>;
29262306a36Sopenharmony_ci			resets = <&ccu RST_BUS_UART4>;
29362306a36Sopenharmony_ci			dmas = <&dma 18>, <&dma 18>;
29462306a36Sopenharmony_ci			dma-names = "tx", "rx";
29562306a36Sopenharmony_ci			status = "disabled";
29662306a36Sopenharmony_ci		};
29762306a36Sopenharmony_ci
29862306a36Sopenharmony_ci		uart5: serial@2501400 {
29962306a36Sopenharmony_ci			compatible = "snps,dw-apb-uart";
30062306a36Sopenharmony_ci			reg = <0x2501400 0x400>;
30162306a36Sopenharmony_ci			reg-io-width = <4>;
30262306a36Sopenharmony_ci			reg-shift = <2>;
30362306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(7) IRQ_TYPE_LEVEL_HIGH>;
30462306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_UART5>;
30562306a36Sopenharmony_ci			resets = <&ccu RST_BUS_UART5>;
30662306a36Sopenharmony_ci			dmas = <&dma 19>, <&dma 19>;
30762306a36Sopenharmony_ci			dma-names = "tx", "rx";
30862306a36Sopenharmony_ci			status = "disabled";
30962306a36Sopenharmony_ci		};
31062306a36Sopenharmony_ci
31162306a36Sopenharmony_ci		i2c0: i2c@2502000 {
31262306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-i2c",
31362306a36Sopenharmony_ci				     "allwinner,sun8i-v536-i2c",
31462306a36Sopenharmony_ci				     "allwinner,sun6i-a31-i2c";
31562306a36Sopenharmony_ci			reg = <0x2502000 0x400>;
31662306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(9) IRQ_TYPE_LEVEL_HIGH>;
31762306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_I2C0>;
31862306a36Sopenharmony_ci			resets = <&ccu RST_BUS_I2C0>;
31962306a36Sopenharmony_ci			dmas = <&dma 43>, <&dma 43>;
32062306a36Sopenharmony_ci			dma-names = "rx", "tx";
32162306a36Sopenharmony_ci			status = "disabled";
32262306a36Sopenharmony_ci			#address-cells = <1>;
32362306a36Sopenharmony_ci			#size-cells = <0>;
32462306a36Sopenharmony_ci		};
32562306a36Sopenharmony_ci
32662306a36Sopenharmony_ci		i2c1: i2c@2502400 {
32762306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-i2c",
32862306a36Sopenharmony_ci				     "allwinner,sun8i-v536-i2c",
32962306a36Sopenharmony_ci				     "allwinner,sun6i-a31-i2c";
33062306a36Sopenharmony_ci			reg = <0x2502400 0x400>;
33162306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(10) IRQ_TYPE_LEVEL_HIGH>;
33262306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_I2C1>;
33362306a36Sopenharmony_ci			resets = <&ccu RST_BUS_I2C1>;
33462306a36Sopenharmony_ci			dmas = <&dma 44>, <&dma 44>;
33562306a36Sopenharmony_ci			dma-names = "rx", "tx";
33662306a36Sopenharmony_ci			status = "disabled";
33762306a36Sopenharmony_ci			#address-cells = <1>;
33862306a36Sopenharmony_ci			#size-cells = <0>;
33962306a36Sopenharmony_ci		};
34062306a36Sopenharmony_ci
34162306a36Sopenharmony_ci		i2c2: i2c@2502800 {
34262306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-i2c",
34362306a36Sopenharmony_ci				     "allwinner,sun8i-v536-i2c",
34462306a36Sopenharmony_ci				     "allwinner,sun6i-a31-i2c";
34562306a36Sopenharmony_ci			reg = <0x2502800 0x400>;
34662306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(11) IRQ_TYPE_LEVEL_HIGH>;
34762306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_I2C2>;
34862306a36Sopenharmony_ci			resets = <&ccu RST_BUS_I2C2>;
34962306a36Sopenharmony_ci			dmas = <&dma 45>, <&dma 45>;
35062306a36Sopenharmony_ci			dma-names = "rx", "tx";
35162306a36Sopenharmony_ci			status = "disabled";
35262306a36Sopenharmony_ci			#address-cells = <1>;
35362306a36Sopenharmony_ci			#size-cells = <0>;
35462306a36Sopenharmony_ci		};
35562306a36Sopenharmony_ci
35662306a36Sopenharmony_ci		i2c3: i2c@2502c00 {
35762306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-i2c",
35862306a36Sopenharmony_ci				     "allwinner,sun8i-v536-i2c",
35962306a36Sopenharmony_ci				     "allwinner,sun6i-a31-i2c";
36062306a36Sopenharmony_ci			reg = <0x2502c00 0x400>;
36162306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(12) IRQ_TYPE_LEVEL_HIGH>;
36262306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_I2C3>;
36362306a36Sopenharmony_ci			resets = <&ccu RST_BUS_I2C3>;
36462306a36Sopenharmony_ci			dmas = <&dma 46>, <&dma 46>;
36562306a36Sopenharmony_ci			dma-names = "rx", "tx";
36662306a36Sopenharmony_ci			status = "disabled";
36762306a36Sopenharmony_ci			#address-cells = <1>;
36862306a36Sopenharmony_ci			#size-cells = <0>;
36962306a36Sopenharmony_ci		};
37062306a36Sopenharmony_ci
37162306a36Sopenharmony_ci		can0: can@2504000 {
37262306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-can";
37362306a36Sopenharmony_ci			reg = <0x02504000 0x400>;
37462306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(21) IRQ_TYPE_LEVEL_HIGH>;
37562306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_CAN0>;
37662306a36Sopenharmony_ci			resets = <&ccu RST_BUS_CAN0>;
37762306a36Sopenharmony_ci			pinctrl-names = "default";
37862306a36Sopenharmony_ci			pinctrl-0 = <&can0_pins>;
37962306a36Sopenharmony_ci			status = "disabled";
38062306a36Sopenharmony_ci		};
38162306a36Sopenharmony_ci
38262306a36Sopenharmony_ci		can1: can@2504400 {
38362306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-can";
38462306a36Sopenharmony_ci			reg = <0x02504400 0x400>;
38562306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(22) IRQ_TYPE_LEVEL_HIGH>;
38662306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_CAN1>;
38762306a36Sopenharmony_ci			resets = <&ccu RST_BUS_CAN1>;
38862306a36Sopenharmony_ci			pinctrl-names = "default";
38962306a36Sopenharmony_ci			pinctrl-0 = <&can1_pins>;
39062306a36Sopenharmony_ci			status = "disabled";
39162306a36Sopenharmony_ci		};
39262306a36Sopenharmony_ci
39362306a36Sopenharmony_ci		syscon: syscon@3000000 {
39462306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-system-control";
39562306a36Sopenharmony_ci			reg = <0x3000000 0x1000>;
39662306a36Sopenharmony_ci			ranges;
39762306a36Sopenharmony_ci			#address-cells = <1>;
39862306a36Sopenharmony_ci			#size-cells = <1>;
39962306a36Sopenharmony_ci		};
40062306a36Sopenharmony_ci
40162306a36Sopenharmony_ci		dma: dma-controller@3002000 {
40262306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-dma";
40362306a36Sopenharmony_ci			reg = <0x3002000 0x1000>;
40462306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(50) IRQ_TYPE_LEVEL_HIGH>;
40562306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_DMA>, <&ccu CLK_MBUS_DMA>;
40662306a36Sopenharmony_ci			clock-names = "bus", "mbus";
40762306a36Sopenharmony_ci			resets = <&ccu RST_BUS_DMA>;
40862306a36Sopenharmony_ci			dma-channels = <16>;
40962306a36Sopenharmony_ci			dma-requests = <48>;
41062306a36Sopenharmony_ci			#dma-cells = <1>;
41162306a36Sopenharmony_ci		};
41262306a36Sopenharmony_ci
41362306a36Sopenharmony_ci		sid: efuse@3006000 {
41462306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-sid";
41562306a36Sopenharmony_ci			reg = <0x3006000 0x1000>;
41662306a36Sopenharmony_ci			#address-cells = <1>;
41762306a36Sopenharmony_ci			#size-cells = <1>;
41862306a36Sopenharmony_ci		};
41962306a36Sopenharmony_ci
42062306a36Sopenharmony_ci		crypto: crypto@3040000 {
42162306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-crypto";
42262306a36Sopenharmony_ci			reg = <0x3040000 0x800>;
42362306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(52) IRQ_TYPE_LEVEL_HIGH>;
42462306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_CE>,
42562306a36Sopenharmony_ci				 <&ccu CLK_CE>,
42662306a36Sopenharmony_ci				 <&ccu CLK_MBUS_CE>,
42762306a36Sopenharmony_ci				 <&rtc CLK_IOSC>;
42862306a36Sopenharmony_ci			clock-names = "bus", "mod", "ram", "trng";
42962306a36Sopenharmony_ci			resets = <&ccu RST_BUS_CE>;
43062306a36Sopenharmony_ci		};
43162306a36Sopenharmony_ci
43262306a36Sopenharmony_ci		mbus: dram-controller@3102000 {
43362306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-mbus";
43462306a36Sopenharmony_ci			reg = <0x3102000 0x1000>,
43562306a36Sopenharmony_ci			      <0x3103000 0x1000>;
43662306a36Sopenharmony_ci			reg-names = "mbus", "dram";
43762306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(43) IRQ_TYPE_LEVEL_HIGH>;
43862306a36Sopenharmony_ci			clocks = <&ccu CLK_MBUS>,
43962306a36Sopenharmony_ci				 <&ccu CLK_DRAM>,
44062306a36Sopenharmony_ci				 <&ccu CLK_BUS_DRAM>;
44162306a36Sopenharmony_ci			clock-names = "mbus", "dram", "bus";
44262306a36Sopenharmony_ci			dma-ranges = <0 0x40000000 0x80000000>;
44362306a36Sopenharmony_ci			#address-cells = <1>;
44462306a36Sopenharmony_ci			#size-cells = <1>;
44562306a36Sopenharmony_ci			#interconnect-cells = <1>;
44662306a36Sopenharmony_ci		};
44762306a36Sopenharmony_ci
44862306a36Sopenharmony_ci		mmc0: mmc@4020000 {
44962306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-mmc";
45062306a36Sopenharmony_ci			reg = <0x4020000 0x1000>;
45162306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(40) IRQ_TYPE_LEVEL_HIGH>;
45262306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>;
45362306a36Sopenharmony_ci			clock-names = "ahb", "mmc";
45462306a36Sopenharmony_ci			resets = <&ccu RST_BUS_MMC0>;
45562306a36Sopenharmony_ci			reset-names = "ahb";
45662306a36Sopenharmony_ci			cap-sd-highspeed;
45762306a36Sopenharmony_ci			max-frequency = <150000000>;
45862306a36Sopenharmony_ci			no-mmc;
45962306a36Sopenharmony_ci			status = "disabled";
46062306a36Sopenharmony_ci			#address-cells = <1>;
46162306a36Sopenharmony_ci			#size-cells = <0>;
46262306a36Sopenharmony_ci		};
46362306a36Sopenharmony_ci
46462306a36Sopenharmony_ci		mmc1: mmc@4021000 {
46562306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-mmc";
46662306a36Sopenharmony_ci			reg = <0x4021000 0x1000>;
46762306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(41) IRQ_TYPE_LEVEL_HIGH>;
46862306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>;
46962306a36Sopenharmony_ci			clock-names = "ahb", "mmc";
47062306a36Sopenharmony_ci			resets = <&ccu RST_BUS_MMC1>;
47162306a36Sopenharmony_ci			reset-names = "ahb";
47262306a36Sopenharmony_ci			cap-sd-highspeed;
47362306a36Sopenharmony_ci			max-frequency = <150000000>;
47462306a36Sopenharmony_ci			no-mmc;
47562306a36Sopenharmony_ci			status = "disabled";
47662306a36Sopenharmony_ci			#address-cells = <1>;
47762306a36Sopenharmony_ci			#size-cells = <0>;
47862306a36Sopenharmony_ci		};
47962306a36Sopenharmony_ci
48062306a36Sopenharmony_ci		mmc2: mmc@4022000 {
48162306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-emmc",
48262306a36Sopenharmony_ci				     "allwinner,sun50i-a100-emmc";
48362306a36Sopenharmony_ci			reg = <0x4022000 0x1000>;
48462306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(42) IRQ_TYPE_LEVEL_HIGH>;
48562306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
48662306a36Sopenharmony_ci			clock-names = "ahb", "mmc";
48762306a36Sopenharmony_ci			resets = <&ccu RST_BUS_MMC2>;
48862306a36Sopenharmony_ci			reset-names = "ahb";
48962306a36Sopenharmony_ci			cap-mmc-highspeed;
49062306a36Sopenharmony_ci			max-frequency = <150000000>;
49162306a36Sopenharmony_ci			mmc-ddr-1_8v;
49262306a36Sopenharmony_ci			mmc-ddr-3_3v;
49362306a36Sopenharmony_ci			no-sd;
49462306a36Sopenharmony_ci			no-sdio;
49562306a36Sopenharmony_ci			status = "disabled";
49662306a36Sopenharmony_ci			#address-cells = <1>;
49762306a36Sopenharmony_ci			#size-cells = <0>;
49862306a36Sopenharmony_ci		};
49962306a36Sopenharmony_ci
50062306a36Sopenharmony_ci		spi0: spi@4025000 {
50162306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-spi",
50262306a36Sopenharmony_ci				     "allwinner,sun50i-r329-spi";
50362306a36Sopenharmony_ci			reg = <0x04025000 0x1000>;
50462306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(15) IRQ_TYPE_LEVEL_HIGH>;
50562306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
50662306a36Sopenharmony_ci			clock-names = "ahb", "mod";
50762306a36Sopenharmony_ci			dmas = <&dma 22>, <&dma 22>;
50862306a36Sopenharmony_ci			dma-names = "rx", "tx";
50962306a36Sopenharmony_ci			resets = <&ccu RST_BUS_SPI0>;
51062306a36Sopenharmony_ci			status = "disabled";
51162306a36Sopenharmony_ci			#address-cells = <1>;
51262306a36Sopenharmony_ci			#size-cells = <0>;
51362306a36Sopenharmony_ci		};
51462306a36Sopenharmony_ci
51562306a36Sopenharmony_ci		spi1: spi@4026000 {
51662306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-spi-dbi",
51762306a36Sopenharmony_ci				     "allwinner,sun50i-r329-spi-dbi",
51862306a36Sopenharmony_ci				     "allwinner,sun50i-r329-spi";
51962306a36Sopenharmony_ci			reg = <0x04026000 0x1000>;
52062306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(16) IRQ_TYPE_LEVEL_HIGH>;
52162306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
52262306a36Sopenharmony_ci			clock-names = "ahb", "mod";
52362306a36Sopenharmony_ci			dmas = <&dma 23>, <&dma 23>;
52462306a36Sopenharmony_ci			dma-names = "rx", "tx";
52562306a36Sopenharmony_ci			resets = <&ccu RST_BUS_SPI1>;
52662306a36Sopenharmony_ci			status = "disabled";
52762306a36Sopenharmony_ci			#address-cells = <1>;
52862306a36Sopenharmony_ci			#size-cells = <0>;
52962306a36Sopenharmony_ci		};
53062306a36Sopenharmony_ci
53162306a36Sopenharmony_ci		usb_otg: usb@4100000 {
53262306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-musb",
53362306a36Sopenharmony_ci				     "allwinner,sun8i-a33-musb";
53462306a36Sopenharmony_ci			reg = <0x4100000 0x400>;
53562306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(29) IRQ_TYPE_LEVEL_HIGH>;
53662306a36Sopenharmony_ci			interrupt-names = "mc";
53762306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_OTG>;
53862306a36Sopenharmony_ci			resets = <&ccu RST_BUS_OTG>;
53962306a36Sopenharmony_ci			extcon = <&usbphy 0>;
54062306a36Sopenharmony_ci			phys = <&usbphy 0>;
54162306a36Sopenharmony_ci			phy-names = "usb";
54262306a36Sopenharmony_ci			status = "disabled";
54362306a36Sopenharmony_ci		};
54462306a36Sopenharmony_ci
54562306a36Sopenharmony_ci		usbphy: phy@4100400 {
54662306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-usb-phy";
54762306a36Sopenharmony_ci			reg = <0x4100400 0x100>,
54862306a36Sopenharmony_ci			      <0x4101800 0x100>,
54962306a36Sopenharmony_ci			      <0x4200800 0x100>;
55062306a36Sopenharmony_ci			reg-names = "phy_ctrl",
55162306a36Sopenharmony_ci				    "pmu0",
55262306a36Sopenharmony_ci				    "pmu1";
55362306a36Sopenharmony_ci			clocks = <&dcxo>,
55462306a36Sopenharmony_ci				 <&dcxo>;
55562306a36Sopenharmony_ci			clock-names = "usb0_phy",
55662306a36Sopenharmony_ci				      "usb1_phy";
55762306a36Sopenharmony_ci			resets = <&ccu RST_USB_PHY0>,
55862306a36Sopenharmony_ci				 <&ccu RST_USB_PHY1>;
55962306a36Sopenharmony_ci			reset-names = "usb0_reset",
56062306a36Sopenharmony_ci				      "usb1_reset";
56162306a36Sopenharmony_ci			status = "disabled";
56262306a36Sopenharmony_ci			#phy-cells = <1>;
56362306a36Sopenharmony_ci		};
56462306a36Sopenharmony_ci
56562306a36Sopenharmony_ci		ehci0: usb@4101000 {
56662306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-ehci",
56762306a36Sopenharmony_ci				     "generic-ehci";
56862306a36Sopenharmony_ci			reg = <0x4101000 0x100>;
56962306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(30) IRQ_TYPE_LEVEL_HIGH>;
57062306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_OHCI0>,
57162306a36Sopenharmony_ci				 <&ccu CLK_BUS_EHCI0>,
57262306a36Sopenharmony_ci				 <&ccu CLK_USB_OHCI0>;
57362306a36Sopenharmony_ci			resets = <&ccu RST_BUS_OHCI0>,
57462306a36Sopenharmony_ci				 <&ccu RST_BUS_EHCI0>;
57562306a36Sopenharmony_ci			phys = <&usbphy 0>;
57662306a36Sopenharmony_ci			phy-names = "usb";
57762306a36Sopenharmony_ci			status = "disabled";
57862306a36Sopenharmony_ci		};
57962306a36Sopenharmony_ci
58062306a36Sopenharmony_ci		ohci0: usb@4101400 {
58162306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-ohci",
58262306a36Sopenharmony_ci				     "generic-ohci";
58362306a36Sopenharmony_ci			reg = <0x4101400 0x100>;
58462306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(31) IRQ_TYPE_LEVEL_HIGH>;
58562306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_OHCI0>,
58662306a36Sopenharmony_ci				 <&ccu CLK_USB_OHCI0>;
58762306a36Sopenharmony_ci			resets = <&ccu RST_BUS_OHCI0>;
58862306a36Sopenharmony_ci			phys = <&usbphy 0>;
58962306a36Sopenharmony_ci			phy-names = "usb";
59062306a36Sopenharmony_ci			status = "disabled";
59162306a36Sopenharmony_ci		};
59262306a36Sopenharmony_ci
59362306a36Sopenharmony_ci		ehci1: usb@4200000 {
59462306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-ehci",
59562306a36Sopenharmony_ci				     "generic-ehci";
59662306a36Sopenharmony_ci			reg = <0x4200000 0x100>;
59762306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(33) IRQ_TYPE_LEVEL_HIGH>;
59862306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_OHCI1>,
59962306a36Sopenharmony_ci				 <&ccu CLK_BUS_EHCI1>,
60062306a36Sopenharmony_ci				 <&ccu CLK_USB_OHCI1>;
60162306a36Sopenharmony_ci			resets = <&ccu RST_BUS_OHCI1>,
60262306a36Sopenharmony_ci				 <&ccu RST_BUS_EHCI1>;
60362306a36Sopenharmony_ci			phys = <&usbphy 1>;
60462306a36Sopenharmony_ci			phy-names = "usb";
60562306a36Sopenharmony_ci			status = "disabled";
60662306a36Sopenharmony_ci		};
60762306a36Sopenharmony_ci
60862306a36Sopenharmony_ci		ohci1: usb@4200400 {
60962306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-ohci",
61062306a36Sopenharmony_ci				     "generic-ohci";
61162306a36Sopenharmony_ci			reg = <0x4200400 0x100>;
61262306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(34) IRQ_TYPE_LEVEL_HIGH>;
61362306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_OHCI1>,
61462306a36Sopenharmony_ci				 <&ccu CLK_USB_OHCI1>;
61562306a36Sopenharmony_ci			resets = <&ccu RST_BUS_OHCI1>;
61662306a36Sopenharmony_ci			phys = <&usbphy 1>;
61762306a36Sopenharmony_ci			phy-names = "usb";
61862306a36Sopenharmony_ci			status = "disabled";
61962306a36Sopenharmony_ci		};
62062306a36Sopenharmony_ci
62162306a36Sopenharmony_ci		emac: ethernet@4500000 {
62262306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-emac",
62362306a36Sopenharmony_ci				     "allwinner,sun50i-a64-emac";
62462306a36Sopenharmony_ci			reg = <0x4500000 0x10000>;
62562306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(46) IRQ_TYPE_LEVEL_HIGH>;
62662306a36Sopenharmony_ci			interrupt-names = "macirq";
62762306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_EMAC>;
62862306a36Sopenharmony_ci			clock-names = "stmmaceth";
62962306a36Sopenharmony_ci			resets = <&ccu RST_BUS_EMAC>;
63062306a36Sopenharmony_ci			reset-names = "stmmaceth";
63162306a36Sopenharmony_ci			syscon = <&syscon>;
63262306a36Sopenharmony_ci			status = "disabled";
63362306a36Sopenharmony_ci
63462306a36Sopenharmony_ci			mdio: mdio {
63562306a36Sopenharmony_ci				compatible = "snps,dwmac-mdio";
63662306a36Sopenharmony_ci				#address-cells = <1>;
63762306a36Sopenharmony_ci				#size-cells = <0>;
63862306a36Sopenharmony_ci			};
63962306a36Sopenharmony_ci		};
64062306a36Sopenharmony_ci
64162306a36Sopenharmony_ci		display_clocks: clock-controller@5000000 {
64262306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-de2-clk",
64362306a36Sopenharmony_ci				     "allwinner,sun50i-h5-de2-clk";
64462306a36Sopenharmony_ci			reg = <0x5000000 0x10000>;
64562306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_DE>, <&ccu CLK_DE>;
64662306a36Sopenharmony_ci			clock-names = "bus", "mod";
64762306a36Sopenharmony_ci			resets = <&ccu RST_BUS_DE>;
64862306a36Sopenharmony_ci			#clock-cells = <1>;
64962306a36Sopenharmony_ci			#reset-cells = <1>;
65062306a36Sopenharmony_ci		};
65162306a36Sopenharmony_ci
65262306a36Sopenharmony_ci		mixer0: mixer@5100000 {
65362306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-de2-mixer-0";
65462306a36Sopenharmony_ci			reg = <0x5100000 0x100000>;
65562306a36Sopenharmony_ci			clocks = <&display_clocks CLK_BUS_MIXER0>,
65662306a36Sopenharmony_ci				 <&display_clocks CLK_MIXER0>;
65762306a36Sopenharmony_ci			clock-names = "bus", "mod";
65862306a36Sopenharmony_ci			resets = <&display_clocks RST_MIXER0>;
65962306a36Sopenharmony_ci
66062306a36Sopenharmony_ci			ports {
66162306a36Sopenharmony_ci				#address-cells = <1>;
66262306a36Sopenharmony_ci				#size-cells = <0>;
66362306a36Sopenharmony_ci
66462306a36Sopenharmony_ci				mixer0_out: port@1 {
66562306a36Sopenharmony_ci					reg = <1>;
66662306a36Sopenharmony_ci
66762306a36Sopenharmony_ci					mixer0_out_tcon_top_mixer0: endpoint {
66862306a36Sopenharmony_ci						remote-endpoint = <&tcon_top_mixer0_in_mixer0>;
66962306a36Sopenharmony_ci					};
67062306a36Sopenharmony_ci				};
67162306a36Sopenharmony_ci			};
67262306a36Sopenharmony_ci		};
67362306a36Sopenharmony_ci
67462306a36Sopenharmony_ci		mixer1: mixer@5200000 {
67562306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-de2-mixer-1";
67662306a36Sopenharmony_ci			reg = <0x5200000 0x100000>;
67762306a36Sopenharmony_ci			clocks = <&display_clocks CLK_BUS_MIXER1>,
67862306a36Sopenharmony_ci				 <&display_clocks CLK_MIXER1>;
67962306a36Sopenharmony_ci			clock-names = "bus", "mod";
68062306a36Sopenharmony_ci			resets = <&display_clocks RST_MIXER1>;
68162306a36Sopenharmony_ci
68262306a36Sopenharmony_ci			ports {
68362306a36Sopenharmony_ci				#address-cells = <1>;
68462306a36Sopenharmony_ci				#size-cells = <0>;
68562306a36Sopenharmony_ci
68662306a36Sopenharmony_ci				mixer1_out: port@1 {
68762306a36Sopenharmony_ci					reg = <1>;
68862306a36Sopenharmony_ci
68962306a36Sopenharmony_ci					mixer1_out_tcon_top_mixer1: endpoint {
69062306a36Sopenharmony_ci						remote-endpoint = <&tcon_top_mixer1_in_mixer1>;
69162306a36Sopenharmony_ci					};
69262306a36Sopenharmony_ci				};
69362306a36Sopenharmony_ci			};
69462306a36Sopenharmony_ci		};
69562306a36Sopenharmony_ci
69662306a36Sopenharmony_ci		dsi: dsi@5450000 {
69762306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-mipi-dsi",
69862306a36Sopenharmony_ci				     "allwinner,sun50i-a100-mipi-dsi";
69962306a36Sopenharmony_ci			reg = <0x5450000 0x1000>;
70062306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(92) IRQ_TYPE_LEVEL_HIGH>;
70162306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_MIPI_DSI>,
70262306a36Sopenharmony_ci				 <&tcon_top CLK_TCON_TOP_DSI>;
70362306a36Sopenharmony_ci			clock-names = "bus", "mod";
70462306a36Sopenharmony_ci			resets = <&ccu RST_BUS_MIPI_DSI>;
70562306a36Sopenharmony_ci			phys = <&dphy>;
70662306a36Sopenharmony_ci			phy-names = "dphy";
70762306a36Sopenharmony_ci			status = "disabled";
70862306a36Sopenharmony_ci
70962306a36Sopenharmony_ci			port {
71062306a36Sopenharmony_ci				dsi_in_tcon_lcd0: endpoint {
71162306a36Sopenharmony_ci					remote-endpoint = <&tcon_lcd0_out_dsi>;
71262306a36Sopenharmony_ci				};
71362306a36Sopenharmony_ci			};
71462306a36Sopenharmony_ci		};
71562306a36Sopenharmony_ci
71662306a36Sopenharmony_ci		dphy: phy@5451000 {
71762306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-mipi-dphy",
71862306a36Sopenharmony_ci				     "allwinner,sun50i-a100-mipi-dphy";
71962306a36Sopenharmony_ci			reg = <0x5451000 0x1000>;
72062306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(92) IRQ_TYPE_LEVEL_HIGH>;
72162306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_MIPI_DSI>,
72262306a36Sopenharmony_ci				 <&ccu CLK_MIPI_DSI>;
72362306a36Sopenharmony_ci			clock-names = "bus", "mod";
72462306a36Sopenharmony_ci			resets = <&ccu RST_BUS_MIPI_DSI>;
72562306a36Sopenharmony_ci			#phy-cells = <0>;
72662306a36Sopenharmony_ci		};
72762306a36Sopenharmony_ci
72862306a36Sopenharmony_ci		tcon_top: tcon-top@5460000 {
72962306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-tcon-top";
73062306a36Sopenharmony_ci			reg = <0x5460000 0x1000>;
73162306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_DPSS_TOP>,
73262306a36Sopenharmony_ci				 <&ccu CLK_TCON_TV>,
73362306a36Sopenharmony_ci				 <&ccu CLK_TVE>,
73462306a36Sopenharmony_ci				 <&ccu CLK_TCON_LCD0>;
73562306a36Sopenharmony_ci			clock-names = "bus", "tcon-tv0", "tve0", "dsi";
73662306a36Sopenharmony_ci			clock-output-names = "tcon-top-tv0", "tcon-top-dsi";
73762306a36Sopenharmony_ci			resets = <&ccu RST_BUS_DPSS_TOP>;
73862306a36Sopenharmony_ci			#clock-cells = <1>;
73962306a36Sopenharmony_ci
74062306a36Sopenharmony_ci			ports {
74162306a36Sopenharmony_ci				#address-cells = <1>;
74262306a36Sopenharmony_ci				#size-cells = <0>;
74362306a36Sopenharmony_ci
74462306a36Sopenharmony_ci				tcon_top_mixer0_in: port@0 {
74562306a36Sopenharmony_ci					reg = <0>;
74662306a36Sopenharmony_ci
74762306a36Sopenharmony_ci					tcon_top_mixer0_in_mixer0: endpoint {
74862306a36Sopenharmony_ci						remote-endpoint = <&mixer0_out_tcon_top_mixer0>;
74962306a36Sopenharmony_ci					};
75062306a36Sopenharmony_ci				};
75162306a36Sopenharmony_ci
75262306a36Sopenharmony_ci				tcon_top_mixer0_out: port@1 {
75362306a36Sopenharmony_ci					reg = <1>;
75462306a36Sopenharmony_ci					#address-cells = <1>;
75562306a36Sopenharmony_ci					#size-cells = <0>;
75662306a36Sopenharmony_ci
75762306a36Sopenharmony_ci					tcon_top_mixer0_out_tcon_lcd0: endpoint@0 {
75862306a36Sopenharmony_ci						reg = <0>;
75962306a36Sopenharmony_ci						remote-endpoint = <&tcon_lcd0_in_tcon_top_mixer0>;
76062306a36Sopenharmony_ci					};
76162306a36Sopenharmony_ci
76262306a36Sopenharmony_ci					tcon_top_mixer0_out_tcon_tv0: endpoint@2 {
76362306a36Sopenharmony_ci						reg = <2>;
76462306a36Sopenharmony_ci						remote-endpoint = <&tcon_tv0_in_tcon_top_mixer0>;
76562306a36Sopenharmony_ci					};
76662306a36Sopenharmony_ci				};
76762306a36Sopenharmony_ci
76862306a36Sopenharmony_ci				tcon_top_mixer1_in: port@2 {
76962306a36Sopenharmony_ci					reg = <2>;
77062306a36Sopenharmony_ci					#address-cells = <1>;
77162306a36Sopenharmony_ci					#size-cells = <0>;
77262306a36Sopenharmony_ci
77362306a36Sopenharmony_ci					tcon_top_mixer1_in_mixer1: endpoint@1 {
77462306a36Sopenharmony_ci						reg = <1>;
77562306a36Sopenharmony_ci						remote-endpoint = <&mixer1_out_tcon_top_mixer1>;
77662306a36Sopenharmony_ci					};
77762306a36Sopenharmony_ci				};
77862306a36Sopenharmony_ci
77962306a36Sopenharmony_ci				tcon_top_mixer1_out: port@3 {
78062306a36Sopenharmony_ci					reg = <3>;
78162306a36Sopenharmony_ci					#address-cells = <1>;
78262306a36Sopenharmony_ci					#size-cells = <0>;
78362306a36Sopenharmony_ci
78462306a36Sopenharmony_ci					tcon_top_mixer1_out_tcon_lcd0: endpoint@0 {
78562306a36Sopenharmony_ci						reg = <0>;
78662306a36Sopenharmony_ci						remote-endpoint = <&tcon_lcd0_in_tcon_top_mixer1>;
78762306a36Sopenharmony_ci					};
78862306a36Sopenharmony_ci
78962306a36Sopenharmony_ci					tcon_top_mixer1_out_tcon_tv0: endpoint@2 {
79062306a36Sopenharmony_ci						reg = <2>;
79162306a36Sopenharmony_ci						remote-endpoint = <&tcon_tv0_in_tcon_top_mixer1>;
79262306a36Sopenharmony_ci					};
79362306a36Sopenharmony_ci				};
79462306a36Sopenharmony_ci
79562306a36Sopenharmony_ci				tcon_top_hdmi_in: port@4 {
79662306a36Sopenharmony_ci					reg = <4>;
79762306a36Sopenharmony_ci
79862306a36Sopenharmony_ci					tcon_top_hdmi_in_tcon_tv0: endpoint {
79962306a36Sopenharmony_ci						remote-endpoint = <&tcon_tv0_out_tcon_top_hdmi>;
80062306a36Sopenharmony_ci					};
80162306a36Sopenharmony_ci				};
80262306a36Sopenharmony_ci
80362306a36Sopenharmony_ci				tcon_top_hdmi_out: port@5 {
80462306a36Sopenharmony_ci					reg = <5>;
80562306a36Sopenharmony_ci				};
80662306a36Sopenharmony_ci			};
80762306a36Sopenharmony_ci		};
80862306a36Sopenharmony_ci
80962306a36Sopenharmony_ci		tcon_lcd0: lcd-controller@5461000 {
81062306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-tcon-lcd";
81162306a36Sopenharmony_ci			reg = <0x5461000 0x1000>;
81262306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(90) IRQ_TYPE_LEVEL_HIGH>;
81362306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_TCON_LCD0>,
81462306a36Sopenharmony_ci				 <&ccu CLK_TCON_LCD0>;
81562306a36Sopenharmony_ci			clock-names = "ahb", "tcon-ch0";
81662306a36Sopenharmony_ci			clock-output-names = "tcon-pixel-clock";
81762306a36Sopenharmony_ci			resets = <&ccu RST_BUS_TCON_LCD0>,
81862306a36Sopenharmony_ci				 <&ccu RST_BUS_LVDS0>;
81962306a36Sopenharmony_ci			reset-names = "lcd", "lvds";
82062306a36Sopenharmony_ci			#clock-cells = <0>;
82162306a36Sopenharmony_ci
82262306a36Sopenharmony_ci			ports {
82362306a36Sopenharmony_ci				#address-cells = <1>;
82462306a36Sopenharmony_ci				#size-cells = <0>;
82562306a36Sopenharmony_ci
82662306a36Sopenharmony_ci				tcon_lcd0_in: port@0 {
82762306a36Sopenharmony_ci					reg = <0>;
82862306a36Sopenharmony_ci					#address-cells = <1>;
82962306a36Sopenharmony_ci					#size-cells = <0>;
83062306a36Sopenharmony_ci
83162306a36Sopenharmony_ci					tcon_lcd0_in_tcon_top_mixer0: endpoint@0 {
83262306a36Sopenharmony_ci						reg = <0>;
83362306a36Sopenharmony_ci						remote-endpoint = <&tcon_top_mixer0_out_tcon_lcd0>;
83462306a36Sopenharmony_ci					};
83562306a36Sopenharmony_ci
83662306a36Sopenharmony_ci					tcon_lcd0_in_tcon_top_mixer1: endpoint@1 {
83762306a36Sopenharmony_ci						reg = <1>;
83862306a36Sopenharmony_ci						remote-endpoint = <&tcon_top_mixer1_out_tcon_lcd0>;
83962306a36Sopenharmony_ci					};
84062306a36Sopenharmony_ci				};
84162306a36Sopenharmony_ci
84262306a36Sopenharmony_ci				tcon_lcd0_out: port@1 {
84362306a36Sopenharmony_ci					reg = <1>;
84462306a36Sopenharmony_ci					#address-cells = <1>;
84562306a36Sopenharmony_ci					#size-cells = <0>;
84662306a36Sopenharmony_ci
84762306a36Sopenharmony_ci					tcon_lcd0_out_dsi: endpoint@1 {
84862306a36Sopenharmony_ci						reg = <1>;
84962306a36Sopenharmony_ci						remote-endpoint = <&dsi_in_tcon_lcd0>;
85062306a36Sopenharmony_ci					};
85162306a36Sopenharmony_ci				};
85262306a36Sopenharmony_ci			};
85362306a36Sopenharmony_ci		};
85462306a36Sopenharmony_ci
85562306a36Sopenharmony_ci		tcon_tv0: lcd-controller@5470000 {
85662306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-tcon-tv";
85762306a36Sopenharmony_ci			reg = <0x5470000 0x1000>;
85862306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(91) IRQ_TYPE_LEVEL_HIGH>;
85962306a36Sopenharmony_ci			clocks = <&ccu CLK_BUS_TCON_TV>,
86062306a36Sopenharmony_ci				 <&tcon_top CLK_TCON_TOP_TV0>;
86162306a36Sopenharmony_ci			clock-names = "ahb", "tcon-ch1";
86262306a36Sopenharmony_ci			resets = <&ccu RST_BUS_TCON_TV>;
86362306a36Sopenharmony_ci			reset-names = "lcd";
86462306a36Sopenharmony_ci
86562306a36Sopenharmony_ci			ports {
86662306a36Sopenharmony_ci				#address-cells = <1>;
86762306a36Sopenharmony_ci				#size-cells = <0>;
86862306a36Sopenharmony_ci
86962306a36Sopenharmony_ci				tcon_tv0_in: port@0 {
87062306a36Sopenharmony_ci					reg = <0>;
87162306a36Sopenharmony_ci					#address-cells = <1>;
87262306a36Sopenharmony_ci					#size-cells = <0>;
87362306a36Sopenharmony_ci
87462306a36Sopenharmony_ci					tcon_tv0_in_tcon_top_mixer0: endpoint@0 {
87562306a36Sopenharmony_ci						reg = <0>;
87662306a36Sopenharmony_ci						remote-endpoint = <&tcon_top_mixer0_out_tcon_tv0>;
87762306a36Sopenharmony_ci					};
87862306a36Sopenharmony_ci
87962306a36Sopenharmony_ci					tcon_tv0_in_tcon_top_mixer1: endpoint@1 {
88062306a36Sopenharmony_ci						reg = <1>;
88162306a36Sopenharmony_ci						remote-endpoint = <&tcon_top_mixer1_out_tcon_tv0>;
88262306a36Sopenharmony_ci					};
88362306a36Sopenharmony_ci				};
88462306a36Sopenharmony_ci
88562306a36Sopenharmony_ci				tcon_tv0_out: port@1 {
88662306a36Sopenharmony_ci					reg = <1>;
88762306a36Sopenharmony_ci
88862306a36Sopenharmony_ci					tcon_tv0_out_tcon_top_hdmi: endpoint {
88962306a36Sopenharmony_ci						remote-endpoint = <&tcon_top_hdmi_in_tcon_tv0>;
89062306a36Sopenharmony_ci					};
89162306a36Sopenharmony_ci				};
89262306a36Sopenharmony_ci			};
89362306a36Sopenharmony_ci		};
89462306a36Sopenharmony_ci
89562306a36Sopenharmony_ci		ppu: power-controller@7001000 {
89662306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-ppu";
89762306a36Sopenharmony_ci			reg = <0x7001000 0x1000>;
89862306a36Sopenharmony_ci			clocks = <&r_ccu CLK_BUS_R_PPU>;
89962306a36Sopenharmony_ci			resets = <&r_ccu RST_BUS_R_PPU>;
90062306a36Sopenharmony_ci			#power-domain-cells = <1>;
90162306a36Sopenharmony_ci		};
90262306a36Sopenharmony_ci
90362306a36Sopenharmony_ci		r_ccu: clock-controller@7010000 {
90462306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-r-ccu";
90562306a36Sopenharmony_ci			reg = <0x7010000 0x400>;
90662306a36Sopenharmony_ci			clocks = <&dcxo>,
90762306a36Sopenharmony_ci				 <&rtc CLK_OSC32K>,
90862306a36Sopenharmony_ci				 <&rtc CLK_IOSC>,
90962306a36Sopenharmony_ci				 <&ccu CLK_PLL_PERIPH0_DIV3>;
91062306a36Sopenharmony_ci			clock-names = "hosc", "losc", "iosc", "pll-periph";
91162306a36Sopenharmony_ci			#clock-cells = <1>;
91262306a36Sopenharmony_ci			#reset-cells = <1>;
91362306a36Sopenharmony_ci		};
91462306a36Sopenharmony_ci
91562306a36Sopenharmony_ci		rtc: rtc@7090000 {
91662306a36Sopenharmony_ci			compatible = "allwinner,sun20i-d1-rtc",
91762306a36Sopenharmony_ci				     "allwinner,sun50i-r329-rtc";
91862306a36Sopenharmony_ci			reg = <0x7090000 0x400>;
91962306a36Sopenharmony_ci			interrupts = <SOC_PERIPHERAL_IRQ(144) IRQ_TYPE_LEVEL_HIGH>;
92062306a36Sopenharmony_ci			clocks = <&r_ccu CLK_BUS_R_RTC>,
92162306a36Sopenharmony_ci				 <&dcxo>,
92262306a36Sopenharmony_ci				 <&r_ccu CLK_R_AHB>;
92362306a36Sopenharmony_ci			clock-names = "bus", "hosc", "ahb";
92462306a36Sopenharmony_ci			#clock-cells = <1>;
92562306a36Sopenharmony_ci		};
92662306a36Sopenharmony_ci	};
92762306a36Sopenharmony_ci};
928