lkml.org 
[lkml]   [2013]   [Jan]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 21/24] ab8500-charger: Do not touch VBUSOVV bits
    Date
    From: Jonas Aaberg <jonas.aberg@stericsson.com>

    Do not touch the VBUSOVV in USBCHTRL2 when running on AB8505.

    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com>
    Reviewed-by: Marcus COOPER <marcus.xm.cooper@stericsson.com>
    Tested-by: Mian Yousaf KAUKAB <mian.yousaf.kaukab@stericsson.com>
    ---
    drivers/power/ab8500_charger.c | 22 ++++++++++++++++------
    include/linux/mfd/abx500/ab8500.h | 19 +++++++++++++++++++
    2 files changed, 35 insertions(+), 6 deletions(-)

    diff --git a/drivers/power/ab8500_charger.c b/drivers/power/ab8500_charger.c
    index a632b94..871bf5a 100644
    --- a/drivers/power/ab8500_charger.c
    +++ b/drivers/power/ab8500_charger.c
    @@ -2671,13 +2671,23 @@ static int ab8500_charger_init_hw_registers(struct ab8500_charger *di)
    }
    }

    - /* VBUS OVV set to 6.3V and enable automatic current limitiation */
    - ret = abx500_set_register_interruptible(di->dev,
    - AB8500_CHARGER,
    - AB8500_USBCH_CTRL2_REG,
    - VBUS_OVV_SELECT_6P3V | VBUS_AUTO_IN_CURR_LIM_ENA);
    + if (is_ab9540_2p0(di->parent) || is_ab8505_2p0(di->parent))
    + ret = abx500_mask_and_set_register_interruptible(di->dev,
    + AB8500_CHARGER,
    + AB8500_USBCH_CTRL2_REG,
    + VBUS_AUTO_IN_CURR_LIM_ENA,
    + VBUS_AUTO_IN_CURR_LIM_ENA);
    + else
    + /*
    + * VBUS OVV set to 6.3V and enable automatic current limitation
    + */
    + ret = abx500_set_register_interruptible(di->dev,
    + AB8500_CHARGER,
    + AB8500_USBCH_CTRL2_REG,
    + VBUS_OVV_SELECT_6P3V | VBUS_AUTO_IN_CURR_LIM_ENA);
    if (ret) {
    - dev_err(di->dev, "failed to set VBUS OVV\n");
    + dev_err(di->dev,
    + "failed to set automatic current limitation\n");
    goto out;
    }

    diff --git a/include/linux/mfd/abx500/ab8500.h b/include/linux/mfd/abx500/ab8500.h
    index 9dd9b99..b9a6a84 100644
    --- a/include/linux/mfd/abx500/ab8500.h
    +++ b/include/linux/mfd/abx500/ab8500.h
    @@ -346,4 +346,23 @@ static inline int is_ab8500_2p0(struct ab8500 *ab)
    return (is_ab8500(ab) && (ab->chip_id == AB8500_CUT2P0));
    }

    +static inline int is_ab8505_1p0_or_earlier(struct ab8500 *ab)
    +{
    + return (is_ab8505(ab) && (ab->chip_id <= AB8500_CUT1P0));
    +}
    +
    +static inline int is_ab8505_2p0(struct ab8500 *ab)
    +{
    + return (is_ab8505(ab) && (ab->chip_id == AB8500_CUT2P0));
    +}
    +
    +static inline int is_ab9540_1p0_or_earlier(struct ab8500 *ab)
    +{
    + return (is_ab9540(ab) && (ab->chip_id <= AB8500_CUT1P0));
    +}
    +
    +static inline int is_ab9540_2p0(struct ab8500 *ab)
    +{
    + return (is_ab9540(ab) && (ab->chip_id == AB8500_CUT2P0));
    +}
    #endif /* MFD_AB8500_H */
    --
    1.7.9.5


    \
     
     \ /
      Last update: 2013-01-21 18:21    [W:4.230 / U:0.288 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site