>>-----Original Message----- >>From: Kevin Hilman [mailto:khilman@xxxxxxxxxxxxxxxxxxx] >>Sent: Wednesday, September 29, 2010 5:38 AM >>To: Gopinath, Thara >>Cc: linux-omap@xxxxxxxxxxxxxxx; paul@xxxxxxxxx; Cousson, Benoit; Sripathy, >>Vishwanath; Sawant, Anand >>Subject: Re: [PATCH v3 07/11] OMAP3: PM: Adding T2 enabling of smartreflex >>support >> >>Thara Gopinath <thara@xxxxxx> writes: >> >>> This patch adds support in the twl4030 driver to hook up >>> the API enabling smartreflex support on PMIC side with the >>> smartreflex driver. Without this the OMAP smartreflex modules >>> will not function. >>> >>> Signed-off-by: Thara Gopinath <thara@xxxxxx> >> >>This one should be a separate patch with a subject something like >> >> mfd: twl4030: add SmartReflex support >> >>and the changelog should indicate its dependency on this SR/voltage >>series. Do you mean to say this patch should not be a part of this series at all ?? Regards Thara >> >>Kevin >> >>> --- >>> drivers/mfd/twl-core.c | 7 +++++-- >>> drivers/mfd/twl4030-power.c | 29 +++++++++++++++++++++++++++++ >>> include/linux/i2c/twl.h | 1 + >>> 3 files changed, 35 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c >>> index 720e099..677b903 100644 >>> --- a/drivers/mfd/twl-core.c >>> +++ b/drivers/mfd/twl-core.c >>> @@ -1009,8 +1009,11 @@ twl_probe(struct i2c_client *client, const struct >>i2c_device_id *id) >>> clocks_init(&client->dev, pdata->clock); >>> >>> /* load power event scripts */ >>> - if (twl_has_power() && pdata->power) >>> - twl4030_power_init(pdata->power); >>> + if (twl_has_power()) { >>> + twl4030_power_sr_init(); >>> + if (pdata->power) >>> + twl4030_power_init(pdata->power); >>> + } >>> >>> /* Maybe init the T2 Interrupt subsystem */ >>> if (client->irq >>> diff --git a/drivers/mfd/twl4030-power.c b/drivers/mfd/twl4030-power.c >>> index 7efa878..6d0ad2d 100644 >>> --- a/drivers/mfd/twl4030-power.c >>> +++ b/drivers/mfd/twl4030-power.c >>> @@ -31,6 +31,8 @@ >>> >>> #include <asm/mach-types.h> >>> >>> +#include <plat/smartreflex.h> >>> + >>> static u8 twl4030_start_script_address = 0x2b; >>> >>> #define PWR_P1_SW_EVENTS 0x10 >>> @@ -63,6 +65,10 @@ static u8 twl4030_start_script_address = 0x2b; >>> #define R_MEMORY_ADDRESS PHY_TO_OFF_PM_MASTER(0x59) >>> #define R_MEMORY_DATA PHY_TO_OFF_PM_MASTER(0x5a) >>> >>> +/* Smartreflex Control */ >>> +#define R_DCDC_GLOBAL_CFG PHY_TO_OFF_PM_RECEIVER(0x61) >>> +#define CFG_ENABLE_SRFLX 0x08 >>> + >>> #define R_PROTECT_KEY 0x0E >>> #define R_KEY_1 0xC0 >>> #define R_KEY_2 0x0C >>> @@ -511,6 +517,29 @@ int twl4030_remove_script(u8 flags) >>> return err; >>> } >>> >>> +/* API to enable smrtreflex on Triton side */ >>> +static void twl4030_smartreflex_init(void) >>> +{ >>> + int ret = 0; >>> + u8 read_val; >>> + >>> + ret = twl_i2c_read_u8(TWL4030_MODULE_PM_RECEIVER, &read_val, >>> + R_DCDC_GLOBAL_CFG); >>> + read_val |= CFG_ENABLE_SRFLX; >>> + ret |= twl_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, read_val, >>> + R_DCDC_GLOBAL_CFG); >>> +} >>> + >>> +struct omap_smartreflex_pmic_data twl4030_sr_data = { >>> + .sr_pmic_init = twl4030_smartreflex_init, >>> +}; >>> + >>> +void __init twl4030_power_sr_init() >>> +{ >>> + /* Register the SR init API with the Smartreflex driver */ >>> + omap_sr_register_pmic(&twl4030_sr_data); >>> +} >>> + >>> void __init twl4030_power_init(struct twl4030_power_data *twl4030_scripts) >>> { >>> int err = 0; >>> diff --git a/include/linux/i2c/twl.h b/include/linux/i2c/twl.h >>> index 6de90bf..b02011e 100644 >>> --- a/include/linux/i2c/twl.h >>> +++ b/include/linux/i2c/twl.h >>> @@ -550,6 +550,7 @@ struct twl4030_power_data { >>> }; >>> >>> extern void twl4030_power_init(struct twl4030_power_data >>*triton2_scripts); >>> +extern void twl4030_power_sr_init(void); >>> extern int twl4030_remove_script(u8 flags); >>> >>> struct twl4030_codec_audio_data { -- 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