[PATCH 03/39] dt-bindings: display: imx: Document i.MX95 Display Controller processing units
Frank Li
Frank.li at nxp.com
Mon Oct 13 09:49:29 PDT 2025
On Sat, Oct 11, 2025 at 06:51:18PM +0200, Marek Vasut wrote:
> Freescale i.MX95 Display Controller is implemented as construction set of
> building blocks with unified concept and standardized interfaces. Document
> all new processing units present in i.MX95.
>
> Signed-off-by: Marek Vasut <marek.vasut at mailbox.org>
> ---
> Cc: Abel Vesa <abelvesa at kernel.org>
> Cc: Conor Dooley <conor+dt at kernel.org>
> Cc: Fabio Estevam <festevam at gmail.com>
> Cc: Krzysztof Kozlowski <krzk+dt at kernel.org>
> Cc: Laurent Pinchart <Laurent.pinchart at ideasonboard.com>
> Cc: Liu Ying <victor.liu at nxp.com>
> Cc: Lucas Stach <l.stach at pengutronix.de>
> Cc: Peng Fan <peng.fan at nxp.com>
> Cc: Pengutronix Kernel Team <kernel at pengutronix.de>
> Cc: Rob Herring <robh at kernel.org>
> Cc: Shawn Guo <shawnguo at kernel.org>
> Cc: Thomas Zimmermann <tzimmermann at suse.de>
> Cc: devicetree at vger.kernel.org
> Cc: dri-devel at lists.freedesktop.org
> Cc: imx at lists.linux.dev
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-clk at vger.kernel.org
> ---
> .../imx/fsl,imx8qxp-dc-constframe.yaml | 4 +-
> .../imx/fsl,imx8qxp-dc-display-engine.yaml | 45 +++++++++++++---
> .../display/imx/fsl,imx8qxp-dc-extdst.yaml | 4 +-
> .../display/imx/fsl,imx8qxp-dc-fetchunit.yaml | 1 +
> .../display/imx/fsl,imx8qxp-dc-framegen.yaml | 13 ++++-
> .../imx/fsl,imx8qxp-dc-layerblend.yaml | 4 +-
> .../imx/fsl,imx8qxp-dc-pixel-engine.yaml | 52 +++++++++++++++---
> .../display/imx/fsl,imx8qxp-dc-tcon.yaml | 5 +-
> .../bindings/display/imx/fsl,imx8qxp-dc.yaml | 53 ++++++++++++++++---
> 9 files changed, 153 insertions(+), 28 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-constframe.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-constframe.yaml
> index 94f6785636085..3a585b3b9a789 100644
> --- a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-constframe.yaml
> +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-constframe.yaml
> @@ -18,7 +18,9 @@ maintainers:
>
...
>
> properties:
> compatible:
> - const: fsl,imx8qxp-dc-framegen
> + enum:
> + - fsl,imx8qxp-dc-framegen
> + - fsl,imx95-dc-framegen
>
> "^gammacor@[0-9a-f]+$":
> type: object
> @@ -90,13 +102,15 @@ patternProperties:
> compatible:
> const: fsl,imx8qxp-dc-signature
>
> - "^tcon@[0-9a-f]+$":
> + "^tcon(@[0-9a-f]+)?$":
why here allow no address unit tcon?
Frank
> type: object
> additionalProperties: true
>
> properties:
> compatible:
> - const: fsl,imx8qxp-dc-tcon
> + enum:
> + - fsl,imx8qxp-dc-tcon
> + - fsl,imx95-dc-tcon
>
...
> diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-framegen.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-framegen.yaml
> index 9d1dc3a9de90e..dd83ac669478b 100644
> --- a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-framegen.yaml
> +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-framegen.yaml
> @@ -16,18 +16,27 @@ maintainers:
>
> properties:
> compatible:
> - const: fsl,imx8qxp-dc-framegen
> + enum:
> + - fsl,imx8qxp-dc-framegen
> + - fsl,imx95-dc-framegen
>
> reg:
> maxItems: 1
>
> clocks:
> - maxItems: 1
> + minItems: 1
> + maxItems: 6
> +
> + clock-names:
> + minItems: 1
> + maxItems: 6
>
> interrupts:
> + minItems: 6
> maxItems: 8
>
> interrupt-names:
> + minItems: 6
Need if branch to keep the same restriction for exited compatible string
> items:
> - const: int0
> - const: int1
> diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-layerblend.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-layerblend.yaml
> index 2a6ab8a0ed7fc..6565b7acf47e4 100644
> --- a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-layerblend.yaml
> +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-layerblend.yaml
> @@ -13,7 +13,9 @@ maintainers:
>
> properties:
> compatible:
> - const: fsl,imx8qxp-dc-layerblend
> + enum:
> + - fsl,imx8qxp-dc-layerblend
> + - fsl,imx95-dc-layerblend
>
> reg:
> maxItems: 2
...
> diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-pixel-engine.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-pixel-engine.yaml
> index 633443a6cc380..2d0ee83e30b25 100644
> --- a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-pixel-engine.yaml
> +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-pixel-engine.yaml
> @@ -17,19 +17,28 @@ maintainers:
>
> properties:
> compatible:
> - const: fsl,imx8qxp-dc-pixel-engine
> + oneOf:
> + - const: fsl,imx8qxp-dc-pixel-engine
> + - items:
> + - const: fsl,imx95-dc-pixel-engine
> + - const: fsl,imx8qxp-dc-pixel-engine
>
> reg:
> maxItems: 1
>
> clocks:
> - maxItems: 1
> + minItems: 1
> + maxItems: 2
> +
> + clock-names:
> + minItems: 1
> + maxItems: 2
>
> "#address-cells":
> - const: 1
> + enum: [1, 2]
>
> "#size-cells":
> - const: 1
> + enum: [1, 2]
>
> ranges: true
>
...
>
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: fsl,imx95-dc-pixel-engine
> + then:
> + properties:
> + "#address-cells":
> + const: 2
> + "#size-cells":
> + const: 2
> + else:
> + properties:
> + "#address-cells":
> + const: 1
> + "#size-cells":
> + const: 1
Need keep the same restriction for clocks and clock-names.
> +
> additionalProperties: false
>
> examples:
> diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-tcon.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-tcon.yaml
> index 7a3b77ea92c73..1f935b342f461 100644
> --- a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-tcon.yaml
> +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-tcon.yaml
> @@ -15,7 +15,9 @@ maintainers:
>
> properties:
> compatible:
> - const: fsl,imx8qxp-dc-tcon
> + enum:
> + - fsl,imx8qxp-dc-tcon
> + - fsl,imx95-dc-tcon
>
> reg:
> maxItems: 1
> @@ -26,7 +28,6 @@ properties:
>
> required:
> - compatible
> - - reg
> - port
>
> additionalProperties: false
> diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc.yaml
> index 0a72f9f0b5fda..1e8f559acb4de 100644
> --- a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc.yaml
> +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc.yaml
> @@ -48,13 +48,20 @@ maintainers:
>
> properties:
> compatible:
> - const: fsl,imx8qxp-dc
> + enum:
> + - fsl,imx8qxp-dc
> + - fsl,imx95-dc
>
> reg:
> maxItems: 1
>
> clocks:
> - maxItems: 1
> + minItems: 1
> + maxItems: 6
> +
> + clock-names:
> + minItems: 1
> + maxItems: 6
>
> resets:
> maxItems: 2
> @@ -68,10 +75,15 @@ properties:
> maxItems: 1
>
> "#address-cells":
> - const: 1
> + enum: [1, 2]
>
> "#size-cells":
> - const: 1
> + enum: [1, 2]
> +
> + fsl,syscon:
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description: |
> + A phandle which points to Control and Status Registers (CSR) module.
Why need this one? is it possible to abstract it to standard interface,
like phy, clock, reset ...
Frank
>
> ranges: true
>
> @@ -90,7 +102,9 @@ patternProperties:
>
> properties:
> compatible:
> - const: fsl,imx8qxp-dc-display-engine
> + enum:
> + - fsl,imx8qxp-dc-display-engine
> + - fsl,imx95-dc-display-engine
>
> "^interrupt-controller@[0-9a-f]+$":
> type: object
> @@ -98,7 +112,9 @@ patternProperties:
>
> properties:
> compatible:
> - const: fsl,imx8qxp-dc-intc
> + enum:
> + - fsl,imx8qxp-dc-intc
> + - fsl,imx95-dc-intc
>
> "^pixel-engine@[0-9a-f]+$":
> type: object
> @@ -106,7 +122,11 @@ patternProperties:
>
> properties:
> compatible:
> - const: fsl,imx8qxp-dc-pixel-engine
> + oneOf:
> + - const: fsl,imx8qxp-dc-pixel-engine
> + - items:
> + - const: fsl,imx95-dc-pixel-engine
> + - const: fsl,imx8qxp-dc-pixel-engine
>
> "^pmu@[0-9a-f]+$":
> type: object
> @@ -125,6 +145,25 @@ required:
> - "#size-cells"
> - ranges
>
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: fsl,imx95-dc
> + then:
> + properties:
> + "#address-cells":
> + const: 2
> + "#size-cells":
> + const: 2
> + else:
> + properties:
> + "#address-cells":
> + const: 1
> + "#size-cells":
> + const: 1
> +
> additionalProperties: false
>
> examples:
> --
> 2.51.0
>
More information about the linux-arm-kernel
mailing list