diff mbox

[RFC,4/4] CHROMIUM: devicetree: Add GPIO display mux binding

Message ID 1467013727-11482-5-git-send-email-drinkcat@chromium.org (mailing list archive)
State New, archived
Headers show

Commit Message

Nicolas Boichat June 27, 2016, 7:48 a.m. UTC
Signed-off-by: Nicolas Boichat <drinkcat@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 mbox

Patch

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@0 { /* input */
+				reg = <0>;
+
+				hdmi_mux_in: endpoint {
+					remote-endpoint = <&hdmi0_out>;
+				};
+			};
+
+			port@1 { /* output */
+				reg = <1>;
+
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				hdmi_mux_out_anx: endpoint@0 {
+					reg = <0>;
+					remote-endpoint = <&anx7688_in>;
+				};
+
+				hdmi_mux_out_hdmi: endpoint@1 {
+					reg = <1>;
+					remote-endpoint = <&hdmi_connector_in>;
+				};
+			};
+		};
+	};