18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * dts file for Hisilicon HiKey Development Board
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Copyright (C) 2015, Hisilicon Ltd.
68c2ecf20Sopenharmony_ci *
78c2ecf20Sopenharmony_ci */
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci/dts-v1/;
108c2ecf20Sopenharmony_ci#include "hi6220.dtsi"
118c2ecf20Sopenharmony_ci#include "hikey-pinctrl.dtsi"
128c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci/ {
158c2ecf20Sopenharmony_ci	model = "HiKey Development Board";
168c2ecf20Sopenharmony_ci	compatible = "hisilicon,hi6220-hikey", "hisilicon,hi6220";
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci	aliases {
198c2ecf20Sopenharmony_ci		serial0 = &uart0; /* On board UART0 */
208c2ecf20Sopenharmony_ci		serial1 = &uart1; /* BT UART */
218c2ecf20Sopenharmony_ci		serial2 = &uart2; /* LS Expansion UART0 */
228c2ecf20Sopenharmony_ci		serial3 = &uart3; /* LS Expansion UART1 */
238c2ecf20Sopenharmony_ci	};
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci	chosen {
268c2ecf20Sopenharmony_ci		stdout-path = "serial3:115200n8";
278c2ecf20Sopenharmony_ci	};
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci	/*
308c2ecf20Sopenharmony_ci	 * Reserve below regions from memory node:
318c2ecf20Sopenharmony_ci	 *
328c2ecf20Sopenharmony_ci	 *  0x05e0,0000 - 0x05ef,ffff: MCU firmware runtime using
338c2ecf20Sopenharmony_ci	 *  0x05f0,1000 - 0x05f0,1fff: Reboot reason
348c2ecf20Sopenharmony_ci	 *  0x06df,f000 - 0x06df,ffff: Mailbox message data
358c2ecf20Sopenharmony_ci	 *  0x0740,f000 - 0x0740,ffff: MCU firmware section
368c2ecf20Sopenharmony_ci	 *  0x21f0,0000 - 0x21ff,ffff: pstore/ramoops buffer
378c2ecf20Sopenharmony_ci	 *  0x3e00,0000 - 0x3fff,ffff: OP-TEE
388c2ecf20Sopenharmony_ci	 */
398c2ecf20Sopenharmony_ci	memory@0 {
408c2ecf20Sopenharmony_ci		device_type = "memory";
418c2ecf20Sopenharmony_ci		reg = <0x00000000 0x00000000 0x00000000 0x05e00000>,
428c2ecf20Sopenharmony_ci		      <0x00000000 0x05f00000 0x00000000 0x00001000>,
438c2ecf20Sopenharmony_ci		      <0x00000000 0x05f02000 0x00000000 0x00efd000>,
448c2ecf20Sopenharmony_ci		      <0x00000000 0x06e00000 0x00000000 0x0060f000>,
458c2ecf20Sopenharmony_ci		      <0x00000000 0x07410000 0x00000000 0x1aaf0000>,
468c2ecf20Sopenharmony_ci		      <0x00000000 0x22000000 0x00000000 0x1c000000>;
478c2ecf20Sopenharmony_ci	};
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci	reserved-memory {
508c2ecf20Sopenharmony_ci		#address-cells = <2>;
518c2ecf20Sopenharmony_ci		#size-cells = <2>;
528c2ecf20Sopenharmony_ci		ranges;
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci		ramoops@21f00000 {
558c2ecf20Sopenharmony_ci			compatible = "ramoops";
568c2ecf20Sopenharmony_ci			reg = <0x0 0x21f00000 0x0 0x00100000>;
578c2ecf20Sopenharmony_ci			record-size	= <0x00020000>;
588c2ecf20Sopenharmony_ci			console-size	= <0x00020000>;
598c2ecf20Sopenharmony_ci			ftrace-size	= <0x00020000>;
608c2ecf20Sopenharmony_ci		};
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ci		/* global autoconfigured region for contiguous allocations */
638c2ecf20Sopenharmony_ci		linux,cma {
648c2ecf20Sopenharmony_ci			compatible = "shared-dma-pool";
658c2ecf20Sopenharmony_ci			reusable;
668c2ecf20Sopenharmony_ci			size = <0x00000000 0x08000000>;
678c2ecf20Sopenharmony_ci			linux,cma-default;
688c2ecf20Sopenharmony_ci		};
698c2ecf20Sopenharmony_ci	};
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci	reboot-mode-syscon@5f01000 {
728c2ecf20Sopenharmony_ci		compatible = "syscon", "simple-mfd";
738c2ecf20Sopenharmony_ci		reg = <0x0 0x05f01000 0x0 0x00001000>;
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci		reboot-mode {
768c2ecf20Sopenharmony_ci			compatible = "syscon-reboot-mode";
778c2ecf20Sopenharmony_ci			offset = <0x0>;
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ci			mode-normal	= <0x77665501>;
808c2ecf20Sopenharmony_ci			mode-bootloader	= <0x77665500>;
818c2ecf20Sopenharmony_ci			mode-recovery	= <0x77665502>;
828c2ecf20Sopenharmony_ci		};
838c2ecf20Sopenharmony_ci	};
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci	reg_sys_5v: regulator@0 {
868c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
878c2ecf20Sopenharmony_ci		regulator-name = "SYS_5V";
888c2ecf20Sopenharmony_ci		regulator-min-microvolt = <5000000>;
898c2ecf20Sopenharmony_ci		regulator-max-microvolt = <5000000>;
908c2ecf20Sopenharmony_ci		regulator-boot-on;
918c2ecf20Sopenharmony_ci		regulator-always-on;
928c2ecf20Sopenharmony_ci	};
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci	reg_vdd_3v3: regulator@1 {
958c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
968c2ecf20Sopenharmony_ci		regulator-name = "VDD_3V3";
978c2ecf20Sopenharmony_ci		regulator-min-microvolt = <3300000>;
988c2ecf20Sopenharmony_ci		regulator-max-microvolt = <3300000>;
998c2ecf20Sopenharmony_ci		regulator-boot-on;
1008c2ecf20Sopenharmony_ci		regulator-always-on;
1018c2ecf20Sopenharmony_ci		vin-supply = <&reg_sys_5v>;
1028c2ecf20Sopenharmony_ci	};
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ci	reg_5v_hub: regulator@2 {
1058c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
1068c2ecf20Sopenharmony_ci		regulator-name = "5V_HUB";
1078c2ecf20Sopenharmony_ci		regulator-min-microvolt = <5000000>;
1088c2ecf20Sopenharmony_ci		regulator-max-microvolt = <5000000>;
1098c2ecf20Sopenharmony_ci		regulator-boot-on;
1108c2ecf20Sopenharmony_ci		gpio = <&gpio0 7 0>;
1118c2ecf20Sopenharmony_ci		regulator-always-on;
1128c2ecf20Sopenharmony_ci		vin-supply = <&reg_sys_5v>;
1138c2ecf20Sopenharmony_ci	};
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ci	wl1835_pwrseq: wl1835-pwrseq {
1168c2ecf20Sopenharmony_ci		compatible = "mmc-pwrseq-simple";
1178c2ecf20Sopenharmony_ci		/* WLAN_EN GPIO */
1188c2ecf20Sopenharmony_ci		reset-gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
1198c2ecf20Sopenharmony_ci		clocks = <&pmic>;
1208c2ecf20Sopenharmony_ci		clock-names = "ext_clock";
1218c2ecf20Sopenharmony_ci		post-power-on-delay-ms = <10>;
1228c2ecf20Sopenharmony_ci		power-off-delay-us = <10>;
1238c2ecf20Sopenharmony_ci	};
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ci	leds {
1268c2ecf20Sopenharmony_ci		compatible = "gpio-leds";
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ci		user_led1 {
1298c2ecf20Sopenharmony_ci			label = "green:user1";
1308c2ecf20Sopenharmony_ci			gpios = <&gpio4 0 0>; /* <&gpio_user_led_1>; */
1318c2ecf20Sopenharmony_ci			linux,default-trigger = "heartbeat";
1328c2ecf20Sopenharmony_ci		};
1338c2ecf20Sopenharmony_ci
1348c2ecf20Sopenharmony_ci		user_led2 {
1358c2ecf20Sopenharmony_ci			label = "green:user2";
1368c2ecf20Sopenharmony_ci			gpios = <&gpio4 1 0>; /* <&gpio_user_led_2>; */
1378c2ecf20Sopenharmony_ci			linux,default-trigger = "mmc0";
1388c2ecf20Sopenharmony_ci		};
1398c2ecf20Sopenharmony_ci
1408c2ecf20Sopenharmony_ci		user_led3 {
1418c2ecf20Sopenharmony_ci			label = "green:user3";
1428c2ecf20Sopenharmony_ci			gpios = <&gpio4 2 0>; /* <&gpio_user_led_3>; */
1438c2ecf20Sopenharmony_ci			linux,default-trigger = "mmc1";
1448c2ecf20Sopenharmony_ci		};
1458c2ecf20Sopenharmony_ci
1468c2ecf20Sopenharmony_ci		user_led4 {
1478c2ecf20Sopenharmony_ci			label = "green:user4";
1488c2ecf20Sopenharmony_ci			gpios = <&gpio4 3 0>; /* <&gpio_user_led_4>; */
1498c2ecf20Sopenharmony_ci			panic-indicator;
1508c2ecf20Sopenharmony_ci			linux,default-trigger = "none";
1518c2ecf20Sopenharmony_ci		};
1528c2ecf20Sopenharmony_ci
1538c2ecf20Sopenharmony_ci		wlan_active_led {
1548c2ecf20Sopenharmony_ci			label = "yellow:wlan";
1558c2ecf20Sopenharmony_ci			gpios = <&gpio3 5 0>; /* <&gpio_wlan_active_led>; */
1568c2ecf20Sopenharmony_ci			linux,default-trigger = "phy0tx";
1578c2ecf20Sopenharmony_ci			default-state = "off";
1588c2ecf20Sopenharmony_ci		};
1598c2ecf20Sopenharmony_ci
1608c2ecf20Sopenharmony_ci		bt_active_led {
1618c2ecf20Sopenharmony_ci			label = "blue:bt";
1628c2ecf20Sopenharmony_ci			gpios = <&gpio4 7 0>; /* <&gpio_bt_active_led>; */
1638c2ecf20Sopenharmony_ci			linux,default-trigger = "hci0-power";
1648c2ecf20Sopenharmony_ci			default-state = "off";
1658c2ecf20Sopenharmony_ci		};
1668c2ecf20Sopenharmony_ci	};
1678c2ecf20Sopenharmony_ci
1688c2ecf20Sopenharmony_ci	pmic: pmic@f8000000 {
1698c2ecf20Sopenharmony_ci		compatible = "hisilicon,hi655x-pmic";
1708c2ecf20Sopenharmony_ci		reg = <0x0 0xf8000000 0x0 0x1000>;
1718c2ecf20Sopenharmony_ci		#clock-cells = <0>;
1728c2ecf20Sopenharmony_ci		interrupt-controller;
1738c2ecf20Sopenharmony_ci		#interrupt-cells = <2>;
1748c2ecf20Sopenharmony_ci		pmic-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
1758c2ecf20Sopenharmony_ci
1768c2ecf20Sopenharmony_ci		regulators {
1778c2ecf20Sopenharmony_ci			ldo2: LDO2 {
1788c2ecf20Sopenharmony_ci				regulator-name = "LDO2_2V8";
1798c2ecf20Sopenharmony_ci				regulator-min-microvolt = <2500000>;
1808c2ecf20Sopenharmony_ci				regulator-max-microvolt = <3200000>;
1818c2ecf20Sopenharmony_ci				regulator-enable-ramp-delay = <120>;
1828c2ecf20Sopenharmony_ci			};
1838c2ecf20Sopenharmony_ci
1848c2ecf20Sopenharmony_ci			ldo7: LDO7 {
1858c2ecf20Sopenharmony_ci				regulator-name = "LDO7_SDIO";
1868c2ecf20Sopenharmony_ci				regulator-min-microvolt = <1800000>;
1878c2ecf20Sopenharmony_ci				regulator-max-microvolt = <3300000>;
1888c2ecf20Sopenharmony_ci				regulator-enable-ramp-delay = <120>;
1898c2ecf20Sopenharmony_ci			};
1908c2ecf20Sopenharmony_ci
1918c2ecf20Sopenharmony_ci			ldo10: LDO10 {
1928c2ecf20Sopenharmony_ci				regulator-name = "LDO10_2V85";
1938c2ecf20Sopenharmony_ci				regulator-min-microvolt = <1800000>;
1948c2ecf20Sopenharmony_ci				regulator-max-microvolt = <3000000>;
1958c2ecf20Sopenharmony_ci				regulator-enable-ramp-delay = <360>;
1968c2ecf20Sopenharmony_ci			};
1978c2ecf20Sopenharmony_ci
1988c2ecf20Sopenharmony_ci			ldo13: LDO13 {
1998c2ecf20Sopenharmony_ci				regulator-name = "LDO13_1V8";
2008c2ecf20Sopenharmony_ci				regulator-min-microvolt = <1600000>;
2018c2ecf20Sopenharmony_ci				regulator-max-microvolt = <1950000>;
2028c2ecf20Sopenharmony_ci				regulator-enable-ramp-delay = <120>;
2038c2ecf20Sopenharmony_ci			};
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_ci			ldo14: LDO14 {
2068c2ecf20Sopenharmony_ci				regulator-name = "LDO14_2V8";
2078c2ecf20Sopenharmony_ci				regulator-min-microvolt = <2500000>;
2088c2ecf20Sopenharmony_ci				regulator-max-microvolt = <3200000>;
2098c2ecf20Sopenharmony_ci				regulator-enable-ramp-delay = <120>;
2108c2ecf20Sopenharmony_ci			};
2118c2ecf20Sopenharmony_ci
2128c2ecf20Sopenharmony_ci			ldo15: LDO15 {
2138c2ecf20Sopenharmony_ci				regulator-name = "LDO15_1V8";
2148c2ecf20Sopenharmony_ci				regulator-min-microvolt = <1600000>;
2158c2ecf20Sopenharmony_ci				regulator-max-microvolt = <1950000>;
2168c2ecf20Sopenharmony_ci				regulator-boot-on;
2178c2ecf20Sopenharmony_ci				regulator-always-on;
2188c2ecf20Sopenharmony_ci				regulator-enable-ramp-delay = <120>;
2198c2ecf20Sopenharmony_ci			};
2208c2ecf20Sopenharmony_ci
2218c2ecf20Sopenharmony_ci			ldo17: LDO17 {
2228c2ecf20Sopenharmony_ci				regulator-name = "LDO17_2V5";
2238c2ecf20Sopenharmony_ci				regulator-min-microvolt = <2500000>;
2248c2ecf20Sopenharmony_ci				regulator-max-microvolt = <3200000>;
2258c2ecf20Sopenharmony_ci				regulator-enable-ramp-delay = <120>;
2268c2ecf20Sopenharmony_ci			};
2278c2ecf20Sopenharmony_ci
2288c2ecf20Sopenharmony_ci			ldo19: LDO19 {
2298c2ecf20Sopenharmony_ci				regulator-name = "LDO19_3V0";
2308c2ecf20Sopenharmony_ci				regulator-min-microvolt = <1800000>;
2318c2ecf20Sopenharmony_ci				regulator-max-microvolt = <3000000>;
2328c2ecf20Sopenharmony_ci				regulator-enable-ramp-delay = <360>;
2338c2ecf20Sopenharmony_ci			};
2348c2ecf20Sopenharmony_ci
2358c2ecf20Sopenharmony_ci			ldo21: LDO21 {
2368c2ecf20Sopenharmony_ci				regulator-name = "LDO21_1V8";
2378c2ecf20Sopenharmony_ci				regulator-min-microvolt = <1650000>;
2388c2ecf20Sopenharmony_ci				regulator-max-microvolt = <2000000>;
2398c2ecf20Sopenharmony_ci				regulator-always-on;
2408c2ecf20Sopenharmony_ci				regulator-enable-ramp-delay = <120>;
2418c2ecf20Sopenharmony_ci			};
2428c2ecf20Sopenharmony_ci
2438c2ecf20Sopenharmony_ci			ldo22: LDO22 {
2448c2ecf20Sopenharmony_ci				regulator-name = "LDO22_1V2";
2458c2ecf20Sopenharmony_ci				regulator-min-microvolt = <900000>;
2468c2ecf20Sopenharmony_ci				regulator-max-microvolt = <1200000>;
2478c2ecf20Sopenharmony_ci				regulator-boot-on;
2488c2ecf20Sopenharmony_ci				regulator-always-on;
2498c2ecf20Sopenharmony_ci				regulator-enable-ramp-delay = <120>;
2508c2ecf20Sopenharmony_ci			};
2518c2ecf20Sopenharmony_ci		};
2528c2ecf20Sopenharmony_ci	};
2538c2ecf20Sopenharmony_ci
2548c2ecf20Sopenharmony_ci	firmware {
2558c2ecf20Sopenharmony_ci		optee {
2568c2ecf20Sopenharmony_ci			compatible = "linaro,optee-tz";
2578c2ecf20Sopenharmony_ci			method = "smc";
2588c2ecf20Sopenharmony_ci		};
2598c2ecf20Sopenharmony_ci	};
2608c2ecf20Sopenharmony_ci
2618c2ecf20Sopenharmony_ci	sound_card {
2628c2ecf20Sopenharmony_ci		compatible = "audio-graph-card";
2638c2ecf20Sopenharmony_ci		dais = <&i2s0_port0>;
2648c2ecf20Sopenharmony_ci	};
2658c2ecf20Sopenharmony_ci};
2668c2ecf20Sopenharmony_ci
2678c2ecf20Sopenharmony_ci&uart1 {
2688c2ecf20Sopenharmony_ci	assigned-clocks = <&sys_ctrl HI6220_UART1_SRC>;
2698c2ecf20Sopenharmony_ci	assigned-clock-rates = <150000000>;
2708c2ecf20Sopenharmony_ci	status = "okay";
2718c2ecf20Sopenharmony_ci
2728c2ecf20Sopenharmony_ci	bluetooth {
2738c2ecf20Sopenharmony_ci		compatible = "ti,wl1835-st";
2748c2ecf20Sopenharmony_ci		enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
2758c2ecf20Sopenharmony_ci		clocks = <&pmic>;
2768c2ecf20Sopenharmony_ci		clock-names = "ext_clock";
2778c2ecf20Sopenharmony_ci	};
2788c2ecf20Sopenharmony_ci};
2798c2ecf20Sopenharmony_ci
2808c2ecf20Sopenharmony_ci&uart2 {
2818c2ecf20Sopenharmony_ci	status = "okay";
2828c2ecf20Sopenharmony_ci	label = "LS-UART0";
2838c2ecf20Sopenharmony_ci};
2848c2ecf20Sopenharmony_ci
2858c2ecf20Sopenharmony_ci&uart3 {
2868c2ecf20Sopenharmony_ci	status = "okay";
2878c2ecf20Sopenharmony_ci	label = "LS-UART1";
2888c2ecf20Sopenharmony_ci};
2898c2ecf20Sopenharmony_ci
2908c2ecf20Sopenharmony_ci&ade {
2918c2ecf20Sopenharmony_ci	status = "okay";
2928c2ecf20Sopenharmony_ci};
2938c2ecf20Sopenharmony_ci
2948c2ecf20Sopenharmony_ci&dsi {
2958c2ecf20Sopenharmony_ci	status = "okay";
2968c2ecf20Sopenharmony_ci
2978c2ecf20Sopenharmony_ci	ports {
2988c2ecf20Sopenharmony_ci		/* 1 for output port */
2998c2ecf20Sopenharmony_ci		port@1 {
3008c2ecf20Sopenharmony_ci			reg = <1>;
3018c2ecf20Sopenharmony_ci
3028c2ecf20Sopenharmony_ci			dsi_out0: endpoint@0 {
3038c2ecf20Sopenharmony_ci				remote-endpoint = <&adv7533_in>;
3048c2ecf20Sopenharmony_ci			};
3058c2ecf20Sopenharmony_ci		};
3068c2ecf20Sopenharmony_ci	};
3078c2ecf20Sopenharmony_ci};
3088c2ecf20Sopenharmony_ci
3098c2ecf20Sopenharmony_ci&dwmmc_0 {
3108c2ecf20Sopenharmony_ci	cap-mmc-highspeed;
3118c2ecf20Sopenharmony_ci	non-removable;
3128c2ecf20Sopenharmony_ci	bus-width = <0x8>;
3138c2ecf20Sopenharmony_ci	vmmc-supply = <&ldo19>;
3148c2ecf20Sopenharmony_ci};
3158c2ecf20Sopenharmony_ci
3168c2ecf20Sopenharmony_ci&dwmmc_1 {
3178c2ecf20Sopenharmony_ci	card-detect-delay = <200>;
3188c2ecf20Sopenharmony_ci	cap-sd-highspeed;
3198c2ecf20Sopenharmony_ci	sd-uhs-sdr12;
3208c2ecf20Sopenharmony_ci	sd-uhs-sdr25;
3218c2ecf20Sopenharmony_ci	sd-uhs-sdr50;
3228c2ecf20Sopenharmony_ci	vqmmc-supply = <&ldo7>;
3238c2ecf20Sopenharmony_ci	vmmc-supply = <&ldo10>;
3248c2ecf20Sopenharmony_ci	bus-width = <0x4>;
3258c2ecf20Sopenharmony_ci	disable-wp;
3268c2ecf20Sopenharmony_ci	cd-gpios = <&gpio1 0 1>;
3278c2ecf20Sopenharmony_ci};
3288c2ecf20Sopenharmony_ci
3298c2ecf20Sopenharmony_ci&dwmmc_2 {
3308c2ecf20Sopenharmony_ci	bus-width = <0x4>;
3318c2ecf20Sopenharmony_ci	non-removable;
3328c2ecf20Sopenharmony_ci	cap-power-off-card;
3338c2ecf20Sopenharmony_ci	vmmc-supply = <&reg_vdd_3v3>;
3348c2ecf20Sopenharmony_ci	mmc-pwrseq = <&wl1835_pwrseq>;
3358c2ecf20Sopenharmony_ci
3368c2ecf20Sopenharmony_ci	#address-cells = <0x1>;
3378c2ecf20Sopenharmony_ci	#size-cells = <0x0>;
3388c2ecf20Sopenharmony_ci	wlcore: wlcore@2 {
3398c2ecf20Sopenharmony_ci		compatible = "ti,wl1835";
3408c2ecf20Sopenharmony_ci		reg = <2>;	/* sdio func num */
3418c2ecf20Sopenharmony_ci		/* WL_IRQ, WL_HOST_WAKE_GPIO1_3 */
3428c2ecf20Sopenharmony_ci		interrupt-parent = <&gpio1>;
3438c2ecf20Sopenharmony_ci		interrupts = <3 IRQ_TYPE_EDGE_RISING>;
3448c2ecf20Sopenharmony_ci	};
3458c2ecf20Sopenharmony_ci};
3468c2ecf20Sopenharmony_ci
3478c2ecf20Sopenharmony_ci/*
3488c2ecf20Sopenharmony_ci * Legend: proper name = the GPIO line is used as GPIO
3498c2ecf20Sopenharmony_ci *         NC = not connected (not routed from the SoC)
3508c2ecf20Sopenharmony_ci *         "[PER]" = pin is muxed for peripheral (not GPIO)
3518c2ecf20Sopenharmony_ci *         "" = no idea, schematic doesn't say, could be
3528c2ecf20Sopenharmony_ci *              unrouted (not connected to any external pin)
3538c2ecf20Sopenharmony_ci *         LSEC = Low Speed External Connector
3548c2ecf20Sopenharmony_ci *         HSEC = High Speed External Connector
3558c2ecf20Sopenharmony_ci *
3568c2ecf20Sopenharmony_ci * Pin assignments taken from LeMaker and CircuitCo Schematics
3578c2ecf20Sopenharmony_ci * Rev A1.
3588c2ecf20Sopenharmony_ci *
3598c2ecf20Sopenharmony_ci * For the lines routed to the external connectors the
3608c2ecf20Sopenharmony_ci * lines are named after the 96Boards CE Specification 1.0,
3618c2ecf20Sopenharmony_ci * Appendix "Expansion Connector Signal Description".
3628c2ecf20Sopenharmony_ci *
3638c2ecf20Sopenharmony_ci * When the 96Board naming of a line and the schematic name of
3648c2ecf20Sopenharmony_ci * the same line are in conflict, the 96Board specification
3658c2ecf20Sopenharmony_ci * takes precedence, which means that the external UART on the
3668c2ecf20Sopenharmony_ci * LSEC is named UART0 while the schematic and SoC names this
3678c2ecf20Sopenharmony_ci * UART2. This is only for the informational lines i.e. "[FOO]",
3688c2ecf20Sopenharmony_ci * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only
3698c2ecf20Sopenharmony_ci * ones actually used for GPIO.
3708c2ecf20Sopenharmony_ci */
3718c2ecf20Sopenharmony_ci&gpio0 {
3728c2ecf20Sopenharmony_ci	gpio-line-names = "PWR_HOLD", "DSI_SEL",
3738c2ecf20Sopenharmony_ci	"USB_HUB_RESET_N", "USB_SEL", "HDMI_PD", "WL_REG_ON",
3748c2ecf20Sopenharmony_ci	"PWRON_DET", "5V_HUB_EN";
3758c2ecf20Sopenharmony_ci};
3768c2ecf20Sopenharmony_ci
3778c2ecf20Sopenharmony_ci&gpio1 {
3788c2ecf20Sopenharmony_ci	gpio-line-names = "SD_DET", "HDMI_INT", "PMU_IRQ_N",
3798c2ecf20Sopenharmony_ci	"WL_HOST_WAKE", "NC", "NC", "NC", "BT_REG_ON";
3808c2ecf20Sopenharmony_ci};
3818c2ecf20Sopenharmony_ci
3828c2ecf20Sopenharmony_ci&gpio2 {
3838c2ecf20Sopenharmony_ci	gpio-line-names =
3848c2ecf20Sopenharmony_ci		"GPIO-A", /* LSEC Pin 23: GPIO2_0 */
3858c2ecf20Sopenharmony_ci		"GPIO-B", /* LSEC Pin 24: GPIO2_1 */
3868c2ecf20Sopenharmony_ci		"GPIO-C", /* LSEC Pin 25: GPIO2_2 */
3878c2ecf20Sopenharmony_ci		"GPIO-D", /* LSEC Pin 26: GPIO2_3 */
3888c2ecf20Sopenharmony_ci		"GPIO-E", /* LSEC Pin 27: GPIO2_4 */
3898c2ecf20Sopenharmony_ci		"USB_ID_DET", "USB_VBUS_DET",
3908c2ecf20Sopenharmony_ci		"GPIO-H"; /* LSEC Pin 30: GPIO2_7 */
3918c2ecf20Sopenharmony_ci};
3928c2ecf20Sopenharmony_ci
3938c2ecf20Sopenharmony_ci&gpio3 {
3948c2ecf20Sopenharmony_ci	gpio-line-names = "GPIO3_0", "NC", "NC", "", "NC", "",
3958c2ecf20Sopenharmony_ci	"WLAN_ACTIVE", "NC", "NC";
3968c2ecf20Sopenharmony_ci};
3978c2ecf20Sopenharmony_ci
3988c2ecf20Sopenharmony_ci&gpio4 {
3998c2ecf20Sopenharmony_ci	gpio-line-names = "USER_LED1", "USER_LED2", "USER_LED3",
4008c2ecf20Sopenharmony_ci	"USER_LED4", "SD_SEL", "NC", "NC", "BT_ACTIVE";
4018c2ecf20Sopenharmony_ci};
4028c2ecf20Sopenharmony_ci
4038c2ecf20Sopenharmony_ci&gpio5 {
4048c2ecf20Sopenharmony_ci	gpio-line-names = "NC", "NC",
4058c2ecf20Sopenharmony_ci	"[UART1_RxD]", /* LSEC Pin 11: UART3_RX */
4068c2ecf20Sopenharmony_ci	"[UART1_TxD]", /* LSEC Pin 13: UART3_TX */
4078c2ecf20Sopenharmony_ci	"[AUX_SSI1]", "NC",
4088c2ecf20Sopenharmony_ci	"[PCM_CLK]", /* LSEC Pin 18: MODEM_PCM_XCLK */
4098c2ecf20Sopenharmony_ci	"[PCM_FS]"; /* LSEC Pin 16: MODEM_PCM_XFS */
4108c2ecf20Sopenharmony_ci};
4118c2ecf20Sopenharmony_ci
4128c2ecf20Sopenharmony_ci&gpio6 {
4138c2ecf20Sopenharmony_ci	gpio-line-names =
4148c2ecf20Sopenharmony_ci	"[SPI0_DIN]", /* Pin 10: SPI0_DI */
4158c2ecf20Sopenharmony_ci	"[SPI0_DOUT]", /* Pin 14: SPI0_DO */
4168c2ecf20Sopenharmony_ci	"[SPI0_CS]", /* Pin 12: SPI0_CS_N */
4178c2ecf20Sopenharmony_ci	"[SPI0_SCLK]", /* Pin 8: SPI0_SCLK */
4188c2ecf20Sopenharmony_ci	"NC", "NC", "NC",
4198c2ecf20Sopenharmony_ci	"GPIO-G"; /* Pin 29: GPIO6_7_DSI_TE0 */
4208c2ecf20Sopenharmony_ci};
4218c2ecf20Sopenharmony_ci
4228c2ecf20Sopenharmony_ci&gpio7 {
4238c2ecf20Sopenharmony_ci	gpio-line-names = "NC", "NC", "NC", "NC",
4248c2ecf20Sopenharmony_ci	"[PCM_DI]", /* Pin 22: MODEM_PCM_DI */
4258c2ecf20Sopenharmony_ci	"[PCM_DO]", /* Pin 20: MODEM_PCM_DO */
4268c2ecf20Sopenharmony_ci	"NC", "NC";
4278c2ecf20Sopenharmony_ci};
4288c2ecf20Sopenharmony_ci
4298c2ecf20Sopenharmony_ci&gpio8 {
4308c2ecf20Sopenharmony_ci	gpio-line-names = "NC", "[CEC_CLK_19_2MHZ]", "NC",
4318c2ecf20Sopenharmony_ci	"", "", "", "", "", "";
4328c2ecf20Sopenharmony_ci};
4338c2ecf20Sopenharmony_ci
4348c2ecf20Sopenharmony_ci&gpio9 {
4358c2ecf20Sopenharmony_ci	gpio-line-names = "",
4368c2ecf20Sopenharmony_ci	"GPIO-J", /* LSEC Pin 32: ISP_PWDN0_GPIO9_1 */
4378c2ecf20Sopenharmony_ci	"GPIO-L", /* LSEC Pin 34: ISP_PWDN1_GPIO9_2 */
4388c2ecf20Sopenharmony_ci	"NC", "NC", "NC", "NC", "[ISP_CCLK0]";
4398c2ecf20Sopenharmony_ci};
4408c2ecf20Sopenharmony_ci
4418c2ecf20Sopenharmony_ci&gpio10 {
4428c2ecf20Sopenharmony_ci	gpio-line-names = "BOOT_SEL",
4438c2ecf20Sopenharmony_ci	"[ISP_CCLK1]",
4448c2ecf20Sopenharmony_ci	"GPIO-I", /* LSEC Pin 31: ISP_RSTB0_GPIO10_2 */
4458c2ecf20Sopenharmony_ci	"GPIO-K", /* LSEC Pin 33: ISP_RSTB1_GPIO10_3 */
4468c2ecf20Sopenharmony_ci	"NC", "NC",
4478c2ecf20Sopenharmony_ci	"[I2C2_SDA]", /* HSEC Pin 34: ISP0_SDA */
4488c2ecf20Sopenharmony_ci	"[I2C2_SCL]"; /* HSEC Pin 32: ISP0_SCL */
4498c2ecf20Sopenharmony_ci};
4508c2ecf20Sopenharmony_ci
4518c2ecf20Sopenharmony_ci&gpio11 {
4528c2ecf20Sopenharmony_ci	gpio-line-names =
4538c2ecf20Sopenharmony_ci	"[I2C3_SDA]", /* HSEC Pin 38: ISP1_SDA */
4548c2ecf20Sopenharmony_ci	"[I2C3_SCL]", /* HSEC Pin 36: ISP1_SCL */
4558c2ecf20Sopenharmony_ci	"", "NC", "NC", "NC", "", "";
4568c2ecf20Sopenharmony_ci};
4578c2ecf20Sopenharmony_ci
4588c2ecf20Sopenharmony_ci&gpio12 {
4598c2ecf20Sopenharmony_ci	gpio-line-names = "[BT_PCM_XFS]", "[BT_PCM_DI]",
4608c2ecf20Sopenharmony_ci	"[BT_PCM_DO]",
4618c2ecf20Sopenharmony_ci	"NC", "NC", "NC", "NC",
4628c2ecf20Sopenharmony_ci	"GPIO-F"; /* LSEC Pin 28: BL_PWM_GPIO12_7 */
4638c2ecf20Sopenharmony_ci};
4648c2ecf20Sopenharmony_ci
4658c2ecf20Sopenharmony_ci&gpio13 {
4668c2ecf20Sopenharmony_ci	gpio-line-names = "[UART0_RX]", "[UART0_TX]",
4678c2ecf20Sopenharmony_ci	"[BT_UART1_CTS]", "[BT_UART1_RTS]",
4688c2ecf20Sopenharmony_ci	"[BT_UART1_RX]", "[BT_UART1_TX]",
4698c2ecf20Sopenharmony_ci	"[UART0_CTS]", /* LSEC Pin 3: UART2_CTS_N */
4708c2ecf20Sopenharmony_ci	"[UART0_RTS]"; /* LSEC Pin 9: UART2_RTS_N */
4718c2ecf20Sopenharmony_ci};
4728c2ecf20Sopenharmony_ci
4738c2ecf20Sopenharmony_ci&gpio14 {
4748c2ecf20Sopenharmony_ci	gpio-line-names =
4758c2ecf20Sopenharmony_ci	"[UART0_RxD]", /* LSEC Pin 7: UART2_RX */
4768c2ecf20Sopenharmony_ci	"[UART0_TxD]", /* LSEC Pin 5: UART2_TX */
4778c2ecf20Sopenharmony_ci	"[I2C0_SCL]", /* LSEC Pin 15: I2C0_SCL */
4788c2ecf20Sopenharmony_ci	"[I2C0_SDA]", /* LSEC Pin 17: I2C0_SDA */
4798c2ecf20Sopenharmony_ci	"[I2C1_SCL]", /* LSEC Pin 19: I2C1_SCL */
4808c2ecf20Sopenharmony_ci	"[I2C1_SDA]", /* LSEC Pin 21: I2C1_SDA */
4818c2ecf20Sopenharmony_ci	"[I2C2_SCL]", "[I2C2_SDA]";
4828c2ecf20Sopenharmony_ci};
4838c2ecf20Sopenharmony_ci
4848c2ecf20Sopenharmony_ci&gpio15 {
4858c2ecf20Sopenharmony_ci	gpio-line-names = "", "", "", "", "", "", "NC", "";
4868c2ecf20Sopenharmony_ci};
4878c2ecf20Sopenharmony_ci
4888c2ecf20Sopenharmony_ci/* GPIO blocks 16 thru 19 do not appear to be routed to pins */
4898c2ecf20Sopenharmony_ci
4908c2ecf20Sopenharmony_ci
4918c2ecf20Sopenharmony_ci&i2c0 {
4928c2ecf20Sopenharmony_ci	status = "okay";
4938c2ecf20Sopenharmony_ci};
4948c2ecf20Sopenharmony_ci
4958c2ecf20Sopenharmony_ci&i2c1 {
4968c2ecf20Sopenharmony_ci	status = "okay";
4978c2ecf20Sopenharmony_ci};
4988c2ecf20Sopenharmony_ci
4998c2ecf20Sopenharmony_ci&i2c2 {
5008c2ecf20Sopenharmony_ci	#address-cells = <1>;
5018c2ecf20Sopenharmony_ci	#size-cells = <0>;
5028c2ecf20Sopenharmony_ci	status = "okay";
5038c2ecf20Sopenharmony_ci
5048c2ecf20Sopenharmony_ci	adv7533: adv7533@39 {
5058c2ecf20Sopenharmony_ci		compatible = "adi,adv7533";
5068c2ecf20Sopenharmony_ci		reg = <0x39>;
5078c2ecf20Sopenharmony_ci		interrupt-parent = <&gpio1>;
5088c2ecf20Sopenharmony_ci		interrupts = <1 2>;
5098c2ecf20Sopenharmony_ci		pd-gpios = <&gpio0 4 0>;
5108c2ecf20Sopenharmony_ci		adi,dsi-lanes = <4>;
5118c2ecf20Sopenharmony_ci		#sound-dai-cells = <0>;
5128c2ecf20Sopenharmony_ci
5138c2ecf20Sopenharmony_ci		ports {
5148c2ecf20Sopenharmony_ci			#address-cells = <1>;
5158c2ecf20Sopenharmony_ci			#size-cells = <0>;
5168c2ecf20Sopenharmony_ci			port@0 {
5178c2ecf20Sopenharmony_ci				adv7533_in: endpoint {
5188c2ecf20Sopenharmony_ci					remote-endpoint = <&dsi_out0>;
5198c2ecf20Sopenharmony_ci				};
5208c2ecf20Sopenharmony_ci			};
5218c2ecf20Sopenharmony_ci			port@2 {
5228c2ecf20Sopenharmony_ci				reg = <2>;
5238c2ecf20Sopenharmony_ci				codec_endpoint: endpoint {
5248c2ecf20Sopenharmony_ci					remote-endpoint = <&i2s0_cpu_endpoint>;
5258c2ecf20Sopenharmony_ci				};
5268c2ecf20Sopenharmony_ci			};
5278c2ecf20Sopenharmony_ci		};
5288c2ecf20Sopenharmony_ci	};
5298c2ecf20Sopenharmony_ci};
5308c2ecf20Sopenharmony_ci
5318c2ecf20Sopenharmony_ci&i2s0 {
5328c2ecf20Sopenharmony_ci
5338c2ecf20Sopenharmony_ci	ports {
5348c2ecf20Sopenharmony_ci		i2s0_port0: port@0 {
5358c2ecf20Sopenharmony_ci			i2s0_cpu_endpoint: endpoint {
5368c2ecf20Sopenharmony_ci				remote-endpoint = <&codec_endpoint>;
5378c2ecf20Sopenharmony_ci				dai-format = "i2s";
5388c2ecf20Sopenharmony_ci			};
5398c2ecf20Sopenharmony_ci		};
5408c2ecf20Sopenharmony_ci	};
5418c2ecf20Sopenharmony_ci};
5428c2ecf20Sopenharmony_ci
5438c2ecf20Sopenharmony_ci&spi0 {
5448c2ecf20Sopenharmony_ci	status = "okay";
5458c2ecf20Sopenharmony_ci};
546