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 = <®_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 = <®_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 = <®_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