09 May, 2016

1 commit


19 Apr, 2016

2 commits


19 Mar, 2016

1 commit

  • Pull MFD updates from Lee Jones:
    "New Drivers:
    - Freescale Touch Screen ADC
    - X-Powers AXP PMIC with RSB
    - TI TPS65086 Power Management IC (PMIC)

    New Device Support:
    - Supply device PCI IDs for Intel Broxton

    Fix-ups:
    - Move to clkdev_create() API; intel_quark_i2c_gpio
    - Complete re-write of TI's TPS65912 Power Management IC (PMIC)
    - Remove unnecessary function argument; axp20x
    - Separate out bus related code; axp20x
    - Coding Style changes; axp20x
    - Allow more drivers to be compiled as modules
    - Work around false positive 'used uninitialised' warning; db8500-prcmu

    Bug Fixes:
    - Remove do_div(); fsl-imx25-gcq
    - Fix driver init when built-in; tps65010
    - Fix clock-unregister leak; intel-lpss"

    * tag 'mfd-for-linus-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (53 commits)
    mfd: intel-lpss: Pass I2C configuration via properties on BXT
    mfd: imx6sx: Add PCIe register definitions for iomuxc gpr
    mfd: ipaq-micro: Use __maybe_unused to hide pm functions
    mfd: max77686: Add max77802 to I2C device ID table
    mfd: max77686: Export OF module alias information
    mfd: max77686: Allow driver to be built as a module
    mfd: stmpe: Add the proper PWM resources
    mfd: tps65090: Set regmap config reg counts properly
    mfd: syscon: Return ENOTSUPP instead of ENOSYS when disabled
    mfd: as3711: Set regmap config reg counts properly
    mfd: rc5t583: Set regmap config reg counts properly
    gpio: tps65086: Add GPO driver for the TPS65086 PMIC
    mfd: mt6397: Add platform device ID table
    mfd: da9063: Fix missing volatile registers in the core regmap_range volatile lists
    mfd: mt6397: Add MT6323 support to MT6397 driver
    mfd: mt6397: Add support for different Slave types
    mfd: mt6397: int_con and int_status may vary in location
    dt-bindings: mfd: Add bindings for the MediaTek MT6323 PMIC
    mfd: da9062: Fix missing volatile registers in the core regmap_range volatile lists
    mfd: Add documentation for ACT8945A DT bindings
    ...

    Linus Torvalds
     

16 Mar, 2016

2 commits

  • The max77686 MFD driver supports both the Maxim 77686 and Maxim 77802
    PMICs but only the OF device table contains entries for both devices.

    The max77802 entry is missing in the I2C device ID table which isn't
    a problem currently since the driver only supports DT but it will be
    needed if the driver is changed to be built as a module since the I2C
    core always reports a I2C modalias uevent so auto-load will not work.

    Signed-off-by: Javier Martinez Canillas
    Signed-off-by: Lee Jones

    Javier Martinez Canillas
     
  • When the device is registered via OF, the OF table is used to match the
    driver instead of the I2C device ID table but the entries in the latter
    are used as aliasses to load the module if the driver was not built-in.

    This is because the I2C core always reports an I2C module alias instead
    of an OF one but that could change so it is better to always export it.

    Signed-off-by: Javier Martinez Canillas
    Signed-off-by: Lee Jones

    Javier Martinez Canillas
     

15 Mar, 2016

2 commits

  • To make RTC block of MAX77686/MAX77802 as independent driver,
    move the registration of i2c device, regmap for register access
    and irq_chip for interrupt support inside the RTC driver.
    Removed the same initialisation from MFD driver.

    Having this change will allow to reuse this driver for different
    PMIC/devices from Maxim Semiconductor if they kept same RTC IP on
    different PMIC. Some of examples as PMIC MAX77620, MAX20024 where
    same RTC IP used and hence driver for these chips will use this
    driver only for RTC support.

    Suggested-by: Krzysztof Kozlowski
    Signed-off-by: Laxman Dewangan
    Tested-by: Javier Martinez Canillas
    Reviewed-by: Javier Martinez Canillas
    Acked-by: Lee Jones
    Tested-by: Krzysztof Kozlowski
    Reviewed-by: Krzysztof Kozlowski
    Signed-off-by: Alexandre Belloni

    Laxman Dewangan
     
  • There is different RTC I2C address for RTC block in MAX77686.
    Driver is creating dummy i2c client for this address to access
    the register of this IP block.

    As there is no call to i2c_get_clientdata() for rtc_i2c client,
    there is no need to store pointer and hence removing the call
    to set client data for rtc i2c client.

    Suggested-by: Krzysztof Kozlowski
    Signed-off-by: Laxman Dewangan
    Tested-by: Krzysztof Kozlowski
    Reviewed-by: Krzysztof Kozlowski
    Tested-by: Javier Martinez Canillas
    Reviewed-by: Javier Martinez Canillas
    Acked-by: Lee Jones
    Signed-off-by: Alexandre Belloni

    Laxman Dewangan
     

14 Jan, 2016

1 commit


11 Aug, 2015

1 commit


23 Jan, 2015

1 commit

  • The driver is used only on Exynos based boards with DTS support.
    After removal of board file support from max77686 and max77802 regulator
    drivers, the MFD driver can be converted to DTS-only version. This
    simplifies a little the code:
    1. No dead (unused) entries in platform_data structure.
    2. More code removed.
    3. Regulator driver does not depend on allocated memory
    from MFD driver.
    4. It makes also easier extending the regulator driver.

    Add to the max77686 MFD driver dependency on CONFIG_OF because without
    DTS the regulator drivers (max77686 and max77802) won't bind.

    Signed-off-by: Krzysztof Kozlowski
    Reviewed-by: Javier Martinez Canillas
    Tested-by: Javier Martinez Canillas
    Signed-off-by: Lee Jones

    Krzysztof Kozlowski
     

