1a5032991SKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only
2a5032991SKrzysztof Kozlowski%YAML 1.2
3a5032991SKrzysztof Kozlowski---
4a5032991SKrzysztof Kozlowski$id: http://devicetree.org/schemas/display/samsung/samsung,exynos-hdmi.yaml#
5a5032991SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6a5032991SKrzysztof Kozlowski
7a5032991SKrzysztof Kozlowskititle: Samsung Exynos SoC HDMI
8a5032991SKrzysztof Kozlowski
9a5032991SKrzysztof Kozlowskimaintainers:
10a5032991SKrzysztof Kozlowski  - Inki Dae <inki.dae@samsung.com>
11a5032991SKrzysztof Kozlowski  - Seung-Woo Kim <sw0312.kim@samsung.com>
12a5032991SKrzysztof Kozlowski  - Kyungmin Park <kyungmin.park@samsung.com>
13*8a1e6bb3SKrzysztof Kozlowski  - Krzysztof Kozlowski <krzk@kernel.org>
14a5032991SKrzysztof Kozlowski
15a5032991SKrzysztof Kozlowskiproperties:
16a5032991SKrzysztof Kozlowski  compatible:
17a5032991SKrzysztof Kozlowski    enum:
18a5032991SKrzysztof Kozlowski      - samsung,exynos4210-hdmi
19a5032991SKrzysztof Kozlowski      - samsung,exynos4212-hdmi
20a5032991SKrzysztof Kozlowski      - samsung,exynos5420-hdmi
21a5032991SKrzysztof Kozlowski      - samsung,exynos5433-hdmi
22a5032991SKrzysztof Kozlowski
23a5032991SKrzysztof Kozlowski  clocks:
24a5032991SKrzysztof Kozlowski    minItems: 5
25a5032991SKrzysztof Kozlowski    maxItems: 10
26a5032991SKrzysztof Kozlowski
27a5032991SKrzysztof Kozlowski  clock-names:
28a5032991SKrzysztof Kozlowski    minItems: 5
29a5032991SKrzysztof Kozlowski    maxItems: 10
30a5032991SKrzysztof Kozlowski
31a5032991SKrzysztof Kozlowski  ddc:
32a5032991SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/phandle
33a5032991SKrzysztof Kozlowski    description:
34a5032991SKrzysztof Kozlowski      Phandle to the HDMI DDC node.
35a5032991SKrzysztof Kozlowski
36a5032991SKrzysztof Kozlowski  hdmi-en-supply:
37a5032991SKrzysztof Kozlowski    description:
38a5032991SKrzysztof Kozlowski      Provides voltage source for DCC lines available on HDMI connector. When
39a5032991SKrzysztof Kozlowski      there is no power provided for DDC epprom, some TV-sets do not pulls up
40a5032991SKrzysztof Kozlowski      HPD (hot plug detect) line, what causes HDMI block to stay turned off.
41a5032991SKrzysztof Kozlowski      When provided, the regulator allows TV-set correctly signal HPD event.
42a5032991SKrzysztof Kozlowski
43a5032991SKrzysztof Kozlowski  hpd-gpios:
44a5032991SKrzysztof Kozlowski    maxItems: 1
45a5032991SKrzysztof Kozlowski    description:
46a5032991SKrzysztof Kozlowski      A GPIO line connected to HPD
47a5032991SKrzysztof Kozlowski
48a5032991SKrzysztof Kozlowski  interrupts:
49a5032991SKrzysztof Kozlowski    maxItems: 1
50a5032991SKrzysztof Kozlowski
51a5032991SKrzysztof Kozlowski  phy:
52a5032991SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/phandle
53a5032991SKrzysztof Kozlowski    description: Phandle to the HDMI PHY node.
54a5032991SKrzysztof Kozlowski
55a5032991SKrzysztof Kozlowski  ports:
56a5032991SKrzysztof Kozlowski    $ref: /schemas/graph.yaml#/properties/ports
57a5032991SKrzysztof Kozlowski    description:
58a5032991SKrzysztof Kozlowski      Contains a port which is connected to mic node.
59a5032991SKrzysztof Kozlowski
60a5032991SKrzysztof Kozlowski  power-domains:
61a5032991SKrzysztof Kozlowski    maxItems: 1
62a5032991SKrzysztof Kozlowski
63a5032991SKrzysztof Kozlowski  reg:
64a5032991SKrzysztof Kozlowski    maxItems: 1
65a5032991SKrzysztof Kozlowski
66a5032991SKrzysztof Kozlowski  samsung,syscon-phandle:
67a5032991SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/phandle
68a5032991SKrzysztof Kozlowski    description:
69a5032991SKrzysztof Kozlowski      Phandle to the PMU system controller node.
70a5032991SKrzysztof Kozlowski
71a5032991SKrzysztof Kozlowski  samsung,sysreg-phandle:
72a5032991SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/phandle
73a5032991SKrzysztof Kozlowski    description:
74a5032991SKrzysztof Kozlowski      Phandle to DISP system controller interface.
75a5032991SKrzysztof Kozlowski
76a5032991SKrzysztof Kozlowski  '#sound-dai-cells':
77a5032991SKrzysztof Kozlowski    const: 0
78a5032991SKrzysztof Kozlowski
79a5032991SKrzysztof Kozlowski  vdd-supply:
80a5032991SKrzysztof Kozlowski    description:
81a5032991SKrzysztof Kozlowski      VDD 1.0V HDMI TX.
82a5032991SKrzysztof Kozlowski
83a5032991SKrzysztof Kozlowski  vdd_osc-supply:
84a5032991SKrzysztof Kozlowski    description:
85a5032991SKrzysztof Kozlowski      VDD 1.8V HDMI OSC.
86a5032991SKrzysztof Kozlowski
87a5032991SKrzysztof Kozlowski  vdd_pll-supply:
88a5032991SKrzysztof Kozlowski    description:
89a5032991SKrzysztof Kozlowski      VDD 1.0V HDMI PLL.
90a5032991SKrzysztof Kozlowski
91a5032991SKrzysztof Kozlowskirequired:
92a5032991SKrzysztof Kozlowski  - compatible
93a5032991SKrzysztof Kozlowski  - clocks
94a5032991SKrzysztof Kozlowski  - clock-names
95a5032991SKrzysztof Kozlowski  - ddc
96a5032991SKrzysztof Kozlowski  - hpd-gpios
97a5032991SKrzysztof Kozlowski  - interrupts
98a5032991SKrzysztof Kozlowski  - phy
99a5032991SKrzysztof Kozlowski  - reg
100a5032991SKrzysztof Kozlowski  - samsung,syscon-phandle
101a5032991SKrzysztof Kozlowski  - '#sound-dai-cells'
102a5032991SKrzysztof Kozlowski  - vdd-supply
103a5032991SKrzysztof Kozlowski  - vdd_osc-supply
104a5032991SKrzysztof Kozlowski  - vdd_pll-supply
105a5032991SKrzysztof Kozlowski
106a5032991SKrzysztof KozlowskiallOf:
107a5032991SKrzysztof Kozlowski  - if:
108a5032991SKrzysztof Kozlowski      properties:
109a5032991SKrzysztof Kozlowski        compatible:
110a5032991SKrzysztof Kozlowski          contains:
111a5032991SKrzysztof Kozlowski            const: samsung,exynos5433-hdmi
112a5032991SKrzysztof Kozlowski    then:
113a5032991SKrzysztof Kozlowski      properties:
114a5032991SKrzysztof Kozlowski        clocks:
115a5032991SKrzysztof Kozlowski          items:
116a5032991SKrzysztof Kozlowski            - description: Gate of HDMI IP APB bus.
117a5032991SKrzysztof Kozlowski            - description: Gate of HDMI-PHY IP APB bus.
118a5032991SKrzysztof Kozlowski            - description: Gate of HDMI TMDS clock.
119a5032991SKrzysztof Kozlowski            - description: Gate of HDMI pixel clock.
120a5032991SKrzysztof Kozlowski            - description: TMDS clock generated by HDMI-PHY.
121a5032991SKrzysztof Kozlowski            - description: MUX used to switch between oscclk and tmds_clko,
122a5032991SKrzysztof Kozlowski                respectively if HDMI-PHY is off and operational.
123a5032991SKrzysztof Kozlowski            - description: Pixel clock generated by HDMI-PHY.
124a5032991SKrzysztof Kozlowski            - description: MUX used to switch between oscclk and pixel_clko,
125a5032991SKrzysztof Kozlowski                respectively if HDMI-PHY is off and operational.
126a5032991SKrzysztof Kozlowski            - description: Oscillator clock, used as parent of following *_user
127a5032991SKrzysztof Kozlowski                clocks in case HDMI-PHY is not operational.
128a5032991SKrzysztof Kozlowski            - description: Gate of HDMI SPDIF clock.
129a5032991SKrzysztof Kozlowski        clock-names:
130a5032991SKrzysztof Kozlowski          items:
131a5032991SKrzysztof Kozlowski            - const: hdmi_pclk
132a5032991SKrzysztof Kozlowski            - const: hdmi_i_pclk
133a5032991SKrzysztof Kozlowski            - const: i_tmds_clk
134a5032991SKrzysztof Kozlowski            - const: i_pixel_clk
135a5032991SKrzysztof Kozlowski            - const: tmds_clko
136a5032991SKrzysztof Kozlowski            - const: tmds_clko_user
137a5032991SKrzysztof Kozlowski            - const: pixel_clko
138a5032991SKrzysztof Kozlowski            - const: pixel_clko_user
139a5032991SKrzysztof Kozlowski            - const: oscclk
140a5032991SKrzysztof Kozlowski            - const: i_spdif_clk
141a5032991SKrzysztof Kozlowski      required:
142a5032991SKrzysztof Kozlowski        - samsung,sysreg-phandle
143a5032991SKrzysztof Kozlowski    else:
144a5032991SKrzysztof Kozlowski      properties:
145a5032991SKrzysztof Kozlowski        clocks:
146a5032991SKrzysztof Kozlowski          items:
147a5032991SKrzysztof Kozlowski            - description: Gate of HDMI IP bus clock.
148a5032991SKrzysztof Kozlowski            - description: Gate of HDMI special clock.
149a5032991SKrzysztof Kozlowski            - description: Pixel special clock, one of the two possible inputs
150a5032991SKrzysztof Kozlowski                of HDMI clock mux.
151a5032991SKrzysztof Kozlowski            - description: HDMI PHY clock output, one of two possible inputs of
152a5032991SKrzysztof Kozlowski                HDMI clock mux.
153a5032991SKrzysztof Kozlowski            - description: It is required by the driver to switch between the 2
154a5032991SKrzysztof Kozlowski                parents i.e. sclk_pixel and sclk_hdmiphy. If hdmiphy is stable
155a5032991SKrzysztof Kozlowski                after configuration, parent is set to sclk_hdmiphy else
156a5032991SKrzysztof Kozlowski                sclk_pixel.
157a5032991SKrzysztof Kozlowski        clock-names:
158a5032991SKrzysztof Kozlowski          items:
159a5032991SKrzysztof Kozlowski            - const: hdmi
160a5032991SKrzysztof Kozlowski            - const: sclk_hdmi
161a5032991SKrzysztof Kozlowski            - const: sclk_pixel
162a5032991SKrzysztof Kozlowski            - const: sclk_hdmiphy
163a5032991SKrzysztof Kozlowski            - const: mout_hdmi
164a5032991SKrzysztof Kozlowski
165a5032991SKrzysztof KozlowskiadditionalProperties: false
166a5032991SKrzysztof Kozlowski
167a5032991SKrzysztof Kozlowskiexamples:
168a5032991SKrzysztof Kozlowski  - |
169a5032991SKrzysztof Kozlowski    #include <dt-bindings/clock/exynos5433.h>
170a5032991SKrzysztof Kozlowski    #include <dt-bindings/gpio/gpio.h>
171a5032991SKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
172a5032991SKrzysztof Kozlowski
173a5032991SKrzysztof Kozlowski    hdmi@13970000 {
174a5032991SKrzysztof Kozlowski        compatible = "samsung,exynos5433-hdmi";
175a5032991SKrzysztof Kozlowski        reg = <0x13970000 0x70000>;
176a5032991SKrzysztof Kozlowski        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
177a5032991SKrzysztof Kozlowski        clocks = <&cmu_disp CLK_PCLK_HDMI>,
178a5032991SKrzysztof Kozlowski                 <&cmu_disp CLK_PCLK_HDMIPHY>,
179a5032991SKrzysztof Kozlowski                 <&cmu_disp CLK_PHYCLK_HDMIPHY_TMDS_CLKO>,
180a5032991SKrzysztof Kozlowski                 <&cmu_disp CLK_PHYCLK_HDMI_PIXEL>,
181a5032991SKrzysztof Kozlowski                 <&cmu_disp CLK_PHYCLK_HDMIPHY_TMDS_CLKO_PHY>,
182a5032991SKrzysztof Kozlowski                 <&cmu_disp CLK_MOUT_PHYCLK_HDMIPHY_TMDS_CLKO_USER>,
183a5032991SKrzysztof Kozlowski                 <&cmu_disp CLK_PHYCLK_HDMIPHY_PIXEL_CLKO_PHY>,
184a5032991SKrzysztof Kozlowski                 <&cmu_disp CLK_MOUT_PHYCLK_HDMIPHY_PIXEL_CLKO_USER>,
185a5032991SKrzysztof Kozlowski                 <&xxti>,
186a5032991SKrzysztof Kozlowski                 <&cmu_disp CLK_SCLK_HDMI_SPDIF>;
187a5032991SKrzysztof Kozlowski        clock-names = "hdmi_pclk",
188a5032991SKrzysztof Kozlowski                      "hdmi_i_pclk",
189a5032991SKrzysztof Kozlowski                      "i_tmds_clk",
190a5032991SKrzysztof Kozlowski                      "i_pixel_clk",
191a5032991SKrzysztof Kozlowski                      "tmds_clko",
192a5032991SKrzysztof Kozlowski                      "tmds_clko_user",
193a5032991SKrzysztof Kozlowski                      "pixel_clko",
194a5032991SKrzysztof Kozlowski                      "pixel_clko_user",
195a5032991SKrzysztof Kozlowski                      "oscclk",
196a5032991SKrzysztof Kozlowski                      "i_spdif_clk";
197a5032991SKrzysztof Kozlowski        phy = <&hdmiphy>;
198a5032991SKrzysztof Kozlowski        ddc = <&hsi2c_11>;
199a5032991SKrzysztof Kozlowski        samsung,syscon-phandle = <&pmu_system_controller>;
200a5032991SKrzysztof Kozlowski        samsung,sysreg-phandle = <&syscon_disp>;
201a5032991SKrzysztof Kozlowski        #sound-dai-cells = <0>;
202a5032991SKrzysztof Kozlowski
203a5032991SKrzysztof Kozlowski        hpd-gpios = <&gpa3 0 GPIO_ACTIVE_HIGH>;
204a5032991SKrzysztof Kozlowski        vdd-supply = <&ldo6_reg>;
205a5032991SKrzysztof Kozlowski        vdd_osc-supply = <&ldo7_reg>;
206a5032991SKrzysztof Kozlowski        vdd_pll-supply = <&ldo6_reg>;
207a5032991SKrzysztof Kozlowski
208a5032991SKrzysztof Kozlowski        ports {
209a5032991SKrzysztof Kozlowski            #address-cells = <1>;
210a5032991SKrzysztof Kozlowski            #size-cells = <0>;
211a5032991SKrzysztof Kozlowski
212a5032991SKrzysztof Kozlowski            port@0 {
213a5032991SKrzysztof Kozlowski                reg = <0>;
214a5032991SKrzysztof Kozlowski                hdmi_to_tv: endpoint {
215a5032991SKrzysztof Kozlowski                    remote-endpoint = <&tv_to_hdmi>;
216a5032991SKrzysztof Kozlowski                };
217a5032991SKrzysztof Kozlowski            };
218a5032991SKrzysztof Kozlowski
219a5032991SKrzysztof Kozlowski            port@1 {
220a5032991SKrzysztof Kozlowski                reg = <1>;
221a5032991SKrzysztof Kozlowski                hdmi_to_mhl: endpoint {
222a5032991SKrzysztof Kozlowski                    remote-endpoint = <&mhl_to_hdmi>;
223a5032991SKrzysztof Kozlowski                };
224a5032991SKrzysztof Kozlowski            };
225a5032991SKrzysztof Kozlowski        };
226a5032991SKrzysztof Kozlowski    };
227