Re: [PATCH 3/3] arm64: dts: qcom: msm8939-wingtech-wt82918: Add Lenovo Vibe K5 devices

From: Nikita Travkin
Date: Sat Jul 13 2024 - 06:41:20 EST


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