| // 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; |
| }; |
| }; |