ARM: dts: Configure omap3 twl4030 I2C4 pins by default
authorTony Lindgren <tony@atomide.com>
Tue, 6 May 2014 00:27:37 +0000 (17:27 -0700)
committerTony Lindgren <tony@atomide.com>
Tue, 6 May 2014 22:45:14 +0000 (15:45 -0700)
Almost certainly any sane board has the twl4030 has the I2C4
pins connected as those are needed for voltage control during
idle. If the I2C4 lines are not properly muxed, any voltage
scaling over I2C4 will fail.

Let's mux those pins by default, the boards that are not using
them can still configure things separately.

Cc: Kevin Hilman <khilman@linaro.org>
Cc: Nishanth Menon <nm@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/boot/dts/twl4030_omap3.dtsi

index c353ef0a6ac7f8c2583967ebfcbbaee14bf7146b..3537ae5b2146211febbfd9c5e255e2ad34c07f3f 100644 (file)
@@ -8,7 +8,7 @@
 
 &twl {
        pinctrl-names = "default";
-       pinctrl-0 = <&twl4030_pins>;
+       pinctrl-0 = <&twl4030_pins &twl4030_vpins>;
 };
 
 &omap3_pmx_core {
                >;
        };
 };
+
+/*
+ * If your board is not using the I2C4 pins with twl4030, then don't include
+ * this file. For proper idle mode signaling with sys_clkreq and sys_off_mode
+ * pins we need to configure I2C4, or else use the legacy sys_nvmode1 and
+ * sys_nvmode2 signaling.
+ */
+&omap3_pmx_wkup {
+       twl4030_vpins: pinmux_twl4030_vpins {
+               pinctrl-single,pins = <
+                       OMAP3_WKUP_IOPAD(0x2a00, PIN_INPUT | MUX_MODE0)         /* i2c4_scl.i2c4_scl */
+                       OMAP3_WKUP_IOPAD(0x2a02, PIN_INPUT | MUX_MODE0)         /* i2c4_sda.i2c4_sda */
+                       OMAP3_WKUP_IOPAD(0x2a06, PIN_OUTPUT | MUX_MODE0)        /* sys_clkreq.sys_clkreq */
+                       OMAP3_WKUP_IOPAD(0x2a18, PIN_OUTPUT | MUX_MODE0)        /* sys_off_mode.sys_off_mode */
+               >;
+       };
+};