This patch adds support to pdata enable smartreflex autocompenstion during init based on enable_on_init flag passed as pdata. This patch also adds enabling of autocompensation by default (setting enable_on_init flag to true) in case of ES3.1 OMAP3430 chip. In the current implementation this step is kept in smartreflex.c itself.Later an API can be added so that the decision to enable autocompensation by default can be passed from the corresponding board files. Signed-off-by: Thara Gopinath <thara@xxxxxx> --- arch/arm/mach-omap2/smartreflex.c | 5 +++++ arch/arm/mach-omap2/sr_device.c | 16 +++++++++++++++- 2 files changed, 20 insertions(+), 1 deletions(-) diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c index d043951..56a8005 100644 --- a/arch/arm/mach-omap2/smartreflex.c +++ b/arch/arm/mach-omap2/smartreflex.c @@ -239,6 +239,7 @@ static void sr_stop_vddautocomp(struct omap_sr *sr) static int sr_late_init(struct omap_sr *sr_info) { char name[SMARTREFLEX_NAME_LEN]; + struct omap_smartreflex_data *pdata = sr_info->pdev->dev.platform_data; int ret = 0; if (sr_class->class_type == SR_CLASS2 && @@ -252,6 +253,10 @@ static int sr_late_init(struct omap_sr *sr_info) handler for SR%d. Smartreflex will \ not function as desired\n", sr_info->srid); } + + if (pdata->enable_on_init) + sr_start_vddautocomp(sr_info); + return ret; } diff --git a/arch/arm/mach-omap2/sr_device.c b/arch/arm/mach-omap2/sr_device.c index c9b6533..7cb1fc7 100644 --- a/arch/arm/mach-omap2/sr_device.c +++ b/arch/arm/mach-omap2/sr_device.c @@ -117,7 +117,21 @@ static int __init omap_devinit_smartreflex(void) if (WARN_ON(!sr_data)) return -ENOMEM; - sr_data->enable_on_init = false; + /* + * OMAP3430 ES3.1 chips by default come with Efuse burnt + * with parameters required for full functionality of + * smartreflex AVS feature like ntarget values , sennenable + * and senpenable. So enable the SR AVS feature during boot up + * itself if it is a OMAP3430 ES3.1 chip. + */ + if (cpu_is_omap343x()) { + if (omap_rev() == OMAP3430_REV_ES3_1) + sr_data->enable_on_init = true; + else + sr_data->enable_on_init = false; + } else { + sr_data->enable_on_init = false; + } sr_data->device_enable = omap_device_enable; sr_data->device_shutdown = omap_device_shutdown; sr_data->device_idle = omap_device_idle; -- 1.7.0.rc1.33.g07cf0f -- 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