Message ID | 20240712-msm89xx-wingtech-init-v1-3-64f4aa1870bd@trvn.ru (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Introduce msm8916/39 based Lenovo devices | expand |
On 12.07.2024 6:04 PM, Nikita Travkin wrote: > From: Adam Słaboń <asaillen@protonmail.com> > > 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@protonmail.com> > [Nikita: Minor cleanup, commit message] > Signed-off-by: Nikita Travkin <nikita@trvn.ru> > --- > 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 > + > + 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
On 12.07.2024 9:53 PM, Konrad Dybcio wrote: > On 12.07.2024 6:04 PM, Nikita Travkin wrote: [...] >> +&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 No, I apparently found this in msm-3.10, ignore this comment Konrad
On 12/07/2024 18:04, Nikita Travkin wrote: > From: Adam Słaboń <asaillen@protonmail.com> > > 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@protonmail.com> > [Nikita: Minor cleanup, commit message] > Signed-off-by: Nikita Travkin <nikita@trvn.ru> > --- > 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 { > + /delete-node/ opp-550000000; > +}; That's a very odd SoC DTSI. SoCs DTSIs are not meant to be included as complementary, but rather as full DTSI. IOW, this is very confusing code and will confuse everyone reading it. Best regards, Krzysztof
Krzysztof Kozlowski писал(а) 13.07.2024 15:02: > On 12/07/2024 18:04, Nikita Travkin wrote: >> From: Adam Słaboń <asaillen@protonmail.com> >> >> 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@protonmail.com> >> [Nikita: Minor cleanup, commit message] >> Signed-off-by: Nikita Travkin <nikita@trvn.ru> >> --- >> 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 { >> + /delete-node/ opp-550000000; >> +}; > > That's a very odd SoC DTSI. > > SoCs DTSIs are not meant to be included as complementary, but rather as > full DTSI. > > IOW, this is very confusing code and will confuse everyone reading it. > I think Adam wanted to keep the common device dtsi based on msm8939.dtsi to simplify things a bit. I was also a bit unsure if I should change how it's done but decided to keep it as it was. I will rework the v2 so: - msm8929.dtsi includes msm8939.dtsi - devices .dts include needed soc.dtsi, then include the common.dtsi - common.dtsi doesn't include any soc.dtsi Thanks for the review! Nikita > > Best regards, > Krzysztof
Konrad Dybcio писал(а) 13.07.2024 00:53: > On 12.07.2024 6:04 PM, Nikita Travkin wrote: >> From: Adam Słaboń <asaillen@protonmail.com> >> >> 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@protonmail.com> >> [Nikita: Minor cleanup, commit message] >> Signed-off-by: Nikita Travkin <nikita@trvn.ru> >> --- >> 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
Nikita Travkin писал(а) 13.07.2024 15:37: > Krzysztof Kozlowski писал(а) 13.07.2024 15:02: >> On 12/07/2024 18:04, Nikita Travkin wrote: >>> From: Adam Słaboń <asaillen@protonmail.com> >>> >>> 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@protonmail.com> >>> [Nikita: Minor cleanup, commit message] >>> Signed-off-by: Nikita Travkin <nikita@trvn.ru> >>> --- >>> 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 { >>> + /delete-node/ opp-550000000; >>> +}; >> >> That's a very odd SoC DTSI. >> >> SoCs DTSIs are not meant to be included as complementary, but rather as >> full DTSI. >> >> IOW, this is very confusing code and will confuse everyone reading it. >> > > I think Adam wanted to keep the common device dtsi based on msm8939.dtsi to > simplify things a bit. I was also a bit unsure if I should change how it's > done but decided to keep it as it was. I will rework the v2 so: > > - msm8929.dtsi includes msm8939.dtsi > - devices .dts include needed soc.dtsi, then include the common.dtsi > - common.dtsi doesn't include any soc.dtsi > (...) except gah this makes things quite a bit more complicated since the device makes use of the "generic design" msm8939-pm8916.dtsi and duplicating that would be quite silly IMO... I wonder if we can clarify things without making everything too complicated by calling that dtsi "msm8929-opp.dtsi" and keeping it as extension for now, then if we find that msm8929 has more differences - we can unfold and refactor everything. What do you think? Nikita > Thanks for the review! > Nikita > >> >> Best regards, >> Krzysztof
On Sat, Jul 13, 2024 at 04:07:13PM GMT, Nikita Travkin wrote: > Nikita Travkin писал(а) 13.07.2024 15:37: > > Krzysztof Kozlowski писал(а) 13.07.2024 15:02: > >> On 12/07/2024 18:04, Nikita Travkin wrote: > >>> From: Adam Słaboń <asaillen@protonmail.com> > >>> > >>> 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. > >>> > >>> 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 { > >>> + /delete-node/ opp-550000000; > >>> +}; > >> > >> That's a very odd SoC DTSI. > >> > >> SoCs DTSIs are not meant to be included as complementary, but rather as > >> full DTSI. > >> > >> IOW, this is very confusing code and will confuse everyone reading it. > >> > > > > I think Adam wanted to keep the common device dtsi based on msm8939.dtsi to > > simplify things a bit. I was also a bit unsure if I should change how it's > > done but decided to keep it as it was. I will rework the v2 so: > > > > - msm8929.dtsi includes msm8939.dtsi > > - devices .dts include needed soc.dtsi, then include the common.dtsi > > - common.dtsi doesn't include any soc.dtsi > > > > (...) except gah this makes things quite a bit more complicated since the > device makes use of the "generic design" msm8939-pm8916.dtsi and duplicating > that would be quite silly IMO... > > I wonder if we can clarify things without making everything too complicated > by calling that dtsi "msm8929-opp.dtsi" and keeping it as extension for now, > then if we find that msm8929 has more differences - we can unfold and refactor > everything. > > What do you think? What about adding msm8929-pm8916.dtsi, which includes just the right things? This might result in duplication with the existing files, but in the end msm8939-pm8916 and msm8919-pm8916 are also very similar.
Dmitry Baryshkov писал(а) 13.07.2024 21:12: > On Sat, Jul 13, 2024 at 04:07:13PM GMT, Nikita Travkin wrote: >> Nikita Travkin писал(а) 13.07.2024 15:37: >> > Krzysztof Kozlowski писал(а) 13.07.2024 15:02: >> >> On 12/07/2024 18:04, Nikita Travkin wrote: >> >>> From: Adam Słaboń <asaillen@protonmail.com> >> >>> >> >>> 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. >> >>> > >> >>> 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 { >> >>> + /delete-node/ opp-550000000; >> >>> +}; >> >> >> >> That's a very odd SoC DTSI. >> >> >> >> SoCs DTSIs are not meant to be included as complementary, but rather as >> >> full DTSI. >> >> >> >> IOW, this is very confusing code and will confuse everyone reading it. >> >> >> > >> > I think Adam wanted to keep the common device dtsi based on msm8939.dtsi to >> > simplify things a bit. I was also a bit unsure if I should change how it's >> > done but decided to keep it as it was. I will rework the v2 so: >> > >> > - msm8929.dtsi includes msm8939.dtsi >> > - devices .dts include needed soc.dtsi, then include the common.dtsi >> > - common.dtsi doesn't include any soc.dtsi >> > >> >> (...) except gah this makes things quite a bit more complicated since the >> device makes use of the "generic design" msm8939-pm8916.dtsi and duplicating >> that would be quite silly IMO... >> >> I wonder if we can clarify things without making everything too complicated >> by calling that dtsi "msm8929-opp.dtsi" and keeping it as extension for now, >> then if we find that msm8929 has more differences - we can unfold and refactor >> everything. >> >> What do you think? > > What about adding msm8929-pm8916.dtsi, which includes just the right > things? This might result in duplication with the existing files, but in > the end msm8939-pm8916 and msm8919-pm8916 are also very similar. Right, I guess the reason my thought was to avoid it is that msm8929 is (seemingly) just a bin of msm8939, compared to i.e. msm8916 which is a different soc. But I suppose it's fine to create a new dtsi for it too, will create it and change the includes as suggested (soc+pmic dtsi is included by device, then common dtsi that itself doesn't include soc dtsi) Thanks! Nikita
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 { + /delete-node/ opp-550000000; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918.dts b/arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918.dts new file mode 100644 index 000000000000..ebc624db880e --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918.dts @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: GPL-2.0-only + +/dts-v1/; + +#include "msm8939-wingtech-wt82918.dtsi" + +/ { + model = "Lenovo Vibe K5 (Wingtech WT82918)"; + compatible = "wingtech,wt82918", "qcom,msm8939"; + chassis-type = "handset"; +}; + +&touchscreen { + touchscreen-size-x = <1080>; + touchscreen-size-y = <1920>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918.dtsi b/arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918.dtsi new file mode 100644 index 000000000000..ff45ba8e02b1 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918.dtsi @@ -0,0 +1,254 @@ +// SPDX-License-Identifier: GPL-2.0-only + +#include "msm8939-pm8916.dtsi" +#include "msm8916-modem-qdsp6.dtsi" + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/leds/common.h> +#include <dt-bindings/pinctrl/qcom,pmic-mpp.h> + +/ { + aliases { + mmc0 = &sdhc_1; /* eMMC */ + mmc1 = &sdhc_2; /* SD card */ + serial0 = &blsp_uart2; + }; + + chosen { + stdout-path = "serial0"; + }; + + backlight: backlight { + compatible = "pwm-backlight"; + pwms = <&pm8916_pwm 0 100000>; + brightness-levels = <0 255>; + num-interpolated-steps = <255>; + default-brightness-level = <128>; + }; + + flash-led-controller { + compatible = "sgmicro,sgm3140"; + enable-gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>; + flash-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>; + + pinctrl-0 = <&camera_front_flash_default>; + pinctrl-names = "default"; + + flash_led: led { + function = LED_FUNCTION_FLASH; + color = <LED_COLOR_ID_WHITE>; + }; + }; + + gpio-keys { + compatible = "gpio-keys"; + + pinctrl-0 = <&gpio_keys_default>; + pinctrl-names = "default"; + + label = "GPIO Buttons"; + + button-volume-up { + label = "Volume Up"; + gpios = <&tlmm 107 GPIO_ACTIVE_LOW>; + linux,code = <KEY_VOLUMEUP>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + pinctrl-0 = <&gpio_leds_default>; + pinctrl-names = "default"; + + led-0 { + gpios = <&tlmm 69 GPIO_ACTIVE_LOW>; + function = LED_FUNCTION_CHARGING; + color = <LED_COLOR_ID_RED>; + default-state = "off"; + retain-state-suspended; + }; + + led-1 { + gpios = <&tlmm 36 GPIO_ACTIVE_HIGH>; + function = LED_FUNCTION_STATUS; + color = <LED_COLOR_ID_GREEN>; + default-state = "off"; + retain-state-suspended; + }; + }; + + usb_id: usb-id { + compatible = "linux,extcon-usb-gpio"; + id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>; + pinctrl-0 = <&usb_id_default>; + pinctrl-names = "default"; + }; +}; + +&blsp_i2c2 { + status = "okay"; + + accelerometer@68 { + compatible = "invensense,icm20608"; + reg = <0x68>; + + pinctrl-0 = <&accelerometer_default>; + pinctrl-names = "default"; + + 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"; + }; +}; + +&blsp_i2c5 { + status = "okay"; + + touchscreen: touchscreen@38 { + /* actually FT5336 */ + compatible = "edt,edt-ft5306"; + reg = <0x38>; + + pinctrl-0 = <&touchscreen_default>; + pinctrl-names = "default"; + + interrupts-extended = <&tlmm 13 IRQ_TYPE_LEVEL_LOW>; + + vcc-supply = <&pm8916_l17>; + iovcc-supply = <&pm8916_l6>; + + reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>; + }; +}; + +&blsp_uart2 { + status = "okay"; +}; + +&mpss_mem { + reg = <0x0 0x86800000 0x0 0x5500000>; +}; + +&pm8916_pwm { + pinctrl-0 = <&pwm_out>; + pinctrl-names = "default"; + status = "okay"; +}; + +&pm8916_resin { + linux,code = <KEY_VOLUMEDOWN>; + status = "okay"; +}; + +&pm8916_rpm_regulators { + pm8916_l17: l17 { + regulator-min-microvolt = <2850000>; + regulator-max-microvolt = <2850000>; + }; +}; + +&pm8916_vib { + status = "okay"; +}; + +&sdhc_1 { + status = "okay"; +}; + +&sdhc_2 { + pinctrl-0 = <&sdc2_default>; + pinctrl-1 = <&sdc2_sleep>; + pinctrl-names = "default", "sleep"; + non-removable; + status = "okay"; +}; + +&usb { + extcon = <&usb_id>, <&usb_id>; + status = "okay"; +}; + +&usb_hs_phy { + extcon = <&usb_id>; +}; + +&wcnss { + status = "okay"; +}; + +&wcnss_iris { + compatible = "qcom,wcn3620"; +}; + +&wcnss_mem { + status = "okay"; +}; + +&tlmm { + accelerometer_default: accelerometer-default-state { + pins = "gpio115"; + function = "gpio"; + drive-strength = <6>; + bias-pull-up; + }; + + camera_front_flash_default: camera-front-flash-default-state { + pins = "gpio31", "gpio32"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + + gpio_keys_default: gpio-keys-default-state { + pins = "gpio107"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + + gpio_leds_default: gpio-leds-default-state { + pins = "gpio36", "gpio69"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + + touchscreen_default: touchscreen-default-state { + reset-pins { + pins = "gpio12"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + + touchscreen-pins { + pins = "gpio13"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + usb_id_default: usb-id-default-state { + pins = "gpio110"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; +}; + +&pm8916_mpps { + pwm_out: mpp4-state { + pins = "mpp4"; + function = "digital"; + power-source = <PM8916_MPP_VPH>; + output-low; + qcom,dtest = <1>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918hd.dts b/arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918hd.dts new file mode 100644 index 000000000000..87016b5c44fd --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918hd.dts @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: GPL-2.0-only + +/dts-v1/; + +#include "msm8939-wingtech-wt82918.dtsi" + +/ { + model = "Lenovo Vibe K5 (HD) (Wingtech WT82918)"; + compatible = "wingtech,wt82918hdhw39", "qcom,msm8939"; + chassis-type = "handset"; +}; + +&touchscreen { + touchscreen-size-x = <720>; + touchscreen-size-y = <1280>; +};