diff options
author | Misael Lopez Cruz <misael.lopez@ti.com> | 2012-03-14 21:02:46 -0500 |
---|---|---|
committer | Dmytro Kedrovskyi <x0169235@ti.com> | 2012-05-03 16:13:22 +0300 |
commit | 90382d37b387065fa0d14c1caa0fe4115c5a482c (patch) | |
tree | 354a5d05e83a702f6f20068771bcce89a86f10fa | |
parent | 461c8dd812f5b3d68d38e7509df4d31664858266 (diff) | |
download | kernel_samsung_espresso10-90382d37b387065fa0d14c1caa0fe4115c5a482c.zip kernel_samsung_espresso10-90382d37b387065fa0d14c1caa0fe4115c5a482c.tar.gz kernel_samsung_espresso10-90382d37b387065fa0d14c1caa0fe4115c5a482c.tar.bz2 |
OMAP4: SDP4430: Enable CDC TCXO misc driver
Enable CDC TCXO misc driver and pass initial clock configuration
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.
Additionally, LDO is made decoder controlled so its state depends
on clock requests. This can lead to power savings when no clocks
are requested as the LDO will be off.
Change-Id: I005b25d70d79bd660f958cc247282c1a3d890ab3
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
-rw-r--r-- | arch/arm/mach-omap2/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-4430sdp.c | 25 |
2 files changed, 26 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index 7ab80cc..9d35bab 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig @@ -336,6 +336,7 @@ config MACH_OMAP_4430SDP select TWL6030_GPADC select OMAP_REBOOT_REASON select OMAP_RAM_CONSOLE + select CDC_TCXO config MACH_OMAP_BLAZE bool "OMAP 44xx Tablet2 Board" diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index f7febd9..5009b0a 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c @@ -25,6 +25,7 @@ #include <linux/omapfb.h> #include <linux/wl12xx.h> #include <linux/memblock.h> +#include <linux/cdc_tcxo.h> #include <linux/mfd/twl6040-codec.h> #include <mach/omap4-common.h> @@ -654,6 +655,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), @@ -663,6 +684,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 struct i2c_board_info __initdata sdp4430_i2c_3_boardinfo[] = { |