22 Jan, 2015

1 commit


26 Sep, 2014

1 commit


25 Jul, 2014

2 commits

  • Extinguishes:

    ../drivers/mfd/max77686.c: In function ‘max77686_i2c_probe’:
    ../drivers/mfd/max77686.c:254:20:
    warning: cast from pointer to integer of different size

    Signed-off-by: Lee Jones

    Lee Jones
     
  • Maxim MAX77802 is a power management chip that contains 10 high
    efficiency Buck regulators, 32 Low-dropout (LDO) regulators used
    to power up application processors and peripherals, a 2-channel
    32kHz clock outputs, a Real-Time-Clock (RTC) and a I2C interface
    to program the individual regulators, clocks outputs and the RTC.

    This patch adds support for MAX77802 to the MAX77686 driver and is
    based on a driver added to the Chrome OS kernel 3.8 by Simon Glass.

    Signed-off-by: Javier Martinez Canillas
    Reviewed-by: Krzysztof Kozlowski
    Signed-off-by: Lee Jones

    Javier Martinez Canillas
     

21 Jul, 2014

8 commits


03 Jun, 2014

1 commit


19 Mar, 2014

1 commit

  • During probe the driver allocates dummy I2C device for RTC with
    i2c_new_dummy() but it does not check the return value of this call.

    In case of error (i2c_new_device(): memory allocation failure or I2C
    address cannot be used) this function returns NULL which is later used
    by i2c_unregister_device().

    If i2c_new_dummy() fails for RTC device, fail also the probe for main
    MFD driver.

    Cc: stable@vger.kernel.org
    Signed-off-by: Krzysztof Kozlowski
    Signed-off-by: Lee Jones

    Krzysztof Kozlowski
     

21 Jan, 2014

1 commit

  • The regmap used by max77686 MFD driver was not freed with regmap_exit()
    on driver exit. This lead to leak of resources.

    Replace regmap_init_i2c() call in driver probe with initialization of
    managed register map so the regmap will be properly freed by the device
    management code.

    Cc: stable@vger.kernel.org
    Signed-off-by: Krzysztof Kozlowski
    Signed-off-by: Lee Jones

    Krzysztof Kozlowski
     

06 Jan, 2014

1 commit

  • As of commit 03e361b25ee8dfb1fd9b890072c23c4aae01c6c7 ("mfd: Stop setting
    refcounting pointers in original mfd_cell arrays"), the "cell" parameter of
    mfd_add_devices() is "const" again. Hence make all cell data passed to
    mfd_add_devices() const where possible.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Lee Jones

    Geert Uytterhoeven
     

23 Oct, 2013

1 commit


31 Jul, 2013

1 commit


13 Jun, 2013

1 commit


12 Jun, 2013

1 commit


08 Apr, 2013

1 commit

  • 'data' is a pointer and hence use NULL instead of 0.
    Silences the following warning:
    drivers/mfd/max77686.c:49:50: warning: Using plain integer as NULL pointer

    Signed-off-by: Sachin Kamat
    Cc: Jonghwa Lee
    Signed-off-by: Samuel Ortiz

    Sachin Kamat
     

22 Jan, 2013

1 commit


29 Nov, 2012

1 commit


16 Sep, 2012

1 commit

  • Currently the MFD core supports remapping MFD cell interrupts using an
    irqdomain but only if the MFD is being instantiated using device tree
    and only if the device tree bindings use the pattern of registering IPs
    in the device tree with compatible properties. This will be actively
    harmful for drivers which support non-DT platforms and use this pattern
    for their DT bindings as it will mean that the core will silently change
    remapping behaviour and it is also limiting for drivers which don't do
    DT with this particular pattern. There is also a potential fragility if
    there are interrupts not associated with MFD cells and all the cells are
    omitted from the device tree for some reason.

    Instead change the code to take an IRQ domain as an optional argument,
    allowing drivers to take the decision about the parent domain for their
    interrupts. The one current user of this feature is ab8500-core, it has
    the domain lookup pushed out into the driver.

    Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     

10 Jul, 2012

1 commit


09 Jul, 2012

4 commits

  • This patch adds device tree support for mfd driver and adds
    Documentation/devicetree/bindings/mfd/max77686.txt.
    This patch also intialize max77686 pointer to NULL in max77686_i2c_probe
    to silent a compile time warning.

    Signed-off-by: Yadwinder Singh Brar
    Reviwed-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Yadwinder Singh Brar
     
  • Presently driver expects irq_gpio pin in platform data and maps it to irq
    itself. But we can also directly specify the interrupt in DT or platform file.

    Signed-off-by: Yadwinder Singh Brar
    Signed-off-by: Samuel Ortiz

    Yadwinder Singh Brar
     
  • Now this driver is using regmap API, the iolock mutex is not used and
    can be removed.

    Signed-off-by: Axel Lin
    Signed-off-by: Samuel Ortiz

    Axel Lin
     
  • This patch is device driver for MAX77686 chip.
    MAX77686 is PMIC and includes regulator and rtc on it.
    This driver is core of MAX77686 chip, so provides common support for
    accessing on-chip devices. It uses irq_domain to manage irq and regmap
    to read/write data to its register with i2c bus.

    Signed-off-by: Chiwoong Byun
    Signed-off-by: Jonghwa Lee
    Signed-off-by: Myungjoo Ham
    Signed-off-by: Kyungmin Park
    Reviewed-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Jonghwa Lee