* [PATCH 1/4] dt-bindings: display: panel: samsung,atna33xc20: Add ATNA40HQ08-0
2026-06-04 8:06 [PATCH 0/4] X2 Elite Lenovo Yoga Slim 7x Gen11 support Konrad Dybcio
@ 2026-06-04 8:06 ` Konrad Dybcio
2026-06-04 15:05 ` [PATCH 1/4] dt-bindings: display: panel: samsung, atna33xc20: " Krzysztof Kozlowski
2026-06-04 20:39 ` Claude review: dt-bindings: display: panel: samsung,atna33xc20: " Claude Code Review Bot
2026-06-04 8:06 ` [PATCH 2/4] dt-bindings: arm: qcom: Add Lenovo Yoga Slim 7x Gen11 Konrad Dybcio
` (3 subsequent siblings)
4 siblings, 2 replies; 17+ messages in thread
From: Konrad Dybcio @ 2026-06-04 8:06 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Douglas Anderson,
Bjorn Andersson, Konrad Dybcio
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, Konrad Dybcio
Some variants of the Qualcomm Snapdragon X2 Elite-based Lenovo Yoga
Slim 7x Gen11 laptop ship with a Samsung ATNA40HQ08-0 2880x1800 120 Hz
OLED panel which seems to be compatible with the other ATNAxxx panels,
document it.
Note that I stripped the -0 suffix from the compatible, as it seems to
be of little importance and some sources omit it.
EDID:
0000000 ff00 ffff ffff 00ff 834c 422f 002f 0000
0000010 2300 0401 1eb5 7813 6603 ae85 3851 24b9
0000020 500a 0054 0000 0101 0101 0101 0101 0101
0000030 0101 0101 0101 0000 0000 0000 0000 0000
0000040 0000 0000 0000 0000 0000 fd00 1e00 e678
0000050 47e6 0a01 2020 2020 2020 0000 fe00 5300
0000060 4344 2020 2020 2020 2020 2020 0000 fc00
0000070 4100 4e54 3441 4830 3051 2d38 2030 c402
0000080 2070 0279 2000 1800 1200 2ffb 0042 0000
0000090 0000 0c23 5441 414e 3034 5148 3830 302d
00000a0 0021 ca1d 5e0b 4007 080b 0007 7ae5 8551
00000b0 b9a3 024a 020a 5445 5fd0 644c 4400 7823
00000c0 0026 0609 0000 0000 5000 0000 0022 0014
00000d0 0ad4 3f85 c70b 0700 1f00 0700 7707 4f00
00000e0 0f00 2e00 0600 4500 5fd0 644c 002b 270c
00000f0 1e00 0077 2700 1e00 003b 0000 0000 9085
0000100 2070 0079 2200 1400 d400 050a 0b3f 00c7
0000110 0007 001f 0707 07f7 07cf 000f 0081 731f
0000120 001a 0300 1e5b 0078 8fa0 6a02 7802 0000
0000130 0000 e38d 8005 e600 0506 8f01 016a 0000
0000140 0000 0000 0000 0000 0000 0000 0000 0000
0000150 0000 0000 0000 0000 0000 0000 0000 0000
0000160 0000 0000 0000 0000 0000 0000 0000 0000
0000170 0000 0000 0000 0000 0000 0000 0000 900f
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
Documentation/devicetree/bindings/display/panel/samsung,atna33xc20.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/panel/samsung,atna33xc20.yaml b/Documentation/devicetree/bindings/display/panel/samsung,atna33xc20.yaml
index 1bbe0da3997c3b06eccd18fe8980b58a6c05d963..27536eeaed8594c047dd0fa1cf425912be189508 100644
--- a/Documentation/devicetree/bindings/display/panel/samsung,atna33xc20.yaml
+++ b/Documentation/devicetree/bindings/display/panel/samsung,atna33xc20.yaml
@@ -25,6 +25,8 @@ properties:
- samsung,atna40ct06
# Samsung 14" WQXGA+ (2880x1800 pixels) eDP AMOLED panel
- samsung,atna40cu11
+ # Samsung 14" WQXGA+ (2880x1800 pixels) eDP AMOLED panel
+ - samsung,atna40hq08
# Samsung 14" WQXGA+ (2880×1800 pixels) eDP AMOLED panel
- samsung,atna40yk20
# Samsung 14.5" WQXGA+ (2880x1800 pixels) eDP AMOLED panel
--
2.54.0
^ permalink raw reply related [flat|nested] 17+ messages in thread* Re: [PATCH 1/4] dt-bindings: display: panel: samsung, atna33xc20: Add ATNA40HQ08-0
2026-06-04 8:06 ` [PATCH 1/4] dt-bindings: display: panel: samsung,atna33xc20: Add ATNA40HQ08-0 Konrad Dybcio
@ 2026-06-04 15:05 ` Krzysztof Kozlowski
2026-06-04 20:39 ` Claude review: dt-bindings: display: panel: samsung,atna33xc20: " Claude Code Review Bot
1 sibling, 0 replies; 17+ messages in thread
From: Krzysztof Kozlowski @ 2026-06-04 15:05 UTC (permalink / raw)
To: Konrad Dybcio, Neil Armstrong, Jessica Zhang, David Airlie,
Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Douglas Anderson, Bjorn Andersson, Konrad Dybcio
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm
On 04/06/2026 10:06, Konrad Dybcio wrote:
> Some variants of the Qualcomm Snapdragon X2 Elite-based Lenovo Yoga
> Slim 7x Gen11 laptop ship with a Samsung ATNA40HQ08-0 2880x1800 120 Hz
> OLED panel which seems to be compatible with the other ATNAxxx panels,
> document it.
>
> Note that I stripped the -0 suffix from the compatible, as it seems to
> be of little importance and some sources omit it.
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 17+ messages in thread
* Claude review: dt-bindings: display: panel: samsung,atna33xc20: Add ATNA40HQ08-0
2026-06-04 8:06 ` [PATCH 1/4] dt-bindings: display: panel: samsung,atna33xc20: Add ATNA40HQ08-0 Konrad Dybcio
2026-06-04 15:05 ` [PATCH 1/4] dt-bindings: display: panel: samsung, atna33xc20: " Krzysztof Kozlowski
@ 2026-06-04 20:39 ` Claude Code Review Bot
1 sibling, 0 replies; 17+ messages in thread
From: Claude Code Review Bot @ 2026-06-04 20:39 UTC (permalink / raw)
To: dri-devel-reviews
Patch Review
Straightforward addition of a new Samsung OLED panel compatible to the existing binding. The EDID dump in the commit message is a nice touch for reference.
No issues. The compatible `samsung,atna40hq08` fits the established naming pattern (stripping the `-0` suffix as explained in the commit message) and is placed in the correct alphabetical position among the other ATNA40 entries.
**Reviewed-by material.**
---
Generated by Claude Code Patch Reviewer
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 2/4] dt-bindings: arm: qcom: Add Lenovo Yoga Slim 7x Gen11
2026-06-04 8:06 [PATCH 0/4] X2 Elite Lenovo Yoga Slim 7x Gen11 support Konrad Dybcio
2026-06-04 8:06 ` [PATCH 1/4] dt-bindings: display: panel: samsung,atna33xc20: Add ATNA40HQ08-0 Konrad Dybcio
@ 2026-06-04 8:06 ` Konrad Dybcio
2026-06-04 15:09 ` Krzysztof Kozlowski
2026-06-04 20:39 ` Claude review: " Claude Code Review Bot
2026-06-04 8:06 ` [PATCH 3/4] arm64: dts: qcom: Add Glymur-based " Konrad Dybcio
` (2 subsequent siblings)
4 siblings, 2 replies; 17+ messages in thread
From: Konrad Dybcio @ 2026-06-04 8:06 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Douglas Anderson,
Bjorn Andersson, Konrad Dybcio
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, Konrad Dybcio
The Yoga Slim 7x Gen11 is a Snapdragon X2 Elite-based 14" laptop from
Lenovo, featuring an OLED touch panel. Add a compatible for it.
According to the spec page [1], there also exist other variations
(based on the Mahua SoC and/or with a different type of display panel),
but those are to be described separately
[1] https://psref.lenovo.com/Product/Yoga_Slim_7_14Q8Y11?tab=spec
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.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 50cc18a6ec5eddaf48542b85387c2d430cd4721a..fca3d180489d4cd3eb2726a722f15febe44f03ad 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -68,6 +68,7 @@ properties:
- items:
- enum:
+ - lenovo,yoga-slim7x-gen11
- qcom,glymur-crd
- const: qcom,glymur
--
2.54.0
^ permalink raw reply related [flat|nested] 17+ messages in thread* Re: [PATCH 2/4] dt-bindings: arm: qcom: Add Lenovo Yoga Slim 7x Gen11
2026-06-04 8:06 ` [PATCH 2/4] dt-bindings: arm: qcom: Add Lenovo Yoga Slim 7x Gen11 Konrad Dybcio
@ 2026-06-04 15:09 ` Krzysztof Kozlowski
2026-06-04 15:13 ` Rob Clark
2026-06-04 20:39 ` Claude review: " Claude Code Review Bot
1 sibling, 1 reply; 17+ messages in thread
From: Krzysztof Kozlowski @ 2026-06-04 15:09 UTC (permalink / raw)
To: Konrad Dybcio, Neil Armstrong, Jessica Zhang, David Airlie,
Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Douglas Anderson, Bjorn Andersson, Konrad Dybcio
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm
On 04/06/2026 10:06, Konrad Dybcio wrote:
> The Yoga Slim 7x Gen11 is a Snapdragon X2 Elite-based 14" laptop from
> Lenovo, featuring an OLED touch panel. Add a compatible for it.
>
> According to the spec page [1], there also exist other variations
> (based on the Mahua SoC and/or with a different type of display panel),
> but those are to be described separately
>
> [1] https://psref.lenovo.com/Product/Yoga_Slim_7_14Q8Y11?tab=spec
> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.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 50cc18a6ec5eddaf48542b85387c2d430cd4721a..fca3d180489d4cd3eb2726a722f15febe44f03ad 100644
> --- a/Documentation/devicetree/bindings/arm/qcom.yaml
> +++ b/Documentation/devicetree/bindings/arm/qcom.yaml
> @@ -68,6 +68,7 @@ properties:
>
> - items:
> - enum:
> + - lenovo,yoga-slim7x-gen11
I imagine you might want different panel variants, just like T14s has
LCD and OLED?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 2/4] dt-bindings: arm: qcom: Add Lenovo Yoga Slim 7x Gen11
2026-06-04 15:09 ` Krzysztof Kozlowski
@ 2026-06-04 15:13 ` Rob Clark
2026-06-04 15:18 ` Krzysztof Kozlowski
0 siblings, 1 reply; 17+ messages in thread
From: Rob Clark @ 2026-06-04 15:13 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Konrad Dybcio, Neil Armstrong, Jessica Zhang, David Airlie,
Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Douglas Anderson, Bjorn Andersson, Konrad Dybcio, dri-devel,
devicetree, linux-kernel, linux-arm-msm
On Thu, Jun 4, 2026 at 8:09 AM Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
> On 04/06/2026 10:06, Konrad Dybcio wrote:
> > The Yoga Slim 7x Gen11 is a Snapdragon X2 Elite-based 14" laptop from
> > Lenovo, featuring an OLED touch panel. Add a compatible for it.
> >
> > According to the spec page [1], there also exist other variations
> > (based on the Mahua SoC and/or with a different type of display panel),
> > but those are to be described separately
> >
> > [1] https://psref.lenovo.com/Product/Yoga_Slim_7_14Q8Y11?tab=spec
> > Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.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 50cc18a6ec5eddaf48542b85387c2d430cd4721a..fca3d180489d4cd3eb2726a722f15febe44f03ad 100644
> > --- a/Documentation/devicetree/bindings/arm/qcom.yaml
> > +++ b/Documentation/devicetree/bindings/arm/qcom.yaml
> > @@ -68,6 +68,7 @@ properties:
> >
> > - items:
> > - enum:
> > + - lenovo,yoga-slim7x-gen11
>
> I imagine you might want different panel variants, just like T14s has
> LCD and OLED?
I expect this will be the case.
BR,
-R
> Best regards,
> Krzysztof
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 2/4] dt-bindings: arm: qcom: Add Lenovo Yoga Slim 7x Gen11
2026-06-04 15:13 ` Rob Clark
@ 2026-06-04 15:18 ` Krzysztof Kozlowski
0 siblings, 0 replies; 17+ messages in thread
From: Krzysztof Kozlowski @ 2026-06-04 15:18 UTC (permalink / raw)
To: rob.clark
Cc: Konrad Dybcio, Neil Armstrong, Jessica Zhang, David Airlie,
Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Douglas Anderson, Bjorn Andersson, Konrad Dybcio, dri-devel,
devicetree, linux-kernel, linux-arm-msm
On 04/06/2026 17:13, Rob Clark wrote:
> On Thu, Jun 4, 2026 at 8:09 AM Krzysztof Kozlowski <krzk@kernel.org> wrote:
>>
>> On 04/06/2026 10:06, Konrad Dybcio wrote:
>>> The Yoga Slim 7x Gen11 is a Snapdragon X2 Elite-based 14" laptop from
>>> Lenovo, featuring an OLED touch panel. Add a compatible for it.
>>>
>>> According to the spec page [1], there also exist other variations
>>> (based on the Mahua SoC and/or with a different type of display panel),
>>> but those are to be described separately
>>>
>>> [1] https://psref.lenovo.com/Product/Yoga_Slim_7_14Q8Y11?tab=spec
>>> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.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 50cc18a6ec5eddaf48542b85387c2d430cd4721a..fca3d180489d4cd3eb2726a722f15febe44f03ad 100644
>>> --- a/Documentation/devicetree/bindings/arm/qcom.yaml
>>> +++ b/Documentation/devicetree/bindings/arm/qcom.yaml
>>> @@ -68,6 +68,7 @@ properties:
>>>
>>> - items:
>>> - enum:
>>> + - lenovo,yoga-slim7x-gen11
>>
>> I imagine you might want different panel variants, just like T14s has
>> LCD and OLED?
>
> I expect this will be the case.
Then better to prepare for this now, otherwise later you need to change
bindings. If unsure what other variants are, then at least make this
compatible panel-specific, e.g. lenovo,yoga-slim7x-gen11-oled-foo-bar.
Adding fallback compatible is not usually incompatible ABI change, thus
you can always do it later if needed.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 17+ messages in thread
* Claude review: dt-bindings: arm: qcom: Add Lenovo Yoga Slim 7x Gen11
2026-06-04 8:06 ` [PATCH 2/4] dt-bindings: arm: qcom: Add Lenovo Yoga Slim 7x Gen11 Konrad Dybcio
2026-06-04 15:09 ` Krzysztof Kozlowski
@ 2026-06-04 20:39 ` Claude Code Review Bot
1 sibling, 0 replies; 17+ messages in thread
From: Claude Code Review Bot @ 2026-06-04 20:39 UTC (permalink / raw)
To: dri-devel-reviews
Patch Review
Simple addition of the board compatible `lenovo,yoga-slim7x-gen11` under the Glymur SoC. Correctly placed alphabetically before `qcom,glymur-crd`.
Minor nit: The commit message is missing a period at the end of the paragraph starting "According to the spec page", and there's a double space ("there also exist") but these are cosmetic.
```
According to the spec page [1], there also exist other variations
(based on the Mahua SoC and/or with a different type of display panel),
but those are to be described separately
```
Missing Signed-off-by line break:
```
[1] https://psref.lenovo.com/Product/Yoga_Slim_7_14Q8Y11?tab=spec
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
```
There should be a blank line between the `[1]` URL reference and the Signed-off-by tag.
**Reviewed-by material (with cosmetic fixes).**
---
Generated by Claude Code Patch Reviewer
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 3/4] arm64: dts: qcom: Add Glymur-based Lenovo Yoga Slim 7x Gen11
2026-06-04 8:06 [PATCH 0/4] X2 Elite Lenovo Yoga Slim 7x Gen11 support Konrad Dybcio
2026-06-04 8:06 ` [PATCH 1/4] dt-bindings: display: panel: samsung,atna33xc20: Add ATNA40HQ08-0 Konrad Dybcio
2026-06-04 8:06 ` [PATCH 2/4] dt-bindings: arm: qcom: Add Lenovo Yoga Slim 7x Gen11 Konrad Dybcio
@ 2026-06-04 8:06 ` Konrad Dybcio
2026-06-04 8:22 ` sashiko-bot
` (2 more replies)
2026-06-04 8:06 ` [PATCH 4/4] firmware: qcom: scm: Allow QSEECOM on " Konrad Dybcio
2026-06-04 20:39 ` Claude review: X2 Elite Lenovo Yoga Slim 7x Gen11 support Claude Code Review Bot
4 siblings, 3 replies; 17+ messages in thread
From: Konrad Dybcio @ 2026-06-04 8:06 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Douglas Anderson,
Bjorn Andersson, Konrad Dybcio
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, Konrad Dybcio,
Srinivas Kandagatla, Abel Vesa
Introduce a device tree for the Glymur-based Lenovo Yoga Slim 7x Gen11
laptop. It's fairly similar to the reference design, although there are
a couple of major differences, including a different EC.
Currently working:
- Audio playback and capture
- GPU, Display
- Keyboard, touchpad, touchscreen, lid switch
- Privacy LED
- Charging, Type-C
- Wi-Fi, Bluetooth
- Modem should work on the SKUs that have it, but it remains untested
due to lack of access to such a device
Co-developed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
Co-developed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
Signed-off-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../boot/dts/qcom/glymur-lenovo-yoga-slim7x.dts | 1237 ++++++++++++++++++++
2 files changed, 1238 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 6f33c4e2f09c3990e90e1b25a6f7d618891948c5..4d2864b371e29925a3b3bf4de50efe709b971851 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -16,6 +16,7 @@ dtb-$(CONFIG_ARCH_QCOM) += apq8096sg-db820c.dtb
dtb-$(CONFIG_ARCH_QCOM) += apq8096-ifc6640.dtb
dtb-$(CONFIG_ARCH_QCOM) += eliza-mtp.dtb
dtb-$(CONFIG_ARCH_QCOM) += glymur-crd.dtb
+dtb-$(CONFIG_ARCH_QCOM) += glymur-lenovo-yoga-slim7x.dtb
dtb-$(CONFIG_ARCH_QCOM) += hamoa-iot-evk.dtb
hamoa-iot-evk-el2-dtbs := hamoa-iot-evk.dtb x1-el2.dtbo
diff --git a/arch/arm64/boot/dts/qcom/glymur-lenovo-yoga-slim7x.dts b/arch/arm64/boot/dts/qcom/glymur-lenovo-yoga-slim7x.dts
new file mode 100644
index 0000000000000000000000000000000000000000..e7eb20ea81fa4e9b735b7daf4c27bb0feeeb6060
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/glymur-lenovo-yoga-slim7x.dts
@@ -0,0 +1,1237 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+/dts-v1/;
+
+#include "glymur.dtsi"
+
+#include "pmcx0102.dtsi" /* SPMI0: SID-2/3 SPMI1: SID-2/3 */
+#include "pmh0101.dtsi" /* SPMI0: SID-1 */
+#include "pmh0110-glymur.dtsi" /* SPMI0: SID-5/7 SPMI1: SID-5 */
+#include "pmh0104-glymur.dtsi" /* SPMI0: SID-8/9 SPMI1: SID-11 */
+#include "pmk8850.dtsi" /* SPMI0: SID-0 */
+#include "smb2370.dtsi" /* SPMI2: SID-9/10/11 */
+
+#include <dt-bindings/input/gpio-keys.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+
+/ {
+ model = "Lenovo Yoga Slim 7x Gen 11";
+ compatible = "lenovo,yoga-slim7x-gen11", "qcom,glymur";
+
+ aliases {
+ serial0 = &uart21;
+ serial1 = &uart14;
+ i2c0 = &i2c0;
+ i2c5 = &i2c5;
+ i2c8 = &i2c8;
+ i2c9 = &i2c9;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ clocks {
+ xo_board: xo-board {
+ compatible = "fixed-clock";
+ clock-frequency = <38400000>;
+ #clock-cells = <0>;
+ };
+
+ sleep_clk: sleep-clk {
+ compatible = "fixed-clock";
+ clock-frequency = <32000>;
+ #clock-cells = <0>;
+ };
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&key_vol_up_default>, <&hall_int_n_default>;
+ pinctrl-names = "default";
+
+ switch-lid {
+ label = "lid";
+ gpios = <&tlmm 92 GPIO_ACTIVE_LOW>;
+ linux,input-type = <EV_SW>;
+ linux,code = <SW_LID>;
+ wakeup-source;
+ wakeup-event-action = <EV_ACT_DEASSERTED>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ pinctrl-0 = <&cam_indicator_en>;
+ pinctrl-names = "default";
+
+ privacy_led: privacy-led {
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_WHITE>;
+ gpios = <&tlmm 111 GPIO_ACTIVE_HIGH>;
+ default-state = "off";
+ panic-indicator;
+ };
+ };
+
+ pmic-glink {
+ compatible = "qcom,glymur-pmic-glink",
+ "qcom,pmic-glink";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* Left side display-adjacent port */
+ 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>;
+
+ pmic_glink_hs_in: endpoint {
+ remote-endpoint = <&usb_0_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ pmic_glink_ss_in: endpoint {
+ remote-endpoint = <&usb_0_qmpphy_out>;
+ };
+ };
+ };
+ };
+
+ /* Left side user-adjacent port */
+ 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>;
+
+ pmic_glink_hs_in1: endpoint {
+ remote-endpoint = <&usb_1_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ pmic_glink_ss_in1: endpoint {
+ remote-endpoint = <&usb_1_qmpphy_out>;
+ };
+ };
+ };
+ };
+
+ /* Right side port */
+ connector@2 {
+ compatible = "usb-c-connector";
+ reg = <2>;
+ power-role = "dual";
+ data-role = "dual";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ pmic_glink_hs_in2: endpoint {
+ remote-endpoint = <&usb_2_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ pmic_glink_ss_in2: endpoint {
+ remote-endpoint = <&usb_2_qmpphy_out>;
+ };
+ };
+ };
+ };
+ };
+
+ vreg_edp_3p3: regulator-edp-3p3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_EDP_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&edp_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_misc_3p3: regulator-misc-3p3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_MISC_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&pmh0110_f_e0_gpios 6 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&misc_3p3_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_nvme: regulator-nvme {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_NVME_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&pmh0101_gpios 14 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&nvme_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_wcn_0p95: regulator-wcn-0p95 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_WCN_0P95";
+ regulator-min-microvolt = <950000>;
+ regulator-max-microvolt = <950000>;
+
+ vin-supply = <&vreg_wcn_3p3>;
+ };
+
+ vreg_wcn_3p3: regulator-wcn-3p3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_WCN_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&tlmm 94 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&wcn_sw_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_wwan: regulator-wwan {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_WWAN_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&tlmm 246 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&wwan_reg_en>;
+ pinctrl-names = "default";
+ };
+
+ sound {
+ compatible = "qcom,glymur-sndcard";
+ model = "GLYMUR-LENOVO-Yoga-Slim7x";
+ audio-routing = "WooferLeft IN", "WSA WSA_SPK1 OUT",
+ "TweeterLeft IN", "WSA WSA_SPK2 OUT",
+ "WooferRight IN", "WSA2 WSA_SPK1 OUT",
+ "TweeterRight IN", "WSA2 WSA_SPK2 OUT",
+ "VA DMIC0", "vdd-micb",
+ "VA DMIC1", "vdd-micb",
+ "VA DMIC2", "vdd-micb",
+ "VA DMIC3", "vdd-micb";
+
+ va-dai-link {
+ link-name = "VA Capture";
+
+ codec {
+ sound-dai = <&lpass_vamacro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ wsa-dai-link {
+ link-name = "WSA Playback";
+
+ codec {
+ sound-dai = <&left_woofer>, <&left_tweeter>,
+ <&swr0 0>, <&lpass_wsamacro 0>,
+ <&right_woofer>, <&right_tweeter>,
+ <&swr3 0>, <&lpass_wsa2macro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+ };
+
+ wcn7850-pmu {
+ compatible = "qcom,wcn7850-pmu";
+
+ vdd-supply = <&vreg_wcn_0p95>;
+ vddio-supply = <&vreg_l15b_e0>;
+ vddaon-supply = <&vreg_l15b_e0>;
+ vdddig-supply = <&vreg_l15b_e0>;
+ vddrfa1p2-supply = <&vreg_l15b_e0>;
+ vddrfa1p8-supply = <&vreg_l15b_e0>;
+
+ wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
+ bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-0 = <&wcn_wlan_bt_en>;
+ pinctrl-names = "default";
+
+ regulators {
+ vreg_pmu_rfa_cmn: ldo0 {
+ regulator-name = "vreg_pmu_rfa_cmn";
+ };
+
+ vreg_pmu_aon_0p59: ldo1 {
+ regulator-name = "vreg_pmu_aon_0p59";
+ };
+
+ vreg_pmu_wlcx_0p8: ldo2 {
+ regulator-name = "vreg_pmu_wlcx_0p8";
+ };
+
+ vreg_pmu_wlmx_0p85: ldo3 {
+ regulator-name = "vreg_pmu_wlmx_0p85";
+ };
+
+ vreg_pmu_btcmx_0p85: ldo4 {
+ regulator-name = "vreg_pmu_btcmx_0p85";
+ };
+
+ vreg_pmu_rfa_0p8: ldo5 {
+ regulator-name = "vreg_pmu_rfa_0p8";
+ };
+
+ vreg_pmu_rfa_1p2: ldo6 {
+ regulator-name = "vreg_pmu_rfa_1p2";
+ };
+
+ vreg_pmu_rfa_1p8: ldo7 {
+ regulator-name = "vreg_pmu_rfa_1p8";
+ };
+
+ vreg_pmu_pcie_0p9: ldo8 {
+ regulator-name = "vreg_pmu_pcie_0p9";
+ };
+
+ vreg_pmu_pcie_1p8: ldo9 {
+ regulator-name = "vreg_pmu_pcie_1p8";
+ };
+ };
+ };
+};
+
+&apps_rsc {
+ regulators-0 {
+ compatible = "qcom,pmh0101-rpmh-regulators";
+ qcom,pmic-id = "B_E0";
+
+ vreg_l1b_e0: ldo1 {
+ regulator-name = "vreg_l1b_e0";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l7b_e0: ldo7 {
+ regulator-name = "vreg_l7b_e0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l8b_e0: ldo8 {
+ regulator-name = "vreg_l8b_e0";
+ regulator-min-microvolt = <3304000>;
+ regulator-max-microvolt = <3304000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l9b_e0: ldo9 {
+ regulator-name = "vreg_l9b_e0";
+ regulator-min-microvolt = <2960000>;
+ regulator-max-microvolt = <2960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l10b_e0: ldo10 {
+ regulator-name = "vreg_l10b_e0";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l11b_e0: ldo11 {
+ regulator-name = "vreg_l11b_e0";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l12b_e0: ldo12 {
+ regulator-name = "vreg_l12b_e0";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l15b_e0: ldo15 {
+ regulator-name = "vreg_l15b_e0";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l17b_e0: ldo17 {
+ regulator-name = "vreg_l17b_e0";
+ regulator-min-microvolt = <2504000>;
+ regulator-max-microvolt = <2504000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l18b_e0: ldo18 {
+ regulator-name = "vreg_l18b_e0";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-1 {
+ compatible = "qcom,pmcx0102-rpmh-regulators";
+ qcom,pmic-id = "C_E1";
+
+ vreg_l1c_e1: ldo1 {
+ regulator-name = "vreg_l1c_e1";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2c_e1: ldo2 {
+ regulator-name = "vreg_l2c_e1";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3c_e1: ldo3 {
+ regulator-name = "vreg_l3c_e1";
+ regulator-min-microvolt = <936000>;
+ regulator-max-microvolt = <936000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l4c_e1: ldo4 {
+ regulator-name = "vreg_l4c_e1";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-2 {
+ compatible = "qcom,pmh0110-rpmh-regulators";
+ qcom,pmic-id = "F_E0";
+
+ vreg_s7f_e0: smps7 {
+ regulator-name = "vreg_s7f_e0";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s8f_e0: smps8 {
+ regulator-name = "vreg_s8f_e0";
+ regulator-min-microvolt = <952000>;
+ regulator-max-microvolt = <952000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2f_e0: ldo2 {
+ regulator-name = "vreg_l2f_e0";
+ regulator-min-microvolt = <936000>;
+ regulator-max-microvolt = <936000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3f_e0: ldo3 {
+ regulator-name = "vreg_l3f_e0";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-3 {
+ compatible = "qcom,pmh0110-rpmh-regulators";
+ qcom,pmic-id = "F_E1";
+
+ vreg_l1f_e1: ldo1 {
+ regulator-name = "vreg_l1f_e1";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <904000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2f_e1: ldo2 {
+ regulator-name = "vreg_l2f_e1";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l4f_e1: ldo4 {
+ regulator-name = "vreg_l4f_e1";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-4 {
+ compatible = "qcom,pmh0110-rpmh-regulators";
+ qcom,pmic-id = "H_E0";
+
+ vreg_l1h_e0: ldo1 {
+ regulator-name = "vreg_l1h_e0";
+ regulator-min-microvolt = <936000>;
+ regulator-max-microvolt = <936000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2h_e0: ldo2 {
+ regulator-name = "vreg_l2h_e0";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3h_e0: ldo3 {
+ regulator-name = "vreg_l3h_e0";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l4h_e0: ldo4 {
+ regulator-name = "vreg_l4h_e0";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+};
+
+&gpu {
+ status = "okay";
+};
+
+&gmu {
+ status = "okay";
+};
+
+&i2c0 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ touchpad@2c {
+ compatible = "hid-over-i2c";
+ reg = <0x2c>;
+
+ hid-descr-addr = <0x20>;
+ interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
+
+ vdd-supply = <&vreg_misc_3p3>;
+ vddl-supply = <&vreg_l15b_e0>;
+
+ pinctrl-0 = <&tpad_default>;
+ pinctrl-names = "default";
+
+ wakeup-source;
+ };
+
+ keyboard@3a {
+ compatible = "hid-over-i2c";
+ reg = <0x3a>;
+
+ hid-descr-addr = <0x1>;
+ interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>;
+
+ vdd-supply = <&vreg_misc_3p3>;
+ vddl-supply = <&vreg_l15b_e0>;
+
+ pinctrl-0 = <&kybd_default>;
+ pinctrl-names = "default";
+
+ wakeup-source;
+ };
+
+ /* Something @ 0x5b */
+};
+
+&i2c5 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+};
+
+&i2c8 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ touchscreen@14 {
+ compatible = "hid-over-i2c";
+ reg = <0x14>;
+
+ hid-descr-addr = <0x1>;
+ interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>;
+
+ post-power-on-delay-ms = <200>;
+
+ vdd-supply = <&vreg_misc_3p3>;
+ vddl-supply = <&vreg_l15b_e0>;
+
+ pinctrl-0 = <&ts0_default>;
+ pinctrl-names = "default";
+ };
+};
+
+&i2c9 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ /* EC @ 0x70, irq = TLMM 66 */
+};
+
+&lpass_vamacro {
+ pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
+ pinctrl-names = "default";
+ qcom,dmic-sample-rate = <4800000>;
+};
+
+&mdss {
+ status = "okay";
+};
+
+&mdss_dp0 {
+ status = "okay";
+};
+
+&mdss_dp0_out {
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp1 {
+ status = "okay";
+};
+
+&mdss_dp1_out {
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp2 {
+ status = "okay";
+};
+
+&mdss_dp2_out {
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp3 {
+ /delete-property/ #sound-dai-cells;
+
+ status = "okay";
+
+ aux-bus {
+ panel {
+ compatible = "samsung,atna40hq08", "samsung,atna33xc20";
+ enable-gpios = <&tlmm 18 GPIO_ACTIVE_HIGH>;
+ power-supply = <&vreg_edp_3p3>;
+
+ pinctrl-0 = <&edp_bl_en>;
+ pinctrl-names = "default";
+
+ port {
+ edp_panel_in: endpoint {
+ remote-endpoint = <&mdss_dp3_out>;
+ };
+ };
+ };
+ };
+};
+
+&mdss_dp3_out {
+ data-lanes = <0 1 2 3>;
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+
+ remote-endpoint = <&edp_panel_in>;
+};
+
+&mdss_dp3_phy {
+ vdda-phy-supply = <&vreg_l2f_e1>;
+ vdda-pll-supply = <&vreg_l4f_e1>;
+
+ status = "okay";
+};
+
+&pcie4 {
+ pinctrl-0 = <&pcie4_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie4_phy {
+ vdda-phy-supply = <&vreg_l1c_e1>;
+ vdda-pll-supply = <&vreg_l4f_e1>;
+
+ status = "okay";
+};
+
+&pcie4_port0 {
+ reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
+ wifi@0 {
+ compatible = "pci17cb,1107";
+ reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+ vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
+ vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
+ };
+};
+
+&pcie5 {
+ vddpe-3v3-supply = <&vreg_nvme>;
+
+ pinctrl-0 = <&pcie5_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie5_phy {
+ vdda-phy-supply = <&vreg_l2f_e0>;
+ vdda-pll-supply = <&vreg_l4h_e0>;
+
+ status = "okay";
+};
+
+&pcie5_port0 {
+ reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+};
+
+&pcie6 {
+ vddpe-3v3-supply = <&vreg_wwan>;
+
+ pinctrl-0 = <&pcie6_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie6_phy {
+ vdda-phy-supply = <&vreg_l1c_e1>;
+ vdda-pll-supply = <&vreg_l4f_e1>;
+
+ status = "okay";
+};
+
+&pcie6_port0 {
+ reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
+};
+
+&pmh0101_gpios {
+ nvme_reg_en: nvme-reg-en-state {
+ pins = "gpio14";
+ function = "normal";
+ bias-disable;
+ };
+};
+
+&pmh0110_f_e0_gpios {
+ misc_3p3_reg_en: misc-3p3-reg-en-state {
+ pins = "gpio6";
+ function = "normal";
+ bias-disable;
+ input-disable;
+ output-enable;
+ drive-push-pull;
+ power-source = <1>; /* 1.8 V */
+ qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+ };
+};
+
+&pmh0110_f_e1_gpios {
+ nvme_sec_reg_en: nvme-reg-en-state {
+ pins = "gpio14";
+ function = "normal";
+ bias-disable;
+ };
+};
+
+&pmh0101_gpios {
+ key_vol_up_default: key-vol-up-default-state {
+ pins = "gpio6";
+ function = "normal";
+ output-disable;
+ bias-pull-up;
+ };
+};
+
+&pmk8850_rtc {
+ qcom,no-alarm;
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/glymur/LENOVO/83QR/qcadsp8480.mbn",
+ "qcom/glymur/LENOVO/83QR/adsp_dtbs.elf";
+
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ firmware-name = "qcom/glymur/LENOVO/83QR/qccdsp8480.mbn",
+ "qcom/glymur/LENOVO/83QR/cdsp_dtbs.elf";
+
+ status = "okay";
+};
+
+&remoteproc_soccp {
+ status = "okay";
+};
+
+&smb2370_j_e2_eusb2_repeater {
+ vdd18-supply = <&vreg_l15b_e0>;
+ vdd3-supply = <&vreg_l7b_e0>;
+};
+
+&smb2370_k_e2_eusb2_repeater {
+ vdd18-supply = <&vreg_l15b_e0>;
+ vdd3-supply = <&vreg_l7b_e0>;
+};
+
+&smb2370_l_e2_eusb2_repeater {
+ vdd18-supply = <&vreg_l15b_e0>;
+ vdd3-supply = <&vreg_l7b_e0>;
+};
+
+&swr0 {
+ status = "okay";
+
+ /* WSA8845, Left Woofer */
+ left_woofer: speaker@0,0 {
+ compatible = "sdw20217020400";
+ reg = <0 0>;
+ reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "WooferLeft";
+ vdd-1p8-supply = <&vreg_l15b_e0>;
+ vdd-io-supply = <&vreg_l18b_e0>;
+ qcom,port-mapping = <1 2 3 7 12 14>;
+ };
+
+ /* WSA8845, Left Tweeter */
+ left_tweeter: speaker@0,1 {
+ compatible = "sdw20217020400";
+ reg = <0 1>;
+ reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "TweeterLeft";
+ vdd-1p8-supply = <&vreg_l15b_e0>;
+ vdd-io-supply = <&vreg_l18b_e0>;
+ qcom,port-mapping = <4 5 6 7 13 15>;
+ };
+};
+
+&swr3 {
+ status = "okay";
+
+ /* WSA8845, Right Woofer */
+ right_woofer: speaker@0,0 {
+ compatible = "sdw20217020400";
+ reg = <0 0>;
+ reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "WooferRight";
+ vdd-1p8-supply = <&vreg_l15b_e0>;
+ vdd-io-supply = <&vreg_l18b_e0>;
+ qcom,port-mapping = <1 2 3 7 12 14>;
+ };
+
+ /* WSA8845, Right Tweeter */
+ right_tweeter: speaker@0,1 {
+ compatible = "sdw20217020400";
+ reg = <0 1>;
+ reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "TweeterRight";
+ vdd-1p8-supply = <&vreg_l15b_e0>;
+ vdd-io-supply = <&vreg_l18b_e0>;
+ qcom,port-mapping = <4 5 6 7 13 15>;
+ };
+};
+
+&tcsr {
+ vdda-refgen-0p9-supply = <&vreg_l1f_e1>;
+ vdda-refgen-1p2-supply = <&vreg_l4f_e1>;
+
+ vdda-qrefrx5-0p9-supply = <&vreg_l3f_e0>;
+ vdda-qreftx0-0p9-supply = <&vreg_l3f_e0>;
+ vdda-qreftx0-1p2-supply = <&vreg_l4h_e0>;
+ vdda-qrefrpt0-0p9-supply = <&vreg_l2f_e1>;
+ vdda-qrefrpt1-0p9-supply = <&vreg_l2f_e1>;
+ vdda-qrefrpt2-0p9-supply = <&vreg_l2f_e1>;
+ vdda-qrefrpt3-0p9-supply = <&vreg_l2h_e0>;
+ vdda-qrefrpt4-0p9-supply = <&vreg_l2h_e0>;
+ vdda-qrefrx0-0p9-supply = <&vreg_l2f_e1>;
+ vdda-qrefrx1-0p9-supply = <&vreg_l2f_e1>;
+ vdda-qrefrx2-0p9-supply = <&vreg_l2f_e1>;
+ vdda-qrefrx4-0p9-supply = <&vreg_l2h_e0>;
+ vdda-qreftx1-0p9-supply = <&vreg_l1f_e1>;
+};
+
+&tlmm {
+ gpio-reserved-ranges = <4 4>, /* EC TZ Secure I3C */
+ <10 2>, /* OOB UART */
+ <44 4>, /* Security SPI (TPM) */
+ <65 1>; /* EC reset (need to unplug the battery if asserted) */
+
+ tpad_default: tpad-default-state {
+ pins = "gpio3";
+ function = "gpio";
+ bias-disable;
+ };
+
+ edp_bl_en: edp-bl-en-state {
+ pins = "gpio18";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ };
+
+ ts0_default: ts0-default-state {
+ int-n-pins {
+ pins = "gpio51";
+ function = "gpio";
+ bias-disable;
+ };
+
+ reset-n-pins {
+ pins = "gpio48";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ };
+ };
+
+ ec_int_n_default: ec-int-n-state {
+ pins = "gpio66";
+ function = "gpio";
+ bias-disable;
+ };
+
+ kybd_default: kybd-default-state {
+ pins = "gpio67";
+ function = "gpio";
+ bias-disable;
+ };
+
+ edp_reg_en: edp-reg-en-state {
+ pins = "gpio70";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ };
+
+ hall_int_n_default: hall-int-n-state {
+ pins = "gpio92";
+ function = "gpio";
+ bias-disable;
+ };
+
+ wcn_sw_en: wcn-sw-en-state {
+ pins = "gpio94";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ cam_indicator_en: cam-indicator-en-state {
+ pins = "gpio111";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ wcn_wlan_bt_en: wcn-wlan-bt-en-state {
+ pins = "gpio116", "gpio117";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ pcie4_default: pcie4-default-state {
+ clkreq-n-pins {
+ pins = "gpio147";
+ function = "pcie4_clk_req_n";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio146";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ wake-n-pins {
+ pins = "gpio148";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ pcie5_default: pcie5-default-state {
+ clkreq-n-pins {
+ pins = "gpio153";
+ function = "pcie5_clk_req_n";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio152";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ wake-n-pins {
+ pins = "gpio154";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ pcie6_default: pcie6-default-state {
+ clkreq-n-pins {
+ pins = "gpio150";
+ function = "pcie6_clk_req_n";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio149";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ wake-n-pins {
+ pins = "gpio151";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ pcie3b_default: pcie3b-default-state {
+ clkreq-n-pins {
+ pins = "gpio156";
+ function = "pcie3b_clk";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio155";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ wake-n-pins {
+ pins = "gpio157";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ wwan_reg_en: wwan-reg-en-state {
+ pins = "gpio246";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+};
+
+&uart14 {
+ status = "okay";
+
+ bluetooth {
+ compatible = "qcom,wcn7850-bt";
+ max-speed = <3200000>;
+
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+ };
+};
+
+&usb_0 {
+ status = "okay";
+};
+
+&usb_0_dwc3_hs {
+ remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_0_hsphy {
+ vdd-supply = <&vreg_l3f_e0>;
+ vdda12-supply = <&vreg_l4h_e0>;
+
+ phys = <&smb2370_j_e2_eusb2_repeater>;
+
+ status = "okay";
+};
+
+&usb_0_qmpphy {
+ vdda-phy-supply = <&vreg_l4h_e0>;
+ vdda-pll-supply = <&vreg_l3f_e0>;
+ refgen-supply = <&vreg_l2f_e0>;
+
+ status = "okay";
+};
+
+&usb_0_qmpphy_out {
+ remote-endpoint = <&pmic_glink_ss_in>;
+};
+
+&usb_1 {
+ status = "okay";
+};
+
+&usb_1_dwc3_hs {
+ remote-endpoint = <&pmic_glink_hs_in1>;
+};
+
+&usb_1_hsphy {
+ vdd-supply = <&vreg_l3f_e0>;
+ vdda12-supply = <&vreg_l4h_e0>;
+
+ phys = <&smb2370_k_e2_eusb2_repeater>;
+
+ status = "okay";
+};
+
+&usb_1_qmpphy {
+ vdda-phy-supply = <&vreg_l4h_e0>;
+ vdda-pll-supply = <&vreg_l1h_e0>;
+ refgen-supply = <&vreg_l2f_e0>;
+
+ status = "okay";
+};
+
+&usb_1_qmpphy_out {
+ remote-endpoint = <&pmic_glink_ss_in1>;
+};
+
+&usb_2 {
+ status = "okay";
+};
+
+&usb_2_dwc3_hs {
+ remote-endpoint = <&pmic_glink_hs_in2>;
+};
+
+&usb_2_hsphy {
+ vdd-supply = <&vreg_l4c_e1>;
+ vdda12-supply = <&vreg_l4f_e1>;
+
+ phys = <&smb2370_l_e2_eusb2_repeater>;
+
+ status = "okay";
+};
+
+&usb_2_qmpphy {
+ vdda-phy-supply = <&vreg_l4f_e1>;
+ vdda-pll-supply = <&vreg_l4c_e1>;
+ refgen-supply = <&vreg_l1c_e1>;
+
+ status = "okay";
+};
+
+&usb_2_qmpphy_out {
+ remote-endpoint = <&pmic_glink_ss_in2>;
+};
--
2.54.0
^ permalink raw reply related [flat|nested] 17+ messages in thread* Re: [PATCH 3/4] arm64: dts: qcom: Add Glymur-based Lenovo Yoga Slim 7x Gen11
2026-06-04 8:06 ` [PATCH 3/4] arm64: dts: qcom: Add Glymur-based " Konrad Dybcio
@ 2026-06-04 8:22 ` sashiko-bot
2026-06-04 9:59 ` Gopikrishna Garmidi
2026-06-04 20:39 ` Claude review: " Claude Code Review Bot
2 siblings, 0 replies; 17+ messages in thread
From: sashiko-bot @ 2026-06-04 8:22 UTC (permalink / raw)
To: Konrad Dybcio; +Cc: conor+dt, robh, devicetree, dri-devel
Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [High] Missing `vdd-micb-supply` in `lpass_vamacro` node breaks DMIC capture.
- [Low] Missing `key-volume-up` subnode in `gpio-keys` despite claiming its pinctrl.
- [Low] The `nvme_sec_reg_en` pinctrl node is defined but never referenced.
--
commit cf25549a8fd93e158d3d638230deeb2a24306da5
Author: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
arm64: dts: qcom: Add Glymur-based Lenovo Yoga Slim 7x Gen11
This commit introduces the device tree for the Lenovo Yoga Slim 7x Gen11
laptop. It defines nodes and configurations for several supported hardware
features such as audio, GPU, keyboard, and networking.
> diff --git a/arch/arm64/boot/dts/qcom/glymur-lenovo-yoga-slim7x.dts b/arch/arm64/boot/dts/qcom/glymur-lenovo-yoga-slim7x.dts
> new file mode 100644
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/glymur-lenovo-yoga-slim7x.dts
[ ... ]
> + gpio-keys {
> + compatible = "gpio-keys";
> +
> + pinctrl-0 = <&key_vol_up_default>, <&hall_int_n_default>;
> + pinctrl-names = "default";
> +
> + switch-lid {
> + label = "lid";
> + gpios = <&tlmm 92 GPIO_ACTIVE_LOW>;
> + linux,input-type = <EV_SW>;
> + linux,code = <SW_LID>;
> + wakeup-source;
> + wakeup-event-action = <EV_ACT_DEASSERTED>;
> + };
> + };
[Severity: Low]
Does this code miss a subnode for the volume up key?
The pinctrl state for key_vol_up_default is claimed by the gpio-keys node
here, but without a corresponding child node, the input subsystem will not
register the volume up button.
[ ... ]
> +&lpass_vamacro {
> + pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
> + pinctrl-names = "default";
> + qcom,dmic-sample-rate = <4800000>;
> +};
[Severity: High]
Should this node include a vdd-micb-supply property pointing to vreg_l1b_e0?
The audio routing connects the digital microphones to the vdd-micb DAPM
widget. Without a vdd-micb-supply property here, the lpass-va-macro driver
falls back to a dummy regulator.
Since the physical supply (vreg_l1b_e0) has no consumers and lacks a boot-on
or always-on property, the kernel regulator core will disable it. Will this
leave the microphones without bias power and result in silent audio capture?
[ ... ]
> +&pmh0110_f_e1_gpios {
> + nvme_sec_reg_en: nvme-reg-en-state {
> + pins = "gpio14";
> + function = "normal";
> + bias-disable;
> + };
> +};
[Severity: Low]
Is this pinctrl state needed?
It is defined here but does not appear to be referenced by any device node's
pinctrl properties. Could this be leftover dead code from a reference design?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260604-topic-yoga_submission-v1-0-57c70c23d0d6@oss.qualcomm.com?part=3
^ permalink raw reply [flat|nested] 17+ messages in thread* Re: [PATCH 3/4] arm64: dts: qcom: Add Glymur-based Lenovo Yoga Slim 7x Gen11
2026-06-04 8:06 ` [PATCH 3/4] arm64: dts: qcom: Add Glymur-based " Konrad Dybcio
2026-06-04 8:22 ` sashiko-bot
@ 2026-06-04 9:59 ` Gopikrishna Garmidi
2026-06-04 20:39 ` Claude review: " Claude Code Review Bot
2 siblings, 0 replies; 17+ messages in thread
From: Gopikrishna Garmidi @ 2026-06-04 9:59 UTC (permalink / raw)
To: Konrad Dybcio, Neil Armstrong, Jessica Zhang, David Airlie,
Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Douglas Anderson, Bjorn Andersson, Konrad Dybcio
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm,
Srinivas Kandagatla, Abel Vesa
On 6/4/2026 1:36 PM, Konrad Dybcio wrote:
> Introduce a device tree for the Glymur-based Lenovo Yoga Slim 7x Gen11
> laptop. It's fairly similar to the reference design, although there are
> a couple of major differences, including a different EC.
>
> Currently working:
> - Audio playback and capture
> - GPU, Display
> - Keyboard, touchpad, touchscreen, lid switch
> - Privacy LED
> - Charging, Type-C
> - Wi-Fi, Bluetooth
> - Modem should work on the SKUs that have it, but it remains untested
> due to lack of access to such a device
>
> Co-developed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
> Co-developed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
> Signed-off-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../boot/dts/qcom/glymur-lenovo-yoga-slim7x.dts | 1237 ++++++++++++++++++++
> 2 files changed, 1238 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 6f33c4e2f09c3990e90e1b25a6f7d618891948c5..4d2864b371e29925a3b3bf4de50efe709b971851 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -16,6 +16,7 @@ dtb-$(CONFIG_ARCH_QCOM) += apq8096sg-db820c.dtb
> dtb-$(CONFIG_ARCH_QCOM) += apq8096-ifc6640.dtb
> dtb-$(CONFIG_ARCH_QCOM) += eliza-mtp.dtb
> dtb-$(CONFIG_ARCH_QCOM) += glymur-crd.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += glymur-lenovo-yoga-slim7x.dtb
> dtb-$(CONFIG_ARCH_QCOM) += hamoa-iot-evk.dtb
>
> hamoa-iot-evk-el2-dtbs := hamoa-iot-evk.dtb x1-el2.dtbo
> diff --git a/arch/arm64/boot/dts/qcom/glymur-lenovo-yoga-slim7x.dts b/arch/arm64/boot/dts/qcom/glymur-lenovo-yoga-slim7x.dts
> new file mode 100644
> index 0000000000000000000000000000000000000000..e7eb20ea81fa4e9b735b7daf4c27bb0feeeb6060
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/glymur-lenovo-yoga-slim7x.dts
> @@ -0,0 +1,1237 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +/dts-v1/;
> +
> +#include "glymur.dtsi"
> +
> +#include "pmcx0102.dtsi" /* SPMI0: SID-2/3 SPMI1: SID-2/3 */
> +#include "pmh0101.dtsi" /* SPMI0: SID-1 */
> +#include "pmh0110-glymur.dtsi" /* SPMI0: SID-5/7 SPMI1: SID-5 */
> +#include "pmh0104-glymur.dtsi" /* SPMI0: SID-8/9 SPMI1: SID-11 */
> +#include "pmk8850.dtsi" /* SPMI0: SID-0 */
> +#include "smb2370.dtsi" /* SPMI2: SID-9/10/11 */
> +
> +#include <dt-bindings/input/gpio-keys.h>
> +#include <dt-bindings/leds/common.h>
> +#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
> +
> +/ {
> + model = "Lenovo Yoga Slim 7x Gen 11";
> + compatible = "lenovo,yoga-slim7x-gen11", "qcom,glymur";
> +
> + aliases {
> + serial0 = &uart21;
> + serial1 = &uart14;
> + i2c0 = &i2c0;
> + i2c5 = &i2c5;
> + i2c8 = &i2c8;
> + i2c9 = &i2c9;
> + };
> +
> + chosen {
> + stdout-path = "serial0:115200n8";
> + };
> +
> + clocks {
> + xo_board: xo-board {
> + compatible = "fixed-clock";
> + clock-frequency = <38400000>;
> + #clock-cells = <0>;
> + };
> +
> + sleep_clk: sleep-clk {
> + compatible = "fixed-clock";
> + clock-frequency = <32000>;
> + #clock-cells = <0>;
> + };
> + };
> +
> + gpio-keys {
> + compatible = "gpio-keys";
> +
> + pinctrl-0 = <&key_vol_up_default>, <&hall_int_n_default>;
> + pinctrl-names = "default";
> +
> + switch-lid {
> + label = "lid";
> + gpios = <&tlmm 92 GPIO_ACTIVE_LOW>;
> + linux,input-type = <EV_SW>;
> + linux,code = <SW_LID>;
> + wakeup-source;
> + wakeup-event-action = <EV_ACT_DEASSERTED>;
> + };
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> +
> + pinctrl-0 = <&cam_indicator_en>;
> + pinctrl-names = "default";
> +
> + privacy_led: privacy-led {
> + function = LED_FUNCTION_INDICATOR;
> + color = <LED_COLOR_ID_WHITE>;
> + gpios = <&tlmm 111 GPIO_ACTIVE_HIGH>;
> + default-state = "off";
> + panic-indicator;
> + };
> + };
> +
> + pmic-glink {
> + compatible = "qcom,glymur-pmic-glink",
> + "qcom,pmic-glink";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + /* Left side display-adjacent port */
> + 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>;
> +
> + pmic_glink_hs_in: endpoint {
> + remote-endpoint = <&usb_0_dwc3_hs>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + pmic_glink_ss_in: endpoint {
> + remote-endpoint = <&usb_0_qmpphy_out>;
> + };
> + };
> + };
> + };
> +
> + /* Left side user-adjacent port */
> + 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>;
> +
> + pmic_glink_hs_in1: endpoint {
> + remote-endpoint = <&usb_1_dwc3_hs>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + pmic_glink_ss_in1: endpoint {
> + remote-endpoint = <&usb_1_qmpphy_out>;
> + };
> + };
> + };
> + };
> +
> + /* Right side port */
> + connector@2 {
> + compatible = "usb-c-connector";
> + reg = <2>;
> + power-role = "dual";
> + data-role = "dual";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + pmic_glink_hs_in2: endpoint {
> + remote-endpoint = <&usb_2_dwc3_hs>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + pmic_glink_ss_in2: endpoint {
> + remote-endpoint = <&usb_2_qmpphy_out>;
> + };
> + };
> + };
> + };
> + };
> +
> + vreg_edp_3p3: regulator-edp-3p3 {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "VREG_EDP_3P3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> +
> + gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> + pinctrl-0 = <&edp_reg_en>;
> + pinctrl-names = "default";
> +
> + regulator-boot-on;
> + };
> +
> + vreg_misc_3p3: regulator-misc-3p3 {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "VREG_MISC_3P3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> +
> + gpio = <&pmh0110_f_e0_gpios 6 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> + pinctrl-0 = <&misc_3p3_reg_en>;
> + pinctrl-names = "default";
> +
> + regulator-boot-on;
> + };
> +
> + vreg_nvme: regulator-nvme {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "VREG_NVME_3P3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> +
> + gpio = <&pmh0101_gpios 14 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> + pinctrl-0 = <&nvme_reg_en>;
> + pinctrl-names = "default";
> +
> + regulator-boot-on;
> + };
> +
> + vreg_wcn_0p95: regulator-wcn-0p95 {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "VREG_WCN_0P95";
> + regulator-min-microvolt = <950000>;
> + regulator-max-microvolt = <950000>;
> +
> + vin-supply = <&vreg_wcn_3p3>;
> + };
> +
> + vreg_wcn_3p3: regulator-wcn-3p3 {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "VREG_WCN_3P3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> +
> + gpio = <&tlmm 94 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> + pinctrl-0 = <&wcn_sw_en>;
> + pinctrl-names = "default";
> +
> + regulator-boot-on;
> + };
> +
> + vreg_wwan: regulator-wwan {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "VREG_WWAN_3P3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> +
> + gpio = <&tlmm 246 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> + pinctrl-0 = <&wwan_reg_en>;
> + pinctrl-names = "default";
> + };
> +
> + sound {
> + compatible = "qcom,glymur-sndcard";
> + model = "GLYMUR-LENOVO-Yoga-Slim7x";
> + audio-routing = "WooferLeft IN", "WSA WSA_SPK1 OUT",
> + "TweeterLeft IN", "WSA WSA_SPK2 OUT",
> + "WooferRight IN", "WSA2 WSA_SPK1 OUT",
> + "TweeterRight IN", "WSA2 WSA_SPK2 OUT",
> + "VA DMIC0", "vdd-micb",
> + "VA DMIC1", "vdd-micb",
> + "VA DMIC2", "vdd-micb",
> + "VA DMIC3", "vdd-micb";
> +
> + va-dai-link {
> + link-name = "VA Capture";
> +
> + codec {
> + sound-dai = <&lpass_vamacro 0>;
> + };
> +
> + cpu {
> + sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
> + };
> +
> + platform {
> + sound-dai = <&q6apm>;
> + };
> + };
> +
> + wsa-dai-link {
> + link-name = "WSA Playback";
> +
> + codec {
> + sound-dai = <&left_woofer>, <&left_tweeter>,
> + <&swr0 0>, <&lpass_wsamacro 0>,
> + <&right_woofer>, <&right_tweeter>,
> + <&swr3 0>, <&lpass_wsa2macro 0>;
> + };
> +
> + cpu {
> + sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
> + };
> +
> + platform {
> + sound-dai = <&q6apm>;
> + };
> + };
> + };
> +
> + wcn7850-pmu {
> + compatible = "qcom,wcn7850-pmu";
> +
> + vdd-supply = <&vreg_wcn_0p95>;
> + vddio-supply = <&vreg_l15b_e0>;
> + vddaon-supply = <&vreg_l15b_e0>;
> + vdddig-supply = <&vreg_l15b_e0>;
> + vddrfa1p2-supply = <&vreg_l15b_e0>;
> + vddrfa1p8-supply = <&vreg_l15b_e0>;
> +
> + wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
> + bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
> +
> + pinctrl-0 = <&wcn_wlan_bt_en>;
> + pinctrl-names = "default";
> +
> + regulators {
> + vreg_pmu_rfa_cmn: ldo0 {
> + regulator-name = "vreg_pmu_rfa_cmn";
> + };
> +
> + vreg_pmu_aon_0p59: ldo1 {
> + regulator-name = "vreg_pmu_aon_0p59";
> + };
> +
> + vreg_pmu_wlcx_0p8: ldo2 {
> + regulator-name = "vreg_pmu_wlcx_0p8";
> + };
> +
> + vreg_pmu_wlmx_0p85: ldo3 {
> + regulator-name = "vreg_pmu_wlmx_0p85";
> + };
> +
> + vreg_pmu_btcmx_0p85: ldo4 {
> + regulator-name = "vreg_pmu_btcmx_0p85";
> + };
> +
> + vreg_pmu_rfa_0p8: ldo5 {
> + regulator-name = "vreg_pmu_rfa_0p8";
> + };
> +
> + vreg_pmu_rfa_1p2: ldo6 {
> + regulator-name = "vreg_pmu_rfa_1p2";
> + };
> +
> + vreg_pmu_rfa_1p8: ldo7 {
> + regulator-name = "vreg_pmu_rfa_1p8";
> + };
> +
> + vreg_pmu_pcie_0p9: ldo8 {
> + regulator-name = "vreg_pmu_pcie_0p9";
> + };
> +
> + vreg_pmu_pcie_1p8: ldo9 {
> + regulator-name = "vreg_pmu_pcie_1p8";
> + };
> + };
> + };
> +};
> +
> +&apps_rsc {
> + regulators-0 {
> + compatible = "qcom,pmh0101-rpmh-regulators";
> + qcom,pmic-id = "B_E0";
> +
> + vreg_l1b_e0: ldo1 {
> + regulator-name = "vreg_l1b_e0";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l7b_e0: ldo7 {
> + regulator-name = "vreg_l7b_e0";
> + regulator-min-microvolt = <3072000>;
> + regulator-max-microvolt = <3072000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l8b_e0: ldo8 {
> + regulator-name = "vreg_l8b_e0";
> + regulator-min-microvolt = <3304000>;
> + regulator-max-microvolt = <3304000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l9b_e0: ldo9 {
> + regulator-name = "vreg_l9b_e0";
> + regulator-min-microvolt = <2960000>;
> + regulator-max-microvolt = <2960000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l10b_e0: ldo10 {
> + regulator-name = "vreg_l10b_e0";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l11b_e0: ldo11 {
> + regulator-name = "vreg_l11b_e0";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l12b_e0: ldo12 {
> + regulator-name = "vreg_l12b_e0";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l15b_e0: ldo15 {
> + regulator-name = "vreg_l15b_e0";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l17b_e0: ldo17 {
> + regulator-name = "vreg_l17b_e0";
> + regulator-min-microvolt = <2504000>;
> + regulator-max-microvolt = <2504000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l18b_e0: ldo18 {
> + regulator-name = "vreg_l18b_e0";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-1 {
> + compatible = "qcom,pmcx0102-rpmh-regulators";
> + qcom,pmic-id = "C_E1";
> +
> + vreg_l1c_e1: ldo1 {
> + regulator-name = "vreg_l1c_e1";
> + regulator-min-microvolt = <912000>;
> + regulator-max-microvolt = <912000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l2c_e1: ldo2 {
> + regulator-name = "vreg_l2c_e1";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l3c_e1: ldo3 {
> + regulator-name = "vreg_l3c_e1";
> + regulator-min-microvolt = <936000>;
> + regulator-max-microvolt = <936000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l4c_e1: ldo4 {
> + regulator-name = "vreg_l4c_e1";
> + regulator-min-microvolt = <912000>;
> + regulator-max-microvolt = <912000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-2 {
> + compatible = "qcom,pmh0110-rpmh-regulators";
> + qcom,pmic-id = "F_E0";
> +
> + vreg_s7f_e0: smps7 {
> + regulator-name = "vreg_s7f_e0";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_s8f_e0: smps8 {
> + regulator-name = "vreg_s8f_e0";
> + regulator-min-microvolt = <952000>;
> + regulator-max-microvolt = <952000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l2f_e0: ldo2 {
> + regulator-name = "vreg_l2f_e0";
> + regulator-min-microvolt = <936000>;
> + regulator-max-microvolt = <936000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l3f_e0: ldo3 {
> + regulator-name = "vreg_l3f_e0";
> + regulator-min-microvolt = <912000>;
> + regulator-max-microvolt = <912000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-3 {
> + compatible = "qcom,pmh0110-rpmh-regulators";
> + qcom,pmic-id = "F_E1";
> +
> + vreg_l1f_e1: ldo1 {
> + regulator-name = "vreg_l1f_e1";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <904000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l2f_e1: ldo2 {
> + regulator-name = "vreg_l2f_e1";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <880000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l4f_e1: ldo4 {
> + regulator-name = "vreg_l4f_e1";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-4 {
> + compatible = "qcom,pmh0110-rpmh-regulators";
> + qcom,pmic-id = "H_E0";
> +
> + vreg_l1h_e0: ldo1 {
> + regulator-name = "vreg_l1h_e0";
> + regulator-min-microvolt = <936000>;
> + regulator-max-microvolt = <936000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l2h_e0: ldo2 {
> + regulator-name = "vreg_l2h_e0";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <880000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l3h_e0: ldo3 {
> + regulator-name = "vreg_l3h_e0";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l4h_e0: ldo4 {
> + regulator-name = "vreg_l4h_e0";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +};
> +
> +&gpu {
> + status = "okay";
> +};
> +
> +&gmu {
> + status = "okay";
> +};
> +
> +&i2c0 {
> + clock-frequency = <400000>;
> +
> + status = "okay";
> +
> + touchpad@2c {
> + compatible = "hid-over-i2c";
> + reg = <0x2c>;
> +
> + hid-descr-addr = <0x20>;
> + interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
> +
> + vdd-supply = <&vreg_misc_3p3>;
> + vddl-supply = <&vreg_l15b_e0>;
> +
> + pinctrl-0 = <&tpad_default>;
> + pinctrl-names = "default";
> +
> + wakeup-source;
> + };
> +
> + keyboard@3a {
> + compatible = "hid-over-i2c";
> + reg = <0x3a>;
> +
> + hid-descr-addr = <0x1>;
> + interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>;
> +
> + vdd-supply = <&vreg_misc_3p3>;
> + vddl-supply = <&vreg_l15b_e0>;
> +
> + pinctrl-0 = <&kybd_default>;
> + pinctrl-names = "default";
> +
> + wakeup-source;
> + };
> +
> + /* Something @ 0x5b */
> +};
> +
> +&i2c5 {
> + clock-frequency = <400000>;
> +
> + status = "okay";
> +};
> +
> +&i2c8 {
> + clock-frequency = <400000>;
> +
> + status = "okay";
> +
> + touchscreen@14 {
> + compatible = "hid-over-i2c";
> + reg = <0x14>;
> +
> + hid-descr-addr = <0x1>;
> + interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>;
> +
> + post-power-on-delay-ms = <200>;
> +
> + vdd-supply = <&vreg_misc_3p3>;
> + vddl-supply = <&vreg_l15b_e0>;
> +
> + pinctrl-0 = <&ts0_default>;
> + pinctrl-names = "default";
> + };
> +};
> +
> +&i2c9 {
> + clock-frequency = <400000>;
> +
> + status = "okay";
> +
> + /* EC @ 0x70, irq = TLMM 66 */
> +};
> +
> +&lpass_vamacro {
> + pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
> + pinctrl-names = "default";
> + qcom,dmic-sample-rate = <4800000>;
> +};
> +
> +&mdss {
> + status = "okay";
> +};
> +
> +&mdss_dp0 {
> + status = "okay";
> +};
> +
> +&mdss_dp0_out {
> + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> +};
> +
> +&mdss_dp1 {
> + status = "okay";
> +};
> +
> +&mdss_dp1_out {
> + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> +};
> +
> +&mdss_dp2 {
> + status = "okay";
> +};
> +
> +&mdss_dp2_out {
> + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> +};
> +
> +&mdss_dp3 {
> + /delete-property/ #sound-dai-cells;
> +
> + status = "okay";
> +
> + aux-bus {
> + panel {
> + compatible = "samsung,atna40hq08", "samsung,atna33xc20";
> + enable-gpios = <&tlmm 18 GPIO_ACTIVE_HIGH>;
> + power-supply = <&vreg_edp_3p3>;
> +
> + pinctrl-0 = <&edp_bl_en>;
> + pinctrl-names = "default";
> +
> + port {
> + edp_panel_in: endpoint {
> + remote-endpoint = <&mdss_dp3_out>;
> + };
> + };
> + };
> + };
> +};
> +
> +&mdss_dp3_out {
> + data-lanes = <0 1 2 3>;
> + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> +
> + remote-endpoint = <&edp_panel_in>;
> +};
> +
> +&mdss_dp3_phy {
> + vdda-phy-supply = <&vreg_l2f_e1>;
> + vdda-pll-supply = <&vreg_l4f_e1>;
> +
> + status = "okay";
> +};
> +
> +&pcie4 {
> + pinctrl-0 = <&pcie4_default>;
> + pinctrl-names = "default";
> +
> + status = "okay";
> +};
> +
> +&pcie4_phy {
> + vdda-phy-supply = <&vreg_l1c_e1>;
> + vdda-pll-supply = <&vreg_l4f_e1>;
> +
> + status = "okay";
> +};
> +
> +&pcie4_port0 {
> + reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
> + wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
> +
> + wifi@0 {
> + compatible = "pci17cb,1107";
> + reg = <0x10000 0x0 0x0 0x0 0x0>;
> +
> + vddaon-supply = <&vreg_pmu_aon_0p59>;
> + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
> + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
> + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
> + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
> + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
> + vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
> + vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
> + vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
> + };
> +};
> +
> +&pcie5 {
> + vddpe-3v3-supply = <&vreg_nvme>;
> +
> + pinctrl-0 = <&pcie5_default>;
> + pinctrl-names = "default";
> +
> + status = "okay";
> +};
> +
> +&pcie5_phy {
> + vdda-phy-supply = <&vreg_l2f_e0>;
> + vdda-pll-supply = <&vreg_l4h_e0>;
> +
> + status = "okay";
> +};
> +
> +&pcie5_port0 {
> + reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
> + wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
> +};
> +
> +&pcie6 {
> + vddpe-3v3-supply = <&vreg_wwan>;
> +
> + pinctrl-0 = <&pcie6_default>;
> + pinctrl-names = "default";
> +
> + status = "okay";
> +};
> +
> +&pcie6_phy {
> + vdda-phy-supply = <&vreg_l1c_e1>;
> + vdda-pll-supply = <&vreg_l4f_e1>;
> +
> + status = "okay";
> +};
> +
> +&pcie6_port0 {
> + reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
> + wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
> +};
> +
Hi Konrad,
> +&pmh0101_gpios {
> + nvme_reg_en: nvme-reg-en-state {
> + pins = "gpio14";
> + function = "normal";
> + bias-disable;
> + };
> +};
[...]
> +&pmh0101_gpios {
> + key_vol_up_default: key-vol-up-default-state {
> + pins = "gpio6";
> + function = "normal";
> + output-disable;
> + bias-pull-up;
> + };
> +};
The &pmh0101_gpios node is extended twice here. Please merge both
pinctrl states into a single block, similar to the fix already sent
for glymur-crd.dtsi [1].
While at it, could you also take a look at [1]? It addresses the
same issue in glymur-crd.dtsi and has been awaiting review.
[1]
https://lore.kernel.org/all/20260602-merge-duplicate-pmh0101-gpios-node-v2-1-251107b3d9fe@oss.qualcomm.com/
Thanks,
Gopikrishna Garmidi.
^ permalink raw reply [flat|nested] 17+ messages in thread* Claude review: arm64: dts: qcom: Add Glymur-based Lenovo Yoga Slim 7x Gen11
2026-06-04 8:06 ` [PATCH 3/4] arm64: dts: qcom: Add Glymur-based " Konrad Dybcio
2026-06-04 8:22 ` sashiko-bot
2026-06-04 9:59 ` Gopikrishna Garmidi
@ 2026-06-04 20:39 ` Claude Code Review Bot
2 siblings, 0 replies; 17+ messages in thread
From: Claude Code Review Bot @ 2026-06-04 20:39 UTC (permalink / raw)
To: dri-devel-reviews
Patch Review
This is the main patch -- a 1237-line DTS for the laptop. Overall it is well-written and covers a lot of hardware. A few issues to flag:
**1. Orphaned `pcie3b_default` pinctrl state (dead code)**
The `&tlmm` section defines `pcie3b_default` (GPIOs 155-157) but no `&pcie3b` node exists in this DTS that references it. In the CRD, `&pcie3b` uses this for a second NVMe slot. If this laptop doesn't have a second NVMe, this should be removed:
```
+ pcie3b_default: pcie3b-default-state {
+ clkreq-n-pins {
+ pins = "gpio156";
+ function = "pcie3b_clk";
+ ...
```
**2. Orphaned `nvme_sec_reg_en` pinctrl state (dead code)**
Similarly, `nvme_sec_reg_en` is defined in `&pmh0110_f_e1_gpios` but never referenced by any regulator or device node in this DTS:
```
+&pmh0110_f_e1_gpios {
+ nvme_sec_reg_en: nvme-reg-en-state {
+ pins = "gpio14";
+ function = "normal";
+ bias-disable;
+ };
+};
```
This pairs with `pcie3b_default` -- both are CRD second-NVMe leftovers.
**3. Orphaned `ec_int_n_default` pinctrl state (dead code)**
The `ec_int_n_default` pinctrl state is defined but not referenced by any node:
```
+ ec_int_n_default: ec-int-n-state {
+ pins = "gpio66";
+ function = "gpio";
+ bias-disable;
+ };
```
The comment `/* EC @ 0x70, irq = TLMM 66 */` in `&i2c9` explains why the pin is reserved, but the pinctrl state itself is unused. Either remove it or add a comment noting it's reserved for future EC driver support.
**4. `key_vol_up_default` pinctrl referenced but no volume-up key defined**
The gpio-keys node references `key_vol_up_default` in its pinctrl but only defines a lid switch -- no volume-up key:
```
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&key_vol_up_default>, <&hall_int_n_default>;
+ pinctrl-names = "default";
+
+ switch-lid {
```
Either add the volume-up key child node (the CRD has one on `&pmh0101_gpios 6`), or remove `<&key_vol_up_default>` from pinctrl-0 and drop the `key_vol_up_default` definition from the second `&pmh0101_gpios` block. This looks like a copy-paste oversight from the CRD.
**5. `&i2c5` enabled with no child devices**
```
+&i2c5 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+};
```
Enabling an I2C bus with no devices attached is unusual. The CRD has PTN3222 redrivers on i2c5. If those aren't present on this board, the node should probably not be enabled, to avoid needlessly probing an empty bus.
**6. `&mdss_dp3` uses `/delete-property/ #sound-dai-cells` -- why?**
```
+&mdss_dp3 {
+ /delete-property/ #sound-dai-cells;
```
This suggests the base dtsi defines `#sound-dai-cells` for DP3 (for DP audio), but the Yoga explicitly removes it. A comment explaining why would help -- presumably because the eDP panel doesn't carry audio?
**7. Minor: Duplicate `&pmh0101_gpios` blocks**
Two separate `&pmh0101_gpios` blocks exist. DT overlays merge them, so this is functionally correct. However, per the CRD which follows the same pattern, this is acceptable -- though combining them into one block would be cleaner.
**Overall for Patch 3: Good first submission. The hardware coverage is comprehensive. Clean up the dead pinctrl/regulator definitions and fix the volume-up key inconsistency for v2.**
---
Generated by Claude Code Patch Reviewer
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 4/4] firmware: qcom: scm: Allow QSEECOM on Yoga Slim 7x Gen11
2026-06-04 8:06 [PATCH 0/4] X2 Elite Lenovo Yoga Slim 7x Gen11 support Konrad Dybcio
` (2 preceding siblings ...)
2026-06-04 8:06 ` [PATCH 3/4] arm64: dts: qcom: Add Glymur-based " Konrad Dybcio
@ 2026-06-04 8:06 ` Konrad Dybcio
2026-06-04 13:40 ` Dmitry Baryshkov
2026-06-04 20:39 ` Claude review: " Claude Code Review Bot
2026-06-04 20:39 ` Claude review: X2 Elite Lenovo Yoga Slim 7x Gen11 support Claude Code Review Bot
4 siblings, 2 replies; 17+ messages in thread
From: Konrad Dybcio @ 2026-06-04 8:06 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Douglas Anderson,
Bjorn Andersson, Konrad Dybcio
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, Konrad Dybcio
Allow the use of QSEECOM on the Glymur-based Lenovo Yoga Slim 7x Gen11,
as there seem to be no issues with the firmware that would mandate
disabling it.
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.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 6b601a4b89dbf04322730aa22fc9590d180a383c..fbcb9dddfec68e32564e3a4209c3b6f471e0fdb5 100644
--- a/drivers/firmware/qcom/qcom_scm.c
+++ b/drivers/firmware/qcom/qcom_scm.c
@@ -2304,6 +2304,7 @@ static const struct of_device_id qcom_scm_qseecom_allowlist[] __maybe_unused = {
{ .compatible = "lenovo,thinkpad-t14s" },
{ .compatible = "lenovo,thinkpad-x13s", },
{ .compatible = "lenovo,yoga-slim7x" },
+ { .compatible = "lenovo,yoga-slim7x-gen11" },
{ .compatible = "medion,sprchrgd14s1" },
{ .compatible = "microsoft,arcata", },
{ .compatible = "microsoft,surface-pro-12in", },
--
2.54.0
^ permalink raw reply related [flat|nested] 17+ messages in thread* Re: [PATCH 4/4] firmware: qcom: scm: Allow QSEECOM on Yoga Slim 7x Gen11
2026-06-04 8:06 ` [PATCH 4/4] firmware: qcom: scm: Allow QSEECOM on " Konrad Dybcio
@ 2026-06-04 13:40 ` Dmitry Baryshkov
2026-06-04 20:39 ` Claude review: " Claude Code Review Bot
1 sibling, 0 replies; 17+ messages in thread
From: Dmitry Baryshkov @ 2026-06-04 13:40 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Neil Armstrong, Jessica Zhang, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Douglas Anderson,
Bjorn Andersson, Konrad Dybcio, dri-devel, devicetree,
linux-kernel, linux-arm-msm
On Thu, Jun 04, 2026 at 10:06:57AM +0200, Konrad Dybcio wrote:
> Allow the use of QSEECOM on the Glymur-based Lenovo Yoga Slim 7x Gen11,
> as there seem to be no issues with the firmware that would mandate
> disabling it.
>
> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> ---
> drivers/firmware/qcom/qcom_scm.c | 1 +
> 1 file changed, 1 insertion(+)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 17+ messages in thread
* Claude review: firmware: qcom: scm: Allow QSEECOM on Yoga Slim 7x Gen11
2026-06-04 8:06 ` [PATCH 4/4] firmware: qcom: scm: Allow QSEECOM on " Konrad Dybcio
2026-06-04 13:40 ` Dmitry Baryshkov
@ 2026-06-04 20:39 ` Claude Code Review Bot
1 sibling, 0 replies; 17+ messages in thread
From: Claude Code Review Bot @ 2026-06-04 20:39 UTC (permalink / raw)
To: dri-devel-reviews
Patch Review
Single-line addition of `lenovo,yoga-slim7x-gen11` to the QSEECOM allowlist, correctly placed in alphabetical order after the existing `lenovo,yoga-slim7x` (which is the X1E-based first-gen model).
```
+ { .compatible = "lenovo,yoga-slim7x-gen11" },
```
No issues. The commit message clearly states that QSEECOM has been tested and works without firmware issues.
**Reviewed-by material.**
---
Generated by Claude Code Patch Reviewer
^ permalink raw reply [flat|nested] 17+ messages in thread
* Claude review: X2 Elite Lenovo Yoga Slim 7x Gen11 support
2026-06-04 8:06 [PATCH 0/4] X2 Elite Lenovo Yoga Slim 7x Gen11 support Konrad Dybcio
` (3 preceding siblings ...)
2026-06-04 8:06 ` [PATCH 4/4] firmware: qcom: scm: Allow QSEECOM on " Konrad Dybcio
@ 2026-06-04 20:39 ` Claude Code Review Bot
4 siblings, 0 replies; 17+ messages in thread
From: Claude Code Review Bot @ 2026-06-04 20:39 UTC (permalink / raw)
To: dri-devel-reviews
Overall Series Review
Subject: X2 Elite Lenovo Yoga Slim 7x Gen11 support
Author: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Patches: 12
Reviewed: 2026-06-05T06:39:41.209619
---
This is a 4-patch series by Konrad Dybcio adding support for the Lenovo Yoga Slim 7x Gen11 laptop based on the Qualcomm Snapdragon X2 Elite (Glymur) SoC. The series is well-structured: dt-bindings first, then the main DTS, then the QSEECOM allowlist entry. The DTS is comprehensive, covering audio, display, USB Type-C, Wi-Fi/BT, NVMe, touchpad/keyboard/touchscreen, and more.
Overall the series is in good shape for a v1 submission. There are a few minor issues -- primarily some orphaned/unused definitions that appear to be leftovers from copying the CRD reference DTS, and a missing volume-up key definition that is referenced via pinctrl but never actually created. None of these are blockers, but they should be cleaned up.
**Verdict: Looks good with minor nits to address in v2.**
---
Generated by Claude Code Patch Reviewer
^ permalink raw reply [flat|nested] 17+ messages in thread