|
@@ -0,0 +1,203 @@
|
|
|
+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.txt.
|
|
|
+
|
|
|
+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.txt.
|
|
|
+
|
|
|
+Required properties (all function blocks):
|
|
|
+- compatible: "mediatek,<chip>-disp-<function>", one of
|
|
|
+ "mediatek,<chip>-disp-ovl" - overlay (4 layers, blending, csc)
|
|
|
+ "mediatek,<chip>-disp-rdma" - read DMA / line buffer
|
|
|
+ "mediatek,<chip>-disp-wdma" - write DMA
|
|
|
+ "mediatek,<chip>-disp-color" - color processor
|
|
|
+ "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-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
|
|
|
+- 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.
|
|
|
+
|
|
|
+Required properties (DMA function blocks):
|
|
|
+- compatible: Should be one of
|
|
|
+ "mediatek,<chip>-disp-ovl"
|
|
|
+ "mediatek,<chip>-disp-rdma"
|
|
|
+ "mediatek,<chip>-disp-wdma"
|
|
|
+- larb: Should contain a phandle pointing to the local arbiter device as defined
|
|
|
+ in Documentation/devicetree/bindings/soc/mediatek/mediatek,smi-larb.txt
|
|
|
+- iommus: Should point to the respective IOMMU block with master port as
|
|
|
+ argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
|
|
+ for details.
|
|
|
+
|
|
|
+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>;
|
|
|
+};
|
|
|
+
|
|
|
+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>;
|
|
|
+};
|