]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ARM: dts: omap4-droid4: Add HDMI support
authorTony Lindgren <tony@atomide.com>
Mon, 6 Mar 2017 04:11:59 +0000 (20:11 -0800)
committerTony Lindgren <tony@atomide.com>
Wed, 22 Mar 2017 16:07:28 +0000 (09:07 -0700)
We can get HDMI working as long as the 5V regulator is on. There is
probably an encoder chip there too, but so far no idea what it might be.
Let's keep the 5V HDMI regulator always enabled for now as otherwise we
cannot detect the monitor properly.

Cc: devicetree@vger.kernel.org
Cc: Marcel Partap <mpartap@gmx.net>
Cc: Michael Scott <michael.scott@linaro.org>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Tested-By: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/boot/dts/omap4-droid4-xt894.dts

index 05046edefee7290fda6bf51591321e30a9d8c535..6b91eb812ea7f775d6cdf597e8ffd34850031f6f 100644 (file)
@@ -35,6 +35,37 @@ gpio-poweroff {
                gpios = <&gpio2 18 GPIO_ACTIVE_LOW>;    /* gpio50 */
        };
 
+       hdmi0: connector {
+               compatible = "hdmi-connector";
+               pinctrl-0 = <&hdmi_hpd_gpio>;
+               pinctrl-names = "default";
+               label = "hdmi";
+               type = "d";
+
+               hpd-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>;       /* gpio63 */
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_out>;
+                       };
+               };
+       };
+
+       /*
+        * HDMI 5V regulator probably sourced from battery. Let's keep
+        * keep this as always enabled for HDMI to work until we've
+        * figured what the encoder chip is.
+        */
+       hdmi_regulator: regulator-hdmi {
+               compatible = "regulator-fixed";
+               regulator-name = "hdmi";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio2 27 GPIO_ACTIVE_HIGH>;    /* gpio59 */
+               enable-active-high;
+               regulator-always-on;
+       };
+
        /* This is probably coming straight from the battery.. */
        wl12xx_vmmc: regulator-wl12xx {
                compatible = "regulator-fixed";
@@ -67,6 +98,10 @@ slider {
        };
 };
 
+&dss {
+       status = "okay";
+};
+
 &gpio6 {
        touchscreen_reset {
                gpio-hog;
@@ -81,6 +116,20 @@ &gpmc {
        status = "disabled";
 };
 
+&hdmi {
+       status = "okay";
+       pinctrl-0 = <&dss_hdmi_pins>;
+       pinctrl-names = "default";
+       vdda-supply = <&vdac>;
+
+       port {
+               hdmi_out: endpoint {
+                       remote-endpoint = <&hdmi_connector_in>;
+                       lanes = <1 0 3 2 5 4 7 6>;
+               };
+       };
+};
+
 &i2c1 {
        tmp105@48 {
                compatible = "ti,tmp105";
@@ -249,6 +298,22 @@ &ocmcram {
 
 &omap4_pmx_core {
 
+       /* hdmi_hpd.gpio_63 */
+       hdmi_hpd_gpio: pinmux_hdmi_hpd_pins {
+               pinctrl-single,pins = <
+               OMAP4_IOPAD(0x098, PIN_INPUT | MUX_MODE3)
+               >;
+       };
+
+       /* hdmi_cec.hdmi_cec, hdmi_scl.hdmi_scl, hdmi_sda.hdmi_sda */
+       dss_hdmi_pins: pinmux_dss_hdmi_pins {
+               pinctrl-single,pins = <
+               OMAP4_IOPAD(0x09a, PIN_INPUT_PULLUP | MUX_MODE0)
+               OMAP4_IOPAD(0x09c, PIN_INPUT | MUX_MODE0)
+               OMAP4_IOPAD(0x09e, PIN_INPUT | MUX_MODE0)
+               >;
+       };
+
        /* gpmc_ncs0.gpio_50 */
        poweroff_gpio: pinmux_poweroff_pins {
                pinctrl-single,pins = <