* [PATCH v2 1/4] dt-bindings: display: bridge: ldb: allow a single reg for fsl,imx6sx-ldb
2026-07-18 14:45 [PATCH v2 0/4] ARM: dts: imx: fix ldb related CHECK_DTBS warnings Frank.Li
@ 2026-07-18 14:45 ` Frank.Li
2026-07-18 14:45 ` [PATCH v2 2/4] dt-bindings: soc: imx-iomuxc-gpr: allow bridge@18 as child node Frank.Li
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
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
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 [flat|nested] 7+ messages in thread* [PATCH v2 2/4] dt-bindings: soc: imx-iomuxc-gpr: allow bridge@18 as child node
2026-07-18 14:45 [PATCH v2 0/4] ARM: dts: imx: fix ldb related CHECK_DTBS warnings Frank.Li
2026-07-18 14:45 ` [PATCH v2 1/4] dt-bindings: display: bridge: ldb: allow a single reg for fsl,imx6sx-ldb Frank.Li
@ 2026-07-18 14:45 ` Frank.Li
2026-07-18 14:57 ` sashiko-bot
2026-07-18 14:45 ` [PATCH v2 3/4] dt-bindings: display: lcdif: Allow display0 child node for i.MX6UL Frank.Li
2026-07-18 14:45 ` [PATCH v2 4/4] ARM: dts: imx6ul-tx6ul: rename disp0 to display0 Frank.Li
3 siblings, 1 reply; 7+ messages in thread
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
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 [flat|nested] 7+ messages in thread* Re: [PATCH v2 2/4] dt-bindings: soc: imx-iomuxc-gpr: allow bridge@18 as child node
2026-07-18 14:45 ` [PATCH v2 2/4] dt-bindings: soc: imx-iomuxc-gpr: allow bridge@18 as child node Frank.Li
@ 2026-07-18 14:57 ` sashiko-bot
0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-07-18 14:57 UTC (permalink / raw)
To: Frank.Li; +Cc: robh, devicetree, Frank.Li, imx, dri-devel, conor+dt
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 [flat|nested] 7+ messages in thread
* [PATCH v2 3/4] dt-bindings: display: lcdif: Allow display0 child node for i.MX6UL
2026-07-18 14:45 [PATCH v2 0/4] ARM: dts: imx: fix ldb related CHECK_DTBS warnings Frank.Li
2026-07-18 14:45 ` [PATCH v2 1/4] dt-bindings: display: bridge: ldb: allow a single reg for fsl,imx6sx-ldb Frank.Li
2026-07-18 14:45 ` [PATCH v2 2/4] dt-bindings: soc: imx-iomuxc-gpr: allow bridge@18 as child node Frank.Li
@ 2026-07-18 14:45 ` Frank.Li
2026-07-18 14:57 ` sashiko-bot
2026-07-18 14:45 ` [PATCH v2 4/4] ARM: dts: imx6ul-tx6ul: rename disp0 to display0 Frank.Li
3 siblings, 1 reply; 7+ messages in thread
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
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 [flat|nested] 7+ messages in thread* Re: [PATCH v2 3/4] dt-bindings: display: lcdif: Allow display0 child node for i.MX6UL
2026-07-18 14:45 ` [PATCH v2 3/4] dt-bindings: display: lcdif: Allow display0 child node for i.MX6UL Frank.Li
@ 2026-07-18 14:57 ` sashiko-bot
0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-07-18 14:57 UTC (permalink / raw)
To: Frank.Li; +Cc: devicetree, Frank.Li, imx, conor+dt, dri-devel, robh
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 [flat|nested] 7+ messages in thread
* [PATCH v2 4/4] ARM: dts: imx6ul-tx6ul: rename disp0 to display0
2026-07-18 14:45 [PATCH v2 0/4] ARM: dts: imx: fix ldb related CHECK_DTBS warnings Frank.Li
` (2 preceding siblings ...)
2026-07-18 14:45 ` [PATCH v2 3/4] dt-bindings: display: lcdif: Allow display0 child node for i.MX6UL Frank.Li
@ 2026-07-18 14:45 ` Frank.Li
3 siblings, 0 replies; 7+ messages in thread
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
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 [flat|nested] 7+ messages in thread