Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 # Copyright 2019 BayLibre, SAS
0003 %YAML 1.2
0004 ---
0005 $id: "http://devicetree.org/schemas/display/amlogic,meson-vpu.yaml#"
0006 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
0007 
0008 title: Amlogic Meson Display Controller
0009 
0010 maintainers:
0011   - Neil Armstrong <neil.armstrong@linaro.org>
0012 
0013 description: |
0014   The Amlogic Meson Display controller is composed of several components
0015   that are going to be documented below
0016 
0017   DMC|---------------VPU (Video Processing Unit)----------------|------HHI------|
0018      | vd1   _______     _____________    _________________     |               |
0019   D  |-------|      |----|            |   |                |    |   HDMI PLL    |
0020   D  | vd2   | VIU  |    | Video Post |   | Video Encoders |<---|-----VCLK      |
0021   R  |-------|      |----| Processing |   |                |    |               |
0022      | osd2  |      |    |            |---| Enci ----------|----|-----VDAC------|
0023   R  |-------| CSC  |----| Scalers    |   | Encp ----------|----|----HDMI-TX----|
0024   A  | osd1  |      |    | Blenders   |   | Encl ----------|----|---------------|
0025   M  |-------|______|----|____________|   |________________|    |               |
0026   ___|__________________________________________________________|_______________|
0027 
0028 
0029   VIU: Video Input Unit
0030   ---------------------
0031 
0032   The Video Input Unit is in charge of the pixel scanout from the DDR memory.
0033   It fetches the frames addresses, stride and parameters from the "Canvas" memory.
0034   This part is also in charge of the CSC (Colorspace Conversion).
0035   It can handle 2 OSD Planes and 2 Video Planes.
0036 
0037   VPP: Video Post Processing
0038   --------------------------
0039 
0040   The Video Post Processing is in charge of the scaling and blending of the
0041   various planes into a single pixel stream.
0042   There is a special "pre-blending" used by the video planes with a dedicated
0043   scaler and a "post-blending" to merge with the OSD Planes.
0044   The OSD planes also have a dedicated scaler for one of the OSD.
0045 
0046   VENC: Video Encoders
0047   --------------------
0048 
0049   The VENC is composed of the multiple pixel encoders
0050    - ENCI : Interlace Video encoder for CVBS and Interlace HDMI
0051    - ENCP : Progressive Video Encoder for HDMI
0052    - ENCL : LCD LVDS Encoder
0053   The VENC Unit gets a Pixel Clocks (VCLK) from a dedicated HDMI PLL and clock
0054   tree and provides the scanout clock to the VPP and VIU.
0055   The ENCI is connected to a single VDAC for Composite Output.
0056   The ENCI and ENCP are connected to an on-chip HDMI Transceiver.
0057 
0058 properties:
0059   compatible:
0060     oneOf:
0061       - items:
0062           - enum:
0063               - amlogic,meson-gxbb-vpu # GXBB (S905)
0064               - amlogic,meson-gxl-vpu # GXL (S905X, S905D)
0065               - amlogic,meson-gxm-vpu # GXM (S912)
0066           - const: amlogic,meson-gx-vpu
0067       - enum:
0068           - amlogic,meson-g12a-vpu # G12A (S905X2, S905Y2, S905D2)
0069 
0070   reg:
0071     maxItems: 2
0072 
0073   reg-names:
0074     items:
0075       - const: vpu
0076       - const: hhi
0077 
0078   interrupts:
0079     maxItems: 1
0080 
0081   amlogic,canvas:
0082     description: should point to a canvas provider node
0083     $ref: /schemas/types.yaml#/definitions/phandle
0084 
0085   power-domains:
0086     maxItems: 1
0087     description: phandle to the associated power domain
0088 
0089   port@0:
0090     $ref: /schemas/graph.yaml#/properties/port
0091     description:
0092       A port node pointing to the CVBS VDAC port node.
0093 
0094   port@1:
0095     $ref: /schemas/graph.yaml#/properties/port
0096     description:
0097       A port node pointing to the HDMI-TX port node.
0098 
0099   "#address-cells":
0100     const: 1
0101 
0102   "#size-cells":
0103     const: 0
0104 
0105 required:
0106   - compatible
0107   - reg
0108   - interrupts
0109   - port@0
0110   - port@1
0111   - "#address-cells"
0112   - "#size-cells"
0113   - amlogic,canvas
0114 
0115 additionalProperties: false
0116 
0117 examples:
0118   - |
0119     vpu: vpu@d0100000 {
0120         compatible = "amlogic,meson-gxbb-vpu", "amlogic,meson-gx-vpu";
0121         reg = <0xd0100000 0x100000>, <0xc883c000 0x1000>;
0122         reg-names = "vpu", "hhi";
0123         interrupts = <3>;
0124         #address-cells = <1>;
0125         #size-cells = <0>;
0126         amlogic,canvas = <&canvas>;
0127 
0128         /* CVBS VDAC output port */
0129         port@0 {
0130             reg = <0>;
0131 
0132             cvbs_vdac_out: endpoint {
0133                 remote-endpoint = <&tv_connector_in>;
0134             };
0135         };
0136 
0137         /* HDMI TX output port */
0138         port@1 {
0139             reg = <1>;
0140 
0141             hdmi_tx_out: endpoint {
0142                 remote-endpoint = <&hdmi_tx_in>;
0143             };
0144         };
0145     };