blob: 4619fa9fcacd50ef4a6b21f93b6606f77554104c [file] [log] [blame]
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Google Herobrine board device tree source
*
* Copyright 2021 Google LLC.
*/
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
#include <dt-bindings/iio/qcom,spmi-adc7-pmr735a.h>
#include <dt-bindings/input/gpio-keys.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#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 = <SW_PEN_INSERTED>;
linux,input-type = <EV_SW>;
wakeup-event-action = <EV_ACT_DEASSERTED>;
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 = <RPMH_REGULATOR_MODE_HPM>;
};
vdda_usb_hs0_3p1:
vreg_l2b: ldo2 {
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
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 = <RPMH_REGULATOR_MODE_HPM>;
};
pp2950_l7b:
vreg_l7b: ldo7 {
regulator-min-microvolt = <2960000>;
regulator-max-microvolt = <2960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
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 = <RPMH_REGULATOR_MODE_HPM>;
};
pp1800_l19b:
vddpx_ts:
vddpx_wl4otp:
vreg_l19b: ldo19 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
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 = <RPMH_REGULATOR_MODE_HPM>;
};
dmic_vdd:
pp1800_alc5682:
pp1800_l2c:
pp1800_vreg_alc5682:
vreg_l2c: ldo2 {
regulator-min-microvolt = <1620000>;
regulator-max-microvolt = <1980000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp3300_sar:
pp3300_sensor:
vreg_l3c: ldo3 {
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3540000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
ppvar_uim1:
vddpx_5:
vreg_l4c: ldo4 {
regulator-min-microvolt = <1620000>;
regulator-max-microvolt = <3300000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp2950_l5c:
uim_vcc:
vddpx_6:
vreg_l5c: ldo5 {
regulator-min-microvolt = <1620000>;
regulator-max-microvolt = <3300000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
ppvar_l6c:
vddpx_2:
vreg_l6c: ldo6 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2950000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7c: ldo7 {
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp1800_prox:
pp1800_sar:
vreg_l8c: ldo8 {
regulator-min-microvolt = <1620000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp2950_l9c:
vreg_l9c: ldo9 {
regulator-min-microvolt = <2960000>;
regulator-max-microvolt = <2960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
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 = <RPMH_REGULATOR_MODE_HPM>;
};
pp2800_l11c:
vreg_l11c: ldo11 {
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp1800_l12c:
vreg_l12c: ldo12 {
regulator-min-microvolt = <1650000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp3300_l13c:
vreg_l13c: ldo13 {
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_bob: bob {
regulator-min-microvolt = <3008000>;
regulator-max-microvolt = <3960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
};
};
};
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 = <PMK8350_ADC7_DIE_TEMP>;
label = "pmk8350_die_temp";
qcom,pre-scaling = <1 1>;
};
pmr735a_die_temp {
reg = <PMR735A_ADC7_DIE_TEMP>;
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 <arm/cros-ec-keyboard.dtsi>
#include <arm/cros-ec-sbs.dtsi>
&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 = <PMIC_GPIO_STRENGTH_LOW>;
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;
};
};