xref: /src/sys/contrib/device-tree/Bindings/display/amlogic,meson-vpu.yaml (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
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