Message ID | 20220126071932.32615-4-jason-jh.lin@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add Mediatek Soc DRM (vdosys0) support for mt8195 | expand |
Hi, Rob: This patch looks good to me, how do you think about it? Regards, Chun-Kuang. jason-jh.lin <jason-jh.lin@mediatek.com> 於 2022年1月26日 週三 下午3:19寫道: > > 1. Remove mediatek,dislpay.txt > 2. Split each display function block to individual yaml file. > > Signed-off-by: jason-jh.lin <jason-jh.lin@mediatek.com> > Acked-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> > --- > .../display/mediatek/mediatek,aal.yaml | 76 ++++++ > .../display/mediatek/mediatek,ccorr.yaml | 71 ++++++ > .../display/mediatek/mediatek,color.yaml | 85 +++++++ > .../display/mediatek/mediatek,disp.txt | 219 ------------------ > .../display/mediatek/mediatek,dither.yaml | 75 ++++++ > .../display/mediatek/mediatek,gamma.yaml | 76 ++++++ > .../display/mediatek/mediatek,merge.yaml | 66 ++++++ > .../display/mediatek/mediatek,mutex.yaml | 82 +++++++ > .../display/mediatek/mediatek,od.yaml | 53 +++++ > .../display/mediatek/mediatek,ovl-2l.yaml | 88 +++++++ > .../display/mediatek/mediatek,ovl.yaml | 98 ++++++++ > .../display/mediatek/mediatek,postmask.yaml | 69 ++++++ > .../display/mediatek/mediatek,rdma.yaml | 115 +++++++++ > .../display/mediatek/mediatek,split.yaml | 58 +++++ > .../display/mediatek/mediatek,ufoe.yaml | 61 +++++ > .../display/mediatek/mediatek,wdma.yaml | 86 +++++++ > 16 files changed, 1159 insertions(+), 219 deletions(-) > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,aal.yaml > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,ccorr.yaml > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,color.yaml > delete mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,disp.txt > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,dither.yaml > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,gamma.yaml > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,merge.yaml > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,mutex.yaml > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,od.yaml > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,ovl-2l.yaml > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,ovl.yaml > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,postmask.yaml > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,rdma.yaml > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,split.yaml > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,ufoe.yaml > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,wdma.yaml > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,aal.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,aal.yaml > new file mode 100644 > index 000000000000..044331f5aacb > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,aal.yaml > @@ -0,0 +1,76 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,aal.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mediatek display adaptive ambient light processor > + > +maintainers: > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > + - Philipp Zabel <p.zabel@pengutronix.de> > + > +description: | > + Mediatek display adaptive ambient light processor, namely AAL, > + is responsible for backlight power saving and sunlight visibility improving. > + AAL device node must be siblings to the central MMSYS_CONFIG node. > + For a description of the MMSYS_CONFIG binding, see > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > + for details. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: mediatek,mt8173-disp-aal > + - items: > + - enum: > + - mediatek,mt2712-disp-aal > + - mediatek,mt8183-disp-aal > + - mediatek,mt8192-disp-aal > + - enum: > + - mediatek,mt8173-disp-aal > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + power-domains: > + description: A phandle and PM domain specifier as defined by bindings of > + the power controller specified by phandle. See > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > + > + clocks: > + items: > + - description: AAL Clock > + > + mediatek,gce-client-reg: > + description: The register of client driver can be configured by gce with > + 4 arguments defined in this property, such as phandle of gce, subsys id, > + register offset and size. Each GCE subsys id is mapping to a client > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > + $ref: /schemas/types.yaml#/definitions/phandle-array > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - interrupts > + - power-domains > + - clocks > + > +additionalProperties: false > + > +examples: > + - | > + > + aal@14015000 { > + compatible = "mediatek,mt8173-disp-aal"; > + reg = <0 0x14015000 0 0x1000>; > + interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_LOW>; > + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > + clocks = <&mmsys CLK_MM_DISP_AAL>; > + mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x5000 0x1000>; > + }; > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,ccorr.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,ccorr.yaml > new file mode 100644 > index 000000000000..ea45b40edee7 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,ccorr.yaml > @@ -0,0 +1,71 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,ccorr.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mediatek display color correction > + > +maintainers: > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > + - Philipp Zabel <p.zabel@pengutronix.de> > + > +description: | > + Mediatek display color correction, namely CCORR, reproduces correct color > + on panels with different color gamut. > + CCORR device node must be siblings to the central MMSYS_CONFIG node. > + For a description of the MMSYS_CONFIG binding, see > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > + for details. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: mediatek,mt8183-disp-ccorr > + - items: > + - const: mediatek,mt8192-disp-ccorr > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + power-domains: > + description: A phandle and PM domain specifier as defined by bindings of > + the power controller specified by phandle. See > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > + > + clocks: > + items: > + - description: CCORR Clock > + > + mediatek,gce-client-reg: > + description: The register of client driver can be configured by gce with > + 4 arguments defined in this property, such as phandle of gce, subsys id, > + register offset and size. Each GCE subsys id is mapping to a client > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > + $ref: /schemas/types.yaml#/definitions/phandle-array > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - interrupts > + - power-domains > + - clocks > + > +additionalProperties: false > + > +examples: > + - | > + > + ccorr0: ccorr@1400f000 { > + compatible = "mediatek,mt8183-disp-ccorr"; > + reg = <0 0x1400f000 0 0x1000>; > + interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_LOW>; > + power-domains = <&spm MT8183_POWER_DOMAIN_DISP>; > + clocks = <&mmsys CLK_MM_DISP_CCORR0>; > + mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xf000 0x1000>; > + }; > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,color.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,color.yaml > new file mode 100644 > index 000000000000..13628f346718 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,color.yaml > @@ -0,0 +1,85 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,color.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mediatek display color processor > + > +maintainers: > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > + - Philipp Zabel <p.zabel@pengutronix.de> > + > +description: | > + Mediatek display color processor, namely COLOR, provides hue, luma and > + saturation adjustments to get better picture quality and to have one panel > + resemble the other in their output characteristics. > + COLOR device node must be siblings to the central MMSYS_CONFIG node. > + For a description of the MMSYS_CONFIG binding, see > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > + for details. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: mediatek,mt2701-disp-color > + - items: > + - const: mediatek,mt8167-disp-color > + - items: > + - const: mediatek,mt8173-disp-color > + - items: > + - enum: > + - mediatek,mt7623-disp-color > + - mediatek,mt2712-disp-color > + - enum: > + - mediatek,mt2701-disp-color > + - items: > + - enum: > + - mediatek,mt8183-disp-color > + - mediatek,mt8192-disp-color > + - enum: > + - mediatek,mt8173-disp-color > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + power-domains: > + description: A phandle and PM domain specifier as defined by bindings of > + the power controller specified by phandle. See > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > + > + clocks: > + items: > + - description: COLOR Clock > + > + mediatek,gce-client-reg: > + description: The register of client driver can be configured by gce with > + 4 arguments defined in this property, such as phandle of gce, subsys id, > + register offset and size. Each GCE subsys id is mapping to a client > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > + $ref: /schemas/types.yaml#/definitions/phandle-array > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - interrupts > + - power-domains > + - clocks > + > +additionalProperties: false > + > +examples: > + - | > + > + color0: color@14013000 { > + compatible = "mediatek,mt8173-disp-color"; > + reg = <0 0x14013000 0 0x1000>; > + interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_LOW>; > + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > + clocks = <&mmsys CLK_MM_DISP_COLOR0>; > + mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x3000 0x1000>; > + }; > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,disp.txt b/Documentation/devicetree/bindings/display/mediatek/mediatek,disp.txt > deleted file mode 100644 > index 78044c340e20..000000000000 > --- a/Documentation/devicetree/bindings/display/mediatek/mediatek,disp.txt > +++ /dev/null > @@ -1,219 +0,0 @@ > -Mediatek display subsystem > -========================== > - > -The Mediatek display subsystem consists of various DISP function blocks in the > -MMSYS register space. The connections between them can be configured by output > -and input selectors in the MMSYS_CONFIG register space. Pixel clock and start > -of frame signal are distributed to the other function blocks by a DISP_MUTEX > -function block. > - > -All DISP device tree nodes must be siblings to the central MMSYS_CONFIG node. > -For a description of the MMSYS_CONFIG binding, see > -Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml. > - > -DISP function blocks > -==================== > - > -A display stream starts at a source function block that reads pixel data from > -memory and ends with a sink function block that drives pixels on a display > -interface, or writes pixels back to memory. All DISP function blocks have > -their own register space, interrupt, and clock gate. The blocks that can > -access memory additionally have to list the IOMMU and local arbiter they are > -connected to. > - > -For a description of the display interface sink function blocks, see > -Documentation/devicetree/bindings/display/mediatek/mediatek,dsi.txt and > -Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.yaml. > - > -Required properties (all function blocks): > -- compatible: "mediatek,<chip>-disp-<function>", one of > - "mediatek,<chip>-disp-ovl" - overlay (4 layers, blending, csc) > - "mediatek,<chip>-disp-ovl-2l" - overlay (2 layers, blending, csc) > - "mediatek,<chip>-disp-rdma" - read DMA / line buffer > - "mediatek,<chip>-disp-wdma" - write DMA > - "mediatek,<chip>-disp-ccorr" - color correction > - "mediatek,<chip>-disp-color" - color processor > - "mediatek,<chip>-disp-dither" - dither > - "mediatek,<chip>-disp-aal" - adaptive ambient light controller > - "mediatek,<chip>-disp-gamma" - gamma correction > - "mediatek,<chip>-disp-merge" - merge streams from two RDMA sources > - "mediatek,<chip>-disp-postmask" - control round corner for display frame > - "mediatek,<chip>-disp-split" - split stream to two encoders > - "mediatek,<chip>-disp-ufoe" - data compression engine > - "mediatek,<chip>-dsi" - DSI controller, see mediatek,dsi.txt > - "mediatek,<chip>-dpi" - DPI controller, see mediatek,dpi.txt > - "mediatek,<chip>-disp-mutex" - display mutex > - "mediatek,<chip>-disp-od" - overdrive > - the supported chips are mt2701, mt7623, mt2712, mt8167, mt8173, mt8183 and mt8192. > -- reg: Physical base address and length of the function block register space > -- interrupts: The interrupt signal from the function block (required, except for > - merge and split function blocks). > -- clocks: device clocks > - See Documentation/devicetree/bindings/clock/clock-bindings.txt for details. > - For most function blocks this is just a single clock input. Only the DSI and > - DPI controller nodes have multiple clock inputs. These are documented in > - mediatek,dsi.txt and mediatek,dpi.txt, respectively. > - An exception is that the mt8183 mutex is always free running with no clocks property. > - > -Required properties (DMA function blocks): > -- compatible: Should be one of > - "mediatek,<chip>-disp-ovl" > - "mediatek,<chip>-disp-rdma" > - "mediatek,<chip>-disp-wdma" > - the supported chips are mt2701, mt8167 and mt8173. > -- larb: Should contain a phandle pointing to the local arbiter device as defined > - in Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml > -- iommus: Should point to the respective IOMMU block with master port as > - argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml > - for details. > - > -Optional properties (RDMA function blocks): > -- mediatek,rdma-fifo-size: rdma fifo size may be different even in same SOC, add this > - property to the corresponding rdma > - the value is the Max value which defined in hardware data sheet. > - mediatek,rdma-fifo-size of mt8173-rdma0 is 8K > - mediatek,rdma-fifo-size of mt8183-rdma0 is 5K > - mediatek,rdma-fifo-size of mt8183-rdma1 is 2K > - > -Examples: > - > -mmsys: clock-controller@14000000 { > - compatible = "mediatek,mt8173-mmsys", "syscon"; > - reg = <0 0x14000000 0 0x1000>; > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > - #clock-cells = <1>; > -}; > - > -ovl0: ovl@1400c000 { > - compatible = "mediatek,mt8173-disp-ovl"; > - reg = <0 0x1400c000 0 0x1000>; > - interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_LOW>; > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > - clocks = <&mmsys CLK_MM_DISP_OVL0>; > - iommus = <&iommu M4U_PORT_DISP_OVL0>; > - mediatek,larb = <&larb0>; > -}; > - > -ovl1: ovl@1400d000 { > - compatible = "mediatek,mt8173-disp-ovl"; > - reg = <0 0x1400d000 0 0x1000>; > - interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_LOW>; > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > - clocks = <&mmsys CLK_MM_DISP_OVL1>; > - iommus = <&iommu M4U_PORT_DISP_OVL1>; > - mediatek,larb = <&larb4>; > -}; > - > -rdma0: rdma@1400e000 { > - compatible = "mediatek,mt8173-disp-rdma"; > - reg = <0 0x1400e000 0 0x1000>; > - interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_LOW>; > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > - clocks = <&mmsys CLK_MM_DISP_RDMA0>; > - iommus = <&iommu M4U_PORT_DISP_RDMA0>; > - mediatek,larb = <&larb0>; > - mediatek,rdma-fifosize = <8192>; > -}; > - > -rdma1: rdma@1400f000 { > - compatible = "mediatek,mt8173-disp-rdma"; > - reg = <0 0x1400f000 0 0x1000>; > - interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_LOW>; > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > - clocks = <&mmsys CLK_MM_DISP_RDMA1>; > - iommus = <&iommu M4U_PORT_DISP_RDMA1>; > - mediatek,larb = <&larb4>; > -}; > - > -rdma2: rdma@14010000 { > - compatible = "mediatek,mt8173-disp-rdma"; > - reg = <0 0x14010000 0 0x1000>; > - interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_LOW>; > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > - clocks = <&mmsys CLK_MM_DISP_RDMA2>; > - iommus = <&iommu M4U_PORT_DISP_RDMA2>; > - mediatek,larb = <&larb4>; > -}; > - > -wdma0: wdma@14011000 { > - compatible = "mediatek,mt8173-disp-wdma"; > - reg = <0 0x14011000 0 0x1000>; > - interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_LOW>; > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > - clocks = <&mmsys CLK_MM_DISP_WDMA0>; > - iommus = <&iommu M4U_PORT_DISP_WDMA0>; > - mediatek,larb = <&larb0>; > -}; > - > -wdma1: wdma@14012000 { > - compatible = "mediatek,mt8173-disp-wdma"; > - reg = <0 0x14012000 0 0x1000>; > - interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_LOW>; > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > - clocks = <&mmsys CLK_MM_DISP_WDMA1>; > - iommus = <&iommu M4U_PORT_DISP_WDMA1>; > - mediatek,larb = <&larb4>; > -}; > - > -color0: color@14013000 { > - compatible = "mediatek,mt8173-disp-color"; > - reg = <0 0x14013000 0 0x1000>; > - interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_LOW>; > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > - clocks = <&mmsys CLK_MM_DISP_COLOR0>; > -}; > - > -color1: color@14014000 { > - compatible = "mediatek,mt8173-disp-color"; > - reg = <0 0x14014000 0 0x1000>; > - interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_LOW>; > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > - clocks = <&mmsys CLK_MM_DISP_COLOR1>; > -}; > - > -aal@14015000 { > - compatible = "mediatek,mt8173-disp-aal"; > - reg = <0 0x14015000 0 0x1000>; > - interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_LOW>; > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > - clocks = <&mmsys CLK_MM_DISP_AAL>; > -}; > - > -gamma@14016000 { > - compatible = "mediatek,mt8173-disp-gamma"; > - reg = <0 0x14016000 0 0x1000>; > - interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_LOW>; > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > - clocks = <&mmsys CLK_MM_DISP_GAMMA>; > -}; > - > -ufoe@1401a000 { > - compatible = "mediatek,mt8173-disp-ufoe"; > - reg = <0 0x1401a000 0 0x1000>; > - interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_LOW>; > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > - clocks = <&mmsys CLK_MM_DISP_UFOE>; > -}; > - > -dsi0: dsi@1401b000 { > - /* See mediatek,dsi.txt for details */ > -}; > - > -dpi0: dpi@1401d000 { > - /* See mediatek,dpi.txt for details */ > -}; > - > -mutex: mutex@14020000 { > - compatible = "mediatek,mt8173-disp-mutex"; > - reg = <0 0x14020000 0 0x1000>; > - interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_LOW>; > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > - clocks = <&mmsys CLK_MM_MUTEX_32K>; > -}; > - > -od@14023000 { > - compatible = "mediatek,mt8173-disp-od"; > - reg = <0 0x14023000 0 0x1000>; > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > - clocks = <&mmsys CLK_MM_DISP_OD>; > -}; > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,dither.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,dither.yaml > new file mode 100644 > index 000000000000..2c05e3019c75 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,dither.yaml > @@ -0,0 +1,75 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,dither.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mediatek display dither processor > + > +maintainers: > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > + - Philipp Zabel <p.zabel@pengutronix.de> > + > +description: | > + Mediatek display dither processor, namely DITHER, works by approximating > + unavailable colors with available colors and by mixing and matching available > + colors to mimic unavailable ones. > + DITHER device node must be siblings to the central MMSYS_CONFIG node. > + For a description of the MMSYS_CONFIG binding, see > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > + for details. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: mediatek,mt8183-disp-dither > + - items: > + - enum: > + - mediatek,mt8192-disp-dither > + - enum: > + - mediatek,mt8183-disp-dither > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + power-domains: > + description: A phandle and PM domain specifier as defined by bindings of > + the power controller specified by phandle. See > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > + > + clocks: > + items: > + - description: DITHER Clock > + > + mediatek,gce-client-reg: > + description: The register of client driver can be configured by gce with > + 4 arguments defined in this property, such as phandle of gce, subsys id, > + register offset and size. Each GCE subsys id is mapping to a client > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > + $ref: /schemas/types.yaml#/definitions/phandle-array > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - interrupts > + - power-domains > + - clocks > + > +additionalProperties: false > + > +examples: > + - | > + > + dither0: dither@14012000 { > + compatible = "mediatek,mt8183-disp-dither"; > + reg = <0 0x14012000 0 0x1000>; > + interrupts = <GIC_SPI 235 IRQ_TYPE_LEVEL_LOW>; > + power-domains = <&spm MT8183_POWER_DOMAIN_DISP>; > + clocks = <&mmsys CLK_MM_DISP_DITHER0>; > + mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x2000 0x1000>; > + }; > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,gamma.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,gamma.yaml > new file mode 100644 > index 000000000000..89ccb8dbadd7 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,gamma.yaml > @@ -0,0 +1,76 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,gamma.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mediatek display gamma correction > + > +maintainers: > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > + - Philipp Zabel <p.zabel@pengutronix.de> > + > +description: | > + Mediatek display gamma correction, namely GAMMA, provides a nonlinear > + operation used to adjust luminance in display system. > + GAMMA device node must be siblings to the central MMSYS_CONFIG node. > + For a description of the MMSYS_CONFIG binding, see > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > + for details. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: mediatek,mt8173-disp-gamma > + - items: > + - const: mediatek,mt8183-disp-gamma > + - items: > + - enum: > + - mediatek,mt8192-disp-gamma > + - enum: > + - mediatek,mt8183-disp-gamma > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + power-domains: > + description: A phandle and PM domain specifier as defined by bindings of > + the power controller specified by phandle. See > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > + > + clocks: > + items: > + - description: GAMMA Clock > + > + mediatek,gce-client-reg: > + description: The register of client driver can be configured by gce with > + 4 arguments defined in this property, such as phandle of gce, subsys id, > + register offset and size. Each GCE subsys id is mapping to a client > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > + $ref: /schemas/types.yaml#/definitions/phandle-array > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - interrupts > + - power-domains > + - clocks > + > +additionalProperties: false > + > +examples: > + - | > + > + gamma@14016000 { > + compatible = "mediatek,mt8173-disp-gamma"; > + reg = <0 0x14016000 0 0x1000>; > + interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_LOW>; > + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > + clocks = <&mmsys CLK_MM_DISP_GAMMA>; > + mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x6000 0x1000>; > + }; > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,merge.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,merge.yaml > new file mode 100644 > index 000000000000..7aa6974d509d > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,merge.yaml > @@ -0,0 +1,66 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,merge.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mediatek display merge > + > +maintainers: > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > + - Philipp Zabel <p.zabel@pengutronix.de> > + > +description: | > + Mediatek display merge, namely MERGE, is used to merge two slice-per-line > + inputs into one side-by-side output. > + MERGE device node must be siblings to the central MMSYS_CONFIG node. > + For a description of the MMSYS_CONFIG binding, see > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > + for details. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: mediatek,mt8173-disp-merge > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + power-domains: > + description: A phandle and PM domain specifier as defined by bindings of > + the power controller specified by phandle. See > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > + > + clocks: > + items: > + - description: MERGE Clock > + > + mediatek,gce-client-reg: > + description: The register of client driver can be configured by gce with > + 4 arguments defined in this property, such as phandle of gce, subsys id, > + register offset and size. Each GCE subsys id is mapping to a client > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > + $ref: /schemas/types.yaml#/definitions/phandle-array > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - power-domains > + - clocks > + > +additionalProperties: false > + > +examples: > + - | > + > + merge@14017000 { > + compatible = "mediatek,mt8173-disp-merge"; > + reg = <0 0x14017000 0 0x1000>; > + power-domains = <&spm MT8173_POWER_DOMAIN_MM>; > + clocks = <&mmsys CLK_MM_DISP_MERGE>; > + }; > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,mutex.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,mutex.yaml > new file mode 100644 > index 000000000000..90f11e12a55e > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,mutex.yaml > @@ -0,0 +1,82 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,mutex.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mediatek display mutex > + > +maintainers: > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > + - Philipp Zabel <p.zabel@pengutronix.de> > + > +description: | > + Mediatek mutex, namely MUTEX, is used to send the triggers signals called > + Start Of Frame (SOF) / End Of Frame (EOF) to each sub-modules on the display > + data path or MDP data path. > + In some SoC, such as mt2701, MUTEX could be a hardware mutex which protects > + the shadow register. > + MUTEX device node must be siblings to the central MMSYS_CONFIG node. > + For a description of the MMSYS_CONFIG binding, see > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > + for details. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: mediatek,mt2701-disp-mutex > + - items: > + - const: mediatek,mt2712-disp-mutex > + - items: > + - const: mediatek,mt8167-disp-mutex > + - items: > + - const: mediatek,mt8173-disp-mutex > + - items: > + - const: mediatek,mt8183-disp-mutex > + - items: > + - const: mediatek,mt8192-disp-mutex > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + power-domains: > + description: A phandle and PM domain specifier as defined by bindings of > + the power controller specified by phandle. See > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > + > + clocks: > + items: > + - description: MUTEX Clock > + > + mediatek,gce-events: > + description: > + The event id which is mapping to the specific hardware event signal > + to gce. The event id is defined in the gce header > + include/dt-bindings/gce/<chip>-gce.h of each chips. > + $ref: /schemas/types.yaml#/definitions/phandle-array > + > +required: > + - compatible > + - reg > + - interrupts > + - power-domains > + - clocks > + > +additionalProperties: false > + > +examples: > + - | > + > + mutex: mutex@14020000 { > + compatible = "mediatek,mt8173-disp-mutex"; > + reg = <0 0x14020000 0 0x1000>; > + interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_LOW>; > + power-domains = <&spm MT8173_POWER_DOMAIN_MM>; > + clocks = <&mmsys CLK_MM_MUTEX_32K>; > + mediatek,gce-events = <CMDQ_EVENT_MUTEX0_STREAM_EOF>, > + <CMDQ_EVENT_MUTEX1_STREAM_EOF>; > + }; > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,od.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,od.yaml > new file mode 100644 > index 000000000000..7519db315217 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,od.yaml > @@ -0,0 +1,53 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,od.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mediatek display overdirve > + > +maintainers: > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > + - Philipp Zabel <p.zabel@pengutronix.de> > + > +description: | > + Mediatek display overdrive, namely OD, increases the transition values > + of pixels between consecutive frames to make LCD rotate faster. > + OD device node must be siblings to the central MMSYS_CONFIG node. > + For a description of the MMSYS_CONFIG binding, see > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > + for details. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: mediatek,mt2712-disp-od > + - items: > + - const: mediatek,mt8173-disp-od > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + clocks: > + items: > + - description: OD Clock > + > +required: > + - compatible > + - reg > + - clocks > + > +additionalProperties: false > + > +examples: > + - | > + > + od@14023000 { > + compatible = "mediatek,mt8173-disp-od"; > + reg = <0 0x14023000 0 0x1000>; > + clocks = <&mmsys CLK_MM_DISP_OD>; > + }; > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,ovl-2l.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,ovl-2l.yaml > new file mode 100644 > index 000000000000..611a2dbdefa4 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,ovl-2l.yaml > @@ -0,0 +1,88 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,ovl-2l.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mediatek display overlay 2 layer > + > +maintainers: > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > + - Philipp Zabel <p.zabel@pengutronix.de> > + > +description: | > + Mediatek display overlay 2 layer, namely OVL-2L, provides 2 more layer > + for OVL. > + OVL-2L device node must be siblings to the central MMSYS_CONFIG node. > + For a description of the MMSYS_CONFIG binding, see > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > + for details. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: mediatek,mt8183-disp-ovl-2l > + - items: > + - const: mediatek,mt8192-disp-ovl-2l > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + power-domains: > + description: A phandle and PM domain specifier as defined by bindings of > + the power controller specified by phandle. See > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > + > + clocks: > + items: > + - description: OVL-2L Clock > + > + iommus: > + description: > + This property should point to the respective IOMMU block with master port as argument, > + see Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml for details. > + > + mediatek,larb: > + description: > + This property should contain a phandle pointing to the local arbiter devices defined in > + Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml. > + It must sort according to the local arbiter index, like larb0, larb1, larb2... > + $ref: /schemas/types.yaml#/definitions/phandle-array > + minItems: 1 > + maxItems: 32 > + > + mediatek,gce-client-reg: > + description: The register of client driver can be configured by gce with > + 4 arguments defined in this property, such as phandle of gce, subsys id, > + register offset and size. Each GCE subsys id is mapping to a client > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > + $ref: /schemas/types.yaml#/definitions/phandle-array > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - interrupts > + - power-domains > + - clocks > + - iommus > + > +additionalProperties: false > + > +examples: > + - | > + > + ovl_2l0: ovl@14009000 { > + compatible = "mediatek,mt8183-disp-ovl-2l"; > + reg = <0 0x14009000 0 0x1000>; > + interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_LOW>; > + power-domains = <&spm MT8183_POWER_DOMAIN_DISP>; > + clocks = <&mmsys CLK_MM_DISP_OVL0_2L>; > + iommus = <&iommu M4U_PORT_DISP_2L_OVL0_LARB0>; > + mediatek,larb = <&larb0>; > + mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x9000 0x1000>; > + }; > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,ovl.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,ovl.yaml > new file mode 100644 > index 000000000000..8e4a62cb9c81 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,ovl.yaml > @@ -0,0 +1,98 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,ovl.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mediatek display overlay > + > +maintainers: > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > + - Philipp Zabel <p.zabel@pengutronix.de> > + > +description: | > + Mediatek display overlay, namely OVL, can do alpha blending from > + the memory. > + OVL device node must be siblings to the central MMSYS_CONFIG node. > + For a description of the MMSYS_CONFIG binding, see > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > + for details. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: mediatek,mt2701-disp-ovl > + - items: > + - const: mediatek,mt8173-disp-ovl > + - items: > + - const: mediatek,mt8183-disp-ovl > + - items: > + - const: mediatek,mt8192-disp-ovl > + - items: > + - enum: > + - mediatek,mt7623-disp-ovl > + - mediatek,mt2712-disp-ovl > + - enum: > + - mediatek,mt2701-disp-ovl > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + power-domains: > + description: A phandle and PM domain specifier as defined by bindings of > + the power controller specified by phandle. See > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > + > + clocks: > + items: > + - description: OVL Clock > + > + iommus: > + description: > + This property should point to the respective IOMMU block with master port as argument, > + see Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml for details. > + > + mediatek,larb: > + description: > + This property should contain a phandle pointing to the local arbiter devices defined in > + Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml. > + It must sort according to the local arbiter index, like larb0, larb1, larb2... > + $ref: /schemas/types.yaml#/definitions/phandle-array > + minItems: 1 > + maxItems: 32 > + > + mediatek,gce-client-reg: > + description: The register of client driver can be configured by gce with > + 4 arguments defined in this property, such as phandle of gce, subsys id, > + register offset and size. Each GCE subsys id is mapping to a client > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > + $ref: /schemas/types.yaml#/definitions/phandle-array > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - interrupts > + - power-domains > + - clocks > + - iommu > + > +additionalProperties: false > + > +examples: > + - | > + > + ovl0: ovl@1400c000 { > + compatible = "mediatek,mt8173-disp-ovl"; > + reg = <0 0x1400c000 0 0x1000>; > + interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_LOW>; > + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > + clocks = <&mmsys CLK_MM_DISP_OVL0>; > + iommus = <&iommu M4U_PORT_DISP_OVL0>; > + mediatek,larb = <&larb0>; > + mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xc000 0x1000>; > + }; > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,postmask.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,postmask.yaml > new file mode 100644 > index 000000000000..6ac1da2e8871 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,postmask.yaml > @@ -0,0 +1,69 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,postmask.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mediatek display postmask > + > +maintainers: > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > + - Philipp Zabel <p.zabel@pengutronix.de> > + > +description: | > + Mediatek display postmask, namely POSTMASK, provides round corner pattern > + generation. > + POSTMASK device node must be siblings to the central MMSYS_CONFIG node. > + For a description of the MMSYS_CONFIG binding, see > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > + for details. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: mediatek,mt8192-disp-postmask > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + power-domains: > + description: A phandle and PM domain specifier as defined by bindings of > + the power controller specified by phandle. See > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > + > + clocks: > + items: > + - description: POSTMASK Clock > + > + mediatek,gce-client-reg: > + description: The register of client driver can be configured by gce with > + 4 arguments defined in this property, such as phandle of gce, subsys id, > + register offset and size. Each GCE subsys id is mapping to a client > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > + $ref: /schemas/types.yaml#/definitions/phandle-array > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - interrupts > + - power-domains > + - clocks > + > +additionalProperties: false > + > +examples: > + - | > + > + postmask0: postmask@1400d000 { > + compatible = "mediatek,mt8192-disp-postmask"; > + reg = <0 0x1400d000 0 0x1000>; > + interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH 0>; > + power-domains = <&scpsys MT8192_POWER_DOMAIN_DISP>; > + clocks = <&mmsys CLK_MM_DISP_POSTMASK0>; > + mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xd000 0x1000>; > + }; > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,rdma.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,rdma.yaml > new file mode 100644 > index 000000000000..a3c5f4c9fbcd > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,rdma.yaml > @@ -0,0 +1,115 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,rdma.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mediatek Read Direct Memory Access > + > +maintainers: > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > + - Philipp Zabel <p.zabel@pengutronix.de> > + > +description: | > + Mediatek Read Direct Memory Access(RDMA) component used to read the > + data into DMA. It provides real time data to the back-end panel > + driver, such as DSI, DPI and DP_INTF. > + It contains one line buffer to store the sufficient pixel data. > + RDMA device node must be siblings to the central MMSYS_CONFIG node. > + For a description of the MMSYS_CONFIG binding, see > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > + for details. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: mediatek,mt2701-disp-rdma > + - items: > + - const: mediatek,mt8173-disp-rdma > + - items: > + - const: mediatek,mt8183-disp-rdma > + - items: > + - enum: > + - mediatek,mt7623-disp-rdma > + - mediatek,mt2712-disp-rdma > + - enum: > + - mediatek,mt2701-disp-rdma > + - items: > + - enum: > + - mediatek,mt8192-disp-rdma > + - enum: > + - mediatek,mt8183-disp-rdma > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + power-domains: > + description: A phandle and PM domain specifier as defined by bindings of > + the power controller specified by phandle. See > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > + > + clocks: > + items: > + - description: RDMA Clock > + > + iommus: > + description: > + This property should point to the respective IOMMU block with master port as argument, > + see Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml for details. > + > + mediatek,larb: > + description: > + This property should contain a phandle pointing to the local arbiter devices defined in > + Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml. > + It must sort according to the local arbiter index, like larb0, larb1, larb2... > + $ref: /schemas/types.yaml#/definitions/phandle-array > + minItems: 1 > + maxItems: 32 > + > + mediatek,rdma-fifo-size: > + description: > + rdma fifo size may be different even in same SOC, add this property to the > + corresponding rdma. > + The value below is the Max value which defined in hardware data sheet > + mediatek,rdma-fifo-size of mt8173-rdma0 is 8K > + mediatek,rdma-fifo-size of mt8183-rdma0 is 5K > + mediatek,rdma-fifo-size of mt8183-rdma1 is 2K > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [8192, 5120, 2048] > + > + mediatek,gce-client-reg: > + description: The register of client driver can be configured by gce with > + 4 arguments defined in this property, such as phandle of gce, subsys id, > + register offset and size. Each GCE subsys id is mapping to a client > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > + $ref: /schemas/types.yaml#/definitions/phandle-array > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - interrupts > + - power-domains > + - clocks > + - iommus > + > +additionalProperties: false > + > +examples: > + - | > + > + rdma0: rdma@1400e000 { > + compatible = "mediatek,mt8173-disp-rdma"; > + reg = <0 0x1400e000 0 0x1000>; > + interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_LOW>; > + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > + clocks = <&mmsys CLK_MM_DISP_RDMA0>; > + iommus = <&iommu M4U_PORT_DISP_RDMA0>; > + mediatek,larb = <&larb0>; > + mediatek,rdma-fifosize = <8192>; > + mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xe000 0x1000>; > + }; > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,split.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,split.yaml > new file mode 100644 > index 000000000000..4f08e89c1067 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,split.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/mediatek/mediatek,split.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mediatek display split > + > +maintainers: > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > + - Philipp Zabel <p.zabel@pengutronix.de> > + > +description: | > + Mediatek display split, namely SPLIT, is used to split stream to two > + encoders. > + SPLIT device node must be siblings to the central MMSYS_CONFIG node. > + For a description of the MMSYS_CONFIG binding, see > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > + for details. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: mediatek,mt8173-disp-split > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + power-domains: > + description: A phandle and PM domain specifier as defined by bindings of > + the power controller specified by phandle. See > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > + > + clocks: > + items: > + - description: SPLIT Clock > + > +required: > + - compatible > + - reg > + - power-domains > + - clocks > + > +additionalProperties: false > + > +examples: > + - | > + > + split0: split@14018000 { > + compatible = "mediatek,mt8173-disp-split"; > + reg = <0 0x14018000 0 0x1000>; > + power-domains = <&spm MT8173_POWER_DOMAIN_MM>; > + clocks = <&mmsys CLK_MM_DISP_SPLIT0>; > + }; > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,ufoe.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,ufoe.yaml > new file mode 100644 > index 000000000000..6e8748529e73 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,ufoe.yaml > @@ -0,0 +1,61 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,ufoe.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mediatek display UFOe > + > +maintainers: > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > + - Philipp Zabel <p.zabel@pengutronix.de> > + > +description: | > + Mediatek display UFOe stands for Unified Frame Optimization engine. > + UFOe can cut the data rate for DSI port which may lead to reduce power > + consumption. > + UFOe device node must be siblings to the central MMSYS_CONFIG node. > + For a description of the MMSYS_CONFIG binding, see > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > + for details. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: mediatek,mt8173-disp-ufoe > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + power-domains: > + description: A phandle and PM domain specifier as defined by bindings of > + the power controller specified by phandle. See > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > + > + clocks: > + items: > + - description: UFOe Clock > + > +required: > + - compatible > + - reg > + - interrupts > + - power-domains > + - clocks > + > +additionalProperties: false > + > +examples: > + - | > + > + ufoe@1401a000 { > + compatible = "mediatek,mt8173-disp-ufoe"; > + reg = <0 0x1401a000 0 0x1000>; > + interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_LOW>; > + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > + clocks = <&mmsys CLK_MM_DISP_UFOE>; > + }; > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,wdma.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,wdma.yaml > new file mode 100644 > index 000000000000..aaf5649b6413 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,wdma.yaml > @@ -0,0 +1,86 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,wdma.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mediatek Write Direct Memory Access > + > +maintainers: > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > + - Philipp Zabel <p.zabel@pengutronix.de> > + > +description: | > + Mediatek Write Direct Memory Access(WDMA) component used to write > + the data into DMA. > + WDMA device node must be siblings to the central MMSYS_CONFIG node. > + For a description of the MMSYS_CONFIG binding, see > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > + for details. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: mediatek,mt8173-disp-wdma > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + power-domains: > + description: A phandle and PM domain specifier as defined by bindings of > + the power controller specified by phandle. See > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > + > + clocks: > + items: > + - description: WDMA Clock > + > + iommus: > + description: > + This property should point to the respective IOMMU block with master port as argument, > + see Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml for details. > + > + mediatek,larb: > + description: > + This property should contain a phandle pointing to the local arbiter devices defined in > + Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml. > + It must sort according to the local arbiter index, like larb0, larb1, larb2... > + $ref: /schemas/types.yaml#/definitions/phandle-array > + minItems: 1 > + maxItems: 32 > + > + mediatek,gce-client-reg: > + description: The register of client driver can be configured by gce with > + 4 arguments defined in this property, such as phandle of gce, subsys id, > + register offset and size. Each GCE subsys id is mapping to a client > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > + $ref: /schemas/types.yaml#/definitions/phandle-array > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - interrupts > + - power-domains > + - clocks > + - iommus > + > +additionalProperties: false > + > +examples: > + - | > + > + wdma0: wdma@14011000 { > + compatible = "mediatek,mt8173-disp-wdma"; > + reg = <0 0x14011000 0 0x1000>; > + interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_LOW>; > + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > + clocks = <&mmsys CLK_MM_DISP_WDMA0>; > + iommus = <&iommu M4U_PORT_DISP_WDMA0>; > + mediatek,larb = <&larb0>; > + mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x1000 0x1000>; > + }; > -- > 2.18.0 >
OK, it seems no one has comment on this patch, so applied to mediatek-drm-next [1]. [1] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-next Regards, Chun-Kuang. Chun-Kuang Hu <chunkuang.hu@kernel.org> 於 2022年1月27日 週四 下午11:46寫道: > > Hi, Rob: > > This patch looks good to me, how do you think about it? > > Regards, > Chun-Kuang. > > jason-jh.lin <jason-jh.lin@mediatek.com> 於 2022年1月26日 週三 下午3:19寫道: > > > > 1. Remove mediatek,dislpay.txt > > 2. Split each display function block to individual yaml file. > > > > Signed-off-by: jason-jh.lin <jason-jh.lin@mediatek.com> > > Acked-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> > > --- > > .../display/mediatek/mediatek,aal.yaml | 76 ++++++ > > .../display/mediatek/mediatek,ccorr.yaml | 71 ++++++ > > .../display/mediatek/mediatek,color.yaml | 85 +++++++ > > .../display/mediatek/mediatek,disp.txt | 219 ------------------ > > .../display/mediatek/mediatek,dither.yaml | 75 ++++++ > > .../display/mediatek/mediatek,gamma.yaml | 76 ++++++ > > .../display/mediatek/mediatek,merge.yaml | 66 ++++++ > > .../display/mediatek/mediatek,mutex.yaml | 82 +++++++ > > .../display/mediatek/mediatek,od.yaml | 53 +++++ > > .../display/mediatek/mediatek,ovl-2l.yaml | 88 +++++++ > > .../display/mediatek/mediatek,ovl.yaml | 98 ++++++++ > > .../display/mediatek/mediatek,postmask.yaml | 69 ++++++ > > .../display/mediatek/mediatek,rdma.yaml | 115 +++++++++ > > .../display/mediatek/mediatek,split.yaml | 58 +++++ > > .../display/mediatek/mediatek,ufoe.yaml | 61 +++++ > > .../display/mediatek/mediatek,wdma.yaml | 86 +++++++ > > 16 files changed, 1159 insertions(+), 219 deletions(-) > > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,aal.yaml > > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,ccorr.yaml > > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,color.yaml > > delete mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,disp.txt > > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,dither.yaml > > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,gamma.yaml > > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,merge.yaml > > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,mutex.yaml > > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,od.yaml > > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,ovl-2l.yaml > > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,ovl.yaml > > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,postmask.yaml > > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,rdma.yaml > > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,split.yaml > > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,ufoe.yaml > > create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,wdma.yaml > > > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,aal.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,aal.yaml > > new file mode 100644 > > index 000000000000..044331f5aacb > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,aal.yaml > > @@ -0,0 +1,76 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,aal.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Mediatek display adaptive ambient light processor > > + > > +maintainers: > > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > > + - Philipp Zabel <p.zabel@pengutronix.de> > > + > > +description: | > > + Mediatek display adaptive ambient light processor, namely AAL, > > + is responsible for backlight power saving and sunlight visibility improving. > > + AAL device node must be siblings to the central MMSYS_CONFIG node. > > + For a description of the MMSYS_CONFIG binding, see > > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > > + for details. > > + > > +properties: > > + compatible: > > + oneOf: > > + - items: > > + - const: mediatek,mt8173-disp-aal > > + - items: > > + - enum: > > + - mediatek,mt2712-disp-aal > > + - mediatek,mt8183-disp-aal > > + - mediatek,mt8192-disp-aal > > + - enum: > > + - mediatek,mt8173-disp-aal > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + power-domains: > > + description: A phandle and PM domain specifier as defined by bindings of > > + the power controller specified by phandle. See > > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > > + > > + clocks: > > + items: > > + - description: AAL Clock > > + > > + mediatek,gce-client-reg: > > + description: The register of client driver can be configured by gce with > > + 4 arguments defined in this property, such as phandle of gce, subsys id, > > + register offset and size. Each GCE subsys id is mapping to a client > > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + maxItems: 1 > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - power-domains > > + - clocks > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + > > + aal@14015000 { > > + compatible = "mediatek,mt8173-disp-aal"; > > + reg = <0 0x14015000 0 0x1000>; > > + interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_LOW>; > > + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > + clocks = <&mmsys CLK_MM_DISP_AAL>; > > + mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x5000 0x1000>; > > + }; > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,ccorr.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,ccorr.yaml > > new file mode 100644 > > index 000000000000..ea45b40edee7 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,ccorr.yaml > > @@ -0,0 +1,71 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,ccorr.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Mediatek display color correction > > + > > +maintainers: > > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > > + - Philipp Zabel <p.zabel@pengutronix.de> > > + > > +description: | > > + Mediatek display color correction, namely CCORR, reproduces correct color > > + on panels with different color gamut. > > + CCORR device node must be siblings to the central MMSYS_CONFIG node. > > + For a description of the MMSYS_CONFIG binding, see > > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > > + for details. > > + > > +properties: > > + compatible: > > + oneOf: > > + - items: > > + - const: mediatek,mt8183-disp-ccorr > > + - items: > > + - const: mediatek,mt8192-disp-ccorr > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + power-domains: > > + description: A phandle and PM domain specifier as defined by bindings of > > + the power controller specified by phandle. See > > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > > + > > + clocks: > > + items: > > + - description: CCORR Clock > > + > > + mediatek,gce-client-reg: > > + description: The register of client driver can be configured by gce with > > + 4 arguments defined in this property, such as phandle of gce, subsys id, > > + register offset and size. Each GCE subsys id is mapping to a client > > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + maxItems: 1 > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - power-domains > > + - clocks > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + > > + ccorr0: ccorr@1400f000 { > > + compatible = "mediatek,mt8183-disp-ccorr"; > > + reg = <0 0x1400f000 0 0x1000>; > > + interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_LOW>; > > + power-domains = <&spm MT8183_POWER_DOMAIN_DISP>; > > + clocks = <&mmsys CLK_MM_DISP_CCORR0>; > > + mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xf000 0x1000>; > > + }; > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,color.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,color.yaml > > new file mode 100644 > > index 000000000000..13628f346718 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,color.yaml > > @@ -0,0 +1,85 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,color.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Mediatek display color processor > > + > > +maintainers: > > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > > + - Philipp Zabel <p.zabel@pengutronix.de> > > + > > +description: | > > + Mediatek display color processor, namely COLOR, provides hue, luma and > > + saturation adjustments to get better picture quality and to have one panel > > + resemble the other in their output characteristics. > > + COLOR device node must be siblings to the central MMSYS_CONFIG node. > > + For a description of the MMSYS_CONFIG binding, see > > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > > + for details. > > + > > +properties: > > + compatible: > > + oneOf: > > + - items: > > + - const: mediatek,mt2701-disp-color > > + - items: > > + - const: mediatek,mt8167-disp-color > > + - items: > > + - const: mediatek,mt8173-disp-color > > + - items: > > + - enum: > > + - mediatek,mt7623-disp-color > > + - mediatek,mt2712-disp-color > > + - enum: > > + - mediatek,mt2701-disp-color > > + - items: > > + - enum: > > + - mediatek,mt8183-disp-color > > + - mediatek,mt8192-disp-color > > + - enum: > > + - mediatek,mt8173-disp-color > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + power-domains: > > + description: A phandle and PM domain specifier as defined by bindings of > > + the power controller specified by phandle. See > > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > > + > > + clocks: > > + items: > > + - description: COLOR Clock > > + > > + mediatek,gce-client-reg: > > + description: The register of client driver can be configured by gce with > > + 4 arguments defined in this property, such as phandle of gce, subsys id, > > + register offset and size. Each GCE subsys id is mapping to a client > > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + maxItems: 1 > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - power-domains > > + - clocks > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + > > + color0: color@14013000 { > > + compatible = "mediatek,mt8173-disp-color"; > > + reg = <0 0x14013000 0 0x1000>; > > + interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_LOW>; > > + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > + clocks = <&mmsys CLK_MM_DISP_COLOR0>; > > + mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x3000 0x1000>; > > + }; > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,disp.txt b/Documentation/devicetree/bindings/display/mediatek/mediatek,disp.txt > > deleted file mode 100644 > > index 78044c340e20..000000000000 > > --- a/Documentation/devicetree/bindings/display/mediatek/mediatek,disp.txt > > +++ /dev/null > > @@ -1,219 +0,0 @@ > > -Mediatek display subsystem > > -========================== > > - > > -The Mediatek display subsystem consists of various DISP function blocks in the > > -MMSYS register space. The connections between them can be configured by output > > -and input selectors in the MMSYS_CONFIG register space. Pixel clock and start > > -of frame signal are distributed to the other function blocks by a DISP_MUTEX > > -function block. > > - > > -All DISP device tree nodes must be siblings to the central MMSYS_CONFIG node. > > -For a description of the MMSYS_CONFIG binding, see > > -Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml. > > - > > -DISP function blocks > > -==================== > > - > > -A display stream starts at a source function block that reads pixel data from > > -memory and ends with a sink function block that drives pixels on a display > > -interface, or writes pixels back to memory. All DISP function blocks have > > -their own register space, interrupt, and clock gate. The blocks that can > > -access memory additionally have to list the IOMMU and local arbiter they are > > -connected to. > > - > > -For a description of the display interface sink function blocks, see > > -Documentation/devicetree/bindings/display/mediatek/mediatek,dsi.txt and > > -Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.yaml. > > - > > -Required properties (all function blocks): > > -- compatible: "mediatek,<chip>-disp-<function>", one of > > - "mediatek,<chip>-disp-ovl" - overlay (4 layers, blending, csc) > > - "mediatek,<chip>-disp-ovl-2l" - overlay (2 layers, blending, csc) > > - "mediatek,<chip>-disp-rdma" - read DMA / line buffer > > - "mediatek,<chip>-disp-wdma" - write DMA > > - "mediatek,<chip>-disp-ccorr" - color correction > > - "mediatek,<chip>-disp-color" - color processor > > - "mediatek,<chip>-disp-dither" - dither > > - "mediatek,<chip>-disp-aal" - adaptive ambient light controller > > - "mediatek,<chip>-disp-gamma" - gamma correction > > - "mediatek,<chip>-disp-merge" - merge streams from two RDMA sources > > - "mediatek,<chip>-disp-postmask" - control round corner for display frame > > - "mediatek,<chip>-disp-split" - split stream to two encoders > > - "mediatek,<chip>-disp-ufoe" - data compression engine > > - "mediatek,<chip>-dsi" - DSI controller, see mediatek,dsi.txt > > - "mediatek,<chip>-dpi" - DPI controller, see mediatek,dpi.txt > > - "mediatek,<chip>-disp-mutex" - display mutex > > - "mediatek,<chip>-disp-od" - overdrive > > - the supported chips are mt2701, mt7623, mt2712, mt8167, mt8173, mt8183 and mt8192. > > -- reg: Physical base address and length of the function block register space > > -- interrupts: The interrupt signal from the function block (required, except for > > - merge and split function blocks). > > -- clocks: device clocks > > - See Documentation/devicetree/bindings/clock/clock-bindings.txt for details. > > - For most function blocks this is just a single clock input. Only the DSI and > > - DPI controller nodes have multiple clock inputs. These are documented in > > - mediatek,dsi.txt and mediatek,dpi.txt, respectively. > > - An exception is that the mt8183 mutex is always free running with no clocks property. > > - > > -Required properties (DMA function blocks): > > -- compatible: Should be one of > > - "mediatek,<chip>-disp-ovl" > > - "mediatek,<chip>-disp-rdma" > > - "mediatek,<chip>-disp-wdma" > > - the supported chips are mt2701, mt8167 and mt8173. > > -- larb: Should contain a phandle pointing to the local arbiter device as defined > > - in Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml > > -- iommus: Should point to the respective IOMMU block with master port as > > - argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml > > - for details. > > - > > -Optional properties (RDMA function blocks): > > -- mediatek,rdma-fifo-size: rdma fifo size may be different even in same SOC, add this > > - property to the corresponding rdma > > - the value is the Max value which defined in hardware data sheet. > > - mediatek,rdma-fifo-size of mt8173-rdma0 is 8K > > - mediatek,rdma-fifo-size of mt8183-rdma0 is 5K > > - mediatek,rdma-fifo-size of mt8183-rdma1 is 2K > > - > > -Examples: > > - > > -mmsys: clock-controller@14000000 { > > - compatible = "mediatek,mt8173-mmsys", "syscon"; > > - reg = <0 0x14000000 0 0x1000>; > > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > - #clock-cells = <1>; > > -}; > > - > > -ovl0: ovl@1400c000 { > > - compatible = "mediatek,mt8173-disp-ovl"; > > - reg = <0 0x1400c000 0 0x1000>; > > - interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_LOW>; > > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > - clocks = <&mmsys CLK_MM_DISP_OVL0>; > > - iommus = <&iommu M4U_PORT_DISP_OVL0>; > > - mediatek,larb = <&larb0>; > > -}; > > - > > -ovl1: ovl@1400d000 { > > - compatible = "mediatek,mt8173-disp-ovl"; > > - reg = <0 0x1400d000 0 0x1000>; > > - interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_LOW>; > > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > - clocks = <&mmsys CLK_MM_DISP_OVL1>; > > - iommus = <&iommu M4U_PORT_DISP_OVL1>; > > - mediatek,larb = <&larb4>; > > -}; > > - > > -rdma0: rdma@1400e000 { > > - compatible = "mediatek,mt8173-disp-rdma"; > > - reg = <0 0x1400e000 0 0x1000>; > > - interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_LOW>; > > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > - clocks = <&mmsys CLK_MM_DISP_RDMA0>; > > - iommus = <&iommu M4U_PORT_DISP_RDMA0>; > > - mediatek,larb = <&larb0>; > > - mediatek,rdma-fifosize = <8192>; > > -}; > > - > > -rdma1: rdma@1400f000 { > > - compatible = "mediatek,mt8173-disp-rdma"; > > - reg = <0 0x1400f000 0 0x1000>; > > - interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_LOW>; > > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > - clocks = <&mmsys CLK_MM_DISP_RDMA1>; > > - iommus = <&iommu M4U_PORT_DISP_RDMA1>; > > - mediatek,larb = <&larb4>; > > -}; > > - > > -rdma2: rdma@14010000 { > > - compatible = "mediatek,mt8173-disp-rdma"; > > - reg = <0 0x14010000 0 0x1000>; > > - interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_LOW>; > > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > - clocks = <&mmsys CLK_MM_DISP_RDMA2>; > > - iommus = <&iommu M4U_PORT_DISP_RDMA2>; > > - mediatek,larb = <&larb4>; > > -}; > > - > > -wdma0: wdma@14011000 { > > - compatible = "mediatek,mt8173-disp-wdma"; > > - reg = <0 0x14011000 0 0x1000>; > > - interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_LOW>; > > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > - clocks = <&mmsys CLK_MM_DISP_WDMA0>; > > - iommus = <&iommu M4U_PORT_DISP_WDMA0>; > > - mediatek,larb = <&larb0>; > > -}; > > - > > -wdma1: wdma@14012000 { > > - compatible = "mediatek,mt8173-disp-wdma"; > > - reg = <0 0x14012000 0 0x1000>; > > - interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_LOW>; > > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > - clocks = <&mmsys CLK_MM_DISP_WDMA1>; > > - iommus = <&iommu M4U_PORT_DISP_WDMA1>; > > - mediatek,larb = <&larb4>; > > -}; > > - > > -color0: color@14013000 { > > - compatible = "mediatek,mt8173-disp-color"; > > - reg = <0 0x14013000 0 0x1000>; > > - interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_LOW>; > > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > - clocks = <&mmsys CLK_MM_DISP_COLOR0>; > > -}; > > - > > -color1: color@14014000 { > > - compatible = "mediatek,mt8173-disp-color"; > > - reg = <0 0x14014000 0 0x1000>; > > - interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_LOW>; > > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > - clocks = <&mmsys CLK_MM_DISP_COLOR1>; > > -}; > > - > > -aal@14015000 { > > - compatible = "mediatek,mt8173-disp-aal"; > > - reg = <0 0x14015000 0 0x1000>; > > - interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_LOW>; > > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > - clocks = <&mmsys CLK_MM_DISP_AAL>; > > -}; > > - > > -gamma@14016000 { > > - compatible = "mediatek,mt8173-disp-gamma"; > > - reg = <0 0x14016000 0 0x1000>; > > - interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_LOW>; > > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > - clocks = <&mmsys CLK_MM_DISP_GAMMA>; > > -}; > > - > > -ufoe@1401a000 { > > - compatible = "mediatek,mt8173-disp-ufoe"; > > - reg = <0 0x1401a000 0 0x1000>; > > - interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_LOW>; > > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > - clocks = <&mmsys CLK_MM_DISP_UFOE>; > > -}; > > - > > -dsi0: dsi@1401b000 { > > - /* See mediatek,dsi.txt for details */ > > -}; > > - > > -dpi0: dpi@1401d000 { > > - /* See mediatek,dpi.txt for details */ > > -}; > > - > > -mutex: mutex@14020000 { > > - compatible = "mediatek,mt8173-disp-mutex"; > > - reg = <0 0x14020000 0 0x1000>; > > - interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_LOW>; > > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > - clocks = <&mmsys CLK_MM_MUTEX_32K>; > > -}; > > - > > -od@14023000 { > > - compatible = "mediatek,mt8173-disp-od"; > > - reg = <0 0x14023000 0 0x1000>; > > - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > - clocks = <&mmsys CLK_MM_DISP_OD>; > > -}; > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,dither.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,dither.yaml > > new file mode 100644 > > index 000000000000..2c05e3019c75 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,dither.yaml > > @@ -0,0 +1,75 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,dither.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Mediatek display dither processor > > + > > +maintainers: > > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > > + - Philipp Zabel <p.zabel@pengutronix.de> > > + > > +description: | > > + Mediatek display dither processor, namely DITHER, works by approximating > > + unavailable colors with available colors and by mixing and matching available > > + colors to mimic unavailable ones. > > + DITHER device node must be siblings to the central MMSYS_CONFIG node. > > + For a description of the MMSYS_CONFIG binding, see > > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > > + for details. > > + > > +properties: > > + compatible: > > + oneOf: > > + - items: > > + - const: mediatek,mt8183-disp-dither > > + - items: > > + - enum: > > + - mediatek,mt8192-disp-dither > > + - enum: > > + - mediatek,mt8183-disp-dither > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + power-domains: > > + description: A phandle and PM domain specifier as defined by bindings of > > + the power controller specified by phandle. See > > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > > + > > + clocks: > > + items: > > + - description: DITHER Clock > > + > > + mediatek,gce-client-reg: > > + description: The register of client driver can be configured by gce with > > + 4 arguments defined in this property, such as phandle of gce, subsys id, > > + register offset and size. Each GCE subsys id is mapping to a client > > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + maxItems: 1 > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - power-domains > > + - clocks > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + > > + dither0: dither@14012000 { > > + compatible = "mediatek,mt8183-disp-dither"; > > + reg = <0 0x14012000 0 0x1000>; > > + interrupts = <GIC_SPI 235 IRQ_TYPE_LEVEL_LOW>; > > + power-domains = <&spm MT8183_POWER_DOMAIN_DISP>; > > + clocks = <&mmsys CLK_MM_DISP_DITHER0>; > > + mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x2000 0x1000>; > > + }; > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,gamma.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,gamma.yaml > > new file mode 100644 > > index 000000000000..89ccb8dbadd7 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,gamma.yaml > > @@ -0,0 +1,76 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,gamma.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Mediatek display gamma correction > > + > > +maintainers: > > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > > + - Philipp Zabel <p.zabel@pengutronix.de> > > + > > +description: | > > + Mediatek display gamma correction, namely GAMMA, provides a nonlinear > > + operation used to adjust luminance in display system. > > + GAMMA device node must be siblings to the central MMSYS_CONFIG node. > > + For a description of the MMSYS_CONFIG binding, see > > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > > + for details. > > + > > +properties: > > + compatible: > > + oneOf: > > + - items: > > + - const: mediatek,mt8173-disp-gamma > > + - items: > > + - const: mediatek,mt8183-disp-gamma > > + - items: > > + - enum: > > + - mediatek,mt8192-disp-gamma > > + - enum: > > + - mediatek,mt8183-disp-gamma > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + power-domains: > > + description: A phandle and PM domain specifier as defined by bindings of > > + the power controller specified by phandle. See > > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > > + > > + clocks: > > + items: > > + - description: GAMMA Clock > > + > > + mediatek,gce-client-reg: > > + description: The register of client driver can be configured by gce with > > + 4 arguments defined in this property, such as phandle of gce, subsys id, > > + register offset and size. Each GCE subsys id is mapping to a client > > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + maxItems: 1 > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - power-domains > > + - clocks > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + > > + gamma@14016000 { > > + compatible = "mediatek,mt8173-disp-gamma"; > > + reg = <0 0x14016000 0 0x1000>; > > + interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_LOW>; > > + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > + clocks = <&mmsys CLK_MM_DISP_GAMMA>; > > + mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x6000 0x1000>; > > + }; > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,merge.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,merge.yaml > > new file mode 100644 > > index 000000000000..7aa6974d509d > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,merge.yaml > > @@ -0,0 +1,66 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,merge.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Mediatek display merge > > + > > +maintainers: > > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > > + - Philipp Zabel <p.zabel@pengutronix.de> > > + > > +description: | > > + Mediatek display merge, namely MERGE, is used to merge two slice-per-line > > + inputs into one side-by-side output. > > + MERGE device node must be siblings to the central MMSYS_CONFIG node. > > + For a description of the MMSYS_CONFIG binding, see > > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > > + for details. > > + > > +properties: > > + compatible: > > + oneOf: > > + - items: > > + - const: mediatek,mt8173-disp-merge > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + power-domains: > > + description: A phandle and PM domain specifier as defined by bindings of > > + the power controller specified by phandle. See > > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > > + > > + clocks: > > + items: > > + - description: MERGE Clock > > + > > + mediatek,gce-client-reg: > > + description: The register of client driver can be configured by gce with > > + 4 arguments defined in this property, such as phandle of gce, subsys id, > > + register offset and size. Each GCE subsys id is mapping to a client > > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + maxItems: 1 > > + > > +required: > > + - compatible > > + - reg > > + - power-domains > > + - clocks > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + > > + merge@14017000 { > > + compatible = "mediatek,mt8173-disp-merge"; > > + reg = <0 0x14017000 0 0x1000>; > > + power-domains = <&spm MT8173_POWER_DOMAIN_MM>; > > + clocks = <&mmsys CLK_MM_DISP_MERGE>; > > + }; > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,mutex.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,mutex.yaml > > new file mode 100644 > > index 000000000000..90f11e12a55e > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,mutex.yaml > > @@ -0,0 +1,82 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,mutex.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Mediatek display mutex > > + > > +maintainers: > > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > > + - Philipp Zabel <p.zabel@pengutronix.de> > > + > > +description: | > > + Mediatek mutex, namely MUTEX, is used to send the triggers signals called > > + Start Of Frame (SOF) / End Of Frame (EOF) to each sub-modules on the display > > + data path or MDP data path. > > + In some SoC, such as mt2701, MUTEX could be a hardware mutex which protects > > + the shadow register. > > + MUTEX device node must be siblings to the central MMSYS_CONFIG node. > > + For a description of the MMSYS_CONFIG binding, see > > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > > + for details. > > + > > +properties: > > + compatible: > > + oneOf: > > + - items: > > + - const: mediatek,mt2701-disp-mutex > > + - items: > > + - const: mediatek,mt2712-disp-mutex > > + - items: > > + - const: mediatek,mt8167-disp-mutex > > + - items: > > + - const: mediatek,mt8173-disp-mutex > > + - items: > > + - const: mediatek,mt8183-disp-mutex > > + - items: > > + - const: mediatek,mt8192-disp-mutex > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + power-domains: > > + description: A phandle and PM domain specifier as defined by bindings of > > + the power controller specified by phandle. See > > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > > + > > + clocks: > > + items: > > + - description: MUTEX Clock > > + > > + mediatek,gce-events: > > + description: > > + The event id which is mapping to the specific hardware event signal > > + to gce. The event id is defined in the gce header > > + include/dt-bindings/gce/<chip>-gce.h of each chips. > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - power-domains > > + - clocks > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + > > + mutex: mutex@14020000 { > > + compatible = "mediatek,mt8173-disp-mutex"; > > + reg = <0 0x14020000 0 0x1000>; > > + interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_LOW>; > > + power-domains = <&spm MT8173_POWER_DOMAIN_MM>; > > + clocks = <&mmsys CLK_MM_MUTEX_32K>; > > + mediatek,gce-events = <CMDQ_EVENT_MUTEX0_STREAM_EOF>, > > + <CMDQ_EVENT_MUTEX1_STREAM_EOF>; > > + }; > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,od.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,od.yaml > > new file mode 100644 > > index 000000000000..7519db315217 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,od.yaml > > @@ -0,0 +1,53 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,od.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Mediatek display overdirve > > + > > +maintainers: > > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > > + - Philipp Zabel <p.zabel@pengutronix.de> > > + > > +description: | > > + Mediatek display overdrive, namely OD, increases the transition values > > + of pixels between consecutive frames to make LCD rotate faster. > > + OD device node must be siblings to the central MMSYS_CONFIG node. > > + For a description of the MMSYS_CONFIG binding, see > > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > > + for details. > > + > > +properties: > > + compatible: > > + oneOf: > > + - items: > > + - const: mediatek,mt2712-disp-od > > + - items: > > + - const: mediatek,mt8173-disp-od > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + clocks: > > + items: > > + - description: OD Clock > > + > > +required: > > + - compatible > > + - reg > > + - clocks > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + > > + od@14023000 { > > + compatible = "mediatek,mt8173-disp-od"; > > + reg = <0 0x14023000 0 0x1000>; > > + clocks = <&mmsys CLK_MM_DISP_OD>; > > + }; > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,ovl-2l.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,ovl-2l.yaml > > new file mode 100644 > > index 000000000000..611a2dbdefa4 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,ovl-2l.yaml > > @@ -0,0 +1,88 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,ovl-2l.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Mediatek display overlay 2 layer > > + > > +maintainers: > > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > > + - Philipp Zabel <p.zabel@pengutronix.de> > > + > > +description: | > > + Mediatek display overlay 2 layer, namely OVL-2L, provides 2 more layer > > + for OVL. > > + OVL-2L device node must be siblings to the central MMSYS_CONFIG node. > > + For a description of the MMSYS_CONFIG binding, see > > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > > + for details. > > + > > +properties: > > + compatible: > > + oneOf: > > + - items: > > + - const: mediatek,mt8183-disp-ovl-2l > > + - items: > > + - const: mediatek,mt8192-disp-ovl-2l > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + power-domains: > > + description: A phandle and PM domain specifier as defined by bindings of > > + the power controller specified by phandle. See > > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > > + > > + clocks: > > + items: > > + - description: OVL-2L Clock > > + > > + iommus: > > + description: > > + This property should point to the respective IOMMU block with master port as argument, > > + see Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml for details. > > + > > + mediatek,larb: > > + description: > > + This property should contain a phandle pointing to the local arbiter devices defined in > > + Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml. > > + It must sort according to the local arbiter index, like larb0, larb1, larb2... > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + minItems: 1 > > + maxItems: 32 > > + > > + mediatek,gce-client-reg: > > + description: The register of client driver can be configured by gce with > > + 4 arguments defined in this property, such as phandle of gce, subsys id, > > + register offset and size. Each GCE subsys id is mapping to a client > > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + maxItems: 1 > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - power-domains > > + - clocks > > + - iommus > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + > > + ovl_2l0: ovl@14009000 { > > + compatible = "mediatek,mt8183-disp-ovl-2l"; > > + reg = <0 0x14009000 0 0x1000>; > > + interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_LOW>; > > + power-domains = <&spm MT8183_POWER_DOMAIN_DISP>; > > + clocks = <&mmsys CLK_MM_DISP_OVL0_2L>; > > + iommus = <&iommu M4U_PORT_DISP_2L_OVL0_LARB0>; > > + mediatek,larb = <&larb0>; > > + mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x9000 0x1000>; > > + }; > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,ovl.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,ovl.yaml > > new file mode 100644 > > index 000000000000..8e4a62cb9c81 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,ovl.yaml > > @@ -0,0 +1,98 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,ovl.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Mediatek display overlay > > + > > +maintainers: > > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > > + - Philipp Zabel <p.zabel@pengutronix.de> > > + > > +description: | > > + Mediatek display overlay, namely OVL, can do alpha blending from > > + the memory. > > + OVL device node must be siblings to the central MMSYS_CONFIG node. > > + For a description of the MMSYS_CONFIG binding, see > > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > > + for details. > > + > > +properties: > > + compatible: > > + oneOf: > > + - items: > > + - const: mediatek,mt2701-disp-ovl > > + - items: > > + - const: mediatek,mt8173-disp-ovl > > + - items: > > + - const: mediatek,mt8183-disp-ovl > > + - items: > > + - const: mediatek,mt8192-disp-ovl > > + - items: > > + - enum: > > + - mediatek,mt7623-disp-ovl > > + - mediatek,mt2712-disp-ovl > > + - enum: > > + - mediatek,mt2701-disp-ovl > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + power-domains: > > + description: A phandle and PM domain specifier as defined by bindings of > > + the power controller specified by phandle. See > > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > > + > > + clocks: > > + items: > > + - description: OVL Clock > > + > > + iommus: > > + description: > > + This property should point to the respective IOMMU block with master port as argument, > > + see Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml for details. > > + > > + mediatek,larb: > > + description: > > + This property should contain a phandle pointing to the local arbiter devices defined in > > + Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml. > > + It must sort according to the local arbiter index, like larb0, larb1, larb2... > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + minItems: 1 > > + maxItems: 32 > > + > > + mediatek,gce-client-reg: > > + description: The register of client driver can be configured by gce with > > + 4 arguments defined in this property, such as phandle of gce, subsys id, > > + register offset and size. Each GCE subsys id is mapping to a client > > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + maxItems: 1 > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - power-domains > > + - clocks > > + - iommu > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + > > + ovl0: ovl@1400c000 { > > + compatible = "mediatek,mt8173-disp-ovl"; > > + reg = <0 0x1400c000 0 0x1000>; > > + interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_LOW>; > > + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > + clocks = <&mmsys CLK_MM_DISP_OVL0>; > > + iommus = <&iommu M4U_PORT_DISP_OVL0>; > > + mediatek,larb = <&larb0>; > > + mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xc000 0x1000>; > > + }; > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,postmask.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,postmask.yaml > > new file mode 100644 > > index 000000000000..6ac1da2e8871 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,postmask.yaml > > @@ -0,0 +1,69 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,postmask.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Mediatek display postmask > > + > > +maintainers: > > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > > + - Philipp Zabel <p.zabel@pengutronix.de> > > + > > +description: | > > + Mediatek display postmask, namely POSTMASK, provides round corner pattern > > + generation. > > + POSTMASK device node must be siblings to the central MMSYS_CONFIG node. > > + For a description of the MMSYS_CONFIG binding, see > > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > > + for details. > > + > > +properties: > > + compatible: > > + oneOf: > > + - items: > > + - const: mediatek,mt8192-disp-postmask > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + power-domains: > > + description: A phandle and PM domain specifier as defined by bindings of > > + the power controller specified by phandle. See > > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > > + > > + clocks: > > + items: > > + - description: POSTMASK Clock > > + > > + mediatek,gce-client-reg: > > + description: The register of client driver can be configured by gce with > > + 4 arguments defined in this property, such as phandle of gce, subsys id, > > + register offset and size. Each GCE subsys id is mapping to a client > > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + maxItems: 1 > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - power-domains > > + - clocks > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + > > + postmask0: postmask@1400d000 { > > + compatible = "mediatek,mt8192-disp-postmask"; > > + reg = <0 0x1400d000 0 0x1000>; > > + interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH 0>; > > + power-domains = <&scpsys MT8192_POWER_DOMAIN_DISP>; > > + clocks = <&mmsys CLK_MM_DISP_POSTMASK0>; > > + mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xd000 0x1000>; > > + }; > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,rdma.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,rdma.yaml > > new file mode 100644 > > index 000000000000..a3c5f4c9fbcd > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,rdma.yaml > > @@ -0,0 +1,115 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,rdma.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Mediatek Read Direct Memory Access > > + > > +maintainers: > > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > > + - Philipp Zabel <p.zabel@pengutronix.de> > > + > > +description: | > > + Mediatek Read Direct Memory Access(RDMA) component used to read the > > + data into DMA. It provides real time data to the back-end panel > > + driver, such as DSI, DPI and DP_INTF. > > + It contains one line buffer to store the sufficient pixel data. > > + RDMA device node must be siblings to the central MMSYS_CONFIG node. > > + For a description of the MMSYS_CONFIG binding, see > > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > > + for details. > > + > > +properties: > > + compatible: > > + oneOf: > > + - items: > > + - const: mediatek,mt2701-disp-rdma > > + - items: > > + - const: mediatek,mt8173-disp-rdma > > + - items: > > + - const: mediatek,mt8183-disp-rdma > > + - items: > > + - enum: > > + - mediatek,mt7623-disp-rdma > > + - mediatek,mt2712-disp-rdma > > + - enum: > > + - mediatek,mt2701-disp-rdma > > + - items: > > + - enum: > > + - mediatek,mt8192-disp-rdma > > + - enum: > > + - mediatek,mt8183-disp-rdma > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + power-domains: > > + description: A phandle and PM domain specifier as defined by bindings of > > + the power controller specified by phandle. See > > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > > + > > + clocks: > > + items: > > + - description: RDMA Clock > > + > > + iommus: > > + description: > > + This property should point to the respective IOMMU block with master port as argument, > > + see Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml for details. > > + > > + mediatek,larb: > > + description: > > + This property should contain a phandle pointing to the local arbiter devices defined in > > + Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml. > > + It must sort according to the local arbiter index, like larb0, larb1, larb2... > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + minItems: 1 > > + maxItems: 32 > > + > > + mediatek,rdma-fifo-size: > > + description: > > + rdma fifo size may be different even in same SOC, add this property to the > > + corresponding rdma. > > + The value below is the Max value which defined in hardware data sheet > > + mediatek,rdma-fifo-size of mt8173-rdma0 is 8K > > + mediatek,rdma-fifo-size of mt8183-rdma0 is 5K > > + mediatek,rdma-fifo-size of mt8183-rdma1 is 2K > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + enum: [8192, 5120, 2048] > > + > > + mediatek,gce-client-reg: > > + description: The register of client driver can be configured by gce with > > + 4 arguments defined in this property, such as phandle of gce, subsys id, > > + register offset and size. Each GCE subsys id is mapping to a client > > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + maxItems: 1 > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - power-domains > > + - clocks > > + - iommus > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + > > + rdma0: rdma@1400e000 { > > + compatible = "mediatek,mt8173-disp-rdma"; > > + reg = <0 0x1400e000 0 0x1000>; > > + interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_LOW>; > > + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > + clocks = <&mmsys CLK_MM_DISP_RDMA0>; > > + iommus = <&iommu M4U_PORT_DISP_RDMA0>; > > + mediatek,larb = <&larb0>; > > + mediatek,rdma-fifosize = <8192>; > > + mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xe000 0x1000>; > > + }; > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,split.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,split.yaml > > new file mode 100644 > > index 000000000000..4f08e89c1067 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,split.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/mediatek/mediatek,split.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Mediatek display split > > + > > +maintainers: > > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > > + - Philipp Zabel <p.zabel@pengutronix.de> > > + > > +description: | > > + Mediatek display split, namely SPLIT, is used to split stream to two > > + encoders. > > + SPLIT device node must be siblings to the central MMSYS_CONFIG node. > > + For a description of the MMSYS_CONFIG binding, see > > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > > + for details. > > + > > +properties: > > + compatible: > > + oneOf: > > + - items: > > + - const: mediatek,mt8173-disp-split > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + power-domains: > > + description: A phandle and PM domain specifier as defined by bindings of > > + the power controller specified by phandle. See > > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > > + > > + clocks: > > + items: > > + - description: SPLIT Clock > > + > > +required: > > + - compatible > > + - reg > > + - power-domains > > + - clocks > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + > > + split0: split@14018000 { > > + compatible = "mediatek,mt8173-disp-split"; > > + reg = <0 0x14018000 0 0x1000>; > > + power-domains = <&spm MT8173_POWER_DOMAIN_MM>; > > + clocks = <&mmsys CLK_MM_DISP_SPLIT0>; > > + }; > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,ufoe.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,ufoe.yaml > > new file mode 100644 > > index 000000000000..6e8748529e73 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,ufoe.yaml > > @@ -0,0 +1,61 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,ufoe.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Mediatek display UFOe > > + > > +maintainers: > > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > > + - Philipp Zabel <p.zabel@pengutronix.de> > > + > > +description: | > > + Mediatek display UFOe stands for Unified Frame Optimization engine. > > + UFOe can cut the data rate for DSI port which may lead to reduce power > > + consumption. > > + UFOe device node must be siblings to the central MMSYS_CONFIG node. > > + For a description of the MMSYS_CONFIG binding, see > > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > > + for details. > > + > > +properties: > > + compatible: > > + oneOf: > > + - items: > > + - const: mediatek,mt8173-disp-ufoe > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + power-domains: > > + description: A phandle and PM domain specifier as defined by bindings of > > + the power controller specified by phandle. See > > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > > + > > + clocks: > > + items: > > + - description: UFOe Clock > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - power-domains > > + - clocks > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + > > + ufoe@1401a000 { > > + compatible = "mediatek,mt8173-disp-ufoe"; > > + reg = <0 0x1401a000 0 0x1000>; > > + interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_LOW>; > > + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > + clocks = <&mmsys CLK_MM_DISP_UFOE>; > > + }; > > diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,wdma.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,wdma.yaml > > new file mode 100644 > > index 000000000000..aaf5649b6413 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,wdma.yaml > > @@ -0,0 +1,86 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/mediatek/mediatek,wdma.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Mediatek Write Direct Memory Access > > + > > +maintainers: > > + - Chun-Kuang Hu <chunkuang.hu@kernel.org> > > + - Philipp Zabel <p.zabel@pengutronix.de> > > + > > +description: | > > + Mediatek Write Direct Memory Access(WDMA) component used to write > > + the data into DMA. > > + WDMA device node must be siblings to the central MMSYS_CONFIG node. > > + For a description of the MMSYS_CONFIG binding, see > > + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml > > + for details. > > + > > +properties: > > + compatible: > > + oneOf: > > + - items: > > + - const: mediatek,mt8173-disp-wdma > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + power-domains: > > + description: A phandle and PM domain specifier as defined by bindings of > > + the power controller specified by phandle. See > > + Documentation/devicetree/bindings/power/power-domain.yaml for details. > > + > > + clocks: > > + items: > > + - description: WDMA Clock > > + > > + iommus: > > + description: > > + This property should point to the respective IOMMU block with master port as argument, > > + see Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml for details. > > + > > + mediatek,larb: > > + description: > > + This property should contain a phandle pointing to the local arbiter devices defined in > > + Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml. > > + It must sort according to the local arbiter index, like larb0, larb1, larb2... > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + minItems: 1 > > + maxItems: 32 > > + > > + mediatek,gce-client-reg: > > + description: The register of client driver can be configured by gce with > > + 4 arguments defined in this property, such as phandle of gce, subsys id, > > + register offset and size. Each GCE subsys id is mapping to a client > > + defined in the header include/dt-bindings/gce/<chip>-gce.h. > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + maxItems: 1 > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - power-domains > > + - clocks > > + - iommus > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + > > + wdma0: wdma@14011000 { > > + compatible = "mediatek,mt8173-disp-wdma"; > > + reg = <0 0x14011000 0 0x1000>; > > + interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_LOW>; > > + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; > > + clocks = <&mmsys CLK_MM_DISP_WDMA0>; > > + iommus = <&iommu M4U_PORT_DISP_WDMA0>; > > + mediatek,larb = <&larb0>; > > + mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x1000 0x1000>; > > + }; > > -- > > 2.18.0 > >
On Mon, Feb 7, 2022 at 5:07 PM Chun-Kuang Hu <chunkuang.hu@kernel.org> wrote: > > OK, it seems no one has comment on this patch, so No comment because the patch was not in PW. That's most likely due to this: Subject: [PATCH v15 03/12] dt-bindings: display: mediatek: disp: split each block to individual yaml Date: Wed, 26 Jan 2022 15:19:23 +0800 [thread overview] Message-ID: <20220126071932.32615-4-jason-jh.lin@mediatek.com> (raw) In-Reply-To: <20220126071932.32615-1-jason-jh.lin@mediatek.com> [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain; charset="y", Size: 50916 bytes --] "y" is not a valid charset. This is caused when git-send-email asks for the encoding and you answer 'y' rather than <enter>. Rob
Hi Rob, Thanks for the reviews. On Wed, 2022-03-02 at 18:00 -0600, Rob Herring wrote: > On Mon, Feb 7, 2022 at 5:07 PM Chun-Kuang Hu <chunkuang.hu@kernel.org > > wrote: > > > > OK, it seems no one has comment on this patch, so > > No comment because the patch was not in PW. That's most likely due to > this: > > Subject: [PATCH v15 03/12] dt-bindings: display: mediatek: disp: > split > each block to individual yaml > Date: Wed, 26 Jan 2022 15:19:23 +0800 [thread overview] > Message-ID: <20220126071932.32615-4-jason-jh.lin@mediatek.com> (raw) > In-Reply-To: <20220126071932.32615-1-jason-jh.lin@mediatek.com> > > [-- Warning: decoded text below may be mangled, UTF-8 assumed --] > [-- Attachment #1: Type: text/plain; charset="y", Size: 50916 bytes > --] > > "y" is not a valid charset. This is caused when git-send-email asks > for the encoding and you answer 'y' rather than <enter>. > > Rob
diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,aal.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,aal.yaml new file mode 100644 index 000000000000..044331f5aacb --- /dev/null +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,aal.yaml @@ -0,0 +1,76 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/mediatek/mediatek,aal.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Mediatek display adaptive ambient light processor + +maintainers: + - Chun-Kuang Hu <chunkuang.hu@kernel.org> + - Philipp Zabel <p.zabel@pengutronix.de> + +description: | + Mediatek display adaptive ambient light processor, namely AAL, + is responsible for backlight power saving and sunlight visibility improving. + AAL device node must be siblings to the central MMSYS_CONFIG node. + For a description of the MMSYS_CONFIG binding, see + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml + for details. + +properties: + compatible: + oneOf: + - items: + - const: mediatek,mt8173-disp-aal + - items: + - enum: + - mediatek,mt2712-disp-aal + - mediatek,mt8183-disp-aal + - mediatek,mt8192-disp-aal + - enum: + - mediatek,mt8173-disp-aal + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + power-domains: + description: A phandle and PM domain specifier as defined by bindings of + the power controller specified by phandle. See + Documentation/devicetree/bindings/power/power-domain.yaml for details. + + clocks: + items: + - description: AAL Clock + + mediatek,gce-client-reg: + description: The register of client driver can be configured by gce with + 4 arguments defined in this property, such as phandle of gce, subsys id, + register offset and size. Each GCE subsys id is mapping to a client + defined in the header include/dt-bindings/gce/<chip>-gce.h. + $ref: /schemas/types.yaml#/definitions/phandle-array + maxItems: 1 + +required: + - compatible + - reg + - interrupts + - power-domains + - clocks + +additionalProperties: false + +examples: + - | + + aal@14015000 { + compatible = "mediatek,mt8173-disp-aal"; + reg = <0 0x14015000 0 0x1000>; + interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_LOW>; + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; + clocks = <&mmsys CLK_MM_DISP_AAL>; + mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x5000 0x1000>; + }; diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,ccorr.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,ccorr.yaml new file mode 100644 index 000000000000..ea45b40edee7 --- /dev/null +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,ccorr.yaml @@ -0,0 +1,71 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/mediatek/mediatek,ccorr.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Mediatek display color correction + +maintainers: + - Chun-Kuang Hu <chunkuang.hu@kernel.org> + - Philipp Zabel <p.zabel@pengutronix.de> + +description: | + Mediatek display color correction, namely CCORR, reproduces correct color + on panels with different color gamut. + CCORR device node must be siblings to the central MMSYS_CONFIG node. + For a description of the MMSYS_CONFIG binding, see + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml + for details. + +properties: + compatible: + oneOf: + - items: + - const: mediatek,mt8183-disp-ccorr + - items: + - const: mediatek,mt8192-disp-ccorr + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + power-domains: + description: A phandle and PM domain specifier as defined by bindings of + the power controller specified by phandle. See + Documentation/devicetree/bindings/power/power-domain.yaml for details. + + clocks: + items: + - description: CCORR Clock + + mediatek,gce-client-reg: + description: The register of client driver can be configured by gce with + 4 arguments defined in this property, such as phandle of gce, subsys id, + register offset and size. Each GCE subsys id is mapping to a client + defined in the header include/dt-bindings/gce/<chip>-gce.h. + $ref: /schemas/types.yaml#/definitions/phandle-array + maxItems: 1 + +required: + - compatible + - reg + - interrupts + - power-domains + - clocks + +additionalProperties: false + +examples: + - | + + ccorr0: ccorr@1400f000 { + compatible = "mediatek,mt8183-disp-ccorr"; + reg = <0 0x1400f000 0 0x1000>; + interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_LOW>; + power-domains = <&spm MT8183_POWER_DOMAIN_DISP>; + clocks = <&mmsys CLK_MM_DISP_CCORR0>; + mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xf000 0x1000>; + }; diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,color.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,color.yaml new file mode 100644 index 000000000000..13628f346718 --- /dev/null +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,color.yaml @@ -0,0 +1,85 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/mediatek/mediatek,color.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Mediatek display color processor + +maintainers: + - Chun-Kuang Hu <chunkuang.hu@kernel.org> + - Philipp Zabel <p.zabel@pengutronix.de> + +description: | + Mediatek display color processor, namely COLOR, provides hue, luma and + saturation adjustments to get better picture quality and to have one panel + resemble the other in their output characteristics. + COLOR device node must be siblings to the central MMSYS_CONFIG node. + For a description of the MMSYS_CONFIG binding, see + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml + for details. + +properties: + compatible: + oneOf: + - items: + - const: mediatek,mt2701-disp-color + - items: + - const: mediatek,mt8167-disp-color + - items: + - const: mediatek,mt8173-disp-color + - items: + - enum: + - mediatek,mt7623-disp-color + - mediatek,mt2712-disp-color + - enum: + - mediatek,mt2701-disp-color + - items: + - enum: + - mediatek,mt8183-disp-color + - mediatek,mt8192-disp-color + - enum: + - mediatek,mt8173-disp-color + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + power-domains: + description: A phandle and PM domain specifier as defined by bindings of + the power controller specified by phandle. See + Documentation/devicetree/bindings/power/power-domain.yaml for details. + + clocks: + items: + - description: COLOR Clock + + mediatek,gce-client-reg: + description: The register of client driver can be configured by gce with + 4 arguments defined in this property, such as phandle of gce, subsys id, + register offset and size. Each GCE subsys id is mapping to a client + defined in the header include/dt-bindings/gce/<chip>-gce.h. + $ref: /schemas/types.yaml#/definitions/phandle-array + maxItems: 1 + +required: + - compatible + - reg + - interrupts + - power-domains + - clocks + +additionalProperties: false + +examples: + - | + + color0: color@14013000 { + compatible = "mediatek,mt8173-disp-color"; + reg = <0 0x14013000 0 0x1000>; + interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_LOW>; + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; + clocks = <&mmsys CLK_MM_DISP_COLOR0>; + mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x3000 0x1000>; + }; diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,disp.txt b/Documentation/devicetree/bindings/display/mediatek/mediatek,disp.txt deleted file mode 100644 index 78044c340e20..000000000000 --- a/Documentation/devicetree/bindings/display/mediatek/mediatek,disp.txt +++ /dev/null @@ -1,219 +0,0 @@ -Mediatek display subsystem -========================== - -The Mediatek display subsystem consists of various DISP function blocks in the -MMSYS register space. The connections between them can be configured by output -and input selectors in the MMSYS_CONFIG register space. Pixel clock and start -of frame signal are distributed to the other function blocks by a DISP_MUTEX -function block. - -All DISP device tree nodes must be siblings to the central MMSYS_CONFIG node. -For a description of the MMSYS_CONFIG binding, see -Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml. - -DISP function blocks -==================== - -A display stream starts at a source function block that reads pixel data from -memory and ends with a sink function block that drives pixels on a display -interface, or writes pixels back to memory. All DISP function blocks have -their own register space, interrupt, and clock gate. The blocks that can -access memory additionally have to list the IOMMU and local arbiter they are -connected to. - -For a description of the display interface sink function blocks, see -Documentation/devicetree/bindings/display/mediatek/mediatek,dsi.txt and -Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.yaml. - -Required properties (all function blocks): -- compatible: "mediatek,<chip>-disp-<function>", one of - "mediatek,<chip>-disp-ovl" - overlay (4 layers, blending, csc) - "mediatek,<chip>-disp-ovl-2l" - overlay (2 layers, blending, csc) - "mediatek,<chip>-disp-rdma" - read DMA / line buffer - "mediatek,<chip>-disp-wdma" - write DMA - "mediatek,<chip>-disp-ccorr" - color correction - "mediatek,<chip>-disp-color" - color processor - "mediatek,<chip>-disp-dither" - dither - "mediatek,<chip>-disp-aal" - adaptive ambient light controller - "mediatek,<chip>-disp-gamma" - gamma correction - "mediatek,<chip>-disp-merge" - merge streams from two RDMA sources - "mediatek,<chip>-disp-postmask" - control round corner for display frame - "mediatek,<chip>-disp-split" - split stream to two encoders - "mediatek,<chip>-disp-ufoe" - data compression engine - "mediatek,<chip>-dsi" - DSI controller, see mediatek,dsi.txt - "mediatek,<chip>-dpi" - DPI controller, see mediatek,dpi.txt - "mediatek,<chip>-disp-mutex" - display mutex - "mediatek,<chip>-disp-od" - overdrive - the supported chips are mt2701, mt7623, mt2712, mt8167, mt8173, mt8183 and mt8192. -- reg: Physical base address and length of the function block register space -- interrupts: The interrupt signal from the function block (required, except for - merge and split function blocks). -- clocks: device clocks - See Documentation/devicetree/bindings/clock/clock-bindings.txt for details. - For most function blocks this is just a single clock input. Only the DSI and - DPI controller nodes have multiple clock inputs. These are documented in - mediatek,dsi.txt and mediatek,dpi.txt, respectively. - An exception is that the mt8183 mutex is always free running with no clocks property. - -Required properties (DMA function blocks): -- compatible: Should be one of - "mediatek,<chip>-disp-ovl" - "mediatek,<chip>-disp-rdma" - "mediatek,<chip>-disp-wdma" - the supported chips are mt2701, mt8167 and mt8173. -- larb: Should contain a phandle pointing to the local arbiter device as defined - in Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml -- iommus: Should point to the respective IOMMU block with master port as - argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml - for details. - -Optional properties (RDMA function blocks): -- mediatek,rdma-fifo-size: rdma fifo size may be different even in same SOC, add this - property to the corresponding rdma - the value is the Max value which defined in hardware data sheet. - mediatek,rdma-fifo-size of mt8173-rdma0 is 8K - mediatek,rdma-fifo-size of mt8183-rdma0 is 5K - mediatek,rdma-fifo-size of mt8183-rdma1 is 2K - -Examples: - -mmsys: clock-controller@14000000 { - compatible = "mediatek,mt8173-mmsys", "syscon"; - reg = <0 0x14000000 0 0x1000>; - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; - #clock-cells = <1>; -}; - -ovl0: ovl@1400c000 { - compatible = "mediatek,mt8173-disp-ovl"; - reg = <0 0x1400c000 0 0x1000>; - interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_LOW>; - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; - clocks = <&mmsys CLK_MM_DISP_OVL0>; - iommus = <&iommu M4U_PORT_DISP_OVL0>; - mediatek,larb = <&larb0>; -}; - -ovl1: ovl@1400d000 { - compatible = "mediatek,mt8173-disp-ovl"; - reg = <0 0x1400d000 0 0x1000>; - interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_LOW>; - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; - clocks = <&mmsys CLK_MM_DISP_OVL1>; - iommus = <&iommu M4U_PORT_DISP_OVL1>; - mediatek,larb = <&larb4>; -}; - -rdma0: rdma@1400e000 { - compatible = "mediatek,mt8173-disp-rdma"; - reg = <0 0x1400e000 0 0x1000>; - interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_LOW>; - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; - clocks = <&mmsys CLK_MM_DISP_RDMA0>; - iommus = <&iommu M4U_PORT_DISP_RDMA0>; - mediatek,larb = <&larb0>; - mediatek,rdma-fifosize = <8192>; -}; - -rdma1: rdma@1400f000 { - compatible = "mediatek,mt8173-disp-rdma"; - reg = <0 0x1400f000 0 0x1000>; - interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_LOW>; - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; - clocks = <&mmsys CLK_MM_DISP_RDMA1>; - iommus = <&iommu M4U_PORT_DISP_RDMA1>; - mediatek,larb = <&larb4>; -}; - -rdma2: rdma@14010000 { - compatible = "mediatek,mt8173-disp-rdma"; - reg = <0 0x14010000 0 0x1000>; - interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_LOW>; - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; - clocks = <&mmsys CLK_MM_DISP_RDMA2>; - iommus = <&iommu M4U_PORT_DISP_RDMA2>; - mediatek,larb = <&larb4>; -}; - -wdma0: wdma@14011000 { - compatible = "mediatek,mt8173-disp-wdma"; - reg = <0 0x14011000 0 0x1000>; - interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_LOW>; - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; - clocks = <&mmsys CLK_MM_DISP_WDMA0>; - iommus = <&iommu M4U_PORT_DISP_WDMA0>; - mediatek,larb = <&larb0>; -}; - -wdma1: wdma@14012000 { - compatible = "mediatek,mt8173-disp-wdma"; - reg = <0 0x14012000 0 0x1000>; - interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_LOW>; - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; - clocks = <&mmsys CLK_MM_DISP_WDMA1>; - iommus = <&iommu M4U_PORT_DISP_WDMA1>; - mediatek,larb = <&larb4>; -}; - -color0: color@14013000 { - compatible = "mediatek,mt8173-disp-color"; - reg = <0 0x14013000 0 0x1000>; - interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_LOW>; - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; - clocks = <&mmsys CLK_MM_DISP_COLOR0>; -}; - -color1: color@14014000 { - compatible = "mediatek,mt8173-disp-color"; - reg = <0 0x14014000 0 0x1000>; - interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_LOW>; - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; - clocks = <&mmsys CLK_MM_DISP_COLOR1>; -}; - -aal@14015000 { - compatible = "mediatek,mt8173-disp-aal"; - reg = <0 0x14015000 0 0x1000>; - interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_LOW>; - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; - clocks = <&mmsys CLK_MM_DISP_AAL>; -}; - -gamma@14016000 { - compatible = "mediatek,mt8173-disp-gamma"; - reg = <0 0x14016000 0 0x1000>; - interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_LOW>; - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; - clocks = <&mmsys CLK_MM_DISP_GAMMA>; -}; - -ufoe@1401a000 { - compatible = "mediatek,mt8173-disp-ufoe"; - reg = <0 0x1401a000 0 0x1000>; - interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_LOW>; - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; - clocks = <&mmsys CLK_MM_DISP_UFOE>; -}; - -dsi0: dsi@1401b000 { - /* See mediatek,dsi.txt for details */ -}; - -dpi0: dpi@1401d000 { - /* See mediatek,dpi.txt for details */ -}; - -mutex: mutex@14020000 { - compatible = "mediatek,mt8173-disp-mutex"; - reg = <0 0x14020000 0 0x1000>; - interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_LOW>; - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; - clocks = <&mmsys CLK_MM_MUTEX_32K>; -}; - -od@14023000 { - compatible = "mediatek,mt8173-disp-od"; - reg = <0 0x14023000 0 0x1000>; - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; - clocks = <&mmsys CLK_MM_DISP_OD>; -}; diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,dither.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,dither.yaml new file mode 100644 index 000000000000..2c05e3019c75 --- /dev/null +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,dither.yaml @@ -0,0 +1,75 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/mediatek/mediatek,dither.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Mediatek display dither processor + +maintainers: + - Chun-Kuang Hu <chunkuang.hu@kernel.org> + - Philipp Zabel <p.zabel@pengutronix.de> + +description: | + Mediatek display dither processor, namely DITHER, works by approximating + unavailable colors with available colors and by mixing and matching available + colors to mimic unavailable ones. + DITHER device node must be siblings to the central MMSYS_CONFIG node. + For a description of the MMSYS_CONFIG binding, see + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml + for details. + +properties: + compatible: + oneOf: + - items: + - const: mediatek,mt8183-disp-dither + - items: + - enum: + - mediatek,mt8192-disp-dither + - enum: + - mediatek,mt8183-disp-dither + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + power-domains: + description: A phandle and PM domain specifier as defined by bindings of + the power controller specified by phandle. See + Documentation/devicetree/bindings/power/power-domain.yaml for details. + + clocks: + items: + - description: DITHER Clock + + mediatek,gce-client-reg: + description: The register of client driver can be configured by gce with + 4 arguments defined in this property, such as phandle of gce, subsys id, + register offset and size. Each GCE subsys id is mapping to a client + defined in the header include/dt-bindings/gce/<chip>-gce.h. + $ref: /schemas/types.yaml#/definitions/phandle-array + maxItems: 1 + +required: + - compatible + - reg + - interrupts + - power-domains + - clocks + +additionalProperties: false + +examples: + - | + + dither0: dither@14012000 { + compatible = "mediatek,mt8183-disp-dither"; + reg = <0 0x14012000 0 0x1000>; + interrupts = <GIC_SPI 235 IRQ_TYPE_LEVEL_LOW>; + power-domains = <&spm MT8183_POWER_DOMAIN_DISP>; + clocks = <&mmsys CLK_MM_DISP_DITHER0>; + mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x2000 0x1000>; + }; diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,gamma.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,gamma.yaml new file mode 100644 index 000000000000..89ccb8dbadd7 --- /dev/null +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,gamma.yaml @@ -0,0 +1,76 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/mediatek/mediatek,gamma.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Mediatek display gamma correction + +maintainers: + - Chun-Kuang Hu <chunkuang.hu@kernel.org> + - Philipp Zabel <p.zabel@pengutronix.de> + +description: | + Mediatek display gamma correction, namely GAMMA, provides a nonlinear + operation used to adjust luminance in display system. + GAMMA device node must be siblings to the central MMSYS_CONFIG node. + For a description of the MMSYS_CONFIG binding, see + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml + for details. + +properties: + compatible: + oneOf: + - items: + - const: mediatek,mt8173-disp-gamma + - items: + - const: mediatek,mt8183-disp-gamma + - items: + - enum: + - mediatek,mt8192-disp-gamma + - enum: + - mediatek,mt8183-disp-gamma + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + power-domains: + description: A phandle and PM domain specifier as defined by bindings of + the power controller specified by phandle. See + Documentation/devicetree/bindings/power/power-domain.yaml for details. + + clocks: + items: + - description: GAMMA Clock + + mediatek,gce-client-reg: + description: The register of client driver can be configured by gce with + 4 arguments defined in this property, such as phandle of gce, subsys id, + register offset and size. Each GCE subsys id is mapping to a client + defined in the header include/dt-bindings/gce/<chip>-gce.h. + $ref: /schemas/types.yaml#/definitions/phandle-array + maxItems: 1 + +required: + - compatible + - reg + - interrupts + - power-domains + - clocks + +additionalProperties: false + +examples: + - | + + gamma@14016000 { + compatible = "mediatek,mt8173-disp-gamma"; + reg = <0 0x14016000 0 0x1000>; + interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_LOW>; + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; + clocks = <&mmsys CLK_MM_DISP_GAMMA>; + mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x6000 0x1000>; + }; diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,merge.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,merge.yaml new file mode 100644 index 000000000000..7aa6974d509d --- /dev/null +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,merge.yaml @@ -0,0 +1,66 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/mediatek/mediatek,merge.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Mediatek display merge + +maintainers: + - Chun-Kuang Hu <chunkuang.hu@kernel.org> + - Philipp Zabel <p.zabel@pengutronix.de> + +description: | + Mediatek display merge, namely MERGE, is used to merge two slice-per-line + inputs into one side-by-side output. + MERGE device node must be siblings to the central MMSYS_CONFIG node. + For a description of the MMSYS_CONFIG binding, see + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml + for details. + +properties: + compatible: + oneOf: + - items: + - const: mediatek,mt8173-disp-merge + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + power-domains: + description: A phandle and PM domain specifier as defined by bindings of + the power controller specified by phandle. See + Documentation/devicetree/bindings/power/power-domain.yaml for details. + + clocks: + items: + - description: MERGE Clock + + mediatek,gce-client-reg: + description: The register of client driver can be configured by gce with + 4 arguments defined in this property, such as phandle of gce, subsys id, + register offset and size. Each GCE subsys id is mapping to a client + defined in the header include/dt-bindings/gce/<chip>-gce.h. + $ref: /schemas/types.yaml#/definitions/phandle-array + maxItems: 1 + +required: + - compatible + - reg + - power-domains + - clocks + +additionalProperties: false + +examples: + - | + + merge@14017000 { + compatible = "mediatek,mt8173-disp-merge"; + reg = <0 0x14017000 0 0x1000>; + power-domains = <&spm MT8173_POWER_DOMAIN_MM>; + clocks = <&mmsys CLK_MM_DISP_MERGE>; + }; diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,mutex.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,mutex.yaml new file mode 100644 index 000000000000..90f11e12a55e --- /dev/null +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,mutex.yaml @@ -0,0 +1,82 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/mediatek/mediatek,mutex.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Mediatek display mutex + +maintainers: + - Chun-Kuang Hu <chunkuang.hu@kernel.org> + - Philipp Zabel <p.zabel@pengutronix.de> + +description: | + Mediatek mutex, namely MUTEX, is used to send the triggers signals called + Start Of Frame (SOF) / End Of Frame (EOF) to each sub-modules on the display + data path or MDP data path. + In some SoC, such as mt2701, MUTEX could be a hardware mutex which protects + the shadow register. + MUTEX device node must be siblings to the central MMSYS_CONFIG node. + For a description of the MMSYS_CONFIG binding, see + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml + for details. + +properties: + compatible: + oneOf: + - items: + - const: mediatek,mt2701-disp-mutex + - items: + - const: mediatek,mt2712-disp-mutex + - items: + - const: mediatek,mt8167-disp-mutex + - items: + - const: mediatek,mt8173-disp-mutex + - items: + - const: mediatek,mt8183-disp-mutex + - items: + - const: mediatek,mt8192-disp-mutex + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + power-domains: + description: A phandle and PM domain specifier as defined by bindings of + the power controller specified by phandle. See + Documentation/devicetree/bindings/power/power-domain.yaml for details. + + clocks: + items: + - description: MUTEX Clock + + mediatek,gce-events: + description: + The event id which is mapping to the specific hardware event signal + to gce. The event id is defined in the gce header + include/dt-bindings/gce/<chip>-gce.h of each chips. + $ref: /schemas/types.yaml#/definitions/phandle-array + +required: + - compatible + - reg + - interrupts + - power-domains + - clocks + +additionalProperties: false + +examples: + - | + + mutex: mutex@14020000 { + compatible = "mediatek,mt8173-disp-mutex"; + reg = <0 0x14020000 0 0x1000>; + interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_LOW>; + power-domains = <&spm MT8173_POWER_DOMAIN_MM>; + clocks = <&mmsys CLK_MM_MUTEX_32K>; + mediatek,gce-events = <CMDQ_EVENT_MUTEX0_STREAM_EOF>, + <CMDQ_EVENT_MUTEX1_STREAM_EOF>; + }; diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,od.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,od.yaml new file mode 100644 index 000000000000..7519db315217 --- /dev/null +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,od.yaml @@ -0,0 +1,53 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/mediatek/mediatek,od.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Mediatek display overdirve + +maintainers: + - Chun-Kuang Hu <chunkuang.hu@kernel.org> + - Philipp Zabel <p.zabel@pengutronix.de> + +description: | + Mediatek display overdrive, namely OD, increases the transition values + of pixels between consecutive frames to make LCD rotate faster. + OD device node must be siblings to the central MMSYS_CONFIG node. + For a description of the MMSYS_CONFIG binding, see + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml + for details. + +properties: + compatible: + oneOf: + - items: + - const: mediatek,mt2712-disp-od + - items: + - const: mediatek,mt8173-disp-od + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + clocks: + items: + - description: OD Clock + +required: + - compatible + - reg + - clocks + +additionalProperties: false + +examples: + - | + + od@14023000 { + compatible = "mediatek,mt8173-disp-od"; + reg = <0 0x14023000 0 0x1000>; + clocks = <&mmsys CLK_MM_DISP_OD>; + }; diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,ovl-2l.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,ovl-2l.yaml new file mode 100644 index 000000000000..611a2dbdefa4 --- /dev/null +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,ovl-2l.yaml @@ -0,0 +1,88 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/mediatek/mediatek,ovl-2l.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Mediatek display overlay 2 layer + +maintainers: + - Chun-Kuang Hu <chunkuang.hu@kernel.org> + - Philipp Zabel <p.zabel@pengutronix.de> + +description: | + Mediatek display overlay 2 layer, namely OVL-2L, provides 2 more layer + for OVL. + OVL-2L device node must be siblings to the central MMSYS_CONFIG node. + For a description of the MMSYS_CONFIG binding, see + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml + for details. + +properties: + compatible: + oneOf: + - items: + - const: mediatek,mt8183-disp-ovl-2l + - items: + - const: mediatek,mt8192-disp-ovl-2l + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + power-domains: + description: A phandle and PM domain specifier as defined by bindings of + the power controller specified by phandle. See + Documentation/devicetree/bindings/power/power-domain.yaml for details. + + clocks: + items: + - description: OVL-2L Clock + + iommus: + description: + This property should point to the respective IOMMU block with master port as argument, + see Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml for details. + + mediatek,larb: + description: + This property should contain a phandle pointing to the local arbiter devices defined in + Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml. + It must sort according to the local arbiter index, like larb0, larb1, larb2... + $ref: /schemas/types.yaml#/definitions/phandle-array + minItems: 1 + maxItems: 32 + + mediatek,gce-client-reg: + description: The register of client driver can be configured by gce with + 4 arguments defined in this property, such as phandle of gce, subsys id, + register offset and size. Each GCE subsys id is mapping to a client + defined in the header include/dt-bindings/gce/<chip>-gce.h. + $ref: /schemas/types.yaml#/definitions/phandle-array + maxItems: 1 + +required: + - compatible + - reg + - interrupts + - power-domains + - clocks + - iommus + +additionalProperties: false + +examples: + - | + + ovl_2l0: ovl@14009000 { + compatible = "mediatek,mt8183-disp-ovl-2l"; + reg = <0 0x14009000 0 0x1000>; + interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_LOW>; + power-domains = <&spm MT8183_POWER_DOMAIN_DISP>; + clocks = <&mmsys CLK_MM_DISP_OVL0_2L>; + iommus = <&iommu M4U_PORT_DISP_2L_OVL0_LARB0>; + mediatek,larb = <&larb0>; + mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x9000 0x1000>; + }; diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,ovl.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,ovl.yaml new file mode 100644 index 000000000000..8e4a62cb9c81 --- /dev/null +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,ovl.yaml @@ -0,0 +1,98 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/mediatek/mediatek,ovl.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Mediatek display overlay + +maintainers: + - Chun-Kuang Hu <chunkuang.hu@kernel.org> + - Philipp Zabel <p.zabel@pengutronix.de> + +description: | + Mediatek display overlay, namely OVL, can do alpha blending from + the memory. + OVL device node must be siblings to the central MMSYS_CONFIG node. + For a description of the MMSYS_CONFIG binding, see + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml + for details. + +properties: + compatible: + oneOf: + - items: + - const: mediatek,mt2701-disp-ovl + - items: + - const: mediatek,mt8173-disp-ovl + - items: + - const: mediatek,mt8183-disp-ovl + - items: + - const: mediatek,mt8192-disp-ovl + - items: + - enum: + - mediatek,mt7623-disp-ovl + - mediatek,mt2712-disp-ovl + - enum: + - mediatek,mt2701-disp-ovl + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + power-domains: + description: A phandle and PM domain specifier as defined by bindings of + the power controller specified by phandle. See + Documentation/devicetree/bindings/power/power-domain.yaml for details. + + clocks: + items: + - description: OVL Clock + + iommus: + description: + This property should point to the respective IOMMU block with master port as argument, + see Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml for details. + + mediatek,larb: + description: + This property should contain a phandle pointing to the local arbiter devices defined in + Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml. + It must sort according to the local arbiter index, like larb0, larb1, larb2... + $ref: /schemas/types.yaml#/definitions/phandle-array + minItems: 1 + maxItems: 32 + + mediatek,gce-client-reg: + description: The register of client driver can be configured by gce with + 4 arguments defined in this property, such as phandle of gce, subsys id, + register offset and size. Each GCE subsys id is mapping to a client + defined in the header include/dt-bindings/gce/<chip>-gce.h. + $ref: /schemas/types.yaml#/definitions/phandle-array + maxItems: 1 + +required: + - compatible + - reg + - interrupts + - power-domains + - clocks + - iommu + +additionalProperties: false + +examples: + - | + + ovl0: ovl@1400c000 { + compatible = "mediatek,mt8173-disp-ovl"; + reg = <0 0x1400c000 0 0x1000>; + interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_LOW>; + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; + clocks = <&mmsys CLK_MM_DISP_OVL0>; + iommus = <&iommu M4U_PORT_DISP_OVL0>; + mediatek,larb = <&larb0>; + mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xc000 0x1000>; + }; diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,postmask.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,postmask.yaml new file mode 100644 index 000000000000..6ac1da2e8871 --- /dev/null +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,postmask.yaml @@ -0,0 +1,69 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/mediatek/mediatek,postmask.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Mediatek display postmask + +maintainers: + - Chun-Kuang Hu <chunkuang.hu@kernel.org> + - Philipp Zabel <p.zabel@pengutronix.de> + +description: | + Mediatek display postmask, namely POSTMASK, provides round corner pattern + generation. + POSTMASK device node must be siblings to the central MMSYS_CONFIG node. + For a description of the MMSYS_CONFIG binding, see + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml + for details. + +properties: + compatible: + oneOf: + - items: + - const: mediatek,mt8192-disp-postmask + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + power-domains: + description: A phandle and PM domain specifier as defined by bindings of + the power controller specified by phandle. See + Documentation/devicetree/bindings/power/power-domain.yaml for details. + + clocks: + items: + - description: POSTMASK Clock + + mediatek,gce-client-reg: + description: The register of client driver can be configured by gce with + 4 arguments defined in this property, such as phandle of gce, subsys id, + register offset and size. Each GCE subsys id is mapping to a client + defined in the header include/dt-bindings/gce/<chip>-gce.h. + $ref: /schemas/types.yaml#/definitions/phandle-array + maxItems: 1 + +required: + - compatible + - reg + - interrupts + - power-domains + - clocks + +additionalProperties: false + +examples: + - | + + postmask0: postmask@1400d000 { + compatible = "mediatek,mt8192-disp-postmask"; + reg = <0 0x1400d000 0 0x1000>; + interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH 0>; + power-domains = <&scpsys MT8192_POWER_DOMAIN_DISP>; + clocks = <&mmsys CLK_MM_DISP_POSTMASK0>; + mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xd000 0x1000>; + }; diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,rdma.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,rdma.yaml new file mode 100644 index 000000000000..a3c5f4c9fbcd --- /dev/null +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,rdma.yaml @@ -0,0 +1,115 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/mediatek/mediatek,rdma.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Mediatek Read Direct Memory Access + +maintainers: + - Chun-Kuang Hu <chunkuang.hu@kernel.org> + - Philipp Zabel <p.zabel@pengutronix.de> + +description: | + Mediatek Read Direct Memory Access(RDMA) component used to read the + data into DMA. It provides real time data to the back-end panel + driver, such as DSI, DPI and DP_INTF. + It contains one line buffer to store the sufficient pixel data. + RDMA device node must be siblings to the central MMSYS_CONFIG node. + For a description of the MMSYS_CONFIG binding, see + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml + for details. + +properties: + compatible: + oneOf: + - items: + - const: mediatek,mt2701-disp-rdma + - items: + - const: mediatek,mt8173-disp-rdma + - items: + - const: mediatek,mt8183-disp-rdma + - items: + - enum: + - mediatek,mt7623-disp-rdma + - mediatek,mt2712-disp-rdma + - enum: + - mediatek,mt2701-disp-rdma + - items: + - enum: + - mediatek,mt8192-disp-rdma + - enum: + - mediatek,mt8183-disp-rdma + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + power-domains: + description: A phandle and PM domain specifier as defined by bindings of + the power controller specified by phandle. See + Documentation/devicetree/bindings/power/power-domain.yaml for details. + + clocks: + items: + - description: RDMA Clock + + iommus: + description: + This property should point to the respective IOMMU block with master port as argument, + see Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml for details. + + mediatek,larb: + description: + This property should contain a phandle pointing to the local arbiter devices defined in + Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml. + It must sort according to the local arbiter index, like larb0, larb1, larb2... + $ref: /schemas/types.yaml#/definitions/phandle-array + minItems: 1 + maxItems: 32 + + mediatek,rdma-fifo-size: + description: + rdma fifo size may be different even in same SOC, add this property to the + corresponding rdma. + The value below is the Max value which defined in hardware data sheet + mediatek,rdma-fifo-size of mt8173-rdma0 is 8K + mediatek,rdma-fifo-size of mt8183-rdma0 is 5K + mediatek,rdma-fifo-size of mt8183-rdma1 is 2K + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [8192, 5120, 2048] + + mediatek,gce-client-reg: + description: The register of client driver can be configured by gce with + 4 arguments defined in this property, such as phandle of gce, subsys id, + register offset and size. Each GCE subsys id is mapping to a client + defined in the header include/dt-bindings/gce/<chip>-gce.h. + $ref: /schemas/types.yaml#/definitions/phandle-array + maxItems: 1 + +required: + - compatible + - reg + - interrupts + - power-domains + - clocks + - iommus + +additionalProperties: false + +examples: + - | + + rdma0: rdma@1400e000 { + compatible = "mediatek,mt8173-disp-rdma"; + reg = <0 0x1400e000 0 0x1000>; + interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_LOW>; + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; + clocks = <&mmsys CLK_MM_DISP_RDMA0>; + iommus = <&iommu M4U_PORT_DISP_RDMA0>; + mediatek,larb = <&larb0>; + mediatek,rdma-fifosize = <8192>; + mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xe000 0x1000>; + }; diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,split.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,split.yaml new file mode 100644 index 000000000000..4f08e89c1067 --- /dev/null +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,split.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/mediatek/mediatek,split.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Mediatek display split + +maintainers: + - Chun-Kuang Hu <chunkuang.hu@kernel.org> + - Philipp Zabel <p.zabel@pengutronix.de> + +description: | + Mediatek display split, namely SPLIT, is used to split stream to two + encoders. + SPLIT device node must be siblings to the central MMSYS_CONFIG node. + For a description of the MMSYS_CONFIG binding, see + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml + for details. + +properties: + compatible: + oneOf: + - items: + - const: mediatek,mt8173-disp-split + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + power-domains: + description: A phandle and PM domain specifier as defined by bindings of + the power controller specified by phandle. See + Documentation/devicetree/bindings/power/power-domain.yaml for details. + + clocks: + items: + - description: SPLIT Clock + +required: + - compatible + - reg + - power-domains + - clocks + +additionalProperties: false + +examples: + - | + + split0: split@14018000 { + compatible = "mediatek,mt8173-disp-split"; + reg = <0 0x14018000 0 0x1000>; + power-domains = <&spm MT8173_POWER_DOMAIN_MM>; + clocks = <&mmsys CLK_MM_DISP_SPLIT0>; + }; diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,ufoe.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,ufoe.yaml new file mode 100644 index 000000000000..6e8748529e73 --- /dev/null +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,ufoe.yaml @@ -0,0 +1,61 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/mediatek/mediatek,ufoe.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Mediatek display UFOe + +maintainers: + - Chun-Kuang Hu <chunkuang.hu@kernel.org> + - Philipp Zabel <p.zabel@pengutronix.de> + +description: | + Mediatek display UFOe stands for Unified Frame Optimization engine. + UFOe can cut the data rate for DSI port which may lead to reduce power + consumption. + UFOe device node must be siblings to the central MMSYS_CONFIG node. + For a description of the MMSYS_CONFIG binding, see + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml + for details. + +properties: + compatible: + oneOf: + - items: + - const: mediatek,mt8173-disp-ufoe + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + power-domains: + description: A phandle and PM domain specifier as defined by bindings of + the power controller specified by phandle. See + Documentation/devicetree/bindings/power/power-domain.yaml for details. + + clocks: + items: + - description: UFOe Clock + +required: + - compatible + - reg + - interrupts + - power-domains + - clocks + +additionalProperties: false + +examples: + - | + + ufoe@1401a000 { + compatible = "mediatek,mt8173-disp-ufoe"; + reg = <0 0x1401a000 0 0x1000>; + interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_LOW>; + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; + clocks = <&mmsys CLK_MM_DISP_UFOE>; + }; diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,wdma.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,wdma.yaml new file mode 100644 index 000000000000..aaf5649b6413 --- /dev/null +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,wdma.yaml @@ -0,0 +1,86 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/mediatek/mediatek,wdma.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Mediatek Write Direct Memory Access + +maintainers: + - Chun-Kuang Hu <chunkuang.hu@kernel.org> + - Philipp Zabel <p.zabel@pengutronix.de> + +description: | + Mediatek Write Direct Memory Access(WDMA) component used to write + the data into DMA. + WDMA device node must be siblings to the central MMSYS_CONFIG node. + For a description of the MMSYS_CONFIG binding, see + Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml + for details. + +properties: + compatible: + oneOf: + - items: + - const: mediatek,mt8173-disp-wdma + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + power-domains: + description: A phandle and PM domain specifier as defined by bindings of + the power controller specified by phandle. See + Documentation/devicetree/bindings/power/power-domain.yaml for details. + + clocks: + items: + - description: WDMA Clock + + iommus: + description: + This property should point to the respective IOMMU block with master port as argument, + see Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml for details. + + mediatek,larb: + description: + This property should contain a phandle pointing to the local arbiter devices defined in + Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml. + It must sort according to the local arbiter index, like larb0, larb1, larb2... + $ref: /schemas/types.yaml#/definitions/phandle-array + minItems: 1 + maxItems: 32 + + mediatek,gce-client-reg: + description: The register of client driver can be configured by gce with + 4 arguments defined in this property, such as phandle of gce, subsys id, + register offset and size. Each GCE subsys id is mapping to a client + defined in the header include/dt-bindings/gce/<chip>-gce.h. + $ref: /schemas/types.yaml#/definitions/phandle-array + maxItems: 1 + +required: + - compatible + - reg + - interrupts + - power-domains + - clocks + - iommus + +additionalProperties: false + +examples: + - | + + wdma0: wdma@14011000 { + compatible = "mediatek,mt8173-disp-wdma"; + reg = <0 0x14011000 0 0x1000>; + interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_LOW>; + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; + clocks = <&mmsys CLK_MM_DISP_WDMA0>; + iommus = <&iommu M4U_PORT_DISP_WDMA0>; + mediatek,larb = <&larb0>; + mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x1000 0x1000>; + };