// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * Google Herobrine board device tree source * * Copyright 2021 Google LLC. */ /dts-v1/; #include #include #include #include #include #include #include #include "sc7280.dtsi" /* PMICs depend on spmi_bus label and so must come after SoC */ #include "pm7325.dtsi" #include "pm8350c.dtsi" #include "pmk8350.dtsi" /* * Reserved memory changes * * Delete all unused memory nodes and define the peripheral memory regions * required by the board dts. * */ /delete-node/ &hyp_mem; /delete-node/ &xbl_mem; /delete-node/ &sec_apps_mem; /* Increase the size from 2MB to 8MB */ &rmtfs_mem { reg = <0x0 0x83600000 0x0 0x800000>; }; / { reserved-memory { adsp_mem: memory@86700000 { reg = <0x0 0x86700000 0x0 0x2800000>; no-map; }; camera_mem: memory@8ad00000 { reg = <0x0 0x8ad00000 0x0 0x500000>; no-map; }; venus_mem: memory@8b200000 { reg = <0x0 0x8b200000 0x0 0x500000>; no-map; }; mpss_mem: memory@8b800000 { reg = <0x0 0x8b800000 0x0 0xf600000>; no-map; }; wpss_mem: memory@9ae00000 { reg = <0x0 0x9ae00000 0x0 0x1900000>; no-map; }; mba_mem: memory@9c700000 { reg = <0x0 0x9c700000 0x0 0x200000>; no-map; }; }; aliases { serial0 = &uart5; serial1 = &uart7; }; chosen { stdout-path = "serial0:115200n8"; }; /* FIXED REGULATORS - parents above children */ /* This is the top level supply and variable voltage */ ppvar_sys: ppvar-sys-regulator { compatible = "regulator-fixed"; regulator-name = "ppvar_sys"; regulator-always-on; regulator-boot-on; }; /* This divides ppvar_sys by 2, so voltage is variable */ src_vph_pwr: src-vph-pwr-regulator { compatible = "regulator-fixed"; regulator-name = "src_vph_pwr"; /* EC turns on with switchcap_on; always on for AP */ regulator-always-on; regulator-boot-on; vin-supply = <&ppvar_sys>; }; pp5000_s3: pp5000-s3-regulator { compatible = "regulator-fixed"; regulator-name = "pp5000_s3"; /* EC turns on with en_pp5000_s3; always on for AP */ regulator-always-on; regulator-boot-on; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; vin-supply = <&ppvar_sys>; }; pp3300_z1: pp3300-z1-regulator { compatible = "regulator-fixed"; regulator-name = "pp3300_z1"; /* EC turns on with en_pp3300_z1; always on for AP */ regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&ppvar_sys>; }; pp3300_audio: pp3300_codec: pp3300-codec-regulator { compatible = "regulator-fixed"; regulator-name = "pp3300_codec"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; gpio = <&tlmm 67 GPIO_ACTIVE_HIGH>; enable-active-high; pinctrl-names = "default"; pinctrl-0 = <&en_pp3300_codec>; vin-supply = <&pp3300_z1>; }; pp3300_cam: pp3300_edp: pp3300_ts: pp3300-edp-regulator { compatible = "regulator-fixed"; regulator-name = "pp3300_edp"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; gpio = <&tlmm 80 GPIO_ACTIVE_HIGH>; enable-active-high; pinctrl-names = "default"; pinctrl-0 = <&en_pp3300_dx_edp>; vin-supply = <&pp3300_z1>; }; pp3300_fp: pp3300_fp_ls: pp3300_mcu: pp3300-fp-regulator { compatible = "regulator-fixed"; regulator-name = "pp3300_fp"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-boot-on; regulator-always-on; /* * WARNING: it is intentional that GPIO 42 isn't listed here. * The userspace script for updating the fingerprint firmware * needs to control the FP regulators during a FW update, * hence the signal can't be owned by the kernel regulator. */ pinctrl-names = "default"; pinctrl-0 = <&en_fp_rails>; vin-supply = <&pp3300_z1>; }; pp3300_hub: pp3300-hub-regulator { compatible = "regulator-fixed"; regulator-name = "pp3300_hub"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-boot-on; regulator-always-on; gpio = <&tlmm 24 GPIO_ACTIVE_HIGH>; enable-active-high; pinctrl-names = "default"; pinctrl-0 = <&en_pp3300_hub>; vin-supply = <&pp3300_z1>; }; pp3300_tp: pp3300-tp-regulator { compatible = "regulator-fixed"; regulator-name = "pp3300_tp"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; /* AP turns on with PP1800_L18B_S0; always on for AP */ regulator-always-on; regulator-boot-on; vin-supply = <&pp3300_z1>; }; pp2850_uf_cam: pp2850-uf-cam { compatible = "regulator-fixed"; regulator-name = "pp2850_uf_cam"; regulator-min-microvolt = <2850000>; regulator-max-microvolt = <2850000>; gpio = <&tlmm 6 GPIO_ACTIVE_HIGH>; enable-active-high; pinctrl-names = "default"; pinctrl-0 = <&uf_cam_en>; vin-supply = <&pp3300_cam>; }; pp2850_vcm_wf_cam: pp2850-vcm-wf-cam { compatible = "regulator-fixed"; regulator-name = "pp2850_vcm_wf_cam"; regulator-min-microvolt = <2850000>; regulator-max-microvolt = <2850000>; gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>; enable-active-high; pinctrl-names = "default"; pinctrl-0 = <&wf_cam_en>; vin-supply = <&pp3300_cam>; }; pp2850_wf_cam: pp2850-wf-cam { compatible = "regulator-fixed"; regulator-name = "pp2850_wf_cam"; regulator-min-microvolt = <2850000>; regulator-max-microvolt = <2850000>; gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>; enable-active-high; /* * The pinconf can only be referenced once so we put it on the * first regulator and comment it out here. * * pinctrl-names = "default"; * pinctrl-0 = <&wf_cam_en>; */ vin-supply = <&pp3300_cam>; }; pp1800_fp: pp1800-fp-regulator { compatible = "regulator-fixed"; regulator-name = "pp1800_fp"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-boot-on; regulator-always-on; /* * WARNING: it is intentional that GPIO 42 isn't listed here. * The userspace script for updating the fingerprint firmware * needs to control the FP regulators during a FW update, * hence the signal can't be owned by the kernel regulator. */ pinctrl-names = "default"; pinctrl-0 = <&en_fp_rails>; vin-supply = <&pp1800_l18b_s0>; status = "disabled"; }; pp1800_uf_cam: pp1800-uf-cam { compatible = "regulator-fixed"; regulator-name = "pp1800_uf_cam"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; gpio = <&tlmm 6 GPIO_ACTIVE_HIGH>; enable-active-high; /* * The pinconf can only be referenced once so we put it on the * first regulator and comment it out here. * * pinctrl-names = "default"; * pinctrl-0 = <&uf_cam_en>; */ vin-supply = <&pp1800_l19b>; }; pp1800_wf_cam: pp1800-wf-cam { compatible = "regulator-fixed"; regulator-name = "pp1800_wf_cam"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>; enable-active-high; /* * The pinconf can only be referenced once so we put it on the * first regulator and comment it out here. * * pinctrl-names = "default"; * pinctrl-0 = <&wf_cam_en>; */ vin-supply = <&pp1800_l19b>; }; pp1200_wf_cam: pp1200-wf-cam { compatible = "regulator-fixed"; regulator-name = "pp1200_wf_cam"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>; enable-active-high; /* * The pinconf can only be referenced once so we put it on the * first regulator and comment it out here. * * pinctrl-names = "default"; * pinctrl-0 = <&wf_cam_en>; */ vin-supply = <&pp1200_l6b>; }; /* BOARD-SPECIFIC TOP LEVEL NODES */ gpio_keys: gpio-keys { compatible = "gpio-keys"; status = "disabled"; pinctrl-names = "default"; pinctrl-0 = <&pen_pdct_l>; pen_insert: pen-insert { label = "Pen Insert"; /* Insert = low, eject = high */ gpios = <&tlmm 39 GPIO_ACTIVE_LOW>; linux,code = ; linux,input-type = ; wakeup-event-action = ; wakeup-source; }; }; pwmleds { compatible = "pwm-leds"; status = "disabled"; keyboard_backlight: keyboard-backlight { status = "disabled"; label = "cros_ec::kbd_backlight"; pwms = <&cros_ec_pwm 0>; max-brightness = <1023>; }; }; }; &apps_rsc { pm7325-regulators { compatible = "qcom,pm7325-rpmh-regulators"; qcom,pmic-id = "b"; vdd19_pmu_pcie_i: vdd19_pmu_rfa_i: vreg_s1b_wlan: vreg_s1b: smps1 { regulator-min-microvolt = <1856000>; regulator-max-microvolt = <2040000>; }; vdd_pmu_aon_i: vreg_s7b_wlan: vreg_s7b: smps7 { regulator-min-microvolt = <535000>; regulator-max-microvolt = <1120000>; }; vdd13_pmu_pcie_i: vdd13_pmu_rfa_i: vreg_s8b_wlan: vreg_s8b: smps8 { regulator-min-microvolt = <1256000>; regulator-max-microvolt = <1500000>; }; vdda_usb_ss_dp_core: vreg_l1b: ldo1 { regulator-min-microvolt = <825000>; regulator-max-microvolt = <925000>; regulator-initial-mode = ; }; vdda_usb_hs0_3p1: vreg_l2b: ldo2 { regulator-min-microvolt = <2700000>; regulator-max-microvolt = <3544000>; regulator-initial-mode = ; }; pp1200_l6b: vdd_ufs_1p2: vdd_vref: vdda_csi01_1p2: vdda_csi23_1p2: vdda_csi4_1p2: vdda_dsi0_1p2: vdda_pcie0_1p2: vdda_pcie1_1p2: vdda_usb_ss_dp_1p2: vdda_qlink0_1p2_ck: vdda_qlink1_1p2_ck: vreg_l6b_1p2: vreg_l6b: ldo6 { regulator-min-microvolt = <1120000>; regulator-max-microvolt = <1408000>; regulator-initial-mode = ; }; pp2950_l7b: vreg_l7b: ldo7 { regulator-min-microvolt = <2960000>; regulator-max-microvolt = <2960000>; regulator-initial-mode = ; }; codec_vcc: pp1800_l18b_s0: pp1800_ts: vdd1: vddpx_0: vddpx_3: vddpx_7: vreg_l18b: ldo18 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <2000000>; regulator-initial-mode = ; }; pp1800_l19b: vddpx_ts: vddpx_wl4otp: vreg_l19b: ldo19 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-initial-mode = ; }; }; pm8350c-regulators { compatible = "qcom,pm8350c-rpmh-regulators"; qcom,pmic-id = "c"; vreg_s1c: smps1 { regulator-min-microvolt = <2190000>; regulator-max-microvolt = <2210000>; }; vddpx_1: vreg_s9c: smps9 { regulator-min-microvolt = <1010000>; regulator-max-microvolt = <1170000>; }; pp1800_l1c: pp1800_pen: vdd_a_gfx_cs_1p1: vdd_a_cxo_1p8: vdd_qfprom: vdda_apc_cs_1p8: vdda_qrefs_1p8: vdda_turing_q6_cs_1p8: vdda_usb_hs0_1p8: vreg_l1c: ldo1 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1980000>; regulator-initial-mode = ; }; dmic_vdd: pp1800_alc5682: pp1800_l2c: pp1800_vreg_alc5682: vreg_l2c: ldo2 { regulator-min-microvolt = <1620000>; regulator-max-microvolt = <1980000>; regulator-initial-mode = ; }; pp3300_sar: pp3300_sensor: vreg_l3c: ldo3 { regulator-min-microvolt = <2800000>; regulator-max-microvolt = <3540000>; regulator-initial-mode = ; }; ppvar_uim1: vddpx_5: vreg_l4c: ldo4 { regulator-min-microvolt = <1620000>; regulator-max-microvolt = <3300000>; regulator-initial-mode = ; }; pp2950_l5c: uim_vcc: vddpx_6: vreg_l5c: ldo5 { regulator-min-microvolt = <1620000>; regulator-max-microvolt = <3300000>; regulator-initial-mode = ; }; ppvar_l6c: vddpx_2: vreg_l6c: ldo6 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <2950000>; regulator-initial-mode = ; }; vreg_l7c: ldo7 { regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3544000>; regulator-initial-mode = ; }; pp1800_prox: pp1800_sar: vreg_l8c: ldo8 { regulator-min-microvolt = <1620000>; regulator-max-microvolt = <2000000>; regulator-initial-mode = ; }; pp2950_l9c: vreg_l9c: ldo9 { regulator-min-microvolt = <2960000>; regulator-max-microvolt = <2960000>; regulator-initial-mode = ; }; vdd_a_gnss_0p9: vdd_ufs_core: vdd_usb_hs0_core: vdd_vref_0p9: vdda_csi01_0p9: vdda_csi23_0p9: vdda_csi4_0p9: vdda_dsi0_pll_0p9: vdda_dsi0_0p9: vdda_pcie0_core: vdda_pcie1_core: vdda_qlink0_0p9: vdda_qlink1_0p9: vdda_qlink0_0p9_ck: vdda_qlink1_0p9_ck: vdda_qrefs_0p875: vreg_l10c_0p8: vreg_l10c: ldo10 { regulator-min-microvolt = <720000>; regulator-max-microvolt = <1050000>; regulator-initial-mode = ; }; pp2800_l11c: vreg_l11c: ldo11 { regulator-min-microvolt = <2800000>; regulator-max-microvolt = <3544000>; regulator-initial-mode = ; }; pp1800_l12c: vreg_l12c: ldo12 { regulator-min-microvolt = <1650000>; regulator-max-microvolt = <2000000>; regulator-initial-mode = ; }; pp3300_l13c: vreg_l13c: ldo13 { regulator-min-microvolt = <2700000>; regulator-max-microvolt = <3544000>; regulator-initial-mode = ; }; vreg_bob: bob { regulator-min-microvolt = <3008000>; regulator-max-microvolt = <3960000>; regulator-initial-mode = ; }; }; }; ap_tp_i2c: &i2c1 { status = "okay"; clock-frequency = <400000>; trackpad: trackpad@15 { compatible = "elan,ekth3000"; reg = <0x15>; pinctrl-names = "default"; pinctrl-0 = <&tp_int_odl>; interrupt-parent = <&tlmm>; interrupts = <102 IRQ_TYPE_EDGE_FALLING>; vcc-supply = <&pp3300_z1>; wakeup-source; }; }; ap_h1_i2c: &i2c12 { status = "okay"; clock-frequency = <400000>; tpm@50 { compatible = "google,cr50"; reg = <0x50>; pinctrl-names = "default"; pinctrl-0 = <&h1_ap_int_odl>; interrupt-parent = <&tlmm>; interrupts = <54 IRQ_TYPE_EDGE_RISING>; }; }; ap_ts_pen: &i2c13 { status = "okay"; clock-frequency = <400000>; ap_ts: touchscreen@10 { compatible = "hid-over-i2c"; reg = <0x10>; pinctrl-names = "default"; pinctrl-0 = <&ts_int_l>, <&ts_reset_l>; interrupt-parent = <&tlmm>; interrupts = <81 IRQ_TYPE_LEVEL_LOW>; post-power-on-delay-ms = <20>; hid-descr-addr = <0x0001>; vdd-supply = <&pp3300_ts>; }; }; &pm7325_gpios { status = "disabled"; /* No GPIOs are connected */ }; &pmk8350_gpios { status = "disabled"; /* No GPIOs are connected */ }; &pmk8350_pon { status = "disabled"; }; &pmk8350_rtc { status = "disabled"; }; &pmk8350_vadc { pmk8350_die_temp { reg = ; label = "pmk8350_die_temp"; qcom,pre-scaling = <1 1>; }; pmr735a_die_temp { reg = ; label = "pmr735a_die_temp"; qcom,pre-scaling = <1 1>; }; }; &qfprom { vcc-supply = <&vdd_qfprom>; }; &qspi { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&qspi_clk>, <&qspi_cs0>, <&qspi_data01>; flash@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <37500000>; spi-tx-bus-width = <2>; spi-rx-bus-width = <2>; }; }; &qupv3_id_0 { status = "okay"; }; &qupv3_id_1 { status = "okay"; }; &sdhc_1 { status = "okay"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&sdc1_on>; pinctrl-1 = <&sdc1_off>; vmmc-supply = <&pp2950_l7b>; vqmmc-supply = <&pp1800_l19b>; }; &sdhc_2 { status = "okay"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&sdc2_on>; pinctrl-1 = <&sdc2_off>; vmmc-supply = <&pp2950_l9c>; vqmmc-supply = <&ppvar_l6c>; cd-gpios = <&tlmm 91 GPIO_ACTIVE_LOW>; }; ap_ec_spi: &spi8 { status = "okay"; pinctrl-0 = <&qup_spi8_data_clk>, <&qup_spi8_cs_gpio_init_high>, <&qup_spi8_cs_gpio>; cs-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>; cros_ec: ec@0 { compatible = "google,cros-ec-spi"; reg = <0>; interrupt-parent = <&tlmm>; interrupts = <142 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&ap_ec_int_l>; spi-max-frequency = <3000000>; cros_ec_pwm: ec-pwm { compatible = "google,cros-ec-pwm"; #pwm-cells = <1>; }; i2c_tunnel: i2c-tunnel { compatible = "google,cros-ec-i2c-tunnel"; google,remote-bus = <0>; #address-cells = <1>; #size-cells = <0>; }; typec { compatible = "google,cros-ec-typec"; #address-cells = <1>; #size-cells = <0>; usb_c0: connector@0 { compatible = "usb-c-connector"; reg = <0>; label = "left"; power-role = "dual"; data-role = "host"; try-power-role = "source"; }; usb_c1: connector@1 { compatible = "usb-c-connector"; reg = <1>; label = "right"; power-role = "dual"; data-role = "host"; try-power-role = "source"; }; }; }; }; #include #include &keyboard_controller { function-row-physmap = < MATRIX_KEY(0x00, 0x02, 0) /* T1 */ MATRIX_KEY(0x03, 0x02, 0) /* T2 */ MATRIX_KEY(0x02, 0x02, 0) /* T3 */ MATRIX_KEY(0x01, 0x02, 0) /* T4 */ MATRIX_KEY(0x03, 0x04, 0) /* T5 */ MATRIX_KEY(0x02, 0x04, 0) /* T6 */ MATRIX_KEY(0x01, 0x04, 0) /* T7 */ MATRIX_KEY(0x02, 0x09, 0) /* T8 */ MATRIX_KEY(0x01, 0x09, 0) /* T9 */ MATRIX_KEY(0x00, 0x04, 0) /* T10 */ >; linux,keymap = < MATRIX_KEY(0x00, 0x02, KEY_BACK) MATRIX_KEY(0x03, 0x02, KEY_REFRESH) MATRIX_KEY(0x02, 0x02, KEY_ZOOM) MATRIX_KEY(0x01, 0x02, KEY_SCALE) MATRIX_KEY(0x03, 0x04, KEY_SYSRQ) MATRIX_KEY(0x02, 0x04, KEY_BRIGHTNESSDOWN) MATRIX_KEY(0x01, 0x04, KEY_BRIGHTNESSUP) MATRIX_KEY(0x02, 0x09, KEY_MUTE) MATRIX_KEY(0x01, 0x09, KEY_VOLUMEDOWN) MATRIX_KEY(0x00, 0x04, KEY_VOLUMEUP) CROS_STD_MAIN_KEYMAP >; }; &uart5 { compatible = "qcom,geni-debug-uart"; status = "okay"; }; &uart7 { status = "okay"; }; &usb_1 { status = "okay"; }; &usb_1_dwc3 { dr_mode = "host"; }; &usb_1_hsphy { status = "okay"; vdda-pll-supply = <&vdd_usb_hs0_core>; vdda33-supply = <&vdda_usb_hs0_3p1>; vdda18-supply = <&vdda_usb_hs0_1p8>; }; &usb_1_qmpphy { status = "okay"; vdda-phy-supply = <&vdda_usb_ss_dp_1p2>; vdda-pll-supply = <&vdda_usb_ss_dp_core>; }; &usb_2 { status = "okay"; }; &usb_2_dwc3 { dr_mode = "host"; }; &usb_2_hsphy { status = "okay"; vdda-pll-supply = <&vdd_usb_hs0_core>; vdda33-supply = <&vdda_usb_hs0_3p1>; vdda18-supply = <&vdda_usb_hs0_1p8>; }; /* PINCTRL - additions to nodes defined in sc7280.dtsi */ &qspi_cs0 { bias-disable; }; &qspi_clk { bias-disable; }; &qspi_data01 { /* High-Z when no transfers; nice to park the lines */ bias-pull-up; }; &qup_uart5_rx { drive-strength = <2>; bias-pull-up; }; &qup_uart5_tx { drive-strength = <2>; bias-disable; }; &qup_uart7_cts { /* * Configure a pull-down on CTS to match the pull of * the Bluetooth module. */ bias-pull-down; }; &qup_uart7_rts { /* We'll drive RTS, so no pull */ drive-strength = <2>; bias-disable; }; &qup_uart7_tx { /* We'll drive TX, so no pull */ drive-strength = <2>; bias-disable; }; &qup_uart7_rx { /* * Configure a pull-up on RX. This is needed to avoid * garbage data when the TX pin of the Bluetooth module is * in tri-state (module powered off or not driving the * signal yet). */ bias-pull-up; }; &sdc1_on { clk { bias-disable; drive-strength = <16>; }; cmd { bias-pull-up; drive-strength = <10>; }; data { bias-pull-up; drive-strength = <10>; }; rclk { bias-pull-down; }; }; &sdc2_on { clk { bias-disable; drive-strength = <16>; }; cmd { bias-pull-up; drive-strength = <10>; }; data { bias-pull-up; drive-strength = <10>; }; sd-cd { pins = "gpio91"; bias-pull-up; }; }; /* PINCTRL - board-specific pinctrl */ &pm8350c_gpios { gpio-line-names = "AP_SUSPEND", "", "", "AP_BL_EN", "", "SD_CD_ODL", "", "", "AP_BL_PWM"; ap_bl_en: ap-bl-en { pins = "gpio4"; function = "normal"; qcom,drive-strength = ; bias-disable; /* Force backlight to be disabled to match state at boot. */ output-low; }; }; &tlmm { gpio-line-names = "HP_I2C_SDA", /* 0 */ "HP_I2C_SCL", "SSD_RST_L", "PE_WAKE_ODL", "AP_TP_I2C_SDA", "AP_TP_I2C_SCL", "UF_CAM_EN", "WF_CAM_EN", "AP_SAR_SENSOR_SDA", "AP_SAR_SENSOR_SCL", "", /* 10 */ "", "AP_SPI_MOSI", "AP_SPI_MISO", "AP_SPI_CLK", "AP_SPI_CS0_L", "", "", "EDP_HPD", "", "UF_CAM_RST_L", /* 20 */ "WF_CAM_RST_L", "UART_AP_TX_DBG_RX", "UART_DBG_TX_AP_RX", "EN_PP3300_HUB", "", "HOST2WLAN_SOL", "WLAN2HOST_SOL", "BT_UART_CTS", "BT_UART_RTS", "BT_UART_TXD", /* 30 */ "BT_UART_RXD", "AP_EC_SPI_MISO", "AP_EC_SPI_MOSI", "AP_EC_SPI_CLK", "AP_EC_SPI_CS_L", "", "", "", "PEN_PDCT_L", "IO_BRD_ID0", /* 40 */ "IO_BRD_ID1", "EN_FP_RAILS", "PEN_IRQ_L", "AP_SPI_FP_MISO", "AP_SPI_FP_MOSI", "AP_SPI_FP_CLK", "AP_SPI_FP_CS_L", "AP_H1_SPI_MISO", "AP_H1_SPI_MOSI", "AP_H1_SPI_CLK", /* 50 */ "AP_H1_SPI_CS_L", "AP_TS_PEN_I2C_SDA", "AP_TS_PEN_I2C_SCL", "H1_AP_INT_ODL", "", "LCM_RST_1V8_L", "AMP_EN", "", "DP_HOT_PLUG_DET", "HUB_RST_L", /* 60 */ "FP_TO_AP_IRQ_L", "", "", "UF_CAM_MCLK", "WF_CAM_MCLK", "IO_BRD_ID2", "EN_PP3300_CODEC", "EC_IN_RW_ODL", "UF_CAM_SDA", "UF_CAM_SCL", /* 70 */ "WF_CAM_SDA", "WF_CAM_SCL", "AP_BRD_ID0", "AP_BRD_ID1", "AP_BRD_ID2", "", "FPMCU_BOOT0", "FP_RST_L", "PE_CLKREQ_ODL", "EN_EDP_PP3300", /* 80 */ "TS_INT_L", "FORCE_USB_BOOT", "WCD_RST_L", "WLAN_EN", "BT_EN", "WLAN_SW_CTRL", "PCIE0_RESET_L", "PCIE0_CLK_REQ_L", "PCIE0_WAKE_L", "AS_EN", /* 90 */ "SD_CD_ODL", "", /* * AP_FLASH_WP_L is crossystem ABI. Schematics * call it BIOS_FLASH_WP_L. */ "AP_FLASH_WP_L", "BT_WLAN_SB_CLK", "BT_WLAN_SB_DATA", "HP_MCLK", "HP_BCLK", "HP_DOUT", "HP_DIN", "HP_LRCLK", /* 100 */ "HP_IRQ", "TP_INT_ODL", "", "IO_SKU_ID2", "TS_RESET_L", "AMP_BCLK", "AMP_DIN", "AMP_LRCLK", "UIM2_DATA", "UIM2_CLK", /* 110 */ "UIM2_RST", "UIM2_PRESENT", "UIM1_DATA", "UIM1_CLK", "UIM1_RST", "", "RFFE0_CLK", "RFFE0_DATA/BOOT_CONFIG_0", "RFFE1_CLK", "RFFE1_DATA/BOOT_CONFIG_1", /* 120 */ "RFFE2_CLK", "RFFE2_DATA/BOOT_CONFIG_2", "RFFE3_CLK", "RFFE3_DATA/BOOT_CONFIG_3", "RFFE4_CLK", "RFFE4_DATA", "WCI2_LTE_COEX_RXD", "WCI2_LTE_COEX_TXD", "IO_SKU_ID0", "IO_SKU_ID1", /* 130 */ "", "", "QLINK0_REQ", "QLINK0_EN", "QLINK0_WMSS_RESET_L", "QLINK1_REQ", "QLINK1_EN", "QLINK1_WMSS_RESET_L", "FORCED_USB_BOOT_POL", "", /* 140 */ "P_SENSOR_INT_L", "AP_EC_INT_L", "", "WCD_SWR_TX_CLK", "WCD_SWR_TX_DATA_0", "WCD_SWR_TX_DATA_1", "WCD_SWR_RX_CLK", "WCD_SWR_RX_DATA_0", "WCD_SWR_RX_DATA_1", "", /* 150 */ "", "", "", "", "", "", "", "WCD_SWR_TX_DATA_2", "", "", /* 160 */ "", "", "", "", "", "", "", "", "", "", /* 170 */ "SENS_UART_TXD", "SENS_UART_RXD", "", "", ""; /* * pinctrl settings for pins that have no real owners. */ pinctrl-names = "default"; pinctrl-0 = <&bios_flash_wp_l>; amp_en: amp-en { pins = "gpio57"; function = "gpio"; bias-pull-down; }; ap_ec_int_l: ap-ec-int-l { pins = "gpio142"; input-enable; bias-pull-up; }; bios_flash_wp_l: bios-flash-wp-l { pins = "gpio93"; function = "gpio"; input-enable; bias-disable; }; bt_en: bt-en { pins = "gpio85"; function = "gpio"; drive-strength = <2>; output-low; bias-pull-down; }; en_fp_rails: en-fp-rails { pins = "gpio42"; drive-strength = <2>; output-high; bias-disable; }; en_pp3300_codec: en-pp3300-codec { pins = "gpio67"; drive-strength = <2>; bias-disable; }; en_pp3300_dx_edp: en-pp3300-dx-edp { pins = "gpio80"; function = "gpio"; drive-strength = <2>; /* Has external pulldown */ bias-disable; }; en_pp3300_hub: en-pp3300-hub { pins = "gpio24"; function = "gpio"; drive-strength = <2>; /* Has external pulldown */ bias-disable; }; fp_to_ap_irq_l: fp-to-ap-irq-l { pins = "gpio61"; function = "gpio"; input-enable; /* Has external pullup */ bias-disable; }; h1_ap_int_odl: h1-ap-int-odl { pins = "gpio54"; function = "gpio"; input-enable; bias-pull-up; }; hp_irq: hp-irq { pins = "gpio101"; function = "gpio"; bias-pull-up; }; p_sensor_int_l: p-sensor-int-l { pins = "gpio141"; function = "gpio"; input-enable; bias-pull-up; }; pen_irq_l: pen-irq-l { pins = "gpio43"; function = "gpio"; /* Has external pullup */ bias-disable; }; pen_pdct_l: pen-pdct-l { pins = "gpio39"; function = "gpio"; /* Has external pullup */ bias-disable; }; qup_spi8_cs_gpio_init_high: qup-spi8-cs-gpio-init-high { pins = "gpio35"; output-high; }; qup_spi11_cs_gpio_init_high: qup-spi11-cs-gpio-init-high { pins = "gpio47"; output-high; }; qup_spi12_cs_gpio_init_high: qup-spi12-cs-gpio-init-high { pins = "gpio51"; output-high; }; qup_uart7_sleep_cts: qup-uart7-sleep-cts { pins = "gpio28"; function = "gpio"; /* * Configure a pull-down on CTS to match the pull of * the Bluetooth module. */ bias-pull-down; }; qup_uart7_sleep_rts: qup-uart7-sleep-rts { pins = "gpio29"; function = "gpio"; /* * Configure pull-down on RTS. As RTS is active low * signal, pull it low to indicate the BT SoC that it * can wakeup the system anytime from suspend state by * pulling RX low (by sending wakeup bytes). */ bias-pull-down; }; qup_uart7_sleep_rx: qup-uart7-sleep-rx { pins = "gpio31"; function = "gpio"; /* * Configure a pull-up on RX. This is needed to avoid * garbage data when the TX pin of the Bluetooth module * is floating which may cause spurious wakeups. */ bias-pull-up; }; qup_uart7_sleep_tx: qup-uart7-sleep-tx { pins = "gpio30"; function = "gpio"; /* * Configure pull-up on TX when it isn't actively driven * to prevent BT SoC from receiving garbage during sleep. */ bias-pull-up; }; tp_int_odl: tp-int-odl { pins = "gpio102"; function = "gpio"; /* Has external pullup */ bias-disable; }; ts_int_l: ts-int-l { pins = "gpio81"; function = "gpio"; /* Has external pullup */ bias-pull-up; }; ts_reset_l: ts-reset-l { pins = "gpio105"; function = "gpio"; /* Has external pullup */ bias-disable; drive-strength = <2>; }; uf_cam_en: uf-cam-en { pins = "gpio6"; function = "gpio"; drive-strength = <2>; /* Has external pulldown */ bias-disable; }; wf_cam_en: wf-cam-en { pins = "gpio7"; function = "gpio"; drive-strength = <2>; /* Has external pulldown */ bias-disable; }; };