xref: /linux/Documentation/devicetree/bindings/display/rockchip/rockchip,inno-hdmi.yaml (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
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    minItems: 1
27    items:
28      - description: The HDMI controller main clock
29      - description: The HDMI PHY reference clock
30
31  clock-names:
32    minItems: 1
33    items:
34      - const: pclk
35      - const: ref
36
37  power-domains:
38    maxItems: 1
39
40  "#sound-dai-cells":
41    const: 0
42
43  ports:
44    $ref: /schemas/graph.yaml#/properties/ports
45
46    properties:
47      port@0:
48        $ref: /schemas/graph.yaml#/properties/port
49        description:
50          Port node with one endpoint connected to a vop node.
51
52      port@1:
53        $ref: /schemas/graph.yaml#/properties/port
54        description:
55          Port node with one endpoint connected to a hdmi-connector node.
56
57    required:
58      - port@0
59      - port@1
60
61required:
62  - compatible
63  - reg
64  - interrupts
65  - clocks
66  - clock-names
67  - pinctrl-0
68  - pinctrl-names
69  - ports
70
71allOf:
72  - $ref: /schemas/sound/dai-common.yaml#
73  - if:
74      properties:
75        compatible:
76          contains:
77            const: rockchip,rk3036-inno-hdmi
78
79    then:
80      properties:
81        power-domains: false
82
83  - if:
84      properties:
85        compatible:
86          contains:
87            const: rockchip,rk3128-inno-hdmi
88
89    then:
90      properties:
91        clocks:
92          minItems: 2
93        clock-names:
94          minItems: 2
95      required:
96        - power-domains
97
98additionalProperties: false
99
100examples:
101  - |
102    #include <dt-bindings/clock/rk3036-cru.h>
103    #include <dt-bindings/interrupt-controller/arm-gic.h>
104    #include <dt-bindings/pinctrl/rockchip.h>
105    hdmi: hdmi@20034000 {
106      compatible = "rockchip,rk3036-inno-hdmi";
107      reg = <0x20034000 0x4000>;
108      interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
109      clocks = <&cru  PCLK_HDMI>;
110      clock-names = "pclk";
111      pinctrl-names = "default";
112      pinctrl-0 = <&hdmi_ctl>;
113      #sound-dai-cells = <0>;
114
115      ports {
116        #address-cells = <1>;
117        #size-cells = <0>;
118
119        hdmi_in: port@0 {
120          reg = <0>;
121          hdmi_in_vop: endpoint {
122            remote-endpoint = <&vop_out_hdmi>;
123          };
124        };
125
126        hdmi_out: port@1 {
127          reg = <1>;
128          hdmi_out_con: endpoint {
129            remote-endpoint = <&hdmi_con_in>;
130          };
131        };
132      };
133    };
134
135    pinctrl {
136      hdmi {
137        hdmi_ctl: hdmi-ctl {
138          rockchip,pins = <1 RK_PB0 1 &pcfg_pull_none>,
139                          <1 RK_PB1 1 &pcfg_pull_none>,
140                          <1 RK_PB2 1 &pcfg_pull_none>,
141                          <1 RK_PB3 1 &pcfg_pull_none>;
142        };
143      };
144    };
145