blob: bf875589d3640330e0788e90defc9ac454b9a763 [file] [log] [blame]
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Google Trogdor device tree source (common between revisions)
*
* Copyright 2019 Google LLC.
*/
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
/* PMICs depend on spmi_bus label and so must come after SoC */
#include "pm6150.dtsi"
#include "pm6150l.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/ &aop_mem;
/delete-node/ &sec_apps_mem;
/delete-node/ &tz_mem;
/* Increase the size from 2MB to 8MB */
&rmtfs_mem {
reg = <0x0 0x84400000 0x0 0x800000>;
};
/ {
reserved-memory {
atf_mem: memory@80b00000 {
reg = <0x0 0x80b00000 0x0 0x100000>;
no-map;
};
mpss_mem: memory@86000000 {
reg = <0x0 0x86000000 0x0 0x8c00000>;
no-map;
};
camera_mem: memory@8ec00000 {
reg = <0x0 0x8ec00000 0x0 0x500000>;
no-map;
};
venus_mem: memory@8f600000 {
reg = <0 0x8f600000 0 0x500000>;
no-map;
};
wlan_mem: memory@94100000 {
reg = <0x0 0x94100000 0x0 0x200000>;
no-map;
};
mba_mem: memory@94400000 {
reg = <0x0 0x94400000 0x0 0x200000>;
no-map;
};
};
aliases {
bluetooth0 = &bluetooth;
hsuart0 = &uart3;
serial0 = &uart8;
wifi0 = &wifi;
};
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_a: pp5000-a-regulator {
compatible = "regulator-fixed";
regulator-name = "pp5000_a";
/* EC turns on with en_pp5000_a; always on for AP */
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&ppvar_sys>;
};
pp3300_a: pp3300-a-regulator {
compatible = "regulator-fixed";
regulator-name = "pp3300_a";
/* EC turns on with en_pp3300_a; always on for AP */
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
/*
* Actually should be pp3300 but that's practically an alias for
* pp3300_a so we use pp3300's vin-supply here to avoid one more
* node.
*/
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 83 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-names = "default";
pinctrl-0 = <&en_pp3300_codec>;
vin-supply = <&pp3300_a>;
};
pp3300_dx_edp:
pp3300_ts: pp3300-dx-edp-regulator {
compatible = "regulator-fixed";
regulator-name = "pp3300_dx_edp";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&tlmm 30 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-names = "default";
pinctrl-0 = <&en_pp3300_dx_edp>;
vin-supply = <&pp3300_a>;
};
pp3300_fp_tp: pp3300-fp-tp-regulator {
compatible = "regulator-fixed";
regulator-name = "pp3300_fp_tp";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
/* AP turns on with PP1800_VIO_OUT; always on for AP */
regulator-always-on;
regulator-boot-on;
vin-supply = <&pp3300_a>;
};
/* BOARD-SPECIFIC TOP LEVEL NODES */
backlight: backlight {
compatible = "pwm-backlight";
pwms = <&cros_ec_pwm 1>;
enable-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
power-supply = <&ppvar_sys>;
pinctrl-names = "default";
pinctrl-0 = <&ap_edp_bklten>;
};
gpio_keys: gpio-keys {
compatible = "gpio-keys";
status = "disabled";
pinctrl-names = "default";
pinctrl-0 = <&pen_pdct_l>;
pen-insert {
label = "Pen Insert";
/* Insert = low, eject = high */
gpios = <&tlmm 52 GPIO_ACTIVE_LOW>;
linux,code = <SW_PEN_INSERTED>;
linux,input-type = <EV_SW>;
wakeup-source;
};
};
max98357a: audio-codec-0 {
compatible = "maxim,max98357a";
pinctrl-names = "default";
pinctrl-0 = <&amp_en>;
sdmode-gpios = <&tlmm 23 GPIO_ACTIVE_HIGH>;
#sound-dai-cells = <0>;
};
pwmleds {
compatible = "pwm-leds";
keyboard_backlight: keyboard-backlight {
status = "disabled";
label = "cros_ec::kbd_backlight";
pwms = <&cros_ec_pwm 0>;
max-brightness = <1023>;
};
};
};
&qfprom {
vcc-supply = <&pp1800_l11a>;
};
&qspi {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&qspi_clk>, <&qspi_cs0>, <&qspi_data01>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
/* TODO: Increase frequency after testing */
spi-max-frequency = <25000000>;
spi-tx-bus-width = <2>;
spi-rx-bus-width = <2>;
};
};
&apps_rsc {
pm6150-rpmh-regulators {
compatible = "qcom,pm6150-rpmh-regulators";
qcom,pmic-id = "a";
vddpx_1:
vdd2:
pp1125_s1a: smps1 {
regulator-min-microvolt = <1128000>;
regulator-max-microvolt = <1128000>;
};
/*
* pp2040_s5a (smps5) and pp1056_s4a (smps4) are just
* inputs to other rails on AOP-managed PMICs on trogdor.
* The system is already configured to manage these rails
* automatically (enable when needed, adjust voltage for
* headroom) so we won't specify anything here.
*
* NOTE: though the rails have a voltage implied by their
* name, the automatic headroom calculation might not result
* in them being that voltage. ...and that's OK.
* Specifically the only point of these rails is to provide
* an input source for other rails and if we can satisify the
* needs of those other rails with a lower source voltage then
* we save power.
*/
pp1200_l1a: ldo1 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp1000_l2a: ldo2 {
regulator-min-microvolt = <944000>;
regulator-max-microvolt = <1056000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp1000_l3a: ldo3 {
regulator-min-microvolt = <968000>;
regulator-max-microvolt = <1064000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vdd_qlink_lv:
vdd_qlink_lv_ck:
vdd_qusb_hs0_core:
vdd_ufs1_core:
vdda_mipi_csi0_0p9:
vdda_mipi_csi1_0p9:
vdda_mipi_csi2_0p9:
vdda_mipi_csi3_0p9:
vdda_mipi_dsi0_pll:
vdda_pll_cc_ebi01:
vdda_qrefs_0p9:
vdda_usb_ss_dp_core:
pp900_l4a: ldo4 {
regulator-min-microvolt = <824000>;
regulator-max-microvolt = <928000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp2700_l5a: ldo5 {
regulator-min-microvolt = <2704000>;
regulator-max-microvolt = <2704000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
ebi0_cal:
ebi1_cal:
vddio_ck_ebi0:
vddio_ck_ebi1:
vddio_ebi0:
vddq:
pp600_l6a: ldo6 {
regulator-min-microvolt = <568000>;
regulator-max-microvolt = <648000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vdd_cx_wlan:
pp800_l9a: ldo9 {
regulator-min-microvolt = <488000>;
regulator-max-microvolt = <800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vdd1:
vddpx_3:
vddpx_7:
vio_in:
pp1800_l10a: ldo10 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vdd_qfprom:
vdda_apc1_cs_1p8:
vdda_qrefs_1p8:
vdda_qusb_hs0_1p8:
vddpx_11:
vreg_bb_clk:
pp1800_l11a: ldo11 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
mcp_vccq:
pp1800_l12a_r: ldo12 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp1800_l13a: ldo13 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp1800_prox:
pp1800_l14a: ldo14 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp1800_alc5682:
pp1800_l15a: ldo15 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp2700_l16a: ldo16 {
regulator-min-microvolt = <2496000>;
regulator-max-microvolt = <3304000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vdda_qusb_hs0_3p1:
vdd_pdphy:
pp3100_l17a: ldo17 {
regulator-min-microvolt = <2920000>;
regulator-max-microvolt = <3232000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp1800_pen:
pp1800_l18a: ldo18 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
mcp_vcc:
pp2850_l19a: ldo19 {
regulator-min-microvolt = <2960000>;
regulator-max-microvolt = <2960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
pm6150l-rpmh-regulators {
compatible = "qcom,pm6150l-rpmh-regulators";
qcom,pmic-id = "c";
pp1300_s8c: smps8 {
regulator-min-microvolt = <1120000>;
regulator-max-microvolt = <1408000>;
};
pp1800_l1c: ldo1 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vdd_wcss_adc_dac:
pp1300_l2c: ldo2 {
regulator-min-microvolt = <1168000>;
regulator-max-microvolt = <1304000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp1200_brij:
vdd_ufs1_1p2:
vdda_csi0_1p25:
vdda_csi1_1p25:
vdda_csi2_1p25:
vdda_csi3_1p25:
vdda_hv_ebi0:
vdda_mipi_dsi0_1p2:
vdda_usb_ss_dp_1p2:
vddpx_10:
pp1200_l3c: ldo3 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
ld_pp1800_esim_l4c:
vddpx_5:
pp1800_l4c: ldo4 {
regulator-min-microvolt = <1648000>;
regulator-max-microvolt = <3304000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vddpx_6:
pp1800_l5c: ldo5 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vddpx_2:
ppvar_l6c: ldo6 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3304000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp3300_hub:
pp3300_l7c: ldo7 {
regulator-min-microvolt = <3304000>;
regulator-max-microvolt = <3304000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
regulator-boot-on;
};
pp1800_brij_vccio:
pp1800_edp_vpll:
pp1800_l8c: ldo8 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp2950_l9c: ldo9 {
regulator-min-microvolt = <2952000>;
regulator-max-microvolt = <2952000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp3300_l10c: ldo10 {
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3400000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
pp3300_l11c: ldo11 {
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3400000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
src_vreg_bob: bob {
regulator-min-microvolt = <3008000>;
regulator-max-microvolt = <3960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
};
};
};
&ap_ec_spi {
status = "okay";
cros_ec: ec@0 {
compatible = "google,cros-ec-spi";
reg = <0>;
interrupt-parent = <&tlmm>;
interrupts = <94 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>;
};
pdupdate {
compatible = "google,cros-ec-pd-update";
};
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";
};
};
};
};
&ap_h1_spi {
status = "okay";
cr50: tpm@0 {
compatible = "google,cr50";
reg = <0>;
pinctrl-names = "default";
pinctrl-0 = <&h1_ap_int_odl>;
spi-max-frequency = <800000>;
interrupt-parent = <&tlmm>;
interrupts = <42 IRQ_TYPE_EDGE_RISING>;
};
};
&dsi0 {
status = "okay";
vdda-supply = <&vdda_mipi_dsi0_1p2>;
ports {
port@1 {
endpoint {
remote-endpoint = <&sn65dsi86_in>;
data-lanes = <0 1 2 3>;
};
};
};
};
&dsi_phy {
status = "okay";
vdds-supply = <&vdda_mipi_dsi0_pll>;
};
edp_brij_i2c: &i2c2 {
status = "okay";
clock-frequency = <400000>;
sn65dsi86_bridge: bridge@2d {
compatible = "ti,sn65dsi86";
reg = <0x2d>;
pinctrl-names = "default";
pinctrl-0 = <&edp_brij_en>, <&edp_brij_irq>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&tlmm>;
interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
enable-gpios = <&tlmm 104 GPIO_ACTIVE_HIGH>;
vpll-supply = <&pp1800_edp_vpll>;
vccio-supply = <&pp1800_brij_vccio>;
vcca-supply = <&pp1200_brij>;
vcc-supply = <&pp1200_brij>;
clocks = <&rpmhcc RPMH_LN_BB_CLK3>;
clock-names = "refclk";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
sn65dsi86_in: endpoint {
remote-endpoint = <&dsi0_out>;
};
};
port@1 {
reg = <1>;
sn65dsi86_out: endpoint {
data-lanes = <0 1>;
remote-endpoint = <&panel_in_edp>;
};
};
};
};
};
ap_sar_sensor_i2c: &i2c5 {
status = "okay";
clock-frequency = <400000>;
ap_sar_sensor: proximity@28 {
compatible = "semtech,sx9310";
reg = <0x28>;
#io-channel-cells = <1>;
pinctrl-names = "default";
pinctrl-0 = <&p_sensor_int_l>;
interrupt-parent = <&tlmm>;
interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
vdd-supply = <&pp3300_a>;
svdd-supply = <&pp1800_prox>;
status = "disabled";
label = "proximity-wifi";
};
};
ap_tp_i2c: &i2c7 {
status = "okay";
clock-frequency = <400000>;
trackpad@15 {
compatible = "elan,ekth3000";
reg = <0x15>;
pinctrl-names = "default";
pinctrl-0 = <&trackpad_int_1v8_odl>;
interrupt-parent = <&tlmm>;
interrupts = <58 IRQ_TYPE_EDGE_FALLING>;
vcc-supply = <&pp3300_fp_tp>;
wakeup-source;
};
};
hp_i2c: &i2c9 {
status = "okay";
clock-frequency = <400000>;
alc5682: codec@1a {
compatible = "realtek,rt5682i";
reg = <0x1a>;
pinctrl-names = "default";
pinctrl-0 = <&hp_irq>;
#sound-dai-cells = <1>;
interrupt-parent = <&tlmm>;
/*
* This will get ignored because the interrupt type
* is set in rt5682.c.
*/
interrupts = <28 IRQ_TYPE_EDGE_BOTH>;
AVDD-supply = <&pp1800_alc5682>;
MICVDD-supply = <&pp3300_codec>;
VBAT-supply = <&pp3300_audio>;
realtek,dmic1-data-pin = <1>;
realtek,dmic1-clk-pin = <1>;
realtek,jd-src = <1>;
};
};
&ipa {
status = "okay";
/*
* Trogdor doesn't have QHEE (Qualcomm's EL2 blob), so the
* modem needs to cover certain init steps (GSI init), and
* the AP needs to wait for it.
*/
modem-init;
};
&mdp {
status = "okay";
};
&mdss {
status = "okay";
};
&pm6150_pwrkey {
status = "disabled";
};
&qupv3_id_0 {
status = "okay";
};
&qupv3_id_1 {
status = "okay";
};
&remoteproc_mpss {
status = "okay";
compatible = "qcom,sc7180-mss-pil";
iommus = <&apps_smmu 0x461 0x0>, <&apps_smmu 0x444 0x3>;
memory-region = <&mba_mem &mpss_mem>;
/* This gets overridden for SKUs with LTE support. */
firmware-name = "qcom/sc7180-trogdor/modem-nolte/mba.mbn",
"qcom/sc7180-trogdor/modem-nolte/qdsp6sw.mbn";
};
&sdhc_1 {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&sdc1_on>;
pinctrl-1 = <&sdc1_off>;
vmmc-supply = <&mcp_vcc>;
vqmmc-supply = <&mcp_vccq>;
};
&sdhc_2 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&sdc2_on>;
pinctrl-1 = <&sdc2_off>;
vmmc-supply = <&pp2950_l9c>;
vqmmc-supply = <&ppvar_l6c>;
cd-gpios = <&tlmm 69 GPIO_ACTIVE_LOW>;
};
ap_spi_fp: &spi10 {
cros_ec_fp: ec@0 {
compatible = "google,cros-ec-spi";
reg = <0>;
interrupt-parent = <&tlmm>;
interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&fp_to_ap_irq_l>, <&fp_rst_l>, <&fpmcu_boot0>, <&fpmcu_sel>;
spi-max-frequency = <3000000>;
};
};
#include <arm/cros-ec-keyboard.dtsi>
#include <arm/cros-ec-sbs.dtsi>
&uart3 {
status = "okay";
/delete-property/interrupts;
interrupts-extended = <&intc GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
<&tlmm 41 IRQ_TYPE_EDGE_FALLING>;
pinctrl-names = "default", "sleep";
pinctrl-1 = <&qup_uart3_sleep>;
bluetooth: bluetooth {
compatible = "qcom,wcn3991-bt";
vddio-supply = <&pp1800_l10a>;
vddxo-supply = <&pp1800_l1c>;
vddrf-supply = <&pp1300_l2c>;
vddch0-supply = <&pp3300_l10c>;
max-speed = <3200000>;
clocks = <&rpmhcc RPMH_RF_CLK2>;
};
};
&uart8 {
status = "okay";
};
&usb_1 {
status = "okay";
};
&usb_1_dwc3 {
dr_mode = "host";
};
&usb_1_hsphy {
status = "okay";
vdd-supply = <&vdd_qusb_hs0_core>;
vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
qcom,imp-res-offset-value = <8>;
qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_15_PERCENT>;
qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
qcom,bias-ctrl-value = <0x22>;
qcom,charge-ctrl-value = <3>;
qcom,hsdisc-trim-value = <0>;
};
&usb_1_qmpphy {
status = "okay";
vdda-phy-supply = <&vdda_usb_ss_dp_1p2>;
vdda-pll-supply = <&vdda_usb_ss_dp_core>;
};
&venus {
video-firmware {
iommus = <&apps_smmu 0x0c42 0x0>;
};
};
&wifi {
status = "okay";
vdd-0.8-cx-mx-supply = <&vdd_cx_wlan>;
vdd-1.8-xo-supply = <&pp1800_l1c>;
vdd-1.3-rfa-supply = <&pp1300_l2c>;
vdd-3.3-ch0-supply = <&pp3300_l10c>;
vdd-3.3-ch1-supply = <&pp3300_l11c>;
wifi-firmware {
iommus = <&apps_smmu 0xc2 0x1>;
};
};
/* PINCTRL - additions to nodes defined in sc7180.dtsi */
&qspi_cs0 {
pinconf {
pins = "gpio68";
bias-disable;
};
};
&qspi_clk {
pinconf {
pins = "gpio63";
bias-disable;
};
};
&qspi_data01 {
pinconf {
pins = "gpio64", "gpio65";
/* High-Z when no transfers; nice to park the lines */
bias-pull-up;
};
};
&qup_i2c2_default {
pinconf {
pins = "gpio15", "gpio16";
drive-strength = <2>;
/* Has external pullup */
bias-disable;
};
};
&qup_i2c4_default {
pinconf {
pins = "gpio115", "gpio116";
drive-strength = <2>;
/* Has external pullup */
bias-disable;
};
};
&qup_i2c5_default {
pinconf {
pins = "gpio25", "gpio26";
drive-strength = <2>;
/* Has external pullup */
bias-disable;
};
};
&qup_i2c7_default {
pinconf {
pins = "gpio6", "gpio7";
drive-strength = <2>;
/* Has external pullup */
bias-disable;
};
};
&qup_i2c9_default {
pinconf {
pins = "gpio46", "gpio47";
drive-strength = <2>;
/* Has external pullup */
bias-disable;
};
};
&qup_spi0_default {
pinconf {
pins = "gpio34", "gpio35", "gpio36", "gpio37";
drive-strength = <2>;
bias-disable;
};
};
&qup_spi6_default {
pinconf {
pins = "gpio59", "gpio60", "gpio61", "gpio62";
drive-strength = <2>;
bias-disable;
};
};
&qup_spi10_default {
pinconf {
pins = "gpio86", "gpio87", "gpio88", "gpio89";
drive-strength = <2>;
bias-disable;
};
};
&qup_uart3_default {
pinconf-cts {
/*
* Configure a pull-down on CTS to match the pull of
* the Bluetooth module.
*/
pins = "gpio38";
bias-pull-down;
};
pinconf-rts-tx {
/* We'll drive RTS and TX, so no pull */
pins = "gpio39", "gpio40";
drive-strength = <2>;
bias-disable;
};
pinconf-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).
*/
pins = "gpio41";
bias-pull-up;
};
};
&qup_uart8_default {
pinconf-tx {
pins = "gpio44";
drive-strength = <2>;
bias-disable;
};
pinconf-rx {
pins = "gpio45";
drive-strength = <2>;
bias-pull-up;
};
};
/* PINCTRL - board-specific pinctrl */
&pm6150_gpio {
status = "disabled"; /* No GPIOs are connected */
};
&pm6150l_gpio {
gpio-line-names = "AP_SUSPEND",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"";
};
&tlmm {
/*
* pinctrl settings for pins that have no real owners.
*/
pinctrl-names = "default";
pinctrl-0 = <&bios_flash_wp_l>, <&ap_suspend_l_neuter>;
amp_en: amp-en {
pinmux {
pins = "gpio23";
function = "gpio";
};
pinconf {
pins = "gpio23";
bias-pull-down;
};
};
ap_ec_int_l: ap-ec-int-l {
pinmux {
pins = "gpio94";
function = "gpio";
input-enable;
};
pinconf {
pins = "gpio94";
bias-pull-up;
};
};
ap_edp_bklten: ap-edp-bklten {
pinmux {
pins = "gpio12";
function = "gpio";
};
pinconf {
pins = "gpio12";
drive-strength = <2>;
bias-disable;
/* Force backlight to be disabled to match state at boot. */
output-low;
};
};
ap_suspend_l_neuter: ap-suspend-l-neuter {
pinmux {
pins = "gpio27";
function = "gpio";
};
pinconf {
pins = "gpio27";
bias-disable;
};
};
bios_flash_wp_l: bios-flash-wp-l {
pinmux {
pins = "gpio66";
function = "gpio";
input-enable;
};
pinconf {
pins = "gpio66";
bias-disable;
};
};
dp_hot_plug_det: dp-hot-plug-det {
pinmux {
pins = "gpio117";
function = "dp_hot";
};
config {
pins = "gpio117";
bias-disable;
input-enable;
drive-strength = <2>;
};
};
edp_brij_en: edp-brij-en {
pinmux {
pins = "gpio104";
function = "gpio";
};
pinconf {
pins = "gpio104";
drive-strength = <2>;
bias-disable;
};
};
edp_brij_irq: edp-brij-irq {
pinmux {
pins = "gpio11";
function = "gpio";
};
pinconf {
pins = "gpio11";
drive-strength = <2>;
bias-pull-down;
};
};
en_pp3300_codec: en-pp3300-codec {
pinmux {
pins = "gpio83";
function = "gpio";
};
pinconf {
pins = "gpio83";
drive-strength = <2>;
bias-disable;
};
};
en_pp3300_dx_edp: en-pp3300-dx-edp {
pinmux {
pins = "gpio30";
function = "gpio";
};
pinconf {
pins = "gpio30";
drive-strength = <2>;
bias-disable;
};
};
fpmcu_boot0: fpmcu-boot0 {
pinmux {
pins = "gpio10";
function = "gpio";
};
pinconf {
pins = "gpio10";
bias-disable;
drive-strength = <2>;
output-low;
};
};
fpmcu_sel: fpmcu-sel {
pinmux {
pins = "gpio22";
function = "gpio";
};
pinconf {
pins = "gpio22";
bias-disable;
drive-strength = <2>;
output-high;
};
};
fp_rst_l: fp-rst-l {
pinmux {
pins = "gpio5";
function = "gpio";
};
pinconf {
pins = "gpio5";
bias-disable;
drive-strength = <2>;
output-high;
};
};
fp_to_ap_irq_l: fp-to-ap-irq-l {
pinmux {
pins = "gpio4";
function = "gpio";
input-enable;
};
pinconf {
pins = "gpio4";
/* Has external pullup */
bias-disable;
};
};
h1_ap_int_odl: h1-ap-int-odl {
pinmux {
pins = "gpio42";
function = "gpio";
input-enable;
};
pinconf {
pins = "gpio42";
bias-pull-up;
};
};
hp_irq: hp-irq {
pinmux {
pins = "gpio28";
function = "gpio";
};
pinconf {
pins = "gpio28";
bias-pull-up;
};
};
pen_irq_l: pen-irq-l {
pinmux {
pins = "gpio21";
function = "gpio";
};
pinconf {
pins = "gpio21";
/* Has external pullup */
bias-disable;
};
};
pen_pdct_l: pen-pdct-l {
pinmux {
pins = "gpio52";
function = "gpio";
};
pinconf {
pins = "gpio52";
/* Has external pullup */
bias-disable;
};
};
pen_rst_odl: pen-rst-odl {
pinmux {
pins = "gpio18";
function = "gpio";
};
pinconf {
pins = "gpio18";
bias-disable;
drive-strength = <2>;
/*
* The pen driver doesn't currently support
* driving this reset line. By specifying
* output-high here we're relying on the fact
* that this pin has a default pulldown at boot
* (which makes sure the pen was in reset if it
* was powered) and then we set it high here to
* take it out of reset. Better would be if the
* pen driver could control this and we could
* remove "output-high" here.
*/
output-high; /* TODO: Remove this? */
};
};
p_sensor_int_l: p-sensor-int-l {
pinmux {
pins = "gpio24";
function = "gpio";
input-enable;
};
pinconf {
pins = "gpio24";
bias-pull-up;
};
};
qup_uart3_sleep: qup-uart3-sleep {
pinmux {
pins = "gpio38", "gpio39",
"gpio40", "gpio41";
function = "gpio";
};
pinconf-cts {
/*
* Configure a pull-down on CTS to match the pull of
* the Bluetooth module.
*/
pins = "gpio38";
bias-pull-down;
};
pinconf-rts {
/*
* 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).
*/
pins = "gpio39";
bias-pull-down;
};
pinconf-tx {
/*
* Configure pull-up on TX when it isn't actively driven
* to prevent BT SoC from receiving garbage during sleep.
*/
pins = "gpio40";
bias-pull-up;
};
pinconf-rx {
/*
* 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.
*/
pins = "gpio41";
bias-pull-up;
};
};
trackpad_int_1v8_odl: trackpad-int-1v8-odl {
pinmux {
pins = "gpio58";
function = "gpio";
};
pinconf {
pins = "gpio58";
/* Has external pullup */
bias-disable;
};
};
ts_int_l: ts-int-l {
pinmux {
pins = "gpio9";
function = "gpio";
};
pinconf {
pins = "gpio9";
bias-pull-up;
};
};
ts_reset_l: ts-reset-l {
pinmux {
pins = "gpio8";
function = "gpio";
};
pinconf {
pins = "gpio8";
bias-disable;
drive-strength = <2>;
};
};
};