18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Google Gru-scarlet board device tree source 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright 2018 Google, Inc 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include "rk3399-gru.dtsi" 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci/{ 118c2ecf20Sopenharmony_ci /* Power tree */ 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci /* ppvar_sys children, sorted by name */ 148c2ecf20Sopenharmony_ci pp1250_s3: pp1250-s3 { 158c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 168c2ecf20Sopenharmony_ci regulator-name = "pp1250_s3"; 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci /* EC turns on w/ pp1250_s3_en; always on for AP */ 198c2ecf20Sopenharmony_ci regulator-always-on; 208c2ecf20Sopenharmony_ci regulator-boot-on; 218c2ecf20Sopenharmony_ci regulator-min-microvolt = <1250000>; 228c2ecf20Sopenharmony_ci regulator-max-microvolt = <1250000>; 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci vin-supply = <&ppvar_sys>; 258c2ecf20Sopenharmony_ci }; 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci pp1250_cam: pp1250-dvdd { 288c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 298c2ecf20Sopenharmony_ci regulator-name = "pp1250_dvdd"; 308c2ecf20Sopenharmony_ci pinctrl-names = "default"; 318c2ecf20Sopenharmony_ci pinctrl-0 = <&pp1250_cam_en>; 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci enable-active-high; 348c2ecf20Sopenharmony_ci gpio = <&gpio2 4 GPIO_ACTIVE_HIGH>; 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci /* 740us delay from gpio output high to pp1250 stable, 378c2ecf20Sopenharmony_ci * rounding up to 1ms for safety. 388c2ecf20Sopenharmony_ci */ 398c2ecf20Sopenharmony_ci startup-delay-us = <1000>; 408c2ecf20Sopenharmony_ci vin-supply = <&pp1250_s3>; 418c2ecf20Sopenharmony_ci }; 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci pp900_s0: pp900-s0 { 448c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 458c2ecf20Sopenharmony_ci regulator-name = "pp900_s0"; 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci /* EC turns on w/ pp900_s0_en; always on for AP */ 488c2ecf20Sopenharmony_ci regulator-always-on; 498c2ecf20Sopenharmony_ci regulator-boot-on; 508c2ecf20Sopenharmony_ci regulator-min-microvolt = <900000>; 518c2ecf20Sopenharmony_ci regulator-max-microvolt = <900000>; 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci vin-supply = <&ppvar_sys>; 548c2ecf20Sopenharmony_ci }; 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci ppvarn_lcd: ppvarn-lcd { 578c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 588c2ecf20Sopenharmony_ci regulator-name = "ppvarn_lcd"; 598c2ecf20Sopenharmony_ci pinctrl-names = "default"; 608c2ecf20Sopenharmony_ci pinctrl-0 = <&ppvarn_lcd_en>; 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci enable-active-high; 638c2ecf20Sopenharmony_ci gpio = <&gpio4 28 GPIO_ACTIVE_HIGH>; 648c2ecf20Sopenharmony_ci vin-supply = <&ppvar_sys>; 658c2ecf20Sopenharmony_ci }; 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ci ppvarp_lcd: ppvarp-lcd { 688c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 698c2ecf20Sopenharmony_ci regulator-name = "ppvarp_lcd"; 708c2ecf20Sopenharmony_ci pinctrl-names = "default"; 718c2ecf20Sopenharmony_ci pinctrl-0 = <&ppvarp_lcd_en>; 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ci enable-active-high; 748c2ecf20Sopenharmony_ci gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>; 758c2ecf20Sopenharmony_ci vin-supply = <&ppvar_sys>; 768c2ecf20Sopenharmony_ci }; 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci /* pp1800 children, sorted by name */ 798c2ecf20Sopenharmony_ci pp900_s3: pp900-s3 { 808c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 818c2ecf20Sopenharmony_ci regulator-name = "pp900_s3"; 828c2ecf20Sopenharmony_ci 838c2ecf20Sopenharmony_ci /* EC turns on w/ pp900_s3_en; always on for AP */ 848c2ecf20Sopenharmony_ci regulator-always-on; 858c2ecf20Sopenharmony_ci regulator-boot-on; 868c2ecf20Sopenharmony_ci regulator-min-microvolt = <900000>; 878c2ecf20Sopenharmony_ci regulator-max-microvolt = <900000>; 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ci vin-supply = <&pp1800>; 908c2ecf20Sopenharmony_ci }; 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ci /* EC turns on pp1800_s3_en */ 938c2ecf20Sopenharmony_ci pp1800_s3: pp1800 { 948c2ecf20Sopenharmony_ci }; 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci /* pp3300 children, sorted by name */ 978c2ecf20Sopenharmony_ci pp2800_cam: pp2800-avdd { 988c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 998c2ecf20Sopenharmony_ci regulator-name = "pp2800_avdd"; 1008c2ecf20Sopenharmony_ci pinctrl-names = "default"; 1018c2ecf20Sopenharmony_ci pinctrl-0 = <&pp2800_cam_en>; 1028c2ecf20Sopenharmony_ci 1038c2ecf20Sopenharmony_ci enable-active-high; 1048c2ecf20Sopenharmony_ci gpio = <&gpio2 24 GPIO_ACTIVE_HIGH>; 1058c2ecf20Sopenharmony_ci startup-delay-us = <100>; 1068c2ecf20Sopenharmony_ci vin-supply = <&pp3300>; 1078c2ecf20Sopenharmony_ci }; 1088c2ecf20Sopenharmony_ci 1098c2ecf20Sopenharmony_ci /* EC turns on pp3300_s0_en */ 1108c2ecf20Sopenharmony_ci pp3300_s0: pp3300 { 1118c2ecf20Sopenharmony_ci }; 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ci /* EC turns on pp3300_s3_en */ 1148c2ecf20Sopenharmony_ci pp3300_s3: pp3300 { 1158c2ecf20Sopenharmony_ci }; 1168c2ecf20Sopenharmony_ci 1178c2ecf20Sopenharmony_ci /* 1188c2ecf20Sopenharmony_ci * See b/66922012 1198c2ecf20Sopenharmony_ci * 1208c2ecf20Sopenharmony_ci * This is a hack to make sure the Bluetooth part of the QCA6174A 1218c2ecf20Sopenharmony_ci * is reset at boot by toggling BT_EN. At boot BT_EN is first set 1228c2ecf20Sopenharmony_ci * to low when the bt_3v3 regulator is registered (in disabled 1238c2ecf20Sopenharmony_ci * state). The fake regulator is configured as a supply of the 1248c2ecf20Sopenharmony_ci * wlan_3v3 regulator below. When wlan_3v3 is enabled early in 1258c2ecf20Sopenharmony_ci * the boot process it also enables its supply regulator bt_3v3, 1268c2ecf20Sopenharmony_ci * which changes BT_EN to high. 1278c2ecf20Sopenharmony_ci */ 1288c2ecf20Sopenharmony_ci bt_3v3: bt-3v3 { 1298c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1308c2ecf20Sopenharmony_ci regulator-name = "bt_3v3"; 1318c2ecf20Sopenharmony_ci pinctrl-names = "default"; 1328c2ecf20Sopenharmony_ci pinctrl-0 = <&bt_en_1v8_l>; 1338c2ecf20Sopenharmony_ci 1348c2ecf20Sopenharmony_ci enable-active-high; 1358c2ecf20Sopenharmony_ci gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>; 1368c2ecf20Sopenharmony_ci vin-supply = <&pp3300_s3>; 1378c2ecf20Sopenharmony_ci }; 1388c2ecf20Sopenharmony_ci 1398c2ecf20Sopenharmony_ci wlan_3v3: wlan-3v3 { 1408c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 1418c2ecf20Sopenharmony_ci regulator-name = "wlan_3v3"; 1428c2ecf20Sopenharmony_ci pinctrl-names = "default"; 1438c2ecf20Sopenharmony_ci pinctrl-0 = <&wlan_pd_1v8_l>; 1448c2ecf20Sopenharmony_ci 1458c2ecf20Sopenharmony_ci /* 1468c2ecf20Sopenharmony_ci * The WL_EN pin is driven low when the regulator is 1478c2ecf20Sopenharmony_ci * registered, and transitions to high when the PCIe bus 1488c2ecf20Sopenharmony_ci * is powered up. 1498c2ecf20Sopenharmony_ci */ 1508c2ecf20Sopenharmony_ci enable-active-high; 1518c2ecf20Sopenharmony_ci gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; 1528c2ecf20Sopenharmony_ci 1538c2ecf20Sopenharmony_ci /* 1548c2ecf20Sopenharmony_ci * Require minimum 10ms from power-on (e.g., PD#) to init PCIe. 1558c2ecf20Sopenharmony_ci * TODO (b/64444991): how long to assert PD#? 1568c2ecf20Sopenharmony_ci */ 1578c2ecf20Sopenharmony_ci regulator-enable-ramp-delay = <10000>; 1588c2ecf20Sopenharmony_ci /* See bt_3v3 hack above */ 1598c2ecf20Sopenharmony_ci vin-supply = <&bt_3v3>; 1608c2ecf20Sopenharmony_ci }; 1618c2ecf20Sopenharmony_ci 1628c2ecf20Sopenharmony_ci backlight: backlight { 1638c2ecf20Sopenharmony_ci compatible = "pwm-backlight"; 1648c2ecf20Sopenharmony_ci enable-gpios = <&gpio4 21 GPIO_ACTIVE_HIGH>; 1658c2ecf20Sopenharmony_ci pinctrl-names = "default"; 1668c2ecf20Sopenharmony_ci pinctrl-0 = <&bl_en>; 1678c2ecf20Sopenharmony_ci pwms = <&pwm1 0 1000000 0>; 1688c2ecf20Sopenharmony_ci pwm-delay-us = <10000>; 1698c2ecf20Sopenharmony_ci }; 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ci dmic: dmic { 1728c2ecf20Sopenharmony_ci compatible = "dmic-codec"; 1738c2ecf20Sopenharmony_ci dmicen-gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>; 1748c2ecf20Sopenharmony_ci pinctrl-names = "default"; 1758c2ecf20Sopenharmony_ci pinctrl-0 = <&dmic_en>; 1768c2ecf20Sopenharmony_ci wakeup-delay-ms = <250>; 1778c2ecf20Sopenharmony_ci }; 1788c2ecf20Sopenharmony_ci 1798c2ecf20Sopenharmony_ci gpio_keys: gpio-keys { 1808c2ecf20Sopenharmony_ci compatible = "gpio-keys"; 1818c2ecf20Sopenharmony_ci pinctrl-names = "default"; 1828c2ecf20Sopenharmony_ci pinctrl-0 = <&pen_eject_odl>; 1838c2ecf20Sopenharmony_ci 1848c2ecf20Sopenharmony_ci pen-insert { 1858c2ecf20Sopenharmony_ci label = "Pen Insert"; 1868c2ecf20Sopenharmony_ci /* Insert = low, eject = high */ 1878c2ecf20Sopenharmony_ci gpios = <&gpio1 1 GPIO_ACTIVE_LOW>; 1888c2ecf20Sopenharmony_ci linux,code = <SW_PEN_INSERTED>; 1898c2ecf20Sopenharmony_ci linux,input-type = <EV_SW>; 1908c2ecf20Sopenharmony_ci wakeup-source; 1918c2ecf20Sopenharmony_ci }; 1928c2ecf20Sopenharmony_ci }; 1938c2ecf20Sopenharmony_ci}; 1948c2ecf20Sopenharmony_ci 1958c2ecf20Sopenharmony_ci/* pp900_s0 aliases */ 1968c2ecf20Sopenharmony_cipp900_ddrpll_ap: &pp900_s0 { 1978c2ecf20Sopenharmony_ci}; 1988c2ecf20Sopenharmony_cipp900_pcie: &pp900_s0 { 1998c2ecf20Sopenharmony_ci}; 2008c2ecf20Sopenharmony_cipp900_usb: &pp900_s0 { 2018c2ecf20Sopenharmony_ci}; 2028c2ecf20Sopenharmony_ci 2038c2ecf20Sopenharmony_ci/* pp900_s3 aliases */ 2048c2ecf20Sopenharmony_cipp900_emmcpll: &pp900_s3 { 2058c2ecf20Sopenharmony_ci}; 2068c2ecf20Sopenharmony_ci 2078c2ecf20Sopenharmony_ci/* EC turns on; alias for pp1800_s0 */ 2088c2ecf20Sopenharmony_cipp1800_pcie: &pp1800_s0 { 2098c2ecf20Sopenharmony_ci}; 2108c2ecf20Sopenharmony_ci 2118c2ecf20Sopenharmony_ci/* On scarlet PPVAR(big_cpu, lit_cpu, gpu) need to adjust voltage ranges */ 2128c2ecf20Sopenharmony_ci&ppvar_bigcpu { 2138c2ecf20Sopenharmony_ci ctrl-voltage-range = <800074 1299226>; 2148c2ecf20Sopenharmony_ci regulator-min-microvolt = <800074>; 2158c2ecf20Sopenharmony_ci regulator-max-microvolt = <1299226>; 2168c2ecf20Sopenharmony_ci}; 2178c2ecf20Sopenharmony_ci 2188c2ecf20Sopenharmony_ci&ppvar_bigcpu_pwm { 2198c2ecf20Sopenharmony_ci /* On scarlet ppvar big cpu use pwm3 */ 2208c2ecf20Sopenharmony_ci pwms = <&pwm3 0 3337 0>; 2218c2ecf20Sopenharmony_ci regulator-min-microvolt = <800074>; 2228c2ecf20Sopenharmony_ci regulator-max-microvolt = <1299226>; 2238c2ecf20Sopenharmony_ci}; 2248c2ecf20Sopenharmony_ci 2258c2ecf20Sopenharmony_ci&ppvar_litcpu { 2268c2ecf20Sopenharmony_ci ctrl-voltage-range = <802122 1199620>; 2278c2ecf20Sopenharmony_ci regulator-min-microvolt = <802122>; 2288c2ecf20Sopenharmony_ci regulator-max-microvolt = <1199620>; 2298c2ecf20Sopenharmony_ci}; 2308c2ecf20Sopenharmony_ci 2318c2ecf20Sopenharmony_ci&ppvar_litcpu_pwm { 2328c2ecf20Sopenharmony_ci regulator-min-microvolt = <802122>; 2338c2ecf20Sopenharmony_ci regulator-max-microvolt = <1199620>; 2348c2ecf20Sopenharmony_ci}; 2358c2ecf20Sopenharmony_ci 2368c2ecf20Sopenharmony_ci&ppvar_gpu { 2378c2ecf20Sopenharmony_ci ctrl-voltage-range = <799600 1099600>; 2388c2ecf20Sopenharmony_ci regulator-min-microvolt = <799600>; 2398c2ecf20Sopenharmony_ci regulator-max-microvolt = <1099600>; 2408c2ecf20Sopenharmony_ci}; 2418c2ecf20Sopenharmony_ci 2428c2ecf20Sopenharmony_ci&ppvar_gpu_pwm { 2438c2ecf20Sopenharmony_ci regulator-min-microvolt = <799600>; 2448c2ecf20Sopenharmony_ci regulator-max-microvolt = <1099600>; 2458c2ecf20Sopenharmony_ci}; 2468c2ecf20Sopenharmony_ci 2478c2ecf20Sopenharmony_ci&ppvar_sd_card_io { 2488c2ecf20Sopenharmony_ci states = <1800000 0x0>, <3300000 0x1>; 2498c2ecf20Sopenharmony_ci regulator-max-microvolt = <3300000>; 2508c2ecf20Sopenharmony_ci}; 2518c2ecf20Sopenharmony_ci 2528c2ecf20Sopenharmony_ci&pp3000_sd_slot { 2538c2ecf20Sopenharmony_ci vin-supply = <&pp3300>; 2548c2ecf20Sopenharmony_ci}; 2558c2ecf20Sopenharmony_ci 2568c2ecf20Sopenharmony_ciap_i2c_dig: &i2c2 { 2578c2ecf20Sopenharmony_ci status = "okay"; 2588c2ecf20Sopenharmony_ci 2598c2ecf20Sopenharmony_ci clock-frequency = <400000>; 2608c2ecf20Sopenharmony_ci 2618c2ecf20Sopenharmony_ci /* These are relatively safe rise/fall times. */ 2628c2ecf20Sopenharmony_ci i2c-scl-falling-time-ns = <50>; 2638c2ecf20Sopenharmony_ci i2c-scl-rising-time-ns = <300>; 2648c2ecf20Sopenharmony_ci 2658c2ecf20Sopenharmony_ci digitizer: digitizer@9 { 2668c2ecf20Sopenharmony_ci compatible = "hid-over-i2c"; 2678c2ecf20Sopenharmony_ci reg = <0x9>; 2688c2ecf20Sopenharmony_ci interrupt-parent = <&gpio1>; 2698c2ecf20Sopenharmony_ci interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 2708c2ecf20Sopenharmony_ci hid-descr-addr = <0x1>; 2718c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2728c2ecf20Sopenharmony_ci pinctrl-0 = <&pen_int_odl &pen_reset_l>; 2738c2ecf20Sopenharmony_ci }; 2748c2ecf20Sopenharmony_ci}; 2758c2ecf20Sopenharmony_ci 2768c2ecf20Sopenharmony_ci&ap_i2c_ts { 2778c2ecf20Sopenharmony_ci touchscreen: touchscreen@10 { 2788c2ecf20Sopenharmony_ci compatible = "elan,ekth3500"; 2798c2ecf20Sopenharmony_ci reg = <0x10>; 2808c2ecf20Sopenharmony_ci interrupt-parent = <&gpio1>; 2818c2ecf20Sopenharmony_ci interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 2828c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2838c2ecf20Sopenharmony_ci pinctrl-0 = <&touch_int_l &touch_reset_l>; 2848c2ecf20Sopenharmony_ci reset-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>; 2858c2ecf20Sopenharmony_ci }; 2868c2ecf20Sopenharmony_ci}; 2878c2ecf20Sopenharmony_ci 2888c2ecf20Sopenharmony_cicamera: &i2c7 { 2898c2ecf20Sopenharmony_ci status = "okay"; 2908c2ecf20Sopenharmony_ci 2918c2ecf20Sopenharmony_ci clock-frequency = <400000>; 2928c2ecf20Sopenharmony_ci 2938c2ecf20Sopenharmony_ci /* These are relatively safe rise/fall times; TODO: measure */ 2948c2ecf20Sopenharmony_ci i2c-scl-falling-time-ns = <50>; 2958c2ecf20Sopenharmony_ci i2c-scl-rising-time-ns = <300>; 2968c2ecf20Sopenharmony_ci 2978c2ecf20Sopenharmony_ci /* 24M mclk is shared between world and user cameras */ 2988c2ecf20Sopenharmony_ci pinctrl-0 = <&i2c7_xfer &test_clkout1>; 2998c2ecf20Sopenharmony_ci}; 3008c2ecf20Sopenharmony_ci 3018c2ecf20Sopenharmony_ci&cdn_dp { 3028c2ecf20Sopenharmony_ci extcon = <&usbc_extcon0>; 3038c2ecf20Sopenharmony_ci phys = <&tcphy0_dp>; 3048c2ecf20Sopenharmony_ci}; 3058c2ecf20Sopenharmony_ci 3068c2ecf20Sopenharmony_ci&cpu_alert0 { 3078c2ecf20Sopenharmony_ci temperature = <66000>; 3088c2ecf20Sopenharmony_ci}; 3098c2ecf20Sopenharmony_ci 3108c2ecf20Sopenharmony_ci&cpu_alert1 { 3118c2ecf20Sopenharmony_ci temperature = <71000>; 3128c2ecf20Sopenharmony_ci}; 3138c2ecf20Sopenharmony_ci 3148c2ecf20Sopenharmony_ci&cros_ec { 3158c2ecf20Sopenharmony_ci interrupt-parent = <&gpio1>; 3168c2ecf20Sopenharmony_ci interrupts = <18 IRQ_TYPE_LEVEL_LOW>; 3178c2ecf20Sopenharmony_ci}; 3188c2ecf20Sopenharmony_ci 3198c2ecf20Sopenharmony_ci&cru { 3208c2ecf20Sopenharmony_ci assigned-clocks = 3218c2ecf20Sopenharmony_ci <&cru PLL_GPLL>, <&cru PLL_CPLL>, 3228c2ecf20Sopenharmony_ci <&cru PLL_NPLL>, 3238c2ecf20Sopenharmony_ci <&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>, 3248c2ecf20Sopenharmony_ci <&cru PCLK_PERIHP>, 3258c2ecf20Sopenharmony_ci <&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>, 3268c2ecf20Sopenharmony_ci <&cru PCLK_PERILP0>, <&cru ACLK_CCI>, 3278c2ecf20Sopenharmony_ci <&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>, 3288c2ecf20Sopenharmony_ci <&cru ACLK_VIO>, 3298c2ecf20Sopenharmony_ci <&cru ACLK_GIC_PRE>, 3308c2ecf20Sopenharmony_ci <&cru PCLK_DDR>, 3318c2ecf20Sopenharmony_ci <&cru ACLK_HDCP>; 3328c2ecf20Sopenharmony_ci assigned-clock-rates = 3338c2ecf20Sopenharmony_ci <600000000>, <1600000000>, 3348c2ecf20Sopenharmony_ci <1000000000>, 3358c2ecf20Sopenharmony_ci <150000000>, <75000000>, 3368c2ecf20Sopenharmony_ci <37500000>, 3378c2ecf20Sopenharmony_ci <100000000>, <100000000>, 3388c2ecf20Sopenharmony_ci <50000000>, <800000000>, 3398c2ecf20Sopenharmony_ci <100000000>, <50000000>, 3408c2ecf20Sopenharmony_ci <400000000>, 3418c2ecf20Sopenharmony_ci <200000000>, 3428c2ecf20Sopenharmony_ci <200000000>, 3438c2ecf20Sopenharmony_ci <400000000>; 3448c2ecf20Sopenharmony_ci}; 3458c2ecf20Sopenharmony_ci 3468c2ecf20Sopenharmony_ci&i2c_tunnel { 3478c2ecf20Sopenharmony_ci google,remote-bus = <0>; 3488c2ecf20Sopenharmony_ci}; 3498c2ecf20Sopenharmony_ci 3508c2ecf20Sopenharmony_ci&io_domains { 3518c2ecf20Sopenharmony_ci bt656-supply = <&pp1800_s0>; /* APIO2_VDD; 2a 2b */ 3528c2ecf20Sopenharmony_ci audio-supply = <&pp1800_s0>; /* APIO5_VDD; 3d 4a */ 3538c2ecf20Sopenharmony_ci gpio1830-supply = <&pp1800_s0>; /* APIO4_VDD; 4c 4d */ 3548c2ecf20Sopenharmony_ci}; 3558c2ecf20Sopenharmony_ci 3568c2ecf20Sopenharmony_ci&max98357a { 3578c2ecf20Sopenharmony_ci sdmode-gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>; 3588c2ecf20Sopenharmony_ci}; 3598c2ecf20Sopenharmony_ci 3608c2ecf20Sopenharmony_ci&mipi_dsi { 3618c2ecf20Sopenharmony_ci status = "okay"; 3628c2ecf20Sopenharmony_ci clock-master; 3638c2ecf20Sopenharmony_ci 3648c2ecf20Sopenharmony_ci ports { 3658c2ecf20Sopenharmony_ci mipi_out: port@1 { 3668c2ecf20Sopenharmony_ci reg = <1>; 3678c2ecf20Sopenharmony_ci 3688c2ecf20Sopenharmony_ci mipi_out_panel: endpoint { 3698c2ecf20Sopenharmony_ci remote-endpoint = <&mipi_in_panel>; 3708c2ecf20Sopenharmony_ci }; 3718c2ecf20Sopenharmony_ci }; 3728c2ecf20Sopenharmony_ci }; 3738c2ecf20Sopenharmony_ci 3748c2ecf20Sopenharmony_ci mipi_panel: panel@0 { 3758c2ecf20Sopenharmony_ci /* 2 different panels are used, compatibles are in dts files */ 3768c2ecf20Sopenharmony_ci reg = <0>; 3778c2ecf20Sopenharmony_ci backlight = <&backlight>; 3788c2ecf20Sopenharmony_ci enable-gpios = <&gpio4 25 GPIO_ACTIVE_HIGH>; 3798c2ecf20Sopenharmony_ci pinctrl-names = "default"; 3808c2ecf20Sopenharmony_ci pinctrl-0 = <&display_rst_l>; 3818c2ecf20Sopenharmony_ci 3828c2ecf20Sopenharmony_ci ports { 3838c2ecf20Sopenharmony_ci #address-cells = <1>; 3848c2ecf20Sopenharmony_ci #size-cells = <0>; 3858c2ecf20Sopenharmony_ci 3868c2ecf20Sopenharmony_ci port@0 { 3878c2ecf20Sopenharmony_ci reg = <0>; 3888c2ecf20Sopenharmony_ci 3898c2ecf20Sopenharmony_ci mipi_in_panel: endpoint { 3908c2ecf20Sopenharmony_ci remote-endpoint = <&mipi_out_panel>; 3918c2ecf20Sopenharmony_ci }; 3928c2ecf20Sopenharmony_ci }; 3938c2ecf20Sopenharmony_ci 3948c2ecf20Sopenharmony_ci port@1 { 3958c2ecf20Sopenharmony_ci reg = <1>; 3968c2ecf20Sopenharmony_ci 3978c2ecf20Sopenharmony_ci mipi1_in_panel: endpoint@1 { 3988c2ecf20Sopenharmony_ci remote-endpoint = <&mipi1_out_panel>; 3998c2ecf20Sopenharmony_ci }; 4008c2ecf20Sopenharmony_ci }; 4018c2ecf20Sopenharmony_ci }; 4028c2ecf20Sopenharmony_ci }; 4038c2ecf20Sopenharmony_ci}; 4048c2ecf20Sopenharmony_ci 4058c2ecf20Sopenharmony_ci&mipi_dsi1 { 4068c2ecf20Sopenharmony_ci status = "okay"; 4078c2ecf20Sopenharmony_ci 4088c2ecf20Sopenharmony_ci ports { 4098c2ecf20Sopenharmony_ci mipi1_out: port@1 { 4108c2ecf20Sopenharmony_ci reg = <1>; 4118c2ecf20Sopenharmony_ci 4128c2ecf20Sopenharmony_ci mipi1_out_panel: endpoint { 4138c2ecf20Sopenharmony_ci remote-endpoint = <&mipi1_in_panel>; 4148c2ecf20Sopenharmony_ci }; 4158c2ecf20Sopenharmony_ci }; 4168c2ecf20Sopenharmony_ci }; 4178c2ecf20Sopenharmony_ci}; 4188c2ecf20Sopenharmony_ci 4198c2ecf20Sopenharmony_ci&pcie0 { 4208c2ecf20Sopenharmony_ci ep-gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>; 4218c2ecf20Sopenharmony_ci 4228c2ecf20Sopenharmony_ci /* PERST# asserted in S3 */ 4238c2ecf20Sopenharmony_ci pcie-reset-suspend = <1>; 4248c2ecf20Sopenharmony_ci 4258c2ecf20Sopenharmony_ci vpcie3v3-supply = <&wlan_3v3>; 4268c2ecf20Sopenharmony_ci vpcie1v8-supply = <&pp1800_pcie>; 4278c2ecf20Sopenharmony_ci}; 4288c2ecf20Sopenharmony_ci 4298c2ecf20Sopenharmony_ci&sdmmc { 4308c2ecf20Sopenharmony_ci cd-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; 4318c2ecf20Sopenharmony_ci}; 4328c2ecf20Sopenharmony_ci 4338c2ecf20Sopenharmony_ci&sound { 4348c2ecf20Sopenharmony_ci rockchip,codec = <&max98357a &dmic &codec &cdn_dp>; 4358c2ecf20Sopenharmony_ci}; 4368c2ecf20Sopenharmony_ci 4378c2ecf20Sopenharmony_ci&spi2 { 4388c2ecf20Sopenharmony_ci status = "okay"; 4398c2ecf20Sopenharmony_ci 4408c2ecf20Sopenharmony_ci cr50@0 { 4418c2ecf20Sopenharmony_ci compatible = "google,cr50"; 4428c2ecf20Sopenharmony_ci reg = <0>; 4438c2ecf20Sopenharmony_ci interrupt-parent = <&gpio1>; 4448c2ecf20Sopenharmony_ci interrupts = <17 IRQ_TYPE_EDGE_RISING>; 4458c2ecf20Sopenharmony_ci pinctrl-names = "default"; 4468c2ecf20Sopenharmony_ci pinctrl-0 = <&h1_int_od_l>; 4478c2ecf20Sopenharmony_ci spi-max-frequency = <800000>; 4488c2ecf20Sopenharmony_ci }; 4498c2ecf20Sopenharmony_ci}; 4508c2ecf20Sopenharmony_ci 4518c2ecf20Sopenharmony_ci&usb_host0_ohci { 4528c2ecf20Sopenharmony_ci #address-cells = <1>; 4538c2ecf20Sopenharmony_ci #size-cells = <0>; 4548c2ecf20Sopenharmony_ci 4558c2ecf20Sopenharmony_ci qca_bt: bluetooth@1 { 4568c2ecf20Sopenharmony_ci compatible = "usbcf3,e300", "usb4ca,301a"; 4578c2ecf20Sopenharmony_ci reg = <1>; 4588c2ecf20Sopenharmony_ci pinctrl-names = "default"; 4598c2ecf20Sopenharmony_ci pinctrl-0 = <&bt_host_wake_l>; 4608c2ecf20Sopenharmony_ci interrupt-parent = <&gpio1>; 4618c2ecf20Sopenharmony_ci interrupts = <2 IRQ_TYPE_LEVEL_HIGH>; 4628c2ecf20Sopenharmony_ci interrupt-names = "wakeup"; 4638c2ecf20Sopenharmony_ci }; 4648c2ecf20Sopenharmony_ci}; 4658c2ecf20Sopenharmony_ci 4668c2ecf20Sopenharmony_ci/* PINCTRL OVERRIDES */ 4678c2ecf20Sopenharmony_ci&ec_ap_int_l { 4688c2ecf20Sopenharmony_ci rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>; 4698c2ecf20Sopenharmony_ci}; 4708c2ecf20Sopenharmony_ci 4718c2ecf20Sopenharmony_ci&ap_fw_wp { 4728c2ecf20Sopenharmony_ci rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; 4738c2ecf20Sopenharmony_ci}; 4748c2ecf20Sopenharmony_ci 4758c2ecf20Sopenharmony_ci&bl_en { 4768c2ecf20Sopenharmony_ci rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; 4778c2ecf20Sopenharmony_ci}; 4788c2ecf20Sopenharmony_ci 4798c2ecf20Sopenharmony_ci&bt_host_wake_l { 4808c2ecf20Sopenharmony_ci rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 4818c2ecf20Sopenharmony_ci}; 4828c2ecf20Sopenharmony_ci 4838c2ecf20Sopenharmony_ci&ec_ap_int_l { 4848c2ecf20Sopenharmony_ci rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>; 4858c2ecf20Sopenharmony_ci}; 4868c2ecf20Sopenharmony_ci 4878c2ecf20Sopenharmony_ci&headset_int_l { 4888c2ecf20Sopenharmony_ci rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>; 4898c2ecf20Sopenharmony_ci}; 4908c2ecf20Sopenharmony_ci 4918c2ecf20Sopenharmony_ci&i2s0_8ch_bus { 4928c2ecf20Sopenharmony_ci rockchip,pins = 4938c2ecf20Sopenharmony_ci <3 RK_PD0 1 &pcfg_pull_none_6ma>, 4948c2ecf20Sopenharmony_ci <3 RK_PD1 1 &pcfg_pull_none_6ma>, 4958c2ecf20Sopenharmony_ci <3 RK_PD2 1 &pcfg_pull_none_6ma>, 4968c2ecf20Sopenharmony_ci <3 RK_PD3 1 &pcfg_pull_none_6ma>, 4978c2ecf20Sopenharmony_ci <3 RK_PD7 1 &pcfg_pull_none_6ma>, 4988c2ecf20Sopenharmony_ci <4 RK_PA0 1 &pcfg_pull_none_6ma>; 4998c2ecf20Sopenharmony_ci}; 5008c2ecf20Sopenharmony_ci 5018c2ecf20Sopenharmony_ci/* there is no external pull up, so need to set this pin pull up */ 5028c2ecf20Sopenharmony_ci&sdmmc_cd_pin { 5038c2ecf20Sopenharmony_ci rockchip,pins = <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>; 5048c2ecf20Sopenharmony_ci}; 5058c2ecf20Sopenharmony_ci 5068c2ecf20Sopenharmony_ci&sd_pwr_1800_sel { 5078c2ecf20Sopenharmony_ci rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>; 5088c2ecf20Sopenharmony_ci}; 5098c2ecf20Sopenharmony_ci 5108c2ecf20Sopenharmony_ci&sdmode_en { 5118c2ecf20Sopenharmony_ci rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_down>; 5128c2ecf20Sopenharmony_ci}; 5138c2ecf20Sopenharmony_ci 5148c2ecf20Sopenharmony_ci&touch_reset_l { 5158c2ecf20Sopenharmony_ci rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_down>; 5168c2ecf20Sopenharmony_ci}; 5178c2ecf20Sopenharmony_ci 5188c2ecf20Sopenharmony_ci&touch_int_l { 5198c2ecf20Sopenharmony_ci rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>; 5208c2ecf20Sopenharmony_ci}; 5218c2ecf20Sopenharmony_ci 5228c2ecf20Sopenharmony_ci&pinctrl { 5238c2ecf20Sopenharmony_ci pinctrl-0 = < 5248c2ecf20Sopenharmony_ci &ap_pwroff /* AP will auto-assert this when in S3 */ 5258c2ecf20Sopenharmony_ci &clk_32k /* This pin is always 32k on gru boards */ 5268c2ecf20Sopenharmony_ci &wlan_rf_kill_1v8_l 5278c2ecf20Sopenharmony_ci >; 5288c2ecf20Sopenharmony_ci 5298c2ecf20Sopenharmony_ci pcfg_pull_none_6ma: pcfg-pull-none-6ma { 5308c2ecf20Sopenharmony_ci bias-disable; 5318c2ecf20Sopenharmony_ci drive-strength = <6>; 5328c2ecf20Sopenharmony_ci }; 5338c2ecf20Sopenharmony_ci 5348c2ecf20Sopenharmony_ci camera { 5358c2ecf20Sopenharmony_ci pp1250_cam_en: pp1250-dvdd { 5368c2ecf20Sopenharmony_ci rockchip,pins = <2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; 5378c2ecf20Sopenharmony_ci }; 5388c2ecf20Sopenharmony_ci 5398c2ecf20Sopenharmony_ci pp2800_cam_en: pp2800-avdd { 5408c2ecf20Sopenharmony_ci rockchip,pins = <2 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; 5418c2ecf20Sopenharmony_ci }; 5428c2ecf20Sopenharmony_ci 5438c2ecf20Sopenharmony_ci ucam_rst: ucam_rst { 5448c2ecf20Sopenharmony_ci rockchip,pins = <2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; 5458c2ecf20Sopenharmony_ci }; 5468c2ecf20Sopenharmony_ci 5478c2ecf20Sopenharmony_ci wcam_rst: wcam_rst { 5488c2ecf20Sopenharmony_ci rockchip,pins = <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; 5498c2ecf20Sopenharmony_ci }; 5508c2ecf20Sopenharmony_ci }; 5518c2ecf20Sopenharmony_ci 5528c2ecf20Sopenharmony_ci digitizer { 5538c2ecf20Sopenharmony_ci pen_int_odl: pen-int-odl { 5548c2ecf20Sopenharmony_ci rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; 5558c2ecf20Sopenharmony_ci }; 5568c2ecf20Sopenharmony_ci 5578c2ecf20Sopenharmony_ci pen_reset_l: pen-reset-l { 5588c2ecf20Sopenharmony_ci rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; 5598c2ecf20Sopenharmony_ci }; 5608c2ecf20Sopenharmony_ci }; 5618c2ecf20Sopenharmony_ci 5628c2ecf20Sopenharmony_ci discrete-regulators { 5638c2ecf20Sopenharmony_ci display_rst_l: display-rst-l { 5648c2ecf20Sopenharmony_ci rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_down>; 5658c2ecf20Sopenharmony_ci }; 5668c2ecf20Sopenharmony_ci 5678c2ecf20Sopenharmony_ci ppvarp_lcd_en: ppvarp-lcd-en { 5688c2ecf20Sopenharmony_ci rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; 5698c2ecf20Sopenharmony_ci }; 5708c2ecf20Sopenharmony_ci 5718c2ecf20Sopenharmony_ci ppvarn_lcd_en: ppvarn-lcd-en { 5728c2ecf20Sopenharmony_ci rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; 5738c2ecf20Sopenharmony_ci }; 5748c2ecf20Sopenharmony_ci }; 5758c2ecf20Sopenharmony_ci 5768c2ecf20Sopenharmony_ci dmic { 5778c2ecf20Sopenharmony_ci dmic_en: dmic-en { 5788c2ecf20Sopenharmony_ci rockchip,pins = <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; 5798c2ecf20Sopenharmony_ci }; 5808c2ecf20Sopenharmony_ci }; 5818c2ecf20Sopenharmony_ci 5828c2ecf20Sopenharmony_ci pen { 5838c2ecf20Sopenharmony_ci pen_eject_odl: pen-eject-odl { 5848c2ecf20Sopenharmony_ci rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>; 5858c2ecf20Sopenharmony_ci }; 5868c2ecf20Sopenharmony_ci }; 5878c2ecf20Sopenharmony_ci 5888c2ecf20Sopenharmony_ci tpm { 5898c2ecf20Sopenharmony_ci h1_int_od_l: h1-int-od-l { 5908c2ecf20Sopenharmony_ci rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>; 5918c2ecf20Sopenharmony_ci }; 5928c2ecf20Sopenharmony_ci }; 5938c2ecf20Sopenharmony_ci}; 5948c2ecf20Sopenharmony_ci 5958c2ecf20Sopenharmony_ci&wifi { 5968c2ecf20Sopenharmony_ci bt_en_1v8_l: bt-en-1v8-l { 5978c2ecf20Sopenharmony_ci rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 5988c2ecf20Sopenharmony_ci }; 5998c2ecf20Sopenharmony_ci 6008c2ecf20Sopenharmony_ci wlan_pd_1v8_l: wlan-pd-1v8-l { 6018c2ecf20Sopenharmony_ci rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; 6028c2ecf20Sopenharmony_ci }; 6038c2ecf20Sopenharmony_ci 6048c2ecf20Sopenharmony_ci /* Default pull-up, but just to be clear */ 6058c2ecf20Sopenharmony_ci wlan_rf_kill_1v8_l: wlan-rf-kill-1v8-l { 6068c2ecf20Sopenharmony_ci rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 6078c2ecf20Sopenharmony_ci }; 6088c2ecf20Sopenharmony_ci 6098c2ecf20Sopenharmony_ci wifi_perst_l: wifi-perst-l { 6108c2ecf20Sopenharmony_ci rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; 6118c2ecf20Sopenharmony_ci }; 6128c2ecf20Sopenharmony_ci 6138c2ecf20Sopenharmony_ci wlan_host_wake_l: wlan-host-wake-l { 6148c2ecf20Sopenharmony_ci rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; 6158c2ecf20Sopenharmony_ci }; 6168c2ecf20Sopenharmony_ci}; 617