xref: /linux/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
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---
54334aec0SRob Herring$id: http://devicetree.org/schemas/display/amlogic,meson-dw-hdmi.yaml#
64334aec0SRob 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
74*c19f15b1SJerome Brunet  power-domains:
75*c19f15b1SJerome Brunet    maxItems: 1
76*c19f15b1SJerome Brunet    description: phandle to the associated power domain
77*c19f15b1SJerome Brunet
78376bf52dSNeil Armstrong  resets:
79376bf52dSNeil Armstrong    minItems: 3
80376bf52dSNeil Armstrong
81376bf52dSNeil Armstrong  reset-names:
82376bf52dSNeil Armstrong    items:
83376bf52dSNeil Armstrong      - const: hdmitx_apb
84376bf52dSNeil Armstrong      - const: hdmitx
85376bf52dSNeil Armstrong      - const: hdmitx_phy
86376bf52dSNeil Armstrong
87376bf52dSNeil Armstrong  hdmi-supply:
88376bf52dSNeil Armstrong    description: phandle to an external 5V regulator to power the HDMI logic
89376bf52dSNeil Armstrong
90376bf52dSNeil Armstrong  port@0:
91b6755423SRob Herring    $ref: /schemas/graph.yaml#/properties/port
92376bf52dSNeil Armstrong    description:
93376bf52dSNeil Armstrong      A port node pointing to the VENC Input port node.
94376bf52dSNeil Armstrong
95376bf52dSNeil Armstrong  port@1:
96b6755423SRob Herring    $ref: /schemas/graph.yaml#/properties/port
97376bf52dSNeil Armstrong    description:
98376bf52dSNeil Armstrong      A port node pointing to the TMDS Output port node.
99376bf52dSNeil Armstrong
100376bf52dSNeil Armstrong  "#address-cells":
101376bf52dSNeil Armstrong    const: 1
102376bf52dSNeil Armstrong
103376bf52dSNeil Armstrong  "#size-cells":
104376bf52dSNeil Armstrong    const: 0
105376bf52dSNeil Armstrong
106376bf52dSNeil Armstrong  "#sound-dai-cells":
107376bf52dSNeil Armstrong    const: 0
108376bf52dSNeil Armstrong
10922bf4047SAlexander Stein  sound-name-prefix: true
11022bf4047SAlexander Stein
111376bf52dSNeil Armstrongrequired:
112376bf52dSNeil Armstrong  - compatible
113376bf52dSNeil Armstrong  - reg
114376bf52dSNeil Armstrong  - interrupts
115376bf52dSNeil Armstrong  - clocks
116376bf52dSNeil Armstrong  - clock-names
117376bf52dSNeil Armstrong  - resets
118376bf52dSNeil Armstrong  - reset-names
119376bf52dSNeil Armstrong  - port@0
120376bf52dSNeil Armstrong  - port@1
121376bf52dSNeil Armstrong  - "#address-cells"
122376bf52dSNeil Armstrong  - "#size-cells"
123376bf52dSNeil Armstrong
124376bf52dSNeil ArmstrongadditionalProperties: false
125376bf52dSNeil Armstrong
126376bf52dSNeil Armstrongexamples:
127376bf52dSNeil Armstrong  - |
128376bf52dSNeil Armstrong    hdmi_tx: hdmi-tx@c883a000 {
129376bf52dSNeil Armstrong        compatible = "amlogic,meson-gxbb-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
130376bf52dSNeil Armstrong        reg = <0xc883a000 0x1c>;
131376bf52dSNeil Armstrong        interrupts = <57>;
132376bf52dSNeil Armstrong        resets = <&reset_apb>, <&reset_hdmitx>, <&reset_hdmitx_phy>;
133376bf52dSNeil Armstrong        reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
134376bf52dSNeil Armstrong        clocks = <&clk_isfr>, <&clk_iahb>, <&clk_venci>;
135376bf52dSNeil Armstrong        clock-names = "isfr", "iahb", "venci";
136*c19f15b1SJerome Brunet        power-domains = <&pd_vpu>;
137376bf52dSNeil Armstrong        #address-cells = <1>;
138376bf52dSNeil Armstrong        #size-cells = <0>;
139376bf52dSNeil Armstrong
140376bf52dSNeil Armstrong        /* VPU VENC Input */
141376bf52dSNeil Armstrong        hdmi_tx_venc_port: port@0 {
142376bf52dSNeil Armstrong            reg = <0>;
143376bf52dSNeil Armstrong
144376bf52dSNeil Armstrong            hdmi_tx_in: endpoint {
145376bf52dSNeil Armstrong                remote-endpoint = <&hdmi_tx_out>;
146376bf52dSNeil Armstrong            };
147376bf52dSNeil Armstrong        };
148376bf52dSNeil Armstrong
149376bf52dSNeil Armstrong        /* TMDS Output */
150376bf52dSNeil Armstrong        hdmi_tx_tmds_port: port@1 {
151376bf52dSNeil Armstrong             reg = <1>;
152376bf52dSNeil Armstrong
153376bf52dSNeil Armstrong             hdmi_tx_tmds_out: endpoint {
154376bf52dSNeil Armstrong                 remote-endpoint = <&hdmi_connector_in>;
155376bf52dSNeil Armstrong             };
156376bf52dSNeil Armstrong        };
157376bf52dSNeil Armstrong    };
158