xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/display/rockchip/dw_hdmi-rockchip.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunRockchip DWC HDMI TX Encoder
2*4882a593Smuzhiyun============================
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunThe HDMI transmitter is a Synopsys DesignWare HDMI 1.4 TX controller IP
5*4882a593Smuzhiyunwith a companion PHY IP.
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunThese DT bindings follow the Synopsys DWC HDMI TX bindings defined in
8*4882a593SmuzhiyunDocumentation/devicetree/bindings/display/bridge/dw_hdmi.txt with the
9*4882a593Smuzhiyunfollowing device-specific properties.
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunRequired properties:
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun- compatible: should be one of the following:
15*4882a593Smuzhiyun		"rockchip,rk3228-dw-hdmi"
16*4882a593Smuzhiyun		"rockchip,rk3288-dw-hdmi"
17*4882a593Smuzhiyun		"rockchip,rk3328-dw-hdmi"
18*4882a593Smuzhiyun		"rockchip,rk3368-dw-hdmi"
19*4882a593Smuzhiyun		"rockchip,rk3399-dw-hdmi"
20*4882a593Smuzhiyun- reg: See dw_hdmi.txt.
21*4882a593Smuzhiyun- reg-io-width: See dw_hdmi.txt. Shall be 4.
22*4882a593Smuzhiyun- interrupts: HDMI interrupt number
23*4882a593Smuzhiyun- clocks: See dw_hdmi.txt.
24*4882a593Smuzhiyun- clock-names: Shall contain "iahb" and "isfr" as defined in dw_hdmi.txt.
25*4882a593Smuzhiyun- ports: See dw_hdmi.txt. The DWC HDMI shall have a single port numbered 0
26*4882a593Smuzhiyun  corresponding to the video input of the controller. The port shall have two
27*4882a593Smuzhiyun  endpoints, numbered 0 and 1, connected respectively to the vopb and vopl.
28*4882a593Smuzhiyun- rockchip,grf: Shall reference the GRF to mux vopl/vopb.
29*4882a593Smuzhiyun- rockchip,phy-table: the parameter table of hdmi phy configuration.
30*4882a593Smuzhiyun
31*4882a593SmuzhiyunOptional properties
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun- ddc-i2c-bus: The HDMI DDC bus can be connected to either a system I2C master
34*4882a593Smuzhiyun  or the functionally-reduced I2C master contained in the DWC HDMI. When
35*4882a593Smuzhiyun  connected to a system I2C master this property contains a phandle to that
36*4882a593Smuzhiyun  I2C master controller.
37*4882a593Smuzhiyun- clock-names: See dw_hdmi.txt. The "cec" clock is optional.
38*4882a593Smuzhiyun- clock-names: May contain "cec" as defined in dw_hdmi.txt.
39*4882a593Smuzhiyun- clock-names: May contain "grf", power for grf io.
40*4882a593Smuzhiyun- clock-names: May contain "vpll", external clock for some hdmi phy.
41*4882a593Smuzhiyun- phys: from general PHY binding: the phandle for the PHY device.
42*4882a593Smuzhiyun- phy-names: Should be "hdmi" if phys references an external phy.
43*4882a593Smuzhiyun- skip-check-420-mode: If need skip check yuv420 mode valid, set this property.
44*4882a593Smuzhiyun- hdcp1x-enable: enable hdcp1.x, enable if defined, disable if not defined
45*4882a593Smuzhiyun- scramble-low-rates: if defined enable scarmble when tmdsclk less than 340Mhz
46*4882a593Smuzhiyun
47*4882a593SmuzhiyunOptional pinctrl entry:
48*4882a593Smuzhiyun- If you have both a "unwedge" and "default" pinctrl entry, dw_hdmi
49*4882a593Smuzhiyun  will switch to the unwedge pinctrl state for 10ms if it ever gets an
50*4882a593Smuzhiyun  i2c timeout.  It's intended that this unwedge pinctrl entry will
51*4882a593Smuzhiyun  cause the SDA line to be driven low to work around a hardware
52*4882a593Smuzhiyun  errata.
53*4882a593Smuzhiyun
54*4882a593SmuzhiyunExample:
55*4882a593Smuzhiyun
56*4882a593Smuzhiyunhdmi: hdmi@ff980000 {
57*4882a593Smuzhiyun	compatible = "rockchip,rk3288-dw-hdmi";
58*4882a593Smuzhiyun	reg = <0xff980000 0x20000>;
59*4882a593Smuzhiyun	reg-io-width = <4>;
60*4882a593Smuzhiyun	ddc-i2c-bus = <&i2c5>;
61*4882a593Smuzhiyun	rockchip,grf = <&grf>;
62*4882a593Smuzhiyun	interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
63*4882a593Smuzhiyun	clocks = <&cru  PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
64*4882a593Smuzhiyun	clock-names = "iahb", "isfr";
65*4882a593Smuzhiyun	ports {
66*4882a593Smuzhiyun		hdmi_in: port {
67*4882a593Smuzhiyun			#address-cells = <1>;
68*4882a593Smuzhiyun			#size-cells = <0>;
69*4882a593Smuzhiyun			hdmi_in_vopb: endpoint@0 {
70*4882a593Smuzhiyun				reg = <0>;
71*4882a593Smuzhiyun				remote-endpoint = <&vopb_out_hdmi>;
72*4882a593Smuzhiyun			};
73*4882a593Smuzhiyun			hdmi_in_vopl: endpoint@1 {
74*4882a593Smuzhiyun				reg = <1>;
75*4882a593Smuzhiyun				remote-endpoint = <&vopl_out_hdmi>;
76*4882a593Smuzhiyun			};
77*4882a593Smuzhiyun		};
78*4882a593Smuzhiyun	};
79*4882a593Smuzhiyun	rockchip,phy-table = <74250000 0x8009 0x0004 0x0272>,
80*4882a593Smuzhiyun		<165000000 0x802b 0x0004 0x0209>,
81*4882a593Smuzhiyun		<297000000 0x8039 0x0005 0x028d>,
82*4882a593Smuzhiyun		<594000000 0x8039 0x0000 0x019d>,
83*4882a593Smuzhiyun		<000000000 0x0000 0x0000 0x0000>;
84*4882a593Smuzhiyun};
85