09 Dec, 2010

4 commits


30 Nov, 2010

9 commits


29 Oct, 2010

13 commits

  • max8998_pmic_probe:
    - modified to check if valid pins are defined at platform
    data
    - maximal voltage values (predefined at platform data) are uploaded to
    max8998 device

    max8998_set_voltage_buck:
    - BUCK1/2 voltages change between values already defined
    - Checks if valid GPIO pins are passed from platform data
    - If requested voltage cannot be satisfied from already defined values,
    then one of free slots is used
    - Predefined maximum voltages (as defined at platform data) are always
    available

    Signed-off-by: Lukasz Majewski
    Signed-off-by: Kyungmin Park
    Acked-by: Mark Brown
    Acked-by: Liam Girdwood
    Signed-off-by: Samuel Ortiz

    Lukasz Majewski
     
  • BUCK1/2 internal voltages and indexes defined in the struct max8998_data
    max_get_voltage_register now uses index values to chose proper register
    More generic BUCK1/2 registers names provided

    Signed-off-by: Lukasz Majewski
    Signed-off-by: Kyungmin Park
    Acked-by: Mark Brown
    Acked-by: Liam Girdwood
    Signed-off-by: Samuel Ortiz

    Lukasz Majewski
     
  • Signed-off-by: Lukasz Majewski
    Signed-off-by: Kyungmin Park
    Acked-by: Mark Brown
    Acked-by: Liam Girdwood
    Signed-off-by: Samuel Ortiz

    Lukasz Majewski
     
  • This patch makes the ab8500 mixed signal chip expose the same
    interface for register access as the ab3100, ab3550 and ab5500 chip.
    The ab8500_read() and ab8500_write() is removed and replaced with
    abx500_get_register_interruptible() and
    abx500_set_register_interruptible().

    Signed-off-by: Mattias Wallin
    Acked-by: Linus Walleij
    Acked-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mattias Wallin
     
  • The MAX8998 chip have regulator and rtc features. The i2c slave address
    of regulator and rtc is different, so needs each i2c client on i2c
    operation functions.

    Also, this patch exports i2c operation functions instead of callback to
    make easy to read.

    Signed-off-by: Joonyoung Shim
    Signed-off-by: Kyungmin Park
    Signed-off-by: Samuel Ortiz

    Joonyoung Shim
     
  • In current implementation, vid is declared as u8,
    then "vid == -1" is always false, and "vid >= 0" is always true.
    Thus change it to s8.

    Signed-off-by: Axel Lin
    Acked-by: Mark Brown
    Acked-by: Kyungmin Park
    Signed-off-by: Liam Girdwood

    Axel Lin
     
  • Signed-off-by: Axel Lin
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Axel Lin
     
  • Commit f03f91826 (regulator: Add option for machine drivers
    to enable the dummy regulator) in the regulators tree
    seems to have introduced the following build break when
    CONFIG_REGULATOR_DUMMY is disabled. Fix this.

    CC drivers/regulator/dummy.o
    drivers/regulator/dummy.c:41: error: redefinition of 'regulator_dummy_init'
    drivers/regulator/dummy.h:28: note: previous definition of 'regulator_dummy_init' was here
    make[2]: *** [drivers/regulator/dummy.o] Error 1
    make[1]: *** [drivers/regulator] Error 2
    make: *** [drivers] Error 2

    Signed-off-by: Anand Gadiyar
    Cc: Liam Girdwood
    Cc: Mark Brown
    Acked-by: Randy Dunlap
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Anand Gadiyar
     
  • I have a regulator A that sets regulator B as its supply. When I call
    set_supply to add B as the supply for A, regulator A gets added to the
    supply_list for regulator B.

    When I call regulator_disable(A), I end up with a call chain like this:

    regulator_disable(A)
    > mutex_lock(A)
    > _regulator_disable(A)
    >> _regulator_disable(B)
    >>> _notifier_call_chain(B)
    >>>> mutex_lock(A)

    Which results in dead lock since we are trying to acquire the mutex lock
    for regulator A which we already hold.

    This patch addresses this issue by moving the call to disable regulator
    B outside of the lock aquired inside the initial call to
    regulator_disable.

    This change also addresses the issue of not acquiring the mutex for
    regulator B before calling _regulator_disable(B).

    Signed-off-by: Jeffrey Carlyle
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Jeffrey Carlyle
     
  • Allow machine drivers to explicitly enable the use of the dummy regulator,
    enabling simpler support for systems with only a few specific supplies
    visible to software.

    It is strongly recommended that this is not used on systems with
    substantial software control over their PMICs, for maximum functionality
    constrints should be as fully specified as possible.

    Signed-off-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Mark Brown
     
  • This patch includes below fixes based on Mark's comment.
    - Return actual error if i2c_smbus_read_byte_data() fail
    - Add spaces around bitwise AND operator(&) to improve readability
    - Add comment to explain why we need to update voltage change control register
    for LDO1 and LDO5
    - Logging the value for diagnostics if chip reported incorrect voltage value
    - Add __devinit annotation for setup_regulators()
    - Show system control register1 value if the value is mismatched
    - Logging the value for diagnostics if failed to detect device

    Signed-off-by: Axel Lin
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Axel Lin
     
  • This patch adds regulator drivers for National Semiconductors LP3972 PMIC.
    This LP3972 PMIC controller has 3 DC/DC voltage converters and 5 low drop-out
    (LDO) regulators. LP3972 PMIC controller uses I2C interface.

    Signed-off-by: Axel Lin
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Axel Lin
     
  • MAX8952 PMIC is used to provide voltage output between 770mV - 1400mV
    with DVS support. In this initial release, users can set voltages for
    four DVS modes, RAMP delay values, and SYNC frequency.
    Controlling FPWM/SYNC_MODE/Pull-Down/Ramp Modes and reading CHIP_ID
    is not supported in this release.

    If GPIO of EN is not valid in platform data, the driver assumes that it
    is always-on. If GPIO of VID0 or VID1 is invalid, the driver pulls down
    VID0 and VID1 to fix DVS mode as 0 and disables DVS support.

    We assume that V_OUT is capable to provide every voltage from 770mV to
    1.40V in 10mV steps although the data sheet has some ambiguity on it.

    Signed-off-by: MyungJoo Ham
    Signed-off-by: Kyungmin Park
    Acked-by: Mark Brown
    --
    v2:
    - Style correction
    - Can accept platform_data with invalid GPIOs
    - Removed unnecessary features
    - Improved error handling
    Signed-off-by: Liam Girdwood

    MyungJoo Ham
     

