Sanjeev,

> -----Original Message-----
> From: [email protected] [mailto:linux-omap-
> [email protected]] On Behalf Of Sanjeev Premi
> Sent: Wednesday, February 23, 2011 11:29 PM
> To: [email protected]
> Cc: Sanjeev Premi
> Subject: [RFC 3/3] am35xx: pm: Hook-up with TPS65023
>
> Add glue logic to hook-up AM35x processors
> with TPS65023.
It seems that you are not really using Voltage layer for any interaction
with TPS65023 as you are not using VP and VC. Then what is the purpose of
registering this PMIC with Voltage layer. I fail to understand the purpose
of this patch series.

Vishwa
>
> Signed-off-by: Sanjeev Premi <[email protected]>
> ---
>  arch/arm/mach-omap2/am3517_tps.c |   96
> ++++++++++++++++++++++++++++++++++++++
>  1 files changed, 96 insertions(+), 0 deletions(-)
>  create mode 100644 arch/arm/mach-omap2/am3517_tps.c
>
> diff --git a/arch/arm/mach-omap2/am3517_tps.c b/arch/arm/mach-
> omap2/am3517_tps.c
> new file mode 100644
> index 0000000..cddd7eb
> --- /dev/null
> +++ b/arch/arm/mach-omap2/am3517_tps.c
> @@ -0,0 +1,96 @@
> +/**
> + * Copyright (C) 2011 Texas Instruments Incorporated -
> http://www.ti.com/
> + *
> + * Based on omap_twl.c
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation version 2.
> + *
> + * This program is distributed "as is" WITHOUT ANY WARRANTY of any
> + * kind, whether express or implied; without even the implied warranty
> + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> See the
> + * GNU General Public License for more details.
> + */
> +
> +#include <linux/err.h>
> +#include <linux/io.h>
> +#include <linux/kernel.h>
> +#include <linux/i2c/twl.h>
> +
> +#include <plat/voltage.h>
> +
> +#include "pm.h"
> +
> +/*
> + * TODO: Copy of OMAP3 definitions to get thru compilation.
> + *       May not be needed in final implementation. Need to
> + *       relook at the the need again.
> + */
> +#define OMAP3_SRI2C_SLAVE_ADDR               0x12
> +#define OMAP3_VDD_MPU_SR_CONTROL_REG 0x00
> +#define OMAP3_VDD_CORE_SR_CONTROL_REG        0x01
> +#define OMAP3_VP_CONFIG_ERROROFFSET  0x00
> +#define OMAP3_VP_VSTEPMIN_VSTEPMIN   0x1
> +#define OMAP3_VP_VSTEPMAX_VSTEPMAX   0x04
> +#define OMAP3_VP_VLIMITTO_TIMEOUT_US 200
> +
> +#define OMAP3430_VP2_VLIMITTO_VDDMIN 0x18
> +#define OMAP3430_VP2_VLIMITTO_VDDMAX 0x2c
> +
> +/**
> + * TBD: Update the formula below.
> + *      Needs to be derived from a table.
> + */
> +static unsigned long tps65023_vsel_to_uv(const u8 vsel)
> +{
> +     return (((vsel * 250) + 6000)) * 100;
> +}
> +
> +/**
> + * TBD: Update the formula below.
> + *      Needs to be derived from a table.
> + */
> +static u8 tps65023_uv_to_vsel(unsigned long uv)
> +{
> +     return DIV_ROUND_UP(uv - 600000, 25000);
> +}
> +
> +/**
> + * TBD: Just a copy of OMAP3 PMIC info.
> + *      Many fields below don't make much sense for AM3517,
> + *      but keeping them as is for now.
> + */
> +static struct omap_volt_pmic_info am3517_volt_info = {
> +     .slew_rate              = 4000,
> +     .step_size              = 25000,
> +     .on_volt                = 1200000,
> +     .onlp_volt              = 1000000,
> +     .ret_volt               = 975000,
> +     .off_volt               = 600000,
> +     .volt_setup_time        = 0xfff,
> +     .vp_erroroffset         =
> OMAP3_VP_CONFIG_ERROROFFSET,
> +     .vp_vstepmin            = OMAP3_VP_VSTEPMIN_VSTEPMIN,
> +     .vp_vstepmax            = OMAP3_VP_VSTEPMAX_VSTEPMAX,
> +     .vp_vddmin              = OMAP3430_VP2_VLIMITTO_VDDMIN,
> +     .vp_vddmax              = OMAP3430_VP2_VLIMITTO_VDDMAX,
> +     .vp_timeout_us          =
> OMAP3_VP_VLIMITTO_TIMEOUT_US,
> +     .i2c_slave_addr         = OMAP3_SRI2C_SLAVE_ADDR,
> +     .pmic_reg               = OMAP3_VDD_CORE_SR_CONTROL_REG,
> +     .vsel_to_uv             = tps65023_vsel_to_uv,
> +     .uv_to_vsel             = tps65023_uv_to_vsel,
> +};
> +
> +int __init am3517_tps_init(void)
> +{
> +     struct voltagedomain *voltdm;
> +
> +     if (!cpu_is_omap3505() && !cpu_is_omap3517())
> +             return -ENODEV;
> +
> +     voltdm = omap_voltage_domain_lookup("mpu");
> +     omap_voltage_register_pmic(voltdm, &am3517_volt_info);
> +
> +     return 0;
> +}
> +
> --
> 1.7.2.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to