aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-omap2/Kconfig1
-rw-r--r--arch/arm/mach-omap2/board-44xx-tablet.c25
2 files changed, 26 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 5cf7600..7ab80cc 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -356,6 +356,7 @@ config MACH_OMAP_BLAZE
select TWL6040_VIB
select OMAP_REBOOT_REASON
select OMAP_RAM_CONSOLE
+ select CDC_TCXO
config MACH_OMAP4_PANDA
bool "OMAP4 Panda Board"
diff --git a/arch/arm/mach-omap2/board-44xx-tablet.c b/arch/arm/mach-omap2/board-44xx-tablet.c
index 8a60cdc..2b05bbd 100644
--- a/arch/arm/mach-omap2/board-44xx-tablet.c
+++ b/arch/arm/mach-omap2/board-44xx-tablet.c
@@ -23,6 +23,7 @@
#include <linux/wl12xx.h>
#include <linux/skbuff.h>
#include <linux/ti_wilink_st.h>
+#include <linux/cdc_tcxo.h>
#include <plat/omap-serial.h>
#include <linux/mfd/twl6040-codec.h>
@@ -357,6 +358,26 @@ static struct bq2415x_platform_data sdp4430_bqdata = {
.max_charger_currentmA = 1550,
};
+/*
+ * The Clock Driver Chip (TCXO) on OMAP4 based SDP needs to
+ * be programmed to output CLK1 based on REQ1 from OMAP.
+ * By default CLK1 is driven based on an internal REQ1INT signal
+ * which is always set to 1.
+ * Doing this helps gate sysclk (from CLK1) to OMAP while OMAP
+ * is in sleep states.
+ */
+static struct cdc_tcxo_platform_data sdp4430_cdc_data = {
+ .buf = {
+ CDC_TCXO_REQ4INT | CDC_TCXO_REQ1INT |
+ CDC_TCXO_REQ4POL | CDC_TCXO_REQ3POL |
+ CDC_TCXO_REQ2POL | CDC_TCXO_REQ1POL,
+ CDC_TCXO_MREQ4 | CDC_TCXO_MREQ3 |
+ CDC_TCXO_MREQ2 | CDC_TCXO_MREQ1,
+ CDC_TCXO_LDOEN1,
+ 0,
+ },
+};
+
static struct i2c_board_info __initdata sdp4430_i2c_boardinfo[] = {
{
I2C_BOARD_INFO("bq24156", 0x6a),
@@ -366,6 +387,10 @@ static struct i2c_board_info __initdata sdp4430_i2c_boardinfo[] = {
I2C_BOARD_INFO("tps6130x", 0x33),
.platform_data = &twl6040_vddhf,
},
+ {
+ I2C_BOARD_INFO("cdc_tcxo_driver", 0x6c),
+ .platform_data = &sdp4430_cdc_data,
+ },
};
static void __init tablet_pmic_mux_init(void)