From: Liu Ying <victor.liu@nxp.com>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org,
imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org,
p.zabel@pengutronix.de, airlied@gmail.com, simona@ffwll.ch,
maarten.lankhorst@linux.intel.com, mripard@kernel.org,
tzimmermann@suse.de, robh@kernel.org, krzk+dt@kernel.org,
conor+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de,
kernel@pengutronix.de, festevam@gmail.com, tglx@linutronix.de,
vkoul@kernel.org, kishon@kernel.org, aisheng.dong@nxp.com,
agx@sigxcpu.org, u.kleine-koenig@baylibre.com,
francesco@dolcini.it, frank.li@nxp.com
Subject: Re: [PATCH v7 03/19] dt-bindings: display: imx: Add i.MX8qxp Display Controller display engine
Date: Tue, 24 Dec 2024 13:57:31 +0800 [thread overview]
Message-ID: <73c80079-582a-40cb-b9e1-e20fc96fe603@nxp.com> (raw)
In-Reply-To: <kpem2w4wu7ywc5pvbk3ls5hsyttrwcylomzfh567ejlxkymeqd@cujrbfxgrntc>
On 12/23/2024, Dmitry Baryshkov wrote:
> On Mon, Dec 23, 2024 at 02:41:31PM +0800, Liu Ying wrote:
>> i.MX8qxp Display Controller display engine consists of all processing units
>> that operate in a display clock domain.
>>
>> Signed-off-by: Liu Ying <victor.liu@nxp.com>
>> ---
>> v7:
>> * Drop DT alias documentations and add instance numbers to compatible strings.
>> (Rob)
>>
>> v6:
>> * No change.
>>
>> v5:
>> * Document aliases. Drop Rob's previous R-b tag. (Maxime)
>>
>> v4:
>> * Collect Rob's R-b tag.
>>
>> v3:
>> * No change.
>>
>> v2:
>> * Drop fsl,dc-*-id DT properties. (Krzysztof)
>> * Drop port property. (Krzysztof)
>> * Fix register range sizes in example.
>>
>> .../imx/fsl,imx8qxp-dc-display-engine0.yaml | 235 ++++++++++++++++++
>> 1 file changed, 235 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-display-engine0.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-display-engine0.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-display-engine0.yaml
>> new file mode 100644
>> index 000000000000..60d1e0a4a5dd
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-display-engine0.yaml
>> @@ -0,0 +1,235 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-display-engine0.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Freescale i.MX8qxp Display Controller Display Engine
>> +
>> +description:
>> + All Processing Units that operate in a display clock domain. Pixel pipeline
>> + is driven by a video timing and cannot be stalled. Implements all display
>> + specific processing.
>> +
>> +maintainers:
>> + - Liu Ying <victor.liu@nxp.com>
>> +
>> +properties:
>> + compatible:
>> + enum:
>> + - fsl,imx8qxp-dc-display-engine0
>> + - fsl,imx8qxp-dc-display-engine1
>
> Is there actual difference between engines 0 and 1? If there is none,
> why are you artificially adding one here?
I think engine 0 and 1 have the same HW implementation, but they connect
to different ExtDsts through FrameGens. The two compatible strings make
it possible for an operating system to figure out which engine is which
by getting the instance numbers from them.
If the two engines use a same compatible string, then either 1) use
DT aliases to get the instance number(as v5/v6 do) or 2) use OF graph to
describe the connections between FrameGens and ExtDsts. However, in v6,
Rob doesn't like 1) because it abuses the aliases which contain the display
controller instance number, like "dc0-display-engine0"(i.MX8QM SoC has
two display controllers), and 2) is too complex because all connections
between internal devices need to be documented with OF graph. So, I choose
to use the two compatible strings, like brcm,bcm2835-pixelvalve0.yaml does.
Thinking about 2) more, maybe the connections between pixel engine and
display engines need to be documented too, which seems to be more or less
duplicating the connections between FrameGens and ExtDsts.
CF0/1/4/5
PE | | | |
V V V V primary layer cross bar
+------------------------------------------+
| |
4 FUs + (VS4/5 + HS4/5) =>| LB0/1/2/3 |
secondary layer | |
cross bar +------------------------------------------+
| | | |
V V V V
+-----+ +-----+ +-----+ +-----+
| ED0 | | ED4 | | ED5 | | ED1 |
+-----+ +-----+ +-----+ +-----+
-----------------------------|----------|--------------|----------|-------------
content safety safety content
stream0 stream0 stream1 stream1
| | | |
| DE0 V V DE1 |
| +-----+ +-----+ |
------>| FG0 | | FG1 |<------
+-----+ +-----+
| |
V V
... ...
>
>> +
>> + reg:
>> + maxItems: 2
>> +
>> + reg-names:
>> + items:
>> + - const: top
>> + - const: cfg
>> +
>> + resets:
>> + maxItems: 1
>> +
>> + interrupts:
>> + maxItems: 3
>> +
>> + interrupt-names:
>> + items:
>> + - const: shdload
>> + - const: framecomplete
>> + - const: seqcomplete
>> +
>> + power-domains:
>> + maxItems: 1
>> +
>> + "#address-cells":
>> + const: 1
>> +
>> + "#size-cells":
>> + const: 1
>> +
>> + ranges: true
>> +
>> +patternProperties:
>> + "^dither@[0-9a-f]+$":
>> + type: object
>> + additionalProperties: true
>> +
>> + properties:
>> + compatible:
>> + enum:
>> + - fsl,imx8qxp-dc-dither0
>> + - fsl,imx8qxp-dc-dither1
>> +
>> + "^framegen@[0-9a-f]+$":
>> + type: object
>> + additionalProperties: true
>> +
>> + properties:
>> + compatible:
>> + enum:
>> + - fsl,imx8qxp-dc-framegen0
>> + - fsl,imx8qxp-dc-framegen1
>> +
>> + "^gammacor@[0-9a-f]+$":
>> + type: object
>> + additionalProperties: true
>> +
>> + properties:
>> + compatible:
>> + enum:
>> + - fsl,imx8qxp-dc-gammacor0
>> + - fsl,imx8qxp-dc-gammacor1
>> +
>> + "^matrix@[0-9a-f]+$":
>> + type: object
>> + additionalProperties: true
>> +
>> + properties:
>> + compatible:
>> + enum:
>> + - fsl,imx8qxp-dc-matrix0
>> + - fsl,imx8qxp-dc-matrix1
>> +
>> + "^signature@[0-9a-f]+$":
>> + type: object
>> + additionalProperties: true
>> +
>> + properties:
>> + compatible:
>> + enum:
>> + - fsl,imx8qxp-dc-signature0
>> + - fsl,imx8qxp-dc-signature1
>> +
>> + "^tcon@[0-9a-f]+$":
>> + type: object
>> + additionalProperties: true
>> +
>> + properties:
>> + compatible:
>> + enum:
>> + - fsl,imx8qxp-dc-tcon0
>> + - fsl,imx8qxp-dc-tcon1
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - reg-names
>> + - interrupts
>> + - interrupt-names
>> + - power-domains
>> + - "#address-cells"
>> + - "#size-cells"
>> + - ranges
>> +
>> +allOf:
>> + - if:
>> + properties:
>> + compatible:
>> + contains:
>> + const: fsl,imx8qxp-dc-display-engine0
>> + then:
>> + patternProperties:
>> + "^dither@[0-9a-f]+$":
>> + properties:
>> + compatible:
>> + const: fsl,imx8qxp-dc-dither0
>> +
>> + "^framegen@[0-9a-f]+$":
>> + properties:
>> + compatible:
>> + const: fsl,imx8qxp-dc-framegen0
>> +
>> + "^gammacor@[0-9a-f]+$":
>> + properties:
>> + compatible:
>> + const: fsl,imx8qxp-dc-gammacor0
>> +
>> + "^matrix@[0-9a-f]+$":
>> + properties:
>> + compatible:
>> + const: fsl,imx8qxp-dc-matrix0
>> +
>> + "^signature@[0-9a-f]+$":
>> + properties:
>> + compatible:
>> + const: fsl,imx8qxp-dc-signature0
>> +
>> + "^tcon@[0-9a-f]+$":
>> + properties:
>> + compatible:
>> + const: fsl,imx8qxp-dc-tcon0
>> + else:
>> + patternProperties:
>> + "^dither@[0-9a-f]+$":
>> + properties:
>> + compatible:
>> + const: fsl,imx8qxp-dc-dither1
>> +
>> + "^framegen@[0-9a-f]+$":
>> + properties:
>> + compatible:
>> + const: fsl,imx8qxp-dc-framegen1
>> +
>> + "^gammacor@[0-9a-f]+$":
>> + properties:
>> + compatible:
>> + const: fsl,imx8qxp-dc-gammacor1
>> +
>> + "^matrix@[0-9a-f]+$":
>> + properties:
>> + compatible:
>> + const: fsl,imx8qxp-dc-matrix1
>> +
>> + "^signature@[0-9a-f]+$":
>> + properties:
>> + compatible:
>> + const: fsl,imx8qxp-dc-signature1
>> +
>> + "^tcon@[0-9a-f]+$":
>> + properties:
>> + compatible:
>> + const: fsl,imx8qxp-dc-tcon1
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/clock/imx8-lpcg.h>
>> + #include <dt-bindings/firmware/imx/rsrc.h>
>> +
>> + display-engine@5618b400 {
>> + compatible = "fsl,imx8qxp-dc-display-engine0";
>> + reg = <0x5618b400 0x14>, <0x5618b800 0x1c00>;
>> + reg-names = "top", "cfg";
>> + interrupt-parent = <&dc0_intc>;
>> + interrupts = <15>, <16>, <17>;
>> + interrupt-names = "shdload", "framecomplete", "seqcomplete";
>> + power-domains = <&pd IMX_SC_R_DC_0_PLL_0>;
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> + ranges;
>> +
>> + framegen@5618b800 {
>> + compatible = "fsl,imx8qxp-dc-framegen0";
>> + reg = <0x5618b800 0x98>;
>> + clocks = <&dc0_disp_lpcg IMX_LPCG_CLK_0>;
>> + interrupt-parent = <&dc0_intc>;
>> + interrupts = <18>, <19>, <20>, <21>, <41>, <42>, <43>, <44>;
>> + interrupt-names = "int0", "int1", "int2", "int3",
>> + "primsync_on", "primsync_off",
>> + "secsync_on", "secsync_off";
>> + };
>> +
>> + tcon@5618c800 {
>> + compatible = "fsl,imx8qxp-dc-tcon0";
>> + reg = <0x5618c800 0x588>;
>> +
>> + port {
>> + dc0_disp0_dc0_pixel_combiner_ch0: endpoint {
>> + remote-endpoint = <&dc0_pixel_combiner_ch0_dc0_disp0>;
>> + };
>> + };
>> + };
>> + };
>> --
>> 2.34.1
>>
>
--
Regards,
Liu Ying
next prev parent reply other threads:[~2024-12-24 5:56 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-23 6:41 [PATCH v7 00/19] Add Freescale i.MX8qxp Display Controller support Liu Ying
2024-12-23 6:41 ` [PATCH v7 01/19] dt-bindings: display: imx: Add i.MX8qxp Display Controller processing units Liu Ying
2024-12-23 6:41 ` [PATCH v7 02/19] dt-bindings: display: imx: Add i.MX8qxp Display Controller blit engine Liu Ying
2024-12-23 6:41 ` [PATCH v7 03/19] dt-bindings: display: imx: Add i.MX8qxp Display Controller display engine Liu Ying
2024-12-23 10:26 ` Dmitry Baryshkov
2024-12-24 5:57 ` Liu Ying [this message]
2024-12-24 6:37 ` Dmitry Baryshkov
2024-12-24 7:04 ` Liu Ying
2024-12-23 6:41 ` [PATCH v7 04/19] dt-bindings: display: imx: Add i.MX8qxp Display Controller pixel engine Liu Ying
2024-12-23 6:41 ` [PATCH v7 05/19] dt-bindings: display: imx: Add i.MX8qxp Display Controller AXI performance counter Liu Ying
2024-12-23 6:41 ` [PATCH v7 06/19] dt-bindings: display: imx: Add i.MX8qxp Display Controller command sequencer Liu Ying
2024-12-23 6:41 ` [PATCH v7 07/19] dt-bindings: interrupt-controller: Add i.MX8qxp Display Controller interrupt controller Liu Ying
2024-12-23 6:41 ` [PATCH v7 08/19] dt-bindings: display: imx: Add i.MX8qxp Display Controller Liu Ying
2024-12-23 6:41 ` [PATCH v7 09/19] drm/imx: Add i.MX8qxp Display Controller display engine Liu Ying
2024-12-23 10:51 ` Dmitry Baryshkov
2024-12-24 6:22 ` Liu Ying
2024-12-24 6:44 ` Dmitry Baryshkov
2024-12-24 8:26 ` Liu Ying
2024-12-24 6:26 ` Liu Ying
2024-12-23 6:41 ` [PATCH v7 10/19] drm/imx: Add i.MX8qxp Display Controller pixel engine Liu Ying
2024-12-23 11:15 ` Dmitry Baryshkov
2024-12-24 6:47 ` Liu Ying
2024-12-23 6:41 ` [PATCH v7 11/19] drm/imx: Add i.MX8qxp Display Controller interrupt controller Liu Ying
2024-12-23 11:17 ` Dmitry Baryshkov
2024-12-23 6:41 ` [PATCH v7 12/19] drm/imx: Add i.MX8qxp Display Controller KMS Liu Ying
2024-12-23 11:32 ` Dmitry Baryshkov
2024-12-25 7:19 ` Liu Ying
2024-12-26 20:19 ` Dmitry Baryshkov
2024-12-30 1:50 ` Liu Ying
2024-12-23 6:41 ` [PATCH v7 13/19] MAINTAINERS: Add maintainer for i.MX8qxp Display Controller Liu Ying
2024-12-23 6:41 ` [DO NOT MERGE PATCH v7 14/19] dt-bindings: phy: mixel, mipi-dsi-phy: Allow assigned-clock* properties Liu Ying
2024-12-23 6:41 ` [DO NOT MERGE PATCH v7 15/19] dt-bindings: firmware: imx: Add SCU controlled display pixel link nodes Liu Ying
2024-12-23 6:41 ` [DO NOT MERGE PATCH v7 16/19] arm64: dts: imx8qxp: Add display controller subsystem Liu Ying
2024-12-23 6:41 ` [DO NOT MERGE PATCH v7 17/19] arm64: dts: imx8qxp: Add MIPI-LVDS combo subsystems Liu Ying
2024-12-23 6:41 ` [DO NOT MERGE PATCH v7 18/19] arm64: dts: imx8qxp-mek: Enable display controller Liu Ying
2024-12-23 6:41 ` [DO NOT MERGE PATCH v7 19/19] arm64: dts: imx8qxp-mek: Add MX8-DLVDS-LCD1 display module support Liu Ying
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=73c80079-582a-40cb-b9e1-e20fc96fe603@nxp.com \
--to=victor.liu@nxp.com \
--cc=agx@sigxcpu.org \
--cc=airlied@gmail.com \
--cc=aisheng.dong@nxp.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.baryshkov@linaro.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=festevam@gmail.com \
--cc=francesco@dolcini.it \
--cc=frank.li@nxp.com \
--cc=imx@lists.linux.dev \
--cc=kernel@pengutronix.de \
--cc=kishon@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=robh@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
--cc=simona@ffwll.ch \
--cc=tglx@linutronix.de \
--cc=tzimmermann@suse.de \
--cc=u.kleine-koenig@baylibre.com \
--cc=vkoul@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox