[PATCH 2/2] ARM: OMAP: SmartReflex: pass device dependent data via platform data
Kevin Hilman
khilman at deeprootsystems.com
Wed Oct 3 10:29:00 EDT 2012
jean.pihet at newoldbits.com writes:
> From: Jean Pihet <j-pihet at ti.com>
>
> Remove the device dependent code (ex. cpu_is_xxx()) and settings
> from the driver code and instead pass them via the platform
> data. This allows a clean separation of the driver code and the platform
> code, as required by the move of the platform header files to
> include/linux/platform_data.
>
> Note about the smartreflex functional clocks: the smartreflex fclks
> are derived from sys_clk and are named "smartreflex.%d". Since the
> smartreflex device names and the functional clock names are identical
> the device driver code uses them to control the functional clocks.
Thanks for adding this part.
One more nit below, then please resend this patch as a combined series
with the "align fclk names" patch. (note: The previous patch 1 from this
series I've queued separately as a fix for v3.7-rc. )
> Signed-off-by: Jean Pihet <j-pihet at ti.com>
> ---
> arch/arm/mach-omap2/sr_device.c | 13 +++++++++++++
> drivers/power/avs/smartreflex.c | 38 +++++++++----------------------------
> include/linux/power/smartreflex.h | 14 ++++++++++++--
> 3 files changed, 34 insertions(+), 31 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/sr_device.c b/arch/arm/mach-omap2/sr_device.c
> index cbeae56..06de443 100644
> --- a/arch/arm/mach-omap2/sr_device.c
> +++ b/arch/arm/mach-omap2/sr_device.c
> @@ -121,6 +121,19 @@ static int __init sr_dev_init(struct omap_hwmod *oh, void *user)
> sr_data->senn_mod = 0x1;
> sr_data->senp_mod = 0x1;
>
> + if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
> + sr_data->err_weight = OMAP3430_SR_ERRWEIGHT;
> + sr_data->err_maxlimit = OMAP3430_SR_ERRMAXLIMIT;
> + sr_data->accum_data = OMAP3430_SR_ACCUMDATA;
> + if (!(strcmp(sr_data->name, "smartreflex_mpu"))) {
> + sr_data->senn_avgweight = OMAP3430_SR1_SENNAVGWEIGHT;
> + sr_data->senp_avgweight = OMAP3430_SR1_SENPAVGWEIGHT;
> + } else {
> + sr_data->senn_avgweight = OMAP3430_SR2_SENNAVGWEIGHT;
> + sr_data->senp_avgweight = OMAP3430_SR2_SENPAVGWEIGHT;
> + }
> + }
> +
> sr_data->voltdm = voltdm_lookup(sr_dev_attr->sensor_voltdm_name);
> if (IS_ERR(sr_data->voltdm)) {
> pr_err("%s: Unable to get voltage domain pointer for VDD %s\n",
> diff --git a/drivers/power/avs/smartreflex.c b/drivers/power/avs/smartreflex.c
> index 24768a2..829467f 100644
> --- a/drivers/power/avs/smartreflex.c
> +++ b/drivers/power/avs/smartreflex.c
> @@ -133,14 +133,11 @@ static void sr_set_clk_length(struct omap_sr *sr)
> struct clk *sys_ck;
> u32 sys_clk_speed;
>
> - if (cpu_is_omap34xx())
> - sys_ck = clk_get(NULL, "sys_ck");
> - else
> - sys_ck = clk_get(NULL, "sys_clkin_ck");
> + sys_ck = clk_get(&sr->pdev->dev, "fck");
nit: since this isn't the sys_clk anymore, could you s/sys_ck/fck/ ?
Thanks,
Kevin
More information about the linux-arm-kernel
mailing list