Re: [PATCH v2 2/2] arm64: dts: qcom: sm8750: Add Lenovo Legion Y700 Gen4
From: Pengyu Luo
Date: Mon Jul 27 2026 - 11:36:44 EST
On Mon, Jul 27, 2026 at 10:19 PM Abel Vesa <abel.vesa@xxxxxxxxxxxxxxxx> wrote:
>
> On 26-07-26 22:30:48, Pengyu Luo wrote:
> > Add an initial devicetree for the Lenovo Legion Y700 Gen4, which is
> > based on sm8750-qrd.
> >
> > Supported features:
> > - Altmode
> > - Backlight
> > - Battery & Charge (Full speed)
> > - Buttons
> > - Framebuffer (Require mdss and dispcc to be disabled)
>
> And yet you enable mdss below, while dispcc is already enabled.
>
If one user wants to use the fb, then please disable them manually,
besides, that requires `splash-region` to be renamed to
`splash_region` too, the latter naming style is inappropriate for
upstream. So disabling the nodes would not make fb work, in that case,
I kept them as enabled, then we can use altmode.
> > - USB (Two ports)
> >
> > Downstream supported features:
> > - Display (8/10 bits) (Nowadays DPU driver is broken for dual dsi panel)
> > - GPU
> > - Touchscreen
> >
> > Unsupported features:
> > - BT & WIFI
> > - Cameras & Flash
> > - Microphones & Speakers (Downstream available, pending test [1])
> > - Sensors (Downstream available, pending test [2])
> > - Vibrators (Downstream available, pending test [1])
> >
> > [1]: https://github.com/GUF296/linux/commits/codex/tb321fu-full-remediation-20260715
> > [2]: https://github.com/linux-msm/hexagonrpc
> >
> > Signed-off-by: Pengyu Luo <mitltlatltl@xxxxxxxxx>
> > ---
> > Changes in v2:
> > - Add the dsi panel node, since the panel driver is upstreamed.
> > - Use consistent name for fixed regulators. (Krzysztof)
> > ---
> > arch/arm64/boot/dts/qcom/Makefile | 1 +
> > .../boot/dts/qcom/sm8750-lenovo-elden.dts | 1170 +++++++++++++++++
> > 2 files changed, 1171 insertions(+)
> > create mode 100644 arch/arm64/boot/dts/qcom/sm8750-lenovo-elden.dts
> >
> > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> > index e05414290d8e..cb93708e0415 100644
> > --- a/arch/arm64/boot/dts/qcom/Makefile
> > +++ b/arch/arm64/boot/dts/qcom/Makefile
> > @@ -405,6 +405,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8650-hdk-rear-camera-card.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += sm8650-hdk.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += sm8650-mtp.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += sm8650-qrd.dtb
> > +dtb-$(CONFIG_ARCH_QCOM) += sm8750-lenovo-elden.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += sm8750-mtp.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += sm8750-qrd.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += talos-evk.dtb
> > diff --git a/arch/arm64/boot/dts/qcom/sm8750-lenovo-elden.dts b/arch/arm64/boot/dts/qcom/sm8750-lenovo-elden.dts
> > new file mode 100644
> > index 000000000000..c64a1d8c65c1
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/qcom/sm8750-lenovo-elden.dts
> > @@ -0,0 +1,1170 @@
> > +// SPDX-License-Identifier: BSD-3-Clause
> > +/*
> > + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
> > + * Copyright (c) 2025-2026 Pengyu Luo <mitltlatltl@xxxxxxxxx>
> > + */
> > +
> > +/dts-v1/;
> > +
> > +#include <dt-bindings/gpio/gpio.h>
> > +#include <dt-bindings/phy/phy.h>
> > +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> > +#include "sm8750.dtsi"
> > +#include "pm8550.dtsi"
> > +#define PMK8550VE_SID 8
> > +#include "pm8550ve.dtsi"
> > +#include "pmih0108.dtsi"
> > +#include "pmk8550.dtsi"
> > +#include "sm8750-pmics.dtsi"
> > +
>
> [...]
>
> > +
> > + backlight: backlight@76 {
> > + compatible = "awinic,aw99706";
> > + reg = <0x76>;
> > +
> > + enable-gpio = <&tlmm 88 GPIO_ACTIVE_HIGH>;
>
> I wonder if this actually passes dtb_check. I think you meant
> enable-gpios here.
>
TBH, no. Thanks for mentioning. I did the compilation test, bringup
test, and the format checking that I can recall. I also followed
submitting-patches.rst, but I did not read writing-schema.rst in which
dtbs_check is mentioned there.
I will do this in the next version.
Best wishes,
Pengyu
> > +
> > + pinctrl-0 = <&aw99706_bl_active>;
> > + pinctrl-names = "default";
> > +
> > + default-brightness = <511>;
> > + max-brightness = <4095>;
> > +
> > + awinic,dim-mode = <1>;
> > + awinic,sw-freq-hz = <750000>;
> > + awinic,sw-ilmt-microamp = <3000000>;
> > + awinic,uvlo-thres-microvolt = <2200000>;
> > + awinic,iled-max-microamp = <30000>;
> > + awinic,ramp-ctl = <3>;
> > + };
> > +};
> > +
> > +&mdss {
> > + status = "okay";
>
> Commit message disagrees.
>
> > +};
> > +
> > +&mdss_dp0 {
> > + status = "okay";
> > +};
> > +
> > +&mdss_dp0_out {
> > + remote-endpoint = <&usb_dp_qmpphy_dp_in>;
> > +};
> > +