Konrad Dybcio писал(а) 13.07.2024 00:53: > On 12.07.2024 6:04 PM, Nikita Travkin wrote: >> From: Adam Słaboń <asaillen@xxxxxxxxxxxxxx> >> >> This commit introduces multiple hardware variants of Lenovo Vibe K5. >> >> - A6020a40 (msm8929-wingtech-wt82918hd) >> - A6020a46/A6020l36 (msm8939-wingtech-wt82918) >> - A6020a40 S616 H39 (msm8939-wingtech-wt82918hd) >> >> These devices are added with support for many features, notably: >> >> - Basic features like USB, mmc/sd storage, wifi, buttons, leds; >> - Accelerometer; >> - Touchscreen; >> - Sound and modem. >> >> Note that "HD" variant of K5 is based on msm8929 which is a lower bin >> of msm8939 SoC. A simple dtsi is added for this soc along with the new >> devices. >> >> Unfortunately, despite the heavy similarities, the combination of minor >> differences between variants make them incompatible between each other. >> >> Signed-off-by: Adam Słaboń <asaillen@xxxxxxxxxxxxxx> >> [Nikita: Minor cleanup, commit message] >> Signed-off-by: Nikita Travkin <nikita@xxxxxxx> >> --- >> arch/arm64/boot/dts/qcom/Makefile | 3 + >> .../boot/dts/qcom/msm8929-wingtech-wt82918hd.dts | 17 ++ >> arch/arm64/boot/dts/qcom/msm8929.dtsi | 5 + >> .../boot/dts/qcom/msm8939-wingtech-wt82918.dts | 16 ++ >> .../boot/dts/qcom/msm8939-wingtech-wt82918.dtsi | 254 +++++++++++++++++++++ >> .../boot/dts/qcom/msm8939-wingtech-wt82918hd.dts | 16 ++ >> 6 files changed, 311 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile >> index fd4c7c41ddc4..48ec781fa1d8 100644 >> --- a/arch/arm64/boot/dts/qcom/Makefile >> +++ b/arch/arm64/boot/dts/qcom/Makefile >> @@ -58,10 +58,13 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8916-wingtech-wt86518.dtb >> dtb-$(CONFIG_ARCH_QCOM) += msm8916-wingtech-wt86528.dtb >> dtb-$(CONFIG_ARCH_QCOM) += msm8916-wingtech-wt88047.dtb >> dtb-$(CONFIG_ARCH_QCOM) += msm8916-yiming-uz801v3.dtb >> +dtb-$(CONFIG_ARCH_QCOM) += msm8929-wingtech-wt82918hd.dtb >> dtb-$(CONFIG_ARCH_QCOM) += msm8939-huawei-kiwi.dtb >> dtb-$(CONFIG_ARCH_QCOM) += msm8939-longcheer-l9100.dtb >> dtb-$(CONFIG_ARCH_QCOM) += msm8939-samsung-a7.dtb >> dtb-$(CONFIG_ARCH_QCOM) += msm8939-sony-xperia-kanuti-tulip.dtb >> +dtb-$(CONFIG_ARCH_QCOM) += msm8939-wingtech-wt82918.dtb >> +dtb-$(CONFIG_ARCH_QCOM) += msm8939-wingtech-wt82918hd.dtb >> dtb-$(CONFIG_ARCH_QCOM) += msm8953-motorola-potter.dtb >> dtb-$(CONFIG_ARCH_QCOM) += msm8953-xiaomi-daisy.dtb >> dtb-$(CONFIG_ARCH_QCOM) += msm8953-xiaomi-mido.dtb >> diff --git a/arch/arm64/boot/dts/qcom/msm8929-wingtech-wt82918hd.dts b/arch/arm64/boot/dts/qcom/msm8929-wingtech-wt82918hd.dts >> new file mode 100644 >> index 000000000000..f9a358e852f8 >> --- /dev/null >> +++ b/arch/arm64/boot/dts/qcom/msm8929-wingtech-wt82918hd.dts >> @@ -0,0 +1,17 @@ >> +// SPDX-License-Identifier: GPL-2.0-only >> + >> +/dts-v1/; >> + >> +#include "msm8939-wingtech-wt82918.dtsi" >> +#include "msm8929.dtsi" >> + >> +/ { >> + model = "Lenovo Vibe K5 (HD) (Wingtech WT82918)"; >> + compatible = "wingtech,wt82918hd", "qcom,msm8929"; >> + chassis-type = "handset"; >> +}; >> + >> +&touchscreen { >> + touchscreen-size-x = <720>; >> + touchscreen-size-y = <1280>; >> +}; >> diff --git a/arch/arm64/boot/dts/qcom/msm8929.dtsi b/arch/arm64/boot/dts/qcom/msm8929.dtsi >> new file mode 100644 >> index 000000000000..c3d1d1ace2f6 >> --- /dev/null >> +++ b/arch/arm64/boot/dts/qcom/msm8929.dtsi >> @@ -0,0 +1,5 @@ >> +// SPDX-License-Identifier: GPL-2.0-only >> + >> +&opp_table { > > No way somebody called the gpu opp table "opp table".. > >> + /delete-node/ opp-550000000; > > Looking at downstream, seems like there isn't a speedbin fuse for > this :( > > [...] > >> + >> +&blsp_i2c2 { >> + status = "okay"; >> + >> + accelerometer@68 { >> + compatible = "invensense,icm20608"; >> + reg = <0x68>; >> + >> + pinctrl-0 = <&accelerometer_default>; >> + pinctrl-names = "default"; > > interesting choice to stick pintrl before interrupts > Hm, yeah... I will move it a bit down in v2. Thanks! Nikita >> + >> + interrupts-extended = <&tlmm 115 IRQ_TYPE_EDGE_FALLING>; >> + >> + vdd-supply = <&pm8916_l17>; >> + vddio-supply = <&pm8916_l6>; >> + >> + mount-matrix = "-1", "0", "0", >> + "0", "1", "0", >> + "0", "0", "1"; >> + }; >> +}; > > [...] > >> +&pm8916_mpps { >> + pwm_out: mpp4-state { >> + pins = "mpp4"; >> + function = "digital"; >> + power-source = <PM8916_MPP_VPH>; >> + output-low; >> + qcom,dtest = <1>; > > I think you meant qcom,dtest-output > > looks good otherwise > > Konrad