Devicetree
 help / color / mirror / Atom feed
* Re: [PATCH v2 1/1] dt-bindings: soc: imx-iomuxc-gpr: allow bridge@18 as child node
From: Frank Li @ 2026-07-18 14:12 UTC (permalink / raw)
  To: Rob Herring (Arm)
  Cc: Fabio Estevam, imx, linux-arm-kernel, Pengutronix Kernel Team,
	Conor Dooley, Frank Li, linux-kernel, Krzysztof Kozlowski,
	Sascha Hauer, Peng Fan, devicetree, Shawn Guo
In-Reply-To: <178432353778.2692844.15138095566024676604.robh@kernel.org>

On Fri, Jul 17, 2026 at 04:25:37PM -0500, Rob Herring (Arm) wrote:
>
> On Fri, 17 Jul 2026 16:15:17 -0400, Frank.Li@oss.nxp.com wrote:
> > From: Frank Li <Frank.Li@nxp.com>
> >
> > The legacy i.MX6SX (>15 year) SoC imx-iomuxc-gpr contains one LDB_CTRL
> > register. Allow the LVDS Display Bridge(LDB) child node under
> > imx-iomuxc-gpr.
> >
> > Fix below CHECK_DTBS warnings:
> >   arch/arm/boot/dts/nxp/imx/imx6sx-nitrogen6sx.dtb: syscon@20e4000 (fsl,imx6sx-iomuxc-gpr): '#address-cells', '#size-cells', 'bridge@18' do not match any of the regexes: '^ipu[12]_csi[01]_mux$', '^pinctrl-[0-9]+$
> >
> > Signed-off-by: Frank Li <Frank.Li@nxp.com>
> > ---
> > change in v2
> > - remove status = "disabled" at example
> > ---
> >  .../bindings/soc/imx/fsl,imx-iomuxc-gpr.yaml  | 58 +++++++++++++++++++
> >  1 file changed, 58 insertions(+)
> >
>
> My bot found errors running 'make dt_binding_check' on your patch:

I forget it is posted with other binding patch. please forget this one.
I will repost with whole serial.

Frank

>
> yamllint warnings/errors:
>
> dtschema/dtc warnings/errors:
> /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/soc/imx/fsl,imx-iomuxc-gpr.example.dtb: syscon@20e4000 (fsl,imx6sx-iomuxc-gpr): bridge@18:reg: [[24, 4]] is too short
> 	from schema $id: http://devicetree.org/schemas/soc/imx/fsl,imx-iomuxc-gpr.yaml
> /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/soc/imx/fsl,imx-iomuxc-gpr.example.dtb: bridge@18 (fsl,imx6sx-ldb): reg: [[24, 4]] is too short
> 	from schema $id: http://devicetree.org/schemas/display/bridge/fsl,ldb.yaml
>
> doc reference errors (make refcheckdocs):
>
> See https://patchwork.kernel.org/project/devicetree/patch/20260717201519.844259-1-Frank.Li@oss.nxp.com
>
> The base for the series is generally the latest rc1. A different dependency
> should be noted in *this* patch.
>
> If you already ran 'make dt_binding_check' and didn't see the above
> error(s), then make sure 'yamllint' is installed and dt-schema is up to
> date:
>
> pip3 install dtschema --upgrade
>
> Please check and re-submit after running the above command yourself. Note
> that DT_SCHEMA_FILES can be set to your schema file to speed up checking
> your schema. However, it must be unset to test all examples with your schema.
>

^ permalink raw reply

* Re: [PATCH v4 3/3] device property: add test cases for fwnode_for_each_child_node()
From: Danilo Krummrich @ 2026-07-18 14:18 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Xu Yang, linux-acpi, driver-core, linux-kernel, Daniel Scally,
	Heikki Krogerus, Sakari Ailus, Greg Kroah-Hartman,
	Rafael J. Wysocki, Rob Herring, Saravana Kannan, devicetree
In-Reply-To: <20260611203537.1786399-4-andriy.shevchenko@linux.intel.com>

(Cc: OF)

On Thu Jun 11, 2026 at 10:31 PM CEST, Andy Shevchenko wrote:
> From: Xu Yang <xu.yang_2@nxp.com>
>
> Add test cases for fwnode_for_each_child_node() API.
>
> Test command:
> $ ./tools/testing/kunit/kunit.py run property-entry
>
> Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

This patch broke the build [1], hence I dropped it from the queue (but kept the
first two patches of this series).

of_node_init() can't be used from modules, either it needs EXPORT_SYMBOL_GPL()
itself, or of_node_ktype needs to be exported for this kunit test to work.

[1] https://lore.kernel.org/all/202607181651.RnUuV8n6-lkp@intel.com/

^ permalink raw reply

* Re: [PATCH 5/6] iommu: Add Broadcom BCM2712 IOMMU driver
From: Jason Gunthorpe @ 2026-07-18 14:32 UTC (permalink / raw)
  To: Daniel Drake
  Cc: Joerg Roedel (AMD), Will Deacon, Robin Murphy, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Florian Fainelli,
	Broadcom internal kernel review list, iommu, linux-kernel,
	devicetree, linux-rpi-kernel, linux-arm-kernel, nick.hollinghurst
In-Reply-To: <57f5675c-8bcd-4022-978b-9f7933bb0032@reactivated.net>

On Sat, Jul 18, 2026 at 09:39:48AM +0100, Daniel Drake wrote:

> I don't think I can use that because this setup uses an IOVA aperture at
> base 0xA00000000, whereas generic_pt assumes it is managing a 0-indexed
> virtual address space. So the driver has to intercept every incoming IOVA
> and translate for the aperture, see how map_pages calls:

When you say aperture here you mean we place an IOPTE at VA 0 but the
dma_addr_t for that has to be adjusted to 0xA00000000 ?

I wonder if DT can do this with dma-ranges or something, we have many
other conditions where the dma_addr_t and the internal physical have
offsets..

> I was wondering about making iommupt understand apertures and
> translate accordingly, but I imagine you would want to keep that
> kind of thing out of the generic fast path?

We already have pt_full_va_prefix() which isn't strictly an offset but
it it probably matches what this HW does.

You can implement it in the broadcom format and return the prefix value.
So long as the vasz fits within those trailing 0s. That's basically
free and has no runtime cost on other formats.

Jason

^ permalink raw reply

* [PATCH 3/5] dt-bindings: iio: dac: fix spelling of 'reference' in adi,ad5791
From: Yahya Toubali @ 2026-07-18 14:40 UTC (permalink / raw)
  To: Nuno Sá, Michael Hennerich, Jonathan Cameron, David Lechner,
	Andy Shevchenko, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	open list:ANALOG DEVICES INC IIO DRIVERS,
	open list:IIO SUBSYSTEM AND DRIVERS,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	open list
  Cc: Yahya Toubali

Fix misspelling of 'reference' (was 'referance') in vrefp-supply and vrefn-supply descriptions.
---
 Documentation/devicetree/bindings/iio/dac/adi,ad5791.yaml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/iio/dac/adi,ad5791.yaml b/Documentation/devicetree/bindings/iio/dac/adi,ad5791.yaml
index 2bd89e0aa46b..80fb98035c6f 100644
--- a/Documentation/devicetree/bindings/iio/dac/adi,ad5791.yaml
+++ b/Documentation/devicetree/bindings/iio/dac/adi,ad5791.yaml
@@ -36,11 +36,11 @@ properties:
 
   vrefp-supply:
     description:
-      Positive referance input voltage range. From 5v to (vdd - 2.5)
+      Positive reference input voltage range. From 5v to (vdd - 2.5)
 
   vrefn-supply:
     description:
-      Negative referance input voltage range. From (vss + 2.5) to 0.
+      Negative reference input voltage range. From (vss + 2.5) to 0.
 
   adi,rbuf-gain2-en:
     description: Specify to allow an external amplifier to be connected in a
-- 
2.55.0



^ permalink raw reply related

* [PATCH v2 0/4] ARM: dts: imx: fix ldb related CHECK_DTBS warnings
From: Frank.Li @ 2026-07-18 14:45 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Peng Fan, Marek Vasut,
	Stefan Agner, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter
  Cc: devicetree, imx, linux-arm-kernel, linux-kernel, dri-devel,
	Frank Li

Fix ldb related CHECK_DTBS warnings

Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
Changes in v2:
- Remove status = disabled at binding example
- collect rob's reviewed-by tags.
- Link to v1: https://patch.msgid.link/20260708-arm_dts_ldb-v1-0-4f5579b85797@nxp.com

