1a0aa6bfeSHeiko Stuebner// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2a0aa6bfeSHeiko Stuebner/* 3a0aa6bfeSHeiko Stuebner * Google Gru-Chromebook shared properties 4a0aa6bfeSHeiko Stuebner * 5a0aa6bfeSHeiko Stuebner * Copyright 2018 Google, Inc 6a0aa6bfeSHeiko Stuebner */ 7a0aa6bfeSHeiko Stuebner 8a0aa6bfeSHeiko Stuebner#include "rk3399-gru.dtsi" 9a0aa6bfeSHeiko Stuebner 10a0aa6bfeSHeiko Stuebner/ { 115c96e633SJohan Jonker pp900_ap: regulator-pp900-ap { 12a0aa6bfeSHeiko Stuebner compatible = "regulator-fixed"; 13a0aa6bfeSHeiko Stuebner regulator-name = "pp900_ap"; 14a0aa6bfeSHeiko Stuebner 15a0aa6bfeSHeiko Stuebner /* EC turns on w/ pp900_ap_en; always on for AP */ 16a0aa6bfeSHeiko Stuebner regulator-always-on; 17a0aa6bfeSHeiko Stuebner regulator-boot-on; 18a0aa6bfeSHeiko Stuebner regulator-min-microvolt = <900000>; 19a0aa6bfeSHeiko Stuebner regulator-max-microvolt = <900000>; 20a0aa6bfeSHeiko Stuebner 21a0aa6bfeSHeiko Stuebner vin-supply = <&ppvar_sys>; 22a0aa6bfeSHeiko Stuebner }; 23a0aa6bfeSHeiko Stuebner 24a0aa6bfeSHeiko Stuebner /* EC turns on w/ pp900_usb_en */ 252f9eb526SHeiko Stuebner pp900_usb: regulator-pp900-ap { 26a0aa6bfeSHeiko Stuebner }; 27a0aa6bfeSHeiko Stuebner 28a0aa6bfeSHeiko Stuebner /* EC turns on w/ pp900_pcie_en */ 292f9eb526SHeiko Stuebner pp900_pcie: regulator-pp900-ap { 30a0aa6bfeSHeiko Stuebner }; 31a0aa6bfeSHeiko Stuebner 325c96e633SJohan Jonker pp3000: regulator-pp3000 { 33a0aa6bfeSHeiko Stuebner compatible = "regulator-fixed"; 34a0aa6bfeSHeiko Stuebner regulator-name = "pp3000"; 35a0aa6bfeSHeiko Stuebner pinctrl-names = "default"; 36a0aa6bfeSHeiko Stuebner pinctrl-0 = <&pp3000_en>; 37a0aa6bfeSHeiko Stuebner 38a0aa6bfeSHeiko Stuebner enable-active-high; 39a0aa6bfeSHeiko Stuebner gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>; 40a0aa6bfeSHeiko Stuebner 41a0aa6bfeSHeiko Stuebner regulator-always-on; 42a0aa6bfeSHeiko Stuebner regulator-boot-on; 43a0aa6bfeSHeiko Stuebner regulator-min-microvolt = <3000000>; 44a0aa6bfeSHeiko Stuebner regulator-max-microvolt = <3000000>; 45a0aa6bfeSHeiko Stuebner 46a0aa6bfeSHeiko Stuebner vin-supply = <&ppvar_sys>; 47a0aa6bfeSHeiko Stuebner }; 48a0aa6bfeSHeiko Stuebner 495c96e633SJohan Jonker ppvar_centerlogic_pwm: regulator-ppvar-centerlogic-pwm { 50a0aa6bfeSHeiko Stuebner compatible = "pwm-regulator"; 51a0aa6bfeSHeiko Stuebner regulator-name = "ppvar_centerlogic_pwm"; 52a0aa6bfeSHeiko Stuebner 53a0aa6bfeSHeiko Stuebner pwms = <&pwm3 0 3337 0>; 54a0aa6bfeSHeiko Stuebner pwm-supply = <&ppvar_sys>; 55a0aa6bfeSHeiko Stuebner pwm-dutycycle-range = <100 0>; 56a0aa6bfeSHeiko Stuebner pwm-dutycycle-unit = <100>; 57a0aa6bfeSHeiko Stuebner 58a0aa6bfeSHeiko Stuebner /* EC turns on w/ ppvar_centerlogic_en; always on for AP */ 59a0aa6bfeSHeiko Stuebner regulator-always-on; 60a0aa6bfeSHeiko Stuebner regulator-boot-on; 61a0aa6bfeSHeiko Stuebner regulator-min-microvolt = <799434>; 62a0aa6bfeSHeiko Stuebner regulator-max-microvolt = <1049925>; 63a0aa6bfeSHeiko Stuebner }; 64a0aa6bfeSHeiko Stuebner 65a0aa6bfeSHeiko Stuebner ppvar_centerlogic: ppvar-centerlogic { 66a0aa6bfeSHeiko Stuebner compatible = "vctrl-regulator"; 67a0aa6bfeSHeiko Stuebner regulator-name = "ppvar_centerlogic"; 68a0aa6bfeSHeiko Stuebner 69a0aa6bfeSHeiko Stuebner regulator-min-microvolt = <799434>; 70a0aa6bfeSHeiko Stuebner regulator-max-microvolt = <1049925>; 71a0aa6bfeSHeiko Stuebner 72a0aa6bfeSHeiko Stuebner ctrl-supply = <&ppvar_centerlogic_pwm>; 73a0aa6bfeSHeiko Stuebner ctrl-voltage-range = <799434 1049925>; 74a0aa6bfeSHeiko Stuebner 75a0aa6bfeSHeiko Stuebner regulator-settling-time-up-us = <378>; 76a0aa6bfeSHeiko Stuebner min-slew-down-rate = <225>; 77a0aa6bfeSHeiko Stuebner ovp-threshold-percent = <16>; 78a0aa6bfeSHeiko Stuebner }; 79a0aa6bfeSHeiko Stuebner 80a0aa6bfeSHeiko Stuebner /* Schematics call this PPVAR even though it's fixed */ 815c96e633SJohan Jonker ppvar_logic: regulator-ppvar-logic { 82a0aa6bfeSHeiko Stuebner compatible = "regulator-fixed"; 83a0aa6bfeSHeiko Stuebner regulator-name = "ppvar_logic"; 84a0aa6bfeSHeiko Stuebner 85a0aa6bfeSHeiko Stuebner /* EC turns on w/ ppvar_logic_en; always on for AP */ 86a0aa6bfeSHeiko Stuebner regulator-always-on; 87a0aa6bfeSHeiko Stuebner regulator-boot-on; 88a0aa6bfeSHeiko Stuebner regulator-min-microvolt = <900000>; 89a0aa6bfeSHeiko Stuebner regulator-max-microvolt = <900000>; 90a0aa6bfeSHeiko Stuebner 91a0aa6bfeSHeiko Stuebner vin-supply = <&ppvar_sys>; 92a0aa6bfeSHeiko Stuebner }; 93a0aa6bfeSHeiko Stuebner 945c96e633SJohan Jonker pp1800_audio: regulator-pp1800-audio { 95a0aa6bfeSHeiko Stuebner compatible = "regulator-fixed"; 96a0aa6bfeSHeiko Stuebner regulator-name = "pp1800_audio"; 97a0aa6bfeSHeiko Stuebner pinctrl-names = "default"; 98a0aa6bfeSHeiko Stuebner pinctrl-0 = <&pp1800_audio_en>; 99a0aa6bfeSHeiko Stuebner 100a0aa6bfeSHeiko Stuebner enable-active-high; 101a0aa6bfeSHeiko Stuebner gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>; 102a0aa6bfeSHeiko Stuebner 103a0aa6bfeSHeiko Stuebner regulator-always-on; 104a0aa6bfeSHeiko Stuebner regulator-boot-on; 105a0aa6bfeSHeiko Stuebner 106a0aa6bfeSHeiko Stuebner vin-supply = <&pp1800>; 107a0aa6bfeSHeiko Stuebner }; 108a0aa6bfeSHeiko Stuebner 109a0aa6bfeSHeiko Stuebner /* gpio is shared with pp3300_wifi_bt */ 1105c96e633SJohan Jonker pp1800_pcie: regulator-pp1800-pcie { 111a0aa6bfeSHeiko Stuebner compatible = "regulator-fixed"; 112a0aa6bfeSHeiko Stuebner regulator-name = "pp1800_pcie"; 113a0aa6bfeSHeiko Stuebner pinctrl-names = "default"; 114a0aa6bfeSHeiko Stuebner pinctrl-0 = <&wlan_module_pd_l>; 115a0aa6bfeSHeiko Stuebner 116a0aa6bfeSHeiko Stuebner enable-active-high; 117a0aa6bfeSHeiko Stuebner gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; 118a0aa6bfeSHeiko Stuebner 119a0aa6bfeSHeiko Stuebner /* 120a0aa6bfeSHeiko Stuebner * Need to wait 1ms + ramp-up time before we can power on WiFi. 121a0aa6bfeSHeiko Stuebner * This has been approximated as 8ms total. 122a0aa6bfeSHeiko Stuebner */ 123a0aa6bfeSHeiko Stuebner regulator-enable-ramp-delay = <8000>; 124a0aa6bfeSHeiko Stuebner 125a0aa6bfeSHeiko Stuebner vin-supply = <&pp1800>; 126a0aa6bfeSHeiko Stuebner }; 127a0aa6bfeSHeiko Stuebner 128a0aa6bfeSHeiko Stuebner /* Always on; plain and simple */ 1292f9eb526SHeiko Stuebner pp3000_ap: pp3000_emmc: regulator-pp3000 { 130a0aa6bfeSHeiko Stuebner }; 131a0aa6bfeSHeiko Stuebner 1325c96e633SJohan Jonker pp1500_ap_io: regulator-pp1500-ap-io { 133a0aa6bfeSHeiko Stuebner compatible = "regulator-fixed"; 134a0aa6bfeSHeiko Stuebner regulator-name = "pp1500_ap_io"; 135a0aa6bfeSHeiko Stuebner pinctrl-names = "default"; 136a0aa6bfeSHeiko Stuebner pinctrl-0 = <&pp1500_en>; 137a0aa6bfeSHeiko Stuebner 138a0aa6bfeSHeiko Stuebner enable-active-high; 139a0aa6bfeSHeiko Stuebner gpio = <&gpio0 10 GPIO_ACTIVE_HIGH>; 140a0aa6bfeSHeiko Stuebner 141a0aa6bfeSHeiko Stuebner regulator-always-on; 142a0aa6bfeSHeiko Stuebner regulator-boot-on; 143a0aa6bfeSHeiko Stuebner regulator-min-microvolt = <1500000>; 144a0aa6bfeSHeiko Stuebner regulator-max-microvolt = <1500000>; 145a0aa6bfeSHeiko Stuebner 146a0aa6bfeSHeiko Stuebner vin-supply = <&pp1800>; 147a0aa6bfeSHeiko Stuebner }; 148a0aa6bfeSHeiko Stuebner 1495c96e633SJohan Jonker pp3300_disp: regulator-pp3300-disp { 150a0aa6bfeSHeiko Stuebner compatible = "regulator-fixed"; 151a0aa6bfeSHeiko Stuebner regulator-name = "pp3300_disp"; 152a0aa6bfeSHeiko Stuebner pinctrl-names = "default"; 153a0aa6bfeSHeiko Stuebner pinctrl-0 = <&pp3300_disp_en>; 154a0aa6bfeSHeiko Stuebner 155a0aa6bfeSHeiko Stuebner enable-active-high; 156a0aa6bfeSHeiko Stuebner gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>; 157a0aa6bfeSHeiko Stuebner 158a0aa6bfeSHeiko Stuebner startup-delay-us = <2000>; 159a0aa6bfeSHeiko Stuebner vin-supply = <&pp3300>; 160a0aa6bfeSHeiko Stuebner }; 161a0aa6bfeSHeiko Stuebner 162a0aa6bfeSHeiko Stuebner /* EC turns on w/ pp3300_usb_en_l */ 1632f9eb526SHeiko Stuebner pp3300_usb: regulator-pp3300 { 164a0aa6bfeSHeiko Stuebner }; 165a0aa6bfeSHeiko Stuebner 166a0aa6bfeSHeiko Stuebner /* gpio is shared with pp1800_pcie and pinctrl is set there */ 1675c96e633SJohan Jonker pp3300_wifi_bt: regulator-pp3300-wifi-bt { 168a0aa6bfeSHeiko Stuebner compatible = "regulator-fixed"; 169a0aa6bfeSHeiko Stuebner regulator-name = "pp3300_wifi_bt"; 170a0aa6bfeSHeiko Stuebner 171a0aa6bfeSHeiko Stuebner enable-active-high; 172a0aa6bfeSHeiko Stuebner gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; 173a0aa6bfeSHeiko Stuebner 174a0aa6bfeSHeiko Stuebner vin-supply = <&pp3300>; 175a0aa6bfeSHeiko Stuebner }; 176a0aa6bfeSHeiko Stuebner 177a0aa6bfeSHeiko Stuebner /* 178a0aa6bfeSHeiko Stuebner * This is a bit of a hack. The WiFi module should be reset at least 179a0aa6bfeSHeiko Stuebner * 1ms after its regulators have ramped up (max rampup time is ~7ms). 180a0aa6bfeSHeiko Stuebner * With some stretching of the imagination, we can call the 1.8V 181a0aa6bfeSHeiko Stuebner * regulator a supply. 182a0aa6bfeSHeiko Stuebner */ 1835c96e633SJohan Jonker wlan_pd_n: regulator-wlan-pd-n { 184a0aa6bfeSHeiko Stuebner compatible = "regulator-fixed"; 185a0aa6bfeSHeiko Stuebner regulator-name = "wlan_pd_n"; 186a0aa6bfeSHeiko Stuebner pinctrl-names = "default"; 187a0aa6bfeSHeiko Stuebner pinctrl-0 = <&wlan_module_reset_l>; 188a0aa6bfeSHeiko Stuebner 189a0aa6bfeSHeiko Stuebner enable-active-high; 190a0aa6bfeSHeiko Stuebner gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>; 191a0aa6bfeSHeiko Stuebner 192a0aa6bfeSHeiko Stuebner vin-supply = <&pp1800_pcie>; 193a0aa6bfeSHeiko Stuebner }; 194d67a38c5SHeiko Stuebner 195d67a38c5SHeiko Stuebner backlight: backlight { 196d67a38c5SHeiko Stuebner compatible = "pwm-backlight"; 197d67a38c5SHeiko Stuebner enable-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>; 198d67a38c5SHeiko Stuebner power-supply = <&pp3300_disp>; 199d67a38c5SHeiko Stuebner pinctrl-names = "default"; 200d67a38c5SHeiko Stuebner pinctrl-0 = <&bl_en>; 201d67a38c5SHeiko Stuebner }; 2025364a0b4SBrian Norris 2035364a0b4SBrian Norris gpio_keys: gpio-keys { 2045364a0b4SBrian Norris compatible = "gpio-keys"; 2055364a0b4SBrian Norris pinctrl-names = "default"; 2065364a0b4SBrian Norris pinctrl-0 = <&bt_host_wake_l>; 2075364a0b4SBrian Norris 208517ed0ffSKrzysztof Kozlowski wake_on_bt: key-wake-on-bt { 2095364a0b4SBrian Norris label = "Wake-on-Bluetooth"; 2105364a0b4SBrian Norris gpios = <&gpio0 3 GPIO_ACTIVE_LOW>; 2115364a0b4SBrian Norris linux,code = <KEY_WAKEUP>; 2125364a0b4SBrian Norris wakeup-source; 2135364a0b4SBrian Norris }; 2145364a0b4SBrian Norris }; 215a0aa6bfeSHeiko Stuebner}; 216a0aa6bfeSHeiko Stuebner 217a0aa6bfeSHeiko Stuebner&ppvar_bigcpu { 218a0aa6bfeSHeiko Stuebner min-slew-down-rate = <225>; 219a0aa6bfeSHeiko Stuebner ovp-threshold-percent = <16>; 220a0aa6bfeSHeiko Stuebner}; 221a0aa6bfeSHeiko Stuebner 222a0aa6bfeSHeiko Stuebner&ppvar_litcpu { 223a0aa6bfeSHeiko Stuebner min-slew-down-rate = <225>; 224a0aa6bfeSHeiko Stuebner ovp-threshold-percent = <16>; 225a0aa6bfeSHeiko Stuebner}; 226a0aa6bfeSHeiko Stuebner 227a0aa6bfeSHeiko Stuebner&ppvar_gpu { 228a0aa6bfeSHeiko Stuebner min-slew-down-rate = <225>; 229a0aa6bfeSHeiko Stuebner ovp-threshold-percent = <16>; 230a0aa6bfeSHeiko Stuebner}; 231a0aa6bfeSHeiko Stuebner 232a0aa6bfeSHeiko Stuebner&cdn_dp { 233a0aa6bfeSHeiko Stuebner extcon = <&usbc_extcon0>, <&usbc_extcon1>; 234a0aa6bfeSHeiko Stuebner}; 235a0aa6bfeSHeiko Stuebner 23680bc6f34SLin Huang&dmc { 23780bc6f34SLin Huang center-supply = <&ppvar_centerlogic>; 23880bc6f34SLin Huang rockchip,pd-idle-dis-freq-hz = <800000000>; 23980bc6f34SLin Huang rockchip,sr-idle-dis-freq-hz = <800000000>; 24080bc6f34SLin Huang rockchip,sr-mc-gate-idle-dis-freq-hz = <800000000>; 24180bc6f34SLin Huang}; 24280bc6f34SLin Huang 243d67a38c5SHeiko Stuebner&edp { 244d67a38c5SHeiko Stuebner status = "okay"; 245d67a38c5SHeiko Stuebner 2468123437cSzain wang /* 2478123437cSzain wang * eDP PHY/clk don't sync reliably at anything other than 24 MHz. Only 2488123437cSzain wang * set this here, because rk3399-gru.dtsi ensures we can generate this 2498123437cSzain wang * off GPLL=600MHz, whereas some other RK3399 boards may not. 2508123437cSzain wang */ 2518123437cSzain wang assigned-clocks = <&cru PCLK_EDP>; 2528123437cSzain wang assigned-clock-rates = <24000000>; 253*25937eb0SDiederik de Haas}; 2548123437cSzain wang 255*25937eb0SDiederik de Haas&edp_out { 256*25937eb0SDiederik de Haas edp_out_panel: endpoint { 257d67a38c5SHeiko Stuebner remote-endpoint = <&panel_in_edp>; 258d67a38c5SHeiko Stuebner }; 259d67a38c5SHeiko Stuebner}; 260d67a38c5SHeiko Stuebner 261ae044309SBrian Norris&gpio0 { 262ae044309SBrian Norris gpio-line-names = /* GPIO0 A 0-7 */ 263ae044309SBrian Norris "AP_RTC_CLK_IN", 264ae044309SBrian Norris "EC_AP_INT_L", 265ae044309SBrian Norris "PP1800_AUDIO_EN", 266ae044309SBrian Norris "BT_HOST_WAKE_L", 267ae044309SBrian Norris "WLAN_MODULE_PD_L", 268ae044309SBrian Norris "H1_INT_OD_L", 269ae044309SBrian Norris "CENTERLOGIC_DVS_PWM", 270ae044309SBrian Norris "", 271ae044309SBrian Norris 272ae044309SBrian Norris /* GPIO0 B 0-4 */ 273ae044309SBrian Norris "WIFI_HOST_WAKE_L", 274ae044309SBrian Norris "PMUIO2_33_18_L", 275ae044309SBrian Norris "PP1500_EN", 276ae044309SBrian Norris "AP_EC_WARM_RESET_REQ", 277ae044309SBrian Norris "PP3000_EN"; 278ae044309SBrian Norris}; 279ae044309SBrian Norris 280ae044309SBrian Norris&gpio1 { 281ae044309SBrian Norris gpio-line-names = /* GPIO1 A 0-7 */ 282ae044309SBrian Norris "", 283ae044309SBrian Norris "", 284ae044309SBrian Norris "SPK_PA_EN", 285ae044309SBrian Norris "", 286ae044309SBrian Norris "TRACKPAD_INT_L", 287ae044309SBrian Norris "AP_EC_S3_S0_L", 288ae044309SBrian Norris "AP_EC_OVERTEMP", 289ae044309SBrian Norris "AP_SPI_FLASH_MISO", 290ae044309SBrian Norris 291ae044309SBrian Norris /* GPIO1 B 0-7 */ 292ae044309SBrian Norris "AP_SPI_FLASH_MOSI_R", 293ae044309SBrian Norris "AP_SPI_FLASH_CLK_R", 294ae044309SBrian Norris "AP_SPI_FLASH_CS_L_R", 295ae044309SBrian Norris "WLAN_MODULE_RESET_L", 296ae044309SBrian Norris "WIFI_DISABLE_L", 297ae044309SBrian Norris "MIC_INT", 298ae044309SBrian Norris "", 299ae044309SBrian Norris "AP_I2C_DVS_SDA", 300ae044309SBrian Norris 301ae044309SBrian Norris /* GPIO1 C 0-7 */ 302ae044309SBrian Norris "AP_I2C_DVS_SCL", 303ae044309SBrian Norris "AP_BL_EN", 304ae044309SBrian Norris /* 305ae044309SBrian Norris * AP_FLASH_WP is crossystem ABI. Schematics call it 306ae044309SBrian Norris * AP_FW_WP or CPU1_FW_WP, depending on the variant. 307ae044309SBrian Norris */ 308ae044309SBrian Norris "AP_FLASH_WP", 309ae044309SBrian Norris "LITCPU_DVS_PWM", 310ae044309SBrian Norris "AP_I2C_AUDIO_SDA", 311ae044309SBrian Norris "AP_I2C_AUDIO_SCL", 312ae044309SBrian Norris "", 313ae044309SBrian Norris "HEADSET_INT_L"; 314ae044309SBrian Norris}; 315ae044309SBrian Norris 316ae044309SBrian Norris&gpio2 { 317ae044309SBrian Norris gpio-line-names = /* GPIO2 A 0-7 */ 318ae044309SBrian Norris "", 319ae044309SBrian Norris "", 320ae044309SBrian Norris "SD_IO_PWR_EN", 321ae044309SBrian Norris "", 322ae044309SBrian Norris "", 323ae044309SBrian Norris "", 324ae044309SBrian Norris "", 325ae044309SBrian Norris "", 326ae044309SBrian Norris 327ae044309SBrian Norris /* GPIO2 B 0-7 */ 328ae044309SBrian Norris "", 329ae044309SBrian Norris "", 330ae044309SBrian Norris "", 331ae044309SBrian Norris "", 332ae044309SBrian Norris "", 333ae044309SBrian Norris "", 334ae044309SBrian Norris "", 335ae044309SBrian Norris "", 336ae044309SBrian Norris 337ae044309SBrian Norris /* GPIO2 C 0-7 */ 338ae044309SBrian Norris "", 339ae044309SBrian Norris "", 340ae044309SBrian Norris "", 341ae044309SBrian Norris "", 342ae044309SBrian Norris "AP_SPI_EC_MISO", 343ae044309SBrian Norris "AP_SPI_EC_MOSI", 344ae044309SBrian Norris "AP_SPI_EC_CLK", 345ae044309SBrian Norris "AP_SPI_EC_CS_L", 346ae044309SBrian Norris 347ae044309SBrian Norris /* GPIO2 D 0-4 */ 348ae044309SBrian Norris "BT_DEV_WAKE_L", 349ae044309SBrian Norris "", 350ae044309SBrian Norris "WIFI_PCIE_CLKREQ_L", 351ae044309SBrian Norris "WIFI_PERST_L", 352ae044309SBrian Norris "SD_PWR_3000_1800_L"; 353ae044309SBrian Norris}; 354ae044309SBrian Norris 355ae044309SBrian Norris&gpio3 { 356ae044309SBrian Norris gpio-line-names = /* GPIO3 A 0-7 */ 357ae044309SBrian Norris "", 358ae044309SBrian Norris "", 359ae044309SBrian Norris "", 360ae044309SBrian Norris "", 361ae044309SBrian Norris "AP_SPI_TPM_MISO", 362ae044309SBrian Norris "AP_SPI_TPM_MOSI_R", 363ae044309SBrian Norris "AP_SPI_TPM_CLK_R", 364ae044309SBrian Norris "AP_SPI_TPM_CS_L_R", 365ae044309SBrian Norris 366ae044309SBrian Norris /* GPIO3 B 0-7 */ 367ae044309SBrian Norris "EC_IN_RW", 368ae044309SBrian Norris "", 369ae044309SBrian Norris "AP_I2C_TP_SDA", 370ae044309SBrian Norris "AP_I2C_TP_SCL", 371ae044309SBrian Norris "AP_I2C_TP_PU_EN", 372ae044309SBrian Norris "TOUCH_INT_L", 373ae044309SBrian Norris "", 374ae044309SBrian Norris "", 375ae044309SBrian Norris 376ae044309SBrian Norris /* GPIO3 C 0-7 */ 377ae044309SBrian Norris "", 378ae044309SBrian Norris "", 379ae044309SBrian Norris "", 380ae044309SBrian Norris "", 381ae044309SBrian Norris "", 382ae044309SBrian Norris "", 383ae044309SBrian Norris "", 384ae044309SBrian Norris "", 385ae044309SBrian Norris 386ae044309SBrian Norris /* GPIO3 D 0-7 */ 387ae044309SBrian Norris "I2S0_SCLK", 388ae044309SBrian Norris "I2S0_LRCK_RX", 389ae044309SBrian Norris "I2S0_LRCK_TX", 390ae044309SBrian Norris "I2S0_SDI_0", 391ae044309SBrian Norris "I2S0_SDI_1", 392ae044309SBrian Norris "", 393ae044309SBrian Norris "I2S0_SDO_1", 394ae044309SBrian Norris "I2S0_SDO_0"; 395ae044309SBrian Norris}; 396ae044309SBrian Norris 397ae044309SBrian Norris&gpio4 { 398ae044309SBrian Norris gpio-line-names = /* GPIO4 A 0-7 */ 399ae044309SBrian Norris "I2S_MCLK", 400ae044309SBrian Norris "AP_I2C_MIC_SDA", 401ae044309SBrian Norris "AP_I2C_MIC_SCL", 402ae044309SBrian Norris "", 403ae044309SBrian Norris "", 404ae044309SBrian Norris "", 405ae044309SBrian Norris "", 406ae044309SBrian Norris "", 407ae044309SBrian Norris 408ae044309SBrian Norris /* GPIO4 B 0-7 */ 409ae044309SBrian Norris "", 410ae044309SBrian Norris "", 411ae044309SBrian Norris "", 412ae044309SBrian Norris "", 413ae044309SBrian Norris "", 414ae044309SBrian Norris "", 415ae044309SBrian Norris "", 416ae044309SBrian Norris "", 417ae044309SBrian Norris 418ae044309SBrian Norris /* GPIO4 C 0-7 */ 419ae044309SBrian Norris "AP_I2C_TS_SDA", 420ae044309SBrian Norris "AP_I2C_TS_SCL", 421ae044309SBrian Norris "GPU_DVS_PWM", 422ae044309SBrian Norris "UART_DBG_TX_AP_RX", 423ae044309SBrian Norris "UART_AP_TX_DBG_RX", 424ae044309SBrian Norris "", 425ae044309SBrian Norris "BIGCPU_DVS_PWM", 426ae044309SBrian Norris "EDP_HPD_3V0", 427ae044309SBrian Norris 428ae044309SBrian Norris /* GPIO4 D 0-5 */ 429ae044309SBrian Norris "SD_CARD_DET_L", 430ae044309SBrian Norris "USB_DP_HPD", 431ae044309SBrian Norris "TOUCH_RESET_L", 432ae044309SBrian Norris "PP3300_DISP_EN", 433ae044309SBrian Norris "", 434ae044309SBrian Norris "SD_SLOT_PWR_EN"; 435ae044309SBrian Norris}; 436ae044309SBrian Norris 437a0aa6bfeSHeiko Stuebnerap_i2c_mic: &i2c1 { 438a0aa6bfeSHeiko Stuebner status = "okay"; 439a0aa6bfeSHeiko Stuebner 440a0aa6bfeSHeiko Stuebner clock-frequency = <400000>; 441a0aa6bfeSHeiko Stuebner 442a0aa6bfeSHeiko Stuebner /* These are relatively safe rise/fall times */ 443a0aa6bfeSHeiko Stuebner i2c-scl-falling-time-ns = <50>; 444a0aa6bfeSHeiko Stuebner i2c-scl-rising-time-ns = <300>; 445a0aa6bfeSHeiko Stuebner 446a0aa6bfeSHeiko Stuebner headsetcodec: rt5514@57 { 447a0aa6bfeSHeiko Stuebner compatible = "realtek,rt5514"; 448a0aa6bfeSHeiko Stuebner reg = <0x57>; 449a0aa6bfeSHeiko Stuebner realtek,dmic-init-delay-ms = <20>; 450a0aa6bfeSHeiko Stuebner }; 451a0aa6bfeSHeiko Stuebner}; 452a0aa6bfeSHeiko Stuebner 453a0aa6bfeSHeiko Stuebnerap_i2c_tp: &i2c5 { 454a0aa6bfeSHeiko Stuebner status = "okay"; 455a0aa6bfeSHeiko Stuebner 456a0aa6bfeSHeiko Stuebner clock-frequency = <400000>; 457a0aa6bfeSHeiko Stuebner 458a0aa6bfeSHeiko Stuebner /* These are relatively safe rise/fall times */ 459a0aa6bfeSHeiko Stuebner i2c-scl-falling-time-ns = <50>; 460a0aa6bfeSHeiko Stuebner i2c-scl-rising-time-ns = <300>; 461a0aa6bfeSHeiko Stuebner 462a0aa6bfeSHeiko Stuebner /* 463a0aa6bfeSHeiko Stuebner * Note strange pullup enable. Apparently this avoids leakage but 464a0aa6bfeSHeiko Stuebner * still allows us to get nice 4.7K pullups for high speed i2c 465a0aa6bfeSHeiko Stuebner * transfers. Basically we want the pullup on whenever the ap is 466a0aa6bfeSHeiko Stuebner * alive, so the "en" pin just gets set to output high. 467a0aa6bfeSHeiko Stuebner */ 468a0aa6bfeSHeiko Stuebner pinctrl-0 = <&i2c5_xfer &ap_i2c_tp_pu_en>; 469a0aa6bfeSHeiko Stuebner}; 470a0aa6bfeSHeiko Stuebner 471a0aa6bfeSHeiko Stuebner&cros_ec { 472a0024f55SKrzysztof Kozlowski cros_ec_pwm: pwm { 473a0aa6bfeSHeiko Stuebner compatible = "google,cros-ec-pwm"; 474a0aa6bfeSHeiko Stuebner #pwm-cells = <1>; 475a0aa6bfeSHeiko Stuebner }; 476a0aa6bfeSHeiko Stuebner 4776f7e1c19SEnric Balletbo i Serra usbc_extcon1: extcon1 { 478a0aa6bfeSHeiko Stuebner compatible = "google,extcon-usbc-cros-ec"; 479a0aa6bfeSHeiko Stuebner google,usb-port-id = <1>; 480a0aa6bfeSHeiko Stuebner }; 481a0aa6bfeSHeiko Stuebner}; 482a0aa6bfeSHeiko Stuebner 483a0aa6bfeSHeiko Stuebner&sound { 484a0aa6bfeSHeiko Stuebner rockchip,codec = <&max98357a &headsetcodec 485a0aa6bfeSHeiko Stuebner &codec &wacky_spi_audio &cdn_dp>; 486a0aa6bfeSHeiko Stuebner}; 487a0aa6bfeSHeiko Stuebner 488a0aa6bfeSHeiko Stuebner&spi2 { 489a0aa6bfeSHeiko Stuebner wacky_spi_audio: spi2@0 { 490a0aa6bfeSHeiko Stuebner compatible = "realtek,rt5514"; 491a0aa6bfeSHeiko Stuebner reg = <0>; 492a0aa6bfeSHeiko Stuebner interrupt-parent = <&gpio1>; 493a0aa6bfeSHeiko Stuebner interrupts = <13 IRQ_TYPE_LEVEL_HIGH>; 494a0aa6bfeSHeiko Stuebner pinctrl-names = "default"; 495a0aa6bfeSHeiko Stuebner pinctrl-0 = <&mic_int>; 496a0aa6bfeSHeiko Stuebner /* May run faster once verified. */ 497a0aa6bfeSHeiko Stuebner spi-max-frequency = <10000000>; 498a0aa6bfeSHeiko Stuebner wakeup-source; 499a0aa6bfeSHeiko Stuebner }; 500a0aa6bfeSHeiko Stuebner}; 501a0aa6bfeSHeiko Stuebner 502a0aa6bfeSHeiko Stuebner&pci_rootport { 503a0aa6bfeSHeiko Stuebner mvl_wifi: wifi@0,0 { 504a0aa6bfeSHeiko Stuebner compatible = "pci1b4b,2b42"; 505c13c823aSRob Herring reg = <0x0000 0x0 0x0 0x0 0x0>; 506a0aa6bfeSHeiko Stuebner interrupt-parent = <&gpio0>; 507a0aa6bfeSHeiko Stuebner interrupts = <8 IRQ_TYPE_LEVEL_LOW>; 508a0aa6bfeSHeiko Stuebner pinctrl-names = "default"; 509a0aa6bfeSHeiko Stuebner pinctrl-0 = <&wlan_host_wake_l>; 510a0aa6bfeSHeiko Stuebner wakeup-source; 511a0aa6bfeSHeiko Stuebner }; 512a0aa6bfeSHeiko Stuebner}; 513a0aa6bfeSHeiko Stuebner 514a0aa6bfeSHeiko Stuebner&tcphy1 { 515a0aa6bfeSHeiko Stuebner status = "okay"; 516a0aa6bfeSHeiko Stuebner extcon = <&usbc_extcon1>; 517a0aa6bfeSHeiko Stuebner}; 518a0aa6bfeSHeiko Stuebner 519a0aa6bfeSHeiko Stuebner&u2phy1 { 520a0aa6bfeSHeiko Stuebner status = "okay"; 521a0aa6bfeSHeiko Stuebner}; 522a0aa6bfeSHeiko Stuebner 523a0aa6bfeSHeiko Stuebner&usb_host0_ehci { 524a0aa6bfeSHeiko Stuebner status = "okay"; 525a0aa6bfeSHeiko Stuebner}; 526a0aa6bfeSHeiko Stuebner 527a0aa6bfeSHeiko Stuebner&usb_host1_ehci { 528a0aa6bfeSHeiko Stuebner status = "okay"; 529a0aa6bfeSHeiko Stuebner}; 530a0aa6bfeSHeiko Stuebner 531a0aa6bfeSHeiko Stuebner&usb_host1_ohci { 532a0aa6bfeSHeiko Stuebner status = "okay"; 533a0aa6bfeSHeiko Stuebner}; 534a0aa6bfeSHeiko Stuebner 535a0aa6bfeSHeiko Stuebner&usbdrd3_1 { 536a0aa6bfeSHeiko Stuebner status = "okay"; 537a0aa6bfeSHeiko Stuebner extcon = <&usbc_extcon1>; 538a0aa6bfeSHeiko Stuebner}; 539a0aa6bfeSHeiko Stuebner 540a0aa6bfeSHeiko Stuebner&usbdrd_dwc3_1 { 541a0aa6bfeSHeiko Stuebner status = "okay"; 542a0aa6bfeSHeiko Stuebner dr_mode = "host"; 543a0aa6bfeSHeiko Stuebner}; 544a0aa6bfeSHeiko Stuebner 545a0aa6bfeSHeiko Stuebner&pinctrl { 5465c96e633SJohan Jonker discretes { 547a0aa6bfeSHeiko Stuebner pp1500_en: pp1500-en { 548d64420e8SHeiko Stuebner rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO 549a0aa6bfeSHeiko Stuebner &pcfg_pull_none>; 550a0aa6bfeSHeiko Stuebner }; 551a0aa6bfeSHeiko Stuebner 552a0aa6bfeSHeiko Stuebner pp1800_audio_en: pp1800-audio-en { 553d64420e8SHeiko Stuebner rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO 554a0aa6bfeSHeiko Stuebner &pcfg_pull_down>; 555a0aa6bfeSHeiko Stuebner }; 556a0aa6bfeSHeiko Stuebner 557a0aa6bfeSHeiko Stuebner pp3000_en: pp3000-en { 558d64420e8SHeiko Stuebner rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO 559a0aa6bfeSHeiko Stuebner &pcfg_pull_none>; 560a0aa6bfeSHeiko Stuebner }; 561a0aa6bfeSHeiko Stuebner 562a0aa6bfeSHeiko Stuebner pp3300_disp_en: pp3300-disp-en { 563d64420e8SHeiko Stuebner rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO 564a0aa6bfeSHeiko Stuebner &pcfg_pull_none>; 565a0aa6bfeSHeiko Stuebner }; 566a0aa6bfeSHeiko Stuebner 567a0aa6bfeSHeiko Stuebner wlan_module_pd_l: wlan-module-pd-l { 568d64420e8SHeiko Stuebner rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO 569a0aa6bfeSHeiko Stuebner &pcfg_pull_down>; 570a0aa6bfeSHeiko Stuebner }; 571a0aa6bfeSHeiko Stuebner }; 572a0aa6bfeSHeiko Stuebner}; 573a0aa6bfeSHeiko Stuebner 574a0aa6bfeSHeiko Stuebner&wifi { 575a0aa6bfeSHeiko Stuebner wifi_perst_l: wifi-perst-l { 576d64420e8SHeiko Stuebner rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; 577a0aa6bfeSHeiko Stuebner }; 578a0aa6bfeSHeiko Stuebner 579a0aa6bfeSHeiko Stuebner wlan_host_wake_l: wlan-host-wake-l { 580e5467359SBrian Norris /* Kevin has an external pull up, but Bob does not */ 581d64420e8SHeiko Stuebner rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 582a0aa6bfeSHeiko Stuebner }; 583a0aa6bfeSHeiko Stuebner}; 584