Message ID | 20241209033923.3009629-2-victor.liu@nxp.com |
---|---|
State | New |
Headers | show |
Series | Add Freescale i.MX8qxp Display Controller support | expand |
On Mon, Dec 09, 2024 at 11:39:05AM +0800, Liu Ying wrote: > Freescale i.MX8qxp Display Controller is implemented as construction set of > building blocks with unified concept and standardized interfaces. Document > all existing processing units. > > Signed-off-by: Liu Ying <victor.liu@nxp.com> > --- > v6: > * No change. > > v5: > * Document aliases for processing units which have multiple instances in > the Display Controller. Drop Rob's previous R-b tag. (Maxime) > > v4: > * Collect Rob's R-b tag. > > v3: > * Combine fsl,imx8qxp-dc-fetchunit-common.yaml, > fsl,imx8qxp-dc-fetchlayer.yaml and fsl,imx8qxp-dc-fetchwarp.yaml > into 1 schema doc fsl,imx8qxp-dc-fetchunit.yaml. (Rob) > * Document all processing units. (Rob) > > v2: > * Drop fsl,dc-*-id DT properties. (Krzysztof) > * Add port property to fsl,imx8qxp-dc-tcon.yaml. (Krzysztof) > * Fix register range sizes in examples. > > .../display/imx/fsl,imx8qxp-dc-blitblend.yaml | 46 ++++++ > .../display/imx/fsl,imx8qxp-dc-clut.yaml | 49 ++++++ > .../imx/fsl,imx8qxp-dc-constframe.yaml | 49 ++++++ > .../display/imx/fsl,imx8qxp-dc-dither.yaml | 49 ++++++ > .../display/imx/fsl,imx8qxp-dc-extdst.yaml | 77 +++++++++ > .../display/imx/fsl,imx8qxp-dc-fetchunit.yaml | 147 ++++++++++++++++++ > .../display/imx/fsl,imx8qxp-dc-filter.yaml | 47 ++++++ > .../display/imx/fsl,imx8qxp-dc-framegen.yaml | 68 ++++++++ > .../display/imx/fsl,imx8qxp-dc-gammacor.yaml | 38 +++++ > .../imx/fsl,imx8qxp-dc-layerblend.yaml | 45 ++++++ > .../display/imx/fsl,imx8qxp-dc-matrix.yaml | 48 ++++++ > .../display/imx/fsl,imx8qxp-dc-rop.yaml | 48 ++++++ > .../display/imx/fsl,imx8qxp-dc-safety.yaml | 34 ++++ > .../imx/fsl,imx8qxp-dc-scaling-engine.yaml | 89 +++++++++++ > .../display/imx/fsl,imx8qxp-dc-signature.yaml | 58 +++++++ > .../display/imx/fsl,imx8qxp-dc-store.yaml | 100 ++++++++++++ > .../display/imx/fsl,imx8qxp-dc-tcon.yaml | 50 ++++++ > 17 files changed, 1042 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-clut.yaml > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-constframe.yaml > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-dither.yaml > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-extdst.yaml > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-fetchunit.yaml > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-filter.yaml > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-framegen.yaml > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-gammacor.yaml > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-layerblend.yaml > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-matrix.yaml > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-rop.yaml > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-safety.yaml > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-scaling-engine.yaml > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-signature.yaml > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-store.yaml > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-tcon.yaml > > diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml > new file mode 100644 > index 000000000000..7f800e72c3f3 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml > @@ -0,0 +1,46 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-blitblend.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Freescale i.MX8qxp Display Controller Blit Blend Unit > + > +description: | > + Combines two input frames to a single output frame, all frames having the > + same dimension. > + > + Each Blit Blend Unit device should have an alias in the aliases node, in the > + form of dc<x>-blitblend<y>, where <x> is an integer specifying the Display > + Controller instance and <y> is an integer specifying the Blit Blend Unit > + device instance. That's really an abuse of aliases. If you need to describe connections between components, use the graph binding like everyone else does for display path components. Rob
On 12/11/2024, Rob Herring wrote: > On Mon, Dec 09, 2024 at 11:39:05AM +0800, Liu Ying wrote: >> Freescale i.MX8qxp Display Controller is implemented as construction set of >> building blocks with unified concept and standardized interfaces. Document >> all existing processing units. >> >> Signed-off-by: Liu Ying <victor.liu@nxp.com> >> --- >> v6: >> * No change. >> >> v5: >> * Document aliases for processing units which have multiple instances in >> the Display Controller. Drop Rob's previous R-b tag. (Maxime) >> >> v4: >> * Collect Rob's R-b tag. >> >> v3: >> * Combine fsl,imx8qxp-dc-fetchunit-common.yaml, >> fsl,imx8qxp-dc-fetchlayer.yaml and fsl,imx8qxp-dc-fetchwarp.yaml >> into 1 schema doc fsl,imx8qxp-dc-fetchunit.yaml. (Rob) >> * Document all processing units. (Rob) >> >> v2: >> * Drop fsl,dc-*-id DT properties. (Krzysztof) >> * Add port property to fsl,imx8qxp-dc-tcon.yaml. (Krzysztof) >> * Fix register range sizes in examples. >> >> .../display/imx/fsl,imx8qxp-dc-blitblend.yaml | 46 ++++++ >> .../display/imx/fsl,imx8qxp-dc-clut.yaml | 49 ++++++ >> .../imx/fsl,imx8qxp-dc-constframe.yaml | 49 ++++++ >> .../display/imx/fsl,imx8qxp-dc-dither.yaml | 49 ++++++ >> .../display/imx/fsl,imx8qxp-dc-extdst.yaml | 77 +++++++++ >> .../display/imx/fsl,imx8qxp-dc-fetchunit.yaml | 147 ++++++++++++++++++ >> .../display/imx/fsl,imx8qxp-dc-filter.yaml | 47 ++++++ >> .../display/imx/fsl,imx8qxp-dc-framegen.yaml | 68 ++++++++ >> .../display/imx/fsl,imx8qxp-dc-gammacor.yaml | 38 +++++ >> .../imx/fsl,imx8qxp-dc-layerblend.yaml | 45 ++++++ >> .../display/imx/fsl,imx8qxp-dc-matrix.yaml | 48 ++++++ >> .../display/imx/fsl,imx8qxp-dc-rop.yaml | 48 ++++++ >> .../display/imx/fsl,imx8qxp-dc-safety.yaml | 34 ++++ >> .../imx/fsl,imx8qxp-dc-scaling-engine.yaml | 89 +++++++++++ >> .../display/imx/fsl,imx8qxp-dc-signature.yaml | 58 +++++++ >> .../display/imx/fsl,imx8qxp-dc-store.yaml | 100 ++++++++++++ >> .../display/imx/fsl,imx8qxp-dc-tcon.yaml | 50 ++++++ >> 17 files changed, 1042 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-clut.yaml >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-constframe.yaml >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-dither.yaml >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-extdst.yaml >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-fetchunit.yaml >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-filter.yaml >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-framegen.yaml >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-gammacor.yaml >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-layerblend.yaml >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-matrix.yaml >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-rop.yaml >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-safety.yaml >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-scaling-engine.yaml >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-signature.yaml >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-store.yaml >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-tcon.yaml >> >> diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml >> new file mode 100644 >> index 000000000000..7f800e72c3f3 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml >> @@ -0,0 +1,46 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-blitblend.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Freescale i.MX8qxp Display Controller Blit Blend Unit >> + >> +description: | >> + Combines two input frames to a single output frame, all frames having the >> + same dimension. >> + >> + Each Blit Blend Unit device should have an alias in the aliases node, in the >> + form of dc<x>-blitblend<y>, where <x> is an integer specifying the Display >> + Controller instance and <y> is an integer specifying the Blit Blend Unit >> + device instance. > > That's really an abuse of aliases. If you need to describe connections > between components, use the graph binding like everyone else does for > display path components. I need to describe components' instance numbers which imply the connections between components but not vice versa. If I use the graph binding, I cannot get the instance numbers(0 or 1) of the two display engines(documented by fsl,imx8qxp-dc-display-engine.yaml). If you have no objections, I may add the instance numbers to compatible strings, like brcm,bcm2835-pixelvalve0.yaml. What do you think? > > Rob
On Wed, Dec 11, 2024 at 11:05:52AM +0800, Liu Ying wrote: > On 12/11/2024, Rob Herring wrote: > > On Mon, Dec 09, 2024 at 11:39:05AM +0800, Liu Ying wrote: > >> Freescale i.MX8qxp Display Controller is implemented as construction set of > >> building blocks with unified concept and standardized interfaces. Document > >> all existing processing units. > >> > >> Signed-off-by: Liu Ying <victor.liu@nxp.com> > >> --- > >> v6: > >> * No change. > >> > >> v5: > >> * Document aliases for processing units which have multiple instances in > >> the Display Controller. Drop Rob's previous R-b tag. (Maxime) > >> > >> v4: > >> * Collect Rob's R-b tag. > >> > >> v3: > >> * Combine fsl,imx8qxp-dc-fetchunit-common.yaml, > >> fsl,imx8qxp-dc-fetchlayer.yaml and fsl,imx8qxp-dc-fetchwarp.yaml > >> into 1 schema doc fsl,imx8qxp-dc-fetchunit.yaml. (Rob) > >> * Document all processing units. (Rob) > >> > >> v2: > >> * Drop fsl,dc-*-id DT properties. (Krzysztof) > >> * Add port property to fsl,imx8qxp-dc-tcon.yaml. (Krzysztof) > >> * Fix register range sizes in examples. > >> > >> .../display/imx/fsl,imx8qxp-dc-blitblend.yaml | 46 ++++++ > >> .../display/imx/fsl,imx8qxp-dc-clut.yaml | 49 ++++++ > >> .../imx/fsl,imx8qxp-dc-constframe.yaml | 49 ++++++ > >> .../display/imx/fsl,imx8qxp-dc-dither.yaml | 49 ++++++ > >> .../display/imx/fsl,imx8qxp-dc-extdst.yaml | 77 +++++++++ > >> .../display/imx/fsl,imx8qxp-dc-fetchunit.yaml | 147 ++++++++++++++++++ > >> .../display/imx/fsl,imx8qxp-dc-filter.yaml | 47 ++++++ > >> .../display/imx/fsl,imx8qxp-dc-framegen.yaml | 68 ++++++++ > >> .../display/imx/fsl,imx8qxp-dc-gammacor.yaml | 38 +++++ > >> .../imx/fsl,imx8qxp-dc-layerblend.yaml | 45 ++++++ > >> .../display/imx/fsl,imx8qxp-dc-matrix.yaml | 48 ++++++ > >> .../display/imx/fsl,imx8qxp-dc-rop.yaml | 48 ++++++ > >> .../display/imx/fsl,imx8qxp-dc-safety.yaml | 34 ++++ > >> .../imx/fsl,imx8qxp-dc-scaling-engine.yaml | 89 +++++++++++ > >> .../display/imx/fsl,imx8qxp-dc-signature.yaml | 58 +++++++ > >> .../display/imx/fsl,imx8qxp-dc-store.yaml | 100 ++++++++++++ > >> .../display/imx/fsl,imx8qxp-dc-tcon.yaml | 50 ++++++ > >> 17 files changed, 1042 insertions(+) > >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml > >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-clut.yaml > >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-constframe.yaml > >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-dither.yaml > >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-extdst.yaml > >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-fetchunit.yaml > >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-filter.yaml > >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-framegen.yaml > >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-gammacor.yaml > >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-layerblend.yaml > >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-matrix.yaml > >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-rop.yaml > >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-safety.yaml > >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-scaling-engine.yaml > >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-signature.yaml > >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-store.yaml > >> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-tcon.yaml > >> > >> diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml > >> new file mode 100644 > >> index 000000000000..7f800e72c3f3 > >> --- /dev/null > >> +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml > >> @@ -0,0 +1,46 @@ > >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > >> +%YAML 1.2 > >> +--- > >> +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-blitblend.yaml# > >> +$schema: http://devicetree.org/meta-schemas/core.yaml# > >> + > >> +title: Freescale i.MX8qxp Display Controller Blit Blend Unit > >> + > >> +description: | > >> + Combines two input frames to a single output frame, all frames having the > >> + same dimension. > >> + > >> + Each Blit Blend Unit device should have an alias in the aliases node, in the > >> + form of dc<x>-blitblend<y>, where <x> is an integer specifying the Display > >> + Controller instance and <y> is an integer specifying the Blit Blend Unit > >> + device instance. > > > > That's really an abuse of aliases. If you need to describe connections > > between components, use the graph binding like everyone else does for > > display path components. > > I need to describe components' instance numbers which imply the connections > between components but not vice versa. If I use the graph binding, I cannot > get the instance numbers(0 or 1) of the two display engines(documented by > fsl,imx8qxp-dc-display-engine.yaml). If you have no objections, I may add the > instance numbers to compatible strings, like brcm,bcm2835-pixelvalve0.yaml. > What do you think? You could have dc<x> and blitblend<y> aliases and use the graph to define the connections. But I'm not really a fan of adding custom aliases either. Why are the instance numbers important? Are the programming models or features of the instances different? If so, then a different compatible or property describing the feature may be appropriate. Rob
On 12/11/2024, Rob Herring wrote: > On Wed, Dec 11, 2024 at 11:05:52AM +0800, Liu Ying wrote: >> On 12/11/2024, Rob Herring wrote: >>> On Mon, Dec 09, 2024 at 11:39:05AM +0800, Liu Ying wrote: >>>> Freescale i.MX8qxp Display Controller is implemented as construction set of >>>> building blocks with unified concept and standardized interfaces. Document >>>> all existing processing units. >>>> >>>> Signed-off-by: Liu Ying <victor.liu@nxp.com> >>>> --- >>>> v6: >>>> * No change. >>>> >>>> v5: >>>> * Document aliases for processing units which have multiple instances in >>>> the Display Controller. Drop Rob's previous R-b tag. (Maxime) >>>> >>>> v4: >>>> * Collect Rob's R-b tag. >>>> >>>> v3: >>>> * Combine fsl,imx8qxp-dc-fetchunit-common.yaml, >>>> fsl,imx8qxp-dc-fetchlayer.yaml and fsl,imx8qxp-dc-fetchwarp.yaml >>>> into 1 schema doc fsl,imx8qxp-dc-fetchunit.yaml. (Rob) >>>> * Document all processing units. (Rob) >>>> >>>> v2: >>>> * Drop fsl,dc-*-id DT properties. (Krzysztof) >>>> * Add port property to fsl,imx8qxp-dc-tcon.yaml. (Krzysztof) >>>> * Fix register range sizes in examples. >>>> >>>> .../display/imx/fsl,imx8qxp-dc-blitblend.yaml | 46 ++++++ >>>> .../display/imx/fsl,imx8qxp-dc-clut.yaml | 49 ++++++ >>>> .../imx/fsl,imx8qxp-dc-constframe.yaml | 49 ++++++ >>>> .../display/imx/fsl,imx8qxp-dc-dither.yaml | 49 ++++++ >>>> .../display/imx/fsl,imx8qxp-dc-extdst.yaml | 77 +++++++++ >>>> .../display/imx/fsl,imx8qxp-dc-fetchunit.yaml | 147 ++++++++++++++++++ >>>> .../display/imx/fsl,imx8qxp-dc-filter.yaml | 47 ++++++ >>>> .../display/imx/fsl,imx8qxp-dc-framegen.yaml | 68 ++++++++ >>>> .../display/imx/fsl,imx8qxp-dc-gammacor.yaml | 38 +++++ >>>> .../imx/fsl,imx8qxp-dc-layerblend.yaml | 45 ++++++ >>>> .../display/imx/fsl,imx8qxp-dc-matrix.yaml | 48 ++++++ >>>> .../display/imx/fsl,imx8qxp-dc-rop.yaml | 48 ++++++ >>>> .../display/imx/fsl,imx8qxp-dc-safety.yaml | 34 ++++ >>>> .../imx/fsl,imx8qxp-dc-scaling-engine.yaml | 89 +++++++++++ >>>> .../display/imx/fsl,imx8qxp-dc-signature.yaml | 58 +++++++ >>>> .../display/imx/fsl,imx8qxp-dc-store.yaml | 100 ++++++++++++ >>>> .../display/imx/fsl,imx8qxp-dc-tcon.yaml | 50 ++++++ >>>> 17 files changed, 1042 insertions(+) >>>> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml >>>> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-clut.yaml >>>> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-constframe.yaml >>>> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-dither.yaml >>>> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-extdst.yaml >>>> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-fetchunit.yaml >>>> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-filter.yaml >>>> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-framegen.yaml >>>> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-gammacor.yaml >>>> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-layerblend.yaml >>>> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-matrix.yaml >>>> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-rop.yaml >>>> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-safety.yaml >>>> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-scaling-engine.yaml >>>> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-signature.yaml >>>> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-store.yaml >>>> create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-tcon.yaml >>>> >>>> diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml >>>> new file mode 100644 >>>> index 000000000000..7f800e72c3f3 >>>> --- /dev/null >>>> +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml >>>> @@ -0,0 +1,46 @@ >>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >>>> +%YAML 1.2 >>>> +--- >>>> +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-blitblend.yaml# >>>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>>> + >>>> +title: Freescale i.MX8qxp Display Controller Blit Blend Unit >>>> + >>>> +description: | >>>> + Combines two input frames to a single output frame, all frames having the >>>> + same dimension. >>>> + >>>> + Each Blit Blend Unit device should have an alias in the aliases node, in the >>>> + form of dc<x>-blitblend<y>, where <x> is an integer specifying the Display >>>> + Controller instance and <y> is an integer specifying the Blit Blend Unit >>>> + device instance. >>> >>> That's really an abuse of aliases. If you need to describe connections >>> between components, use the graph binding like everyone else does for >>> display path components. >> >> I need to describe components' instance numbers which imply the connections >> between components but not vice versa. If I use the graph binding, I cannot >> get the instance numbers(0 or 1) of the two display engines(documented by >> fsl,imx8qxp-dc-display-engine.yaml). If you have no objections, I may add the >> instance numbers to compatible strings, like brcm,bcm2835-pixelvalve0.yaml. >> What do you think? > > You could have dc<x> and blitblend<y> aliases and use the graph to > define the connections. But I'm not really a fan of adding custom > aliases either. Why are the instance numbers important? > > Are the programming models or features of the instances different? If > so, then a different compatible or property describing the feature may > be appropriate. The instances numbers are important mainly because the four ExtDsts(0/1/4/5) belong to content or safety streams of the two Display Engines, plus the four LayerBlends(0/1/2/3) in Pixel Engine have different numbers of input ports to connect with the outputs of other LayerBlends, though the reason for LBs is weak since the input ports can be expressed by the graph binding. 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 content safety stream0 stream0 stream1 stream1 | | | | | DE0 V V DE1 | | +-----+ +-----+ | ------>| FG0 | | FG1 |<------ +-----+ +-----+ | | V V ... ... (Safety stream still is supposed to still function when content stream fails over.) LayerBlend primary layer selections: static const enum dc_link_id prim_sels[] = { /* common options */ LINK_ID_NONE, LINK_ID_CONSTFRAME0, LINK_ID_CONSTFRAME1, LINK_ID_CONSTFRAME4, LINK_ID_CONSTFRAME5, /* * special options: * layerblend(n) has n special options, * from layerblend0 to layerblend(n - 1), e.g., * layerblend3 has 3 special options - * layerblend0/1/2. */ LINK_ID_LAYERBLEND0, LINK_ID_LAYERBLEND1, LINK_ID_LAYERBLEND2, LINK_ID_LAYERBLEND3, }; People may argue that ED instance number is also not that important, because content/safety stream can be inferred from FG input port numbers. That's true, but the connections between the internal devices are too complex and I'm afraid it's an over-kill to use the graph binding. I list LB2 primary layer selections and ED0 input selections here as examples: --8<-- Selection of the source for the prim input of the layerblend2 module 0: disable 10: blitblend9 12: constframe0 16: constframe1 14: constframe4 18: constframe5 27: matrix4 28: hscaler4 29: vscaler4 30: matrix5 31: hscaler5 32: vscaler5 34: layerblend1 33: layerblend0 --8<-- --8<-- Selection of the source for the src input of the extdst0 module 0: disable 10: blitblend9 12: constframe0 16: constframe1 14: constframe4 18: constframe5 27: matrix4 28: hscaler4 29: vscaler4 30: matrix5 31: hscaler5 32: vscaler5 36: layerblend3 35: layerblend2 34: layerblend1 33: layerblend0 --8<-- TL;DR: I'd like to get instance numbers because of an appropriate programming model _and_ different features of EDs and LBs(content/safety steam for EDs + different input selections for LBs). If no objections, I'll add instance numbers to compatible strings in next version. > > Rob
diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml new file mode 100644 index 000000000000..7f800e72c3f3 --- /dev/null +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml @@ -0,0 +1,46 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-blitblend.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale i.MX8qxp Display Controller Blit Blend Unit + +description: | + Combines two input frames to a single output frame, all frames having the + same dimension. + + Each Blit Blend Unit device should have an alias in the aliases node, in the + form of dc<x>-blitblend<y>, where <x> is an integer specifying the Display + Controller instance and <y> is an integer specifying the Blit Blend Unit + device instance. + +maintainers: + - Liu Ying <victor.liu@nxp.com> + +properties: + compatible: + const: fsl,imx8qxp-dc-blitblend + + reg: + maxItems: 2 + + reg-names: + items: + - const: pec + - const: cfg + +required: + - compatible + - reg + - reg-names + +additionalProperties: false + +examples: + - | + blitblend@56180920 { + compatible = "fsl,imx8qxp-dc-blitblend"; + reg = <0x56180920 0x10>, <0x56183c00 0x3c>; + reg-names = "pec", "cfg"; + }; diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-clut.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-clut.yaml new file mode 100644 index 000000000000..351692d8942e --- /dev/null +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-clut.yaml @@ -0,0 +1,49 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-clut.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale i.MX8qxp Display Controller Color Lookup Table + +description: | + The unit implements 3 look-up tables with 256 x 10 bit entries each. These + can be used for different kinds of applications. From 10-bit input values + only upper 8 bits are used. + + The unit supports color lookup, index lookup, dithering and alpha masking. + + Each Color Lookup Table device should have an alias in the aliases node, in + the form of dc<x>-clut<y>, where <x> is an integer specifying the Display + Controller instance and <y> is an integer specifying the Color Lookup Table + device instance. + +maintainers: + - Liu Ying <victor.liu@nxp.com> + +properties: + compatible: + const: fsl,imx8qxp-dc-clut + + reg: + maxItems: 2 + + reg-names: + items: + - const: pec + - const: cfg + +required: + - compatible + - reg + - reg-names + +additionalProperties: false + +examples: + - | + clut@56180880 { + compatible = "fsl,imx8qxp-dc-clut"; + reg = <0x56180880 0x10>, <0x56182400 0x404>; + reg-names = "pec", "cfg"; + }; diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-constframe.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-constframe.yaml new file mode 100644 index 000000000000..cae19bc05d6e --- /dev/null +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-constframe.yaml @@ -0,0 +1,49 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-constframe.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale i.MX8qxp Display Controller Constant Frame + +description: | + The Constant Frame unit is used instead of a Fetch unit where generation of + constant color frames only is sufficient. This is the case for the background + planes of content and safety streams in a Display Controller. + + The color can be setup to any RGBA value. + + Each Constant Frame device should have an alias in the aliases node, in the + form of dc<x>-constframe<y>, where <x> is an integer specifying the Display + Controller instance and <y> is an integer specifying the Constant Frame device + instance. + +maintainers: + - Liu Ying <victor.liu@nxp.com> + +properties: + compatible: + const: fsl,imx8qxp-dc-constframe + + reg: + maxItems: 2 + + reg-names: + items: + - const: pec + - const: cfg + +required: + - compatible + - reg + - reg-names + +additionalProperties: false + +examples: + - | + constframe@56180960 { + compatible = "fsl,imx8qxp-dc-constframe"; + reg = <0x56180960 0xc>, <0x56184400 0x20>; + reg-names = "pec", "cfg"; + }; diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-dither.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-dither.yaml new file mode 100644 index 000000000000..cb0b4a05cfdc --- /dev/null +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-dither.yaml @@ -0,0 +1,49 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-dither.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale i.MX8qxp Display Controller Dither Unit + +description: | + The unit can increase the physical color resolution of a display from 5, 6, 7 + or 8 bits per RGB channel to a virtual resolution of 10 bits. The physical + resolution can be set individually for each channel. + + The resolution is increased by mixing the two physical colors that are nearest + to the virtual color code in a variable ratio either by time (temporal + dithering) or by position (spatial dithering). + + An optimized algorithm for temporal dithering minimizes noise artifacts on the + output image. + + The dither operation can be individually enabled or disabled for each pixel + using the alpha input bit. + + Each Dither Unit device should have an alias in the aliases node, in the form + of dc<x>-dither<y>, where <x> is an integer specifying the Display Controller + instance and <y> is an integer specifying the Dither Unit device instance. + +maintainers: + - Liu Ying <victor.liu@nxp.com> + +properties: + compatible: + const: fsl,imx8qxp-dc-dither + + reg: + maxItems: 1 + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + dither@5618c400 { + compatible = "fsl,imx8qxp-dc-dither"; + reg = <0x5618c400 0x14>; + }; diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-extdst.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-extdst.yaml new file mode 100644 index 000000000000..b382af1de1c0 --- /dev/null +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-extdst.yaml @@ -0,0 +1,77 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-extdst.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale i.MX8qxp Display Controller External Destination Interface + +description: | + The External Destination unit is the interface between the internal pixel + processing pipeline of the Pixel Engine, which is 30-bit RGB plus 8-bit Alpha, + and a Display Engine. + + It comprises the following built-in Gamma apply function. + + +------X-----------------------+ + | | ExtDst Unit | + | V | + | +-------+ | + | | Gamma | | + | +-------+ | + | | | + | V + + +------X-----------------------+ + + The output format is 24-bit RGB plus 1-bit Alpha. Conversion from 10 to 8 + bits is done by LSBit truncation. Alpha output bit is 1 for input 255, 0 + otherwise. + + Each External Destination unit device should have an alias in the aliases + node, in the form of dc<x>-blitblend<y>, where <x> is an integer specifying + the Display Controller instance and <y> is an integer specifying the External + Destination unit device instance. + +maintainers: + - Liu Ying <victor.liu@nxp.com> + +properties: + compatible: + const: fsl,imx8qxp-dc-extdst + + reg: + maxItems: 2 + + reg-names: + items: + - const: pec + - const: cfg + + interrupts: + maxItems: 3 + + interrupt-names: + items: + - const: shdload + - const: framecomplete + - const: seqcomplete + +required: + - compatible + - reg + - reg-names + - interrupts + - interrupt-names + +additionalProperties: false + +examples: + - | + extdst@56180980 { + compatible = "fsl,imx8qxp-dc-extdst"; + reg = <0x56180980 0x1c>, <0x56184800 0x28>; + reg-names = "pec", "cfg"; + interrupt-parent = <&dc0_intc>; + interrupts = <3>, <4>, <5>; + interrupt-names = "shdload", "framecomplete", "seqcomplete"; + }; diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-fetchunit.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-fetchunit.yaml new file mode 100644 index 000000000000..2141e692bc02 --- /dev/null +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-fetchunit.yaml @@ -0,0 +1,147 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-fetchunit.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale i.MX8qxp Display Controller Fetch Unit + +description: | + The Fetch Unit is the interface between the AXI bus for source buffer access + and the internal pixel processing pipeline, which is 30-bit RGB plus 8-bit + Alpha. + + It is used to generate foreground planes in Display Controllers and source + planes in Blit Engines, and comprises the following built-in functions to + convert a wide range of frame buffer types. + + +---------X-----------------------------------------+ + | | Fetch Unit | + | V | + | +---------+ | + | | | | + | | Decode | Decompression [Decode] | + | | | | + | +---------+ | + | | | + | V | + | +---------+ | + | | Clip & | Clip Window [All] | + | | Overlay | Plane composition [Layer, Warp] | + | | | | + | +---------+ | + | | | + | V | + | +---------+ | + | | Re- | Flip/Rotate/Repl./Drop [All] | + X--> | sample | Perspective/Affine warping [Persp] | + | | | | Arbitrary warping [Warp, Persp] | + | | +---------+ | + | | | | + | | V | + | | +---------+ | + | | | | | + | | | Palette | Color Palette [Layer, Decode] | + | | | | | + | | +---------+ | + | | | | + | | V | + | | +---------+ | + | | | Extract | Raw to RGBA/YUV [All] | + | | | & | Bit width expansion [All] | + | | | Expand | | + | | +---------+ | + | | | | + | | V | + | | +---------+ | + | | | | Planar to packed | + | |->| Combine | [Decode, Warp, Persp] | + | | | | | + | | +---------+ | + | | | | + | | V | + | | +---------+ | + | | | | YUV422 to YUV444 | + | | | Chroma | [Decode, Persp] | + | | | | | + | | +---------+ | + | | | | + | | V | + | | +---------+ | + | | | | YUV to RGB | + | | | Color | [Warp, Persp, Decode, Layer] | + | | | | | + | | +---------+ | + | | | | + | | V | + | | +---------+ | + | | | | Gamma removal | + | | | Gamma | [Warp, Persp, Decode, Layer] | + | | | | | + | | +---------+ | + | | | | + | | V | + | | +---------+ | + | | | | Alpla multiply, RGB pre-multiply | + | ->| Multiply| [Warp, Persp, Decode, Layer] | + | | | | + | --------- | + | | | + | V | + | +---------+ | + | | | Bilinear filter | + | | Filter | [Warp, Persp] | + | | | | + | +---------+ | + | | | + | V | + +---------X-----------------------------------------+ + + Note that different derivatives of the Fetch Unit exist. Each implements a + specific subset only of the pipeline stages shown above. Restrictions for the + units are specified in [square brackets]. + + Each Fetch Unit device should have an alias in the aliases node, in the form + of dc<x>-fetch<y><z>, where <x> is an integer specifying the Display + Controller instance, <y> specifies different derivative names(decode, eco, + layer and warp) and <z> is an integer specifying the Fetch Unit device + instance. + +maintainers: + - Liu Ying <victor.liu@nxp.com> + +properties: + compatible: + enum: + - fsl,imx8qxp-dc-fetchdecode + - fsl,imx8qxp-dc-fetcheco + - fsl,imx8qxp-dc-fetchlayer + - fsl,imx8qxp-dc-fetchwarp + + reg: + maxItems: 2 + + reg-names: + items: + - const: pec + - const: cfg + + fsl,prg: + $ref: /schemas/types.yaml#/definitions/phandle + description: + Optional Prefetch Resolve Gasket associated with the Fetch Unit. + +required: + - compatible + - reg + - reg-names + +additionalProperties: false + +examples: + - | + fetchlayer@56180ac0 { + compatible = "fsl,imx8qxp-dc-fetchlayer"; + reg = <0x56180ac0 0xc>, <0x56188400 0x404>; + reg-names = "pec", "cfg"; + }; diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-filter.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-filter.yaml new file mode 100644 index 000000000000..e1bdcdd893b5 --- /dev/null +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-filter.yaml @@ -0,0 +1,47 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-filter.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale i.MX8qxp Display Controller Filter Unit + +description: | + 5x5 FIR filter with 25 programmable coefficients. + + Typical applications are image blurring, sharpening or support for edge + detection algorithms. + + Each Filter Unit device should have an alias in the aliases node, in the form + of dc<x>-filter<y>, where <x> is an integer specifying the Display Controller + instance and <y> is an integer specifying the Filter Unit device instance. + +maintainers: + - Liu Ying <victor.liu@nxp.com> + +properties: + compatible: + const: fsl,imx8qxp-dc-filter + + reg: + maxItems: 2 + + reg-names: + items: + - const: pec + - const: cfg + +required: + - compatible + - reg + - reg-names + +additionalProperties: false + +examples: + - | + filter@56180900 { + compatible = "fsl,imx8qxp-dc-filter"; + reg = <0x56180900 0x10>, <0x56183800 0x30>; + reg-names = "pec", "cfg"; + }; diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-framegen.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-framegen.yaml new file mode 100644 index 000000000000..d784f6e59312 --- /dev/null +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-framegen.yaml @@ -0,0 +1,68 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-framegen.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale i.MX8qxp Display Controller Frame Generator + +description: | + The Frame Generator (FrameGen) module generates a programmable video timing + and optionally allows to synchronize the generated video timing to external + synchronization signals. + + Each FrameGen device should have an alias in the aliases node, in the form of + dc<x>-framegen<y>, where <x> is an integer specifying the Display Controller + instance and <y> is an integer specifying the FrameGen device instance. + +maintainers: + - Liu Ying <victor.liu@nxp.com> + +properties: + compatible: + const: fsl,imx8qxp-dc-framegen + + reg: + maxItems: 1 + + clocks: + maxItems: 1 + + interrupts: + maxItems: 8 + + interrupt-names: + items: + - const: int0 + - const: int1 + - const: int2 + - const: int3 + - const: primsync_on + - const: primsync_off + - const: secsync_on + - const: secsync_off + +required: + - compatible + - reg + - clocks + - interrupts + - interrupt-names + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/imx8-lpcg.h> + #include <dt-bindings/firmware/imx/rsrc.h> + + framegen@5618b800 { + compatible = "fsl,imx8qxp-dc-framegen"; + 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"; + }; diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-gammacor.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-gammacor.yaml new file mode 100644 index 000000000000..895501566210 --- /dev/null +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-gammacor.yaml @@ -0,0 +1,38 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-gammacor.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale i.MX8qxp Display Controller Gamma Correction Unit + +description: | + The unit supports non-linear color transformation. + + Each Gamma Correction Unit device should have an alias in the aliases node, + in the form of dc<x>-gammacor<y>, where <x> is an integer specifying the + Display Controller instance and <y> is an integer specifying the Gamma + Correction Unit device instance. + +maintainers: + - Liu Ying <victor.liu@nxp.com> + +properties: + compatible: + const: fsl,imx8qxp-dc-gammacor + + reg: + maxItems: 1 + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + gammacor@5618c000 { + compatible = "fsl,imx8qxp-dc-gammacor"; + reg = <0x5618c000 0x20>; + }; diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-layerblend.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-layerblend.yaml new file mode 100644 index 000000000000..50c0c1dacb41 --- /dev/null +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-layerblend.yaml @@ -0,0 +1,45 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-layerblend.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale i.MX8qxp Display Controller Layer Blend Unit + +description: | + Combines two input frames to a single output frame. + + Each Layer Blend Unit device should have an alias in the aliases node, in the + form of dc<x>-layerblend<y>, where <x> is an integer specifying the Display + Controller instance and <y> is an integer specifying the Layer Blend Unit + device instance. + +maintainers: + - Liu Ying <victor.liu@nxp.com> + +properties: + compatible: + const: fsl,imx8qxp-dc-layerblend + + reg: + maxItems: 2 + + reg-names: + items: + - const: pec + - const: cfg + +required: + - compatible + - reg + - reg-names + +additionalProperties: false + +examples: + - | + layerblend@56180ba0 { + compatible = "fsl,imx8qxp-dc-layerblend"; + reg = <0x56180ba0 0x10>, <0x5618a400 0x20>; + reg-names = "pec", "cfg"; + }; diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-matrix.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-matrix.yaml new file mode 100644 index 000000000000..8778526e1eb8 --- /dev/null +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-matrix.yaml @@ -0,0 +1,48 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-matrix.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale i.MX8qxp Display Controller Color Matrix + +description: | + The unit supports linear color transformation, alpha pre-multiply and + alpha masking. + + Each Color Matrix device should have an alias in the aliases node, in the form + of dc<x>-matrix<y>, where <x> is an integer specifying the Display Controller + instance and <y> is an integer specifying the Color Matrix device instance. + +maintainers: + - Liu Ying <victor.liu@nxp.com> + +properties: + compatible: + const: fsl,imx8qxp-dc-matrix + + reg: + minItems: 1 + maxItems: 2 + + reg-names: + oneOf: + - const: cfg # matrix in display engine + - items: # matrix in pixel engine + - const: pec + - const: cfg + +required: + - compatible + - reg + - reg-names + +additionalProperties: false + +examples: + - | + matrix@5618bc00 { + compatible = "fsl,imx8qxp-dc-matrix"; + reg = <0x5618bc00 0x3c>; + reg-names = "cfg"; + }; diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-rop.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-rop.yaml new file mode 100644 index 000000000000..a724cf960250 --- /dev/null +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-rop.yaml @@ -0,0 +1,48 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-rop.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale i.MX8qxp Display Controller Raster Operation Unit + +description: | + The unit can combine up to three input frames to a single output frame, all + having the same dimension. + + The unit supports logic operations, arithmetic operations and packing. + + Each Raster Operation Unit device should have an alias in the aliases node, + in the form of dc<x>-rop<y>, where <x> is an integer specifying the Display + Controller instance and <y> is an integer specifying the Raster Operation Unit + device instance. + +maintainers: + - Liu Ying <victor.liu@nxp.com> + +properties: + compatible: + const: fsl,imx8qxp-dc-rop + + reg: + maxItems: 2 + + reg-names: + items: + - const: pec + - const: cfg + +required: + - compatible + - reg + - reg-names + +additionalProperties: false + +examples: + - | + rop@56180860 { + compatible = "fsl,imx8qxp-dc-rop"; + reg = <0x56180860 0x10>, <0x56182000 0x20>; + reg-names = "pec", "cfg"; + }; diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-safety.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-safety.yaml new file mode 100644 index 000000000000..66c12948ab09 --- /dev/null +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-safety.yaml @@ -0,0 +1,34 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-safety.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale i.MX8qxp Display Controller Safety Unit + +description: + The unit allows corresponding processing units to be configured in a path + leading to multiple endpoints. + +maintainers: + - Liu Ying <victor.liu@nxp.com> + +properties: + compatible: + const: fsl,imx8qxp-dc-safety + + reg: + maxItems: 1 + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + safety@56180800 { + compatible = "fsl,imx8qxp-dc-safety"; + reg = <0x56180800 0x1c>; + }; diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-scaling-engine.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-scaling-engine.yaml new file mode 100644 index 000000000000..a1d6673f2a05 --- /dev/null +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-scaling-engine.yaml @@ -0,0 +1,89 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-scaling-engine.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale i.MX8qxp Display Controller Scaling Engine + +description: | + The unit can change the dimension of the input frame by nearest or linear + re-sampling with 1/32 sub pixel precision. + + Internally it consist of two independent blocks for horizontal and vertical + scaling. The sequence of both operations is arbitrary. + + Any frame dimensions between 1 and 16384 pixels in width and height are + supported, except that the vertical scaler has a frame width maximum + depending of the system's functional limitations. + + In general all scale factors are supported inside the supported frame + dimensions. In range of scale factors 1/16..16 the filtered output colors + are LSBit precise (e.g. DC ripple free). + + +-----------+ + | Line | + | Buffer | + +-----------+ + ^ + | + V + |\ +-----------+ + ------+ | | | + | | +-->| Vertical |---- + | ----+ | | Scaler | | + | | |/ +-----------+ | + | | | + | | | + | | | |\ + | ------------- -------------+-----+ | + Input --+ X | +--> Output + | ------------- -------------+-----+ | + | | | |/ + | | | + | | |\ +-----------+ | + | ----+ | | | | + | | +-->| Horizontal|---- + ------+ | | Scaler | + |/ +-----------+ + + The unit supports downscaling, upscaling, sub pixel translation and bob + de-interlacing. + + Each Scaling Engine device should have an alias in the aliases node, in the + form of dc<x>-<y>scaler<z>, where <x> is an integer specifying the Display + Controller instance, <y> specifies scaling type(either "h" for horizontal + scaler or "v" for vertical scaler) and <z> is an integer specifying the + Scaling Engine device instance. + +maintainers: + - Liu Ying <victor.liu@nxp.com> + +properties: + compatible: + enum: + - fsl,imx8qxp-dc-hscaler + - fsl,imx8qxp-dc-vscaler + + reg: + maxItems: 2 + + reg-names: + items: + - const: pec + - const: cfg + +required: + - compatible + - reg + - reg-names + +additionalProperties: false + +examples: + - | + hscaler@561808c0 { + compatible = "fsl,imx8qxp-dc-hscaler"; + reg = <0x561808c0 0x10>, <0x56183000 0x18>; + reg-names = "pec", "cfg"; + }; diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-signature.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-signature.yaml new file mode 100644 index 000000000000..5403e3359fcb --- /dev/null +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-signature.yaml @@ -0,0 +1,58 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-signature.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale i.MX8qxp Display Controller Signature Unit + +description: | + In order to control the correctness of display output, signature values can + be computed for each frame and compared against reference values. In case of + a mismatch (signature violation) a HW event can be triggered, for example a + SW interrupt. + + This unit supports signature computation, reference check, evaluation windows, + alpha masking and panic modes. + + Each Signature Unit device should have an alias in the aliases node, in the + form of dc<x>-signature<y>, where <x> is an integer specifying the Display + Controller instance and <y> is an integer specifying the Signature Unit device + instance. + +maintainers: + - Liu Ying <victor.liu@nxp.com> + +properties: + compatible: + const: fsl,imx8qxp-dc-signature + + reg: + maxItems: 1 + + interrupts: + maxItems: 3 + + interrupt-names: + items: + - const: shdload + - const: valid + - const: error + +required: + - compatible + - reg + - interrupts + - interrupt-names + +additionalProperties: false + +examples: + - | + signature@5618d000 { + compatible = "fsl,imx8qxp-dc-signature"; + reg = <0x5618d000 0x140>; + interrupt-parent = <&dc0_intc>; + interrupts = <22>, <23>, <24>; + interrupt-names = "shdload", "valid", "error"; + }; diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-store.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-store.yaml new file mode 100644 index 000000000000..38d86e3dd6b1 --- /dev/null +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-store.yaml @@ -0,0 +1,100 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-store.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale i.MX8qxp Display Controller Store Unit + +description: | + The Store unit is the interface between the internal pixel processing + pipeline, which is 30-bit RGB plus 8-bit Alpha, and the AXI bus for + destination buffer access. It is used for the destination of Blit Engines. + It comprises a set of built-in functions to generate a wide range of buffer + formats. Note, that these are exactly inverse to corresponding functions in + the Fetch Unit. + + +------X-------------------------+ + | | Store Unit | + | V | + | +-------+ | + | | Gamma | Gamma apply | + | +-------+ | + | | | + | V | + | +-------+ | + | | Color | RGB to YUV | + | +-------+ | + | | | + | V | + | +-------+ | + | | Chroma| YUV444 to 422 | + | +-------+ | + | | | + | V | + | +-------+ | + | | Reduce| Bit width reduction | + | | | dithering | + | +-------+ | + | | | + | V | + | +-------+ | + | | Pack | RGBA/YUV to RAW | + | | Encode| or Compression | + | +-------+ | + | | | + | V | + +------X-------------------------+ + + Each Store Unit device should have an alias in the aliases node, in the form + of dc<x>-store<y>, where <x> is an integer specifying the Display Controller + instance and <y> is an integer specifying the Store Unit device instance. + +maintainers: + - Liu Ying <victor.liu@nxp.com> + +properties: + compatible: + const: fsl,imx8qxp-dc-store + + reg: + maxItems: 2 + + reg-names: + items: + - const: pec + - const: cfg + + interrupts: + maxItems: 3 + + interrupt-names: + items: + - const: shdload + - const: framecomplete + - const: seqcomplete + + fsl,lts: + $ref: /schemas/types.yaml#/definitions/phandle + description: + Optional Linear Tile Store associated with the Store Unit. + +required: + - compatible + - reg + - reg-names + - interrupts + - interrupt-names + +additionalProperties: false + +examples: + - | + store@56180940 { + compatible = "fsl,imx8qxp-dc-store"; + reg = <0x56180940 0x1c>, <0x56184000 0x5c>; + reg-names = "pec", "cfg"; + interrupt-parent = <&dc0_intc>; + interrupts = <0>, <1>, <2>; + interrupt-names = "shdload", "framecomplete", "seqcomplete"; + }; diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-tcon.yaml b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-tcon.yaml new file mode 100644 index 000000000000..87f02d92d55e --- /dev/null +++ b/Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-tcon.yaml @@ -0,0 +1,50 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/imx/fsl,imx8qxp-dc-tcon.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale i.MX8qxp Display Controller Timing Controller + +description: | + The TCon can generate a wide range of customized synchronization signals and + does the mapping of the color bits to the output. + + Each Timing Controller device should have an alias in the aliases node, in the + form of dc<x>-tcon<y>, where <x> is an integer specifying the Display + Controller instance and <y> is an integer specifying the Timing Controller + device instance. + +maintainers: + - Liu Ying <victor.liu@nxp.com> + +properties: + compatible: + const: fsl,imx8qxp-dc-tcon + + reg: + maxItems: 1 + + port: + $ref: /schemas/graph.yaml#/properties/port + description: video output + +required: + - compatible + - reg + - port + +additionalProperties: false + +examples: + - | + tcon@5618c800 { + compatible = "fsl,imx8qxp-dc-tcon"; + reg = <0x5618c800 0x588>; + + port { + dc0_disp0_dc0_pixel_combiner_ch0: endpoint { + remote-endpoint = <&dc0_pixel_combiner_ch0_dc0_disp0>; + }; + }; + };
Freescale i.MX8qxp Display Controller is implemented as construction set of building blocks with unified concept and standardized interfaces. Document all existing processing units. Signed-off-by: Liu Ying <victor.liu@nxp.com> --- v6: * No change. v5: * Document aliases for processing units which have multiple instances in the Display Controller. Drop Rob's previous R-b tag. (Maxime) v4: * Collect Rob's R-b tag. v3: * Combine fsl,imx8qxp-dc-fetchunit-common.yaml, fsl,imx8qxp-dc-fetchlayer.yaml and fsl,imx8qxp-dc-fetchwarp.yaml into 1 schema doc fsl,imx8qxp-dc-fetchunit.yaml. (Rob) * Document all processing units. (Rob) v2: * Drop fsl,dc-*-id DT properties. (Krzysztof) * Add port property to fsl,imx8qxp-dc-tcon.yaml. (Krzysztof) * Fix register range sizes in examples. .../display/imx/fsl,imx8qxp-dc-blitblend.yaml | 46 ++++++ .../display/imx/fsl,imx8qxp-dc-clut.yaml | 49 ++++++ .../imx/fsl,imx8qxp-dc-constframe.yaml | 49 ++++++ .../display/imx/fsl,imx8qxp-dc-dither.yaml | 49 ++++++ .../display/imx/fsl,imx8qxp-dc-extdst.yaml | 77 +++++++++ .../display/imx/fsl,imx8qxp-dc-fetchunit.yaml | 147 ++++++++++++++++++ .../display/imx/fsl,imx8qxp-dc-filter.yaml | 47 ++++++ .../display/imx/fsl,imx8qxp-dc-framegen.yaml | 68 ++++++++ .../display/imx/fsl,imx8qxp-dc-gammacor.yaml | 38 +++++ .../imx/fsl,imx8qxp-dc-layerblend.yaml | 45 ++++++ .../display/imx/fsl,imx8qxp-dc-matrix.yaml | 48 ++++++ .../display/imx/fsl,imx8qxp-dc-rop.yaml | 48 ++++++ .../display/imx/fsl,imx8qxp-dc-safety.yaml | 34 ++++ .../imx/fsl,imx8qxp-dc-scaling-engine.yaml | 89 +++++++++++ .../display/imx/fsl,imx8qxp-dc-signature.yaml | 58 +++++++ .../display/imx/fsl,imx8qxp-dc-store.yaml | 100 ++++++++++++ .../display/imx/fsl,imx8qxp-dc-tcon.yaml | 50 ++++++ 17 files changed, 1042 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-blitblend.yaml create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-clut.yaml create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-constframe.yaml create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-dither.yaml create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-extdst.yaml create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-fetchunit.yaml create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-filter.yaml create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-framegen.yaml create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-gammacor.yaml create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-layerblend.yaml create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-matrix.yaml create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-rop.yaml create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-safety.yaml create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-scaling-engine.yaml create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-signature.yaml create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-store.yaml create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-tcon.yaml