---
Frank Li (4):
      dt-bindings: display: bridge: ldb: allow a single reg for fsl,imx6sx-ldb
      dt-bindings: soc: imx-iomuxc-gpr: allow bridge@18 as child node
      dt-bindings: display: lcdif: Allow display0 child node for i.MX6UL
      ARM: dts: imx6ul-tx6ul: rename disp0 to display0

 .../bindings/display/bridge/fsl,ldb.yaml           | 23 +++++----
 .../devicetree/bindings/display/fsl,lcdif.yaml     |  1 +
 .../bindings/soc/imx/fsl,imx-iomuxc-gpr.yaml       | 58 ++++++++++++++++++++++
 arch/arm/boot/dts/nxp/imx/imx6ul-tx6ul.dtsi        |  2 +-
 4 files changed, 74 insertions(+), 10 deletions(-)
---
base-commit: 6c94b38b83a04c43ea49004275f0391404051093
change-id: 20260708-arm_dts_ldb-9ca4c548dded

Best regards,
--  
Frank Li <Frank.Li@nxp.com>


^ permalink raw reply

* [PATCH v2 1/4] dt-bindings: display: bridge: ldb: allow a single reg for fsl,imx6sx-ldb
From: Frank.Li @ 2026-07-18 14:45 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Peng Fan, Marek Vasut,
	Stefan Agner, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter
  Cc: devicetree, imx, linux-arm-kernel, linux-kernel, dri-devel,
	Frank Li
In-Reply-To: <20260718-arm_dts_ldb-v2-0-f5669571aa2b@nxp.com>

From: Frank Li <Frank.Li@nxp.com>

The i.MX6SX LDB only provides a single register region for the LDB block,
while other supported LDB variants require two register regions.

Update the binding schema to allow a single reg entry for
fsl,imx6sx-ldb while keeping the existing constraints unchanged for the
other compatible strings.

Fix below DTB_CHECK warings:
  arch/arm/boot/dts/nxp/imx/imx6sx-nitrogen6sx.dtb: bridge@18 (fsl,imx6sx-ldb): reg: [[24, 4]] is too short

Acked-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
Related two theads:
- https://lore.kernel.org/imx/178154922879.1630652.11500293336634076421.robh@kernel.org/

Mixing the addressable and non-addressable child nodes is allowed according to discussion [1].

Link: https://lore.kernel.org/all/n6akxiayi3g6gxcqhreb4iaohmeokoalnqup6h5r2fwdt4zijt@u2wyps55ayqm/ [1]
---
 .../bindings/display/bridge/fsl,ldb.yaml           | 23 +++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml b/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml
index 7f380879fffdf..e5a8870bb76a6 100644
--- a/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml
@@ -28,9 +28,11 @@ properties:
     const: ldb
 
   reg:
+    minItems: 1
     maxItems: 2
 
   reg-names:
+    minItems: 1
     items:
       - const: ldb
       - const: lvds
@@ -83,15 +85,6 @@ allOf:
         ports:
           properties:
             port@2: false
-  - if:
-      not:
-        properties:
-          compatible:
-            contains:
-              const: fsl,imx6sx-ldb
-    then:
-      required:
-        - reg-names
 
   - if:
       properties:
@@ -100,7 +93,19 @@ allOf:
             const: fsl,imx6sx-ldb
     then:
       properties:
+        reg:
+          maxItems: 1
+        reg-names:
+          maxItems: 1
         nxp,enable-termination-resistor: false
+    else:
+      required:
+        - reg-names
+      properties:
+        reg:
+          minItems: 2
+        reg-names:
+          minItems: 2
 
 additionalProperties: false
 

-- 
2.43.0


^ permalink raw reply related

* [PATCH v2 2/4] dt-bindings: soc: imx-iomuxc-gpr: allow bridge@18 as child node
From: Frank.Li @ 2026-07-18 14:45 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Peng Fan, Marek Vasut,
	Stefan Agner, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter
  Cc: devicetree, imx, linux-arm-kernel, linux-kernel, dri-devel,
	Frank Li
In-Reply-To: <20260718-arm_dts_ldb-v2-0-f5669571aa2b@nxp.com>

From: Frank Li <Frank.Li@nxp.com>

The legacy i.MX6SX (>15 year) SoC imx-iomuxc-gpr contains one LDB_CTRL
register. Allow the LVDS Display Bridge(LDB) child node under
imx-iomuxc-gpr.

Fix below CHECK_DTBS warnings:
  arch/arm/boot/dts/nxp/imx/imx6sx-nitrogen6sx.dtb: syscon@20e4000 (fsl,imx6sx-iomuxc-gpr): '#address-cells', '#size-cells', 'bridge@18' do not match any of the regexes: '^ipu[12]_csi[01]_mux$', '^pinctrl-[0-9]+$

Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
changes in v2
- remote status = "disabled" in example
---
 .../bindings/soc/imx/fsl,imx-iomuxc-gpr.yaml       | 58 ++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/Documentation/devicetree/bindings/soc/imx/fsl,imx-iomuxc-gpr.yaml b/Documentation/devicetree/bindings/soc/imx/fsl,imx-iomuxc-gpr.yaml
index 721a67e84c137..1879638918bab 100644
--- a/Documentation/devicetree/bindings/soc/imx/fsl,imx-iomuxc-gpr.yaml
+++ b/Documentation/devicetree/bindings/soc/imx/fsl,imx-iomuxc-gpr.yaml
@@ -47,10 +47,21 @@ properties:
   reg:
     maxItems: 1
 
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 1
+
   mux-controller:
     type: object
     $ref: /schemas/mux/reg-mux.yaml
 
+  bridge@18:
+    type: object
+    $ref: /schemas/display/bridge/fsl,ldb.yaml#
+    unevaluatedProperties: false
+
 patternProperties:
   "^ipu[12]_csi[01]_mux$":
     type: object
@@ -67,6 +78,18 @@ allOf:
       patternProperties:
         '^ipu[12]_csi[01]_mux$': false
 
+  - if:
+      properties:
+        compatible:
+          not:
+            contains:
+              const: fsl,imx6sx-iomuxc-gpr
+    then:
+      properties:
+        bridge@18: false
+        '#address-cells': false
+        '#size-cells': false
+
 additionalProperties: false
 
 required:
@@ -87,4 +110,39 @@ examples:
         };
     };
 
+  - |
+    #include <dt-bindings/clock/imx6sx-clock.h>
+
+    syscon@20e4000 {
+        compatible = "fsl,imx6sx-iomuxc-gpr", "fsl,imx6q-iomuxc-gpr", "syscon", "simple-mfd";
+        reg = <0x020e4000 0x4000>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+
+        bridge@18 {
+            compatible = "fsl,imx6sx-ldb";
+            reg = <0x18 0x4>;
+            clocks = <&clks IMX6SX_CLK_LDB_DI0>;
+            clock-names = "ldb";
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+
+                    endpoint {
+                    };
+                };
+
+                port@1 {
+                    reg = <1>;
+
+                    endpoint {
+                    };
+                };
+            };
+        };
+    };
 ...

-- 
2.43.0


^ permalink raw reply related

* [PATCH v2 3/4] dt-bindings: display: lcdif: Allow display0 child node for i.MX6UL
From: Frank.Li @ 2026-07-18 14:45 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Peng Fan, Marek Vasut,
	Stefan Agner, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter
  Cc: devicetree, imx, linux-arm-kernel, linux-kernel, dri-devel,
	Frank Li
In-Reply-To: <20260718-arm_dts_ldb-v2-0-f5669571aa2b@nxp.com>

From: Frank Li <Frank.Li@nxp.com>

The legacy i.MX6UL LCDIF binding uses a display0 child node to describe
the attached display. Update the binding schema to allow this child node
for fsl,imx6ul-lcdif.

Fixes the following CHECK_DTBS warning:
  arch/arm/boot/dts/nxp/imx/imx6ul-tx6ul-0010.dtb: lcdif@21c8000 (fsl,imx6ul-lcdif): 'disp0' does not match any of the regexes: '^pinctrl-[0-9]+$'

A follow-up patch renames the child node from disp0 to display0 to match
the updated binding.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
sashiko report problem and allow dma/dma-names for i.MX6ul. which should
be fine for this kinds of old platform.

