From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754244AbbAUPrH (ORCPT ); Wed, 21 Jan 2015 10:47:07 -0500 Received: from mail1.bemta5.messagelabs.com ([195.245.231.147]:57231 "EHLO mail1.bemta5.messagelabs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753947AbbAUPqy (ORCPT ); Wed, 21 Jan 2015 10:46:54 -0500 X-Env-Sender: Adam.Thomson.Opensource@diasemi.com X-Msg-Ref: server-5.tower-178.messagelabs.com!1421855196!42889635!1 X-Originating-IP: [82.210.246.133] X-StarScan-Received: X-StarScan-Version: 6.12.5; banners=-,-,- X-VirusChecked: Checked Message-ID: From: Adam Thomson Date: Wed, 21 Jan 2015 15:46:25 +0000 Subject: [PATCH v6 0/7] Add initial support for DA9150 Charger & Fuel-Gauge IC To: Lee Jones , Samuel Ortiz , Jonathan Cameron , Hartmut Knaack , , Sebastian Reichel , Dmitry Eremin-Solenikov , David Woodhouse , , Rob Herring , Pawel Moll , Mark Rutland , Ian Campbell , Kumar Gala , Grant Likely , , Andrew Morton , Joe Perches CC: , MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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-rc5 kernel version. 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 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Adam Thomson Subject: [PATCH v6 0/7] Add initial support for DA9150 Charger & Fuel-Gauge IC Date: Wed, 21 Jan 2015 15:46:25 +0000 Message-ID: Mime-Version: 1.0 Content-Type: text/plain Return-path: Sender: linux-iio-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Lee Jones , Samuel Ortiz , Jonathan Cameron , Hartmut Knaack , linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Sebastian Reichel , Dmitry Eremin-Solenikov , David Woodhouse , linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Rob Herring , Pawel Moll , Mark Rutland , Ian Campbell , Kumar Gala , Grant Likely , devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Andrew Morton , Joe Perches Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, support.opensource-WBD+wuPFNBhBDgjK7y7TUQ@public.gmane.org List-Id: devicetree@vger.kernel.org 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-rc5 kernel version. 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