26 Nov, 2014

2 commits

  • Fix rts5227&5249 failed send buffer cmd after suspend,
    PM_CTRL3 should reset before send any buffer cmd after suspend.
    Otherwise, buffer cmd will failed, this will lead resume fail.

    Signed-off-by: Micky Ching
    Signed-off-by: Lee Jones

    Micky Ching
     
  • The HLCDC IP available on some Atmel SoCs (i.e. at91sam9n12, at91sam9x5
    family or sama5d3 family) exposes 2 subdevices:
    - a display controller (controlled by a DRM driver)
    - a PWM chip

    The MFD device provides a regmap and several clocks (those connected
    to this hardware block) to its subdevices.

    This way concurrent accesses to the iomem range are handled by the regmap
    framework, and each subdevice can safely access HLCDC registers.

    Signed-off-by: Boris Brezillon
    Tested-by: Anthony Harivel
    Tested-by: Ludovic Desroches
    Signed-off-by: Lee Jones

    Boris Brezillon
     

11 Nov, 2014

1 commit

  • This patch implements the USB part of the Diolan USB-I2C/SPI/GPIO
    Master Adapter DLN-2. Details about the device can be found here:

    https://www.diolan.com/i2c/i2c_interface.html.

    Information about the USB protocol can be found in the Programmer's
    Reference Manual [1], see section 1.7.

    Because the hardware has a single transmit endpoint and a single
    receive endpoint the communication between the various DLN2 drivers
    and the hardware will be muxed/demuxed by this driver.

    Each DLN2 module will be identified by the handle field within the DLN2
    message header. If a DLN2 module issues multiple commands in parallel
    they will be identified by the echo counter field in the message header.

    The DLN2 modules can use the dln2_transfer() function to issue a
    command and wait for its response. They can also register a callback
    that is going to be called when a specific event id is generated by
    the device (e.g. GPIO interrupts). The device uses handle 0 for
    sending events.

    [1] https://www.diolan.com/downloads/dln-api-manual.pdf

    Signed-off-by: Octavian Purdila
    Reviewed-by: Johan Hovold
    Signed-off-by: Lee Jones

    Octavian Purdila
     

26 Sep, 2014

4 commits

  • The Qualcomm SPMI PMIC chips are components used with the
    Snapdragon 800 series SoC family. This driver exists
    largely as a glue mfd component, it exists to be an owner
    of an SPMI regmap for children devices described in
    device tree.

    Signed-off-by: Josh Cartwright
    Signed-off-by: Stanimir Varbanov
    Signed-off-by: Lee Jones

    Josh Cartwright
     
  • This adds driver to support HiSilicon Hi6421 PMIC. Hi6421 includes multi-
    functions, such as regulators, codec, ADCs, Coulomb counter, etc.
    This driver includes core APIs _only_.

    Drivers for individul components, like voltage regulators, are
    implemented in corresponding driver directories and files.

    Registers in Hi6421 are memory mapped, so using regmap-mmio API.

    Signed-off-by: Guodong Xu
    Signed-off-by: Lee Jones

    Guodong Xu
     
  • The RK808 chip is a power management IC for multimedia and handheld
    devices. It contains the following components:

    - Regulators
    - RTC
    - Clkout

    The RK808 core driver is registered as a platform driver and provides
    communication through I2C with the host device for the different
    components.

    Signed-off-by: Chris Zhong
    Signed-off-by: Zhang Qing
    Tested-by: Heiko
    Signed-off-by: Lee Jones

    Chris Zhong
     
  • Ricoh RN5T618 is a power management IC which integrates 3 step-down
    DCDC converters, 7 low-dropout regulators, a Li-ion battery charger,
    fuel gauge, ADC, GPIOs and a watchdog timer.

    This commit adds a MFD core driver to support the I2C communication
    with the device.

    Signed-off-by: Beniamino Galvani
    Signed-off-by: Lee Jones

    Beniamino Galvani
     

24 Sep, 2014