Ideally it should use port. but platform is too old to avoid break back
compatiblity and leave as it. Needn't complex if-else branch.
---
 Documentation/devicetree/bindings/display/fsl,lcdif.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/display/fsl,lcdif.yaml b/Documentation/devicetree/bindings/display/fsl,lcdif.yaml
index 2dd0411ec6516..2b123ddf06841 100644
--- a/Documentation/devicetree/bindings/display/fsl,lcdif.yaml
+++ b/Documentation/devicetree/bindings/display/fsl,lcdif.yaml
@@ -182,6 +182,7 @@ allOf:
             contains:
               enum:
                 - fsl,imx28-lcdif
+                - fsl,imx6ul-lcdif
     then:
       properties:
         dmas: false

-- 
2.43.0


^ permalink raw reply related

* [PATCH v2 4/4] ARM: dts: imx6ul-tx6ul: rename disp0 to display0
From: Frank.Li @ 2026-07-18 14:45 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Peng Fan, Marek Vasut,
	Stefan Agner, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter
  Cc: devicetree, imx, linux-arm-kernel, linux-kernel, dri-devel,
	Frank Li
In-Reply-To: <20260718-arm_dts_ldb-v2-0-f5669571aa2b@nxp.com>

From: Frank Li <Frank.Li@nxp.com>

Change node name disp0 to display0 to match binding define.

Fix the following CHECK_DTBS warning:
  arch/arm/boot/dts/nxp/imx/imx6ul-tx6ul-0010.dtb: lcdif@21c8000 (fsl,imx6ul-lcdif): 'disp0' does not match any of the regexes: '^pinctrl-[0-9]+$'

Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
 arch/arm/boot/dts/nxp/imx/imx6ul-tx6ul.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/nxp/imx/imx6ul-tx6ul.dtsi b/arch/arm/boot/dts/nxp/imx/imx6ul-tx6ul.dtsi
