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