Re: [PATCH 01/10] dt-bindings: display: imx: Add some i.MX8qxp Display Controller processing units
From: Liu Ying <victor.liu@nxp.com>
Date: 2024-07-09 07:35:44
Also in:
dri-devel, imx, linux-devicetree, lkml
On 07/09/2024, Rob Herring wrote:
On Mon, Jul 08, 2024 at 02:30:37PM +0800, Liu Ying wrote:quoted
On 07/07/2024, Krzysztof Kozlowski wrote:quoted
On 05/07/2024 11:09, Liu Ying wrote:quoted
Freescale i.MX8qxp Display Controller is implemented as construction set of building blocks with unified concept and standardized interfaces. Document some processing units to support two display outputs.quoted
+maintainers: + - Liu Ying [off-list ref] + +properties: + compatible: + const: fsl,imx8qxp-dc-tcon + + reg: + maxItems: 1 + + fsl,dc-tc-id: + description: Timing Controller unit instance numberNo instance numbering. This applies to your entire patchset.Then, I'll call of_alias_get_id() from the drivers to get instance number instead.Ideally, no.quoted
As i.MX8qm SoC embeds two Display Controllers, the alias stem would contain the Display Controller instance number, like "dc0-tcon" and "dc1-tcon". Is this ok?The format of aliases is fooN, so no. Aliases should also be generic rather than vendor specific. If you need to describe the connection of components in the display pipeline, then use the graph binding.
I mentioned OF graph in the previous patch set discussion. " There are 50+ individual DPU internal units and 20+ unit types. Do you really mean that each unit should be a separate device in device tree and each unit type should have it's own compatible string ? Almost all units have input/output ports to connect with each other. Some units have multiple input/output options. Should we use OF graph ports to tell the connections ? " https://lists.infradead.org/pipermail/linux-arm-kernel/2023-August/861811.html I hope we don't end up using the graph binding, as there are too many input/output options between processing units in the pixel engine, e.g., " Selection of the source for the sec input of the layerblend0 module 000000b - Unit layerblend0 input port sec is disabled 010100b - Unit layerblend0 input port sec is connected to output of unit fetchwarp2 010110b - Unit layerblend0 input port sec is connected to output of unit fetchdecode0 011000b - Unit layerblend0 input port sec is connected to output of unit fetchdecode1 011010b - Unit layerblend0 input port sec is connected to output of unit fetchlayer0 011011b - Unit layerblend0 input port sec is connected to output of unit matrix4 011100b - Unit layerblend0 input port sec is connected to output of unit hscaler4 011101b - Unit layerblend0 input port sec is connected to output of unit vscaler4 011110b - Unit layerblend0 input port sec is connected to output of unit matrix5 011111b - Unit layerblend0 input port sec is connected to output of unit hscaler5 100000b - Unit layerblend0 input port sec is connected to output of unit vscaler5 Selection of the source for the prim input of the layerblend0 module 000000b - Unit layerblend0 input port prim is disabled 000000b - Unit layerblend0 input port prim is connected to output of unit constframe1 001010b - Unit layerblend0 input port prim is connected to output of unit blitblend9 001100b - Unit layerblend0 input port prim is connected to output of unit constframe0 001110b - Unit layerblend0 input port prim is connected to output of unit constframe4 010010b - Unit layerblend0 input port prim is connected to output of unit constframe5 011011b - Unit layerblend0 input port prim is connected to output of unit matrix4 011100b - Unit layerblend0 input port prim is connected to output of unit hscaler4 011101b - Unit layerblend0 input port prim is connected to output of unit vscaler4 011110b - Unit layerblend0 input port prim is connected to output of unit matrix5 011111b - Unit layerblend0 input port prim is connected to output of unit hscaler5 100000b - Unit layerblend0 input port prim is connected to output of unit vscaler5 " Also, Matrix, GammarCor and Dither in the display engine can be bypassed. Matrix can be put at optional position(1 or 2). Signature can be tapped after FrameGen, GammaCor, Matrix or Dither. FrameGen -> Matrix(1) -> GammaCor -> Maxtrix(2) -> Dither -> TCon Aside from the alias approach, another idea is to specify the instance number in compatible string, like "fsl,imx8qxp-dc-constframe5", no?
Rob
-- Regards, Liu Ying