18c2ecf20Sopenharmony_ci/*
28c2ecf20Sopenharmony_ci * Copyright 2016 ZTE Corporation.
38c2ecf20Sopenharmony_ci * Copyright 2016 Linaro Ltd.
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * This file is dual-licensed: you can use it either under the terms
68c2ecf20Sopenharmony_ci * of the GPL or the X11 license, at your option. Note that this dual
78c2ecf20Sopenharmony_ci * licensing only applies to this file, and not this project as a
88c2ecf20Sopenharmony_ci * whole.
98c2ecf20Sopenharmony_ci *
108c2ecf20Sopenharmony_ci *  a) This library is free software; you can redistribute it and/or
118c2ecf20Sopenharmony_ci *     modify it under the terms of the GNU General Public License as
128c2ecf20Sopenharmony_ci *     published by the Free Software Foundation; either version 2 of the
138c2ecf20Sopenharmony_ci *     License, or (at your option) any later version.
148c2ecf20Sopenharmony_ci *
158c2ecf20Sopenharmony_ci *     This library is distributed in the hope that it will be useful,
168c2ecf20Sopenharmony_ci *     but WITHOUT ANY WARRANTY; without even the implied warranty of
178c2ecf20Sopenharmony_ci *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
188c2ecf20Sopenharmony_ci *     GNU General Public License for more details.
198c2ecf20Sopenharmony_ci *
208c2ecf20Sopenharmony_ci * Or, alternatively,
218c2ecf20Sopenharmony_ci *
228c2ecf20Sopenharmony_ci *  b) Permission is hereby granted, free of charge, to any person
238c2ecf20Sopenharmony_ci *     obtaining a copy of this software and associated documentation
248c2ecf20Sopenharmony_ci *     files (the "Software"), to deal in the Software without
258c2ecf20Sopenharmony_ci *     restriction, including without limitation the rights to use,
268c2ecf20Sopenharmony_ci *     copy, modify, merge, publish, distribute, sublicense, and/or
278c2ecf20Sopenharmony_ci *     sell copies of the Software, and to permit persons to whom the
288c2ecf20Sopenharmony_ci *     Software is furnished to do so, subject to the following
298c2ecf20Sopenharmony_ci *     conditions:
308c2ecf20Sopenharmony_ci *
318c2ecf20Sopenharmony_ci *     The above copyright notice and this permission notice shall be
328c2ecf20Sopenharmony_ci *     included in all copies or substantial portions of the Software.
338c2ecf20Sopenharmony_ci *
348c2ecf20Sopenharmony_ci *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
358c2ecf20Sopenharmony_ci *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
368c2ecf20Sopenharmony_ci *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
378c2ecf20Sopenharmony_ci *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
388c2ecf20Sopenharmony_ci *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
398c2ecf20Sopenharmony_ci *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
408c2ecf20Sopenharmony_ci *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
418c2ecf20Sopenharmony_ci *     OTHER DEALINGS IN THE SOFTWARE.
428c2ecf20Sopenharmony_ci */
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci#include <dt-bindings/input/input.h>
458c2ecf20Sopenharmony_ci#include <dt-bindings/interrupt-controller/arm-gic.h>
468c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
478c2ecf20Sopenharmony_ci#include <dt-bindings/clock/zx296718-clock.h>
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci/ {
508c2ecf20Sopenharmony_ci	compatible = "zte,zx296718";
518c2ecf20Sopenharmony_ci	#address-cells = <1>;
528c2ecf20Sopenharmony_ci	#size-cells = <1>;
538c2ecf20Sopenharmony_ci	interrupt-parent = <&gic>;
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci	aliases {
568c2ecf20Sopenharmony_ci		gpio0 = &bgpio0;
578c2ecf20Sopenharmony_ci		gpio1 = &bgpio1;
588c2ecf20Sopenharmony_ci		gpio2 = &bgpio2;
598c2ecf20Sopenharmony_ci		gpio3 = &bgpio3;
608c2ecf20Sopenharmony_ci		gpio4 = &bgpio4;
618c2ecf20Sopenharmony_ci		gpio5 = &bgpio5;
628c2ecf20Sopenharmony_ci		gpio6 = &bgpio6;
638c2ecf20Sopenharmony_ci		serial0 = &uart0;
648c2ecf20Sopenharmony_ci	};
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci	cpus {
678c2ecf20Sopenharmony_ci		#address-cells = <2>;
688c2ecf20Sopenharmony_ci		#size-cells = <0>;
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci		cpu-map {
718c2ecf20Sopenharmony_ci			cluster0 {
728c2ecf20Sopenharmony_ci				core0 {
738c2ecf20Sopenharmony_ci					cpu = <&cpu0>;
748c2ecf20Sopenharmony_ci				};
758c2ecf20Sopenharmony_ci				core1 {
768c2ecf20Sopenharmony_ci					cpu = <&cpu1>;
778c2ecf20Sopenharmony_ci				};
788c2ecf20Sopenharmony_ci				core2 {
798c2ecf20Sopenharmony_ci					cpu = <&cpu2>;
808c2ecf20Sopenharmony_ci				};
818c2ecf20Sopenharmony_ci				core3 {
828c2ecf20Sopenharmony_ci					cpu = <&cpu3>;
838c2ecf20Sopenharmony_ci				};
848c2ecf20Sopenharmony_ci			};
858c2ecf20Sopenharmony_ci		};
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci		cpu0: cpu@0 {
888c2ecf20Sopenharmony_ci			device_type = "cpu";
898c2ecf20Sopenharmony_ci			compatible = "arm,cortex-a53";
908c2ecf20Sopenharmony_ci			reg = <0x0 0x0>;
918c2ecf20Sopenharmony_ci			enable-method = "psci";
928c2ecf20Sopenharmony_ci			clocks = <&topcrm A53_GATE>;
938c2ecf20Sopenharmony_ci			operating-points-v2 = <&cluster0_opp>;
948c2ecf20Sopenharmony_ci		};
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ci		cpu1: cpu@1 {
978c2ecf20Sopenharmony_ci			device_type = "cpu";
988c2ecf20Sopenharmony_ci			compatible = "arm,cortex-a53";
998c2ecf20Sopenharmony_ci			reg = <0x0 0x1>;
1008c2ecf20Sopenharmony_ci			enable-method = "psci";
1018c2ecf20Sopenharmony_ci			clocks = <&topcrm A53_GATE>;
1028c2ecf20Sopenharmony_ci			operating-points-v2 = <&cluster0_opp>;
1038c2ecf20Sopenharmony_ci		};
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_ci		cpu2: cpu@2 {
1068c2ecf20Sopenharmony_ci			device_type = "cpu";
1078c2ecf20Sopenharmony_ci			compatible = "arm,cortex-a53";
1088c2ecf20Sopenharmony_ci			reg = <0x0 0x2>;
1098c2ecf20Sopenharmony_ci			enable-method = "psci";
1108c2ecf20Sopenharmony_ci			clocks = <&topcrm A53_GATE>;
1118c2ecf20Sopenharmony_ci			operating-points-v2 = <&cluster0_opp>;
1128c2ecf20Sopenharmony_ci		};
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ci		cpu3: cpu@3 {
1158c2ecf20Sopenharmony_ci			device_type = "cpu";
1168c2ecf20Sopenharmony_ci			compatible = "arm,cortex-a53";
1178c2ecf20Sopenharmony_ci			reg = <0x0 0x3>;
1188c2ecf20Sopenharmony_ci			enable-method = "psci";
1198c2ecf20Sopenharmony_ci			clocks = <&topcrm A53_GATE>;
1208c2ecf20Sopenharmony_ci			operating-points-v2 = <&cluster0_opp>;
1218c2ecf20Sopenharmony_ci		};
1228c2ecf20Sopenharmony_ci	};
1238c2ecf20Sopenharmony_ci
1248c2ecf20Sopenharmony_ci	cluster0_opp: opp-table0 {
1258c2ecf20Sopenharmony_ci		compatible = "operating-points-v2";
1268c2ecf20Sopenharmony_ci		opp-shared;
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ci		opp-500000000 {
1298c2ecf20Sopenharmony_ci			opp-hz = /bits/ 64 <500000000>;
1308c2ecf20Sopenharmony_ci			opp-microvolt = <866000>;
1318c2ecf20Sopenharmony_ci			clock-latency-ns = <500000>;
1328c2ecf20Sopenharmony_ci		};
1338c2ecf20Sopenharmony_ci
1348c2ecf20Sopenharmony_ci		opp-648000000 {
1358c2ecf20Sopenharmony_ci			opp-hz = /bits/ 64 <648000000>;
1368c2ecf20Sopenharmony_ci			opp-microvolt = <866000>;
1378c2ecf20Sopenharmony_ci			clock-latency-ns = <500000>;
1388c2ecf20Sopenharmony_ci		};
1398c2ecf20Sopenharmony_ci
1408c2ecf20Sopenharmony_ci		opp-800000000 {
1418c2ecf20Sopenharmony_ci			opp-hz = /bits/ 64 <800000000>;
1428c2ecf20Sopenharmony_ci			opp-microvolt = <888000>;
1438c2ecf20Sopenharmony_ci			clock-latency-ns = <500000>;
1448c2ecf20Sopenharmony_ci		};
1458c2ecf20Sopenharmony_ci
1468c2ecf20Sopenharmony_ci		opp-1000000000 {
1478c2ecf20Sopenharmony_ci			opp-hz = /bits/ 64 <1000000000>;
1488c2ecf20Sopenharmony_ci			opp-microvolt = <898000>;
1498c2ecf20Sopenharmony_ci			clock-latency-ns = <500000>;
1508c2ecf20Sopenharmony_ci		};
1518c2ecf20Sopenharmony_ci
1528c2ecf20Sopenharmony_ci		opp-1188000000 {
1538c2ecf20Sopenharmony_ci			opp-hz = /bits/ 64 <1188000000>;
1548c2ecf20Sopenharmony_ci			opp-microvolt = <1015000>;
1558c2ecf20Sopenharmony_ci			clock-latency-ns = <500000>;
1568c2ecf20Sopenharmony_ci		};
1578c2ecf20Sopenharmony_ci	};
1588c2ecf20Sopenharmony_ci
1598c2ecf20Sopenharmony_ci	clk24k: clk-24k {
1608c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
1618c2ecf20Sopenharmony_ci		#clock-cells = <0>;
1628c2ecf20Sopenharmony_ci		clock-frequency = <24000>;
1638c2ecf20Sopenharmony_ci		clock-output-names = "rtcclk";
1648c2ecf20Sopenharmony_ci	};
1658c2ecf20Sopenharmony_ci
1668c2ecf20Sopenharmony_ci	osc32k: clk-osc32k {
1678c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
1688c2ecf20Sopenharmony_ci		#clock-cells = <0>;
1698c2ecf20Sopenharmony_ci		clock-frequency = <32000>;
1708c2ecf20Sopenharmony_ci		clock-output-names = "osc32k";
1718c2ecf20Sopenharmony_ci	};
1728c2ecf20Sopenharmony_ci
1738c2ecf20Sopenharmony_ci	osc12m: clk-osc12m {
1748c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
1758c2ecf20Sopenharmony_ci		#clock-cells = <0>;
1768c2ecf20Sopenharmony_ci		clock-frequency = <12000000>;
1778c2ecf20Sopenharmony_ci		clock-output-names = "osc12m";
1788c2ecf20Sopenharmony_ci	};
1798c2ecf20Sopenharmony_ci
1808c2ecf20Sopenharmony_ci	osc24m: clk-osc24m {
1818c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
1828c2ecf20Sopenharmony_ci		#clock-cells = <0>;
1838c2ecf20Sopenharmony_ci		clock-frequency = <24000000>;
1848c2ecf20Sopenharmony_ci		clock-output-names = "osc24m";
1858c2ecf20Sopenharmony_ci	};
1868c2ecf20Sopenharmony_ci
1878c2ecf20Sopenharmony_ci	osc25m: clk-osc25m {
1888c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
1898c2ecf20Sopenharmony_ci		#clock-cells = <0>;
1908c2ecf20Sopenharmony_ci		clock-frequency = <25000000>;
1918c2ecf20Sopenharmony_ci		clock-output-names = "osc25m";
1928c2ecf20Sopenharmony_ci	};
1938c2ecf20Sopenharmony_ci
1948c2ecf20Sopenharmony_ci	osc60m: clk-osc60m {
1958c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
1968c2ecf20Sopenharmony_ci		#clock-cells = <0>;
1978c2ecf20Sopenharmony_ci		clock-frequency = <60000000>;
1988c2ecf20Sopenharmony_ci		clock-output-names = "osc60m";
1998c2ecf20Sopenharmony_ci	};
2008c2ecf20Sopenharmony_ci
2018c2ecf20Sopenharmony_ci	osc99m: clk-osc99m {
2028c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
2038c2ecf20Sopenharmony_ci		#clock-cells = <0>;
2048c2ecf20Sopenharmony_ci		clock-frequency = <99000000>;
2058c2ecf20Sopenharmony_ci		clock-output-names = "osc99m";
2068c2ecf20Sopenharmony_ci	};
2078c2ecf20Sopenharmony_ci
2088c2ecf20Sopenharmony_ci	osc125m: clk-osc125m {
2098c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
2108c2ecf20Sopenharmony_ci		#clock-cells = <0>;
2118c2ecf20Sopenharmony_ci		clock-frequency = <125000000>;
2128c2ecf20Sopenharmony_ci		clock-output-names = "osc125m";
2138c2ecf20Sopenharmony_ci	};
2148c2ecf20Sopenharmony_ci
2158c2ecf20Sopenharmony_ci	osc198m: clk-osc198m {
2168c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
2178c2ecf20Sopenharmony_ci		#clock-cells = <0>;
2188c2ecf20Sopenharmony_ci		clock-frequency = <198000000>;
2198c2ecf20Sopenharmony_ci		clock-output-names = "osc198m";
2208c2ecf20Sopenharmony_ci	};
2218c2ecf20Sopenharmony_ci
2228c2ecf20Sopenharmony_ci	pll_audio: clk-pll-884m {
2238c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
2248c2ecf20Sopenharmony_ci		#clock-cells = <0>;
2258c2ecf20Sopenharmony_ci		clock-frequency = <884000000>;
2268c2ecf20Sopenharmony_ci		clock-output-names = "pll_audio";
2278c2ecf20Sopenharmony_ci	};
2288c2ecf20Sopenharmony_ci
2298c2ecf20Sopenharmony_ci	pll_ddr: clk-pll-932m {
2308c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
2318c2ecf20Sopenharmony_ci		#clock-cells = <0>;
2328c2ecf20Sopenharmony_ci		clock-frequency = <932000000>;
2338c2ecf20Sopenharmony_ci		clock-output-names = "pll_ddr";
2348c2ecf20Sopenharmony_ci	};
2358c2ecf20Sopenharmony_ci
2368c2ecf20Sopenharmony_ci	pll_hsic: clk-pll-960m {
2378c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
2388c2ecf20Sopenharmony_ci		#clock-cells = <0>;
2398c2ecf20Sopenharmony_ci		clock-frequency = <960000000>;
2408c2ecf20Sopenharmony_ci		clock-output-names = "pll_hsic";
2418c2ecf20Sopenharmony_ci	};
2428c2ecf20Sopenharmony_ci
2438c2ecf20Sopenharmony_ci	pll_mac: clk-pll-1000m {
2448c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
2458c2ecf20Sopenharmony_ci		#clock-cells = <0>;
2468c2ecf20Sopenharmony_ci		clock-frequency = <1000000000>;
2478c2ecf20Sopenharmony_ci		clock-output-names = "pll_mac";
2488c2ecf20Sopenharmony_ci	};
2498c2ecf20Sopenharmony_ci
2508c2ecf20Sopenharmony_ci	pll_mm0: clk-pll-1188m {
2518c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
2528c2ecf20Sopenharmony_ci		#clock-cells = <0>;
2538c2ecf20Sopenharmony_ci		clock-frequency = <1188000000>;
2548c2ecf20Sopenharmony_ci		clock-output-names = "pll_mm0";
2558c2ecf20Sopenharmony_ci	};
2568c2ecf20Sopenharmony_ci
2578c2ecf20Sopenharmony_ci	pll_mm1: clk-pll-1296m {
2588c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
2598c2ecf20Sopenharmony_ci		#clock-cells = <0>;
2608c2ecf20Sopenharmony_ci		clock-frequency = <1296000000>;
2618c2ecf20Sopenharmony_ci		clock-output-names = "pll_mm1";
2628c2ecf20Sopenharmony_ci	};
2638c2ecf20Sopenharmony_ci
2648c2ecf20Sopenharmony_ci	psci {
2658c2ecf20Sopenharmony_ci		compatible = "arm,psci-1.0";
2668c2ecf20Sopenharmony_ci		method = "smc";
2678c2ecf20Sopenharmony_ci	};
2688c2ecf20Sopenharmony_ci
2698c2ecf20Sopenharmony_ci	timer {
2708c2ecf20Sopenharmony_ci		compatible = "arm,armv8-timer";
2718c2ecf20Sopenharmony_ci		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
2728c2ecf20Sopenharmony_ci			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
2738c2ecf20Sopenharmony_ci			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
2748c2ecf20Sopenharmony_ci			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
2758c2ecf20Sopenharmony_ci	};
2768c2ecf20Sopenharmony_ci
2778c2ecf20Sopenharmony_ci	pmu {
2788c2ecf20Sopenharmony_ci		compatible = "arm,cortex-a53-pmu";
2798c2ecf20Sopenharmony_ci		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
2808c2ecf20Sopenharmony_ci	};
2818c2ecf20Sopenharmony_ci
2828c2ecf20Sopenharmony_ci	gic: interrupt-controller@2a00000 {
2838c2ecf20Sopenharmony_ci		compatible = "arm,gic-v3";
2848c2ecf20Sopenharmony_ci		#interrupt-cells = <3>;
2858c2ecf20Sopenharmony_ci		#address-cells = <0>;
2868c2ecf20Sopenharmony_ci		interrupt-controller;
2878c2ecf20Sopenharmony_ci		reg = <0x02a00000 0x10000>,
2888c2ecf20Sopenharmony_ci		      <0x02b00000 0xc0000>;
2898c2ecf20Sopenharmony_ci		interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
2908c2ecf20Sopenharmony_ci	};
2918c2ecf20Sopenharmony_ci
2928c2ecf20Sopenharmony_ci	soc {
2938c2ecf20Sopenharmony_ci		#address-cells = <1>;
2948c2ecf20Sopenharmony_ci		#size-cells = <1>;
2958c2ecf20Sopenharmony_ci		compatible = "simple-bus";
2968c2ecf20Sopenharmony_ci		ranges;
2978c2ecf20Sopenharmony_ci
2988c2ecf20Sopenharmony_ci		irdec: ir-decoder@111000 {
2998c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-irdec";
3008c2ecf20Sopenharmony_ci			reg = <0x111000 0x1000>;
3018c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
3028c2ecf20Sopenharmony_ci			status = "disabled";
3038c2ecf20Sopenharmony_ci		};
3048c2ecf20Sopenharmony_ci
3058c2ecf20Sopenharmony_ci		aon_sysctrl: aon-sysctrl@116000 {
3068c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-aon-sysctrl", "syscon";
3078c2ecf20Sopenharmony_ci			reg = <0x116000 0x1000>;
3088c2ecf20Sopenharmony_ci		};
3098c2ecf20Sopenharmony_ci
3108c2ecf20Sopenharmony_ci		iocfg: pin-controller@119000 {
3118c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-iocfg";
3128c2ecf20Sopenharmony_ci			reg = <0x119000 0x1000>;
3138c2ecf20Sopenharmony_ci		};
3148c2ecf20Sopenharmony_ci
3158c2ecf20Sopenharmony_ci		uart0: uart@11f000 {
3168c2ecf20Sopenharmony_ci			compatible = "arm,pl011", "arm,primecell";
3178c2ecf20Sopenharmony_ci			arm,primecell-periphid = <0x001feffe>;
3188c2ecf20Sopenharmony_ci			reg = <0x11f000 0x1000>;
3198c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
3208c2ecf20Sopenharmony_ci			clocks = <&osc24m>;
3218c2ecf20Sopenharmony_ci			clock-names = "apb_pclk";
3228c2ecf20Sopenharmony_ci			status = "disabled";
3238c2ecf20Sopenharmony_ci		};
3248c2ecf20Sopenharmony_ci
3258c2ecf20Sopenharmony_ci		sd0: mmc@1110000 {
3268c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-dw-mshc";
3278c2ecf20Sopenharmony_ci			#address-cells = <1>;
3288c2ecf20Sopenharmony_ci			#size-cells = <0>;
3298c2ecf20Sopenharmony_ci			reg = <0x01110000 0x1000>;
3308c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
3318c2ecf20Sopenharmony_ci			fifo-depth = <32>;
3328c2ecf20Sopenharmony_ci			data-addr = <0x200>;
3338c2ecf20Sopenharmony_ci			fifo-watermark-aligned;
3348c2ecf20Sopenharmony_ci			bus-width = <4>;
3358c2ecf20Sopenharmony_ci			clock-frequency = <50000000>;
3368c2ecf20Sopenharmony_ci			clocks = <&topcrm SD0_AHB>, <&topcrm SD0_WCLK>;
3378c2ecf20Sopenharmony_ci			clock-names = "biu", "ciu";
3388c2ecf20Sopenharmony_ci			max-frequency = <50000000>;
3398c2ecf20Sopenharmony_ci			cap-sdio-irq;
3408c2ecf20Sopenharmony_ci			cap-sd-highspeed;
3418c2ecf20Sopenharmony_ci			sd-uhs-sdr12;
3428c2ecf20Sopenharmony_ci			sd-uhs-sdr25;
3438c2ecf20Sopenharmony_ci			sd-uhs-sdr50;
3448c2ecf20Sopenharmony_ci			sd-uhs-sdr104;
3458c2ecf20Sopenharmony_ci			sd-uhs-ddr50;
3468c2ecf20Sopenharmony_ci			status = "disabled";
3478c2ecf20Sopenharmony_ci		};
3488c2ecf20Sopenharmony_ci
3498c2ecf20Sopenharmony_ci		sd1: mmc@1111000 {
3508c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-dw-mshc";
3518c2ecf20Sopenharmony_ci			#address-cells = <1>;
3528c2ecf20Sopenharmony_ci			#size-cells = <0>;
3538c2ecf20Sopenharmony_ci			reg = <0x01111000 0x1000>;
3548c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
3558c2ecf20Sopenharmony_ci			fifo-depth = <32>;
3568c2ecf20Sopenharmony_ci			data-addr = <0x200>;
3578c2ecf20Sopenharmony_ci			fifo-watermark-aligned;
3588c2ecf20Sopenharmony_ci			bus-width = <4>;
3598c2ecf20Sopenharmony_ci			clock-frequency = <167000000>;
3608c2ecf20Sopenharmony_ci			clocks = <&topcrm SD1_AHB>, <&topcrm SD1_WCLK>;
3618c2ecf20Sopenharmony_ci			clock-names = "biu", "ciu";
3628c2ecf20Sopenharmony_ci			max-frequency = <167000000>;
3638c2ecf20Sopenharmony_ci			cap-sdio-irq;
3648c2ecf20Sopenharmony_ci			cap-sd-highspeed;
3658c2ecf20Sopenharmony_ci			status = "disabled";
3668c2ecf20Sopenharmony_ci		};
3678c2ecf20Sopenharmony_ci
3688c2ecf20Sopenharmony_ci		dma: dma-controller@1460000 {
3698c2ecf20Sopenharmony_ci			compatible = "zte,zx296702-dma";
3708c2ecf20Sopenharmony_ci			reg = <0x01460000 0x1000>;
3718c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
3728c2ecf20Sopenharmony_ci			clocks = <&osc24m>;
3738c2ecf20Sopenharmony_ci			clock-names = "dmaclk";
3748c2ecf20Sopenharmony_ci			#dma-cells = <1>;
3758c2ecf20Sopenharmony_ci			dma-channels = <32>;
3768c2ecf20Sopenharmony_ci			dma-requests = <32>;
3778c2ecf20Sopenharmony_ci		};
3788c2ecf20Sopenharmony_ci
3798c2ecf20Sopenharmony_ci		lsp0crm: clock-controller@1420000 {
3808c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-lsp0crm";
3818c2ecf20Sopenharmony_ci			reg = <0x01420000 0x1000>;
3828c2ecf20Sopenharmony_ci			#clock-cells = <1>;
3838c2ecf20Sopenharmony_ci		};
3848c2ecf20Sopenharmony_ci
3858c2ecf20Sopenharmony_ci		bgpio0: gpio@142d000 {
3868c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-gpio", "zte,zx296702-gpio";
3878c2ecf20Sopenharmony_ci			reg = <0x142d000 0x40>;
3888c2ecf20Sopenharmony_ci			gpio-controller;
3898c2ecf20Sopenharmony_ci			#gpio-cells = <2>;
3908c2ecf20Sopenharmony_ci			gpio-ranges = <&pmm 0 48 16>;
3918c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
3928c2ecf20Sopenharmony_ci			interrupt-parent = <&gic>;
3938c2ecf20Sopenharmony_ci			interrupt-controller;
3948c2ecf20Sopenharmony_ci			#interrupt-cells = <2>;
3958c2ecf20Sopenharmony_ci		};
3968c2ecf20Sopenharmony_ci
3978c2ecf20Sopenharmony_ci		bgpio1: gpio@142d040 {
3988c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-gpio", "zte,zx296702-gpio";
3998c2ecf20Sopenharmony_ci			reg = <0x142d040 0x40>;
4008c2ecf20Sopenharmony_ci			gpio-controller;
4018c2ecf20Sopenharmony_ci			#gpio-cells = <2>;
4028c2ecf20Sopenharmony_ci			gpio-ranges = <&pmm 0 80 16>;
4038c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
4048c2ecf20Sopenharmony_ci			interrupt-parent = <&gic>;
4058c2ecf20Sopenharmony_ci			interrupt-controller;
4068c2ecf20Sopenharmony_ci			#interrupt-cells = <2>;
4078c2ecf20Sopenharmony_ci		};
4088c2ecf20Sopenharmony_ci
4098c2ecf20Sopenharmony_ci		bgpio2: gpio@142d080 {
4108c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-gpio", "zte,zx296702-gpio";
4118c2ecf20Sopenharmony_ci			reg = <0x142d080 0x40>;
4128c2ecf20Sopenharmony_ci			gpio-controller;
4138c2ecf20Sopenharmony_ci			#gpio-cells = <2>;
4148c2ecf20Sopenharmony_ci			gpio-ranges = <&pmm 0 80 3
4158c2ecf20Sopenharmony_ci				       &pmm 3 32 4
4168c2ecf20Sopenharmony_ci				       &pmm 7 83 9>;
4178c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
4188c2ecf20Sopenharmony_ci			interrupt-parent = <&gic>;
4198c2ecf20Sopenharmony_ci			interrupt-controller;
4208c2ecf20Sopenharmony_ci			#interrupt-cells = <2>;
4218c2ecf20Sopenharmony_ci		};
4228c2ecf20Sopenharmony_ci
4238c2ecf20Sopenharmony_ci		bgpio3: gpio@142d0c0 {
4248c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-gpio", "zte,zx296702-gpio";
4258c2ecf20Sopenharmony_ci			reg = <0x142d0c0 0x40>;
4268c2ecf20Sopenharmony_ci			gpio-controller;
4278c2ecf20Sopenharmony_ci			#gpio-cells = <2>;
4288c2ecf20Sopenharmony_ci			gpio-ranges = <&pmm 0 92 16>;
4298c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
4308c2ecf20Sopenharmony_ci			interrupt-parent = <&gic>;
4318c2ecf20Sopenharmony_ci			interrupt-controller;
4328c2ecf20Sopenharmony_ci			#interrupt-cells = <2>;
4338c2ecf20Sopenharmony_ci		};
4348c2ecf20Sopenharmony_ci
4358c2ecf20Sopenharmony_ci		bgpio4: gpio@142d100 {
4368c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-gpio", "zte,zx296702-gpio";
4378c2ecf20Sopenharmony_ci			reg = <0x142d100 0x40>;
4388c2ecf20Sopenharmony_ci			gpio-controller;
4398c2ecf20Sopenharmony_ci			#gpio-cells = <2>;
4408c2ecf20Sopenharmony_ci			gpio-ranges = <&pmm 0 108 12
4418c2ecf20Sopenharmony_ci				       &pmm 12 121 4>;
4428c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
4438c2ecf20Sopenharmony_ci			interrupt-parent = <&gic>;
4448c2ecf20Sopenharmony_ci			interrupt-controller;
4458c2ecf20Sopenharmony_ci			#interrupt-cells = <2>;
4468c2ecf20Sopenharmony_ci		};
4478c2ecf20Sopenharmony_ci
4488c2ecf20Sopenharmony_ci		bgpio5: gpio@142d140 {
4498c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-gpio", "zte,zx296702-gpio";
4508c2ecf20Sopenharmony_ci			reg = <0x142d140 0x40>;
4518c2ecf20Sopenharmony_ci			gpio-controller;
4528c2ecf20Sopenharmony_ci			#gpio-cells = <2>;
4538c2ecf20Sopenharmony_ci			gpio-ranges = <&pmm 0 125 16>;
4548c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
4558c2ecf20Sopenharmony_ci			interrupt-parent = <&gic>;
4568c2ecf20Sopenharmony_ci			interrupt-controller;
4578c2ecf20Sopenharmony_ci			#interrupt-cells = <2>;
4588c2ecf20Sopenharmony_ci		};
4598c2ecf20Sopenharmony_ci
4608c2ecf20Sopenharmony_ci		bgpio6: gpio@142d180 {
4618c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-gpio", "zte,zx296702-gpio";
4628c2ecf20Sopenharmony_ci			reg = <0x142d180 0x40>;
4638c2ecf20Sopenharmony_ci			gpio-controller;
4648c2ecf20Sopenharmony_ci			#gpio-cells = <2>;
4658c2ecf20Sopenharmony_ci			gpio-ranges = <&pmm 0 141 2>;
4668c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
4678c2ecf20Sopenharmony_ci			interrupt-parent = <&gic>;
4688c2ecf20Sopenharmony_ci			interrupt-controller;
4698c2ecf20Sopenharmony_ci			#interrupt-cells = <2>;
4708c2ecf20Sopenharmony_ci		};
4718c2ecf20Sopenharmony_ci
4728c2ecf20Sopenharmony_ci		lsp1crm: clock-controller@1430000 {
4738c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-lsp1crm";
4748c2ecf20Sopenharmony_ci			reg = <0x01430000 0x1000>;
4758c2ecf20Sopenharmony_ci			#clock-cells = <1>;
4768c2ecf20Sopenharmony_ci		};
4778c2ecf20Sopenharmony_ci
4788c2ecf20Sopenharmony_ci		pwm: pwm@1439000 {
4798c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-pwm";
4808c2ecf20Sopenharmony_ci			reg = <0x1439000 0x1000>;
4818c2ecf20Sopenharmony_ci			clocks = <&lsp1crm LSP1_PWM_PCLK>,
4828c2ecf20Sopenharmony_ci				 <&lsp1crm LSP1_PWM_WCLK>;
4838c2ecf20Sopenharmony_ci			clock-names = "pclk", "wclk";
4848c2ecf20Sopenharmony_ci			#pwm-cells = <3>;
4858c2ecf20Sopenharmony_ci			status = "disabled";
4868c2ecf20Sopenharmony_ci		};
4878c2ecf20Sopenharmony_ci
4888c2ecf20Sopenharmony_ci		vou: vou@1440000 {
4898c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-vou";
4908c2ecf20Sopenharmony_ci			#address-cells = <1>;
4918c2ecf20Sopenharmony_ci			#size-cells = <1>;
4928c2ecf20Sopenharmony_ci			ranges = <0 0x1440000 0x10000>;
4938c2ecf20Sopenharmony_ci
4948c2ecf20Sopenharmony_ci			dpc: dpc@0 {
4958c2ecf20Sopenharmony_ci				compatible = "zte,zx296718-dpc";
4968c2ecf20Sopenharmony_ci				reg = <0x0000 0x1000>, <0x1000 0x1000>,
4978c2ecf20Sopenharmony_ci				      <0x5000 0x1000>, <0x6000 0x1000>,
4988c2ecf20Sopenharmony_ci				      <0xa000 0x1000>;
4998c2ecf20Sopenharmony_ci				reg-names = "osd", "timing_ctrl",
5008c2ecf20Sopenharmony_ci					    "dtrc", "vou_ctrl",
5018c2ecf20Sopenharmony_ci					    "otfppu";
5028c2ecf20Sopenharmony_ci				interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
5038c2ecf20Sopenharmony_ci				clocks = <&topcrm VOU_ACLK>, <&topcrm VOU_PPU_WCLK>,
5048c2ecf20Sopenharmony_ci					 <&topcrm VOU_MAIN_WCLK>, <&topcrm VOU_AUX_WCLK>;
5058c2ecf20Sopenharmony_ci				clock-names = "aclk", "ppu_wclk",
5068c2ecf20Sopenharmony_ci					      "main_wclk", "aux_wclk";
5078c2ecf20Sopenharmony_ci			};
5088c2ecf20Sopenharmony_ci
5098c2ecf20Sopenharmony_ci			vga: vga@8000 {
5108c2ecf20Sopenharmony_ci				compatible = "zte,zx296718-vga";
5118c2ecf20Sopenharmony_ci				reg = <0x8000 0x1000>;
5128c2ecf20Sopenharmony_ci				interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
5138c2ecf20Sopenharmony_ci				clocks = <&topcrm VGA_I2C_WCLK>;
5148c2ecf20Sopenharmony_ci				clock-names = "i2c_wclk";
5158c2ecf20Sopenharmony_ci				zte,vga-power-control = <&sysctrl 0x170 0xe0>;
5168c2ecf20Sopenharmony_ci				status = "disabled";
5178c2ecf20Sopenharmony_ci			};
5188c2ecf20Sopenharmony_ci
5198c2ecf20Sopenharmony_ci			hdmi: hdmi@c000 {
5208c2ecf20Sopenharmony_ci				compatible = "zte,zx296718-hdmi";
5218c2ecf20Sopenharmony_ci				reg = <0xc000 0x4000>;
5228c2ecf20Sopenharmony_ci				interrupts = <GIC_SPI 82 IRQ_TYPE_EDGE_RISING>;
5238c2ecf20Sopenharmony_ci				clocks = <&topcrm HDMI_OSC_CEC>,
5248c2ecf20Sopenharmony_ci					 <&topcrm HDMI_OSC_CLK>,
5258c2ecf20Sopenharmony_ci					 <&topcrm HDMI_XCLK>;
5268c2ecf20Sopenharmony_ci				clock-names = "osc_cec", "osc_clk", "xclk";
5278c2ecf20Sopenharmony_ci				#sound-dai-cells = <0>;
5288c2ecf20Sopenharmony_ci				status = "disabled";
5298c2ecf20Sopenharmony_ci			};
5308c2ecf20Sopenharmony_ci
5318c2ecf20Sopenharmony_ci			tvenc: tvenc@2000 {
5328c2ecf20Sopenharmony_ci				compatible = "zte,zx296718-tvenc";
5338c2ecf20Sopenharmony_ci				reg = <0x2000 0x1000>;
5348c2ecf20Sopenharmony_ci				zte,tvenc-power-control = <&sysctrl 0x170 0x10>;
5358c2ecf20Sopenharmony_ci				status = "disabled";
5368c2ecf20Sopenharmony_ci			};
5378c2ecf20Sopenharmony_ci		};
5388c2ecf20Sopenharmony_ci
5398c2ecf20Sopenharmony_ci		topcrm: clock-controller@1461000 {
5408c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-topcrm";
5418c2ecf20Sopenharmony_ci			reg = <0x01461000 0x1000>;
5428c2ecf20Sopenharmony_ci			#clock-cells = <1>;
5438c2ecf20Sopenharmony_ci		};
5448c2ecf20Sopenharmony_ci
5458c2ecf20Sopenharmony_ci		pmm: pin-controller@1462000 {
5468c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-pmm";
5478c2ecf20Sopenharmony_ci			reg = <0x1462000 0x1000>;
5488c2ecf20Sopenharmony_ci			zte,auxiliary-controller = <&iocfg>;
5498c2ecf20Sopenharmony_ci		};
5508c2ecf20Sopenharmony_ci
5518c2ecf20Sopenharmony_ci		sysctrl: sysctrl@1463000 {
5528c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-sysctrl", "syscon";
5538c2ecf20Sopenharmony_ci			reg = <0x1463000 0x1000>;
5548c2ecf20Sopenharmony_ci		};
5558c2ecf20Sopenharmony_ci
5568c2ecf20Sopenharmony_ci		emmc: mmc@1470000{
5578c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-dw-mshc";
5588c2ecf20Sopenharmony_ci			reg = <0x01470000 0x1000>;
5598c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
5608c2ecf20Sopenharmony_ci			zte,aon-syscon = <&aon_sysctrl>;
5618c2ecf20Sopenharmony_ci			bus-width = <8>;
5628c2ecf20Sopenharmony_ci			fifo-depth = <128>;
5638c2ecf20Sopenharmony_ci			data-addr = <0x200>;
5648c2ecf20Sopenharmony_ci			fifo-watermark-aligned;
5658c2ecf20Sopenharmony_ci			clock-frequency = <167000000>;
5668c2ecf20Sopenharmony_ci			clocks = <&topcrm EMMC_NAND_AHB>, <&topcrm EMMC_WCLK>;
5678c2ecf20Sopenharmony_ci			clock-names = "biu", "ciu";
5688c2ecf20Sopenharmony_ci			max-frequency = <167000000>;
5698c2ecf20Sopenharmony_ci			cap-mmc-highspeed;
5708c2ecf20Sopenharmony_ci			mmc-ddr-1_8v;
5718c2ecf20Sopenharmony_ci			mmc-hs200-1_8v;
5728c2ecf20Sopenharmony_ci			non-removable;
5738c2ecf20Sopenharmony_ci			disable-wp;
5748c2ecf20Sopenharmony_ci			status = "disabled";
5758c2ecf20Sopenharmony_ci		};
5768c2ecf20Sopenharmony_ci
5778c2ecf20Sopenharmony_ci		audiocrm: clock-controller@1480000 {
5788c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-audiocrm";
5798c2ecf20Sopenharmony_ci			reg = <0x01480000 0x1000>;
5808c2ecf20Sopenharmony_ci			#clock-cells = <1>;
5818c2ecf20Sopenharmony_ci		};
5828c2ecf20Sopenharmony_ci
5838c2ecf20Sopenharmony_ci		i2s0: i2s@1482000 {
5848c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-i2s", "zte,zx296702-i2s";
5858c2ecf20Sopenharmony_ci			reg = <0x01482000 0x1000>;
5868c2ecf20Sopenharmony_ci			clocks = <&audiocrm AUDIO_I2S0_WCLK>,
5878c2ecf20Sopenharmony_ci				 <&audiocrm AUDIO_I2S0_PCLK>;
5888c2ecf20Sopenharmony_ci			clock-names = "wclk", "pclk";
5898c2ecf20Sopenharmony_ci			assigned-clocks = <&audiocrm I2S0_WCLK_MUX>;
5908c2ecf20Sopenharmony_ci			assigned-clock-parents = <&topcrm AUDIO_99M>;
5918c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
5928c2ecf20Sopenharmony_ci			dmas = <&dma 22>, <&dma 23>;
5938c2ecf20Sopenharmony_ci			dma-names = "tx", "rx";
5948c2ecf20Sopenharmony_ci			#sound-dai-cells = <0>;
5958c2ecf20Sopenharmony_ci			status = "disabled";
5968c2ecf20Sopenharmony_ci		};
5978c2ecf20Sopenharmony_ci
5988c2ecf20Sopenharmony_ci		i2c0: i2c@1486000 {
5998c2ecf20Sopenharmony_ci			compatible = "zte,zx296718-i2c";
6008c2ecf20Sopenharmony_ci			reg = <0x01486000 0x1000>;
6018c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
6028c2ecf20Sopenharmony_ci			#address-cells = <1>;
6038c2ecf20Sopenharmony_ci			#size-cells = <0>;
6048c2ecf20Sopenharmony_ci			clocks = <&audiocrm AUDIO_I2C0_WCLK>;
6058c2ecf20Sopenharmony_ci			clock-frequency = <1600000>;
6068c2ecf20Sopenharmony_ci			status = "disabled";
6078c2ecf20Sopenharmony_ci
6088c2ecf20Sopenharmony_ci			aud96p22: codec@22 {
6098c2ecf20Sopenharmony_ci				compatible = "zte,zx-aud96p22";
6108c2ecf20Sopenharmony_ci				#sound-dai-cells = <0>;
6118c2ecf20Sopenharmony_ci				reg = <0x22>;
6128c2ecf20Sopenharmony_ci			};
6138c2ecf20Sopenharmony_ci		};
6148c2ecf20Sopenharmony_ci
6158c2ecf20Sopenharmony_ci		spdif0: spdif@1488000 {
6168c2ecf20Sopenharmony_ci			compatible = "zte,zx296702-spdif";
6178c2ecf20Sopenharmony_ci			reg = <0x1488000 0x1000>;
6188c2ecf20Sopenharmony_ci			clocks = <&audiocrm AUDIO_SPDIF0_WCLK>;
6198c2ecf20Sopenharmony_ci			clock-names = "tx";
6208c2ecf20Sopenharmony_ci			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
6218c2ecf20Sopenharmony_ci			#sound-dai-cells = <0>;
6228c2ecf20Sopenharmony_ci			dmas = <&dma 30>;
6238c2ecf20Sopenharmony_ci			dma-names = "tx";
6248c2ecf20Sopenharmony_ci			status = "disabled";
6258c2ecf20Sopenharmony_ci		};
6268c2ecf20Sopenharmony_ci	};
6278c2ecf20Sopenharmony_ci};
628