This patch set adds initial support for the Dialog DA9150 Integrated Charger & Fuel-Gauge IC. The device also provides GPIO and GPADC functionality. In this patch set the following is provided: - MFD Core support and DT bindings documentation. - IIO GPADC support and DT bindings documentation. - Power Supply Charger support and DT bindings documentation. - Update to MAINTAINERS file to add DA9150 files to Dialog support list. To keep patch submission from being too large, support for GPIO and Fuel-Gauge will come after initial support patches are accepted. This patch set is baselined against the v3.19 kernel version. Changes in v7: - Small style changes to use '!' instead of ' == NULL' in Charger probe, and use already defined 'dev' attribute for 'devm_iio_device_alloc()' call instead of doing '&pdev->dev'. Changes in v6: - For GPADC driver, Use lower case extended names for IIO GPADC channels, and remove extended names for GPIO related channels. - For charger driver, revert to no devm IRQ request/free functions as ordering is important, and probe failure scenario was not being correctly covered. A helper function for free IRQs has been added to make code cleaner. Changes in v5: - Use sizeof(*gpadc) instead of sizeof(struct da9150_gpadc) in GPADC driver. - Fix erroneous goto for IRQ failure in GPADC driver. Now returns err directly. - Remove IIO ABI document patch as this has been taken by maintainer. Changes in v4: - Correct MODULE_AUTHOR lines so e-mail addresses correctly surrounded with <>. - Update to MFD binding document to remove unnecesary I2C reference, make module description generic, and add link to interrupt binding documentation. - For GPADC driver, irq request moved above iio related calls in probe() to mirror correctly the remove() function ordering, as requested. - For charger driver, remove additional sysfs entries as these are not necessary (debug only). - For charger driver, add helper function for requesting IRQs, to make probe() function cleaner/simpler. Changes in v3: - IRQ register and remove helper functions removed from MFD, deemed unnecessary. Drivers using helper functions updated to use direct calls to relevant kernel framework functions. - MFD I2C file removed and code folded into -core file as requested. - MFD core now buildable as driver module. - Platform data structure definition moved into core header, pdata.h removed. - Update functions in GPADC driver to be static, where appropriate. - Change units of GPADC readings to match ABI documentation. Updates to charger driver also made to align with this modification. - Refactor GPADC temp calculations to use scale & offset method. - Scale values now returned as FRACTIONAL to allow for accurate conversion in user-space. - Tidy up of GPADC scale, offset and raw functions to return from case statements with correct return types. - Update GPADC channel macros naming to prefix with DA9150, prevent conflict. - GPADC GPIO voltage readings actually in 6V range, updated accordingly. - Addition to IIO ABI document to add details on input current readings. - Small style updates to address comments. Changes in v2: - Drop devicetree prefix patch as this is being dealt with separately. - IIO framework fix patch removed from set, has already been accepted/merged. - Use __ instead of _ for protecting #ifdefs in headers. - Moved private data & definitions to source files and remove unwanted headers. - Bug fix to EXPORT_SYMBOL for common functions in MFD core used by sub-devices, so they can be correctly built as kernel modules. - Removed unnecessary channels from GPADC IIO driver to simplify code. - For GPADC IIO driver, VBAT reading now provides scale and offset values as it is a linear scale. - GPADC read code refactored to make it tidier. - Remove use of flag to indicate GPADC availability. IIO framework should indicate need to defer if it's not yet instantiated. - Unwanted comments removed. - Removed conditional shutdown of device (Charger/MFD) as this is not needed. - Removed AC type supply from charger as device cannot differentiate. Now just uses USB supply type. - Removed use of invalid-tbat flag from platform data as it doesn't really add anything to the driver except forcing battery present status. - Bug fix for checking of usb_phy validity in Charger probe() function. - Addition of common IRQ release function to allow sub-devices to explicitly tidy up IRQs when devm clean up is too late. - Improved tidy up of resources in charger. - Fix location of IIO GPADC related devicetree binding document so it now resides correctly under 'adc' directory. - Add update to MAINTAINERS file to include these files in Dialog support list. Adam Thomson (7): mfd: Add support for DA9150 combined charger & fuel-gauge device mfd: da9150: Add DT binding documentation for core iio: Add support for DA9150 GPADC iio: da9150: Add DT binding documentation for GPADC power: Add support for DA9150 Charger power: da9150: Add DT binding documentation for charger MAINTAINERS: Include DA9150 files in Dialog Semiconductor support list. .../devicetree/bindings/iio/adc/da9150-gpadc.txt | 16 + Documentation/devicetree/bindings/mfd/da9150.txt | 43 + .../devicetree/bindings/power/da9150-charger.txt | 26 + MAINTAINERS | 4 + drivers/iio/adc/Kconfig | 9 + drivers/iio/adc/Makefile | 1 + drivers/iio/adc/da9150-gpadc.c | 407 +++++++ drivers/mfd/Kconfig | 12 + drivers/mfd/Makefile | 2 +- drivers/mfd/da9150-core.c | 413 +++++++ drivers/power/Kconfig | 12 + drivers/power/Makefile | 1 + drivers/power/da9150-charger.c | 688 ++++++++++++ include/linux/mfd/da9150/core.h | 68 ++ include/linux/mfd/da9150/registers.h | 1155 ++++++++++++++++++++ 15 files changed, 2856 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/iio/adc/da9150-gpadc.txt create mode 100644 Documentation/devicetree/bindings/mfd/da9150.txt create mode 100644 Documentation/devicetree/bindings/power/da9150-charger.txt create mode 100644 drivers/iio/adc/da9150-gpadc.c create mode 100644 drivers/mfd/da9150-core.c create mode 100644 drivers/power/da9150-charger.c create mode 100644 include/linux/mfd/da9150/core.h create mode 100644 include/linux/mfd/da9150/registers.h -- 1.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html