| // SPDX-License-Identifier: (GPL-2.0+ OR MIT) |
| /* |
| * Google Gru-scarlet board device tree source |
| * |
| * Copyright 2018 Google, Inc |
| */ |
| |
| #include "rk3399-gru.dtsi" |
| |
| /{ |
| chassis-type = "tablet"; |
| |
| /* Power tree */ |
| |
| /* ppvar_sys children, sorted by name */ |
| pp1250_s3: pp1250-s3 { |
| compatible = "regulator-fixed"; |
| regulator-name = "pp1250_s3"; |
| |
| /* EC turns on w/ pp1250_s3_en; always on for AP */ |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-min-microvolt = <1250000>; |
| regulator-max-microvolt = <1250000>; |
| |
| vin-supply = <&ppvar_sys>; |
| }; |
| |
| pp1250_cam: pp1250-dvdd { |
| compatible = "regulator-fixed"; |
| regulator-name = "pp1250_dvdd"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pp1250_cam_en>; |
| |
| enable-active-high; |
| gpio = <&gpio2 4 GPIO_ACTIVE_HIGH>; |
| |
| /* 740us delay from gpio output high to pp1250 stable, |
| * rounding up to 1ms for safety. |
| */ |
| startup-delay-us = <1000>; |
| vin-supply = <&pp1250_s3>; |
| }; |
| |
| pp900_s0: pp900-s0 { |
| compatible = "regulator-fixed"; |
| regulator-name = "pp900_s0"; |
| |
| /* EC turns on w/ pp900_s0_en; always on for AP */ |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-min-microvolt = <900000>; |
| regulator-max-microvolt = <900000>; |
| |
| vin-supply = <&ppvar_sys>; |
| }; |
| |
| ppvarn_lcd: ppvarn-lcd { |
| compatible = "regulator-fixed"; |
| regulator-name = "ppvarn_lcd"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&ppvarn_lcd_en>; |
| |
| enable-active-high; |
| gpio = <&gpio4 28 GPIO_ACTIVE_HIGH>; |
| vin-supply = <&ppvar_sys>; |
| }; |
| |
| ppvarp_lcd: ppvarp-lcd { |
| compatible = "regulator-fixed"; |
| regulator-name = "ppvarp_lcd"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&ppvarp_lcd_en>; |
| |
| enable-active-high; |
| gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>; |
| vin-supply = <&ppvar_sys>; |
| }; |
| |
| /* pp1800 children, sorted by name */ |
| pp900_s3: pp900-s3 { |
| compatible = "regulator-fixed"; |
| regulator-name = "pp900_s3"; |
| |
| /* EC turns on w/ pp900_s3_en; always on for AP */ |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-min-microvolt = <900000>; |
| regulator-max-microvolt = <900000>; |
| |
| vin-supply = <&pp1800>; |
| }; |
| |
| /* EC turns on pp1800_s3_en */ |
| pp1800_s3: pp1800 { |
| }; |
| |
| /* pp3300 children, sorted by name */ |
| pp2800_cam: pp2800-avdd { |
| compatible = "regulator-fixed"; |
| regulator-name = "pp2800_avdd"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pp2800_cam_en>; |
| |
| enable-active-high; |
| gpio = <&gpio2 24 GPIO_ACTIVE_HIGH>; |
| startup-delay-us = <100>; |
| vin-supply = <&pp3300>; |
| }; |
| |
| /* EC turns on pp3300_s0_en */ |
| pp3300_s0: pp3300 { |
| }; |
| |
| /* EC turns on pp3300_s3_en */ |
| pp3300_s3: pp3300 { |
| }; |
| |
| /* |
| * See b/66922012 |
| * |
| * This is a hack to make sure the Bluetooth part of the QCA6174A |
| * is reset at boot by toggling BT_EN. At boot BT_EN is first set |
| * to low when the bt_3v3 regulator is registered (in disabled |
| * state). The fake regulator is configured as a supply of the |
| * wlan_3v3 regulator below. When wlan_3v3 is enabled early in |
| * the boot process it also enables its supply regulator bt_3v3, |
| * which changes BT_EN to high. |
| */ |
| bt_3v3: bt-3v3 { |
| compatible = "regulator-fixed"; |
| regulator-name = "bt_3v3"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&bt_en_1v8_l>; |
| |
| enable-active-high; |
| gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>; |
| vin-supply = <&pp3300_s3>; |
| }; |
| |
| wlan_3v3: wlan-3v3 { |
| compatible = "regulator-fixed"; |
| regulator-name = "wlan_3v3"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&wlan_pd_1v8_l>; |
| |
| /* |
| * The WL_EN pin is driven low when the regulator is |
| * registered, and transitions to high when the PCIe bus |
| * is powered up. |
| */ |
| enable-active-high; |
| gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; |
| |
| /* |
| * Require minimum 10ms from power-on (e.g., PD#) to init PCIe. |
| * TODO (b/64444991): how long to assert PD#? |
| */ |
| regulator-enable-ramp-delay = <10000>; |
| /* See bt_3v3 hack above */ |
| vin-supply = <&bt_3v3>; |
| }; |
| |
| backlight: backlight { |
| compatible = "pwm-backlight"; |
| enable-gpios = <&gpio4 21 GPIO_ACTIVE_HIGH>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&bl_en>; |
| pwms = <&pwm1 0 1000000 0>; |
| }; |
| |
| dmic: dmic { |
| compatible = "dmic-codec"; |
| dmicen-gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&dmic_en>; |
| wakeup-delay-ms = <250>; |
| }; |
| |
| gpio_keys: gpio-keys { |
| compatible = "gpio-keys"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pen_eject_odl>; |
| |
| switch-pen-insert { |
| label = "Pen Insert"; |
| /* Insert = low, eject = high */ |
| gpios = <&gpio1 1 GPIO_ACTIVE_LOW>; |
| linux,code = <SW_PEN_INSERTED>; |
| linux,input-type = <EV_SW>; |
| wakeup-source; |
| }; |
| }; |
| }; |
| |
| /* pp900_s0 aliases */ |
| pp900_ddrpll_ap: &pp900_s0 { |
| }; |
| pp900_pcie: &pp900_s0 { |
| }; |
| pp900_usb: &pp900_s0 { |
| }; |
| |
| /* pp900_s3 aliases */ |
| pp900_emmcpll: &pp900_s3 { |
| }; |
| |
| /* EC turns on; alias for pp1800_s0 */ |
| pp1800_pcie: &pp1800_s0 { |
| }; |
| |
| /* On scarlet PPVAR(big_cpu, lit_cpu, gpu) need to adjust voltage ranges */ |
| &ppvar_bigcpu { |
| ctrl-voltage-range = <800074 1299226>; |
| regulator-min-microvolt = <800074>; |
| regulator-max-microvolt = <1299226>; |
| }; |
| |
| &ppvar_bigcpu_pwm { |
| /* On scarlet ppvar big cpu use pwm3 */ |
| pwms = <&pwm3 0 3337 0>; |
| regulator-min-microvolt = <800074>; |
| regulator-max-microvolt = <1299226>; |
| }; |
| |
| &ppvar_litcpu { |
| ctrl-voltage-range = <802122 1199620>; |
| regulator-min-microvolt = <802122>; |
| regulator-max-microvolt = <1199620>; |
| }; |
| |
| &ppvar_litcpu_pwm { |
| regulator-min-microvolt = <802122>; |
| regulator-max-microvolt = <1199620>; |
| }; |
| |
| &ppvar_gpu { |
| ctrl-voltage-range = <799600 1099600>; |
| regulator-min-microvolt = <799600>; |
| regulator-max-microvolt = <1099600>; |
| }; |
| |
| &ppvar_gpu_pwm { |
| regulator-min-microvolt = <799600>; |
| regulator-max-microvolt = <1099600>; |
| }; |
| |
| &ppvar_sd_card_io { |
| states = <1800000 0x0>, <3300000 0x1>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| &pp3000_sd_slot { |
| vin-supply = <&pp3300>; |
| }; |
| |
| ap_i2c_dig: &i2c2 { |
| status = "okay"; |
| |
| clock-frequency = <400000>; |
| |
| /* These are relatively safe rise/fall times. */ |
| i2c-scl-falling-time-ns = <50>; |
| i2c-scl-rising-time-ns = <300>; |
| |
| digitizer: digitizer@9 { |
| compatible = "hid-over-i2c"; |
| reg = <0x9>; |
| interrupt-parent = <&gpio1>; |
| interrupts = <0 IRQ_TYPE_LEVEL_LOW>; |
| hid-descr-addr = <0x1>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pen_int_odl &pen_reset_l>; |
| }; |
| }; |
| |
| &ap_i2c_ts { |
| touchscreen: touchscreen@10 { |
| compatible = "elan,ekth3500"; |
| reg = <0x10>; |
| interrupt-parent = <&gpio1>; |
| interrupts = <4 IRQ_TYPE_LEVEL_LOW>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&touch_int_l &touch_reset_l>; |
| reset-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>; |
| }; |
| }; |
| |
| camera: &i2c7 { |
| status = "okay"; |
| |
| clock-frequency = <400000>; |
| |
| /* These are relatively safe rise/fall times; TODO: measure */ |
| i2c-scl-falling-time-ns = <50>; |
| i2c-scl-rising-time-ns = <300>; |
| |
| /* 24M mclk is shared between world and user cameras */ |
| pinctrl-0 = <&i2c7_xfer &test_clkout1>; |
| |
| /* Rear-facing camera */ |
| wcam: camera@36 { |
| compatible = "ovti,ov5695"; |
| reg = <0x36>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&wcam_rst>; |
| |
| clocks = <&cru SCLK_TESTCLKOUT1>; |
| clock-names = "xvclk"; |
| |
| avdd-supply = <&pp2800_cam>; |
| dvdd-supply = <&pp1250_cam>; |
| dovdd-supply = <&pp1800_s0>; |
| reset-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>; |
| |
| port { |
| wcam_out: endpoint { |
| remote-endpoint = <&mipi_in_wcam>; |
| data-lanes = <1 2>; |
| }; |
| }; |
| }; |
| |
| /* Front-facing camera */ |
| ucam: camera@3c { |
| compatible = "ovti,ov2685"; |
| reg = <0x3c>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&ucam_rst>; |
| |
| clocks = <&cru SCLK_TESTCLKOUT1>; |
| clock-names = "xvclk"; |
| |
| avdd-supply = <&pp2800_cam>; |
| dovdd-supply = <&pp1800_s0>; |
| dvdd-supply = <&pp1800_s0>; |
| reset-gpios = <&gpio2 3 GPIO_ACTIVE_LOW>; |
| |
| port { |
| ucam_out: endpoint { |
| remote-endpoint = <&mipi_in_ucam>; |
| data-lanes = <1>; |
| }; |
| }; |
| }; |
| }; |
| |
| &cdn_dp { |
| extcon = <&usbc_extcon0>; |
| phys = <&tcphy0_dp>; |
| }; |
| |
| &cpu_alert0 { |
| temperature = <66000>; |
| }; |
| |
| &cpu_alert1 { |
| temperature = <71000>; |
| }; |
| |
| &cros_ec { |
| interrupt-parent = <&gpio1>; |
| interrupts = <18 IRQ_TYPE_LEVEL_LOW>; |
| }; |
| |
| &cru { |
| assigned-clocks = |
| <&cru PLL_GPLL>, <&cru PLL_CPLL>, |
| <&cru PLL_NPLL>, |
| <&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>, |
| <&cru PCLK_PERIHP>, |
| <&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>, |
| <&cru PCLK_PERILP0>, <&cru ACLK_CCI>, |
| <&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>, |
| <&cru ACLK_VIO>, |
| <&cru ACLK_GIC_PRE>, |
| <&cru PCLK_DDR>, |
| <&cru ACLK_HDCP>, |
| <&cru ACLK_VDU>; |
| assigned-clock-rates = |
| <600000000>, <1600000000>, |
| <1000000000>, |
| <150000000>, <75000000>, |
| <37500000>, |
| <100000000>, <100000000>, |
| <50000000>, <800000000>, |
| <100000000>, <50000000>, |
| <400000000>, |
| <200000000>, |
| <200000000>, |
| <400000000>, |
| <400000000>; |
| }; |
| |
| /* The center supply is fixed to .9V on scarlet */ |
| &dmc { |
| center-supply = <&pp900_s0>; |
| }; |
| |
| /* We don't need .925 V for 928 MHz on scarlet */ |
| &dmc_opp_table { |
| opp03 { |
| opp-microvolt = <900000>; |
| }; |
| }; |
| |
| &gpio0 { |
| gpio-line-names = /* GPIO0 A 0-7 */ |
| "CLK_32K_AP", |
| "EC_IN_RW_OD", |
| "SPK_PA_EN", |
| "WLAN_PERST_1V8_L", |
| "WLAN_PD_1V8_L", |
| "WLAN_RF_KILL_1V8_L", |
| "BIGCPU_DVS_PWM", |
| "SD_CD_L_JTAG_EN", |
| |
| /* GPIO0 B 0-5 */ |
| "BT_EN_BT_RF_KILL_1V8_L", |
| "PMUIO2_33_18_L_PP3300_S0_EN", |
| "TOUCH_RESET_L", |
| "AP_EC_WARM_RESET_REQ", |
| "PEN_RESET_L", |
| /* |
| * AP_FLASH_WP_L is crossystem ABI. Schematics call |
| * it AP_FLASH_WP_R_ODL. |
| */ |
| "AP_FLASH_WP_L"; |
| }; |
| |
| &gpio1 { |
| gpio-line-names = /* GPIO1 A 0-7 */ |
| "PEN_INT_ODL", |
| "PEN_EJECT_ODL", |
| "BT_HOST_WAKE_1V8_L", |
| "WLAN_HOST_WAKE_1V8_L", |
| "TOUCH_INT_ODL", |
| "AP_EC_S3_S0_L", |
| "AP_EC_OVERTEMP", |
| "AP_SPI_FLASH_MISO", |
| |
| /* GPIO1 B 0-7 */ |
| "AP_SPI_FLASH_MOSI_R", |
| "AP_SPI_FLASH_CLK_R", |
| "AP_SPI_FLASH_CS_L_R", |
| "SD_CARD_DET_ODL", |
| "", |
| "AP_EXPANSION_IO1", |
| "AP_EXPANSION_IO2", |
| "AP_I2C_DISP_SDA", |
| |
| /* GPIO1 C 0-7 */ |
| "AP_I2C_DISP_SCL", |
| "H1_INT_ODL", |
| "EC_AP_INT_ODL", |
| "LITCPU_DVS_PWM", |
| "AP_I2C_AUDIO_SDA", |
| "AP_I2C_AUDIO_SCL", |
| "AP_EXPANSION_IO3", |
| "HEADSET_INT_ODL", |
| |
| /* GPIO1 D0 */ |
| "AP_EXPANSION_IO4"; |
| }; |
| |
| &gpio2 { |
| gpio-line-names = /* GPIO2 A 0-7 */ |
| "AP_I2C_PEN_SDA", |
| "AP_I2C_PEN_SCL", |
| "SD_IO_PWR_EN", |
| "UCAM_RST_L", |
| "PP1250_CAM_EN", |
| "WCAM_RST_L", |
| "AP_EXPANSION_IO5", |
| "AP_I2C_CAM_SDA", |
| |
| /* GPIO2 B 0-7 */ |
| "AP_I2C_CAM_SCL", |
| "AP_H1_SPI_MISO", |
| "AP_H1_SPI_MOSI", |
| "AP_H1_SPI_CLK", |
| "AP_H1_SPI_CS_L", |
| "", |
| "", |
| "", |
| |
| /* GPIO2 C 0-7 */ |
| "UART_EXPANSION_TX_AP_RX", |
| "UART_AP_TX_EXPANSION_RX", |
| "UART_EXPANSION_RTS_AP_CTS", |
| "UART_AP_RTS_EXPANSION_CTS", |
| "AP_SPI_EC_MISO", |
| "AP_SPI_EC_MOSI", |
| "AP_SPI_EC_CLK", |
| "AP_SPI_EC_CS_L", |
| |
| /* GPIO2 D 0-4 */ |
| "PP2800_CAM_EN", |
| "CLK_24M_CAM", |
| "WLAN_PCIE_CLKREQ_1V8_L", |
| "", |
| "SD_PWR_3000_1800_L"; |
| }; |
| |
| &gpio3 { |
| gpio-line-names = /* GPIO3 A 0-7 */ |
| "", |
| "", |
| "", |
| "", |
| "", |
| "", |
| "", |
| "", |
| |
| /* GPIO3 B 0-7 */ |
| "", |
| "", |
| "", |
| "", |
| "", |
| "", |
| "", |
| "", |
| |
| /* GPIO3 C 0-7 */ |
| "", |
| "", |
| "", |
| "", |
| "", |
| "", |
| "", |
| "", |
| |
| /* GPIO3 D 0-7 */ |
| "I2S0_SCLK", |
| "I2S0_LRCK_RX", |
| "I2S0_LRCK_TX", |
| "I2S0_SDI_0", |
| "STRAP_LCDBIAS_L", |
| "STRAP_FEATURE_1", |
| "STRAP_FEATURE_2", |
| "I2S0_SDO_0"; |
| }; |
| |
| &gpio4 { |
| gpio-line-names = /* GPIO4 A 0-7 */ |
| "I2S_MCLK", |
| "AP_I2C_EXPANSION_SDA", |
| "AP_I2C_EXPANSION_SCL", |
| "DMIC_EN", |
| "", |
| "", |
| "", |
| "", |
| |
| /* GPIO4 B 0-7 */ |
| "", |
| "", |
| "", |
| "", |
| "", |
| "", |
| "", |
| "", |
| |
| /* GPIO4 C 0-7 */ |
| "AP_I2C_TS_SDA", |
| "AP_I2C_TS_SCL", |
| "GPU_DVS_PWM", |
| "UART_DBG_TX_AP_RX", |
| "UART_AP_TX_DBG_RX", |
| "BL_EN", |
| "BL_PWM", |
| "", |
| |
| /* GPIO4 D 0-5 */ |
| "", |
| "DISPLAY_RST_L", |
| "", |
| "PPVARP_LCD_EN", |
| "PPVARN_LCD_EN", |
| "SD_SLOT_PWR_EN"; |
| }; |
| |
| &i2c_tunnel { |
| google,remote-bus = <0>; |
| }; |
| |
| &io_domains { |
| bt656-supply = <&pp1800_s0>; /* APIO2_VDD; 2a 2b */ |
| audio-supply = <&pp1800_s0>; /* APIO5_VDD; 3d 4a */ |
| gpio1830-supply = <&pp1800_s0>; /* APIO4_VDD; 4c 4d */ |
| }; |
| |
| &isp0 { |
| status = "okay"; |
| |
| ports { |
| port@0 { |
| mipi_in_wcam: endpoint@0 { |
| reg = <0>; |
| remote-endpoint = <&wcam_out>; |
| data-lanes = <1 2>; |
| }; |
| |
| mipi_in_ucam: endpoint@1 { |
| reg = <1>; |
| remote-endpoint = <&ucam_out>; |
| data-lanes = <1>; |
| }; |
| }; |
| }; |
| }; |
| |
| &isp0_mmu { |
| status = "okay"; |
| }; |
| |
| &max98357a { |
| sdmode-gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| &mipi_dphy_rx0 { |
| status = "okay"; |
| }; |
| |
| &mipi_dsi { |
| status = "okay"; |
| clock-master; |
| |
| ports { |
| mipi_out: port@1 { |
| reg = <1>; |
| |
| mipi_out_panel: endpoint { |
| remote-endpoint = <&mipi_in_panel>; |
| }; |
| }; |
| }; |
| |
| mipi_panel: panel@0 { |
| /* 2 different panels are used, compatibles are in dts files */ |
| reg = <0>; |
| backlight = <&backlight>; |
| enable-gpios = <&gpio4 25 GPIO_ACTIVE_HIGH>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&display_rst_l>; |
| |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| port@0 { |
| reg = <0>; |
| |
| mipi_in_panel: endpoint { |
| remote-endpoint = <&mipi_out_panel>; |
| }; |
| }; |
| |
| port@1 { |
| reg = <1>; |
| |
| mipi1_in_panel: endpoint { |
| remote-endpoint = <&mipi1_out_panel>; |
| }; |
| }; |
| }; |
| }; |
| }; |
| |
| &mipi_dsi1 { |
| status = "okay"; |
| |
| ports { |
| mipi1_out: port@1 { |
| reg = <1>; |
| |
| mipi1_out_panel: endpoint { |
| remote-endpoint = <&mipi1_in_panel>; |
| }; |
| }; |
| }; |
| }; |
| |
| &pcie0 { |
| ep-gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>; |
| |
| /* PERST# asserted in S3 */ |
| |
| vpcie3v3-supply = <&wlan_3v3>; |
| vpcie1v8-supply = <&pp1800_pcie>; |
| }; |
| |
| &sdmmc { |
| cd-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; |
| }; |
| |
| &sound { |
| rockchip,codec = <&max98357a &dmic &codec &cdn_dp>; |
| }; |
| |
| &spi2 { |
| status = "okay"; |
| |
| tpm@0 { |
| compatible = "google,cr50"; |
| reg = <0>; |
| interrupt-parent = <&gpio1>; |
| interrupts = <17 IRQ_TYPE_EDGE_RISING>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&h1_int_od_l>; |
| spi-max-frequency = <800000>; |
| }; |
| }; |
| |
| &usb_host0_ohci { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| qca_bt: bluetooth@1 { |
| compatible = "usbcf3,e300", "usb4ca,301a"; |
| reg = <1>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&bt_host_wake_l>; |
| interrupt-parent = <&gpio1>; |
| interrupts = <2 IRQ_TYPE_LEVEL_HIGH>; |
| interrupt-names = "wakeup"; |
| }; |
| }; |
| |
| /* PINCTRL OVERRIDES */ |
| &ap_fw_wp { |
| rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| |
| &bl_en { |
| rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| |
| &bt_host_wake_l { |
| rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| |
| &ec_ap_int_l { |
| rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| |
| &headset_int_l { |
| rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| |
| &i2s0_8ch_bus { |
| rockchip,pins = |
| <3 RK_PD0 1 &pcfg_pull_none_6ma>, |
| <3 RK_PD1 1 &pcfg_pull_none_6ma>, |
| <3 RK_PD2 1 &pcfg_pull_none_6ma>, |
| <3 RK_PD3 1 &pcfg_pull_none_6ma>, |
| <3 RK_PD7 1 &pcfg_pull_none_6ma>, |
| <4 RK_PA0 1 &pcfg_pull_none_6ma>; |
| }; |
| |
| &i2s0_8ch_bus_bclk_off { |
| rockchip,pins = |
| <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none_6ma>, |
| <3 RK_PD1 1 &pcfg_pull_none_6ma>, |
| <3 RK_PD2 1 &pcfg_pull_none_6ma>, |
| <3 RK_PD3 1 &pcfg_pull_none_6ma>, |
| <3 RK_PD7 1 &pcfg_pull_none_6ma>, |
| <4 RK_PA0 1 &pcfg_pull_none_6ma>; |
| }; |
| |
| /* there is no external pull up, so need to set this pin pull up */ |
| &sdmmc_cd_pin { |
| rockchip,pins = <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| |
| &sd_pwr_1800_sel { |
| rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| |
| &sdmode_en { |
| rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_down>; |
| }; |
| |
| &touch_reset_l { |
| rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_down>; |
| }; |
| |
| &touch_int_l { |
| rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>; |
| }; |
| |
| &pinctrl { |
| pinctrl-0 = < |
| &ap_pwroff /* AP will auto-assert this when in S3 */ |
| &clk_32k /* This pin is always 32k on gru boards */ |
| &wlan_rf_kill_1v8_l |
| >; |
| |
| pcfg_pull_none_6ma: pcfg-pull-none-6ma { |
| bias-disable; |
| drive-strength = <6>; |
| }; |
| |
| camera { |
| pp1250_cam_en: pp1250-dvdd { |
| rockchip,pins = <2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| |
| pp2800_cam_en: pp2800-avdd { |
| rockchip,pins = <2 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| |
| ucam_rst: ucam_rst { |
| rockchip,pins = <2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| |
| wcam_rst: wcam_rst { |
| rockchip,pins = <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| }; |
| |
| digitizer { |
| pen_int_odl: pen-int-odl { |
| rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| |
| pen_reset_l: pen-reset-l { |
| rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| }; |
| |
| discrete-regulators { |
| display_rst_l: display-rst-l { |
| rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_down>; |
| }; |
| |
| ppvarp_lcd_en: ppvarp-lcd-en { |
| rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| |
| ppvarn_lcd_en: ppvarn-lcd-en { |
| rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| }; |
| |
| dmic { |
| dmic_en: dmic-en { |
| rockchip,pins = <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| }; |
| |
| pen { |
| pen_eject_odl: pen-eject-odl { |
| rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| }; |
| |
| tpm { |
| h1_int_od_l: h1-int-od-l { |
| rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| }; |
| }; |
| |
| &wifi { |
| bt_en_1v8_l: bt-en-1v8-l { |
| rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| |
| wlan_pd_1v8_l: wlan-pd-1v8-l { |
| rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| |
| /* Default pull-up, but just to be clear */ |
| wlan_rf_kill_1v8_l: wlan-rf-kill-1v8-l { |
| rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| |
| wifi_perst_l: wifi-perst-l { |
| rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| |
| wlan_host_wake_l: wlan-host-wake-l { |
| rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| }; |