162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Google Gru-Chromebook shared properties 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright 2018 Google, Inc 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#include "rk3399-gru.dtsi" 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci/ { 1162306a36Sopenharmony_ci pp900_ap: pp900-ap { 1262306a36Sopenharmony_ci compatible = "regulator-fixed"; 1362306a36Sopenharmony_ci regulator-name = "pp900_ap"; 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci /* EC turns on w/ pp900_ap_en; always on for AP */ 1662306a36Sopenharmony_ci regulator-always-on; 1762306a36Sopenharmony_ci regulator-boot-on; 1862306a36Sopenharmony_ci regulator-min-microvolt = <900000>; 1962306a36Sopenharmony_ci regulator-max-microvolt = <900000>; 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci vin-supply = <&ppvar_sys>; 2262306a36Sopenharmony_ci }; 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci /* EC turns on w/ pp900_usb_en */ 2562306a36Sopenharmony_ci pp900_usb: pp900-ap { 2662306a36Sopenharmony_ci }; 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci /* EC turns on w/ pp900_pcie_en */ 2962306a36Sopenharmony_ci pp900_pcie: pp900-ap { 3062306a36Sopenharmony_ci }; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci pp3000: pp3000 { 3362306a36Sopenharmony_ci compatible = "regulator-fixed"; 3462306a36Sopenharmony_ci regulator-name = "pp3000"; 3562306a36Sopenharmony_ci pinctrl-names = "default"; 3662306a36Sopenharmony_ci pinctrl-0 = <&pp3000_en>; 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci enable-active-high; 3962306a36Sopenharmony_ci gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>; 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci regulator-always-on; 4262306a36Sopenharmony_ci regulator-boot-on; 4362306a36Sopenharmony_ci regulator-min-microvolt = <3000000>; 4462306a36Sopenharmony_ci regulator-max-microvolt = <3000000>; 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci vin-supply = <&ppvar_sys>; 4762306a36Sopenharmony_ci }; 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci ppvar_centerlogic_pwm: ppvar-centerlogic-pwm { 5062306a36Sopenharmony_ci compatible = "pwm-regulator"; 5162306a36Sopenharmony_ci regulator-name = "ppvar_centerlogic_pwm"; 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci pwms = <&pwm3 0 3337 0>; 5462306a36Sopenharmony_ci pwm-supply = <&ppvar_sys>; 5562306a36Sopenharmony_ci pwm-dutycycle-range = <100 0>; 5662306a36Sopenharmony_ci pwm-dutycycle-unit = <100>; 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci /* EC turns on w/ ppvar_centerlogic_en; always on for AP */ 5962306a36Sopenharmony_ci regulator-always-on; 6062306a36Sopenharmony_ci regulator-boot-on; 6162306a36Sopenharmony_ci regulator-min-microvolt = <799434>; 6262306a36Sopenharmony_ci regulator-max-microvolt = <1049925>; 6362306a36Sopenharmony_ci }; 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci ppvar_centerlogic: ppvar-centerlogic { 6662306a36Sopenharmony_ci compatible = "vctrl-regulator"; 6762306a36Sopenharmony_ci regulator-name = "ppvar_centerlogic"; 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci regulator-min-microvolt = <799434>; 7062306a36Sopenharmony_ci regulator-max-microvolt = <1049925>; 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci ctrl-supply = <&ppvar_centerlogic_pwm>; 7362306a36Sopenharmony_ci ctrl-voltage-range = <799434 1049925>; 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci regulator-settling-time-up-us = <378>; 7662306a36Sopenharmony_ci min-slew-down-rate = <225>; 7762306a36Sopenharmony_ci ovp-threshold-percent = <16>; 7862306a36Sopenharmony_ci }; 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci /* Schematics call this PPVAR even though it's fixed */ 8162306a36Sopenharmony_ci ppvar_logic: ppvar-logic { 8262306a36Sopenharmony_ci compatible = "regulator-fixed"; 8362306a36Sopenharmony_ci regulator-name = "ppvar_logic"; 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci /* EC turns on w/ ppvar_logic_en; always on for AP */ 8662306a36Sopenharmony_ci regulator-always-on; 8762306a36Sopenharmony_ci regulator-boot-on; 8862306a36Sopenharmony_ci regulator-min-microvolt = <900000>; 8962306a36Sopenharmony_ci regulator-max-microvolt = <900000>; 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci vin-supply = <&ppvar_sys>; 9262306a36Sopenharmony_ci }; 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci pp1800_audio: pp1800-audio { 9562306a36Sopenharmony_ci compatible = "regulator-fixed"; 9662306a36Sopenharmony_ci regulator-name = "pp1800_audio"; 9762306a36Sopenharmony_ci pinctrl-names = "default"; 9862306a36Sopenharmony_ci pinctrl-0 = <&pp1800_audio_en>; 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci enable-active-high; 10162306a36Sopenharmony_ci gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>; 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci regulator-always-on; 10462306a36Sopenharmony_ci regulator-boot-on; 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ci vin-supply = <&pp1800>; 10762306a36Sopenharmony_ci }; 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ci /* gpio is shared with pp3300_wifi_bt */ 11062306a36Sopenharmony_ci pp1800_pcie: pp1800-pcie { 11162306a36Sopenharmony_ci compatible = "regulator-fixed"; 11262306a36Sopenharmony_ci regulator-name = "pp1800_pcie"; 11362306a36Sopenharmony_ci pinctrl-names = "default"; 11462306a36Sopenharmony_ci pinctrl-0 = <&wlan_module_pd_l>; 11562306a36Sopenharmony_ci 11662306a36Sopenharmony_ci enable-active-high; 11762306a36Sopenharmony_ci gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ci /* 12062306a36Sopenharmony_ci * Need to wait 1ms + ramp-up time before we can power on WiFi. 12162306a36Sopenharmony_ci * This has been approximated as 8ms total. 12262306a36Sopenharmony_ci */ 12362306a36Sopenharmony_ci regulator-enable-ramp-delay = <8000>; 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci vin-supply = <&pp1800>; 12662306a36Sopenharmony_ci }; 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ci /* Always on; plain and simple */ 12962306a36Sopenharmony_ci pp3000_ap: pp3000_emmc: pp3000 { 13062306a36Sopenharmony_ci }; 13162306a36Sopenharmony_ci 13262306a36Sopenharmony_ci pp1500_ap_io: pp1500-ap-io { 13362306a36Sopenharmony_ci compatible = "regulator-fixed"; 13462306a36Sopenharmony_ci regulator-name = "pp1500_ap_io"; 13562306a36Sopenharmony_ci pinctrl-names = "default"; 13662306a36Sopenharmony_ci pinctrl-0 = <&pp1500_en>; 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_ci enable-active-high; 13962306a36Sopenharmony_ci gpio = <&gpio0 10 GPIO_ACTIVE_HIGH>; 14062306a36Sopenharmony_ci 14162306a36Sopenharmony_ci regulator-always-on; 14262306a36Sopenharmony_ci regulator-boot-on; 14362306a36Sopenharmony_ci regulator-min-microvolt = <1500000>; 14462306a36Sopenharmony_ci regulator-max-microvolt = <1500000>; 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci vin-supply = <&pp1800>; 14762306a36Sopenharmony_ci }; 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ci pp3300_disp: pp3300-disp { 15062306a36Sopenharmony_ci compatible = "regulator-fixed"; 15162306a36Sopenharmony_ci regulator-name = "pp3300_disp"; 15262306a36Sopenharmony_ci pinctrl-names = "default"; 15362306a36Sopenharmony_ci pinctrl-0 = <&pp3300_disp_en>; 15462306a36Sopenharmony_ci 15562306a36Sopenharmony_ci enable-active-high; 15662306a36Sopenharmony_ci gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>; 15762306a36Sopenharmony_ci 15862306a36Sopenharmony_ci startup-delay-us = <2000>; 15962306a36Sopenharmony_ci vin-supply = <&pp3300>; 16062306a36Sopenharmony_ci }; 16162306a36Sopenharmony_ci 16262306a36Sopenharmony_ci /* EC turns on w/ pp3300_usb_en_l */ 16362306a36Sopenharmony_ci pp3300_usb: pp3300 { 16462306a36Sopenharmony_ci }; 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ci /* gpio is shared with pp1800_pcie and pinctrl is set there */ 16762306a36Sopenharmony_ci pp3300_wifi_bt: pp3300-wifi-bt { 16862306a36Sopenharmony_ci compatible = "regulator-fixed"; 16962306a36Sopenharmony_ci regulator-name = "pp3300_wifi_bt"; 17062306a36Sopenharmony_ci 17162306a36Sopenharmony_ci enable-active-high; 17262306a36Sopenharmony_ci gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; 17362306a36Sopenharmony_ci 17462306a36Sopenharmony_ci vin-supply = <&pp3300>; 17562306a36Sopenharmony_ci }; 17662306a36Sopenharmony_ci 17762306a36Sopenharmony_ci /* 17862306a36Sopenharmony_ci * This is a bit of a hack. The WiFi module should be reset at least 17962306a36Sopenharmony_ci * 1ms after its regulators have ramped up (max rampup time is ~7ms). 18062306a36Sopenharmony_ci * With some stretching of the imagination, we can call the 1.8V 18162306a36Sopenharmony_ci * regulator a supply. 18262306a36Sopenharmony_ci */ 18362306a36Sopenharmony_ci wlan_pd_n: wlan-pd-n { 18462306a36Sopenharmony_ci compatible = "regulator-fixed"; 18562306a36Sopenharmony_ci regulator-name = "wlan_pd_n"; 18662306a36Sopenharmony_ci pinctrl-names = "default"; 18762306a36Sopenharmony_ci pinctrl-0 = <&wlan_module_reset_l>; 18862306a36Sopenharmony_ci 18962306a36Sopenharmony_ci enable-active-high; 19062306a36Sopenharmony_ci gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>; 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ci vin-supply = <&pp1800_pcie>; 19362306a36Sopenharmony_ci }; 19462306a36Sopenharmony_ci 19562306a36Sopenharmony_ci backlight: backlight { 19662306a36Sopenharmony_ci compatible = "pwm-backlight"; 19762306a36Sopenharmony_ci enable-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>; 19862306a36Sopenharmony_ci power-supply = <&pp3300_disp>; 19962306a36Sopenharmony_ci pinctrl-names = "default"; 20062306a36Sopenharmony_ci pinctrl-0 = <&bl_en>; 20162306a36Sopenharmony_ci }; 20262306a36Sopenharmony_ci 20362306a36Sopenharmony_ci gpio_keys: gpio-keys { 20462306a36Sopenharmony_ci compatible = "gpio-keys"; 20562306a36Sopenharmony_ci pinctrl-names = "default"; 20662306a36Sopenharmony_ci pinctrl-0 = <&bt_host_wake_l>; 20762306a36Sopenharmony_ci 20862306a36Sopenharmony_ci wake_on_bt: key-wake-on-bt { 20962306a36Sopenharmony_ci label = "Wake-on-Bluetooth"; 21062306a36Sopenharmony_ci gpios = <&gpio0 3 GPIO_ACTIVE_LOW>; 21162306a36Sopenharmony_ci linux,code = <KEY_WAKEUP>; 21262306a36Sopenharmony_ci wakeup-source; 21362306a36Sopenharmony_ci }; 21462306a36Sopenharmony_ci }; 21562306a36Sopenharmony_ci}; 21662306a36Sopenharmony_ci 21762306a36Sopenharmony_ci&ppvar_bigcpu { 21862306a36Sopenharmony_ci min-slew-down-rate = <225>; 21962306a36Sopenharmony_ci ovp-threshold-percent = <16>; 22062306a36Sopenharmony_ci}; 22162306a36Sopenharmony_ci 22262306a36Sopenharmony_ci&ppvar_litcpu { 22362306a36Sopenharmony_ci min-slew-down-rate = <225>; 22462306a36Sopenharmony_ci ovp-threshold-percent = <16>; 22562306a36Sopenharmony_ci}; 22662306a36Sopenharmony_ci 22762306a36Sopenharmony_ci&ppvar_gpu { 22862306a36Sopenharmony_ci min-slew-down-rate = <225>; 22962306a36Sopenharmony_ci ovp-threshold-percent = <16>; 23062306a36Sopenharmony_ci}; 23162306a36Sopenharmony_ci 23262306a36Sopenharmony_ci&cdn_dp { 23362306a36Sopenharmony_ci extcon = <&usbc_extcon0>, <&usbc_extcon1>; 23462306a36Sopenharmony_ci}; 23562306a36Sopenharmony_ci 23662306a36Sopenharmony_ci&dmc { 23762306a36Sopenharmony_ci center-supply = <&ppvar_centerlogic>; 23862306a36Sopenharmony_ci rockchip,pd-idle-dis-freq-hz = <800000000>; 23962306a36Sopenharmony_ci rockchip,sr-idle-dis-freq-hz = <800000000>; 24062306a36Sopenharmony_ci rockchip,sr-mc-gate-idle-dis-freq-hz = <800000000>; 24162306a36Sopenharmony_ci}; 24262306a36Sopenharmony_ci 24362306a36Sopenharmony_ci&edp { 24462306a36Sopenharmony_ci status = "okay"; 24562306a36Sopenharmony_ci 24662306a36Sopenharmony_ci /* 24762306a36Sopenharmony_ci * eDP PHY/clk don't sync reliably at anything other than 24 MHz. Only 24862306a36Sopenharmony_ci * set this here, because rk3399-gru.dtsi ensures we can generate this 24962306a36Sopenharmony_ci * off GPLL=600MHz, whereas some other RK3399 boards may not. 25062306a36Sopenharmony_ci */ 25162306a36Sopenharmony_ci assigned-clocks = <&cru PCLK_EDP>; 25262306a36Sopenharmony_ci assigned-clock-rates = <24000000>; 25362306a36Sopenharmony_ci 25462306a36Sopenharmony_ci ports { 25562306a36Sopenharmony_ci edp_out: port@1 { 25662306a36Sopenharmony_ci reg = <1>; 25762306a36Sopenharmony_ci #address-cells = <1>; 25862306a36Sopenharmony_ci #size-cells = <0>; 25962306a36Sopenharmony_ci 26062306a36Sopenharmony_ci edp_out_panel: endpoint@0 { 26162306a36Sopenharmony_ci reg = <0>; 26262306a36Sopenharmony_ci remote-endpoint = <&panel_in_edp>; 26362306a36Sopenharmony_ci }; 26462306a36Sopenharmony_ci }; 26562306a36Sopenharmony_ci }; 26662306a36Sopenharmony_ci}; 26762306a36Sopenharmony_ci 26862306a36Sopenharmony_ci&gpio0 { 26962306a36Sopenharmony_ci gpio-line-names = /* GPIO0 A 0-7 */ 27062306a36Sopenharmony_ci "AP_RTC_CLK_IN", 27162306a36Sopenharmony_ci "EC_AP_INT_L", 27262306a36Sopenharmony_ci "PP1800_AUDIO_EN", 27362306a36Sopenharmony_ci "BT_HOST_WAKE_L", 27462306a36Sopenharmony_ci "WLAN_MODULE_PD_L", 27562306a36Sopenharmony_ci "H1_INT_OD_L", 27662306a36Sopenharmony_ci "CENTERLOGIC_DVS_PWM", 27762306a36Sopenharmony_ci "", 27862306a36Sopenharmony_ci 27962306a36Sopenharmony_ci /* GPIO0 B 0-4 */ 28062306a36Sopenharmony_ci "WIFI_HOST_WAKE_L", 28162306a36Sopenharmony_ci "PMUIO2_33_18_L", 28262306a36Sopenharmony_ci "PP1500_EN", 28362306a36Sopenharmony_ci "AP_EC_WARM_RESET_REQ", 28462306a36Sopenharmony_ci "PP3000_EN"; 28562306a36Sopenharmony_ci}; 28662306a36Sopenharmony_ci 28762306a36Sopenharmony_ci&gpio1 { 28862306a36Sopenharmony_ci gpio-line-names = /* GPIO1 A 0-7 */ 28962306a36Sopenharmony_ci "", 29062306a36Sopenharmony_ci "", 29162306a36Sopenharmony_ci "SPK_PA_EN", 29262306a36Sopenharmony_ci "", 29362306a36Sopenharmony_ci "TRACKPAD_INT_L", 29462306a36Sopenharmony_ci "AP_EC_S3_S0_L", 29562306a36Sopenharmony_ci "AP_EC_OVERTEMP", 29662306a36Sopenharmony_ci "AP_SPI_FLASH_MISO", 29762306a36Sopenharmony_ci 29862306a36Sopenharmony_ci /* GPIO1 B 0-7 */ 29962306a36Sopenharmony_ci "AP_SPI_FLASH_MOSI_R", 30062306a36Sopenharmony_ci "AP_SPI_FLASH_CLK_R", 30162306a36Sopenharmony_ci "AP_SPI_FLASH_CS_L_R", 30262306a36Sopenharmony_ci "WLAN_MODULE_RESET_L", 30362306a36Sopenharmony_ci "WIFI_DISABLE_L", 30462306a36Sopenharmony_ci "MIC_INT", 30562306a36Sopenharmony_ci "", 30662306a36Sopenharmony_ci "AP_I2C_DVS_SDA", 30762306a36Sopenharmony_ci 30862306a36Sopenharmony_ci /* GPIO1 C 0-7 */ 30962306a36Sopenharmony_ci "AP_I2C_DVS_SCL", 31062306a36Sopenharmony_ci "AP_BL_EN", 31162306a36Sopenharmony_ci /* 31262306a36Sopenharmony_ci * AP_FLASH_WP is crossystem ABI. Schematics call it 31362306a36Sopenharmony_ci * AP_FW_WP or CPU1_FW_WP, depending on the variant. 31462306a36Sopenharmony_ci */ 31562306a36Sopenharmony_ci "AP_FLASH_WP", 31662306a36Sopenharmony_ci "LITCPU_DVS_PWM", 31762306a36Sopenharmony_ci "AP_I2C_AUDIO_SDA", 31862306a36Sopenharmony_ci "AP_I2C_AUDIO_SCL", 31962306a36Sopenharmony_ci "", 32062306a36Sopenharmony_ci "HEADSET_INT_L"; 32162306a36Sopenharmony_ci}; 32262306a36Sopenharmony_ci 32362306a36Sopenharmony_ci&gpio2 { 32462306a36Sopenharmony_ci gpio-line-names = /* GPIO2 A 0-7 */ 32562306a36Sopenharmony_ci "", 32662306a36Sopenharmony_ci "", 32762306a36Sopenharmony_ci "SD_IO_PWR_EN", 32862306a36Sopenharmony_ci "", 32962306a36Sopenharmony_ci "", 33062306a36Sopenharmony_ci "", 33162306a36Sopenharmony_ci "", 33262306a36Sopenharmony_ci "", 33362306a36Sopenharmony_ci 33462306a36Sopenharmony_ci /* GPIO2 B 0-7 */ 33562306a36Sopenharmony_ci "", 33662306a36Sopenharmony_ci "", 33762306a36Sopenharmony_ci "", 33862306a36Sopenharmony_ci "", 33962306a36Sopenharmony_ci "", 34062306a36Sopenharmony_ci "", 34162306a36Sopenharmony_ci "", 34262306a36Sopenharmony_ci "", 34362306a36Sopenharmony_ci 34462306a36Sopenharmony_ci /* GPIO2 C 0-7 */ 34562306a36Sopenharmony_ci "", 34662306a36Sopenharmony_ci "", 34762306a36Sopenharmony_ci "", 34862306a36Sopenharmony_ci "", 34962306a36Sopenharmony_ci "AP_SPI_EC_MISO", 35062306a36Sopenharmony_ci "AP_SPI_EC_MOSI", 35162306a36Sopenharmony_ci "AP_SPI_EC_CLK", 35262306a36Sopenharmony_ci "AP_SPI_EC_CS_L", 35362306a36Sopenharmony_ci 35462306a36Sopenharmony_ci /* GPIO2 D 0-4 */ 35562306a36Sopenharmony_ci "BT_DEV_WAKE_L", 35662306a36Sopenharmony_ci "", 35762306a36Sopenharmony_ci "WIFI_PCIE_CLKREQ_L", 35862306a36Sopenharmony_ci "WIFI_PERST_L", 35962306a36Sopenharmony_ci "SD_PWR_3000_1800_L"; 36062306a36Sopenharmony_ci}; 36162306a36Sopenharmony_ci 36262306a36Sopenharmony_ci&gpio3 { 36362306a36Sopenharmony_ci gpio-line-names = /* GPIO3 A 0-7 */ 36462306a36Sopenharmony_ci "", 36562306a36Sopenharmony_ci "", 36662306a36Sopenharmony_ci "", 36762306a36Sopenharmony_ci "", 36862306a36Sopenharmony_ci "AP_SPI_TPM_MISO", 36962306a36Sopenharmony_ci "AP_SPI_TPM_MOSI_R", 37062306a36Sopenharmony_ci "AP_SPI_TPM_CLK_R", 37162306a36Sopenharmony_ci "AP_SPI_TPM_CS_L_R", 37262306a36Sopenharmony_ci 37362306a36Sopenharmony_ci /* GPIO3 B 0-7 */ 37462306a36Sopenharmony_ci "EC_IN_RW", 37562306a36Sopenharmony_ci "", 37662306a36Sopenharmony_ci "AP_I2C_TP_SDA", 37762306a36Sopenharmony_ci "AP_I2C_TP_SCL", 37862306a36Sopenharmony_ci "AP_I2C_TP_PU_EN", 37962306a36Sopenharmony_ci "TOUCH_INT_L", 38062306a36Sopenharmony_ci "", 38162306a36Sopenharmony_ci "", 38262306a36Sopenharmony_ci 38362306a36Sopenharmony_ci /* GPIO3 C 0-7 */ 38462306a36Sopenharmony_ci "", 38562306a36Sopenharmony_ci "", 38662306a36Sopenharmony_ci "", 38762306a36Sopenharmony_ci "", 38862306a36Sopenharmony_ci "", 38962306a36Sopenharmony_ci "", 39062306a36Sopenharmony_ci "", 39162306a36Sopenharmony_ci "", 39262306a36Sopenharmony_ci 39362306a36Sopenharmony_ci /* GPIO3 D 0-7 */ 39462306a36Sopenharmony_ci "I2S0_SCLK", 39562306a36Sopenharmony_ci "I2S0_LRCK_RX", 39662306a36Sopenharmony_ci "I2S0_LRCK_TX", 39762306a36Sopenharmony_ci "I2S0_SDI_0", 39862306a36Sopenharmony_ci "I2S0_SDI_1", 39962306a36Sopenharmony_ci "", 40062306a36Sopenharmony_ci "I2S0_SDO_1", 40162306a36Sopenharmony_ci "I2S0_SDO_0"; 40262306a36Sopenharmony_ci}; 40362306a36Sopenharmony_ci 40462306a36Sopenharmony_ci&gpio4 { 40562306a36Sopenharmony_ci gpio-line-names = /* GPIO4 A 0-7 */ 40662306a36Sopenharmony_ci "I2S_MCLK", 40762306a36Sopenharmony_ci "AP_I2C_MIC_SDA", 40862306a36Sopenharmony_ci "AP_I2C_MIC_SCL", 40962306a36Sopenharmony_ci "", 41062306a36Sopenharmony_ci "", 41162306a36Sopenharmony_ci "", 41262306a36Sopenharmony_ci "", 41362306a36Sopenharmony_ci "", 41462306a36Sopenharmony_ci 41562306a36Sopenharmony_ci /* GPIO4 B 0-7 */ 41662306a36Sopenharmony_ci "", 41762306a36Sopenharmony_ci "", 41862306a36Sopenharmony_ci "", 41962306a36Sopenharmony_ci "", 42062306a36Sopenharmony_ci "", 42162306a36Sopenharmony_ci "", 42262306a36Sopenharmony_ci "", 42362306a36Sopenharmony_ci "", 42462306a36Sopenharmony_ci 42562306a36Sopenharmony_ci /* GPIO4 C 0-7 */ 42662306a36Sopenharmony_ci "AP_I2C_TS_SDA", 42762306a36Sopenharmony_ci "AP_I2C_TS_SCL", 42862306a36Sopenharmony_ci "GPU_DVS_PWM", 42962306a36Sopenharmony_ci "UART_DBG_TX_AP_RX", 43062306a36Sopenharmony_ci "UART_AP_TX_DBG_RX", 43162306a36Sopenharmony_ci "", 43262306a36Sopenharmony_ci "BIGCPU_DVS_PWM", 43362306a36Sopenharmony_ci "EDP_HPD_3V0", 43462306a36Sopenharmony_ci 43562306a36Sopenharmony_ci /* GPIO4 D 0-5 */ 43662306a36Sopenharmony_ci "SD_CARD_DET_L", 43762306a36Sopenharmony_ci "USB_DP_HPD", 43862306a36Sopenharmony_ci "TOUCH_RESET_L", 43962306a36Sopenharmony_ci "PP3300_DISP_EN", 44062306a36Sopenharmony_ci "", 44162306a36Sopenharmony_ci "SD_SLOT_PWR_EN"; 44262306a36Sopenharmony_ci}; 44362306a36Sopenharmony_ci 44462306a36Sopenharmony_ciap_i2c_mic: &i2c1 { 44562306a36Sopenharmony_ci status = "okay"; 44662306a36Sopenharmony_ci 44762306a36Sopenharmony_ci clock-frequency = <400000>; 44862306a36Sopenharmony_ci 44962306a36Sopenharmony_ci /* These are relatively safe rise/fall times */ 45062306a36Sopenharmony_ci i2c-scl-falling-time-ns = <50>; 45162306a36Sopenharmony_ci i2c-scl-rising-time-ns = <300>; 45262306a36Sopenharmony_ci 45362306a36Sopenharmony_ci headsetcodec: rt5514@57 { 45462306a36Sopenharmony_ci compatible = "realtek,rt5514"; 45562306a36Sopenharmony_ci reg = <0x57>; 45662306a36Sopenharmony_ci realtek,dmic-init-delay-ms = <20>; 45762306a36Sopenharmony_ci }; 45862306a36Sopenharmony_ci}; 45962306a36Sopenharmony_ci 46062306a36Sopenharmony_ciap_i2c_tp: &i2c5 { 46162306a36Sopenharmony_ci status = "okay"; 46262306a36Sopenharmony_ci 46362306a36Sopenharmony_ci clock-frequency = <400000>; 46462306a36Sopenharmony_ci 46562306a36Sopenharmony_ci /* These are relatively safe rise/fall times */ 46662306a36Sopenharmony_ci i2c-scl-falling-time-ns = <50>; 46762306a36Sopenharmony_ci i2c-scl-rising-time-ns = <300>; 46862306a36Sopenharmony_ci 46962306a36Sopenharmony_ci /* 47062306a36Sopenharmony_ci * Note strange pullup enable. Apparently this avoids leakage but 47162306a36Sopenharmony_ci * still allows us to get nice 4.7K pullups for high speed i2c 47262306a36Sopenharmony_ci * transfers. Basically we want the pullup on whenever the ap is 47362306a36Sopenharmony_ci * alive, so the "en" pin just gets set to output high. 47462306a36Sopenharmony_ci */ 47562306a36Sopenharmony_ci pinctrl-0 = <&i2c5_xfer &ap_i2c_tp_pu_en>; 47662306a36Sopenharmony_ci}; 47762306a36Sopenharmony_ci 47862306a36Sopenharmony_ci&cros_ec { 47962306a36Sopenharmony_ci cros_ec_pwm: pwm { 48062306a36Sopenharmony_ci compatible = "google,cros-ec-pwm"; 48162306a36Sopenharmony_ci #pwm-cells = <1>; 48262306a36Sopenharmony_ci }; 48362306a36Sopenharmony_ci 48462306a36Sopenharmony_ci usbc_extcon1: extcon1 { 48562306a36Sopenharmony_ci compatible = "google,extcon-usbc-cros-ec"; 48662306a36Sopenharmony_ci google,usb-port-id = <1>; 48762306a36Sopenharmony_ci }; 48862306a36Sopenharmony_ci}; 48962306a36Sopenharmony_ci 49062306a36Sopenharmony_ci&sound { 49162306a36Sopenharmony_ci rockchip,codec = <&max98357a &headsetcodec 49262306a36Sopenharmony_ci &codec &wacky_spi_audio &cdn_dp>; 49362306a36Sopenharmony_ci}; 49462306a36Sopenharmony_ci 49562306a36Sopenharmony_ci&spi2 { 49662306a36Sopenharmony_ci wacky_spi_audio: spi2@0 { 49762306a36Sopenharmony_ci compatible = "realtek,rt5514"; 49862306a36Sopenharmony_ci reg = <0>; 49962306a36Sopenharmony_ci interrupt-parent = <&gpio1>; 50062306a36Sopenharmony_ci interrupts = <13 IRQ_TYPE_LEVEL_HIGH>; 50162306a36Sopenharmony_ci pinctrl-names = "default"; 50262306a36Sopenharmony_ci pinctrl-0 = <&mic_int>; 50362306a36Sopenharmony_ci /* May run faster once verified. */ 50462306a36Sopenharmony_ci spi-max-frequency = <10000000>; 50562306a36Sopenharmony_ci wakeup-source; 50662306a36Sopenharmony_ci }; 50762306a36Sopenharmony_ci}; 50862306a36Sopenharmony_ci 50962306a36Sopenharmony_ci&pci_rootport { 51062306a36Sopenharmony_ci mvl_wifi: wifi@0,0 { 51162306a36Sopenharmony_ci compatible = "pci1b4b,2b42"; 51262306a36Sopenharmony_ci reg = <0x0000 0x0 0x0 0x0 0x0>; 51362306a36Sopenharmony_ci interrupt-parent = <&gpio0>; 51462306a36Sopenharmony_ci interrupts = <8 IRQ_TYPE_LEVEL_LOW>; 51562306a36Sopenharmony_ci pinctrl-names = "default"; 51662306a36Sopenharmony_ci pinctrl-0 = <&wlan_host_wake_l>; 51762306a36Sopenharmony_ci wakeup-source; 51862306a36Sopenharmony_ci }; 51962306a36Sopenharmony_ci}; 52062306a36Sopenharmony_ci 52162306a36Sopenharmony_ci&tcphy1 { 52262306a36Sopenharmony_ci status = "okay"; 52362306a36Sopenharmony_ci extcon = <&usbc_extcon1>; 52462306a36Sopenharmony_ci}; 52562306a36Sopenharmony_ci 52662306a36Sopenharmony_ci&u2phy1 { 52762306a36Sopenharmony_ci status = "okay"; 52862306a36Sopenharmony_ci}; 52962306a36Sopenharmony_ci 53062306a36Sopenharmony_ci&usb_host0_ehci { 53162306a36Sopenharmony_ci status = "okay"; 53262306a36Sopenharmony_ci}; 53362306a36Sopenharmony_ci 53462306a36Sopenharmony_ci&usb_host1_ehci { 53562306a36Sopenharmony_ci status = "okay"; 53662306a36Sopenharmony_ci}; 53762306a36Sopenharmony_ci 53862306a36Sopenharmony_ci&usb_host1_ohci { 53962306a36Sopenharmony_ci status = "okay"; 54062306a36Sopenharmony_ci}; 54162306a36Sopenharmony_ci 54262306a36Sopenharmony_ci&usbdrd3_1 { 54362306a36Sopenharmony_ci status = "okay"; 54462306a36Sopenharmony_ci extcon = <&usbc_extcon1>; 54562306a36Sopenharmony_ci}; 54662306a36Sopenharmony_ci 54762306a36Sopenharmony_ci&usbdrd_dwc3_1 { 54862306a36Sopenharmony_ci status = "okay"; 54962306a36Sopenharmony_ci dr_mode = "host"; 55062306a36Sopenharmony_ci}; 55162306a36Sopenharmony_ci 55262306a36Sopenharmony_ci&pinctrl { 55362306a36Sopenharmony_ci discrete-regulators { 55462306a36Sopenharmony_ci pp1500_en: pp1500-en { 55562306a36Sopenharmony_ci rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO 55662306a36Sopenharmony_ci &pcfg_pull_none>; 55762306a36Sopenharmony_ci }; 55862306a36Sopenharmony_ci 55962306a36Sopenharmony_ci pp1800_audio_en: pp1800-audio-en { 56062306a36Sopenharmony_ci rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO 56162306a36Sopenharmony_ci &pcfg_pull_down>; 56262306a36Sopenharmony_ci }; 56362306a36Sopenharmony_ci 56462306a36Sopenharmony_ci pp3000_en: pp3000-en { 56562306a36Sopenharmony_ci rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO 56662306a36Sopenharmony_ci &pcfg_pull_none>; 56762306a36Sopenharmony_ci }; 56862306a36Sopenharmony_ci 56962306a36Sopenharmony_ci pp3300_disp_en: pp3300-disp-en { 57062306a36Sopenharmony_ci rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO 57162306a36Sopenharmony_ci &pcfg_pull_none>; 57262306a36Sopenharmony_ci }; 57362306a36Sopenharmony_ci 57462306a36Sopenharmony_ci wlan_module_pd_l: wlan-module-pd-l { 57562306a36Sopenharmony_ci rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO 57662306a36Sopenharmony_ci &pcfg_pull_down>; 57762306a36Sopenharmony_ci }; 57862306a36Sopenharmony_ci }; 57962306a36Sopenharmony_ci}; 58062306a36Sopenharmony_ci 58162306a36Sopenharmony_ci&wifi { 58262306a36Sopenharmony_ci wifi_perst_l: wifi-perst-l { 58362306a36Sopenharmony_ci rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; 58462306a36Sopenharmony_ci }; 58562306a36Sopenharmony_ci 58662306a36Sopenharmony_ci wlan_host_wake_l: wlan-host-wake-l { 58762306a36Sopenharmony_ci /* Kevin has an external pull up, but Bob does not */ 58862306a36Sopenharmony_ci rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 58962306a36Sopenharmony_ci }; 59062306a36Sopenharmony_ci}; 591