Signed-off-by: Nicolas Boichat <drinkcat at chromium.org>
---
 .../devicetree/bindings/drm/bridge/gpio-mux.txt    | 59 ++++++++++++++++++++++
 1 file changed, 59 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/drm/bridge/gpio-mux.txt

diff --git a/Documentation/devicetree/bindings/drm/bridge/gpio-mux.txt 
b/Documentation/devicetree/bindings/drm/bridge/gpio-mux.txt
new file mode 100644
index 0000000..cce410c
--- /dev/null
+++ b/Documentation/devicetree/bindings/drm/bridge/gpio-mux.txt
@@ -0,0 +1,59 @@
+Generic display mux (1 input, 2 outputs)
+----------------------------------------
+
+This bindings describes a simple display (e.g. HDMI) mux, that has 2
+inputs, and 1 output. The mux status is controlled by hardware, and
+its status is read back using a GPIO.
+
+Required properties:
+
+ - compatible          : "gpio-display-mux"
+ - detect-gpios        : GPIO that indicates the active output
+
+ - Video port for input, using the DT bindings defined in [1].
+ - 2 video port for output, using the DT bindings defined in [1].
+   The reg value in the endpoints matches the GPIO status: when
+   GPIO is active, endpoint with reg value <1> is selected,.
+
+[1]: Documentation/devicetree/bindings/media/video-interfaces.txt
+
+Example:
+
+       hdmi_mux: hdmi_mux {
+               compatible = "gpio-display-mux";
+               status = "okay";
+               detect-gpios = <&pio 36 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&hdmi_mux_pins>;
+               ddc-i2c-bus = <&hdmiddc0>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port at 0 { /* input */
+                               reg = <0>;
+
+                               hdmi_mux_in: endpoint {
+                                       remote-endpoint = <&hdmi0_out>;
+                               };
+                       };
+
+                       port at 1 { /* output */
+                               reg = <1>;
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               hdmi_mux_out_anx: endpoint at 0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&anx7688_in>;
+                               };
+
+                               hdmi_mux_out_hdmi: endpoint at 1 {
+                                       reg = <1>;
+                                       remote-endpoint = <&hdmi_connector_in>;
+                               };
+                       };
+               };
+       };
-- 
2.8.0.rc3.226.g39d4020

Reply via email to