1 commit

  • The MEN 14F021P00 Board Management Controller provides an
    I2C interface to the host to access the feature implemented in the BMC.
    The BMC is a PIC Microntroller assembled on CPCI Card from MEN Mikroelektronik
    and on a few Box/Display Computer.

    Added MFD Core driver, supporting the I2C communication to the device.

    The MFD driver currently supports the following features:
    - Watchdog
    - LEDs
    - Hwmon (voltage monitoring)

    Signed-off-by: Andreas Werner
    Signed-off-by: Lee Jones

    Andreas Werner
     

21 Jul, 2014

1 commit


09 Jul, 2014

1 commit


17 Jun, 2014

2 commits

  • This patch provides chip-specific support for Crystal Cove. Crystal
    Cove is the PMIC in Baytrail-T platform.

    Also adds Intel SoC PMIC support to the build files.

    Signed-off-by: Yang, Bin
    Signed-off-by: Zhu, Lejun
    Signed-off-by: Lee Jones

    Zhu, Lejun
     
  • This patch modifies mfd driver to use regmap for handling interrupts.
    It allows to simplify irq handling process. This modifications needed
    to make small changes in function drivers, which use interrupts.

    Signed-off-by: Robert Baldyga
    Reviewed-by: Krzysztof Kozlowski
    Acked-by: Chanwoo Choi
    Signed-off-by: Lee Jones

    Robert Baldyga
     

07 Jun, 2014

1 commit

  • Pull MFD updates from Lee Jones:
    "Changes to existing drivers:
    - increase DT coverage: arizona, mc13xxx, stmpe-i2c, syscon,
    sun6i-prcm
    - regmap use of and/or clean-up: tps65090, twl6040
    - basic renaming: max14577
    - use new cpufreq helpers: db8500-prcmu
    - increase regulator support: stmpe, arizona, wm5102
    - reduce legacy GPIO overhead: stmpe
    - provide necessary remove path: bcm590xx
    - expand sysfs presence: kempld
    - move driver specific code out to drivers: rtc-s5m, arizona
    - clk handling: twl6040
    - use managed (devm_*) resources: ipaq-micro
    - clean-up/remove unused/duplicated code: tps65218, sec, pm8921,
    abx500-core, db8500-prcmu, menelaus
    - build/boot/sematic bug fixes: rtsx_usb, stmpe, bcm590xx, abx500,
    mc13xxx, rdc321x-southbridge, mfd-core, sec, max14577, syscon,
    cros_ec_spi
    - constify stuff: sm501, tps65910, tps6507x, tps6586x, max77686,
    max8997, kempld, max77693, max8907, rtsx_usb, db8500-prcmu,
    max8998, wm8400, sec, lp3943, max14577, as3711, omap-usb-host,
    ipaq-micro

    Support for new devices:
    - add support for max77836 into max14577
    - add support for tps658640 into tps6586x
    - add support for cros-ec-i2c-tunnel into cros_ec
    - add new driver for rtsx_usb_sdmmc and rtsx_usb_ms
    - add new driver for axp20x
    - add new driver for sun6i-prcm
    - add new driver for ipaq-micro"

    * tag 'mfd-for-linus-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (77 commits)
    mfd: wm5102: Correct default for LDO Control 2 register
    mfd: menelaus: Use module_i2c_driver
    mfd: tps65218: Terminate of match table
    mfd: db8500-prcmu: Remove check for CONFIG_DBX500_PRCMU_DEBUG
    mfd: ti-keystone-devctrl: Add bindings for device state control
    mfd: palmas: Format the header file
    mfd: abx500-core: Remove unused function abx500_dump_all_banks()
    mfd: arizona: Correct addresses of always-on trigger registers
    mfd: max14577: Cast to architecture agnostic data type
    i2c: ChromeOS EC tunnel driver
    mfd: cros_ec: Sync to the latest cros_ec_commands.h from EC sources
    mfd: cros_ec: spi: Increase cros_ec_spi deadline from 5ms to 100ms
    mfd: cros_ec: spi: Make the cros_ec_spi timeout more reliable
    mfd: cros_ec: spi: Add mutex to cros_ec_spi
    mfd: cros_ec: spi: Calculate delay between transfers correctly
    mfd: arizona: Correct error message for addition of main IRQ chip
    mfd: wm8997: Add registers for high power mode
    mfd: arizona: Add MICVDD to mapped regulators
    mfd: ipaq-micro: Make mfd_cell array const
    mfd: ipaq-micro: Use devm_ioremap_resource()
    ...

    Linus Torvalds
     

