* [PATCH v4 0/9] Add support for i.MX94 DCIF
@ 2025-09-03 12:33 Laurentiu Palcu
2025-09-03 12:33 ` [PATCH v4 1/9] dt-bindings: display: fsl,ldb: Add i.MX94 LDB Laurentiu Palcu
` (4 more replies)
0 siblings, 5 replies; 13+ messages in thread
From: Laurentiu Palcu @ 2025-09-03 12:33 UTC (permalink / raw)
To: imx, Abel Vesa, Peng Fan, Michael Turquette, Stephen Boyd,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
Laurentiu Palcu, Philipp Zabel, Marek Vasut
Cc: Frank Li, linux-clk, devicetree, linux-arm-kernel, linux-kernel,
dri-devel
Hi,
This patch-set adds support for the i.MX94 Display Control Interface.
It depends on Peng Fan's DTS patch [1] that was not yet merged. Also, it
needs the BLK CTL changes [2] that I spinned off from v2 in a different
patchset.
Also, included in the patch-set are a few extra patches that the DCIF
driver depends on for functioning properly:
* 1/9 - 3/9 : add support for i.MX94 to fsl-ldb driver. It also
contains a patch (2/9) from Liu Ying that was already reviewed
and was part of another patch-set ([3]), but was never merged;
v4:
* Addressed remaining DCIF driver comments from Frank;
* Limit the 'ldb' child node only to CSRs compatible with 'nxp,imx94-lvds-csr'
in the binding file. Since LVDS CSRs are a minority, I chose to
use the if:then: construct instead of if:not:then:;
* Remove the '#address-cells' and '#size-cells' from the ldb node, in
imx94.dtsi, as they're not needed;
v3:
* Removed the BLK CTL patches and created a separate patch set [2] for them;
* Collected r-b tags for 1/9, 2/9, 3/9 and 9/9;
* Removed the DCIF QoS functionality until I find a better way to
implement it through syscon. QoS functionality will be added in
subsequent patches. Also, used devm_clk_bulk_get_all() and used
dev_err_probe() as suggested;
* Addressed Frank's and Krzysztof's comments on the DCIF bindings;
* Addressed Frank's comments on dtsi and dts files;
* Added a new binding patch, 6/9, for adding 'ldb' optional property to
nxp,imx95-blk-ctl.yaml;
v2:
* reworked the BLK_CTL patch and split in 2 to make it easier for
review;
* split the dts and dtsi patch in 2 separate ones;
* addressed Frank's comments in DCIF driver;
* addressed Rob's comments for the bindings files;
* addressed a couple of checkpatch issues;
Thanks,
Laurentiu
[1] https://lkml.org/lkml/2025/7/7/84
[2] https://www.spinics.net/lists/kernel/msg5791546.html
[3] https://lkml.org/lkml/2024/11/14/262
Laurentiu Palcu (7):
dt-bindings: display: fsl,ldb: Add i.MX94 LDB
drm/bridge: fsl-ldb: Add support for i.MX94
dt-bindings: display: imx: Add bindings for i.MX94 DCIF
dt-bindings: clock: nxp,imx95-blk-ctl: Add ldb child node
arm64: dts: imx943: Add display pipeline nodes
arm64: dts: imx943-evk: Add display support using IT6263
MAINTAINERS: Add entry for i.MX94 DCIF driver
Liu Ying (1):
drm/bridge: fsl-ldb: Get the next non-panel bridge
Sandor Yu (1):
drm/imx: Add support for i.MX94 DCIF
.../bindings/clock/nxp,imx95-blk-ctl.yaml | 24 +-
.../bindings/display/bridge/fsl,ldb.yaml | 2 +
.../bindings/display/imx/nxp,imx94-dcif.yaml | 82 +++
MAINTAINERS | 9 +
arch/arm64/boot/dts/freescale/imx943-evk.dts | 121 +++
arch/arm64/boot/dts/freescale/imx943.dtsi | 53 +-
drivers/gpu/drm/bridge/fsl-ldb.c | 47 +-
drivers/gpu/drm/imx/Kconfig | 1 +
drivers/gpu/drm/imx/Makefile | 1 +
drivers/gpu/drm/imx/dcif/Kconfig | 15 +
drivers/gpu/drm/imx/dcif/Makefile | 5 +
drivers/gpu/drm/imx/dcif/dcif-crc.c | 211 ++++++
drivers/gpu/drm/imx/dcif/dcif-crc.h | 52 ++
drivers/gpu/drm/imx/dcif/dcif-crtc.c | 695 ++++++++++++++++++
drivers/gpu/drm/imx/dcif/dcif-drv.c | 226 ++++++
drivers/gpu/drm/imx/dcif/dcif-drv.h | 86 +++
drivers/gpu/drm/imx/dcif/dcif-kms.c | 100 +++
drivers/gpu/drm/imx/dcif/dcif-plane.c | 269 +++++++
drivers/gpu/drm/imx/dcif/dcif-reg.h | 267 +++++++
19 files changed, 2243 insertions(+), 23 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml
create mode 100644 drivers/gpu/drm/imx/dcif/Kconfig
create mode 100644 drivers/gpu/drm/imx/dcif/Makefile
create mode 100644 drivers/gpu/drm/imx/dcif/dcif-crc.c
create mode 100644 drivers/gpu/drm/imx/dcif/dcif-crc.h
create mode 100644 drivers/gpu/drm/imx/dcif/dcif-crtc.c
create mode 100644 drivers/gpu/drm/imx/dcif/dcif-drv.c
create mode 100644 drivers/gpu/drm/imx/dcif/dcif-drv.h
create mode 100644 drivers/gpu/drm/imx/dcif/dcif-kms.c
create mode 100644 drivers/gpu/drm/imx/dcif/dcif-plane.c
create mode 100644 drivers/gpu/drm/imx/dcif/dcif-reg.h
--
2.49.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v4 1/9] dt-bindings: display: fsl,ldb: Add i.MX94 LDB
2025-09-03 12:33 [PATCH v4 0/9] Add support for i.MX94 DCIF Laurentiu Palcu
@ 2025-09-03 12:33 ` Laurentiu Palcu
2025-09-03 12:33 ` [PATCH v4 4/9] dt-bindings: display: imx: Add bindings for i.MX94 DCIF Laurentiu Palcu
` (3 subsequent siblings)
4 siblings, 0 replies; 13+ messages in thread
From: Laurentiu Palcu @ 2025-09-03 12:33 UTC (permalink / raw)
To: imx, Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Marek Vasut
Cc: Frank Li, Laurentiu Palcu, dri-devel, devicetree, linux-kernel
i.MX94 has a single LVDS port and share similar LDB and LVDS control
registers as i.MX8MP and i.MX93.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml b/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml
index 07388bf2b90df..a54b8f1478049 100644
--- a/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml
@@ -20,6 +20,7 @@ properties:
- fsl,imx6sx-ldb
- fsl,imx8mp-ldb
- fsl,imx93-ldb
+ - fsl,imx94-ldb
clocks:
maxItems: 1
@@ -68,6 +69,7 @@ allOf:
enum:
- fsl,imx6sx-ldb
- fsl,imx93-ldb
+ - fsl,imx94-ldb
then:
properties:
ports:
--
2.49.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v4 4/9] dt-bindings: display: imx: Add bindings for i.MX94 DCIF
2025-09-03 12:33 [PATCH v4 0/9] Add support for i.MX94 DCIF Laurentiu Palcu
2025-09-03 12:33 ` [PATCH v4 1/9] dt-bindings: display: fsl,ldb: Add i.MX94 LDB Laurentiu Palcu
@ 2025-09-03 12:33 ` Laurentiu Palcu
2025-09-03 15:23 ` Frank Li
2025-09-04 7:24 ` Krzysztof Kozlowski
2025-09-03 12:33 ` [PATCH v4 6/9] dt-bindings: clock: nxp,imx95-blk-ctl: Add ldb child node Laurentiu Palcu
` (2 subsequent siblings)
4 siblings, 2 replies; 13+ messages in thread
From: Laurentiu Palcu @ 2025-09-03 12:33 UTC (permalink / raw)
To: imx, Laurentiu Palcu, Philipp Zabel, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: Frank Li, dri-devel, devicetree, linux-arm-kernel, linux-kernel
DCIF is the i.MX94 Display Controller Interface which is used to
drive a TFT LCD panel or connects to a display interface depending
on the chip configuration.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
---
.../bindings/display/imx/nxp,imx94-dcif.yaml | 82 +++++++++++++++++++
1 file changed, 82 insertions(+)
create mode 100644 Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml
diff --git a/Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml b/Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml
new file mode 100644
index 0000000000000..54419c589ef74
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml
@@ -0,0 +1,82 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright 2025 NXP
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/imx/nxp,imx94-dcif.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: i.MX94 Display Control Interface (DCIF)
+
+maintainers:
+ - Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
+
+description:
+ The Display Control Interface(DCIF) is a system master that fetches graphics
+ stored in memory and displays them on a TFT LCD panel or connects to a
+ display interface depending on the chip configuration.
+
+properties:
+ compatible:
+ const: nxp,imx94-dcif
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ items:
+ - description: CPU domain 0 (controlled by common registers group).
+ - description: CPU domain 1 (controlled by background layer registers group).
+ - description: CPU domain 2 (controlled by foreground layer registers group).
+
+ interrupt-names:
+ items:
+ - const: common
+ - const: bg_layer
+ - const: fg_layer
+
+ clocks:
+ maxItems: 3
+
+ clock-names:
+ items:
+ - const: apb
+ - const: axi
+ - const: pix
+
+ power-domains:
+ maxItems: 1
+
+ port:
+ $ref: /schemas/graph.yaml#/properties/port
+ description: Display Pixel Interface(DPI) output port
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ display-controller@4b120000 {
+ compatible = "nxp,imx94-dcif";
+ reg = <0x0 0x4b120000 0x0 0x300000>;
+ interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "common", "bg_layer", "fg_layer";
+ clocks = <&scmi_clk 69>, <&scmi_clk 70>, <&dispmix_csr 0>;
+ clock-names = "apb", "axi", "pix";
+ assigned-clocks = <&dispmix_csr 0>;
+ assigned-clock-parents = <&ldb_pll_pixel>;
+ power-domains = <&scmi_devpd 11>;
+
+ port {
+ dcif_out: endpoint {
+ remote-endpoint = <&ldb_in>;
+ };
+ };
+ };
+ };
--
2.49.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v4 6/9] dt-bindings: clock: nxp,imx95-blk-ctl: Add ldb child node
2025-09-03 12:33 [PATCH v4 0/9] Add support for i.MX94 DCIF Laurentiu Palcu
2025-09-03 12:33 ` [PATCH v4 1/9] dt-bindings: display: fsl,ldb: Add i.MX94 LDB Laurentiu Palcu
2025-09-03 12:33 ` [PATCH v4 4/9] dt-bindings: display: imx: Add bindings for i.MX94 DCIF Laurentiu Palcu
@ 2025-09-03 12:33 ` Laurentiu Palcu
2025-09-04 7:27 ` Krzysztof Kozlowski
2025-09-03 12:33 ` [PATCH v4 7/9] arm64: dts: imx943: Add display pipeline nodes Laurentiu Palcu
2025-09-03 12:33 ` [PATCH v4 8/9] arm64: dts: imx943-evk: Add display support using IT6263 Laurentiu Palcu
4 siblings, 1 reply; 13+ messages in thread
From: Laurentiu Palcu @ 2025-09-03 12:33 UTC (permalink / raw)
To: imx, Abel Vesa, Peng Fan, Michael Turquette, Stephen Boyd,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: Frank Li, Laurentiu Palcu, linux-clk, devicetree,
linux-arm-kernel, linux-kernel
Since the BLK CTL registers, like the LVDS CSR, can be used to control the
LVDS Display Bridge controllers, add 'ldb' child node to handle
these use cases.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
---
.../bindings/clock/nxp,imx95-blk-ctl.yaml | 24 ++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml b/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml
index 27403b4c52d62..f83d96701bb04 100644
--- a/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml
+++ b/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml
@@ -39,6 +39,28 @@ properties:
ID in its "clocks" phandle cell. See
include/dt-bindings/clock/nxp,imx95-clock.h
+if:
+ properties:
+ compatible:
+ contains:
+ const: nxp,imx94-lvds-csr
+then:
+ properties:
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 1
+
+ patternProperties:
+ "^ldb@[0-9a-f]+$":
+ type: object
+ $ref: /schemas/display/bridge/fsl,ldb.yaml#
+
+ required:
+ - '#address-cells'
+ - '#size-cells'
+
required:
- compatible
- reg
@@ -46,7 +68,7 @@ required:
- power-domains
- clocks
-additionalProperties: false
+unevaluatedProperties: false
examples:
- |
--
2.49.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v4 7/9] arm64: dts: imx943: Add display pipeline nodes
2025-09-03 12:33 [PATCH v4 0/9] Add support for i.MX94 DCIF Laurentiu Palcu
` (2 preceding siblings ...)
2025-09-03 12:33 ` [PATCH v4 6/9] dt-bindings: clock: nxp,imx95-blk-ctl: Add ldb child node Laurentiu Palcu
@ 2025-09-03 12:33 ` Laurentiu Palcu
2025-09-03 12:33 ` [PATCH v4 8/9] arm64: dts: imx943-evk: Add display support using IT6263 Laurentiu Palcu
4 siblings, 0 replies; 13+ messages in thread
From: Laurentiu Palcu @ 2025-09-03 12:33 UTC (permalink / raw)
To: imx, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: Frank Li, Laurentiu Palcu, devicetree, linux-arm-kernel,
linux-kernel
Add display controller and LDB support in imx943.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
---
arch/arm64/boot/dts/freescale/imx943.dtsi | 53 ++++++++++++++++++++++-
1 file changed, 52 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/imx943.dtsi b/arch/arm64/boot/dts/freescale/imx943.dtsi
index 657c81b6016f2..9a91beef54e86 100644
--- a/arch/arm64/boot/dts/freescale/imx943.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx943.dtsi
@@ -148,7 +148,7 @@ l3_cache: l3-cache {
};
};
- clock-ldb-pll-div7 {
+ clock_ldb_pll_div7: clock-ldb-pll-div7 {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&scmi_clk IMX94_CLK_LDBPLL>;
@@ -174,9 +174,60 @@ dispmix_csr: syscon@4b010000 {
lvds_csr: syscon@4b0c0000 {
compatible = "nxp,imx94-lvds-csr", "syscon";
reg = <0x0 0x4b0c0000 0x0 0x10000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
clocks = <&scmi_clk IMX94_CLK_DISPAPB>;
#clock-cells = <1>;
power-domains = <&scmi_devpd IMX94_PD_DISPLAY>;
+
+ ldb: ldb@4 {
+ compatible = "fsl,imx94-ldb";
+ reg = <0x4 0x4>, <0x8 0x4>;
+ reg-names = "ldb", "lvds";
+ clocks = <&lvds_csr IMX94_CLK_DISPMIX_LVDS_CLK_GATE>;
+ clock-names = "ldb";
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ lvds_in: endpoint {
+ remote-endpoint = <&dcif_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ };
+ };
+ };
+ };
+
+ dcif: display-controller@4b120000 {
+ compatible = "nxp,imx94-dcif";
+ reg = <0x0 0x4b120000 0x0 0x300000>;
+ interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "common", "bg_layer", "fg_layer";
+ clocks = <&scmi_clk IMX94_CLK_DISPAPB>,
+ <&scmi_clk IMX94_CLK_DISPAXI>,
+ <&dispmix_csr IMX94_CLK_DISPMIX_CLK_SEL>;
+ clock-names = "apb", "axi", "pix";
+ assigned-clocks = <&dispmix_csr IMX94_CLK_DISPMIX_CLK_SEL>;
+ assigned-clock-parents = <&clock_ldb_pll_div7>;
+ power-domains = <&scmi_devpd IMX94_PD_DISPLAY>;
+ status = "disabled";
+
+ port {
+ dcif_out: endpoint {
+ remote-endpoint = <&lvds_in>;
+ };
+ };
};
};
};
--
2.49.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v4 8/9] arm64: dts: imx943-evk: Add display support using IT6263
2025-09-03 12:33 [PATCH v4 0/9] Add support for i.MX94 DCIF Laurentiu Palcu
` (3 preceding siblings ...)
2025-09-03 12:33 ` [PATCH v4 7/9] arm64: dts: imx943: Add display pipeline nodes Laurentiu Palcu
@ 2025-09-03 12:33 ` Laurentiu Palcu
4 siblings, 0 replies; 13+ messages in thread
From: Laurentiu Palcu @ 2025-09-03 12:33 UTC (permalink / raw)
To: imx, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: Frank Li, Laurentiu Palcu, devicetree, linux-arm-kernel,
linux-kernel
The ITE IT6263 based NXP LVDS to HDMI converter can be attached to the
i.MX943 EVK board LVDS port using the mini-SAS connector. Since this is
the default configuration for the EVK, add support for it here.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
---
arch/arm64/boot/dts/freescale/imx943-evk.dts | 121 +++++++++++++++++++
1 file changed, 121 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
index c8c3eff9df1a2..5900ff355abc2 100644
--- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
@@ -34,6 +34,18 @@ dmic: dmic {
#sound-dai-cells = <0>;
};
+ hdmi-connector {
+ compatible = "hdmi-connector";
+ label = "hdmi";
+ type = "a";
+
+ port {
+ hdmi_connector_in: endpoint {
+ remote-endpoint = <&it6263_out>;
+ };
+ };
+ };
+
reg_usdhc2_vmmc: regulator-usdhc2 {
compatible = "regulator-fixed";
off-on-delay-us = <12000>;
@@ -127,6 +139,115 @@ memory@80000000 {
};
};
+&dcif {
+ status = "okay";
+};
+
+&ldb {
+ assigned-clocks = <&scmi_clk IMX94_CLK_LDBPLL_VCO>,
+ <&scmi_clk IMX94_CLK_LDBPLL>;
+ assigned-clock-rates = <4158000000>, <1039500000>;
+ status = "okay";
+
+ ports {
+ port@1 {
+ lvds_out: endpoint {
+ remote-endpoint = <&it6263_in>;
+ };
+ };
+ };
+};
+
+&lpi2c3 {
+ clock-frequency = <400000>;
+ pinctrl-0 = <&pinctrl_lpi2c3>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ pca9548_i2c3: i2c-mux@77 {
+ compatible = "nxp,pca9548";
+ reg = <0x77>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ i2c@0 {
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c@1 {
+ reg = <1>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c@2 {
+ reg = <2>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c@3 {
+ reg = <3>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ lvds-to-hdmi-bridge@4c {
+ compatible = "ite,it6263";
+ reg = <0x4c>;
+ data-mapping = "jeida-24";
+ reset-gpios = <&pcal6416_i2c3_u171 8 GPIO_ACTIVE_HIGH>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ it6263_in: endpoint {
+ remote-endpoint = <&lvds_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ it6263_out: endpoint {
+ remote-endpoint = <&hdmi_connector_in>;
+ };
+ };
+ };
+ };
+ };
+
+ i2c@4 {
+ reg = <4>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c@5 {
+ reg = <5>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c@6 {
+ reg = <6>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ i2c@7 {
+ reg = <7>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+};
+
&lpi2c3 {
clock-frequency = <400000>;
pinctrl-0 = <&pinctrl_lpi2c3>;
--
2.49.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v4 4/9] dt-bindings: display: imx: Add bindings for i.MX94 DCIF
2025-09-03 12:33 ` [PATCH v4 4/9] dt-bindings: display: imx: Add bindings for i.MX94 DCIF Laurentiu Palcu
@ 2025-09-03 15:23 ` Frank Li
2025-09-04 7:24 ` Krzysztof Kozlowski
1 sibling, 0 replies; 13+ messages in thread
From: Frank Li @ 2025-09-03 15:23 UTC (permalink / raw)
To: Laurentiu Palcu
Cc: imx, Philipp Zabel, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, dri-devel, devicetree,
linux-arm-kernel, linux-kernel
On Wed, Sep 03, 2025 at 03:33:22PM +0300, Laurentiu Palcu wrote:
> DCIF is the i.MX94 Display Controller Interface which is used to
> drive a TFT LCD panel or connects to a display interface depending
> on the chip configuration.
>
> Signed-off-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
> ---
> .../bindings/display/imx/nxp,imx94-dcif.yaml | 82 +++++++++++++++++++
> 1 file changed, 82 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml
>
> diff --git a/Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml b/Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml
> new file mode 100644
> index 0000000000000..54419c589ef74
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml
> @@ -0,0 +1,82 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +# Copyright 2025 NXP
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/imx/nxp,imx94-dcif.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: i.MX94 Display Control Interface (DCIF)
> +
> +maintainers:
> + - Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
> +
> +description:
> + The Display Control Interface(DCIF) is a system master that fetches graphics
> + stored in memory and displays them on a TFT LCD panel or connects to a
> + display interface depending on the chip configuration.
> +
> +properties:
> + compatible:
> + const: nxp,imx94-dcif
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + items:
> + - description: CPU domain 0 (controlled by common registers group).
> + - description: CPU domain 1 (controlled by background layer registers group).
> + - description: CPU domain 2 (controlled by foreground layer registers group).
> +
> + interrupt-names:
> + items:
> + - const: common
> + - const: bg_layer
> + - const: fg_layer
> +
> + clocks:
> + maxItems: 3
> +
> + clock-names:
> + items:
> + - const: apb
> + - const: axi
> + - const: pix
> +
> + power-domains:
> + maxItems: 1
> +
> + port:
> + $ref: /schemas/graph.yaml#/properties/port
> + description: Display Pixel Interface(DPI) output port
I still suggest ref to
Documentation/devicetree/bindings/media/video-interfaces.yaml
because it may need set hsync-active, vsync-active, bus-type for some
special TFT pannel in future.
I know driver may not use these now, but binding is descript hardware,
try best to make it complete.
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
example needn't exactly copy from dts. you can make "reg" by use 32bit
address, and remove soc layer to keep example simple.
Frank
> +
> + display-controller@4b120000 {
> + compatible = "nxp,imx94-dcif";
> + reg = <0x0 0x4b120000 0x0 0x300000>;
> + interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-names = "common", "bg_layer", "fg_layer";
> + clocks = <&scmi_clk 69>, <&scmi_clk 70>, <&dispmix_csr 0>;
> + clock-names = "apb", "axi", "pix";
> + assigned-clocks = <&dispmix_csr 0>;
> + assigned-clock-parents = <&ldb_pll_pixel>;
> + power-domains = <&scmi_devpd 11>;
> +
> + port {
> + dcif_out: endpoint {
> + remote-endpoint = <&ldb_in>;
> + };
> + };
> + };
> + };
> --
> 2.49.0
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v4 4/9] dt-bindings: display: imx: Add bindings for i.MX94 DCIF
2025-09-03 12:33 ` [PATCH v4 4/9] dt-bindings: display: imx: Add bindings for i.MX94 DCIF Laurentiu Palcu
2025-09-03 15:23 ` Frank Li
@ 2025-09-04 7:24 ` Krzysztof Kozlowski
2025-09-04 12:14 ` Laurentiu Palcu
1 sibling, 1 reply; 13+ messages in thread
From: Krzysztof Kozlowski @ 2025-09-04 7:24 UTC (permalink / raw)
To: Laurentiu Palcu
Cc: imx, Philipp Zabel, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Frank Li, dri-devel,
devicetree, linux-arm-kernel, linux-kernel
On Wed, Sep 03, 2025 at 03:33:22PM +0300, Laurentiu Palcu wrote:
> DCIF is the i.MX94 Display Controller Interface which is used to
> drive a TFT LCD panel or connects to a display interface depending
> on the chip configuration.
It looks like you are going to send v5, so:
A nit, subject: drop second/last, redundant "bindings for". The
"dt-bindings" prefix is already stating that these are bindings.
See also:
https://elixir.bootlin.com/linux/v6.17-rc3/source/Documentation/devicetree/bindings/submitting-patches.rst#L18
Anyway, nothing in the changelog explains dropping tags.
I am not going to do the work twice. Write proper changelogs.
<form letter>
This is a friendly reminder during the review process.
It looks like you received a tag and forgot to add it.
If you do not know the process, here is a short explanation:
Please add Acked-by/Reviewed-by/Tested-by tags when posting new
versions of patchset, under or above your Signed-off-by tag, unless
patch changed significantly (e.g. new properties added to the DT
bindings). Tag is "received", when provided in a message replied to you
on the mailing list. Tools like b4 can help here. However, there's no
need to repost patches *only* to add the tags. The upstream maintainer
will do that for tags received on the version they apply.
Please read:
https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577
If a tag was not added on purpose, please state why and what changed.
</form letter>
>
> Signed-off-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
> ---
> .../bindings/display/imx/nxp,imx94-dcif.yaml | 82 +++++++++++++++++++
> 1 file changed, 82 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml
>
> diff --git a/Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml b/Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml
> new file mode 100644
> index 0000000000000..54419c589ef74
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml
> @@ -0,0 +1,82 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +# Copyright 2025 NXP
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/imx/nxp,imx94-dcif.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: i.MX94 Display Control Interface (DCIF)
> +
> +maintainers:
> + - Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
> +
> +description:
> + The Display Control Interface(DCIF) is a system master that fetches graphics
> + stored in memory and displays them on a TFT LCD panel or connects to a
> + display interface depending on the chip configuration.
> +
> +properties:
> + compatible:
> + const: nxp,imx94-dcif
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + items:
> + - description: CPU domain 0 (controlled by common registers group).
> + - description: CPU domain 1 (controlled by background layer registers group).
> + - description: CPU domain 2 (controlled by foreground layer registers group).
> +
> + interrupt-names:
> + items:
> + - const: common
> + - const: bg_layer
> + - const: fg_layer
> +
> + clocks:
> + maxItems: 3
> +
> + clock-names:
> + items:
> + - const: apb
> + - const: axi
> + - const: pix
> +
> + power-domains:
> + maxItems: 1
> +
> + port:
> + $ref: /schemas/graph.yaml#/properties/port
> + description: Display Pixel Interface(DPI) output port
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + display-controller@4b120000 {
> + compatible = "nxp,imx94-dcif";
> + reg = <0x0 0x4b120000 0x0 0x300000>;
> + interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-names = "common", "bg_layer", "fg_layer";
> + clocks = <&scmi_clk 69>, <&scmi_clk 70>, <&dispmix_csr 0>;
> + clock-names = "apb", "axi", "pix";
> + assigned-clocks = <&dispmix_csr 0>;
> + assigned-clock-parents = <&ldb_pll_pixel>;
> + power-domains = <&scmi_devpd 11>;
> +
> + port {
> + dcif_out: endpoint {
> + remote-endpoint = <&ldb_in>;
> + };
> + };
> + };
> + };
> --
> 2.49.0
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v4 6/9] dt-bindings: clock: nxp,imx95-blk-ctl: Add ldb child node
2025-09-03 12:33 ` [PATCH v4 6/9] dt-bindings: clock: nxp,imx95-blk-ctl: Add ldb child node Laurentiu Palcu
@ 2025-09-04 7:27 ` Krzysztof Kozlowski
2025-09-04 12:14 ` Laurentiu Palcu
0 siblings, 1 reply; 13+ messages in thread
From: Krzysztof Kozlowski @ 2025-09-04 7:27 UTC (permalink / raw)
To: Laurentiu Palcu
Cc: imx, Abel Vesa, Peng Fan, Michael Turquette, Stephen Boyd,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Frank Li,
linux-clk, devicetree, linux-arm-kernel, linux-kernel
On Wed, Sep 03, 2025 at 03:33:24PM +0300, Laurentiu Palcu wrote:
> Since the BLK CTL registers, like the LVDS CSR, can be used to control the
> LVDS Display Bridge controllers, add 'ldb' child node to handle
> these use cases.
>
> Signed-off-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
> ---
> .../bindings/clock/nxp,imx95-blk-ctl.yaml | 24 ++++++++++++++++++-
> 1 file changed, 23 insertions(+), 1 deletion(-)
Nothing in the changelog explains this patch.
What happened with entire previous review?
>
> diff --git a/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml b/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml
> index 27403b4c52d62..f83d96701bb04 100644
> --- a/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml
> +++ b/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml
> @@ -39,6 +39,28 @@ properties:
> ID in its "clocks" phandle cell. See
> include/dt-bindings/clock/nxp,imx95-clock.h
>
> +if:
> + properties:
> + compatible:
> + contains:
> + const: nxp,imx94-lvds-csr
> +then:
> + properties:
> + "#address-cells":
> + const: 1
> +
> + "#size-cells":
> + const: 1
> +
> + patternProperties:
> + "^ldb@[0-9a-f]+$":
No, don't define nodes in if:then:. Where did you get this syntax from?
> + type: object
> + $ref: /schemas/display/bridge/fsl,ldb.yaml#
> +
> + required:
> + - '#address-cells'
> + - '#size-cells'
> +
> required:
> - compatible
> - reg
> @@ -46,7 +68,7 @@ required:
> - power-domains
> - clocks
>
> -additionalProperties: false
> +unevaluatedProperties: false
NAK, so schema warned you above syntax is wrong and you decided to
silence the warning with this hack, right?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v4 4/9] dt-bindings: display: imx: Add bindings for i.MX94 DCIF
2025-09-04 7:24 ` Krzysztof Kozlowski
@ 2025-09-04 12:14 ` Laurentiu Palcu
2025-09-04 14:11 ` Frank Li
0 siblings, 1 reply; 13+ messages in thread
From: Laurentiu Palcu @ 2025-09-04 12:14 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: imx, Philipp Zabel, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Frank Li, dri-devel,
devicetree, linux-arm-kernel, linux-kernel
On Thu, Sep 04, 2025 at 09:24:57AM +0200, Krzysztof Kozlowski wrote:
> On Wed, Sep 03, 2025 at 03:33:22PM +0300, Laurentiu Palcu wrote:
> > DCIF is the i.MX94 Display Controller Interface which is used to
> > drive a TFT LCD panel or connects to a display interface depending
> > on the chip configuration.
>
> It looks like you are going to send v5, so:
>
> A nit, subject: drop second/last, redundant "bindings for". The
> "dt-bindings" prefix is already stating that these are bindings.
> See also:
> https://elixir.bootlin.com/linux/v6.17-rc3/source/Documentation/devicetree/bindings/submitting-patches.rst#L18
>
> Anyway, nothing in the changelog explains dropping tags.
>
> I am not going to do the work twice. Write proper changelogs.
Sorry about that. :/ I agree it's frustrating to do the same work
twice... I admit I was lazy and only wrote a changelog in the
cover-letter. I will try to add a changelog to each changed patch next
time.
The r-b tag was dropped in v4 because I removed the QoS functionality until
I find a better way to handle it. Hence, the 'nxp,blk-ctl' property in
the binding needed to be dropped as well.
Thanks,
Laurentiu
>
> <form letter>
> This is a friendly reminder during the review process.
>
> It looks like you received a tag and forgot to add it.
>
> If you do not know the process, here is a short explanation:
> Please add Acked-by/Reviewed-by/Tested-by tags when posting new
> versions of patchset, under or above your Signed-off-by tag, unless
> patch changed significantly (e.g. new properties added to the DT
> bindings). Tag is "received", when provided in a message replied to you
> on the mailing list. Tools like b4 can help here. However, there's no
> need to repost patches *only* to add the tags. The upstream maintainer
> will do that for tags received on the version they apply.
>
> Please read:
> https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577
>
> If a tag was not added on purpose, please state why and what changed.
> </form letter>
>
> >
> > Signed-off-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
> > ---
> > .../bindings/display/imx/nxp,imx94-dcif.yaml | 82 +++++++++++++++++++
> > 1 file changed, 82 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml b/Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml
> > new file mode 100644
> > index 0000000000000..54419c589ef74
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml
> > @@ -0,0 +1,82 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +# Copyright 2025 NXP
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/display/imx/nxp,imx94-dcif.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: i.MX94 Display Control Interface (DCIF)
> > +
> > +maintainers:
> > + - Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
> > +
> > +description:
> > + The Display Control Interface(DCIF) is a system master that fetches graphics
> > + stored in memory and displays them on a TFT LCD panel or connects to a
> > + display interface depending on the chip configuration.
> > +
> > +properties:
> > + compatible:
> > + const: nxp,imx94-dcif
> > +
> > + reg:
> > + maxItems: 1
> > +
> > + interrupts:
> > + items:
> > + - description: CPU domain 0 (controlled by common registers group).
> > + - description: CPU domain 1 (controlled by background layer registers group).
> > + - description: CPU domain 2 (controlled by foreground layer registers group).
> > +
> > + interrupt-names:
> > + items:
> > + - const: common
> > + - const: bg_layer
> > + - const: fg_layer
> > +
> > + clocks:
> > + maxItems: 3
> > +
> > + clock-names:
> > + items:
> > + - const: apb
> > + - const: axi
> > + - const: pix
> > +
> > + power-domains:
> > + maxItems: 1
> > +
> > + port:
> > + $ref: /schemas/graph.yaml#/properties/port
> > + description: Display Pixel Interface(DPI) output port
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > + - |
> > + #include <dt-bindings/interrupt-controller/arm-gic.h>
> > +
> > + soc {
> > + #address-cells = <2>;
> > + #size-cells = <2>;
> > +
> > + display-controller@4b120000 {
> > + compatible = "nxp,imx94-dcif";
> > + reg = <0x0 0x4b120000 0x0 0x300000>;
> > + interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>;
> > + interrupt-names = "common", "bg_layer", "fg_layer";
> > + clocks = <&scmi_clk 69>, <&scmi_clk 70>, <&dispmix_csr 0>;
> > + clock-names = "apb", "axi", "pix";
> > + assigned-clocks = <&dispmix_csr 0>;
> > + assigned-clock-parents = <&ldb_pll_pixel>;
> > + power-domains = <&scmi_devpd 11>;
> > +
> > + port {
> > + dcif_out: endpoint {
> > + remote-endpoint = <&ldb_in>;
> > + };
> > + };
> > + };
> > + };
> > --
> > 2.49.0
> >
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v4 6/9] dt-bindings: clock: nxp,imx95-blk-ctl: Add ldb child node
2025-09-04 7:27 ` Krzysztof Kozlowski
@ 2025-09-04 12:14 ` Laurentiu Palcu
2025-09-04 14:09 ` Frank Li
0 siblings, 1 reply; 13+ messages in thread
From: Laurentiu Palcu @ 2025-09-04 12:14 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: imx, Abel Vesa, Peng Fan, Michael Turquette, Stephen Boyd,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Frank Li,
linux-clk, devicetree, linux-arm-kernel, linux-kernel
On Thu, Sep 04, 2025 at 09:27:31AM +0200, Krzysztof Kozlowski wrote:
> On Wed, Sep 03, 2025 at 03:33:24PM +0300, Laurentiu Palcu wrote:
> > Since the BLK CTL registers, like the LVDS CSR, can be used to control the
> > LVDS Display Bridge controllers, add 'ldb' child node to handle
> > these use cases.
> >
> > Signed-off-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
> > ---
> > .../bindings/clock/nxp,imx95-blk-ctl.yaml | 24 ++++++++++++++++++-
> > 1 file changed, 23 insertions(+), 1 deletion(-)
>
> Nothing in the changelog explains this patch.
>
> What happened with entire previous review?
I will try adding a changlog to the individual patches in the future... :/
>
> >
> > diff --git a/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml b/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml
> > index 27403b4c52d62..f83d96701bb04 100644
> > --- a/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml
> > +++ b/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml
> > @@ -39,6 +39,28 @@ properties:
> > ID in its "clocks" phandle cell. See
> > include/dt-bindings/clock/nxp,imx95-clock.h
> >
> > +if:
> > + properties:
> > + compatible:
> > + contains:
> > + const: nxp,imx94-lvds-csr
> > +then:
> > + properties:
> > + "#address-cells":
> > + const: 1
> > +
> > + "#size-cells":
> > + const: 1
> > +
> > + patternProperties:
> > + "^ldb@[0-9a-f]+$":
>
> No, don't define nodes in if:then:. Where did you get this syntax from?
I guess I looked over various bindings using patternProperties in if:then:
blocks but I completely missed the fact that the nodes were actually defined
outside... And you gave me a good hint in a reply for v4 but, somehow, I failed
to completely understand what you suggested... :/
Hopefully, the following *is* what you meant:
...
patternProperties:
"^ldb@[0-9a-f]+$":
type: object
$ref: /schemas/display/bridge/fsl,ldb.yaml#
if:
not:
properties:
compatible:
contains:
const: nxp,imx94-lvds-csr
then:
patternProperties:
"^ldb@[0-9a-f]+$": false
else:
required:
- '#address-cells'
- '#size-cells'
...
>
> > + type: object
> > + $ref: /schemas/display/bridge/fsl,ldb.yaml#
> > +
> > + required:
> > + - '#address-cells'
> > + - '#size-cells'
> > +
> > required:
> > - compatible
> > - reg
> > @@ -46,7 +68,7 @@ required:
> > - power-domains
> > - clocks
> >
> > -additionalProperties: false
> > +unevaluatedProperties: false
>
> NAK, so schema warned you above syntax is wrong and you decided to
> silence the warning with this hack, right?
Indeed, the checks gave me a warning and I thought it was the right thing to
use 'unevaluatedProperties: false' since additionalProperties cannot recognize
properties declared in subschemas...
Anyway, with the change above, 'additionalProperties: false' will do just fine.
Thanks,
Laurentiu
>
> Best regards,
> Krzysztof
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v4 6/9] dt-bindings: clock: nxp,imx95-blk-ctl: Add ldb child node
2025-09-04 12:14 ` Laurentiu Palcu
@ 2025-09-04 14:09 ` Frank Li
0 siblings, 0 replies; 13+ messages in thread
From: Frank Li @ 2025-09-04 14:09 UTC (permalink / raw)
To: Laurentiu Palcu
Cc: Krzysztof Kozlowski, imx, Abel Vesa, Peng Fan, Michael Turquette,
Stephen Boyd, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
linux-clk, devicetree, linux-arm-kernel, linux-kernel
On Thu, Sep 04, 2025 at 03:14:53PM +0300, Laurentiu Palcu wrote:
> On Thu, Sep 04, 2025 at 09:27:31AM +0200, Krzysztof Kozlowski wrote:
> > On Wed, Sep 03, 2025 at 03:33:24PM +0300, Laurentiu Palcu wrote:
> > > Since the BLK CTL registers, like the LVDS CSR, can be used to control the
> > > LVDS Display Bridge controllers, add 'ldb' child node to handle
> > > these use cases.
> > >
> > > Signed-off-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
> > > ---
> > > .../bindings/clock/nxp,imx95-blk-ctl.yaml | 24 ++++++++++++++++++-
> > > 1 file changed, 23 insertions(+), 1 deletion(-)
> >
> > Nothing in the changelog explains this patch.
> >
> > What happened with entire previous review?
> I will try adding a changlog to the individual patches in the future... :/
>
> >
> > >
> > > diff --git a/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml b/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml
> > > index 27403b4c52d62..f83d96701bb04 100644
> > > --- a/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml
> > > +++ b/Documentation/devicetree/bindings/clock/nxp,imx95-blk-ctl.yaml
> > > @@ -39,6 +39,28 @@ properties:
> > > ID in its "clocks" phandle cell. See
> > > include/dt-bindings/clock/nxp,imx95-clock.h
> > >
> > > +if:
> > > + properties:
> > > + compatible:
> > > + contains:
> > > + const: nxp,imx94-lvds-csr
> > > +then:
> > > + properties:
> > > + "#address-cells":
> > > + const: 1
> > > +
> > > + "#size-cells":
> > > + const: 1
> > > +
> > > + patternProperties:
> > > + "^ldb@[0-9a-f]+$":
> >
> > No, don't define nodes in if:then:. Where did you get this syntax from?
> I guess I looked over various bindings using patternProperties in if:then:
> blocks but I completely missed the fact that the nodes were actually defined
> outside... And you gave me a good hint in a reply for v4 but, somehow, I failed
> to completely understand what you suggested... :/
>
> Hopefully, the following *is* what you meant:
>
> ...
> patternProperties:
> "^ldb@[0-9a-f]+$":
> type: object
> $ref: /schemas/display/bridge/fsl,ldb.yaml#
>
> if:
> not:
> properties:
> compatible:
> contains:
> const: nxp,imx94-lvds-csr
> then:
> patternProperties:
> "^ldb@[0-9a-f]+$": false
> else:
> required:
> - '#address-cells'
> - '#size-cells'
> ...
>
> >
> > > + type: object
> > > + $ref: /schemas/display/bridge/fsl,ldb.yaml#
> > > +
> > > + required:
> > > + - '#address-cells'
> > > + - '#size-cells'
> > > +
> > > required:
> > > - compatible
> > > - reg
> > > @@ -46,7 +68,7 @@ required:
> > > - power-domains
> > > - clocks
> > >
> > > -additionalProperties: false
> > > +unevaluatedProperties: false
> >
> > NAK, so schema warned you above syntax is wrong and you decided to
> > silence the warning with this hack, right?
> Indeed, the checks gave me a warning and I thought it was the right thing to
> use 'unevaluatedProperties: false' since additionalProperties cannot recognize
> properties declared in subschemas...
>
> Anyway, with the change above, 'additionalProperties: false' will do just fine.
Laurentiu:
You can ping me by nxp team first if you have problem or can't
understand Krzysztof's means.
Krzysztof is quite busy!
Frank
>
> Thanks,
> Laurentiu
>
> >
> > Best regards,
> > Krzysztof
> >
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v4 4/9] dt-bindings: display: imx: Add bindings for i.MX94 DCIF
2025-09-04 12:14 ` Laurentiu Palcu
@ 2025-09-04 14:11 ` Frank Li
0 siblings, 0 replies; 13+ messages in thread
From: Frank Li @ 2025-09-04 14:11 UTC (permalink / raw)
To: Laurentiu Palcu
Cc: Krzysztof Kozlowski, imx, Philipp Zabel, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, dri-devel,
devicetree, linux-arm-kernel, linux-kernel
On Thu, Sep 04, 2025 at 03:14:31PM +0300, Laurentiu Palcu wrote:
> On Thu, Sep 04, 2025 at 09:24:57AM +0200, Krzysztof Kozlowski wrote:
> > On Wed, Sep 03, 2025 at 03:33:22PM +0300, Laurentiu Palcu wrote:
> > > DCIF is the i.MX94 Display Controller Interface which is used to
> > > drive a TFT LCD panel or connects to a display interface depending
> > > on the chip configuration.
> >
> > It looks like you are going to send v5, so:
> >
> > A nit, subject: drop second/last, redundant "bindings for". The
> > "dt-bindings" prefix is already stating that these are bindings.
> > See also:
> > https://elixir.bootlin.com/linux/v6.17-rc3/source/Documentation/devicetree/bindings/submitting-patches.rst#L18
> >
> > Anyway, nothing in the changelog explains dropping tags.
> >
> > I am not going to do the work twice. Write proper changelogs.
>
> Sorry about that. :/ I agree it's frustrating to do the same work
> twice... I admit I was lazy and only wrote a changelog in the
> cover-letter. I will try to add a changelog to each changed patch next
> time.
>
> The r-b tag was dropped in v4 because I removed the QoS functionality until
> I find a better way to handle it.
If drop review tag, need write it at change log and said the reason why
tag dropped.
Frank
> Hence, the 'nxp,blk-ctl' property in
> the binding needed to be dropped as well.
>
> Thanks,
> Laurentiu
>
> >
> > <form letter>
> > This is a friendly reminder during the review process.
> >
> > It looks like you received a tag and forgot to add it.
> >
> > If you do not know the process, here is a short explanation:
> > Please add Acked-by/Reviewed-by/Tested-by tags when posting new
> > versions of patchset, under or above your Signed-off-by tag, unless
> > patch changed significantly (e.g. new properties added to the DT
> > bindings). Tag is "received", when provided in a message replied to you
> > on the mailing list. Tools like b4 can help here. However, there's no
> > need to repost patches *only* to add the tags. The upstream maintainer
> > will do that for tags received on the version they apply.
> >
> > Please read:
> > https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577
> >
> > If a tag was not added on purpose, please state why and what changed.
> > </form letter>
> >
> > >
> > > Signed-off-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
> > > ---
> > > .../bindings/display/imx/nxp,imx94-dcif.yaml | 82 +++++++++++++++++++
> > > 1 file changed, 82 insertions(+)
> > > create mode 100644 Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml
> > >
> > > diff --git a/Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml b/Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml
> > > new file mode 100644
> > > index 0000000000000..54419c589ef74
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/display/imx/nxp,imx94-dcif.yaml
> > > @@ -0,0 +1,82 @@
> > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > +# Copyright 2025 NXP
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/display/imx/nxp,imx94-dcif.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: i.MX94 Display Control Interface (DCIF)
> > > +
> > > +maintainers:
> > > + - Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
> > > +
> > > +description:
> > > + The Display Control Interface(DCIF) is a system master that fetches graphics
> > > + stored in memory and displays them on a TFT LCD panel or connects to a
> > > + display interface depending on the chip configuration.
> > > +
> > > +properties:
> > > + compatible:
> > > + const: nxp,imx94-dcif
> > > +
> > > + reg:
> > > + maxItems: 1
> > > +
> > > + interrupts:
> > > + items:
> > > + - description: CPU domain 0 (controlled by common registers group).
> > > + - description: CPU domain 1 (controlled by background layer registers group).
> > > + - description: CPU domain 2 (controlled by foreground layer registers group).
> > > +
> > > + interrupt-names:
> > > + items:
> > > + - const: common
> > > + - const: bg_layer
> > > + - const: fg_layer
> > > +
> > > + clocks:
> > > + maxItems: 3
> > > +
> > > + clock-names:
> > > + items:
> > > + - const: apb
> > > + - const: axi
> > > + - const: pix
> > > +
> > > + power-domains:
> > > + maxItems: 1
> > > +
> > > + port:
> > > + $ref: /schemas/graph.yaml#/properties/port
> > > + description: Display Pixel Interface(DPI) output port
> > > +
> > > +additionalProperties: false
> > > +
> > > +examples:
> > > + - |
> > > + #include <dt-bindings/interrupt-controller/arm-gic.h>
> > > +
> > > + soc {
> > > + #address-cells = <2>;
> > > + #size-cells = <2>;
> > > +
> > > + display-controller@4b120000 {
> > > + compatible = "nxp,imx94-dcif";
> > > + reg = <0x0 0x4b120000 0x0 0x300000>;
> > > + interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>,
> > > + <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>,
> > > + <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>;
> > > + interrupt-names = "common", "bg_layer", "fg_layer";
> > > + clocks = <&scmi_clk 69>, <&scmi_clk 70>, <&dispmix_csr 0>;
> > > + clock-names = "apb", "axi", "pix";
> > > + assigned-clocks = <&dispmix_csr 0>;
> > > + assigned-clock-parents = <&ldb_pll_pixel>;
> > > + power-domains = <&scmi_devpd 11>;
> > > +
> > > + port {
> > > + dcif_out: endpoint {
> > > + remote-endpoint = <&ldb_in>;
> > > + };
> > > + };
> > > + };
> > > + };
> > > --
> > > 2.49.0
> > >
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2025-09-04 14:12 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-03 12:33 [PATCH v4 0/9] Add support for i.MX94 DCIF Laurentiu Palcu
2025-09-03 12:33 ` [PATCH v4 1/9] dt-bindings: display: fsl,ldb: Add i.MX94 LDB Laurentiu Palcu
2025-09-03 12:33 ` [PATCH v4 4/9] dt-bindings: display: imx: Add bindings for i.MX94 DCIF Laurentiu Palcu
2025-09-03 15:23 ` Frank Li
2025-09-04 7:24 ` Krzysztof Kozlowski
2025-09-04 12:14 ` Laurentiu Palcu
2025-09-04 14:11 ` Frank Li
2025-09-03 12:33 ` [PATCH v4 6/9] dt-bindings: clock: nxp,imx95-blk-ctl: Add ldb child node Laurentiu Palcu
2025-09-04 7:27 ` Krzysztof Kozlowski
2025-09-04 12:14 ` Laurentiu Palcu
2025-09-04 14:09 ` Frank Li
2025-09-03 12:33 ` [PATCH v4 7/9] arm64: dts: imx943: Add display pipeline nodes Laurentiu Palcu
2025-09-03 12:33 ` [PATCH v4 8/9] arm64: dts: imx943-evk: Add display support using IT6263 Laurentiu Palcu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).