* [PATCH v2 0/3] arm64: dts: qcom: Introduce Huawei Matebook E Go @ 2024-12-20 16:05 Pengyu Luo 2024-12-20 16:05 ` [PATCH v2 1/3] dt-bindings: arm: qcom: Document Huawei Matebook E Go (sc8280xp) Pengyu Luo ` (3 more replies) 0 siblings, 4 replies; 14+ messages in thread From: Pengyu Luo @ 2024-12-20 16:05 UTC (permalink / raw) To: andersson, conor+dt, konradybcio, krzk+dt, robh Cc: chenxuecong2009, devicetree, gty0622, linux-arm-msm, linux-kernel, Pengyu Luo Add support for the SC8280XP-based Huawei Matebook E Go (sc8280xp) Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com> --- Changes in v2: - use Co-developed-by: tag (Konrad) - follow this order (property-n property-names) (Konrad) - add a label for tablet mode switch (Konrad) - handle line breaks properly (Konrad) - remove the wlan calibration variant (Konrad) - drop the venus node, as upstream has not supported it now - Link to v1: https://lore.kernel.org/linux-arm-msm/20241211153754.356476-1-mitltlatltl@gmail.com --- Pengyu Luo (3): dt-bindings: arm: qcom: Document Huawei Matebook E Go (sc8280xp) firmware: qcom: scm: Allow QSEECOM on Huawei Matebook E Go (sc8280xp) arm64: dts: qcom: sc8280xp: Add Huawei Matebook E Go (sc8280xp) .../devicetree/bindings/arm/qcom.yaml | 1 + arch/arm64/boot/dts/qcom/Makefile | 1 + .../boot/dts/qcom/sc8280xp-huawei-gaokun3.dts | 1318 +++++++++++++++++ drivers/firmware/qcom/qcom_scm.c | 1 + 4 files changed, 1321 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts -- 2.47.1 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 1/3] dt-bindings: arm: qcom: Document Huawei Matebook E Go (sc8280xp) 2024-12-20 16:05 [PATCH v2 0/3] arm64: dts: qcom: Introduce Huawei Matebook E Go Pengyu Luo @ 2024-12-20 16:05 ` Pengyu Luo 2024-12-20 16:05 ` [PATCH v2 2/3] firmware: qcom: scm: Allow QSEECOM on " Pengyu Luo ` (2 subsequent siblings) 3 siblings, 0 replies; 14+ messages in thread From: Pengyu Luo @ 2024-12-20 16:05 UTC (permalink / raw) To: andersson, conor+dt, konradybcio, krzk+dt, robh Cc: chenxuecong2009, devicetree, gty0622, linux-arm-msm, linux-kernel, Pengyu Luo, Krzysztof Kozlowski Add compatible for the SC8280XP-based Huawei Matebook E Go, using its codename, gaokun3, which means it is the 3rd gen gaokun. Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com> --- Documentation/devicetree/bindings/arm/qcom.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml index 9679fed72..355b17259 100644 --- a/Documentation/devicetree/bindings/arm/qcom.yaml +++ b/Documentation/devicetree/bindings/arm/qcom.yaml @@ -822,6 +822,7 @@ properties: - items: - enum: + - huawei,gaokun3 - lenovo,thinkpad-x13s - microsoft,arcata - qcom,sc8280xp-crd -- 2.47.1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 2/3] firmware: qcom: scm: Allow QSEECOM on Huawei Matebook E Go (sc8280xp) 2024-12-20 16:05 [PATCH v2 0/3] arm64: dts: qcom: Introduce Huawei Matebook E Go Pengyu Luo 2024-12-20 16:05 ` [PATCH v2 1/3] dt-bindings: arm: qcom: Document Huawei Matebook E Go (sc8280xp) Pengyu Luo @ 2024-12-20 16:05 ` Pengyu Luo 2024-12-20 16:05 ` [PATCH v2 3/3] arm64: dts: qcom: sc8280xp: Add " Pengyu Luo 2024-12-26 22:38 ` (subset) [PATCH v2 0/3] arm64: dts: qcom: Introduce Huawei Matebook E Go Bjorn Andersson 3 siblings, 0 replies; 14+ messages in thread From: Pengyu Luo @ 2024-12-20 16:05 UTC (permalink / raw) To: andersson, conor+dt, konradybcio, krzk+dt, robh Cc: chenxuecong2009, devicetree, gty0622, linux-arm-msm, linux-kernel, Pengyu Luo Add the SC8280XP-based Huawei Matebook E Go (sc8280xp) to the allowlist. Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com> --- drivers/firmware/qcom/qcom_scm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c index 72bf87ddc..deff48d01 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -1769,6 +1769,7 @@ EXPORT_SYMBOL_GPL(qcom_scm_qseecom_app_send); */ static const struct of_device_id qcom_scm_qseecom_allowlist[] __maybe_unused = { { .compatible = "dell,xps13-9345" }, + { .compatible = "huawei,gaokun3" }, { .compatible = "lenovo,flex-5g" }, { .compatible = "lenovo,thinkpad-t14s" }, { .compatible = "lenovo,thinkpad-x13s", }, -- 2.47.1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 3/3] arm64: dts: qcom: sc8280xp: Add Huawei Matebook E Go (sc8280xp) 2024-12-20 16:05 [PATCH v2 0/3] arm64: dts: qcom: Introduce Huawei Matebook E Go Pengyu Luo 2024-12-20 16:05 ` [PATCH v2 1/3] dt-bindings: arm: qcom: Document Huawei Matebook E Go (sc8280xp) Pengyu Luo 2024-12-20 16:05 ` [PATCH v2 2/3] firmware: qcom: scm: Allow QSEECOM on " Pengyu Luo @ 2024-12-20 16:05 ` Pengyu Luo 2024-12-20 21:13 ` Konrad Dybcio 2024-12-26 22:38 ` (subset) [PATCH v2 0/3] arm64: dts: qcom: Introduce Huawei Matebook E Go Bjorn Andersson 3 siblings, 1 reply; 14+ messages in thread From: Pengyu Luo @ 2024-12-20 16:05 UTC (permalink / raw) To: andersson, conor+dt, konradybcio, krzk+dt, robh Cc: chenxuecong2009, devicetree, gty0622, linux-arm-msm, linux-kernel, Pengyu Luo Add an initial devicetree for the Huawei Matebook E Go, which is based on sc8280xp. There are 3 variants, Huawei released first 2 at the same time. Huawei Matebook E Go LTE(sc8180x), codename should be gaokun2. Huawei Matebook E Go(sc8280xp@3.0GHz), codename is gaokun3. Huawei Matebook E Go 2023(sc8280xp@2.69GHz). We add support for the latter two variants. This work started by Tianyu Gao and Xuecong Chen, they made the devicetree based on existing work(i.e. the Lenovo X13s and the Qualcomm CRD), it can boot with framebuffer. Original work: https://github.com/matalama80td3l/matebook-e-go-boot-works/blob/main/dts/sc8280xp-huawei-matebook-e-go.dts Later, I got my device, I continue their work. Supported features: - adsp - bluetooth (connect issue) - charge (with a lower power) - framebuffer - gpu - keyboard (via internal USB) - pcie devices (wifi and nvme, no modem) - speakers and microphones - tablet mode switch - touchscreen - usb - volume key and power key Some key features not supported yet: - battery and charger information report (EC driver required) - built-in display (cannot enable backlight yet) - charging thresholds control (EC driver required) - camera - LID switch detection (EC driver required) - USB Type-C altmode (EC driver required) - USB Type-C PD (EC driver required) I have finished the EC driver, once this series are upstreamed, I will submit a series of patches to enable EC support. Co-developed-by: Tianyu Gao <gty0622@gmail.com> Signed-off-by: Tianyu Gao <gty0622@gmail.com> Co-developed-by: Xuecong Chen <chenxuecong2009@outlook.com> Signed-off-by: Xuecong Chen <chenxuecong2009@outlook.com> Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com> --- arch/arm64/boot/dts/qcom/Makefile | 1 + .../boot/dts/qcom/sc8280xp-huawei-gaokun3.dts | 1318 +++++++++++++++++ 2 files changed, 1319 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index 6ca8db4b8..00d02cf5f 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -195,6 +195,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sc7280-crd-r3.dtb dtb-$(CONFIG_ARCH_QCOM) += sc8180x-lenovo-flex-5g.dtb dtb-$(CONFIG_ARCH_QCOM) += sc8180x-primus.dtb dtb-$(CONFIG_ARCH_QCOM) += sc8280xp-crd.dtb +dtb-$(CONFIG_ARCH_QCOM) += sc8280xp-huawei-gaokun3.dtb dtb-$(CONFIG_ARCH_QCOM) += sc8280xp-lenovo-thinkpad-x13s.dtb dtb-$(CONFIG_ARCH_QCOM) += sc8280xp-microsoft-arcata.dtb dtb-$(CONFIG_ARCH_QCOM) += sda660-inforce-ifc6560.dtb diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts b/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts new file mode 100644 index 000000000..09b95f89e --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts @@ -0,0 +1,1318 @@ +// 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; + 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>; + }; + }; + }; + }; + + 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"; + }; + +}; + +&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_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_1 { + status = "okay"; +}; + +&usb_1_dwc3 { + dr_mode = "host"; +}; + +&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_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; + }; + + 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; + }; + }; + + 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; + }; +}; -- 2.47.1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v2 3/3] arm64: dts: qcom: sc8280xp: Add Huawei Matebook E Go (sc8280xp) 2024-12-20 16:05 ` [PATCH v2 3/3] arm64: dts: qcom: sc8280xp: Add " Pengyu Luo @ 2024-12-20 21:13 ` Konrad Dybcio 2024-12-21 7:57 ` Pengyu Luo 0 siblings, 1 reply; 14+ messages in thread From: Konrad Dybcio @ 2024-12-20 21:13 UTC (permalink / raw) To: Pengyu Luo, andersson, conor+dt, konradybcio, krzk+dt, robh Cc: chenxuecong2009, devicetree, gty0622, linux-arm-msm, linux-kernel On 20.12.2024 5:05 PM, Pengyu Luo wrote: > Add an initial devicetree for the Huawei Matebook E Go, which is based on > sc8280xp. > > There are 3 variants, Huawei released first 2 at the same time. > Huawei Matebook E Go LTE(sc8180x), codename should be gaokun2. > Huawei Matebook E Go(sc8280xp@3.0GHz), codename is gaokun3. > Huawei Matebook E Go 2023(sc8280xp@2.69GHz). > > We add support for the latter two variants. > > This work started by Tianyu Gao and Xuecong Chen, they made the > devicetree based on existing work(i.e. the Lenovo X13s and the > Qualcomm CRD), it can boot with framebuffer. > So this looks good now, but [...] > + 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"; > + }; > + }; I still don't understand why efifb doesn't work for you. Could you share your .config file? Konrad ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 3/3] arm64: dts: qcom: sc8280xp: Add Huawei Matebook E Go (sc8280xp) 2024-12-20 21:13 ` Konrad Dybcio @ 2024-12-21 7:57 ` Pengyu Luo 2024-12-23 12:25 ` Konrad Dybcio 0 siblings, 1 reply; 14+ messages in thread From: Pengyu Luo @ 2024-12-21 7:57 UTC (permalink / raw) To: johan+linaro, konrad.dybcio Cc: andersson, chenxuecong2009, conor+dt, devicetree, gty0622, konradybcio, krzk+dt, linux-arm-msm, linux-kernel, mitltlatltl, robh Messing up, reply again to fix thread. On Sat, Dec 21, 2024 at 5:14 AM Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> wrote: > On 20.12.2024 5:05 PM, Pengyu Luo wrote: > [...] > > + 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"; > > + }; > > + }; > > I still don't understand why efifb doesn't work for you. > In v1, you asked me > Very very weird. Are you booting with clk_ignore_unused pd_ignore_unused > in kernel cmdline? I said yes, as Johan suggested in here (see [1]). I am adding Johan. > Could you share your .config file? Here please, https://pastebin.com/UKew61ZC > > Konrad > Best wishes, Pengyu [1] https://github.com/jhovold/linux/wiki/X13s#kernel-command-line ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 3/3] arm64: dts: qcom: sc8280xp: Add Huawei Matebook E Go (sc8280xp) 2024-12-21 7:57 ` Pengyu Luo @ 2024-12-23 12:25 ` Konrad Dybcio 2024-12-23 13:07 ` Pengyu Luo 0 siblings, 1 reply; 14+ messages in thread From: Konrad Dybcio @ 2024-12-23 12:25 UTC (permalink / raw) To: Pengyu Luo, johan+linaro, konrad.dybcio Cc: andersson, chenxuecong2009, conor+dt, devicetree, gty0622, konradybcio, krzk+dt, linux-arm-msm, linux-kernel, robh On 21.12.2024 8:57 AM, Pengyu Luo wrote: > Messing up, reply again to fix thread. > > On Sat, Dec 21, 2024 at 5:14 AM Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> wrote: >> On 20.12.2024 5:05 PM, Pengyu Luo wrote: >> > > [...] > >>> + 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"; >>> + }; >>> + }; >> >> I still don't understand why efifb doesn't work for you. >> > > In v1, you asked me Ahh sorry, I churn through a lot of emails and sometimes forget things. > >> Very very weird. Are you booting with clk_ignore_unused pd_ignore_unused >> in kernel cmdline? > > I said yes, as Johan suggested in here (see [1]). I am adding Johan. > >> Could you share your .config file? > > Here please, https://pastebin.com/UKew61ZC All the things one would expect for efifb to show up seem to be there. Maybe try earlycon=efifb video=efifb? Konrad ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 3/3] arm64: dts: qcom: sc8280xp: Add Huawei Matebook E Go (sc8280xp) 2024-12-23 12:25 ` Konrad Dybcio @ 2024-12-23 13:07 ` Pengyu Luo 2024-12-30 14:54 ` Konrad Dybcio 0 siblings, 1 reply; 14+ messages in thread From: Pengyu Luo @ 2024-12-23 13:07 UTC (permalink / raw) To: konrad.dybcio Cc: andersson, chenxuecong2009, conor+dt, devicetree, gty0622, johan+linaro, konradybcio, krzk+dt, linux-arm-msm, linux-kernel, mitltlatltl, robh On Mon, Dec 23, 2024 at 8:25 PM Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> wrote: > On 21.12.2024 8:57 AM, Pengyu Luo wrote: > > Messing up, reply again to fix thread. > > > > On Sat, Dec 21, 2024 at 5:14 AM Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> wrote: > >> On 20.12.2024 5:05 PM, Pengyu Luo wrote: > >> > > > > [...] > > > >>> + 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"; > >>> + }; > >>> + }; > >> > >> I still don't understand why efifb doesn't work for you. > >> > > > > In v1, you asked me > > Ahh sorry, I churn through a lot of emails and sometimes forget things. > > > > >> Very very weird. Are you booting with clk_ignore_unused pd_ignore_unused > >> in kernel cmdline? > > > > I said yes, as Johan suggested in here (see [1]). I am adding Johan. > > > >> Could you share your .config file? > > > > Here please, https://pastebin.com/UKew61ZC > > All the things one would expect for efifb to show up seem to be there. > > Maybe try earlycon=efifb video=efifb? Not work, whether or not adding clk_ignore_unused pd_ignore_unused. > > Konrad Best wishes, Pengyu ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 3/3] arm64: dts: qcom: sc8280xp: Add Huawei Matebook E Go (sc8280xp) 2024-12-23 13:07 ` Pengyu Luo @ 2024-12-30 14:54 ` Konrad Dybcio 2024-12-30 16:22 ` [PATCH 5/5] arm64: dts: qcom: gaokun3: Add Embedded Controller node Pengyu Luo 0 siblings, 1 reply; 14+ messages in thread From: Konrad Dybcio @ 2024-12-30 14:54 UTC (permalink / raw) To: Pengyu Luo, konrad.dybcio Cc: andersson, chenxuecong2009, conor+dt, devicetree, gty0622, johan+linaro, konradybcio, krzk+dt, linux-arm-msm, linux-kernel, robh On 23.12.2024 2:07 PM, Pengyu Luo wrote: > On Mon, Dec 23, 2024 at 8:25 PM Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> wrote: >> On 21.12.2024 8:57 AM, Pengyu Luo wrote: >>> Messing up, reply again to fix thread. >>> >>> On Sat, Dec 21, 2024 at 5:14 AM Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> wrote: >>>> On 20.12.2024 5:05 PM, Pengyu Luo wrote: >>>> >>> >>> [...] >>> >>>>> + 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"; >>>>> + }; >>>>> + }; >>>> >>>> I still don't understand why efifb doesn't work for you. >>>> >>> >>> In v1, you asked me >> >> Ahh sorry, I churn through a lot of emails and sometimes forget things. >> >>> >>>> Very very weird. Are you booting with clk_ignore_unused pd_ignore_unused >>>> in kernel cmdline? >>> >>> I said yes, as Johan suggested in here (see [1]). I am adding Johan. >>> >>>> Could you share your .config file? >>> >>> Here please, https://pastebin.com/UKew61ZC >> >> All the things one would expect for efifb to show up seem to be there. >> >> Maybe try earlycon=efifb video=efifb? > > Not work, whether or not adding clk_ignore_unused pd_ignore_unused. I am utterly confused then, maybe it's one of those devices where calling exit boot services kills the display. Either way, let's not worry about it anymore Konrad ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 5/5] arm64: dts: qcom: gaokun3: Add Embedded Controller node 2024-12-30 14:54 ` Konrad Dybcio @ 2024-12-30 16:22 ` Pengyu Luo 0 siblings, 0 replies; 14+ messages in thread From: Pengyu Luo @ 2024-12-30 16:22 UTC (permalink / raw) To: konrad.dybcio Cc: andersson, chenxuecong2009, conor+dt, devicetree, gty0622, johan+linaro, konradybcio, krzk+dt, linux-arm-msm, linux-kernel, mitltlatltl, robh On Mon, Dec 30, 2024 at 10:53 PM Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> wrote: > On 27.12.2024 6:13 PM, Pengyu Luo wrote: > > The Embedded Controller in the Huawei Matebook E Go (s8280xp) > > 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 ports, orientation switches and the QMP combo PHY. > > > > Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com> > > --- > > .../boot/dts/qcom/sc8280xp-huawei-gaokun3.dts | 139 ++++++++++++++++++ > > 1 file changed, 139 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts b/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts > > index 09b95f89e..09ca9a560 100644 > > --- a/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts > > +++ b/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts > > @@ -28,6 +28,7 @@ / { > > > > aliases { > > i2c4 = &i2c4; > > + i2c15 = &i2c15; > > serial1 = &uart2; > > }; > > > > @@ -216,6 +217,40 @@ map1 { > > }; > > }; > > > > + usb0-sbu-mux { > > + compatible = "pericom,pi3usb102", "gpio-sbu-mux"; > > + > > + select-gpios = <&tlmm 164 GPIO_ACTIVE_HIGH>; > > + > > + pinctrl-names = "default"; > > + pinctrl-0 = <&usb0_sbu_default>; > > Please preserve this order: > > property-n > property-names > > > + > > + orientation-switch; > > This > > > + > > + port { > > + usb0_sbu_mux: endpoint { > > + remote-endpoint = <&ucsi0_sbu>; > > And this section have incorrect whitespacing (one tab too many, make > sure you set your tab width to 8 spaces) > > Same for usb1-sbu-mux > > [...] > > > + 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"; > > @@ -1301,6 +1426,20 @@ tx-pins { > > }; > > }; > > > > + usb0_sbu_default: usb0-sbu-state { > > + pins = "gpio164"; > > + function = "gpio"; > > + bias-disable; > > + drive-strength = <16>; > > + }; > > + > > + usb1_sbu_default: usb1-sbu-state { > > + pins = "gpio47"; > > + function = "gpio"; > > + bias-disable; > > + drive-strength = <16>; > > + }; > > Similarly, please keep drive-strength above bias for consistency > > lgtm otherwise > Totaly agree, I was in a hurry, I will fix it in v2. Best wishes, Pengyu ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: (subset) [PATCH v2 0/3] arm64: dts: qcom: Introduce Huawei Matebook E Go 2024-12-20 16:05 [PATCH v2 0/3] arm64: dts: qcom: Introduce Huawei Matebook E Go Pengyu Luo ` (2 preceding siblings ...) 2024-12-20 16:05 ` [PATCH v2 3/3] arm64: dts: qcom: sc8280xp: Add " Pengyu Luo @ 2024-12-26 22:38 ` Bjorn Andersson 3 siblings, 0 replies; 14+ messages in thread From: Bjorn Andersson @ 2024-12-26 22:38 UTC (permalink / raw) To: conor+dt, konradybcio, krzk+dt, robh, Pengyu Luo Cc: chenxuecong2009, devicetree, gty0622, linux-arm-msm, linux-kernel On Sat, 21 Dec 2024 00:05:27 +0800, Pengyu Luo wrote: > Add support for the SC8280XP-based Huawei Matebook E Go (sc8280xp) > > Applied, thanks! [1/3] dt-bindings: arm: qcom: Document Huawei Matebook E Go (sc8280xp) commit: f99c52954a82601d4d46677e9399e87c8b6c1bb3 [3/3] arm64: dts: qcom: sc8280xp: Add Huawei Matebook E Go (sc8280xp) commit: 1401ae5c28a259f684ccba7b460884b88f863596 Best regards, -- Bjorn Andersson <andersson@kernel.org> ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 0/5] platform: arm64: Huawei Matebook E Go embedded controller @ 2024-12-27 17:13 Pengyu Luo 2024-12-27 17:13 ` [PATCH 5/5] arm64: dts: qcom: gaokun3: Add Embedded Controller node Pengyu Luo 0 siblings, 1 reply; 14+ messages in thread From: Pengyu Luo @ 2024-12-27 17:13 UTC (permalink / raw) To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio, Hans de Goede, Ilpo Järvinen, Bryan O'Donoghue, Sebastian Reichel, Heikki Krogerus, Greg Kroah-Hartman Cc: devicetree, linux-kernel, linux-arm-msm, platform-driver-x86, linux-pm, linux-usb, Dmitry Baryshkov, Nikita Travkin, Pengyu Luo This adds binding, drivers and the DT support for the Huawei Matebook E Go (sc8280xp) Embedded Controller which is also found in Huawei Matebook E Go LTE (sc8180x), but I don't have the sc8180x one to perferform test, so this series enable support for sc8280xp variant only, this series provides the following features: - battery and charger information report - charging thresholds control - FN lock (An alternative method) - LID switch detection - Temperature sensors - USB Type-C altmode - USB Type-C PD(high power) Thanks to the work of Bjorn and Dmitry([1]), the work of Nikita([2]), writing a EC driver won't be suffering. This work refers a lot to their work, also, many other works. I mentioned them in the source file. Depends: https://lore.kernel.org/linux-arm-msm/20241220160530.444864-1-mitltlatltl@gmail.com [1] https://lore.kernel.org/all/20240614-yoga-ec-driver-v7-0-9f0b9b40ae76@linaro.org/ [2] https://lore.kernel.org/all/20240315-aspire1-ec-v5-0-f93381deff39@trvn.ru/ Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com> --- Pengyu Luo (5): dt-bindings: platform: Add Huawei Matebook E Go EC platform: arm64: add Huawei Matebook E Go (sc8280xp) EC driver usb: typec: ucsi: add Huawei Matebook E Go (sc8280xp) ucsi driver power: supply: add Huawei Matebook E Go (sc8280xp) psy driver arm64: dts: qcom: gaokun3: Add Embedded Controller node .../bindings/platform/huawei,gaokun-ec.yaml | 116 ++++ .../boot/dts/qcom/sc8280xp-huawei-gaokun3.dts | 139 ++++ drivers/platform/arm64/Kconfig | 19 + drivers/platform/arm64/Makefile | 2 + drivers/platform/arm64/huawei-gaokun-ec.c | 598 ++++++++++++++++++ drivers/platform/arm64/huawei-gaokun-wmi.c | 283 +++++++++ drivers/power/supply/Kconfig | 9 + drivers/power/supply/Makefile | 1 + drivers/power/supply/huawei-gaokun-battery.c | 446 +++++++++++++ drivers/usb/typec/ucsi/Kconfig | 9 + drivers/usb/typec/ucsi/Makefile | 1 + drivers/usb/typec/ucsi/ucsi_huawei_gaokun.c | 481 ++++++++++++++ .../linux/platform_data/huawei-gaokun-ec.h | 90 +++ 13 files changed, 2194 insertions(+) create mode 100644 Documentation/devicetree/bindings/platform/huawei,gaokun-ec.yaml create mode 100644 drivers/platform/arm64/huawei-gaokun-ec.c create mode 100644 drivers/platform/arm64/huawei-gaokun-wmi.c create mode 100644 drivers/power/supply/huawei-gaokun-battery.c create mode 100644 drivers/usb/typec/ucsi/ucsi_huawei_gaokun.c create mode 100644 include/linux/platform_data/huawei-gaokun-ec.h -- 2.47.1 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 5/5] arm64: dts: qcom: gaokun3: Add Embedded Controller node 2024-12-27 17:13 [PATCH 0/5] platform: arm64: Huawei Matebook E Go embedded controller Pengyu Luo @ 2024-12-27 17:13 ` Pengyu Luo 2024-12-30 14:53 ` Konrad Dybcio 0 siblings, 1 reply; 14+ messages in thread From: Pengyu Luo @ 2024-12-27 17:13 UTC (permalink / raw) To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio, Hans de Goede, Ilpo Järvinen, Bryan O'Donoghue, Sebastian Reichel, Heikki Krogerus, Greg Kroah-Hartman Cc: devicetree, linux-kernel, linux-arm-msm, platform-driver-x86, linux-pm, linux-usb, Dmitry Baryshkov, Nikita Travkin, Pengyu Luo The Embedded Controller in the Huawei Matebook E Go (s8280xp) 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 ports, orientation switches and the QMP combo PHY. Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com> --- .../boot/dts/qcom/sc8280xp-huawei-gaokun3.dts | 139 ++++++++++++++++++ 1 file changed, 139 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts b/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts index 09b95f89e..09ca9a560 100644 --- a/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts +++ b/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts @@ -28,6 +28,7 @@ / { aliases { i2c4 = &i2c4; + i2c15 = &i2c15; serial1 = &uart2; }; @@ -216,6 +217,40 @@ map1 { }; }; + usb0-sbu-mux { + compatible = "pericom,pi3usb102", "gpio-sbu-mux"; + + select-gpios = <&tlmm 164 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&usb0_sbu_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-names = "default"; + pinctrl-0 = <&usb1_sbu_default>; + + orientation-switch; + + port { + usb1_sbu_mux: endpoint { + remote-endpoint = <&ucsi1_sbu>; + }; + }; + }; + wcn6855-pmu { compatible = "qcom,wcn6855-pmu"; @@ -584,6 +619,81 @@ touchscreen@4f { }; +&i2c15 { + clock-frequency = <400000>; + + pinctrl-0 = <&i2c15_default>; + pinctrl-names = "default"; + + status = "okay"; + + embedded-controller@38 { + compatible = "huawei,sc8280xp-gaokun-ec", "huawei,gaokun-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_ss_in: endpoint { + remote-endpoint = <&usb_0_qmpphy_out>; + }; + }; + + port@1 { + reg = <1>; + + 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_ss_in: endpoint { + remote-endpoint = <&usb_1_qmpphy_out>; + }; + }; + + port@1 { + reg = <1>; + + ucsi1_sbu: endpoint { + remote-endpoint = <&usb1_sbu_mux>; + }; + }; + }; + }; + }; +}; + &mdss0 { status = "okay"; }; @@ -1025,6 +1135,10 @@ &usb_0_qmpphy_dp_in { remote-endpoint = <&mdss0_dp0_out>; }; +&usb_0_qmpphy_out { + remote-endpoint = <&ucsi0_ss_in>; +}; + &usb_1 { status = "okay"; }; @@ -1054,6 +1168,10 @@ &usb_1_qmpphy_dp_in { remote-endpoint = <&mdss0_dp1_out>; }; +&usb_1_qmpphy_out { + remote-endpoint = <&ucsi1_ss_in>; +}; + &usb_2 { status = "okay"; }; @@ -1177,6 +1295,13 @@ i2c4_default: i2c4-default-state { 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"; @@ -1301,6 +1426,20 @@ tx-pins { }; }; + usb0_sbu_default: usb0-sbu-state { + pins = "gpio164"; + function = "gpio"; + bias-disable; + drive-strength = <16>; + }; + + usb1_sbu_default: usb1-sbu-state { + pins = "gpio47"; + function = "gpio"; + bias-disable; + drive-strength = <16>; + }; + wcd_default: wcd-default-state { reset-pins { pins = "gpio106"; -- 2.47.1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 5/5] arm64: dts: qcom: gaokun3: Add Embedded Controller node 2024-12-27 17:13 ` [PATCH 5/5] arm64: dts: qcom: gaokun3: Add Embedded Controller node Pengyu Luo @ 2024-12-30 14:53 ` Konrad Dybcio 2024-12-30 16:22 ` Pengyu Luo 0 siblings, 1 reply; 14+ messages in thread From: Konrad Dybcio @ 2024-12-30 14:53 UTC (permalink / raw) To: Pengyu Luo, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio, Hans de Goede, Ilpo Järvinen, Bryan O'Donoghue, Sebastian Reichel, Heikki Krogerus, Greg Kroah-Hartman Cc: devicetree, linux-kernel, linux-arm-msm, platform-driver-x86, linux-pm, linux-usb, Dmitry Baryshkov, Nikita Travkin On 27.12.2024 6:13 PM, Pengyu Luo wrote: > The Embedded Controller in the Huawei Matebook E Go (s8280xp) > 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 ports, orientation switches and the QMP combo PHY. > > Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com> > --- > .../boot/dts/qcom/sc8280xp-huawei-gaokun3.dts | 139 ++++++++++++++++++ > 1 file changed, 139 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts b/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts > index 09b95f89e..09ca9a560 100644 > --- a/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts > +++ b/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts > @@ -28,6 +28,7 @@ / { > > aliases { > i2c4 = &i2c4; > + i2c15 = &i2c15; > serial1 = &uart2; > }; > > @@ -216,6 +217,40 @@ map1 { > }; > }; > > + usb0-sbu-mux { > + compatible = "pericom,pi3usb102", "gpio-sbu-mux"; > + > + select-gpios = <&tlmm 164 GPIO_ACTIVE_HIGH>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&usb0_sbu_default>; Please preserve this order: property-n property-names > + > + orientation-switch; This > + > + port { > + usb0_sbu_mux: endpoint { > + remote-endpoint = <&ucsi0_sbu>; And this section have incorrect whitespacing (one tab too many, make sure you set your tab width to 8 spaces) Same for usb1-sbu-mux [...] > + 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"; > @@ -1301,6 +1426,20 @@ tx-pins { > }; > }; > > + usb0_sbu_default: usb0-sbu-state { > + pins = "gpio164"; > + function = "gpio"; > + bias-disable; > + drive-strength = <16>; > + }; > + > + usb1_sbu_default: usb1-sbu-state { > + pins = "gpio47"; > + function = "gpio"; > + bias-disable; > + drive-strength = <16>; > + }; Similarly, please keep drive-strength above bias for consistency lgtm otherwise Konrad ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 5/5] arm64: dts: qcom: gaokun3: Add Embedded Controller node 2024-12-30 14:53 ` Konrad Dybcio @ 2024-12-30 16:22 ` Pengyu Luo 0 siblings, 0 replies; 14+ messages in thread From: Pengyu Luo @ 2024-12-30 16:22 UTC (permalink / raw) To: konrad.dybcio Cc: andersson, bryan.odonoghue, conor+dt, devicetree, dmitry.baryshkov, gregkh, hdegoede, heikki.krogerus, ilpo.jarvinen, konradybcio, krzk+dt, linux-arm-msm, linux-kernel, linux-pm, linux-usb, mitltlatltl, nikita, platform-driver-x86, robh, sre On Mon, Dec 30, 2024 at 10:53 PM Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> wrote: > On 27.12.2024 6:13 PM, Pengyu Luo wrote: > > The Embedded Controller in the Huawei Matebook E Go (s8280xp) > > 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 ports, orientation switches and the QMP combo PHY. > > > > Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com> > > --- > > .../boot/dts/qcom/sc8280xp-huawei-gaokun3.dts | 139 ++++++++++++++++++ > > 1 file changed, 139 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts b/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts > > index 09b95f89e..09ca9a560 100644 > > --- a/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts > > +++ b/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts > > @@ -28,6 +28,7 @@ / { > > > > aliases { > > i2c4 = &i2c4; > > + i2c15 = &i2c15; > > serial1 = &uart2; > > }; > > > > @@ -216,6 +217,40 @@ map1 { > > }; > > }; > > > > + usb0-sbu-mux { > > + compatible = "pericom,pi3usb102", "gpio-sbu-mux"; > > + > > + select-gpios = <&tlmm 164 GPIO_ACTIVE_HIGH>; > > + > > + pinctrl-names = "default"; > > + pinctrl-0 = <&usb0_sbu_default>; > > Please preserve this order: > > property-n > property-names > > > + > > + orientation-switch; > > This > > > + > > + port { > > + usb0_sbu_mux: endpoint { > > + remote-endpoint = <&ucsi0_sbu>; > > And this section have incorrect whitespacing (one tab too many, make > sure you set your tab width to 8 spaces) > > Same for usb1-sbu-mux > > [...] > > > + 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"; > > @@ -1301,6 +1426,20 @@ tx-pins { > > }; > > }; > > > > + usb0_sbu_default: usb0-sbu-state { > > + pins = "gpio164"; > > + function = "gpio"; > > + bias-disable; > > + drive-strength = <16>; > > + }; > > + > > + usb1_sbu_default: usb1-sbu-state { > > + pins = "gpio47"; > > + function = "gpio"; > > + bias-disable; > > + drive-strength = <16>; > > + }; > > Similarly, please keep drive-strength above bias for consistency > > lgtm otherwise > Totaly agree, I was in a hurry, I will fix it in v2. Best wishes, Pengyu ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2024-12-30 16:24 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-12-20 16:05 [PATCH v2 0/3] arm64: dts: qcom: Introduce Huawei Matebook E Go Pengyu Luo 2024-12-20 16:05 ` [PATCH v2 1/3] dt-bindings: arm: qcom: Document Huawei Matebook E Go (sc8280xp) Pengyu Luo 2024-12-20 16:05 ` [PATCH v2 2/3] firmware: qcom: scm: Allow QSEECOM on " Pengyu Luo 2024-12-20 16:05 ` [PATCH v2 3/3] arm64: dts: qcom: sc8280xp: Add " Pengyu Luo 2024-12-20 21:13 ` Konrad Dybcio 2024-12-21 7:57 ` Pengyu Luo 2024-12-23 12:25 ` Konrad Dybcio 2024-12-23 13:07 ` Pengyu Luo 2024-12-30 14:54 ` Konrad Dybcio 2024-12-30 16:22 ` [PATCH 5/5] arm64: dts: qcom: gaokun3: Add Embedded Controller node Pengyu Luo 2024-12-26 22:38 ` (subset) [PATCH v2 0/3] arm64: dts: qcom: Introduce Huawei Matebook E Go Bjorn Andersson -- strict thread matches above, loose matches on Subject: below -- 2024-12-27 17:13 [PATCH 0/5] platform: arm64: Huawei Matebook E Go embedded controller Pengyu Luo 2024-12-27 17:13 ` [PATCH 5/5] arm64: dts: qcom: gaokun3: Add Embedded Controller node Pengyu Luo 2024-12-30 14:53 ` Konrad Dybcio 2024-12-30 16:22 ` Pengyu Luo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).