03 Jun, 2014

3 commits

  • This adds a driver for the Atmel Microcontroller found on the
    iPAQ h3xxx series. This device handles some keys, the
    touchscreen, and the battery monitoring.

    This is a port of a driver from handhelds.org 2.6.21 kernel,
    written by Alessandro Gardich based on Andrew Christians
    original HAL-driver. It has been heavily cleaned and
    converted to mfd-core by Dmitry Artamonow and rewritten
    again for the v3.x series kernels by Linus Walleij,
    bringing back some of the functionality lost from Andrew's
    original driver.

    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Alessandro Gardich
    Signed-off-by: Dmitry Artamonow
    Signed-off-by: Linus Walleij
    Signed-off-by: Lee Jones

    Linus Walleij
     
  • The PRCM (Power/Reset/Clock Management) block exposes several subdevices
    in different subsystems (clk, reset ...)

    Add basic support for the PRCM unit with clk (AR100, AHB0, and APB0 clks)
    and reset controller subdevices.

    Other subdevices might be added later (if needed).

    Signed-off-by: Boris BREZILLON
    Acked-by: Maxime Ripard
    Signed-off-by: Lee Jones

    Boris BREZILLON
     
  • This patch introduces the preliminary support for PMICs X-Powers AXP202
    and AXP209. The AXP209 and AXP202 are the PMUs (Power Management Unit)
    used by A10, A13 and A20 SoCs and developed by X-Powers, a sister company
    of Allwinner.

    The core enables support for two subsystems:
    - PEK (Power Enable Key)
    - Regulators

    Signed-off-by: Carlo Caione
    Signed-off-by: Lee Jones

    Carlo Caione
     

16 May, 2014

