* [PATCH 1/6] dt-bindings: lcdif: add compatible string for i.MX8QXP and i.MX8DXL
2026-07-14 13:58 [PATCH 0/6] display: lcdif: imx: add display support for imx8dxl and imx8qxp Frank.Li
@ 2026-07-14 13:58 ` Frank.Li
2026-07-14 14:12 ` sashiko-bot
2026-07-14 13:58 ` [PATCH 2/6] dt-bindings: display: simple: Add waiken,101wx001 Frank.Li
` (4 subsequent siblings)
5 siblings, 1 reply; 11+ messages in thread
From: Frank.Li @ 2026-07-14 13:58 UTC (permalink / raw)
To: Marek Vasut, Stefan Agner, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Neil Armstrong, Jessica Zhang,
Thierry Reding, Sam Ravnborg, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: dri-devel, devicetree, linux-kernel, imx, linux-arm-kernel,
Robert Chiras, Liu Ying, Frank Li
From: Frank Li <Frank.Li@nxp.com>
i.MX8QXP and i.MX8DXL have lcdif, which back compatible with i.MX6SX. Add
front compatible string "fsl,imx8dxl-lcdif" and "fsl,imx8qxp-lcdif", which
fallback to "fsl,imx6sx-lcdif".
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
Documentation/devicetree/bindings/display/fsl,lcdif.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/fsl,lcdif.yaml b/Documentation/devicetree/bindings/display/fsl,lcdif.yaml
index 2dd0411ec6516..121c1b220e698 100644
--- a/Documentation/devicetree/bindings/display/fsl,lcdif.yaml
+++ b/Documentation/devicetree/bindings/display/fsl,lcdif.yaml
@@ -28,9 +28,11 @@ properties:
- fsl,imx6sll-lcdif
- fsl,imx6ul-lcdif
- fsl,imx7d-lcdif
+ - fsl,imx8dxl-lcdif
- fsl,imx8mm-lcdif
- fsl,imx8mn-lcdif
- fsl,imx8mq-lcdif
+ - fsl,imx8qxp-lcdif
- const: fsl,imx6sx-lcdif
reg:
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH 1/6] dt-bindings: lcdif: add compatible string for i.MX8QXP and i.MX8DXL
2026-07-14 13:58 ` [PATCH 1/6] dt-bindings: lcdif: add compatible string for i.MX8QXP and i.MX8DXL Frank.Li
@ 2026-07-14 14:12 ` sashiko-bot
0 siblings, 0 replies; 11+ messages in thread
From: sashiko-bot @ 2026-07-14 14:12 UTC (permalink / raw)
To: Frank.Li; +Cc: conor+dt, devicetree, dri-devel, Frank.Li, robh, imx
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Missing `power-domains` requirement for the newly added `fsl,imx8dxl-lcdif` and `fsl,imx8qxp-lcdif` compatible strings.
--
--- Patch [1]: [PATCH 1/6] dt-bindings: lcdif: add compatible string for i.MX8QXP and i.MX8DXL ---
commit 684d2e523ad2d6b2b8e88a7b19f827e3689efd97
Author: Frank Li <Frank.Li@nxp.com>
dt-bindings: lcdif: add compatible string for i.MX8QXP and i.MX8DXL
i.MX8QXP and i.MX8DXL have lcdif, which back compatible with i.MX6SX. Add
front compatible string "fsl,imx8dxl-lcdif" and "fsl,imx8qxp-lcdif", which
fallback to "fsl,imx6sx-lcdif".
> diff --git a/Documentation/devicetree/bindings/display/fsl,lcdif.yaml b/Documentation/devicetree/bindings/display/fsl,lcdif.yaml
> index 2dd0411ec6516..121c1b220e698 100644
> --- a/Documentation/devicetree/bindings/display/fsl,lcdif.yaml
> +++ b/Documentation/devicetree/bindings/display/fsl,lcdif.yaml
> @@ -28,9 +28,11 @@ properties:
> - fsl,imx6sll-lcdif
> - fsl,imx6ul-lcdif
> - fsl,imx7d-lcdif
> + - fsl,imx8dxl-lcdif
> - fsl,imx8mm-lcdif
> - fsl,imx8mn-lcdif
> - fsl,imx8mq-lcdif
> + - fsl,imx8qxp-lcdif
> - const: fsl,imx6sx-lcdif
[Severity: Medium]
Will these newly added compatible strings also need to be included in the
conditional block enforcing the power-domains property?
Since these are SCU-based platforms that strictly require power domains (like
IMX_SC_R_LCD_0), a device tree missing the power-domains property would
silently pass validation but fail to power up at runtime.
The existing schema enforces power domains via this allOf block, which does
not match the new compatible strings:
allOf:
...
- if:
properties:
compatible:
contains:
enum:
- fsl,imx6sl-lcdif
- fsl,imx8mm-lcdif
- fsl,imx8mn-lcdif
- fsl,imx8mp-lcdif
- fsl,imx93-lcdif
then:
required:
- power-domains
Because the new compatible strings are paired with the fsl,imx6sx-lcdif
fallback as an array, they will also bypass the const: fsl,imx6sx-lcdif check
found earlier in the file.
Should fsl,imx8dxl-lcdif and fsl,imx8qxp-lcdif be added to the enum above so
the requirement is properly enforced?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260714-dxl_lcdif-v1-0-6761a8a6592b@nxp.com?part=1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 2/6] dt-bindings: display: simple: Add waiken,101wx001
2026-07-14 13:58 [PATCH 0/6] display: lcdif: imx: add display support for imx8dxl and imx8qxp Frank.Li
2026-07-14 13:58 ` [PATCH 1/6] dt-bindings: lcdif: add compatible string for i.MX8QXP and i.MX8DXL Frank.Li
@ 2026-07-14 13:58 ` Frank.Li
2026-07-14 13:58 ` [PATCH 3/6] drm/panel: simple: Add waiken WKS101WX001-WCT support Frank.Li
` (3 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Frank.Li @ 2026-07-14 13:58 UTC (permalink / raw)
To: Marek Vasut, Stefan Agner, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Neil Armstrong, Jessica Zhang,
Thierry Reding, Sam Ravnborg, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: dri-devel, devicetree, linux-kernel, imx, linux-arm-kernel,
Robert Chiras, Liu Ying, Frank Li
From: Frank Li <Frank.Li@nxp.com>
Add WKS101WX001-WCT panel, which is an industrial-grade 10.1-inch IPS TFT
LCD capacitive touch screen display module.
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
Documentation/devicetree/bindings/display/panel/panel-simple.yaml | 2 ++
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
2 files changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
index 21453f0d7ce22..01da44ed3e20a 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
+++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
@@ -349,6 +349,8 @@ properties:
- vivax,tpc9150-panel
# VXT 800x480 color TFT LCD panel
- vxt,vl050-8048nt-c01
+ # waiken 10.1-inch IPS TFT LCD panel with capacitive touch
+ - waiken,101wx001
# Waveshare 10.1" WXGA (1280x800) LCD panel
- waveshare,10.1inch-c-panel
# Waveshare 11.9" (320x1480) LCD panel
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index 396044f368e7c..38d6765ed62ed 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -1833,6 +1833,8 @@ patternProperties:
description: VXT Ltd
"^wacom,.*":
description: Wacom
+ "^waiken,.*":
+ description: Waiken Technology Co.
"^wanchanglong,.*":
description: Wanchanglong Electronics Technology(SHENZHEN)Co.,Ltd.
"^wand,.*":
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH 3/6] drm/panel: simple: Add waiken WKS101WX001-WCT support
2026-07-14 13:58 [PATCH 0/6] display: lcdif: imx: add display support for imx8dxl and imx8qxp Frank.Li
2026-07-14 13:58 ` [PATCH 1/6] dt-bindings: lcdif: add compatible string for i.MX8QXP and i.MX8DXL Frank.Li
2026-07-14 13:58 ` [PATCH 2/6] dt-bindings: display: simple: Add waiken,101wx001 Frank.Li
@ 2026-07-14 13:58 ` Frank.Li
2026-07-14 14:04 ` sashiko-bot
2026-07-14 13:58 ` [PATCH 4/6] arm64: dts: imx8-ss-dma: Add lcdif support for i.MX8QXP and i.MX8DXL Frank.Li
` (2 subsequent siblings)
5 siblings, 1 reply; 11+ messages in thread
From: Frank.Li @ 2026-07-14 13:58 UTC (permalink / raw)
To: Marek Vasut, Stefan Agner, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Neil Armstrong, Jessica Zhang,
Thierry Reding, Sam Ravnborg, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: dri-devel, devicetree, linux-kernel, imx, linux-arm-kernel,
Robert Chiras, Liu Ying, Frank Li
From: Frank Li <Frank.Li@nxp.com>
Add support for WKS101WX001-WCT panel, which is an industrial-grade
10.1-inch IPS TFT LCD capacitive touch screen display module.
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
drivers/gpu/drm/panel/panel-simple.c | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index c09bf3db5e78a..26fd150aa4454 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -5171,6 +5171,34 @@ static const struct panel_desc vl050_8048nt_c01 = {
.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE,
};
+static const struct drm_display_mode waiken_101wx001_mode = {
+ .clock = 71100,
+ .hdisplay = 1280,
+ .hsync_start = 1280 + 70,
+ .hsync_end = 1280 + 70 + 10,
+ .htotal = 1280 + 70 + 10 + 80,
+ .vdisplay = 800,
+ .vsync_start = 800 + 10,
+ .vsync_end = 800 + 10 + 3,
+ .vtotal = 800 + 10 + 3 + 10,
+ .width_mm = 217,
+ .height_mm = 135,
+ .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
+};
+
+static const struct panel_desc waiken_101wx001_panel = {
+ .modes = &waiken_101wx001_mode,
+ .num_modes = 1,
+ .bpc = 6,
+ .size = {
+ .width = 217,
+ .height = 136,
+ },
+ .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
+ .connector_type = DRM_MODE_CONNECTOR_DPI,
+ .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE,
+};
+
static const struct drm_display_mode waveshare_28_lcd_mode = {
.clock = 50000,
.hdisplay = 480,
@@ -6155,6 +6183,9 @@ static const struct of_device_id platform_of_match[] = {
}, {
.compatible = "vxt,vl050-8048nt-c01",
.data = &vl050_8048nt_c01,
+ }, {
+ .compatible = "waiken,101wx001",
+ .data = &waiken_101wx001_panel,
}, {
.compatible = "waveshare,2.8inch-panel",
.data = &waveshare_28_lcd_panel
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH 3/6] drm/panel: simple: Add waiken WKS101WX001-WCT support
2026-07-14 13:58 ` [PATCH 3/6] drm/panel: simple: Add waiken WKS101WX001-WCT support Frank.Li
@ 2026-07-14 14:04 ` sashiko-bot
0 siblings, 0 replies; 11+ messages in thread
From: sashiko-bot @ 2026-07-14 14:04 UTC (permalink / raw)
To: Frank.Li; +Cc: robh, Frank.Li, imx, conor+dt, devicetree, dri-devel
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] Mismatch in physical height specification between the display mode and the panel description.
--
--- Patch [3]: [PATCH 3/6] drm/panel: simple: Add waiken WKS101WX001-WCT support ---
commit 3308303d1b9690b2cd880fcdaaf60adb3ce4cea7
Author: Frank Li <Frank.Li@nxp.com>
drm/panel: simple: Add waiken WKS101WX001-WCT support
This commit adds support for the waiken WKS101WX001-WCT panel, which is an
industrial-grade 10.1-inch IPS TFT LCD capacitive touch screen display
module.
> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> index c09bf3db5e78a..26fd150aa4454 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
[ ... ]
> +static const struct drm_display_mode waiken_101wx001_mode = {
> + .clock = 71100,
> + .hdisplay = 1280,
> + .hsync_start = 1280 + 70,
> + .hsync_end = 1280 + 70 + 10,
> + .htotal = 1280 + 70 + 10 + 80,
> + .vdisplay = 800,
> + .vsync_start = 800 + 10,
> + .vsync_end = 800 + 10 + 3,
> + .vtotal = 800 + 10 + 3 + 10,
> + .width_mm = 217,
> + .height_mm = 135,
> + .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
> +};
> +
> +static const struct panel_desc waiken_101wx001_panel = {
> + .modes = &waiken_101wx001_mode,
> + .num_modes = 1,
> + .bpc = 6,
> + .size = {
> + .width = 217,
> + .height = 136,
[Severity: Low]
Is there a reason the physical height differs between the display mode and the
panel descriptor?
In waiken_101wx001_mode, height_mm is set to 135, but here in
waiken_101wx001_panel the size.height is set to 136. This mismatch will
cause userspace applications querying DRM properties to receive inconsistent
dimension values depending on whether they read connector or mode properties.
> + },
> + .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
> + .connector_type = DRM_MODE_CONNECTOR_DPI,
> + .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE,
> +};
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260714-dxl_lcdif-v1-0-6761a8a6592b@nxp.com?part=3
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 4/6] arm64: dts: imx8-ss-dma: Add lcdif support for i.MX8QXP and i.MX8DXL
2026-07-14 13:58 [PATCH 0/6] display: lcdif: imx: add display support for imx8dxl and imx8qxp Frank.Li
` (2 preceding siblings ...)
2026-07-14 13:58 ` [PATCH 3/6] drm/panel: simple: Add waiken WKS101WX001-WCT support Frank.Li
@ 2026-07-14 13:58 ` Frank.Li
2026-07-14 14:19 ` sashiko-bot
2026-07-14 13:58 ` [PATCH 5/6] arm64: dts: imx8dxl-evk: Add onboard GPIO mux controller Frank.Li
2026-07-14 13:58 ` [PATCH 6/6] arm64: dts: imx8dxl-evk: add lcdif overlay Frank.Li
5 siblings, 1 reply; 11+ messages in thread
From: Frank.Li @ 2026-07-14 13:58 UTC (permalink / raw)
To: Marek Vasut, Stefan Agner, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Neil Armstrong, Jessica Zhang,
Thierry Reding, Sam Ravnborg, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: dri-devel, devicetree, linux-kernel, imx, linux-arm-kernel,
Robert Chiras, Liu Ying, Frank Li
From: Frank Li <Frank.Li@nxp.com>
Add lcdif support for i.MX8QXP and i.MX8DXL.
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8-ss-dma.dtsi | 29 ++++++++++++++++++++++
arch/arm64/boot/dts/freescale/imx8dxl-ss-adma.dtsi | 11 ++++++++
2 files changed, 40 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx8-ss-dma.dtsi b/arch/arm64/boot/dts/freescale/imx8-ss-dma.dtsi
index 4de78f870c05c..87082c3fa9338 100644
--- a/arch/arm64/boot/dts/freescale/imx8-ss-dma.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8-ss-dma.dtsi
@@ -149,6 +149,24 @@ lpuart3: serial@5a090000 {
status = "disabled";
};
+ adma_lcdif: lcdif@5a180000 {
+ compatible = "fsl,imx8qxp-lcdif", "fsl,imx6sx-lcdif";
+ reg = <0x5a180000 0x10000>;
+ clocks = <&lcd_clk_lpcg IMX_LPCG_CLK_0>,
+ <&lcd_clk_lpcg IMX_LPCG_CLK_4>,
+ <&clk IMX_SC_R_LCD_0 IMX_SC_PM_CLK_MISC0>;
+ clock-names = "pix", "axi", "disp_axi";
+ assigned-clocks = <&clk IMX_SC_R_LCD_0 IMX_SC_PM_CLK_PER>,
+ <&clk IMX_SC_R_LCD_0 IMX_SC_PM_CLK_MISC0>,
+ <&clk IMX_SC_R_ELCDIF_PLL IMX_SC_PM_CLK_PLL>;
+ assigned-clock-parents = <&clk IMX_SC_R_ELCDIF_PLL IMX_SC_PM_CLK_PLL>,
+ <&clk IMX_SC_R_LCD_0 IMX_SC_PM_CLK_BYPASS>;
+ assigned-clock-rates = <0>, <24000000>, <804000000>;
+ interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
+ power-domains = <&pd IMX_SC_R_LCD_0>;
+ status = "disabled";
+ };
+
adma_pwm: pwm@5a190000 {
compatible = "fsl,imx8qxp-pwm", "fsl,imx27-pwm";
reg = <0x5a190000 0x1000>;
@@ -298,6 +316,17 @@ uart3_lpcg: clock-controller@5a490000 {
power-domains = <&pd IMX_SC_R_UART_3>;
};
+ lcd_clk_lpcg: clock-controller@5a580000 {
+ compatible = "fsl,imx8qxp-lpcg";
+ reg = <0x5a580000 0x4>;
+ #clock-cells = <1>;
+ clocks = <&clk IMX_SC_R_LCD_0 IMX_SC_PM_CLK_PER>,
+ <&dma_ipg_clk>;
+ clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+ clock-output-names = "lcd_clk_lpcg", "lcd_ipg_clk";
+ power-domains = <&pd IMX_SC_R_LCD_0>;
+ };
+
adma_pwm_lpcg: clock-controller@5a590000 {
compatible = "fsl,imx8qxp-lpcg";
reg = <0x5a590000 0x10000>;
diff --git a/arch/arm64/boot/dts/freescale/imx8dxl-ss-adma.dtsi b/arch/arm64/boot/dts/freescale/imx8dxl-ss-adma.dtsi
index 7a191195dbd97..febf5f8b54ac4 100644
--- a/arch/arm64/boot/dts/freescale/imx8dxl-ss-adma.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8dxl-ss-adma.dtsi
@@ -60,6 +60,17 @@ &acm {
"sai3_rx_bclk";
};
+&adma_lcdif {
+ compatible = "fsl,imx8dxl-lcdif", "fsl,imx6sx-lcdif";
+ assigned-clocks = <&clk IMX_SC_R_LCD_0 IMX_SC_PM_CLK_PER>,
+ <&clk IMX_SC_R_LCD_0 IMX_SC_PM_CLK_MISC0>,
+ <&clk IMX_SC_R_ELCDIF_PLL IMX_SC_PM_CLK_PLL>;
+ assigned-clock-parents = <&clk IMX_SC_R_ELCDIF_PLL IMX_SC_PM_CLK_PLL>,
+ <&clk IMX_SC_R_LCD_0 IMX_SC_PM_CLK_BYPASS>;
+ assigned-clock-rates = <0>, <24000000>, <711000000>;
+ interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
+};
+
&audio_ipg_clk {
clock-frequency = <160000000>;
};
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH 4/6] arm64: dts: imx8-ss-dma: Add lcdif support for i.MX8QXP and i.MX8DXL
2026-07-14 13:58 ` [PATCH 4/6] arm64: dts: imx8-ss-dma: Add lcdif support for i.MX8QXP and i.MX8DXL Frank.Li
@ 2026-07-14 14:19 ` sashiko-bot
0 siblings, 0 replies; 11+ messages in thread
From: sashiko-bot @ 2026-07-14 14:19 UTC (permalink / raw)
To: Frank.Li; +Cc: imx, robh, devicetree, Frank.Li, dri-devel, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] Missing mandatory 'port' node in adma_lcdif device tree node
--
--- Patch [4]: [PATCH 4/6] arm64: dts: imx8-ss-dma: Add lcdif support for i.MX8QXP and i.MX8DXL ---
commit d68882cf2077caac27f3b49fce6a1c236c79be4a
Author: Frank Li <Frank.Li@nxp.com>
arm64: dts: imx8-ss-dma: Add lcdif support for i.MX8QXP and i.MX8DXL
This commit adds lcdif device tree nodes for the i.MX8QXP and i.MX8DXL
platforms.
> diff --git a/arch/arm64/boot/dts/freescale/imx8-ss-dma.dtsi b/arch/arm64/boot/dts/freescale/imx8-ss-dma.dtsi
> --- a/arch/arm64/boot/dts/freescale/imx8-ss-dma.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8-ss-dma.dtsi
[ ... ]
> @@ -149,6 +149,24 @@ lpuart3: serial@5a090000 {
> status = "disabled";
> };
>
> + adma_lcdif: lcdif@5a180000 {
> + compatible = "fsl,imx8qxp-lcdif", "fsl,imx6sx-lcdif";
> + reg = <0x5a180000 0x10000>;
> + clocks = <&lcd_clk_lpcg IMX_LPCG_CLK_0>,
> + <&lcd_clk_lpcg IMX_LPCG_CLK_4>,
> + <&clk IMX_SC_R_LCD_0 IMX_SC_PM_CLK_MISC0>;
> + clock-names = "pix", "axi", "disp_axi";
> + assigned-clocks = <&clk IMX_SC_R_LCD_0 IMX_SC_PM_CLK_PER>,
> + <&clk IMX_SC_R_LCD_0 IMX_SC_PM_CLK_MISC0>,
> + <&clk IMX_SC_R_ELCDIF_PLL IMX_SC_PM_CLK_PLL>;
> + assigned-clock-parents = <&clk IMX_SC_R_ELCDIF_PLL IMX_SC_PM_CLK_PLL>,
> + <&clk IMX_SC_R_LCD_0 IMX_SC_PM_CLK_BYPASS>;
> + assigned-clock-rates = <0>, <24000000>, <804000000>;
> + interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
> + power-domains = <&pd IMX_SC_R_LCD_0>;
> + status = "disabled";
> + };
[Severity: Low]
Will this trigger a dtbs_check warning due to a missing port node?
Looking at the fsl,lcdif.yaml binding schema, it appears a port node is
strictly required for any compatible other than fsl,imx28-lcdif. Since
dtbs_check validates all nodes against the schema even when their status is
disabled, will omitting the port node here introduce a new validation
warning indicating that port is a required property?
Could this node include an empty port node, or should the schema be updated
to make the port property optional for disabled nodes?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260714-dxl_lcdif-v1-0-6761a8a6592b@nxp.com?part=4
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 5/6] arm64: dts: imx8dxl-evk: Add onboard GPIO mux controller
2026-07-14 13:58 [PATCH 0/6] display: lcdif: imx: add display support for imx8dxl and imx8qxp Frank.Li
` (3 preceding siblings ...)
2026-07-14 13:58 ` [PATCH 4/6] arm64: dts: imx8-ss-dma: Add lcdif support for i.MX8QXP and i.MX8DXL Frank.Li
@ 2026-07-14 13:58 ` Frank.Li
2026-07-14 13:58 ` [PATCH 6/6] arm64: dts: imx8dxl-evk: add lcdif overlay Frank.Li
5 siblings, 0 replies; 11+ messages in thread
From: Frank.Li @ 2026-07-14 13:58 UTC (permalink / raw)
To: Marek Vasut, Stefan Agner, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Neil Armstrong, Jessica Zhang,
Thierry Reding, Sam Ravnborg, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: dri-devel, devicetree, linux-kernel, imx, linux-arm-kernel,
Robert Chiras, Liu Ying, Frank Li
From: Frank Li <Frank.Li@nxp.com>
Add a GPIO mux controller to describe the onboard signal multiplexer.
Previously, the device tree relied on the hardware reset defaults to
select the mux state. Now that the kernel supports the pinctrl-multiplexer
framework, describe the onboard mux explicitly and let the kernel configure
the required routing.
Prepare for additional device tree overlays that require different mux
configurations.
Remove the regulator-m2uart1sel node, which incorrectly modeled the board
mux as a regulator.
There are no backward compatibility concerns, as the affected functions
(lpuart1 for Bluetooth, spi3, and m4_lpuart) are not used by existing other
users such as U-Boot.
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8dxl-evk.dts | 76 +++++++++++++++++++++++----
1 file changed, 65 insertions(+), 11 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts b/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
index 78e8d41e67916..33941645641f5 100644
--- a/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
@@ -97,14 +97,68 @@ vdevbuffer: memory-vdevbuffer@90400000 {
};
};
- m2_uart1_sel: regulator-m2uart1sel {
- compatible = "regulator-fixed";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-name = "m2_uart1_sel";
- gpio = <&pca6416_1 6 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- regulator-always-on;
+ m4_debug_mux: mux-controller-0 {
+ compatible = "gpio-mux";
+ #mux-control-cells = <0>;
+ #mux-state-cells = <1>;
+ mux-gpios = <&pca6416_1 3 GPIO_ACTIVE_HIGH>;
+ };
+
+ spi3_mux: mux-controller-1 {
+ compatible = "gpio-mux";
+ #mux-control-cells = <0>;
+ #mux-state-cells = <1>;
+ mux-gpios = <&pca6416_1 4 GPIO_ACTIVE_HIGH>;
+ };
+
+ uart1_mux: mux-controller-2 {
+ compatible = "gpio-mux";
+ #mux-control-cells = <0>;
+ #mux-state-cells = <1>;
+ mux-gpios = <&pca6416_1 6 GPIO_ACTIVE_HIGH>;
+ };
+
+ spi0_mux: mux-controller-3 {
+ compatible = "gpio-mux";
+ #mux-control-cells = <0>;
+ #mux-state-cells = <1>;
+ mux-gpios = <&pca6416_1 7 GPIO_ACTIVE_HIGH>;
+ };
+
+ pinctrl-gpiomux {
+ compatible = "pinctrl-multiplexer";
+
+ m4_debug_fun: cm4-uart-grp {
+ mux-states = <&m4_debug_mux 1>;
+ };
+
+ spi0_fun: spi0-grp {
+ mux-states = <&spi0_mux 1>;
+ };
+
+ spi3_fun: spi3-grp {
+ mux-states = <&spi3_mux 1>;
+ };
+
+ uart1_fun: uart1-grp {
+ mux-states = <&uart1_mux 1>;
+ };
+
+ lcd_0_fun: lcd0-grp {
+ mux-states = <&spi0_mux 0>;
+ };
+
+ lcd_1_fun: lcd1-grp {
+ mux-states = <&spi3_mux 0>;
+ };
+
+ lcd_2_fun: lcd2-grp {
+ mux-states = <&uart1_mux 0>;
+ };
+
+ lcd_3_fun: lcd3-grp {
+ mux-states = <&m4_debug_mux 0>;
+ };
};
mux3_en: regulator-0 {
@@ -620,7 +674,7 @@ &lpuart0 {
&lpuart1 {
pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_lpuart1>;
+ pinctrl-0 = <&pinctrl_lpuart1>, <&uart1_fun>;
status = "okay";
bluetooth {
@@ -658,7 +712,7 @@ &cm40_intmux {
&cm40_lpuart {
pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_cm40_lpuart>;
+ pinctrl-0 = <&pinctrl_cm40_lpuart>, <&m4_debug_fun>;
status = "disabled";
};
@@ -876,7 +930,7 @@ &usdhc2 {
&lpspi3 {
fsl,spi-only-use-cs1-sel;
pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_lpspi3>;
+ pinctrl-0 = <&pinctrl_lpspi3>, <&spi3_fun>;
status = "okay";
};
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH 6/6] arm64: dts: imx8dxl-evk: add lcdif overlay
2026-07-14 13:58 [PATCH 0/6] display: lcdif: imx: add display support for imx8dxl and imx8qxp Frank.Li
` (4 preceding siblings ...)
2026-07-14 13:58 ` [PATCH 5/6] arm64: dts: imx8dxl-evk: Add onboard GPIO mux controller Frank.Li
@ 2026-07-14 13:58 ` Frank.Li
2026-07-14 14:16 ` sashiko-bot
5 siblings, 1 reply; 11+ messages in thread
From: Frank.Li @ 2026-07-14 13:58 UTC (permalink / raw)
To: Marek Vasut, Stefan Agner, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Neil Armstrong, Jessica Zhang,
Thierry Reding, Sam Ravnborg, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: dri-devel, devicetree, linux-kernel, imx, linux-arm-kernel,
Robert Chiras, Liu Ying, Frank Li
From: Frank Li <Frank.Li@nxp.com>
Add lcd panel (waiken,101wx001) support.
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
arch/arm64/boot/dts/freescale/Makefile | 3 +
.../boot/dts/freescale/imx8dxl-evk-lcdif.dtso | 114 +++++++++++++++++++++
2 files changed, 117 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 8ddaab127ab9c..aef7bc3292484 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -111,6 +111,9 @@ dtb-$(CONFIG_ARCH_MXC) += imx8dx-colibri-iris-v2.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8dx-colibri-iris.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8dxl-evk.dtb
+imx8dxl-evk-lcdif-dtbs += imx8dxl-evk.dtb imx8dxl-evk-lcdif.dtbo
+dtb-$(CONFIG_ARCH_MXC) += imx8dxl-evk-lcdif.dtb
+
imx8dxl-evk-pcie-ep-dtbs += imx8dxl-evk.dtb imx-pcie0-ep.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx8dxl-evk-pcie-ep.dtb
DTC_FLAGS_imx8dxl-hummingboard-telematics := -@
diff --git a/arch/arm64/boot/dts/freescale/imx8dxl-evk-lcdif.dtso b/arch/arm64/boot/dts/freescale/imx8dxl-evk-lcdif.dtso
new file mode 100644
index 0000000000000..c0e573fb5f915
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8dxl-evk-lcdif.dtso
@@ -0,0 +1,114 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2026 NXP.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/pads-imx8dxl.h>
+
+&{/} {
+ lcd_backlight: backlight {
+ compatible = "gpio-backlight";
+ gpios = <&pca6416_1 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ lcd-panel {
+ compatible = "waiken,101wx001";
+ backlight = <&lcd_backlight>;
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&lcdif_out>;
+ };
+ };
+ };
+};
+
+&adma_lcdif {
+ pinctrl-0 = <&pinctrl_lcdif>, <&lcd_0_fun>, <&lcd_1_fun>, <&lcd_2_fun>, <&lcd_3_fun>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ port {
+ lcdif_out: endpoint {
+ remote-endpoint = <&panel_in>;
+ };
+ };
+};
+
+&cm40_lpuart {
+ status = "disabled";
+};
+
+&eqos {
+ status = "disabled";
+};
+
+&iomuxc {
+ pinctrl_hog: hoggrp {
+ fsl,pins = <
+ IMX8DXL_COMP_CTL_GPIO_1V8_3V3_GPIORHB_PAD 0x000514a0
+ >;
+ };
+};
+
+&iomuxc {
+ pinctrl_lcdif: lcdifgrp {
+ fsl,pins = <
+ IMX8DXL_SPI3_SCK_ADMA_LCDIF_D00 0xe8000023
+ IMX8DXL_SPI3_SDO_ADMA_LCDIF_D01 0xe8000023
+ IMX8DXL_SPI3_SDI_ADMA_LCDIF_D02 0xe8000023
+ IMX8DXL_ENET1_RGMII_TXD3_ADMA_LCDIF_D03 0xd0000023
+ IMX8DXL_UART1_TX_ADMA_LCDIF_D04 0xe8000023
+ IMX8DXL_UART1_RX_ADMA_LCDIF_D05 0xe8000023
+ IMX8DXL_UART1_RTS_B_ADMA_LCDIF_D06 0xe8000023
+ IMX8DXL_UART1_CTS_B_ADMA_LCDIF_D07 0xe8000023
+ IMX8DXL_SPI0_SCK_ADMA_LCDIF_D08 0xe8000023
+ IMX8DXL_SPI0_SDI_ADMA_LCDIF_D09 0xe8000023
+ IMX8DXL_SPI0_SDO_ADMA_LCDIF_D10 0xe8000023
+ IMX8DXL_SPI0_CS1_ADMA_LCDIF_D11 0xe8000023
+ IMX8DXL_SPI0_CS0_ADMA_LCDIF_D12 0xe8000023
+ IMX8DXL_ADC_IN1_ADMA_LCDIF_D13 0xe8200003
+ IMX8DXL_ADC_IN0_ADMA_LCDIF_D14 0xe8200003
+ IMX8DXL_ADC_IN3_ADMA_LCDIF_D15 0xe8200003
+ IMX8DXL_ADC_IN2_ADMA_LCDIF_D16 0xe8200003
+ IMX8DXL_ADC_IN5_ADMA_LCDIF_D17 0xe8200003
+ IMX8DXL_SPI3_CS0_ADMA_LCDIF_HSYNC 0xd0000023
+ IMX8DXL_SPI3_CS1_ADMA_LCDIF_RESET 0xd0000023
+ IMX8DXL_MCLK_IN1_ADMA_LCDIF_EN 0xd0000023
+ IMX8DXL_MCLK_IN0_ADMA_LCDIF_VSYNC 0xd0000023
+ IMX8DXL_MCLK_OUT0_ADMA_LCDIF_CLK 0xd0000023
+ >;
+ };
+};
+
+&lpspi3 {
+ status = "disabled";
+};
+
+&lpuart1 {
+ status = "disabled";
+};
+
+&sai0 {
+ status = "disabled";
+};
+
+&sai1 {
+ status = "disabled";
+};
+
+&wm8960_1 {
+ status = "disabled";
+};
+
+&wm8960_2 {
+ status = "disabled";
+};
+
+&wm8960_3 {
+ status = "disabled";
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH 6/6] arm64: dts: imx8dxl-evk: add lcdif overlay
2026-07-14 13:58 ` [PATCH 6/6] arm64: dts: imx8dxl-evk: add lcdif overlay Frank.Li
@ 2026-07-14 14:16 ` sashiko-bot
0 siblings, 0 replies; 11+ messages in thread
From: sashiko-bot @ 2026-07-14 14:16 UTC (permalink / raw)
To: Frank.Li; +Cc: Frank.Li, robh, conor+dt, imx, dri-devel, devicetree
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Overwriting `fsl,pins` in `pinctrl_hog` drops required system pin configurations, breaking GPIO expander interrupts.
--
--- Patch [6]: [PATCH 6/6] arm64: dts: imx8dxl-evk: add lcdif overlay ---
commit 85ecae823587c53fd00cdb23710f7c3efd6f900e
Author: Frank Li <Frank.Li@nxp.com>
arm64: dts: imx8dxl-evk: add lcdif overlay
This commit adds device tree overlay support for the waiken,101wx001 LCD
panel on the imx8dxl-evk. It adds the overlay to the Makefile and
introduces the new .dtso file that disables conflicting peripherals and
reconfigures pinmuxes for LCDIF.
> diff --git a/arch/arm64/boot/dts/freescale/imx8dxl-evk-lcdif.dtso b/arch/arm64/boot/dts/freescale/imx8dxl-evk-lcdif.dtso
> new file mode 100644
> index 0000000000000..c0e573fb5f915
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx8dxl-evk-lcdif.dtso
[ ... ]
> +&iomuxc {
> + pinctrl_hog: hoggrp {
> + fsl,pins = <
> + IMX8DXL_COMP_CTL_GPIO_1V8_3V3_GPIORHB_PAD 0x000514a0
> + >;
> + };
> +};
[Severity: High]
Does this unintentionally overwrite the base device tree's fsl,pins array for
pinctrl_hog?
Because device tree overlays replace array properties instead of merging
them, redefining fsl,pins in pinctrl_hog to resolve a pin conflict will drop
the other pins defined in the base tree's 4-pin array.
Specifically, this deletes the mux configurations for
IMX8DXL_COMP_CTL_GPIO_1V8_3V3_GPIORHK_PAD and
IMX8DXL_SNVS_TAMPER_OUT1_LSIO_GPIO2_IO05_IN.
Since LSIO_GPIO2_IO05 serves as the interrupt line for the pca6416_3 I2C GPIO
expander, will dropping this configuration break all interrupts routed through
the expander?
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260714-dxl_lcdif-v1-0-6761a8a6592b@nxp.com?part=6
^ permalink raw reply [flat|nested] 11+ messages in thread