Though the comment in clocks_init claims to initialize the MADC
clocks, it wasn't actually being done. This patch implements minimal
MADC clock initialization.
Compile/run tested on Overo (prior to patch MADC access would always timeout)
diff --git a/drivers/mfd/twl4030-core.c b/drivers/mfd/twl4030-core.c
index 769b34b..c5ca36d 100644
--- a/drivers/mfd/twl4030-core.c
+++ b/drivers/mfd/twl4030-core.c
@@ -159,6 +159,7 @@
/* Few power values */
#define R_CFG_BOOT 0x05
+#define R_GPBR1 0x0C
#define R_PROTECT_KEY 0x0E
/* access control values for R_PROTECT_KEY */
@@ -166,6 +167,10 @@
#define KEY_UNLOCK2 0xec
#define KEY_LOCK 0x00
+/* MADC clock values for R_GPBR1 */
+#define MADC_HFCLK_EN 0x80
+#define DEFAULT_MADC_CLK_EN 0x10
+
/* some fields in R_CFG_BOOT */
#define HFCLK_FREQ_19p2_MHZ (1 << 0)
#define HFCLK_FREQ_26_MHZ (2 << 0)
@@ -717,6 +722,11 @@ static void __init clocks_init(struct device *dev)
ctrl |= HIGH_PERF_SQ;
e |= unprotect_pm_master();
/* effect->MADC+USB ck en */
+
+ if (twl_has_madc())
+ e |= twl4030_i2c_write_u8(TWL4030_MODULE_INTBR,
+ MADC_HFCLK_EN | DEFAULT_MADC_CLK_EN, R_GPBR1);
+
e |= twl4030_i2c_write_u8(TWL4030_MODULE_PM_MASTER, ctrl, R_CFG_BOOT);
e |= protect_pm_master();
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html