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