2 commits

  • This patch - finally, after over 6 months! :-( - addresses
    Samuel's request to split the vexpress-sysreg driver into
    smaller portions and define the device in a form of MFD
    cells:

    * LEDs code has been completely removed and replaced with
    "gpio-leds" nodes in the tree (referencing dedicated
    GPIO subnodes in sysreg - bindings documentation updated);
    this also better fits the reality as some variants of the
    motherboard don't have all the LEDs populated

    * syscfg bridge code has been extracted into a separate
    driver (placed in drivers/misc for no better place)

    * all the ID & MISC registers are defined as sysconf
    making them available for other drivers should they need
    to use them (and also to the user via /sys/kernel/debug/regmap
    which can be helpful in platform debugging)

    Signed-off-by: Pawel Moll
    Acked-by: Lee Jones

    Pawel Moll
     
  • Components of the Versatile Express platform (configuration
    microcontrollers on motherboard and daughterboards in particular)
    talk to each other over a custom configuration bus. They
    provide miscellaneous functions (from clock generator control
    to energy sensors) which are represented as platform devices
    (and Device Tree nodes). The transactions on the bus can
    be generated by different "bridges" in the system, some
    of which are universal for the whole platform (for the price
    of high transfer latencies), others restricted to a subsystem
    (but much faster).

    Until now drivers for such functions were using custom "func"
    API, which is being replaced in this patch by regmap calls.
    This required:

    * a rework (and move to drivers/bus directory, as suggested
    by Samuel and Arnd) of the config bus core, which is much
    simpler now and uses device model infrastructure (class)
    to keep track of the bridges; non-DT case (soon to be
    retired anyway) is simply covered by a special device
    registration function

    * the new config-bus driver also takes over device population,
    so there is no need for special matching table for
    of_platform_populate nor "simple-bus" hack in the arm64
    model dtsi file (relevant bindings documentation has
    been updated); this allows all the vexpress devices
    fit into normal device model, making it possible
    to remove plenty of early inits and other hacks in
    the near future

    * adaptation of the syscfg bridge implementation in the
    sysreg driver, again making it much simpler; there is
    a special case of the "energy" function spanning two
    registers, where they should be both defined in the tree
    now, but backward compatibility is maintained in the code

    * modification of the relevant drivers:

    * hwmon - just a straight-forward API change
    * power/reset driver - API change
    * regulator - API change plus error handling
    simplification
    * osc clock driver - this one required larger rework
    in order to turn in into a standard platform driver

    Signed-off-by: Pawel Moll
    Acked-by: Mark Brown
    Acked-by: Lee Jones
    Acked-by: Guenter Roeck
    Acked-by: Mike Turquette

    Pawel Moll
     

19 Mar, 2014

5 commits

  • The tnetv107x platform is getting removed, so this driver
    is not needed any more.

    Signed-off-by: Arnd Bergmann
    Acked-by: Sekhar Nori
    Acked-by: Kevin Hilman
    Signed-off-by: Lee Jones

    Arnd Bergmann
     
  • Add a driver for the BCM590xx PMU multi-function devices. The driver
    initially supports regmap initialization and instantiation of the
    voltage regulator device function of the PMU.

    Signed-off-by: Matt Porter
    Reviewed-by: Tim Kryger
    Reviewed-by: Markus Mayer
    Signed-off-by: Lee Jones

    Matt Porter
     
  • The pm8xxx-irq.c code is practically mandatory given that the
    pm8921-core driver will WARN about it missing and the Kconfig
    marks it as default y when a PM8xxx chips is enabled. The only
    reason the file was split out was because we planned to support
    other pm8xxx chips with different pm8xxx-core.c files. Now that
    we have DT on ARM this isn't necessary because we should be able
    to support all the ssbi based PM8xxx chips in one driver and one
    file with no data bloat. Let's move this code into the only
    driver that uses it right now (pm8921) so that it's always compiled when
    needed. In the future we can rename pm8921-core.c to something
    more generic.

    Signed-off-by: Stephen Boyd
    Signed-off-by: Lee Jones

    Stephen Boyd
     
  • Realtek USB card reader provides a channel to transfer command or data to flash
    memory cards. This driver exports host instances for mmc and memstick subsystems
    and handles basic works.

    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Roger Tseng
    Signed-off-by: Lee Jones

    Roger Tseng
     
  • The TPS65218 chip is a power management IC for Portable Navigation Systems
    and Tablet Computing devices. It contains the following components:

    - Regulators.
    - Over Temperature warning and Shut down.

    This patch adds support for tps65218 mfd device. At this time only
    the regulator functionality is made available.

    Signed-off-by: Keerthy
    Signed-off-by: Lee Jones

    Keerthy
     

18 Mar, 2014

1 commit


21 Jan, 2014

2 commits

  • LP3943 has 16 output pins which can be used as GPIO expander and PWM generator.

    * Regmap I2C interface for R/W LP3943 registers

    * Atomic operations for output pin assignment
    The driver should check whether requested pin is available or not.
    If the pin is already used, pin request returns as a failure.
    A driver data, 'pin_used' is checked when gpio_request() and
    pwm_request() are called. If the pin is available, then pin_used is set.
    And it is cleared when gpio_free() and pwm_free().

    * Device tree support
    Compatible strings for GPIO and PWM driver.
    LP3943 platform data is PWM related, so parsing the device tree is
    implemented in the PWM driver.

    Signed-off-by: Milo Kim
    Signed-off-by: Lee Jones

    Milo Kim
     
  • This patch adds max14577 core/irq driver to support MUIC(Micro USB IC)
    device and charger device and support irq domain method to control
    internal interrupt of max14577 device. Also, this patch supports DT
    binding with max14577_i2c_parse_dt().

    The MAXIM 14577 chip contains Micro-USB Interface Circuit and Li+ Battery
    Charger. It contains accessory and USB charger detection logic. It supports
    USB 2.0 Hi-Speed, UART and stereo audio signals over Micro-USB connector.

    The battery charger is compliant with the USB Battery Charging Specification
    Revision 1.1. It has also SFOUT LDO output for powering USB devices.

    Reviewed-by: Mark Brown
    Signed-off-by: Chanwoo Choi
    Signed-off-by: Krzysztof Kozlowski
    Signed-off-by: Kyungmin Park
    Signed-off-by: Lee Jones

    Chanwoo Choi
     

23 Oct, 2013

2 commits

  • The ams AS3722 is a compact system PMU suitable for mobile phones,
    tablets etc. It has 4 DC/DC step-down regulators, 3 DC/DC step-down
    controller, 11 LDOs, RTC, automatic battery, temperature and
    over-current monitoring, 8 GPIOs, ADC and a watchdog.

    Add MFD core driver for the AS3722 to support core functionality.

    Acked-by: Stephen Warren
    Signed-off-by: Laxman Dewangan
    Signed-off-by: Florian Lobmaier
    Signed-off-by: Lee Jones

    Laxman Dewangan
     
  • This adds a driver for the STw481x PMICs found in the Nomadik
    family of platforms. This one uses pure device tree probing.
    Print some of the OTP registers on boot and register a regulator
    MFD child.

    Signed-off-by: Linus Walleij
    Signed-off-by: Lee Jones

    Linus Walleij
     

20 Aug, 2013

2 commits

  • This patch adds a regmap irqchip for DA9063 IRQs. It depends on

    git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap.git tags/regmap-irq-ack-mask

    Signed-off-by: Krystian Garbaciak
    Signed-off-by: Philipp Zabel
    Reviewed-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Krystian Garbaciak
     
  • This is MFD module providing access to registers and interrupts of DA906x
    series PMIC. It is used by other functional modules, registered as MFD cells.
    Driver uses regmap with paging to access extended register list. Register map
    is divided into two pages, where the second page is used during initialisation.

    This module provides support to following functional cells:
    - Regulators
    - RTC
    - HWMON
    - OnKey (power key misc input device)
    - Vibration (force-feedback input device)
    - Watchdog
    - LEDs

    Signed-off-by: Krystian Garbaciak
    Signed-off-by: Philipp Zabel
    Reviewed-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Krystian Garbaciak
     

24 Jun, 2013

1 commit

  • Add core MFD driver for the on-board PLD found on some Kontron embedded
    modules. The PLD device may provide functions like watchdog, GPIO, UART
    and I2C bus.

    The following modules are supported:
    * COMe-bIP#
    * COMe-bPC2 (ETXexpress-PC)
    * COMe-bSC# (ETXexpress-SC T#)
    * COMe-cCT6
    * COMe-cDC2 (microETXexpress-DC)
    * COMe-cPC2 (microETXexpress-PC)
    * COMe-mCT10
    * ETX-OH

    Originally-From: Michael Brunner
    Signed-off-by: Kevin Strasser
    Acked-by: Guenter Roeck
    Acked-by: Darren Hart
    Acked-by: Thomas Gleixner
    Signed-off-by: Samuel Ortiz

    Kevin Strasser
     

18 Jun, 2013

1 commit

  • The wm8997 is a compact, high-performance audio hub CODEC with SLIMbus
    interfacing, for smartphones, tablets and other portable audio devices
    based on the Arizona platform.

    This patch integrates the wm8997 into the Arizona mfd.

    Signed-off-by: Charles Keepax
    Signed-off-by: Samuel Ortiz

    Charles Keepax
     

12 Jun, 2013

1 commit

  • There is no reason for ssbi to have its own top-level driver directory
    when the only users of this interface are all MFD drivers. The only
    mainline driver using it at the moment (PM8921) is marked broken and in
    fact does not compile. I have verified that fixing the trivial build
    breakage in pm8921 links in the new ssbi code just fine, but that
    can be a separate patch.

    Signed-off-by: Arnd Bergmann
    Acked-by: Greg Kroah-Hartman
    Acked-by: Nicolas Pitre
    Acked-by: David Brown
    Signed-off-by: Samuel Ortiz

    Arnd Bergmann
     

20 Apr, 2013

2 commits

  • This patch adds all necessary header files and Kbuild plumbing for the
    core driver for Silicon Laboratories Si476x series of AM/FM tuner
    chips.

    The driver as a whole is implemented as an MFD device and this patch
    adds a core portion of it that provides all the necessary
    functionality to the two other drivers that represent radio and audio
    codec subsystems of the chip.

    Acked-by: Hans Verkuil
    Acked-by: Sam Ravnborg
    Signed-off-by: Andrey Smirnov
    Signed-off-by: Samuel Ortiz

    Andrey Smirnov
     
  • RTS5249 supports SD UHS-II interface.

    In order to support SD UHS-II,the definitions of some internal
    registers of RTS5249 have to be modified and are different from its
    predecessors. So we need this patch to ensure RTS5249 can work, even
    SD/MMC stack doesn't support UHS-II interface.

    Signed-off-by: Wei WANG
    Signed-off-by: Samuel Ortiz

    Wei WANG
     

05 Apr, 2013

3 commits

  • This uses a SPI bus to talk to the ChromeOS EC. The protocol
    is defined by the EC and is fairly simple, with a length byte,
    checksum, command byte and version byte (to permit easy creation
    of new commands).

    Signed-off-by: Simon Glass
    Signed-off-by: Samuel Ortiz

    Simon Glass
     
  • This uses an I2C bus to talk to the ChromeOS EC. The protocol
    is defined by the EC and is fairly simple, with a length byte,
    checksum, command byte and version byte (to permit easy creation
    of new commands).

    Signed-off-by: Simon Glass
    Signed-off-by: Che-Liang Chiou
    Signed-off-by: Samuel Ortiz

    Simon Glass
     
  • This is the base EC implementation, which provides a high level
    interface to the EC for use by the rest of the kernel. The actual
    communcations is dealt with by a separate protocol driver which
    registers itself with this interface.

    Interrupts are passed on through a notifier.

    A simple message structure is used to pass messages to the
    protocol driver.
    Signed-off-by: Simon Glass
    Signed-off-by: Che-Liang Chiou
    Signed-off-by: Jonathan Kliegman
    Signed-off-by: Luigi Semenzato
    Signed-off-by: Olof Johansson
    Signed-off-by: Vincent Palatin
    Signed-off-by: Samuel Ortiz

    Simon Glass
     

14 Feb, 2013

1 commit


17 Dec, 2012

1 commit

  • Pull MFS update from Samuel Ortiz:
    "This is the MFD patch set for the 3.8 merge window.

    We have several new drivers, most of the time coming with their sub
    devices drivers:

    - Austria Microsystem's AS3711
    - Nano River's viperboard
    - TI's TPS80031, AM335x TS/ADC,
    - Realtek's MMC/memstick card reader
    - Nokia's retu

    We also got some notable cleanups and improvements:

    - tps6586x got converted to IRQ domains.
    - tps65910 and tps65090 moved to the regmap IRQ API.
    - STMPE is now Device Tree aware.
    - A general twl6040 and twl-core cleanup, with moves to the regmap
    I/O and IRQ APIs and a conversion to the recently added PWM
    framework.
    - sta2x11 gained regmap support.

    Then the rest is mostly tiny cleanups and fixes, among which we have
    Mark's wm5xxx and wm8xxx patchset."

    Far amount of annoying but largely trivial conflicts. Many due to
    __devinit/exit removal, others due to one or two of the new drivers also
    having come in through another tree.

    * tag 'mfd-3.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (119 commits)
    mfd: tps6507x: Convert to devm_kzalloc
    mfd: stmpe: Update DT support for stmpe driver
    mfd: wm5102: Add readback of DSP status 3 register
    mfd: arizona: Log if we fail to create the primary IRQ domain
    mfd: tps80031: MFD_TPS80031 needs to select REGMAP_IRQ
    mfd: tps80031: Add terminating entry for tps80031_id_table
    mfd: sta2x11: Fix potential NULL pointer dereference in __sta2x11_mfd_mask()
    mfd: wm5102: Add tuning for revision B
    mfd: arizona: Defer patch initialistation until after first device boot
    mfd: tps65910: Fix wrong ack_base register
    mfd: tps65910: Remove unused data
    mfd: stmpe: Get rid of irq_invert_polarity
    mfd: ab8500-core: Fix invalid free of devm_ allocated data
    mfd: wm5102: Mark DSP memory regions as volatile
    mfd: wm5102: Correct default for LDO1_CONTROL_2
    mfd: arizona: Register haptics devices
    mfd: wm8994: Make current device behaviour the default
    mfd: tps65090: MFD_TPS65090 needs to select REGMAP_IRQ
    mfd: Fix stmpe.c build when OF is not enabled
    mfd: jz4740-adc: Use devm_kzalloc
    ...

    Linus Torvalds