xref: /openbmc/linux/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1376bf52dSNeil Armstrong# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2376bf52dSNeil Armstrong# Copyright 2019 BayLibre, SAS
3376bf52dSNeil Armstrong%YAML 1.2
4376bf52dSNeil Armstrong---
5*4334aec0SRob Herring$id: http://devicetree.org/schemas/display/amlogic,meson-dw-hdmi.yaml#
6*4334aec0SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
7376bf52dSNeil Armstrong
8376bf52dSNeil Armstrongtitle: Amlogic specific extensions to the Synopsys Designware HDMI Controller
9376bf52dSNeil Armstrong
10376bf52dSNeil Armstrongmaintainers:
11c6a43fb3SNeil Armstrong  - Neil Armstrong <neil.armstrong@linaro.org>
12376bf52dSNeil Armstrong
1322bf4047SAlexander SteinallOf:
143fda8532SKrzysztof Kozlowski  - $ref: /schemas/sound/dai-common.yaml#
1522bf4047SAlexander Stein
16376bf52dSNeil Armstrongdescription: |
17376bf52dSNeil Armstrong  The Amlogic Meson Synopsys Designware Integration is composed of
18376bf52dSNeil Armstrong  - A Synopsys DesignWare HDMI Controller IP
19376bf52dSNeil Armstrong  - A TOP control block controlling the Clocks and PHY
20376bf52dSNeil Armstrong  - A custom HDMI PHY in order to convert video to TMDS signal
21376bf52dSNeil Armstrong   ___________________________________
22376bf52dSNeil Armstrong  |            HDMI TOP               |<= HPD
23376bf52dSNeil Armstrong  |___________________________________|
24376bf52dSNeil Armstrong  |                  |                |
25376bf52dSNeil Armstrong  |  Synopsys HDMI   |   HDMI PHY     |=> TMDS
26376bf52dSNeil Armstrong  |    Controller    |________________|
27376bf52dSNeil Armstrong  |___________________________________|<=> DDC
28376bf52dSNeil Armstrong
29376bf52dSNeil Armstrong  The HDMI TOP block only supports HPD sensing.
30376bf52dSNeil Armstrong  The Synopsys HDMI Controller interrupt is routed through the
31376bf52dSNeil Armstrong  TOP Block interrupt.
32376bf52dSNeil Armstrong  Communication to the TOP Block and the Synopsys HDMI Controller is done
33376bf52dSNeil Armstrong  via a pair of dedicated addr+read/write registers.
34376bf52dSNeil Armstrong  The HDMI PHY is configured by registers in the HHI register block.
35376bf52dSNeil Armstrong
36376bf52dSNeil Armstrong  Pixel data arrives in "4:4:4" format from the VENC block and the VPU HDMI mux
37376bf52dSNeil Armstrong  selects either the ENCI encoder for the 576i or 480i formats or the ENCP
38376bf52dSNeil Armstrong  encoder for all the other formats including interlaced HD formats.
39376bf52dSNeil Armstrong
40376bf52dSNeil Armstrong  The VENC uses a DVI encoder on top of the ENCI or ENCP encoders to generate
41376bf52dSNeil Armstrong  DVI timings for the HDMI controller.
42376bf52dSNeil Armstrong
43376bf52dSNeil Armstrong  Amlogic Meson GXBB, GXL and GXM SoCs families embeds the Synopsys DesignWare
44376bf52dSNeil Armstrong  HDMI TX IP version 2.01a with HDCP and I2C & S/PDIF
45376bf52dSNeil Armstrong  audio source interfaces.
46376bf52dSNeil Armstrong
47376bf52dSNeil Armstrongproperties:
48376bf52dSNeil Armstrong  compatible:
49376bf52dSNeil Armstrong    oneOf:
50376bf52dSNeil Armstrong      - items:
51376bf52dSNeil Armstrong          - enum:
52376bf52dSNeil Armstrong              - amlogic,meson-gxbb-dw-hdmi # GXBB (S905)
53376bf52dSNeil Armstrong              - amlogic,meson-gxl-dw-hdmi # GXL (S905X, S905D)
54376bf52dSNeil Armstrong              - amlogic,meson-gxm-dw-hdmi # GXM (S912)
55376bf52dSNeil Armstrong          - const: amlogic,meson-gx-dw-hdmi
56376bf52dSNeil Armstrong      - enum:
57376bf52dSNeil Armstrong          - amlogic,meson-g12a-dw-hdmi # G12A (S905X2, S905Y2, S905D2)
58376bf52dSNeil Armstrong
59376bf52dSNeil Armstrong  reg:
60376bf52dSNeil Armstrong    maxItems: 1
61376bf52dSNeil Armstrong
62376bf52dSNeil Armstrong  interrupts:
63376bf52dSNeil Armstrong    maxItems: 1
64376bf52dSNeil Armstrong
65376bf52dSNeil Armstrong  clocks:
66376bf52dSNeil Armstrong    minItems: 3
67376bf52dSNeil Armstrong
68376bf52dSNeil Armstrong  clock-names:
69376bf52dSNeil Armstrong    items:
70376bf52dSNeil Armstrong      - const: isfr
71376bf52dSNeil Armstrong      - const: iahb
72376bf52dSNeil Armstrong      - const: venci
73376bf52dSNeil Armstrong
74376bf52dSNeil Armstrong  resets:
75376bf52dSNeil Armstrong    minItems: 3
76376bf52dSNeil Armstrong
77376bf52dSNeil Armstrong  reset-names:
78376bf52dSNeil Armstrong    items:
79376bf52dSNeil Armstrong      - const: hdmitx_apb
80376bf52dSNeil Armstrong      - const: hdmitx
81376bf52dSNeil Armstrong      - const: hdmitx_phy
82376bf52dSNeil Armstrong
83376bf52dSNeil Armstrong  hdmi-supply:
84376bf52dSNeil Armstrong    description: phandle to an external 5V regulator to power the HDMI logic
85376bf52dSNeil Armstrong
86376bf52dSNeil Armstrong  port@0:
87b6755423SRob Herring    $ref: /schemas/graph.yaml#/properties/port
88376bf52dSNeil Armstrong    description:
89376bf52dSNeil Armstrong      A port node pointing to the VENC Input port node.
90376bf52dSNeil Armstrong
91376bf52dSNeil Armstrong  port@1:
92b6755423SRob Herring    $ref: /schemas/graph.yaml#/properties/port
93376bf52dSNeil Armstrong    description:
94376bf52dSNeil Armstrong      A port node pointing to the TMDS Output port node.
95376bf52dSNeil Armstrong
96376bf52dSNeil Armstrong  "#address-cells":
97376bf52dSNeil Armstrong    const: 1
98376bf52dSNeil Armstrong
99376bf52dSNeil Armstrong  "#size-cells":
100376bf52dSNeil Armstrong    const: 0
101376bf52dSNeil Armstrong
102376bf52dSNeil Armstrong  "#sound-dai-cells":
103376bf52dSNeil Armstrong    const: 0
104376bf52dSNeil Armstrong
10522bf4047SAlexander Stein  sound-name-prefix: true
10622bf4047SAlexander Stein
107376bf52dSNeil Armstrongrequired:
108376bf52dSNeil Armstrong  - compatible
109376bf52dSNeil Armstrong  - reg
110376bf52dSNeil Armstrong  - interrupts
111376bf52dSNeil Armstrong  - clocks
112376bf52dSNeil Armstrong  - clock-names
113376bf52dSNeil Armstrong  - resets
114376bf52dSNeil Armstrong  - reset-names
115376bf52dSNeil Armstrong  - port@0
116376bf52dSNeil Armstrong  - port@1
117376bf52dSNeil Armstrong  - "#address-cells"
118376bf52dSNeil Armstrong  - "#size-cells"
119376bf52dSNeil Armstrong
120376bf52dSNeil ArmstrongadditionalProperties: false
121376bf52dSNeil Armstrong
122376bf52dSNeil Armstrongexamples:
123376bf52dSNeil Armstrong  - |
124376bf52dSNeil Armstrong    hdmi_tx: hdmi-tx@c883a000 {
125376bf52dSNeil Armstrong        compatible = "amlogic,meson-gxbb-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
126376bf52dSNeil Armstrong        reg = <0xc883a000 0x1c>;
127376bf52dSNeil Armstrong        interrupts = <57>;
128376bf52dSNeil Armstrong        resets = <&reset_apb>, <&reset_hdmitx>, <&reset_hdmitx_phy>;
129376bf52dSNeil Armstrong        reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
130376bf52dSNeil Armstrong        clocks = <&clk_isfr>, <&clk_iahb>, <&clk_venci>;
131376bf52dSNeil Armstrong        clock-names = "isfr", "iahb", "venci";
132376bf52dSNeil Armstrong        #address-cells = <1>;
133376bf52dSNeil Armstrong        #size-cells = <0>;
134376bf52dSNeil Armstrong
135376bf52dSNeil Armstrong        /* VPU VENC Input */
136376bf52dSNeil Armstrong        hdmi_tx_venc_port: port@0 {
137376bf52dSNeil Armstrong            reg = <0>;
138376bf52dSNeil Armstrong
139376bf52dSNeil Armstrong            hdmi_tx_in: endpoint {
140376bf52dSNeil Armstrong                remote-endpoint = <&hdmi_tx_out>;
141376bf52dSNeil Armstrong            };
142376bf52dSNeil Armstrong        };
143376bf52dSNeil Armstrong
144376bf52dSNeil Armstrong        /* TMDS Output */
145376bf52dSNeil Armstrong        hdmi_tx_tmds_port: port@1 {
146376bf52dSNeil Armstrong             reg = <1>;
147376bf52dSNeil Armstrong
148376bf52dSNeil Armstrong             hdmi_tx_tmds_out: endpoint {
149376bf52dSNeil Armstrong                 remote-endpoint = <&hdmi_connector_in>;
150376bf52dSNeil Armstrong             };
151376bf52dSNeil Armstrong        };
152376bf52dSNeil Armstrong    };
153