xref: /linux/Documentation/devicetree/bindings/display/rockchip/rockchip,inno-hdmi.yaml (revision ab93e0dd72c37d378dd936f031ffb83ff2bd87ce)
1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/display/rockchip/rockchip,inno-hdmi.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Rockchip Innosilicon HDMI controller
8
9maintainers:
10  - Sandy Huang <hjc@rock-chips.com>
11  - Heiko Stuebner <heiko@sntech.de>
12
13properties:
14  compatible:
15    enum:
16      - rockchip,rk3036-inno-hdmi
17      - rockchip,rk3128-inno-hdmi
18
19  reg:
20    maxItems: 1
21
22  interrupts:
23    maxItems: 1
24
25  clocks:
26    items:
27      - description: The HDMI controller main clock
28      - description: The HDMI PHY reference clock
29
30  clock-names:
31    items:
32      - const: pclk
33      - const: ref
34
35  power-domains:
36    maxItems: 1
37
38  "#sound-dai-cells":
39    const: 0
40
41  ports:
42    $ref: /schemas/graph.yaml#/properties/ports
43
44    properties:
45      port@0:
46        $ref: /schemas/graph.yaml#/properties/port
47        description:
48          Port node with one endpoint connected to a vop node.
49
50      port@1:
51        $ref: /schemas/graph.yaml#/properties/port
52        description:
53          Port node with one endpoint connected to a hdmi-connector node.
54
55    required:
56      - port@0
57      - port@1
58
59  rockchip,grf:
60    $ref: /schemas/types.yaml#/definitions/phandle
61    description:
62      Phandle to GRF used for control the polarity of hsync/vsync of rk3036
63      HDMI.
64
65required:
66  - compatible
67  - reg
68  - interrupts
69  - clocks
70  - clock-names
71  - pinctrl-0
72  - pinctrl-names
73  - ports
74
75allOf:
76  - $ref: /schemas/sound/dai-common.yaml#
77  - if:
78      properties:
79        compatible:
80          contains:
81            const: rockchip,rk3036-inno-hdmi
82
83    then:
84      required:
85        - rockchip,grf
86      properties:
87        power-domains: false
88
89  - if:
90      properties:
91        compatible:
92          contains:
93            const: rockchip,rk3128-inno-hdmi
94
95    then:
96      required:
97        - power-domains
98
99additionalProperties: false
100
101examples:
102  - |
103    #include <dt-bindings/clock/rk3036-cru.h>
104    #include <dt-bindings/interrupt-controller/arm-gic.h>
105    #include <dt-bindings/pinctrl/rockchip.h>
106    hdmi: hdmi@20034000 {
107      compatible = "rockchip,rk3036-inno-hdmi";
108      reg = <0x20034000 0x4000>;
109      interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
110      clocks = <&cru PCLK_HDMI>, <&cru SCLK_LCDC>;
111      clock-names = "pclk", "ref";
112      pinctrl-names = "default";
113      pinctrl-0 = <&hdmi_ctl>;
114      rockchip,grf = <&grf>;
115      #sound-dai-cells = <0>;
116
117      ports {
118        #address-cells = <1>;
119        #size-cells = <0>;
120
121        hdmi_in: port@0 {
122          reg = <0>;
123          hdmi_in_vop: endpoint {
124            remote-endpoint = <&vop_out_hdmi>;
125          };
126        };
127
128        hdmi_out: port@1 {
129          reg = <1>;
130          hdmi_out_con: endpoint {
131            remote-endpoint = <&hdmi_con_in>;
132          };
133        };
134      };
135    };
136
137    pinctrl {
138      hdmi {
139        hdmi_ctl: hdmi-ctl {
140          rockchip,pins = <1 RK_PB0 1 &pcfg_pull_none>,
141                          <1 RK_PB1 1 &pcfg_pull_none>,
142                          <1 RK_PB2 1 &pcfg_pull_none>,
143                          <1 RK_PB3 1 &pcfg_pull_none>;
144        };
145      };
146    };
147