1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2c66ec88fSEmmanuel Vadot# Copyright 2019 BayLibre, SAS 3c66ec88fSEmmanuel Vadot%YAML 1.2 4c66ec88fSEmmanuel Vadot--- 5fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/display/amlogic,meson-vpu.yaml# 6fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 7c66ec88fSEmmanuel Vadot 8c66ec88fSEmmanuel Vadottitle: Amlogic Meson Display Controller 9c66ec88fSEmmanuel Vadot 10c66ec88fSEmmanuel Vadotmaintainers: 11b97ee269SEmmanuel Vadot - Neil Armstrong <neil.armstrong@linaro.org> 12c66ec88fSEmmanuel Vadot 13c66ec88fSEmmanuel Vadotdescription: | 14c66ec88fSEmmanuel Vadot The Amlogic Meson Display controller is composed of several components 15c66ec88fSEmmanuel Vadot that are going to be documented below 16c66ec88fSEmmanuel Vadot 17c66ec88fSEmmanuel Vadot DMC|---------------VPU (Video Processing Unit)----------------|------HHI------| 18c66ec88fSEmmanuel Vadot | vd1 _______ _____________ _________________ | | 19c66ec88fSEmmanuel Vadot D |-------| |----| | | | | HDMI PLL | 20c66ec88fSEmmanuel Vadot D | vd2 | VIU | | Video Post | | Video Encoders |<---|-----VCLK | 21c66ec88fSEmmanuel Vadot R |-------| |----| Processing | | | | | 22c66ec88fSEmmanuel Vadot | osd2 | | | |---| Enci ----------|----|-----VDAC------| 23c66ec88fSEmmanuel Vadot R |-------| CSC |----| Scalers | | Encp ----------|----|----HDMI-TX----| 24c66ec88fSEmmanuel Vadot A | osd1 | | | Blenders | | Encl ----------|----|---------------| 25c66ec88fSEmmanuel Vadot M |-------|______|----|____________| |________________| | | 26c66ec88fSEmmanuel Vadot ___|__________________________________________________________|_______________| 27c66ec88fSEmmanuel Vadot 28c66ec88fSEmmanuel Vadot 29c66ec88fSEmmanuel Vadot VIU: Video Input Unit 30c66ec88fSEmmanuel Vadot --------------------- 31c66ec88fSEmmanuel Vadot 32c66ec88fSEmmanuel Vadot The Video Input Unit is in charge of the pixel scanout from the DDR memory. 33c66ec88fSEmmanuel Vadot It fetches the frames addresses, stride and parameters from the "Canvas" memory. 34c66ec88fSEmmanuel Vadot This part is also in charge of the CSC (Colorspace Conversion). 35c66ec88fSEmmanuel Vadot It can handle 2 OSD Planes and 2 Video Planes. 36c66ec88fSEmmanuel Vadot 37c66ec88fSEmmanuel Vadot VPP: Video Post Processing 38c66ec88fSEmmanuel Vadot -------------------------- 39c66ec88fSEmmanuel Vadot 40c66ec88fSEmmanuel Vadot The Video Post Processing is in charge of the scaling and blending of the 41c66ec88fSEmmanuel Vadot various planes into a single pixel stream. 42c66ec88fSEmmanuel Vadot There is a special "pre-blending" used by the video planes with a dedicated 43c66ec88fSEmmanuel Vadot scaler and a "post-blending" to merge with the OSD Planes. 44c66ec88fSEmmanuel Vadot The OSD planes also have a dedicated scaler for one of the OSD. 45c66ec88fSEmmanuel Vadot 46c66ec88fSEmmanuel Vadot VENC: Video Encoders 47c66ec88fSEmmanuel Vadot -------------------- 48c66ec88fSEmmanuel Vadot 49c66ec88fSEmmanuel Vadot The VENC is composed of the multiple pixel encoders 50c66ec88fSEmmanuel Vadot - ENCI : Interlace Video encoder for CVBS and Interlace HDMI 51c66ec88fSEmmanuel Vadot - ENCP : Progressive Video Encoder for HDMI 52c66ec88fSEmmanuel Vadot - ENCL : LCD LVDS Encoder 53c66ec88fSEmmanuel Vadot The VENC Unit gets a Pixel Clocks (VCLK) from a dedicated HDMI PLL and clock 54c66ec88fSEmmanuel Vadot tree and provides the scanout clock to the VPP and VIU. 55c66ec88fSEmmanuel Vadot The ENCI is connected to a single VDAC for Composite Output. 56c66ec88fSEmmanuel Vadot The ENCI and ENCP are connected to an on-chip HDMI Transceiver. 57c66ec88fSEmmanuel Vadot 58c66ec88fSEmmanuel Vadotproperties: 59c66ec88fSEmmanuel Vadot compatible: 60c66ec88fSEmmanuel Vadot oneOf: 61c66ec88fSEmmanuel Vadot - items: 62c66ec88fSEmmanuel Vadot - enum: 63c66ec88fSEmmanuel Vadot - amlogic,meson-gxbb-vpu # GXBB (S905) 64c66ec88fSEmmanuel Vadot - amlogic,meson-gxl-vpu # GXL (S905X, S905D) 65c66ec88fSEmmanuel Vadot - amlogic,meson-gxm-vpu # GXM (S912) 66c66ec88fSEmmanuel Vadot - const: amlogic,meson-gx-vpu 67c66ec88fSEmmanuel Vadot - enum: 68c66ec88fSEmmanuel Vadot - amlogic,meson-g12a-vpu # G12A (S905X2, S905Y2, S905D2) 69c66ec88fSEmmanuel Vadot 70c66ec88fSEmmanuel Vadot reg: 71c66ec88fSEmmanuel Vadot maxItems: 2 72c66ec88fSEmmanuel Vadot 73c66ec88fSEmmanuel Vadot reg-names: 74c66ec88fSEmmanuel Vadot items: 75c66ec88fSEmmanuel Vadot - const: vpu 76c66ec88fSEmmanuel Vadot - const: hhi 77c66ec88fSEmmanuel Vadot 78c66ec88fSEmmanuel Vadot interrupts: 79c66ec88fSEmmanuel Vadot maxItems: 1 80c66ec88fSEmmanuel Vadot 81e67e8565SEmmanuel Vadot amlogic,canvas: 82e67e8565SEmmanuel Vadot description: should point to a canvas provider node 83e67e8565SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 84e67e8565SEmmanuel Vadot 85c66ec88fSEmmanuel Vadot power-domains: 86c66ec88fSEmmanuel Vadot maxItems: 1 87c66ec88fSEmmanuel Vadot description: phandle to the associated power domain 88c66ec88fSEmmanuel Vadot 89c66ec88fSEmmanuel Vadot port@0: 905def4c47SEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/port 91c66ec88fSEmmanuel Vadot description: 92c66ec88fSEmmanuel Vadot A port node pointing to the CVBS VDAC port node. 93c66ec88fSEmmanuel Vadot 94c66ec88fSEmmanuel Vadot port@1: 955def4c47SEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/port 96c66ec88fSEmmanuel Vadot description: 97c66ec88fSEmmanuel Vadot A port node pointing to the HDMI-TX port node. 98c66ec88fSEmmanuel Vadot 99*f126890aSEmmanuel Vadot port@2: 100*f126890aSEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/port 101*f126890aSEmmanuel Vadot description: 102*f126890aSEmmanuel Vadot A port node pointing to the DPI port node (e.g. DSI or LVDS transceiver). 103*f126890aSEmmanuel Vadot 104c66ec88fSEmmanuel Vadot "#address-cells": 105c66ec88fSEmmanuel Vadot const: 1 106c66ec88fSEmmanuel Vadot 107c66ec88fSEmmanuel Vadot "#size-cells": 108c66ec88fSEmmanuel Vadot const: 0 109c66ec88fSEmmanuel Vadot 110c66ec88fSEmmanuel Vadotrequired: 111c66ec88fSEmmanuel Vadot - compatible 112c66ec88fSEmmanuel Vadot - reg 113c66ec88fSEmmanuel Vadot - interrupts 114c66ec88fSEmmanuel Vadot - port@0 115c66ec88fSEmmanuel Vadot - port@1 116c66ec88fSEmmanuel Vadot - "#address-cells" 117c66ec88fSEmmanuel Vadot - "#size-cells" 118e67e8565SEmmanuel Vadot - amlogic,canvas 119c66ec88fSEmmanuel Vadot 120c66ec88fSEmmanuel VadotadditionalProperties: false 121c66ec88fSEmmanuel Vadot 122c66ec88fSEmmanuel Vadotexamples: 123c66ec88fSEmmanuel Vadot - | 124c66ec88fSEmmanuel Vadot vpu: vpu@d0100000 { 125c66ec88fSEmmanuel Vadot compatible = "amlogic,meson-gxbb-vpu", "amlogic,meson-gx-vpu"; 126c66ec88fSEmmanuel Vadot reg = <0xd0100000 0x100000>, <0xc883c000 0x1000>; 127c66ec88fSEmmanuel Vadot reg-names = "vpu", "hhi"; 128c66ec88fSEmmanuel Vadot interrupts = <3>; 129c66ec88fSEmmanuel Vadot #address-cells = <1>; 130c66ec88fSEmmanuel Vadot #size-cells = <0>; 131e67e8565SEmmanuel Vadot amlogic,canvas = <&canvas>; 132c66ec88fSEmmanuel Vadot 133c66ec88fSEmmanuel Vadot /* CVBS VDAC output port */ 134c66ec88fSEmmanuel Vadot port@0 { 135c66ec88fSEmmanuel Vadot reg = <0>; 136c66ec88fSEmmanuel Vadot 137c66ec88fSEmmanuel Vadot cvbs_vdac_out: endpoint { 138c66ec88fSEmmanuel Vadot remote-endpoint = <&tv_connector_in>; 139c66ec88fSEmmanuel Vadot }; 140c66ec88fSEmmanuel Vadot }; 141c66ec88fSEmmanuel Vadot 142c66ec88fSEmmanuel Vadot /* HDMI TX output port */ 143c66ec88fSEmmanuel Vadot port@1 { 144c66ec88fSEmmanuel Vadot reg = <1>; 145c66ec88fSEmmanuel Vadot 146c66ec88fSEmmanuel Vadot hdmi_tx_out: endpoint { 147c66ec88fSEmmanuel Vadot remote-endpoint = <&hdmi_tx_in>; 148c66ec88fSEmmanuel Vadot }; 149c66ec88fSEmmanuel Vadot }; 150c66ec88fSEmmanuel Vadot }; 151