11 May, 2016

1 commit


23 Dec, 2015

1 commit


15 Sep, 2015

1 commit


02 Jun, 2015

1 commit

  • Current code does not set regulators->irq_ldo_lim and regulators->irq_uvov,
    so it actually calls free_irq(0, regulators) twice in remove() but does not
    free the irq actually used.

    Convert to use devm_request_threaded_irq instead and then we don't need to
    take care the clean up irq so remove irq_ldo_lim and irq_uvov from
    struct da9063_regulators. Note, regulators->irq_uvov is not used at all in
    current code.

    There is a slightly change in this patch, it will return error in probe()
    if devm_request_threaded_irq fails. If the irq is optional, it should be
    fine to allow platform_get_irq_byname fails. But current code does not
    allow platform_get_irq_byname fails. So I think the reason to allow
    request irq failure is just because the irq leak.

    Signed-off-by: Axel Lin
    Signed-off-by: Mark Brown

    Axel Lin
     

15 Dec, 2014

1 commit

  • Pull driver core update from Greg KH:
    "Here's the set of driver core patches for 3.19-rc1.

    They are dominated by the removal of the .owner field in platform
    drivers. They touch a lot of files, but they are "simple" changes,
    just removing a line in a structure.

    Other than that, a few minor driver core and debugfs changes. There
    are some ath9k patches coming in through this tree that have been
    acked by the wireless maintainers as they relied on the debugfs
    changes.

    Everything has been in linux-next for a while"

    * tag 'driver-core-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (324 commits)
    Revert "ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries"
    fs: debugfs: add forward declaration for struct device type
    firmware class: Deletion of an unnecessary check before the function call "vunmap"
    firmware loader: fix hung task warning dump
    devcoredump: provide a one-way disable function
    device: Add dev__once variants
    ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries
    ath: use seq_file api for ath9k debugfs files
    debugfs: add helper function to create device related seq_file
    drivers/base: cacheinfo: remove noisy error boot message
    Revert "core: platform: add warning if driver has no owner"
    drivers: base: support cpu cache information interface to userspace via sysfs
    drivers: base: add cpu_device_create to support per-cpu devices
    topology: replace custom attribute macros with standard DEVICE_ATTR*
    cpumask: factor out show_cpumap into separate helper function
    driver core: Fix unbalanced device reference in drivers_probe
    driver core: fix race with userland in device_add()
    sysfs/kernfs: make read requests on pre-alloc files use the buffer.
    sysfs/kernfs: allow attributes to request write buffer be pre-allocated.
    fs: sysfs: return EGBIG on write if offset is larger than file size
    ...

    Linus Torvalds
     

22 Nov, 2014

1 commit


20 Oct, 2014

1 commit


27 Mar, 2014

1 commit


12 Mar, 2014

1 commit


20 Feb, 2014

2 commits


18 Feb, 2014

1 commit


15 Feb, 2014

1 commit


12 Feb, 2014

1 commit

  • Bug fix to allow the setting of maximum voltage for certain LDOs.

    What the bug is:

    There is a problem caused by an invalid calculation of n_voltages
    in the driver. This n_voltages value has the potential to be
    different for each regulator.

    The value for linear_min_sel is set as DA9063_V##regl_name#
    which can be different depending upon the regulator. This is
    chosen according to the following definitions in the DA9063
    registers.h file:

    DA9063_VLDO1_BIAS 0
    DA9063_VLDO2_BIAS 0
    DA9063_VLDO3_BIAS 0
    DA9063_VLDO4_BIAS 0
    DA9063_VLDO5_BIAS 2
    DA9063_VLDO6_BIAS 2
    DA9063_VLDO7_BIAS 2
    DA9063_VLDO8_BIAS 2
    DA9063_VLDO9_BIAS 3
    DA9063_VLDO10_BIAS 2
    DA9063_VLDO11_BIAS 2

    The calculation for n_voltages is valid for LDOs whose BIAS value
    is zero but this is not correct for those LDOs which have a
    non-zero value.

    What the fix is:

    In order to take into account the non-zero linear_min_sel value which
    is set for the regulators LDO5, LDO6, LDO7, LDO8, LDO9, LDO10 and
    LDO11, the calculation for n_voltages should take into account the
    missing term defined by DA9063_V##regl_name#.

    This will in turn allow the core constraints calculation to set the
    maximum voltage limits correctly and therefore allow users to apply
    the maximum expected voltage to all of the LDOs.

    Signed-off-by: Steve Twiss
    Signed-off-by: Mark Brown
    Cc: stable@vger.kernel.org

    Steve Twiss
     

24 Oct, 2013

2 commits


01 Oct, 2013

1 commit


17 Sep, 2013

1 commit


11 Sep, 2013

1 commit

  • If CONFIG_OF=n:

    drivers/regulator/da9063-regulator.c: In function ‘da9063_parse_regulators_dt’:
    drivers/regulator/da9063-regulator.c:712: warning: passing argument 1 of ‘PTR_ERR’ makes pointer from integer without a cast
    drivers/regulator/da9063-regulator.c:712: warning: return makes pointer from integer without a cast

    Use ERR_PTR() to encode an error code in a pointer.
    PTR_ERR() is meant to decode an error code from a pointer.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Mark Brown

    Geert Uytterhoeven
     

01 Sep, 2013

1 commit


30 Aug, 2013

3 commits

  • regulator_register() does not return NULL, it returns ERR_PTR on error.

    Signed-off-by: Axel Lin
    Signed-off-by: Mark Brown

    Axel Lin
     
  • All the current limit tables have the values in ascend order.
    So we can slightly optimize the for loop iteration because the first match
    is the minimal value.

    Signed-off-by: Axel Lin
    Signed-off-by: Mark Brown

    Axel Lin
     
  • The driver adds support for the following DA9063 PMIC regulators:
    - 11x LDOs (named LDO1 - LDO11),
    - 6x buck converters (BCORE1, BCORE2, BPRO, BMEM, BIO, BPERI),

    Regulators provide following operations:
    - REGULATOR_CHANGE_STATUS and REGULATOR_CHANGE_VOLTAGE for all regulators,
    - REGULATOR_CHANGE_MODE for LDOs and buck converters, where:
    - LDOs allow REGULATOR_MODE_NORMAL and REGULATOR_MODE_STANDBY,
    - buck converters allow REGULATOR_MODE_FAST, REGULATOR_MODE_NORMAL
    and REGULATOR_MODE_STANDBY,
    - REGULATOR_CHANGE_CURRENT for buck converters (current limits).

    The driver generates REGULATOR_EVENT_OVER_CURRENT for LDO3, LDO4, LDO7, LDO8
    and LDO11.

    Internally, PMIC provides two voltage configurations for normal and suspend
    system state for each regulator. The driver switches between those on
    suspend/wake-up to provide quick and fluent output voltage change.

    This driver requires MFD core driver for operation.

    Signed-off-by: Krystian Garbaciak
    Signed-off-by: Philipp Zabel
    Signed-off-by: Mark Brown

    Krystian Garbaciak