index 192c6a95ae589..2f6916c0359c5 100644
--- a/arch/arm/boot/dts/nxp/imx/imx6ul-tx6ul.dtsi
+++ b/arch/arm/boot/dts/nxp/imx/imx6ul-tx6ul.dtsi
@@ -369,7 +369,7 @@ &lcdif {
 	display = <&display>;
 	status = "okay";
 
-	display: disp0 {
+	display: display0 {
 		bits-per-pixel = <32>;
 		bus-width = <24>;
 		status = "okay";

-- 
2.43.0


^ permalink raw reply related

* Re: [PATCH v2 3/8] clk: sunxi-ng: a733: Add PRCM CCU
From: Enzo Adriano @ 2026-07-18 14:46 UTC (permalink / raw)
  To: Junhui Liu
  Cc: Andre Przywara, Michael Turquette, Stephen Boyd, Brian Masney,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Chen-Yu Tsai,
	Jernej Skrabec, Samuel Holland, Philipp Zabel, Paul Walmsley,
	Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Richard Cochran,
	Jerome Brunet, linux-clk, devicetree, linux-arm-kernel,
	linux-sunxi, linux-kernel, linux-riscv, netdev
In-Reply-To: <20260711-a733-clk-v2-3-974d188cbe0c@pigmoral.tech>

Hi Junhui,

I re-reviewed patch 3 in v2 after Andre pointed out that my RFC reply lacked
a formal tag.

I compared the RFC and v2 PRCM drivers and rechecked v2 against the Allwinner
A733 User Manual V0.92, chapter 4.2.5. I checked all 11 programmable clock
definitions (register offsets and divider/mux/gate fields), all 18 bus-gate
definitions, and all 13 reset-map entries. They match the manual.

The RFC-to-v2 changes do not invalidate that check: the four R timer clocks
move from the MP helper with no M field to the P-only helper while keeping
their offsets and P/mux/gate fields unchanged, and the R PWM identifiers are
renamed while keeping their offset/mux/gate fields unchanged. I also checked
the gate-only BGRs for R-TWD, R-PPU, R-TZMA, and R-CPU-BIST; the manual defines
gate bit 0 but no reset bit for those registers, matching v2.

Reviewed-by: Enzo Adriano <enzo.adriano.code@gmail.com>

This analysis was done with AI assistance and each finding was checked against
the cited sources.

Thanks,
Enzo

^ permalink raw reply

* Re: [PATCH v2 3/4] dt-bindings: display: lcdif: Allow display0 child node for i.MX6UL
From: sashiko-bot @ 2026-07-18 14:57 UTC (permalink / raw)
  To: Frank.Li; +Cc: devicetree, Frank.Li, imx, conor+dt, dri-devel, robh
In-Reply-To: <20260718-arm_dts_ldb-v2-3-f5669571aa2b@nxp.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Undocumented Schema Relaxation: The commit message claims to only allow the `display0` child node, but the patch also removes the requirement for the `port` node and allows multiple legacy properties (`display`, `lcd-supply`, `dmas`, `dma-names`) for `fsl,imx6ul-lcdif`. The explanation for these additional relaxations was placed below the `---` separator, meaning it will be lost from the permanent git history when the patch is applied.
--

--- Patch [3]: [PATCH v2 3/4] dt-bindings: display: lcdif: Allow display0 child node for i.MX6UL ---
commit 0235ccaa0f6772b41fe4b752e56f626d79d4d469
Author: Frank Li <Frank.Li@nxp.com>

dt-bindings: display: lcdif: Allow display0 child node for i.MX6UL

This commit updates the binding schema to allow the display0 child node
for fsl,imx6ul-lcdif to resolve a CHECK_DTBS warning.

> diff --git a/Documentation/devicetree/bindings/display/fsl,lcdif.yaml b/Documentation/devicetree/bindings/display/fsl,lcdif.yaml
> index 2dd0411ec6516..2b123ddf06841 100644
> --- a/Documentation/devicetree/bindings/display/fsl,lcdif.yaml
> +++ b/Documentation/devicetree/bindings/display/fsl,lcdif.yaml
> @@ -182,6 +182,7 @@ allOf:
>              contains:
>                enum:
>                  - fsl,imx28-lcdif
> +                - fsl,imx6ul-lcdif
>      then:
>        properties:
>          dmas: false

[Severity: Medium]
Does this change do more than just allow the display0 child node mentioned
in the commit message?

By adding fsl,imx6ul-lcdif to this exclusion list, it skips the block that
previously disabled legacy properties. This removes the requirement for the
port node and allows multiple legacy properties (display, lcd-supply, dmas,
dma-names).

The explanation for this was placed below the --- separator in the patch:

"sashiko report problem and allow dma/dma-names for i.MX6ul. which should
be fine for this kinds of old platform."

Since text below the separator is discarded when the patch is applied, this
justification will be lost.

Could this explanation be moved into the commit message itself to preserve
the reasoning in the permanent git history?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260718-arm_dts_ldb-v2-0-f5669571aa2b@nxp.com?part=3

^ permalink raw reply

* Re: [PATCH v2 2/4] dt-bindings: soc: imx-iomuxc-gpr: allow bridge@18 as child node
From: sashiko-bot @ 2026-07-18 14:57 UTC (permalink / raw)
  To: Frank.Li; +Cc: robh, devicetree, Frank.Li, imx, dri-devel, conor+dt
In-Reply-To: <20260718-arm_dts_ldb-v2-2-f5669571aa2b@nxp.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Missing `ranges` property in `fsl,imx-iomuxc-gpr` schema will cause kernel WARN_ON at boot.
--

--- Patch [2]: [PATCH v2 2/4] dt-bindings: soc: imx-iomuxc-gpr: allow bridge@18 as child node ---
commit 5e999c2b583f7149956f10a90d92e24192451d5a
Author: Frank Li <Frank.Li@nxp.com>

dt-bindings: soc: imx-iomuxc-gpr: allow bridge@18 as child node

The legacy i.MX6SX SoC imx-iomuxc-gpr contains one LDB_CTRL register.
This patch updates the dt-bindings to allow the LVDS Display Bridge (LDB)
child node under imx-iomuxc-gpr to resolve CHECK_DTBS warnings.

> diff --git a/Documentation/devicetree/bindings/soc/imx/fsl,imx-iomuxc-gpr.yaml b/Documentation/devicetree/bindings/soc/imx/fsl,imx-iomuxc-gpr.yaml
> index 721a67e84c137..1879638918bab 100644
> --- a/Documentation/devicetree/bindings/soc/imx/fsl,imx-iomuxc-gpr.yaml
> +++ b/Documentation/devicetree/bindings/soc/imx/fsl,imx-iomuxc-gpr.yaml
> @@ -47,10 +47,21 @@ properties:
>    reg:
>      maxItems: 1
>  
> +  '#address-cells':
> +    const: 1
> +
> +  '#size-cells':
> +    const: 1
> +

[Severity: High]
Will this omission of ranges cause a kernel WARN_ON at boot?

Because the syscon node includes the simple-mfd compatible, the kernel
function of_platform_default_populate() will attempt to create platform
devices for its children. For the bridge@18 child, of_device_alloc()
attempts to parse its reg property.

Since the parent lacks a ranges property, of_translate_address() fails and
returns OF_BAD_ADDR. This causes of_address_to_resource() to return
-EINVAL, which is passed directly to a WARN_ON() in of_device_alloc().

Because additionalProperties is set to false in this schema, users are
actively prevented from adding a valid ranges property to their device trees
to fix this.

Should the ranges property be added to this schema and explicitly permitted
so that device trees can provide the required address translation mapping?

[ ... ]

> @@ -87,4 +110,39 @@ examples:
>          };
>      };
>  
> +  - |
> +    #include <dt-bindings/clock/imx6sx-clock.h>
> +
> +    syscon@20e4000 {
> +        compatible = "fsl,imx6sx-iomuxc-gpr", "fsl,imx6q-iomuxc-gpr", "syscon", "simple-mfd";
> +        reg = <0x020e4000 0x4000>;
> +        #address-cells = <1>;
> +        #size-cells = <1>;
> +

[Severity: High]
Does this example also need a ranges property?

Without it, this example demonstrates an invalid configuration that will
trigger the boot warning described above when the device tree is processed.

> +        bridge@18 {
> +            compatible = "fsl,imx6sx-ldb";

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260718-arm_dts_ldb-v2-0-f5669571aa2b@nxp.com?part=2

^ permalink raw reply

* [PATCH 3/5] dt-bindings: iio: dac: fix spelling of 'reference' in adi,ad5791
From: Yahya Toubali @ 2026-07-18 15:19 UTC (permalink / raw)
  To: Nuno Sá, Michael Hennerich, Jonathan Cameron, David Lechner,
	Andy Shevchenko, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	open list:ANALOG DEVICES INC IIO DRIVERS,
	open list:IIO SUBSYSTEM AND DRIVERS,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	open list
  Cc: Yahya Toubali
In-Reply-To: <20260718151913.1892547-1-yahya@yahyatoubali.me>

Fix misspelling of 'reference' (was 'referance') in vrefp-supply and vrefn-supply descriptions.

Signed-off-by: Yahya Toubali <yahya@yahyatoubali.me>
---
 Documentation/devicetree/bindings/iio/dac/adi,ad5791.yaml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/iio/dac/adi,ad5791.yaml b/Documentation/devicetree/bindings/iio/dac/adi,ad5791.yaml
index 2bd89e0aa46b..80fb98035c6f 100644
--- a/Documentation/devicetree/bindings/iio/dac/adi,ad5791.yaml
+++ b/Documentation/devicetree/bindings/iio/dac/adi,ad5791.yaml
@@ -36,11 +36,11 @@ properties:
 
   vrefp-supply:
     description:
-      Positive referance input voltage range. From 5v to (vdd - 2.5)
+      Positive reference input voltage range. From 5v to (vdd - 2.5)
 
   vrefn-supply:
     description:
-      Negative referance input voltage range. From (vss + 2.5) to 0.
+      Negative reference input voltage range. From (vss + 2.5) to 0.
 
   adi,rbuf-gain2-en:
     description: Specify to allow an external amplifier to be connected in a
-- 
2.55.0



^ permalink raw reply related

* [PATCH] arm64: dts: qcom: sm6125-xiaomi-ginkgo: Add vbus-supply in Type-C connector
From: Biswapriyo Nath @ 2026-07-18 15:21 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Dmitry Baryshkov, linux-arm-msm, devicetree, linux-kernel,
	~postmarketos/upstreaming, phone-devel, Biswapriyo Nath

VBUS supply property was moved from pmi632 typec node to USB-C connector.
This fixes the following warning in kernel message.
pmic@2:typec@1500: supply vdd-vbus not found, using dummy regulator

Fixes: c1da9374c3e0 ("arm64: dts: qcom: sm6125-xiaomi-ginkgo: Add PMI632 Type-C property")
Signed-off-by: Biswapriyo Nath <nathbappai@gmail.com>
---
 arch/arm64/boot/dts/qcom/sm6125-xiaomi-ginkgo-common.dtsi | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm6125-xiaomi-ginkgo-common.dtsi b/arch/arm64/boot/dts/qcom/sm6125-xiaomi-ginkgo-common.dtsi
index a5458ab41629..59042a593753 100644
--- a/arch/arm64/boot/dts/qcom/sm6125-xiaomi-ginkgo-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm6125-xiaomi-ginkgo-common.dtsi
@@ -133,6 +133,8 @@ connector {
 		typec-power-opmode = "default";
 		pd-disable;
 
+		vbus-supply = <&pmi632_vbus>;
+
 		port {
 			pmi632_hs_in: endpoint {
 				remote-endpoint = <&usb_dwc3_hs>;

---
base-commit: 0718283ab28bc3907e10b61a6b4be6fefa1cbb2f
change-id: 20260718-ginkgo-vbus-typec-a97d9389da3d
prerequisite-message-id: <20260519-fix-tcpm-vbus-v1-6-14754695282d@oss.qualcomm.com>
prerequisite-patch-id: 6c6c95591d4aff3681de3a3bbeae9d23f77040c5
prerequisite-patch-id: 51a84aabba9117f91505cc9c17f2c7064768ca33
prerequisite-patch-id: 2432fbca7762ddb799b5c64f932760083ff0ea85
prerequisite-patch-id: e3fe6166b11e43616b406a1ff6a8ac28611e7cdf
prerequisite-patch-id: fe4070481a2bfc530e1a869bd981c32a8147f7e9
prerequisite-patch-id: 4fc9afebebdfadfe644126dcdcdfe30f8e0ae685

Best regards,
--  
Biswapriyo Nath <nathbappai@gmail.com>


^ permalink raw reply related

* Re: [PATCH v3 2/2] ASoC: codecs: add TAS2557 mono smart amplifier driver
From: Markus Elfring @ 2026-07-18 15:36 UTC (permalink / raw)
  To: Gianluca Boiano, linux-sound, devicetree, Conor Dooley,
	Jaroslav Kysela, Krzysztof Kozlowski, Liam Girdwood, Mark Brown,
	Rob Herring, Takashi Iwai
  Cc: LKML, Baojun Xu, Kevin Lu, Sen Wang, Shenghao Ding
In-Reply-To: <20260717233402.414326-3-morf3089@gmail.com>

…
> +++ b/sound/soc/codecs/tas2557.c
> @@ -0,0 +1,3067 @@
> +static int tas2557_dev_read(struct tas2557_priv *tas2557, unsigned int chn,
> +			    unsigned int reg, unsigned int *value)
> +{
> +	mutex_lock(&tas2557->dev_lock);
> +	ret = tas2557_change_book_page(tas2557, chn, TAS2557_BOOK_ID(reg),
> +				       TAS2557_PAGE_ID(reg));
> +	mutex_unlock(&tas2557->dev_lock);
> +	return ret;
> +}
…

Under which circumstances would you become interested to apply a statement
like “guard(mutex)(&tas2557->dev_lock);”?
https://elixir.bootlin.com/linux/v7.2-rc3/source/include/linux/mutex.h#L253

Regards,
Markus

^ permalink raw reply

* Re: [PATCH v7 2/2] drm/bridge: Add Lontium LT9609C(EX/UXD) MIPI DSI to HDMI driver
From: Krzysztof Kozlowski @ 2026-07-18 15:55 UTC (permalink / raw)
  To: Mohit Dsor
  Cc: Sunyun Yang, Andrzej Hajda, Neil Armstrong, Robert Foss,
	Laurent Pinchart, Jonas Karlman, Jernej Skrabec, Luca Ceresoli,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
	Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Vinod Koul, dri-devel, devicetree, linux-kernel, venkata.valluru,
	Jessica Zhang, y
In-Reply-To: <altfrJgx2IjO1g33@hu-mdsor-hyd.qualcomm.com>

On 18/07/2026 13:12, Mohit Dsor wrote:
> On Thu, Jul 16, 2026 at 02:56:02PM +0200, Krzysztof Kozlowski wrote:
>> On 16/07/2026 13:31, mohit.dsor@oss.qualcomm.com wrote:
>>> From: Sunyun Yang <syyang@lontium.com>
>>>
>>> LT9611C(EX/UXD) is an I2C-controlled chip that Receiver signal/dual port
>>> mipi dsi and output hdmi, differences in hardware features:
>>> - LT9611C: supports 1-port mipi dsi to hdmi 1.4
>>> - LT9611EX: supports 2-port mipi dsi to hdmi 1.4
>>> - LT9611UXD: supports 2-port mipi dsi to hdmi 1.4/2.0
>>>
>>> Signed-off-by: Sunyun Yang <syyang@lontium.com>
>>> Co-developed-by: Mohit Dsor <mohit.dsor@oss.qualcomm.com>
>>> Signed-off-by: Mohit Dsor <mohit.dsor@oss.qualcomm.com>
>>> ---
>>>  MAINTAINERS                              |    7 +
>>>  drivers/gpu/drm/bridge/Kconfig           |   18 +
>>>  drivers/gpu/drm/bridge/Makefile          |    1 +
>>>  drivers/gpu/drm/bridge/lontium-lt9611c.c | 1293 ++++++++++++++++++++++++++++++
>>>  4 files changed, 1319 insertions(+)
>>>
>>> diff --git a/MAINTAINERS b/MAINTAINERS
>>> index 6dea93a41962..30be2eaf2bec 100644
>>> --- a/MAINTAINERS
>>> +++ b/MAINTAINERS
>>> @@ -15184,6 +15184,13 @@ S:	Maintained
>>>  F:	Documentation/devicetree/bindings/display/bridge/lontium,lt8912b.yaml
>>>  F:	drivers/gpu/drm/bridge/lontium-lt8912b.c
>>>  
>>> +LONTIUM LT9611C MIPI DSI TO HDMI BRIDGE
>>> +M:	Sunyun Yang <syyang@lontium.com>
>>> +M:	Mohit Dsor <mohit.dsor@oss.qualcomm.com>
>>> +S:	Maintained
>>> +F:	Documentation/devicetree/bindings/display/bridge/lontium,lt9611.yaml
>>> +F:	drivers/gpu/drm/bridge/lontium-lt9611c.c
>>> +
>>>  LOONGARCH
>>>  M:	Huacai Chen <chenhuacai@kernel.org>
>>>  R:	WANG Xuerui <kernel@xen0n.name>
>>> diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig
>>> index 4a57d49b4c6d..b8959b8e2ad0 100644
>>> --- a/drivers/gpu/drm/bridge/Kconfig
>>> +++ b/drivers/gpu/drm/bridge/Kconfig
>>> @@ -177,6 +177,24 @@ config DRM_LONTIUM_LT9611
>>>  	  HDMI signals
>>>  	  Please say Y if you have such hardware.
>>>  
>>> +config DRM_LONTIUM_LT9611C
>>> +	tristate "Lontium LT9611C DSI/HDMI bridge"
>>> +	select SND_SOC_HDMI_CODEC if SND_SOC
>>> +	depends on OF
>>> +	select CRC8
>>> +	select FW_LOADER
>>> +	select DRM_PANEL_BRIDGE
>>> +	select DRM_KMS_HELPER
>>> +	select DRM_MIPI_DSI
>>> +	select DRM_DISPLAY_HELPER
>>> +	select DRM_DISPLAY_HDMI_STATE_HELPER
>>> +	select REGMAP_I2C
>>> +	help
>>> +	  Driver for Lontium DSI to HDMI bridge
>>> +	  chip driver that converts dual DSI and I2S to
>>> +	  HDMI signals
>>> +	  Please say Y if you have such hardware.
>>
>> Please wrap the code to appropriate limits.
> I checked the others in Kconfigs they appear to be similar,
> still i will try to fix it.

This is nowhere close to the limit expressed by coding style.

Best regards,
Krzysztof

^ permalink raw reply

* [PATCH v3] dt-bindings: iio: dac: fix spelling of 'reference' in adi,ad5791
From: Yahya Toubali @ 2026-07-18 16:56 UTC (permalink / raw)
  To: Nuno Sá, Michael Hennerich, Jonathan Cameron, David Lechner,
	Andy Shevchenko, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	open list:ANALOG DEVICES INC IIO DRIVERS,
	open list:IIO SUBSYSTEM AND DRIVERS,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	open list
  Cc: Yahya Toubali

Fix misspelling of 'reference' (was 'referance') in the
vrefp-supply and vrefn-supply descriptions.

Signed-off-by: Yahya Toubali <yahya@yahyatoubali.me>
---
 Documentation/devicetree/bindings/iio/dac/adi,ad5791.yaml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/iio/dac/adi,ad5791.yaml b/Documentation/devicetree/bindings/iio/dac/adi,ad5791.yaml
index 2bd89e0aa46b..80fb98035c6f 100644
--- a/Documentation/devicetree/bindings/iio/dac/adi,ad5791.yaml
+++ b/Documentation/devicetree/bindings/iio/dac/adi,ad5791.yaml
@@ -36,11 +36,11 @@ properties:
 
   vrefp-supply:
     description:
-      Positive referance input voltage range. From 5v to (vdd - 2.5)
+      Positive reference input voltage range. From 5v to (vdd - 2.5)
 
   vrefn-supply:
     description:
-      Negative referance input voltage range. From (vss + 2.5) to 0.
+      Negative reference input voltage range. From (vss + 2.5) to 0.
 
   adi,rbuf-gain2-en:
     description: Specify to allow an external amplifier to be connected in a

base-commit: 1229e2e57a5c2980ccd457b9b53ea0eed5a22ab3
prerequisite-patch-id: c8aee5eb39e3cd6f2b2f28c82163565665288d2a
prerequisite-patch-id: 60ad32e9f0e74902635d7886b97c4225ac8dc5ce
-- 
2.55.0



^ permalink raw reply related

* [PATCH 1/5] dt-bindings: usb: parade,ps8830: Add parade,disable-usb4 property
From: Jens Glathe via B4 Relay @ 2026-07-18 17:06 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Abel Vesa, Heikki Krogerus, Bjorn Andersson,
	Konrad Dybcio
  Cc: linux-usb, devicetree, linux-kernel, linux-arm-msm, stable,
	Dr. David Alan Gilbert, Jens Glathe
In-Reply-To: <20260718-ps883x-disable-usb4-v1-0-cec86d0b909e@oldschoolsolutions.biz>

From: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

Document a new optional boolean property "parade,disable-usb4".
When present, the retimer rejects USB4 mode by returning -EOPNOTSUPP,
forcing a fallback to USB3 + DP Alternate Mode.

Assisted-by: Grok(xAI):4.3
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
---
 Documentation/devicetree/bindings/usb/parade,ps8830.yaml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/parade,ps8830.yaml b/Documentation/devicetree/bindings/usb/parade,ps8830.yaml
index eaeab1c01a594..44242907461eb 100644
--- a/Documentation/devicetree/bindings/usb/parade,ps8830.yaml
+++ b/Documentation/devicetree/bindings/usb/parade,ps8830.yaml
@@ -66,6 +66,12 @@ properties:
           Sideband Use (SBU) AUX lines endpoint to the Type-C connector for the purpose of
           handling altmode muxing and orientation switching.
 
+  parade,disable-usb4:
+    type: boolean
+    description:
+      When present, the retimer rejects USB4 mode (returns -EOPNOTSUPP).
+      This forces the Type-C stack to fall back to USB3 + DP Alternate Mode.
+
 required:
   - compatible
   - reg

-- 
2.53.0



^ permalink raw reply related

* [PATCH 0/5] usb: typec: ps883x: fixes for older Thunderbolt 4 / USB4 docks
From: Jens Glathe via B4 Relay @ 2026-07-18 17:06 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Abel Vesa, Heikki Krogerus, Bjorn Andersson,
	Konrad Dybcio
  Cc: linux-usb, devicetree, linux-kernel, linux-arm-msm, stable,
	Dr. David Alan Gilbert, Jens Glathe

On Qualcomm X1E80100 platforms (e.g. Lenovo ThinkPad T14s Gen 6)
using the Parade PS883x retimer, connecting USB4-capable docks such
as the Lenovo 40B0 via a regular Type-C cable (which forces the dock
into Type-C fallback mode) often results in working USB but no
DisplayPort output.

This series addresses the issue with two main changes:

- Add a new optional DT property "parade,disable-usb4". When present,
  the PS883x driver rejects USB4 mode (-EOPNOTSUPP). This forces the
  Type-C stack to fall back to USB3 + DP Alt Mode, which works
  reliably with the 40B0.

- Refactor DP altmode handling to also support the legacy
  TYPEC_DP_STATE_F request (deprecated since DP Alt Mode 1.0b) sent by
  the 40B0 and other docks (e.g. SSK SC220).

- Add a short delay after writing configuration registers, which
  improves hotplug reliability.

This is a temporary workaround until full USB4 DP tunneling support is
available in the X1E USB4 controller and qmp-combo PHY stack.

Note: The DT patch adds the new property to all currently upstream
boards using the PS883x retimer (15 files). Happy to split it on v2
if requested.

As an additional observation, the same dock with type-c cable works well
on Thinkpad X13s, Thinkbook 16 G7 QOY, Ideapad 5 14Q8X9, but doesn't need
the ps883x changes (naturally). 

Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
---
Jens Glathe (5):
      dt-bindings: usb: parade,ps8830: Add parade,disable-usb4 property
      usb: typec: ps883x: Return -EOPNOTSUPP for USB4 when parade,disable-usb4 is set
      usb: typec: mux: ps883x: refactor DP altmode handling and support TYPEC_DP_STATE_F
      usb: typec: mux: ps883x: add a delay after writing config regs
      arm64: dts: qcom: x1: disable ps883x USB4 capability

 .../devicetree/bindings/usb/parade,ps8830.yaml     |  6 +++
 arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts         |  4 ++
 .../qcom/hamoa-lenovo-ideacentre-mini-01q8x10.dts  |  2 +
 arch/arm64/boot/dts/qcom/purwa-iot-evk.dts         |  6 +++
 arch/arm64/boot/dts/qcom/x1-asus-vivobook-s15.dtsi |  4 ++
 arch/arm64/boot/dts/qcom/x1-asus-zenbook-a14.dtsi  |  4 ++
 arch/arm64/boot/dts/qcom/x1-crd.dtsi               |  6 +++
 arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi        |  4 ++
 arch/arm64/boot/dts/qcom/x1-hp-omnibook-x14.dtsi   |  2 +
 arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi  |  4 ++
 arch/arm64/boot/dts/qcom/x1e001de-devkit.dts       |  6 +++
 .../dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi    |  4 ++
 .../boot/dts/qcom/x1e80100-dell-xps13-9345.dts     |  4 ++
 .../boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts  |  6 +++
 .../dts/qcom/x1e80100-medion-sprchrgd-14-s1.dts    |  2 +
 .../boot/dts/qcom/x1e80100-microsoft-romulus.dtsi  |  4 ++
 drivers/usb/typec/mux/ps883x.c                     | 47 +++++++++++++++-------
 17 files changed, 100 insertions(+), 15 deletions(-)
---
base-commit: 0718283ab28bc3907e10b61a6b4be6fefa1cbb2f
change-id: 20260718-ps883x-disable-usb4-19b0fc13b5ab

Best regards,
-- 
Jens Glathe <jens.glathe@oldschoolsolutions.biz>



^ permalink raw reply

* [PATCH 2/5] usb: typec: ps883x: Return -EOPNOTSUPP for USB4 when parade,disable-usb4 is set
From: Jens Glathe via B4 Relay @ 2026-07-18 17:06 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Abel Vesa, Heikki Krogerus, Bjorn Andersson,
	Konrad Dybcio
  Cc: linux-usb, devicetree, linux-kernel, linux-arm-msm, stable,
	Dr. David Alan Gilbert, Jens Glathe
In-Reply-To: <20260718-ps883x-disable-usb4-v1-0-cec86d0b909e@oldschoolsolutions.biz>

From: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

On Qualcomm X1E80100 platforms using the Parade PS883x retimer (like
Lenovo ThinkPad T14s Gen6), hotplugging USB4-capable docks such as the
Lenovo 40B0 results in working USB but no DisplayPort output on the
dock's HDMI/DP ports.

When the dock negotiates USB4, the retimer receives TYPEC_MODE_USB4
and forwards it via typec_mux_set(). The qmp_combo PHY then selects
QMPPHY_MODE_USB3_ONLY because no classic DP altmode SVID is present in
the state, leaving the DP transmitter and AUX channel disabled.

Add a DT property "parade,disable-usb4" that, when present, makes the
PS883x driver reject USB4 modes as not supported. DP altmode
configuration is still applied if negotiated, so both USB and
DisplayPort continue to work.

This is a temporary workaround until proper USB4 DP tunneling support
is available in the X1E USB4 controller and qmp_combo PHY stack.

Link: https://patch.msgid.link/20260312101431.2375709-1-krishna.kurapati@oss.qualcomm.com
Assisted-by: Grok(xAI):4.3
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
---
 drivers/usb/typec/mux/ps883x.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/usb/typec/mux/ps883x.c b/drivers/usb/typec/mux/ps883x.c
index 64e0a61b776a1..3fa26ce01a9c9 100644
--- a/drivers/usb/typec/mux/ps883x.c
+++ b/drivers/usb/typec/mux/ps883x.c
@@ -62,6 +62,7 @@ struct ps883x_retimer {
 
 	enum typec_orientation orientation;
 	bool in_reset;
+	bool disable_usb4;
 };
 
 static int ps883x_enable_vregs(struct ps883x_retimer *retimer)
@@ -249,6 +250,13 @@ static int ps883x_set(struct ps883x_retimer *retimer, struct typec_retimer_state
 			cfg0 |= CONN_STATUS_0_USB_3_1_CONNECTED;
 			break;
 		case TYPEC_MODE_USB4:
+			if (retimer->disable_usb4) {
+				dev_info(&retimer->client->dev,
+					 "USB4 disabled via DT property, rejecting USB4 mode\n");
+				return -EOPNOTSUPP;
+			}
+
+			/* Normal USB4 handling */
 			eudo_data = state->data;
 
 			cfg2 |= CONN_STATUS_2_USB4_CONNECTED;
@@ -378,6 +386,8 @@ static int ps883x_retimer_probe(struct i2c_client *client)
 
 	retimer->client = client;
 
+	retimer->disable_usb4 = device_property_read_bool(dev, "parade,disable-usb4");
+
 	mutex_init(&retimer->lock);
 
 	retimer->regmap = devm_regmap_init_i2c(client, &ps883x_retimer_regmap);

-- 
2.53.0



^ permalink raw reply related

* [PATCH 4/5] usb: typec: mux: ps883x: add a delay after writing config regs
From: Jens Glathe via B4 Relay @ 2026-07-18 17:06 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Abel Vesa, Heikki Krogerus, Bjorn Andersson,
	Konrad Dybcio
  Cc: linux-usb, devicetree, linux-kernel, linux-arm-msm, stable,
	Dr. David Alan Gilbert, Jens Glathe
In-Reply-To: <20260718-ps883x-disable-usb4-v1-0-cec86d0b909e@oldschoolsolutions.biz>

From: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

The config regs seem to need a few ms to propagate the changes through the
system (like, PLLs). This improves the hotplug dp altmode success rate
on the Lenovo 40B0 dock to 100%.

Tested with T14s G6 and 40B0 dock on the HDMI port with a type-c host cable.

Assisted-by: Gemini:3
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
---
 drivers/usb/typec/mux/ps883x.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/usb/typec/mux/ps883x.c b/drivers/usb/typec/mux/ps883x.c
index 3533d4f363286..3ca2952e6a0a3 100644
--- a/drivers/usb/typec/mux/ps883x.c
+++ b/drivers/usb/typec/mux/ps883x.c
@@ -185,6 +185,8 @@ static int ps883x_configure(struct ps883x_retimer *retimer, int cfg0,
 		return ret;
 	}
 
+	usleep_range(20000, 30000);
+
 	return 0;
 }
 

-- 
2.53.0



^ permalink raw reply related

* [PATCH 3/5] usb: typec: mux: ps883x: refactor DP altmode handling and support TYPEC_DP_STATE_F
From: Jens Glathe via B4 Relay @ 2026-07-18 17:06 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Abel Vesa, Heikki Krogerus, Bjorn Andersson,
	Konrad Dybcio
  Cc: linux-usb, devicetree, linux-kernel, linux-arm-msm, stable,
	Dr. David Alan Gilbert, Jens Glathe
In-Reply-To: <20260718-ps883x-disable-usb4-v1-0-cec86d0b909e@oldschoolsolutions.biz>

From: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

Several docks, including the Lenovo 40B0 and SSK SC220, still send the
legacy TYPEC_DP_STATE_F mode request (deprecated since DisplayPort Alt
Mode spec version 1.0b). Treat it as USB3 + DP altmode (same as
TYPEC_DP_STATE_D) so that DP altmode works correctly, especially on
the 40B0 in Type-C fallback mode.

Extract the state handling into ps883x_apply_dp_altmode() (modelled
after qmp-combo-phy) for consistency.

Assisted-by: Grok(xAI):4.3
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
---
 drivers/usb/typec/mux/ps883x.c | 35 ++++++++++++++++++++---------------
 1 file changed, 20 insertions(+), 15 deletions(-)

diff --git a/drivers/usb/typec/mux/ps883x.c b/drivers/usb/typec/mux/ps883x.c
index 3fa26ce01a9c9..3533d4f363286 100644
--- a/drivers/usb/typec/mux/ps883x.c
+++ b/drivers/usb/typec/mux/ps883x.c
@@ -188,6 +188,25 @@ static int ps883x_configure(struct ps883x_retimer *retimer, int cfg0,
 	return 0;
 }
 
+static void ps883x_apply_dp_altmode(int *cfg0, int *cfg1, int dp_state)
+{
+	*cfg1 |= CONN_STATUS_1_DP_CONNECTED | CONN_STATUS_1_DP_HPD_LEVEL;
+
+	switch (dp_state) {
+	case TYPEC_DP_STATE_D:
+	case TYPEC_DP_STATE_F:
+		*cfg0 |= CONN_STATUS_0_USB_3_1_CONNECTED;
+		fallthrough;
+	case TYPEC_DP_STATE_C:
+	case TYPEC_DP_STATE_E:
+		*cfg1 |= CONN_STATUS_1_DP_SINK_REQUESTED |
+			 CONN_STATUS_1_DP_PIN_ASSIGNMENT_C_D;
+		break;
+	default:
+		break;
+	}
+}
+
 static int ps883x_set(struct ps883x_retimer *retimer, struct typec_retimer_state *state)
 {
 	struct typec_thunderbolt_data *tb_data;
@@ -203,24 +222,10 @@ static int ps883x_set(struct ps883x_retimer *retimer, struct typec_retimer_state
 	if (state->alt) {
 		switch (state->alt->svid) {
 		case USB_TYPEC_DP_SID:
-			cfg1 |= CONN_STATUS_1_DP_CONNECTED |
-				CONN_STATUS_1_DP_HPD_LEVEL;
-
-			switch (state->mode)  {
-			case TYPEC_DP_STATE_D:
-				cfg0 |= CONN_STATUS_0_USB_3_1_CONNECTED;
-				fallthrough;
-			case TYPEC_DP_STATE_C:
-				cfg1 |= CONN_STATUS_1_DP_SINK_REQUESTED |
-					CONN_STATUS_1_DP_PIN_ASSIGNMENT_C_D;
-				break;
-			default: /* MODE_E */
-				break;
-			}
+			ps883x_apply_dp_altmode(&cfg0, &cfg1, state->mode);
 			break;
 		case USB_TYPEC_TBT_SID:
 			tb_data = state->data;
-
 			/* Unconditional */
 			cfg2 |= CONN_STATUS_2_TBT_CONNECTED;
 

-- 
2.53.0



^ permalink raw reply related

* [PATCH 5/5] arm64: dts: qcom: x1: disable ps883x USB4 capability
From: Jens Glathe via B4 Relay @ 2026-07-18 17:06 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Abel Vesa, Heikki Krogerus, Bjorn Andersson,
	Konrad Dybcio
  Cc: linux-usb, devicetree, linux-kernel, linux-arm-msm, stable,
	Dr. David Alan Gilbert, Jens Glathe
In-Reply-To: <20260718-ps883x-disable-usb4-v1-0-cec86d0b909e@oldschoolsolutions.biz>

From: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

Add the "parade,disable-usb4" property to the PS883x node so that the
retimer driver treats USB4 as USB3. This allows the combo PHY to remain
in a DP-capable mode, restoring working DisplayPort output over the
dock while keeping USB functional.

This is a temporary platform workaround until proper USB4 DP tunneling
support is available.

Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
---
 arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts                        | 4 ++++
 arch/arm64/boot/dts/qcom/hamoa-lenovo-ideacentre-mini-01q8x10.dts | 2 ++
 arch/arm64/boot/dts/qcom/purwa-iot-evk.dts                        | 6 ++++++
 arch/arm64/boot/dts/qcom/x1-asus-vivobook-s15.dtsi                | 4 ++++
 arch/arm64/boot/dts/qcom/x1-asus-zenbook-a14.dtsi                 | 4 ++++
 arch/arm64/boot/dts/qcom/x1-crd.dtsi                              | 6 ++++++
 arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi                       | 4 ++++
 arch/arm64/boot/dts/qcom/x1-hp-omnibook-x14.dtsi                  | 2 ++
 arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi                 | 4 ++++
 arch/arm64/boot/dts/qcom/x1e001de-devkit.dts                      | 6 ++++++
 arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi       | 4 ++++
 arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts             | 4 ++++
 arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts          | 6 ++++++
 arch/arm64/boot/dts/qcom/x1e80100-medion-sprchrgd-14-s1.dts       | 2 ++
 arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus.dtsi          | 4 ++++
 15 files changed, 62 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
index 9fa86bb6438ec..5ec77c5912f8e 100644
--- a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
+++ b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
@@ -762,6 +762,8 @@ typec-mux@8 {
 		orientation-switch;
 		retimer-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -877,6 +879,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
diff --git a/arch/arm64/boot/dts/qcom/hamoa-lenovo-ideacentre-mini-01q8x10.dts b/arch/arm64/boot/dts/qcom/hamoa-lenovo-ideacentre-mini-01q8x10.dts
index bfb7cea56df96..328a360843f4c 100644
--- a/arch/arm64/boot/dts/qcom/hamoa-lenovo-ideacentre-mini-01q8x10.dts
+++ b/arch/arm64/boot/dts/qcom/hamoa-lenovo-ideacentre-mini-01q8x10.dts
@@ -601,6 +601,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
diff --git a/arch/arm64/boot/dts/qcom/purwa-iot-evk.dts b/arch/arm64/boot/dts/qcom/purwa-iot-evk.dts
index ad503beec1d3d..9ce080b9ae896 100644
--- a/arch/arm64/boot/dts/qcom/purwa-iot-evk.dts
+++ b/arch/arm64/boot/dts/qcom/purwa-iot-evk.dts
@@ -703,6 +703,8 @@ typec-mux@8 {
 		orientation-switch;
 		retimer-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -760,6 +762,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -865,6 +869,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
diff --git a/arch/arm64/boot/dts/qcom/x1-asus-vivobook-s15.dtsi b/arch/arm64/boot/dts/qcom/x1-asus-vivobook-s15.dtsi
index 48c4ad648354e..d67ded1da5875 100644
--- a/arch/arm64/boot/dts/qcom/x1-asus-vivobook-s15.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1-asus-vivobook-s15.dtsi
@@ -678,6 +678,8 @@ typec-mux@8 {
 		orientation-switch;
 		retimer-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -798,6 +800,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
diff --git a/arch/arm64/boot/dts/qcom/x1-asus-zenbook-a14.dtsi b/arch/arm64/boot/dts/qcom/x1-asus-zenbook-a14.dtsi
index 66d566808f583..e1033d3bef359 100644
--- a/arch/arm64/boot/dts/qcom/x1-asus-zenbook-a14.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1-asus-zenbook-a14.dtsi
@@ -845,6 +845,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -945,6 +947,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
diff --git a/arch/arm64/boot/dts/qcom/x1-crd.dtsi b/arch/arm64/boot/dts/qcom/x1-crd.dtsi
index 9602d65c8b3db..002a974c88751 100644
--- a/arch/arm64/boot/dts/qcom/x1-crd.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1-crd.dtsi
@@ -967,6 +967,8 @@ typec-mux@8 {
 		orientation-switch;
 		retimer-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -1024,6 +1026,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -1112,6 +1116,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
diff --git a/arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi b/arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi
index d6de4da02dcd3..fa17cdafc07b4 100644
--- a/arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi
@@ -852,6 +852,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -947,6 +949,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
diff --git a/arch/arm64/boot/dts/qcom/x1-hp-omnibook-x14.dtsi b/arch/arm64/boot/dts/qcom/x1-hp-omnibook-x14.dtsi
index 02708f23a8657..4dd62092b8809 100644
--- a/arch/arm64/boot/dts/qcom/x1-hp-omnibook-x14.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1-hp-omnibook-x14.dtsi
@@ -917,6 +917,8 @@ typec-mux@8 {
 		orientation-switch;
 		retimer-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
diff --git a/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi b/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi
index 7559557610ed4..1aa075d6eeda5 100644
--- a/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi
@@ -759,6 +759,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -822,6 +824,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
diff --git a/arch/arm64/boot/dts/qcom/x1e001de-devkit.dts b/arch/arm64/boot/dts/qcom/x1e001de-devkit.dts
index 2e38402e2c140..ada5da526634a 100644
--- a/arch/arm64/boot/dts/qcom/x1e001de-devkit.dts
+++ b/arch/arm64/boot/dts/qcom/x1e001de-devkit.dts
@@ -795,6 +795,8 @@ typec-mux@8 {
 		orientation-switch;
 		retimer-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -852,6 +854,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -943,6 +947,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
diff --git a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
index 5d49df41be02a..c8bfb38c64ad5 100644
--- a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
@@ -895,6 +895,8 @@ typec-mux@8 {
 		orientation-switch;
 		retimer-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -1018,6 +1020,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts b/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
index ce7b10ea89b6d..11412099eaec1 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
+++ b/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
@@ -726,6 +726,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -789,6 +791,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts b/arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts
index beb1475d7fa0c..d16d3627796b8 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts
+++ b/arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts
@@ -863,6 +863,8 @@ typec-mux@8 {
 		orientation-switch;
 		retimer-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -920,6 +922,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -977,6 +981,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-medion-sprchrgd-14-s1.dts b/arch/arm64/boot/dts/qcom/x1e80100-medion-sprchrgd-14-s1.dts
index f95b1f9f439d3..55f9df8e5f403 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100-medion-sprchrgd-14-s1.dts
+++ b/arch/arm64/boot/dts/qcom/x1e80100-medion-sprchrgd-14-s1.dts
@@ -857,6 +857,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus.dtsi b/arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus.dtsi
index 28342cb84ded7..4ccfbe7e14eb8 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus.dtsi
@@ -902,6 +902,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
@@ -984,6 +986,8 @@ typec-mux@8 {
 		retimer-switch;
 		orientation-switch;
 
+		parade,disable-usb4;
+
 		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;

-- 
2.53.0



^ permalink raw reply related

* Re: [PATCH 1/5] dt-bindings: usb: parade,ps8830: Add parade,disable-usb4 property
From: sashiko-bot @ 2026-07-18 17:11 UTC (permalink / raw)
  To: Jens Glathe; +Cc: robh, conor+dt, devicetree
In-Reply-To: <20260718-ps883x-disable-usb4-v1-1-cec86d0b909e@oldschoolsolutions.biz>

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Low] The device tree binding violates OS-agnostic design principles by describing Linux-specific software behavior and internal driver states instead of hardware properties.
- [Low] The commit message contains a malformed and non-standard patch trailer 'Assisted-by: Grok(xAI):4.3'.
--

--- Patch [1]: [PATCH 1/5] dt-bindings: usb: parade,ps8830: Add parade,disable-usb4 property ---
commit 3e93d13f3a0b964fe4e6611bd03b162fa75d29a3
Author: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

dt-bindings: usb: parade,ps8830: Add parade,disable-usb4 property

This commit documents a new optional boolean property parade,disable-usb4
for the parade,ps8830 device tree binding, which disables USB4 mode.

>     Assisted-by: Grok(xAI):4.3
>     Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

[Severity: Low]
Does the Assisted-by trailer conform to the standard patch submission
guidelines? 

This tag is non-standard, and it is missing the expected Name <email>
formatting. Could this cause issues with automated patch parsing tools?

> diff --git a/Documentation/devicetree/bindings/usb/parade,ps8830.yaml b/Documentation/devicetree/bindings/usb/parade,ps8830.yaml
> index eaeab1c01a594..44242907461eb 100644
> --- a/Documentation/devicetree/bindings/usb/parade,ps8830.yaml
> +++ b/Documentation/devicetree/bindings/usb/parade,ps8830.yaml

[ ... ]

> @@ -66,6 +66,12 @@ properties:
>            Sideband Use (SBU) AUX lines endpoint to the Type-C connector for the purpose of
>            handling altmode muxing and orientation switching.
>  
> +  parade,disable-usb4:
> +    type: boolean
> +    description:
> +      When present, the retimer rejects USB4 mode (returns -EOPNOTSUPP).
> +      This forces the Type-C stack to fall back to USB3 + DP Alternate Mode.

[Severity: Low]
Should the description for parade,disable-usb4 focus on the physical
hardware state or board constraints rather than Linux-specific driver
behavior? 

Mentioning internal software details like returning -EOPNOTSUPP and the
Type-C stack seems to go against the principle that device tree bindings
should be OS-agnostic. Could this be rephrased to describe the hardware
limitations instead?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260718-ps883x-disable-usb4-v1-0-cec86d0b909e@oldschoolsolutions.biz?part=1

^ permalink raw reply

* Re: [PATCH 2/5] usb: typec: ps883x: Return -EOPNOTSUPP for USB4 when parade,disable-usb4 is set
From: sashiko-bot @ 2026-07-18 17:14 UTC (permalink / raw)
  To: Jens Glathe; +Cc: devicetree, conor+dt, robh
In-Reply-To: <20260718-ps883x-disable-usb4-v1-2-cec86d0b909e@oldschoolsolutions.biz>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Encoding a temporary software workaround into the Device Tree using a custom property (`parade,disable-usb4`).
--

--- Patch [2]: [PATCH 2/5] usb: typec: ps883x: Return -EOPNOTSUPP for USB4 when parade,disable-usb4 is set ---
commit e075e4adfa41dd9a2eea759527c1bbbc8a97f7a9
Author: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Subject: usb: typec: ps883x: Return -EOPNOTSUPP for USB4 when parade,disable-usb4 is set

This commit adds a temporary workaround to disable USB4 support on the
PS883x retimer using a new device tree property. It addresses an issue on
X1E80100 platforms where negotiating USB4 results in no DisplayPort output
due to missing software support in the qmp_combo PHY stack.

Link: https://patch.msgid.link/20260312101431.2375709-1-krishna.kurapati@oss.qualcomm.com

> diff --git a/drivers/usb/typec/mux/ps883x.c b/drivers/usb/typec/mux/ps883x.c
> index 64e0a61b776a1..3fa26ce01a9c9 100644
> --- a/drivers/usb/typec/mux/ps883x.c
> +++ b/drivers/usb/typec/mux/ps883x.c
[ ... ]
> @@ -249,6 +250,13 @@ static int ps883x_set(struct ps883x_retimer *retimer, struct typec_retimer_state
>  			cfg0 |= CONN_STATUS_0_USB_3_1_CONNECTED;
>  			break;
>  		case TYPEC_MODE_USB4:
> +			if (retimer->disable_usb4) {
> +				dev_info(&retimer->client->dev,
> +					 "USB4 disabled via DT property, rejecting USB4 mode\n");
> +				return -EOPNOTSUPP;
> +			}

[Severity: High]
Since the commit message notes this is a temporary workaround for missing OS
support in the X1E USB4 controller and PHY stack, does this approach conflict
with the principle that the device tree is a stable hardware description ABI?

If this workaround is deployed in user device trees or firmware, wouldn't
those boards permanently have USB4 disabled on this retimer even after the
kernel drivers are eventually updated to fully support it?

Could this be implemented as a software quirk instead, perhaps by matching
the platform's compatible string or inferring the limitation dynamically
from the dependent drivers, rather than altering the hardware description?

> +
> +			/* Normal USB4 handling */
>  			eudo_data = state->data;
>  
>  			cfg2 |= CONN_STATUS_2_USB4_CONNECTED;
[ ... ]
> @@ -378,6 +386,8 @@ static int ps883x_retimer_probe(struct i2c_client *client)
>  
>  	retimer->client = client;
>  
> +	retimer->disable_usb4 = device_property_read_bool(dev, "parade,disable-usb4");
> +
>  	mutex_init(&retimer->lock);
>  
>  	retimer->regmap = devm_regmap_init_i2c(client, &ps883x_retimer_regmap);

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260718-ps883x-disable-usb4-v1-0-cec86d0b909e@oldschoolsolutions.biz?part=2

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox