diff options
author | Philipp Zabel <p.zabel@pengutronix.de> | 2016-01-04 12:36:37 -0500 |
---|---|---|
committer | Philipp Zabel <p.zabel@pengutronix.de> | 2016-06-13 05:08:27 -0400 |
commit | 7cdeb24db4d12d42c237f28afade69c09e8a85e2 (patch) | |
tree | 407dfb4c1080380cd661904b757186812dbad70e | |
parent | af8c34ce6ae32addda3788d54a7e340cad22516b (diff) |
dt-bindings: drm/mediatek: Add Mediatek HDMI dts binding
Add the device tree binding documentation for Mediatek HDMI,
HDMI PHY and HDMI DDC devices.
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Acked-by: Rob Herring <robh@kernel.org>
-rw-r--r-- | Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.txt | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.txt b/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.txt new file mode 100644 index 000000000000..7b124242b0c5 --- /dev/null +++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.txt | |||
@@ -0,0 +1,148 @@ | |||
1 | Mediatek HDMI Encoder | ||
2 | ===================== | ||
3 | |||
4 | The Mediatek HDMI encoder can generate HDMI 1.4a or MHL 2.0 signals from | ||
5 | its parallel input. | ||
6 | |||
7 | Required properties: | ||
8 | - compatible: Should be "mediatek,<chip>-hdmi". | ||
9 | - reg: Physical base address and length of the controller's registers | ||
10 | - interrupts: The interrupt signal from the function block. | ||
11 | - clocks: device clocks | ||
12 | See Documentation/devicetree/bindings/clock/clock-bindings.txt for details. | ||
13 | - clock-names: must contain "pixel", "pll", "bclk", and "spdif". | ||
14 | - phys: phandle link to the HDMI PHY node. | ||
15 | See Documentation/devicetree/bindings/phy/phy-bindings.txt for details. | ||
16 | - phy-names: must contain "hdmi" | ||
17 | - mediatek,syscon-hdmi: phandle link and register offset to the system | ||
18 | configuration registers. For mt8173 this must be offset 0x900 into the | ||
19 | MMSYS_CONFIG region: <&mmsys 0x900>. | ||
20 | - ports: A node containing input and output port nodes with endpoint | ||
21 | definitions as documented in Documentation/devicetree/bindings/graph.txt. | ||
22 | - port@0: The input port in the ports node should be connected to a DPI output | ||
23 | port. | ||
24 | - port@1: The output port in the ports node should be connected to the input | ||
25 | port of a connector node that contains a ddc-i2c-bus property, or to the | ||
26 | input port of an attached bridge chip, such as a SlimPort transmitter. | ||
27 | |||
28 | HDMI CEC | ||
29 | ======== | ||
30 | |||
31 | The HDMI CEC controller handles hotplug detection and CEC communication. | ||
32 | |||
33 | Required properties: | ||
34 | - compatible: Should be "mediatek,<chip>-cec" | ||
35 | - reg: Physical base address and length of the controller's registers | ||
36 | - interrupts: The interrupt signal from the function block. | ||
37 | - clocks: device clock | ||
38 | |||
39 | HDMI DDC | ||
40 | ======== | ||
41 | |||
42 | The HDMI DDC i2c controller is used to interface with the HDMI DDC pins. | ||
43 | The Mediatek's I2C controller is used to interface with I2C devices. | ||
44 | |||
45 | Required properties: | ||
46 | - compatible: Should be "mediatek,<chip>-hdmi-ddc" | ||
47 | - reg: Physical base address and length of the controller's registers | ||
48 | - clocks: device clock | ||
49 | - clock-names: Should be "ddc-i2c". | ||
50 | |||
51 | HDMI PHY | ||
52 | ======== | ||
53 | |||
54 | The HDMI PHY serializes the HDMI encoder's three channel 10-bit parallel | ||
55 | output and drives the HDMI pads. | ||
56 | |||
57 | Required properties: | ||
58 | - compatible: "mediatek,<chip>-hdmi-phy" | ||
59 | - reg: Physical base address and length of the module's registers | ||
60 | - clocks: PLL reference clock | ||
61 | - clock-names: must contain "pll_ref" | ||
62 | - clock-output-names: must be "hdmitx_dig_cts" on mt8173 | ||
63 | - #phy-cells: must be <0> | ||
64 | - #clock-cells: must be <0> | ||
65 | |||
66 | Optional properties: | ||
67 | - mediatek,ibias: TX DRV bias current for <1.65Gbps, defaults to 0xa | ||
68 | - mediatek,ibias_up: TX DRV bias current for >1.65Gbps, defaults to 0x1c | ||
69 | |||
70 | Example: | ||
71 | |||
72 | cec: cec@10013000 { | ||
73 | compatible = "mediatek,mt8173-cec"; | ||
74 | reg = <0 0x10013000 0 0xbc>; | ||
75 | interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_LOW>; | ||
76 | clocks = <&infracfg CLK_INFRA_CEC>; | ||
77 | }; | ||
78 | |||
79 | hdmi_phy: hdmi-phy@10209100 { | ||
80 | compatible = "mediatek,mt8173-hdmi-phy"; | ||
81 | reg = <0 0x10209100 0 0x24>; | ||
82 | clocks = <&apmixedsys CLK_APMIXED_HDMI_REF>; | ||
83 | clock-names = "pll_ref"; | ||
84 | clock-output-names = "hdmitx_dig_cts"; | ||
85 | mediatek,ibias = <0xa>; | ||
86 | mediatek,ibias_up = <0x1c>; | ||
87 | #clock-cells = <0>; | ||
88 | #phy-cells = <0>; | ||
89 | }; | ||
90 | |||
91 | hdmi_ddc0: i2c@11012000 { | ||
92 | compatible = "mediatek,mt8173-hdmi-ddc"; | ||
93 | reg = <0 0x11012000 0 0x1c>; | ||
94 | interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_LOW>; | ||
95 | clocks = <&pericfg CLK_PERI_I2C5>; | ||
96 | clock-names = "ddc-i2c"; | ||
97 | }; | ||
98 | |||
99 | hdmi0: hdmi@14025000 { | ||
100 | compatible = "mediatek,mt8173-hdmi"; | ||
101 | reg = <0 0x14025000 0 0x400>; | ||
102 | interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_LOW>; | ||
103 | clocks = <&mmsys CLK_MM_HDMI_PIXEL>, | ||
104 | <&mmsys CLK_MM_HDMI_PLLCK>, | ||
105 | <&mmsys CLK_MM_HDMI_AUDIO>, | ||
106 | <&mmsys CLK_MM_HDMI_SPDIF>; | ||
107 | clock-names = "pixel", "pll", "bclk", "spdif"; | ||
108 | pinctrl-names = "default"; | ||
109 | pinctrl-0 = <&hdmi_pin>; | ||
110 | phys = <&hdmi_phy>; | ||
111 | phy-names = "hdmi"; | ||
112 | mediatek,syscon-hdmi = <&mmsys 0x900>; | ||
113 | assigned-clocks = <&topckgen CLK_TOP_HDMI_SEL>; | ||
114 | assigned-clock-parents = <&hdmi_phy>; | ||
115 | |||
116 | ports { | ||
117 | #address-cells = <1>; | ||
118 | #size-cells = <0>; | ||
119 | |||
120 | port@0 { | ||
121 | reg = <0>; | ||
122 | |||
123 | hdmi0_in: endpoint { | ||
124 | remote-endpoint = <&dpi0_out>; | ||
125 | }; | ||
126 | }; | ||
127 | |||
128 | port@1 { | ||
129 | reg = <1>; | ||
130 | |||
131 | hdmi0_out: endpoint { | ||
132 | remote-endpoint = <&hdmi_con_in>; | ||
133 | }; | ||
134 | }; | ||
135 | }; | ||
136 | }; | ||
137 | |||
138 | connector { | ||
139 | compatible = "hdmi-connector"; | ||
140 | type = "a"; | ||
141 | ddc-i2c-bus = <&hdmiddc0>; | ||
142 | |||
143 | port { | ||
144 | hdmi_con_in: endpoint { | ||
145 | remote-endpoint = <&hdmi0_out>; | ||
146 | }; | ||
147 | }; | ||
148 | }; | ||