08 Oct, 2010

1 commit


02 Oct, 2010

3 commits


30 Sep, 2010

1 commit


06 Sep, 2010

2 commits

  • In wm8350_dcdc_set_mode(), we set DCx_SLEEP bit of WM8350_DCDC_SLEEP_OPTIONS
    register for REGULATOR_MODE_STANDBY mode.
    ( DCx_SLEEP bits: 0: Normal DC-DC operation 1: Select LDO mode )

    In wm8350_dcdc_get_mode(), current logic to determinate
    REGULATOR_MODE_STANDBY mode is just reverse.
    ( sleep is set should mean REGULATOR_MODE_STANDBY mode. )

    Signed-off-by: Axel Lin
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Axel Lin
     
  • Problem description in current implementation:
    When setting REGULATOR_MODE_IDLE mode, current implementation set
    WM831X_LDO1_LP_MODE bit of ctrl_reg (which is wrong, it should clear the bit).
    But due to a missing break statement for case REGULATOR_MODE_IDLE, the code
    fall through to case REGULATOR_MODE_STANDBY and then clear
    WM831X_LDO1_LP_MODE bit. So it still looks OK when checking the status
    by wm831x_gp_ldo_get_mode().

    When setting REGULATOR_MODE_STANDBY mode, it just does not work.
    wm831x_gp_ldo_get_mode() will still return REGULATOR_MODE_IDLE because
    the accordingly WM831X_LDO1_LP_MODE bit is clear.

    Correct behavior should be:
    Clear WM831X_LDO1_LP_MODE bit of ctrl_reg for REGULATOR_MODE_IDLE mode.
    Set WM831X_LDO1_LP_MODE bit of ctrl_reg for REGULATOR_MODE_STANDBY mode.

    Signed-off-by: Axel Lin
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Axel Lin
     

05 Sep, 2010

2 commits


01 Sep, 2010

5 commits