xref: /freebsd/sys/contrib/device-tree/Bindings/display/allwinner,sun8i-a83t-dw-hdmi.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/display/allwinner,sun8i-a83t-dw-hdmi.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7*7ef62cebSEmmanuel Vadottitle: Allwinner A83t DWC HDMI TX Encoder
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotdescription: |
10c66ec88fSEmmanuel Vadot  The HDMI transmitter is a Synopsys DesignWare HDMI 1.4 TX controller
11c66ec88fSEmmanuel Vadot  IP with Allwinner\'s own PHY IP. It supports audio and video outputs
12c66ec88fSEmmanuel Vadot  and CEC.
13c66ec88fSEmmanuel Vadot
14c66ec88fSEmmanuel Vadot  These DT bindings follow the Synopsys DWC HDMI TX bindings defined
152eb4d8dcSEmmanuel Vadot  in bridge/synopsys,dw-hdmi.yaml with the following device-specific
162eb4d8dcSEmmanuel Vadot  properties.
17c66ec88fSEmmanuel Vadot
18c66ec88fSEmmanuel Vadotmaintainers:
19c66ec88fSEmmanuel Vadot  - Chen-Yu Tsai <wens@csie.org>
20c66ec88fSEmmanuel Vadot  - Maxime Ripard <mripard@kernel.org>
21c66ec88fSEmmanuel Vadot
22c66ec88fSEmmanuel Vadotproperties:
23c66ec88fSEmmanuel Vadot  "#phy-cells":
24c66ec88fSEmmanuel Vadot    const: 0
25c66ec88fSEmmanuel Vadot
26c66ec88fSEmmanuel Vadot  compatible:
27c66ec88fSEmmanuel Vadot    oneOf:
28c66ec88fSEmmanuel Vadot      - const: allwinner,sun8i-a83t-dw-hdmi
29c66ec88fSEmmanuel Vadot      - const: allwinner,sun50i-h6-dw-hdmi
30c66ec88fSEmmanuel Vadot
31c66ec88fSEmmanuel Vadot      - items:
32c66ec88fSEmmanuel Vadot          - enum:
33c66ec88fSEmmanuel Vadot              - allwinner,sun8i-h3-dw-hdmi
34c66ec88fSEmmanuel Vadot              - allwinner,sun8i-r40-dw-hdmi
35c66ec88fSEmmanuel Vadot              - allwinner,sun50i-a64-dw-hdmi
36c66ec88fSEmmanuel Vadot          - const: allwinner,sun8i-a83t-dw-hdmi
37c66ec88fSEmmanuel Vadot
38c66ec88fSEmmanuel Vadot  reg:
39c66ec88fSEmmanuel Vadot    maxItems: 1
40c66ec88fSEmmanuel Vadot
41c66ec88fSEmmanuel Vadot  reg-io-width:
42c66ec88fSEmmanuel Vadot    const: 1
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel Vadot  interrupts:
45c66ec88fSEmmanuel Vadot    maxItems: 1
46c66ec88fSEmmanuel Vadot
47c66ec88fSEmmanuel Vadot  clocks:
48c66ec88fSEmmanuel Vadot    minItems: 3
49c66ec88fSEmmanuel Vadot    items:
50c66ec88fSEmmanuel Vadot      - description: Bus Clock
51c66ec88fSEmmanuel Vadot      - description: Register Clock
52c66ec88fSEmmanuel Vadot      - description: TMDS Clock
53c66ec88fSEmmanuel Vadot      - description: HDMI CEC Clock
54c66ec88fSEmmanuel Vadot      - description: HDCP Clock
55c66ec88fSEmmanuel Vadot      - description: HDCP Bus Clock
56c66ec88fSEmmanuel Vadot
57c66ec88fSEmmanuel Vadot  clock-names:
58c66ec88fSEmmanuel Vadot    minItems: 3
59c66ec88fSEmmanuel Vadot    items:
60c66ec88fSEmmanuel Vadot      - const: iahb
61c66ec88fSEmmanuel Vadot      - const: isfr
62c66ec88fSEmmanuel Vadot      - const: tmds
63c66ec88fSEmmanuel Vadot      - const: cec
64c66ec88fSEmmanuel Vadot      - const: hdcp
65c66ec88fSEmmanuel Vadot      - const: hdcp-bus
66c66ec88fSEmmanuel Vadot
67c66ec88fSEmmanuel Vadot  resets:
68c66ec88fSEmmanuel Vadot    minItems: 1
69c66ec88fSEmmanuel Vadot    items:
70c66ec88fSEmmanuel Vadot      - description: HDMI Controller Reset
71c66ec88fSEmmanuel Vadot      - description: HDCP Reset
72c66ec88fSEmmanuel Vadot
73c66ec88fSEmmanuel Vadot  reset-names:
74c66ec88fSEmmanuel Vadot    minItems: 1
75c66ec88fSEmmanuel Vadot    items:
76c66ec88fSEmmanuel Vadot      - const: ctrl
77c66ec88fSEmmanuel Vadot      - const: hdcp
78c66ec88fSEmmanuel Vadot
79c66ec88fSEmmanuel Vadot  phys:
80c66ec88fSEmmanuel Vadot    maxItems: 1
81c66ec88fSEmmanuel Vadot    description:
82c66ec88fSEmmanuel Vadot      Phandle to the DWC HDMI PHY.
83c66ec88fSEmmanuel Vadot
84c66ec88fSEmmanuel Vadot  phy-names:
85c66ec88fSEmmanuel Vadot    const: phy
86c66ec88fSEmmanuel Vadot
87c66ec88fSEmmanuel Vadot  hvcc-supply:
88c66ec88fSEmmanuel Vadot    description:
89c66ec88fSEmmanuel Vadot      The VCC power supply of the controller
90c66ec88fSEmmanuel Vadot
91c66ec88fSEmmanuel Vadot  ports:
925def4c47SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
93c66ec88fSEmmanuel Vadot
94c66ec88fSEmmanuel Vadot    properties:
95c66ec88fSEmmanuel Vadot      port@0:
965def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
97c66ec88fSEmmanuel Vadot        description: |
98c66ec88fSEmmanuel Vadot          Input endpoints of the controller. Usually the associated
99c66ec88fSEmmanuel Vadot          TCON.
100c66ec88fSEmmanuel Vadot
101c66ec88fSEmmanuel Vadot      port@1:
1025def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
103c66ec88fSEmmanuel Vadot        description: |
104c66ec88fSEmmanuel Vadot          Output endpoints of the controller. Usually an HDMI
105c66ec88fSEmmanuel Vadot          connector.
106c66ec88fSEmmanuel Vadot
107c66ec88fSEmmanuel Vadot    required:
108c66ec88fSEmmanuel Vadot      - port@0
109c66ec88fSEmmanuel Vadot      - port@1
110c66ec88fSEmmanuel Vadot
111c66ec88fSEmmanuel Vadotrequired:
112c66ec88fSEmmanuel Vadot  - compatible
113c66ec88fSEmmanuel Vadot  - reg
114c66ec88fSEmmanuel Vadot  - reg-io-width
115c66ec88fSEmmanuel Vadot  - interrupts
116c66ec88fSEmmanuel Vadot  - clocks
117c66ec88fSEmmanuel Vadot  - clock-names
118c66ec88fSEmmanuel Vadot  - resets
119c66ec88fSEmmanuel Vadot  - reset-names
120c66ec88fSEmmanuel Vadot  - phys
121c66ec88fSEmmanuel Vadot  - phy-names
122c66ec88fSEmmanuel Vadot  - ports
123c66ec88fSEmmanuel Vadot
124c66ec88fSEmmanuel Vadotif:
125c66ec88fSEmmanuel Vadot  properties:
126c66ec88fSEmmanuel Vadot    compatible:
127c66ec88fSEmmanuel Vadot      contains:
128c66ec88fSEmmanuel Vadot        enum:
129c66ec88fSEmmanuel Vadot          - allwinner,sun50i-h6-dw-hdmi
130c66ec88fSEmmanuel Vadot
131c66ec88fSEmmanuel Vadotthen:
132c66ec88fSEmmanuel Vadot  properties:
133c66ec88fSEmmanuel Vadot    clocks:
134c66ec88fSEmmanuel Vadot      minItems: 6
135c66ec88fSEmmanuel Vadot
136c66ec88fSEmmanuel Vadot    clock-names:
137c66ec88fSEmmanuel Vadot      minItems: 6
138c66ec88fSEmmanuel Vadot
139c66ec88fSEmmanuel Vadot    resets:
140c66ec88fSEmmanuel Vadot      minItems: 2
141c66ec88fSEmmanuel Vadot
142c66ec88fSEmmanuel Vadot    reset-names:
143c66ec88fSEmmanuel Vadot      minItems: 2
144c66ec88fSEmmanuel Vadot
145c66ec88fSEmmanuel Vadot
146c66ec88fSEmmanuel VadotadditionalProperties: false
147c66ec88fSEmmanuel Vadot
148c66ec88fSEmmanuel Vadotexamples:
149c66ec88fSEmmanuel Vadot  - |
150c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
151c66ec88fSEmmanuel Vadot
152c66ec88fSEmmanuel Vadot    /*
153c66ec88fSEmmanuel Vadot     * This comes from the clock/sun8i-a83t-ccu.h and
154c66ec88fSEmmanuel Vadot     * reset/sun8i-a83t-ccu.h headers, but we can't include them since
155c66ec88fSEmmanuel Vadot     * it would trigger a bunch of warnings for redefinitions of
156c66ec88fSEmmanuel Vadot     * symbols with the other example.
157c66ec88fSEmmanuel Vadot     */
158c66ec88fSEmmanuel Vadot    #define CLK_BUS_HDMI	39
159c66ec88fSEmmanuel Vadot    #define CLK_HDMI		93
160c66ec88fSEmmanuel Vadot    #define CLK_HDMI_SLOW	94
161c66ec88fSEmmanuel Vadot    #define RST_BUS_HDMI1	26
162c66ec88fSEmmanuel Vadot
163c66ec88fSEmmanuel Vadot    hdmi@1ee0000 {
164c66ec88fSEmmanuel Vadot        compatible = "allwinner,sun8i-a83t-dw-hdmi";
165c66ec88fSEmmanuel Vadot        reg = <0x01ee0000 0x10000>;
166c66ec88fSEmmanuel Vadot        reg-io-width = <1>;
167c66ec88fSEmmanuel Vadot        interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
168c66ec88fSEmmanuel Vadot        clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>,
169c66ec88fSEmmanuel Vadot                 <&ccu CLK_HDMI>;
170c66ec88fSEmmanuel Vadot        clock-names = "iahb", "isfr", "tmds";
171c66ec88fSEmmanuel Vadot        resets = <&ccu RST_BUS_HDMI1>;
172c66ec88fSEmmanuel Vadot        reset-names = "ctrl";
173c66ec88fSEmmanuel Vadot        phys = <&hdmi_phy>;
174c66ec88fSEmmanuel Vadot        phy-names = "phy";
175c66ec88fSEmmanuel Vadot        pinctrl-names = "default";
176c66ec88fSEmmanuel Vadot        pinctrl-0 = <&hdmi_pins>;
177c66ec88fSEmmanuel Vadot
178c66ec88fSEmmanuel Vadot        ports {
179c66ec88fSEmmanuel Vadot            #address-cells = <1>;
180c66ec88fSEmmanuel Vadot            #size-cells = <0>;
181c66ec88fSEmmanuel Vadot
182c66ec88fSEmmanuel Vadot            port@0 {
183c66ec88fSEmmanuel Vadot                reg = <0>;
184c66ec88fSEmmanuel Vadot
185c66ec88fSEmmanuel Vadot                endpoint {
186c66ec88fSEmmanuel Vadot                    remote-endpoint = <&tcon1_out_hdmi>;
187c66ec88fSEmmanuel Vadot                };
188c66ec88fSEmmanuel Vadot            };
189c66ec88fSEmmanuel Vadot
190c66ec88fSEmmanuel Vadot            port@1 {
191c66ec88fSEmmanuel Vadot                reg = <1>;
192c66ec88fSEmmanuel Vadot            };
193c66ec88fSEmmanuel Vadot        };
194c66ec88fSEmmanuel Vadot    };
195c66ec88fSEmmanuel Vadot
196c66ec88fSEmmanuel Vadot    /* Cleanup after ourselves */
197c66ec88fSEmmanuel Vadot    #undef CLK_BUS_HDMI
198c66ec88fSEmmanuel Vadot    #undef CLK_HDMI
199c66ec88fSEmmanuel Vadot    #undef CLK_HDMI_SLOW
200c66ec88fSEmmanuel Vadot
201c66ec88fSEmmanuel Vadot  - |
202c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
203c66ec88fSEmmanuel Vadot
204c66ec88fSEmmanuel Vadot    /*
205c66ec88fSEmmanuel Vadot     * This comes from the clock/sun50i-h6-ccu.h and
206c66ec88fSEmmanuel Vadot     * reset/sun50i-h6-ccu.h headers, but we can't include them since
207c66ec88fSEmmanuel Vadot     * it would trigger a bunch of warnings for redefinitions of
208c66ec88fSEmmanuel Vadot     * symbols with the other example.
209c66ec88fSEmmanuel Vadot     */
210c66ec88fSEmmanuel Vadot    #define CLK_BUS_HDMI	126
211c66ec88fSEmmanuel Vadot    #define CLK_BUS_HDCP	137
212c66ec88fSEmmanuel Vadot    #define CLK_HDMI		123
213c66ec88fSEmmanuel Vadot    #define CLK_HDMI_SLOW	124
214c66ec88fSEmmanuel Vadot    #define CLK_HDMI_CEC	125
215c66ec88fSEmmanuel Vadot    #define CLK_HDCP		136
216c66ec88fSEmmanuel Vadot    #define RST_BUS_HDMI_SUB	57
217c66ec88fSEmmanuel Vadot    #define RST_BUS_HDCP	62
218c66ec88fSEmmanuel Vadot
219c66ec88fSEmmanuel Vadot    hdmi@6000000 {
220c66ec88fSEmmanuel Vadot        compatible = "allwinner,sun50i-h6-dw-hdmi";
221c66ec88fSEmmanuel Vadot        reg = <0x06000000 0x10000>;
222c66ec88fSEmmanuel Vadot        reg-io-width = <1>;
223c66ec88fSEmmanuel Vadot        interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
224c66ec88fSEmmanuel Vadot        clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>,
225c66ec88fSEmmanuel Vadot                 <&ccu CLK_HDMI>, <&ccu CLK_HDMI_CEC>,
226c66ec88fSEmmanuel Vadot                 <&ccu CLK_HDCP>, <&ccu CLK_BUS_HDCP>;
227c66ec88fSEmmanuel Vadot        clock-names = "iahb", "isfr", "tmds", "cec", "hdcp",
228c66ec88fSEmmanuel Vadot                      "hdcp-bus";
229c66ec88fSEmmanuel Vadot        resets = <&ccu RST_BUS_HDMI_SUB>, <&ccu RST_BUS_HDCP>;
230c66ec88fSEmmanuel Vadot        reset-names = "ctrl", "hdcp";
231c66ec88fSEmmanuel Vadot        phys = <&hdmi_phy>;
232c66ec88fSEmmanuel Vadot        phy-names = "phy";
233c66ec88fSEmmanuel Vadot        pinctrl-names = "default";
234c66ec88fSEmmanuel Vadot        pinctrl-0 = <&hdmi_pins>;
235c66ec88fSEmmanuel Vadot
236c66ec88fSEmmanuel Vadot        ports {
237c66ec88fSEmmanuel Vadot            #address-cells = <1>;
238c66ec88fSEmmanuel Vadot            #size-cells = <0>;
239c66ec88fSEmmanuel Vadot
240c66ec88fSEmmanuel Vadot            port@0 {
241c66ec88fSEmmanuel Vadot                reg = <0>;
242c66ec88fSEmmanuel Vadot
243c66ec88fSEmmanuel Vadot                endpoint {
244c66ec88fSEmmanuel Vadot                    remote-endpoint = <&tcon_top_hdmi_out_hdmi>;
245c66ec88fSEmmanuel Vadot                };
246c66ec88fSEmmanuel Vadot            };
247c66ec88fSEmmanuel Vadot
248c66ec88fSEmmanuel Vadot            port@1 {
249c66ec88fSEmmanuel Vadot                reg = <1>;
250c66ec88fSEmmanuel Vadot            };
251c66ec88fSEmmanuel Vadot        };
252c66ec88fSEmmanuel Vadot    };
253c66ec88fSEmmanuel Vadot
254c66ec88fSEmmanuel Vadot...
255