[PATCH/RFC] ARM: OMAP: Initialize MADC clock divider and clock

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux