1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/display/rockchip/rockchip,dw-hdmi.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Rockchip DWC HDMI TX Encoder
8
9maintainers:
10  - Mark Yao <markyao0591@gmail.com>
11
12description: |
13  The HDMI transmitter is a Synopsys DesignWare HDMI 1.4 TX controller IP
14  with a companion PHY IP.
15
16allOf:
17  - $ref: ../bridge/synopsys,dw-hdmi.yaml#
18
19properties:
20  compatible:
21    enum:
22      - rockchip,rk3228-dw-hdmi
23      - rockchip,rk3288-dw-hdmi
24      - rockchip,rk3328-dw-hdmi
25      - rockchip,rk3399-dw-hdmi
26
27  reg-io-width:
28    const: 4
29
30  clocks:
31    minItems: 2
32    items:
33      - {}
34      - {}
35      # The next three clocks are all optional, but shall be specified in this
36      # order when present.
37      - description: The HDMI CEC controller main clock
38      - description: Power for GRF IO
39      - description: External clock for some HDMI PHY
40
41  clock-names:
42    minItems: 2
43    items:
44      - {}
45      - {}
46      - enum:
47          - cec
48          - grf
49          - vpll
50      - enum:
51          - grf
52          - vpll
53      - const: vpll
54
55  ddc-i2c-bus:
56    $ref: /schemas/types.yaml#/definitions/phandle
57    description:
58      The HDMI DDC bus can be connected to either a system I2C master or the
59      functionally-reduced I2C master contained in the DWC HDMI. When connected
60      to a system I2C master this property contains a phandle to that I2C
61      master controller.
62
63  phys:
64    maxItems: 1
65    description: The HDMI PHY
66
67  phy-names:
68    const: hdmi
69
70  pinctrl-names:
71    description:
72      The unwedge pinctrl entry shall drive the DDC SDA line low. This is
73      intended to work around a hardware errata that can cause the DDC I2C
74      bus to be wedged.
75    items:
76      - const: default
77      - const: unwedge
78
79  ports:
80    $ref: /schemas/graph.yaml#/properties/ports
81
82    properties:
83      port:
84        $ref: /schemas/graph.yaml#/$defs/port-base
85        unevaluatedProperties: false
86        description: Input of the DWC HDMI TX
87
88        properties:
89          endpoint@0:
90            $ref: /schemas/graph.yaml#/properties/endpoint
91            description: Connection to the VOPB
92
93          endpoint@1:
94            $ref: /schemas/graph.yaml#/properties/endpoint
95            description: Connection to the VOPL
96
97        required:
98          - endpoint@0
99          - endpoint@1
100
101    required:
102      - port
103
104  rockchip,grf:
105    $ref: /schemas/types.yaml#/definitions/phandle
106    description:
107      phandle to the GRF to mux vopl/vopb.
108
109required:
110  - compatible
111  - reg
112  - reg-io-width
113  - clocks
114  - clock-names
115  - interrupts
116  - ports
117  - rockchip,grf
118
119unevaluatedProperties: false
120
121examples:
122  - |
123    #include <dt-bindings/clock/rk3288-cru.h>
124    #include <dt-bindings/interrupt-controller/arm-gic.h>
125    #include <dt-bindings/interrupt-controller/irq.h>
126
127    hdmi: hdmi@ff980000 {
128        compatible = "rockchip,rk3288-dw-hdmi";
129        reg = <0xff980000 0x20000>;
130        reg-io-width = <4>;
131        ddc-i2c-bus = <&i2c5>;
132        rockchip,grf = <&grf>;
133        interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
134        clocks = <&cru  PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
135        clock-names = "iahb", "isfr";
136
137        ports {
138            port {
139                #address-cells = <1>;
140                #size-cells = <0>;
141
142                hdmi_in_vopb: endpoint@0 {
143                    reg = <0>;
144                    remote-endpoint = <&vopb_out_hdmi>;
145                };
146                hdmi_in_vopl: endpoint@1 {
147                    reg = <1>;
148                    remote-endpoint = <&vopl_out_hdmi>;
149                };
150            };
151        };
152    };
153
154...
155