linux-loongson/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts
Pengyu Luo 0b6d8f9d2d
arm64: dts: qcom: gaokun3: Add Embedded Controller node
The Embedded Controller in the Huawei Matebook E Go is accessible on &i2c15
and provides battery and adapter status, port orientation status, as well
as HPD event notifications for two USB Type-C port, etc.

Add the EC to the device tree and describe the relationship among
the type-c connectors, role switches, orientation switches and the QMP
combo PHY.

Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250214180656.28599-4-mitltlatltl@gmail.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
2025-03-03 10:55:38 +02:00

1482 lines
29 KiB
Plaintext

// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2022, Linaro Limited
*
* Copyright (c) 2024, Tianyu Gao <gty0622@gmail.com>
* Copyright (c) 2024, Xuecong Chen <chenxuecong2009@outlook.com>
*
* Copyright (c) 2024, Pengyu Luo <mitltlatltl@gmail.com>
*/
/dts-v1/;
#include <dt-bindings/iio/qcom,spmi-adc7-pm8350.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/gpio-keys.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include <dt-bindings/phy/phy.h>
#include "sc8280xp.dtsi"
#include "sc8280xp-pmics.dtsi"
/ {
chassis-type = "tablet";
model = "Matebook E Go";
compatible = "huawei,gaokun3", "qcom,sc8280xp";
aliases {
i2c4 = &i2c4;
i2c15 = &i2c15;
serial1 = &uart2;
};
chosen {
#address-cells = <2>;
#size-cells = <2>;
ranges;
framebuffer0: framebuffer@c6200000 {
compatible = "simple-framebuffer";
reg = <0x0 0xc6200000 0x0 0x02400000>;
width = <1600>;
height = <2560>;
stride = <(1600 * 4)>;
format = "a8r8g8b8";
};
};
wcd938x: audio-codec {
compatible = "qcom,wcd9380-codec";
pinctrl-0 = <&wcd_default>;
pinctrl-names = "default";
reset-gpios = <&tlmm 106 GPIO_ACTIVE_LOW>;
vdd-buck-supply = <&vreg_s10b>;
vdd-rxtx-supply = <&vreg_s10b>;
vdd-io-supply = <&vreg_s10b>;
vdd-mic-bias-supply = <&vreg_bob>;
qcom,micbias1-microvolt = <1800000>;
qcom,micbias2-microvolt = <1800000>;
qcom,micbias3-microvolt = <1800000>;
qcom,micbias4-microvolt = <1800000>;
qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
qcom,rx-device = <&wcd_rx>;
qcom,tx-device = <&wcd_tx>;
#sound-dai-cells = <1>;
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-0 = <&mode_pin_active>, <&vol_up_n>;
pinctrl-names = "default";
key-vol-up {
label = "Volume Up";
gpios = <&pmc8280_1_gpios 6 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
debounce-interval = <15>;
linux,can-disable;
wakeup-source;
};
switch-mode {
label = "Tablet Mode Switch";
gpios = <&tlmm 26 GPIO_ACTIVE_HIGH>;
linux,input-type = <EV_SW>;
linux,code = <SW_TABLET_MODE>;
debounce-interval = <10>;
wakeup-source;
};
};
vreg_misc_3p3: regulator-misc-3p3 {
compatible = "regulator-fixed";
regulator-name = "VCC3B";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&pmc8280_1_gpios 1 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-0 = <&misc_3p3_reg_en>;
pinctrl-names = "default";
regulator-boot-on;
regulator-always-on;
};
vreg_nvme: regulator-nvme {
compatible = "regulator-fixed";
regulator-name = "VCC3_SSD";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&tlmm 135 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-0 = <&nvme_reg_en>;
pinctrl-names = "default";
regulator-boot-on;
};
vreg_vph_pwr: regulator-vph-pwr {
compatible = "regulator-fixed";
regulator-name = "VPH_VCC3R9";
regulator-min-microvolt = <3900000>;
regulator-max-microvolt = <3900000>;
regulator-always-on;
};
vreg_wlan: regulator-wlan {
compatible = "regulator-fixed";
regulator-name = "VCC_WLAN_3R9";
regulator-min-microvolt = <3900000>;
regulator-max-microvolt = <3900000>;
gpio = <&pmr735a_gpios 1 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-0 = <&hastings_reg_en>;
pinctrl-names = "default";
regulator-boot-on;
};
reserved-memory {
gpu_mem: gpu-mem@8bf00000 {
reg = <0 0x8bf00000 0 0x2000>;
no-map;
};
linux,cma {
compatible = "shared-dma-pool";
size = <0x0 0x8000000>;
reusable;
linux,cma-default;
};
};
thermal-zones {
skin-temp-thermal {
polling-delay-passive = <250>;
thermal-sensors = <&pmk8280_adc_tm 5>;
trips {
skin_temp_alert0: trip-point0 {
temperature = <55000>;
hysteresis = <1000>;
type = "passive";
};
skin_temp_alert1: trip-point1 {
temperature = <58000>;
hysteresis = <1000>;
type = "passive";
};
skin-temp-crit {
temperature = <73000>;
hysteresis = <1000>;
type = "critical";
};
};
cooling-maps {
map0 {
trip = <&skin_temp_alert0>;
cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
map1 {
trip = <&skin_temp_alert1>;
cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
};
usb0-sbu-mux {
compatible = "pericom,pi3usb102", "gpio-sbu-mux";
select-gpios = <&tlmm 164 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&usb0_sbu_default>;
pinctrl-names = "default";
orientation-switch;
port {
usb0_sbu_mux: endpoint {
remote-endpoint = <&ucsi0_sbu>;
};
};
};
usb1-sbu-mux {
compatible = "pericom,pi3usb102", "gpio-sbu-mux";
select-gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&usb1_sbu_default>;
pinctrl-names = "default";
orientation-switch;
port {
usb1_sbu_mux: endpoint {
remote-endpoint = <&ucsi1_sbu>;
};
};
};
wcn6855-pmu {
compatible = "qcom,wcn6855-pmu";
pinctrl-names = "default";
pinctrl-0 = <&bt_default>, <&wlan_en>;
wlan-enable-gpios = <&tlmm 134 GPIO_ACTIVE_HIGH>;
bt-enable-gpios = <&tlmm 133 GPIO_ACTIVE_HIGH>;
swctrl-gpios = <&tlmm 132 GPIO_ACTIVE_HIGH>;
vddio-supply = <&vreg_s10b>;
vddaon-supply = <&vreg_s12b>;
vddpmu-supply = <&vreg_s12b>;
vddpmumx-supply = <&vreg_s12b>;
vddpmucx-supply = <&vreg_s12b>;
vddrfa0p95-supply = <&vreg_s12b>;
vddrfa1p3-supply = <&vreg_s11b>;
vddrfa1p9-supply = <&vreg_s1c>;
vddpcie1p3-supply = <&vreg_s11b>;
vddpcie1p9-supply = <&vreg_s1c>;
regulators {
vreg_pmu_rfa_cmn_0p8: ldo0 {
regulator-name = "vreg_pmu_rfa_cmn_0p8";
};
vreg_pmu_aon_0p8: ldo1 {
regulator-name = "vreg_pmu_aon_0p8";
};
vreg_pmu_wlcx_0p8: ldo2 {
regulator-name = "vreg_pmu_wlcx_0p8";
};
vreg_pmu_wlmx_0p8: ldo3 {
regulator-name = "vreg_pmu_wlmx_0p8";
};
vreg_pmu_btcmx_0p8: ldo4 {
regulator-name = "vreg_pmu_btcmx_0p8";
};
vreg_pmu_pcie_1p8: ldo5 {
regulator-name = "vreg_pmu_pcie_1p8";
};
vreg_pmu_pcie_0p9: ldo6 {
regulator-name = "vreg_pmu_pcie_0p9";
};
vreg_pmu_rfa_0p8: ldo7 {
regulator-name = "vreg_pmu_rfa_0p8";
};
vreg_pmu_rfa_1p2: ldo8 {
regulator-name = "vreg_pmu_rfa_1p2";
};
vreg_pmu_rfa_1p7: ldo9 {
regulator-name = "vreg_pmu_rfa_1p7";
};
};
};
};
&apps_rsc {
regulators-0 {
compatible = "qcom,pm8350-rpmh-regulators";
qcom,pmic-id = "b";
vdd-l1-l4-supply = <&vreg_s12b>;
vdd-l2-l7-supply = <&vreg_bob>;
vdd-l3-l5-supply = <&vreg_s11b>;
vdd-l6-l9-l10-supply = <&vreg_s12b>;
vdd-l8-supply = <&vreg_s12b>;
vreg_s10b: smps10 {
regulator-name = "vreg_s10b";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
};
vreg_s11b: smps11 {
regulator-name = "vreg_s11b";
regulator-min-microvolt = <1272000>;
regulator-max-microvolt = <1272000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s12b: smps12 {
regulator-name = "vreg_s12b";
regulator-min-microvolt = <984000>;
regulator-max-microvolt = <984000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l1b: ldo1 {
regulator-name = "vreg_l1b";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2b: ldo2 {
regulator-name = "vreg_l2b";
regulator-min-microvolt = <1904000>;
regulator-max-microvolt = <1904000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3b: ldo3 {
regulator-name = "vreg_l3b";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-boot-on;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l4b: ldo4 {
regulator-name = "vreg_l4b";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l5b: ldo5 {
regulator-name = "vreg_l5b";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6b: ldo6 {
regulator-name = "vreg_l6b";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <880000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-boot-on;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7b: ldo7 {
regulator-name = "vreg_l7b";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-boot-on;
};
vreg_l9b: ldo9 {
regulator-name = "vreg_l9b";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-1 {
compatible = "qcom,pm8350c-rpmh-regulators";
qcom,pmic-id = "c";
vdd-bob-supply = <&vreg_vph_pwr>;
vdd-l1-l12-supply = <&vreg_s1c>;
vdd-l2-l8-supply = <&vreg_s1c>;
vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob>;
vdd-l6-l9-l11-supply = <&vreg_bob>;
vdd-l10-supply = <&vreg_s11b>;
vreg_s1c: smps1 {
regulator-name = "vreg_s1c";
regulator-min-microvolt = <1880000>;
regulator-max-microvolt = <1900000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
};
vreg_l1c: ldo1 {
regulator-name = "vreg_l1c";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2c: ldo2 {
regulator-name = "vreg_l2c";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l8c: ldo8 {
regulator-name = "vreg_l8c";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l12c: ldo12 {
regulator-name = "vreg_l12c";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l13c: ldo13 {
regulator-name = "vreg_l13c";
regulator-min-microvolt = <3072000>;
regulator-max-microvolt = <3072000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_bob: bob {
regulator-name = "vreg_bob";
regulator-min-microvolt = <3008000>;
regulator-max-microvolt = <3960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
regulator-always-on;
};
};
regulators-2 {
compatible = "qcom,pm8350-rpmh-regulators";
qcom,pmic-id = "d";
vdd-l1-l4-supply = <&vreg_s11b>;
vdd-l2-l7-supply = <&vreg_bob>;
vdd-l3-l5-supply = <&vreg_s11b>;
vdd-l6-l9-l10-supply = <&vreg_s12b>;
vdd-l8-supply = <&vreg_s12b>;
vreg_l2d: ldo2 {
regulator-name = "vreg_l2d";
regulator-min-microvolt = <3072000>;
regulator-max-microvolt = <3072000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3d: ldo3 {
regulator-name = "vreg_l3d";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l4d: ldo4 {
regulator-name = "vreg_l4d";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6d: ldo6 {
regulator-name = "vreg_l6d";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <880000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7d: ldo7 {
regulator-name = "vreg_l7d";
regulator-min-microvolt = <3072000>;
regulator-max-microvolt = <3072000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l8d: ldo8 {
regulator-name = "vreg_l8d";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l9d: ldo9 {
regulator-name = "vreg_l9d";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l10d: ldo10 {
regulator-name = "vreg_l10d";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
};
};
&dispcc0 {
status = "okay";
};
&gpu {
status = "okay";
zap-shader {
memory-region = <&gpu_mem>;
firmware-name = "qcom/sc8280xp/HUAWEI/gaokun3/qcdxkmsuc8280.mbn";
};
};
&i2c4 {
clock-frequency = <400000>;
pinctrl-0 = <&i2c4_default>;
pinctrl-names = "default";
status = "okay";
touchscreen@4f {
compatible = "hid-over-i2c";
reg = <0x4f>;
hid-descr-addr = <0x1>;
interrupts-extended = <&tlmm 175 IRQ_TYPE_LEVEL_LOW>;
vdd-supply = <&vreg_misc_3p3>;
vddl-supply = <&vreg_s10b>;
pinctrl-0 = <&ts0_default>;
pinctrl-names = "default";
};
};
&i2c15 {
clock-frequency = <400000>;
pinctrl-0 = <&i2c15_default>;
pinctrl-names = "default";
status = "okay";
embedded-controller@38 {
compatible = "huawei,gaokun3-ec";
reg = <0x38>;
interrupts-extended = <&tlmm 107 IRQ_TYPE_LEVEL_LOW>;
#address-cells = <1>;
#size-cells = <0>;
connector@0 {
compatible = "usb-c-connector";
reg = <0>;
power-role = "dual";
data-role = "dual";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ucsi0_hs_in: endpoint {
remote-endpoint = <&usb_0_dwc3_hs>;
};
};
port@1 {
reg = <1>;
ucsi0_ss_in: endpoint {
remote-endpoint = <&usb_0_qmpphy_out>;
};
};
port@2 {
reg = <2>;
ucsi0_sbu: endpoint {
remote-endpoint = <&usb0_sbu_mux>;
};
};
};
};
connector@1 {
compatible = "usb-c-connector";
reg = <1>;
power-role = "dual";
data-role = "dual";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ucsi1_hs_in: endpoint {
remote-endpoint = <&usb_1_dwc3_hs>;
};
};
port@1 {
reg = <1>;
ucsi1_ss_in: endpoint {
remote-endpoint = <&usb_1_qmpphy_out>;
};
};
port@2 {
reg = <2>;
ucsi1_sbu: endpoint {
remote-endpoint = <&usb1_sbu_mux>;
};
};
};
};
};
};
&mdss0 {
status = "okay";
};
&mdss0_dp0 {
status = "okay";
};
&mdss0_dp0_out {
data-lanes = <0 1>;
remote-endpoint = <&usb_0_qmpphy_dp_in>;
};
&mdss0_dp1 {
status = "okay";
};
&mdss0_dp1_out {
data-lanes = <0 1>;
remote-endpoint = <&usb_1_qmpphy_dp_in>;
};
&pcie2a {
perst-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
vddpe-3v3-supply = <&vreg_nvme>;
pinctrl-0 = <&pcie2a_default>;
pinctrl-names = "default";
status = "okay";
};
&pcie2a_phy {
vdda-phy-supply = <&vreg_l6d>;
vdda-pll-supply = <&vreg_l4d>;
status = "okay";
};
&pcie4 {
max-link-speed = <2>;
perst-gpios = <&tlmm 141 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 139 GPIO_ACTIVE_LOW>;
vddpe-3v3-supply = <&vreg_wlan>;
pinctrl-0 = <&pcie4_default>;
pinctrl-names = "default";
status = "okay";
};
&pcie4_port0 {
wifi@0 {
compatible = "pci17cb,1103";
reg = <0x10000 0x0 0x0 0x0 0x0>;
vddrfacmn-supply = <&vreg_pmu_rfa_cmn_0p8>;
vddaon-supply = <&vreg_pmu_aon_0p8>;
vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
vddwlmx-supply = <&vreg_pmu_wlmx_0p8>;
vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>;
};
};
&pcie4_phy {
vdda-phy-supply = <&vreg_l6d>;
vdda-pll-supply = <&vreg_l4d>;
status = "okay";
};
&pmk8280_adc_tm {
status = "okay";
sys-therm@0 {
reg = <0>;
io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM1_100K_PU(1)>;
qcom,hw-settle-time-us = <200>;
qcom,avg-samples = <2>;
qcom,ratiometric;
};
sys-therm@1 {
reg = <1>;
io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM2_100K_PU(1)>;
qcom,hw-settle-time-us = <200>;
qcom,avg-samples = <2>;
qcom,ratiometric;
};
sys-therm@2 {
reg = <2>;
io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM3_100K_PU(1)>;
qcom,hw-settle-time-us = <200>;
qcom,avg-samples = <2>;
qcom,ratiometric;
};
sys-therm@3 {
reg = <3>;
io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM4_100K_PU(1)>;
qcom,hw-settle-time-us = <200>;
qcom,avg-samples = <2>;
qcom,ratiometric;
};
sys-therm@4 {
reg = <4>;
io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM1_100K_PU(3)>;
qcom,hw-settle-time-us = <200>;
qcom,avg-samples = <2>;
qcom,ratiometric;
};
sys-therm@5 {
reg = <5>;
io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM2_100K_PU(3)>;
qcom,hw-settle-time-us = <200>;
qcom,avg-samples = <2>;
qcom,ratiometric;
};
sys-therm@6 {
reg = <6>;
io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM3_100K_PU(3)>;
qcom,hw-settle-time-us = <200>;
qcom,avg-samples = <2>;
qcom,ratiometric;
};
sys-therm@7 {
reg = <7>;
io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM4_100K_PU(3)>;
qcom,hw-settle-time-us = <200>;
qcom,avg-samples = <2>;
qcom,ratiometric;
};
};
&pmk8280_pon_pwrkey {
status = "okay";
};
&pmk8280_pon_resin {
status = "okay";
linux,code = <KEY_VOLUMEDOWN>;
};
&pmk8280_rtc {
nvmem-cells = <&rtc_offset>;
nvmem-cell-names = "offset";
status = "okay";
};
&pmk8280_sdam_6 {
status = "okay";
rtc_offset: rtc-offset@bc {
reg = <0xbc 0x4>;
};
};
&pmk8280_vadc {
channel@144 {
reg = <PM8350_ADC7_AMUX_THM1_100K_PU(1)>;
qcom,hw-settle-time = <200>;
qcom,ratiometric;
label = "sys_therm1";
};
channel@145 {
reg = <PM8350_ADC7_AMUX_THM2_100K_PU(1)>;
qcom,hw-settle-time = <200>;
qcom,ratiometric;
label = "sys_therm2";
};
channel@146 {
reg = <PM8350_ADC7_AMUX_THM3_100K_PU(1)>;
qcom,hw-settle-time = <200>;
qcom,ratiometric;
label = "sys_therm3";
};
channel@147 {
reg = <PM8350_ADC7_AMUX_THM4_100K_PU(1)>;
qcom,hw-settle-time = <200>;
qcom,ratiometric;
label = "sys_therm4";
};
channel@344 {
reg = <PM8350_ADC7_AMUX_THM1_100K_PU(3)>;
qcom,hw-settle-time = <200>;
qcom,ratiometric;
label = "sys_therm5";
};
channel@345 {
reg = <PM8350_ADC7_AMUX_THM2_100K_PU(3)>;
qcom,hw-settle-time = <200>;
qcom,ratiometric;
label = "sys_therm6";
};
channel@346 {
reg = <PM8350_ADC7_AMUX_THM3_100K_PU(3)>;
qcom,hw-settle-time = <200>;
qcom,ratiometric;
label = "sys_therm7";
};
channel@347 {
reg = <PM8350_ADC7_AMUX_THM4_100K_PU(3)>;
qcom,hw-settle-time = <200>;
qcom,ratiometric;
label = "sys_therm8";
};
};
&qup0 {
status = "okay";
};
&qup1 {
status = "okay";
};
&qup2 {
status = "okay";
};
&remoteproc_adsp {
firmware-name = "qcom/sc8280xp/HUAWEI/gaokun3/qcadsp8280.mbn";
status = "okay";
};
&remoteproc_nsp0 {
firmware-name = "qcom/sc8280xp/HUAWEI/gaokun3/qccdsp8280.mbn";
status = "okay";
};
&rxmacro {
status = "okay";
};
&sound {
compatible = "qcom,sc8280xp-sndcard";
model = "SC8280XP-HUAWEI-MATEBOOKEGO";
audio-routing = "SpkrLeft IN", "WSA_SPK1 OUT",
"SpkrRight IN", "WSA_SPK2 OUT",
"IN1_HPHL", "HPHL_OUT",
"IN2_HPHR", "HPHR_OUT",
"AMIC2", "MIC BIAS2",
"VA DMIC0", "MIC BIAS1",
"VA DMIC1", "MIC BIAS1",
"VA DMIC2", "MIC BIAS3",
"VA DMIC0", "VA MIC BIAS1",
"VA DMIC1", "VA MIC BIAS1",
"VA DMIC2", "VA MIC BIAS3",
"TX SWR_ADC1", "ADC2_OUTPUT";
wcd-playback-dai-link {
link-name = "WCD Playback";
cpu {
sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
};
codec {
sound-dai = <&wcd938x 0>, <&swr1 0>, <&rxmacro 0>;
};
platform {
sound-dai = <&q6apm>;
};
};
wcd-capture-dai-link {
link-name = "WCD Capture";
cpu {
sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
};
codec {
sound-dai = <&wcd938x 1>, <&swr2 0>, <&txmacro 0>;
};
platform {
sound-dai = <&q6apm>;
};
};
wsa-dai-link {
link-name = "WSA Playback";
cpu {
sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
};
codec {
sound-dai = <&left_spkr>, <&right_spkr>, <&swr0 0>, <&wsamacro 0>;
};
platform {
sound-dai = <&q6apm>;
};
};
va-dai-link {
link-name = "VA Capture";
cpu {
sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
};
platform {
sound-dai = <&q6apm>;
};
codec {
sound-dai = <&vamacro 0>;
};
};
};
&swr0 {
status = "okay";
left_spkr: wsa8830-left@0,1 {
compatible = "sdw10217020200";
reg = <0 1>;
pinctrl-0 = <&spkr_1_sd_n_default>;
pinctrl-names = "default";
powerdown-gpios = <&tlmm 178 GPIO_ACTIVE_LOW>;
#thermal-sensor-cells = <0>;
sound-name-prefix = "SpkrLeft";
#sound-dai-cells = <0>;
vdd-supply = <&vreg_s10b>;
};
right_spkr: wsa8830-right@0,2 {
compatible = "sdw10217020200";
reg = <0 2>;
pinctrl-0 = <&spkr_2_sd_n_default>;
pinctrl-names = "default";
powerdown-gpios = <&tlmm 179 GPIO_ACTIVE_LOW>;
#thermal-sensor-cells = <0>;
sound-name-prefix = "SpkrRight";
#sound-dai-cells = <0>;
vdd-supply = <&vreg_s10b>;
};
};
&swr1 {
status = "okay";
wcd_rx: wcd9380-rx@0,4 {
compatible = "sdw20217010d00";
reg = <0 4>;
qcom,rx-port-mapping = <1 2 3 4 5>;
};
};
&swr2 {
status = "okay";
wcd_tx: wcd9380-tx@0,3 {
compatible = "sdw20217010d00";
reg = <0 3>;
qcom,tx-port-mapping = <1 1 2 3>;
};
};
&txmacro {
status = "okay";
};
&uart2 {
pinctrl-0 = <&uart2_default>;
pinctrl-names = "default";
status = "okay";
bluetooth {
compatible = "qcom,wcn6855-bt";
vddrfacmn-supply = <&vreg_pmu_rfa_cmn_0p8>;
vddaon-supply = <&vreg_pmu_aon_0p8>;
vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
vddwlmx-supply = <&vreg_pmu_wlmx_0p8>;
vddbtcmx-supply = <&vreg_pmu_btcmx_0p8>;
vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>;
max-speed = <3200000>;
};
};
&usb_0 {
status = "okay";
};
&usb_0_dwc3 {
dr_mode = "host";
};
&usb_0_dwc3_hs {
remote-endpoint = <&ucsi0_hs_in>;
};
&usb_0_hsphy {
vdda-pll-supply = <&vreg_l9d>;
vdda18-supply = <&vreg_l1c>;
vdda33-supply = <&vreg_l7d>;
status = "okay";
};
&usb_0_qmpphy {
vdda-phy-supply = <&vreg_l9d>;
vdda-pll-supply = <&vreg_l4d>;
orientation-switch;
status = "okay";
};
&usb_0_qmpphy_dp_in {
remote-endpoint = <&mdss0_dp0_out>;
};
&usb_0_qmpphy_out {
remote-endpoint = <&ucsi0_ss_in>;
};
&usb_1 {
status = "okay";
};
&usb_1_dwc3 {
dr_mode = "host";
};
&usb_1_dwc3_hs {
remote-endpoint = <&ucsi1_hs_in>;
};
&usb_1_hsphy {
vdda-pll-supply = <&vreg_l4b>;
vdda18-supply = <&vreg_l1c>;
vdda33-supply = <&vreg_l13c>;
status = "okay";
};
&usb_1_qmpphy {
vdda-phy-supply = <&vreg_l4b>;
vdda-pll-supply = <&vreg_l3b>;
orientation-switch;
status = "okay";
};
&usb_1_qmpphy_dp_in {
remote-endpoint = <&mdss0_dp1_out>;
};
&usb_1_qmpphy_out {
remote-endpoint = <&ucsi1_ss_in>;
};
&usb_2 {
status = "okay";
};
&usb_2_hsphy0 {
vdda-pll-supply = <&vreg_l1b>;
vdda18-supply = <&vreg_l1c>;
vdda33-supply = <&vreg_l7d>;
status = "okay";
};
&usb_2_hsphy1 {
vdda-pll-supply = <&vreg_l8d>;
vdda18-supply = <&vreg_l1c>;
vdda33-supply = <&vreg_l7d>;
status = "okay";
};
&usb_2_hsphy2 {
vdda-pll-supply = <&vreg_l10d>;
vdda18-supply = <&vreg_l8c>;
vdda33-supply = <&vreg_l2d>;
status = "okay";
};
&usb_2_hsphy3 {
vdda-pll-supply = <&vreg_l10d>;
vdda18-supply = <&vreg_l8c>;
vdda33-supply = <&vreg_l2d>;
status = "okay";
};
&usb_2_qmpphy0 {
vdda-phy-supply = <&vreg_l1b>;
vdda-pll-supply = <&vreg_l4d>;
status = "okay";
};
&usb_2_qmpphy1 {
vdda-phy-supply = <&vreg_l8d>;
vdda-pll-supply = <&vreg_l4d>;
status = "okay";
};
&vamacro {
pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
pinctrl-names = "default";
vdd-micb-supply = <&vreg_s10b>;
qcom,dmic-sample-rate = <4800000>;
status = "okay";
};
&wsamacro {
status = "okay";
};
&xo_board_clk {
clock-frequency = <38400000>;
};
/* PINCTRL */
&lpass_tlmm {
status = "okay";
};
&pmc8280_1_gpios {
misc_3p3_reg_en: misc-3p3-reg-en-state {
pins = "gpio1";
function = "normal";
};
vol_up_n: vol-up-n-state {
pins = "gpio6";
function = "normal";
power-source = <1>;
input-enable;
bias-pull-up;
};
};
&pmr735a_gpios {
hastings_reg_en: hastings-reg-en-state {
pins = "gpio1";
function = "normal";
};
};
&tlmm {
gpio-reserved-ranges = <70 2>, <74 6>, <83 4>, <125 2>, <128 2>, <154 4>;
bt_default: bt-default-state {
hstp-bt-en-pins {
pins = "gpio133";
function = "gpio";
drive-strength = <16>;
bias-disable;
};
hstp-sw-ctrl-pins {
pins = "gpio132";
function = "gpio";
bias-pull-down;
};
};
i2c4_default: i2c4-default-state {
pins = "gpio171", "gpio172";
function = "qup4";
drive-strength = <16>;
bias-disable;
};
i2c15_default: i2c15-default-state {
pins = "gpio36", "gpio37";
function = "qup15";
drive-strength = <2>;
bias-pull-up;
};
mode_pin_active: mode-pin-state {
pins = "gpio26";
function = "gpio";
bias-disable;
};
nvme_reg_en: nvme-reg-en-state {
pins = "gpio135";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
pcie2a_default: pcie2a-default-state {
clkreq-n-pins {
pins = "gpio142";
function = "pcie2a_clkreq";
drive-strength = <2>;
bias-pull-up;
};
perst-n-pins {
pins = "gpio143";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
wake-n-pins {
pins = "gpio145";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};
};
pcie4_default: pcie4-default-state {
clkreq-n-pins {
pins = "gpio140";
function = "pcie4_clkreq";
drive-strength = <2>;
bias-pull-up;
};
perst-n-pins {
pins = "gpio141";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
wake-n-pins {
pins = "gpio139";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};
};
spkr_1_sd_n_default: spkr-1-sd-n-default-state {
perst-n-pins {
pins = "gpio178";
function = "gpio";
drive-strength = <16>;
bias-disable;
output-high;
};
};
spkr_2_sd_n_default: spkr-2-sd-n-default-state {
perst-n-pins {
pins = "gpio179";
function = "gpio";
drive-strength = <16>;
bias-disable;
output-high;
};
};
ts0_default: ts0-default-state {
int-n-pins {
pins = "gpio175";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
reset-n-pins {
pins = "gpio99";
function = "gpio";
drive-strength = <2>;
bias-disable;
output-high;
};
};
uart2_default: uart2-default-state {
cts-pins {
pins = "gpio121";
function = "qup2";
bias-bus-hold;
};
rts-pins {
pins = "gpio122";
function = "qup2";
drive-strength = <2>;
bias-disable;
};
rx-pins {
pins = "gpio124";
function = "qup2";
bias-pull-up;
};
tx-pins {
pins = "gpio123";
function = "qup2";
drive-strength = <2>;
bias-disable;
};
};
usb0_sbu_default: usb0-sbu-state {
pins = "gpio164";
function = "gpio";
drive-strength = <16>;
bias-disable;
};
usb1_sbu_default: usb1-sbu-state {
pins = "gpio47";
function = "gpio";
drive-strength = <16>;
bias-disable;
};
wcd_default: wcd-default-state {
reset-pins {
pins = "gpio106";
function = "gpio";
bias-disable;
};
};
wlan_en: wlan-en-state {
pins = "gpio134";
function = "gpio";
drive-strength = <8>;
bias-pull-down;
};
};