Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753343AbdG2Ah7 (ORCPT ); Fri, 28 Jul 2017 20:37:59 -0400 Received: from mga05.intel.com ([192.55.52.43]:28424 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753242AbdG2Ah5 (ORCPT ); Fri, 28 Jul 2017 20:37:57 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.40,428,1496127600"; d="scan'208";a="884043745" From: Rajmohan Mani To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, linux-acpi@vger.kernel.org Cc: Lee Jones , Linus Walleij , Alexandre Courbot , "Rafael J. Wysocki" , Len Brown , sakari.ailus@linux.intel.com, Andy Shevchenko , Rajmohan Mani Subject: [PATCH v6 0/3] TPS68470 PMIC drivers Date: Fri, 28 Jul 2017 17:30:23 -0700 Message-Id: <1501288226-27469-1-git-send-email-rajmohan.mani@intel.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4473 Lines: 128 This is the patch series for TPS68470 PMIC that works as a camera PMIC. The patch series provide the following 3 drivers, to help configure the voltage regulators, clocks and GPIOs provided by the TPS68470 PMIC, to be able to use the camera sensors connected to this PMIC. TPS68470 MFD driver: This is the multi function driver that initializes the TPS68470 PMIC and supports the GPIO and Op Region functions. TPS68470 GPIO driver: This is the PMIC GPIO driver that will be used by the OS GPIO layer, when the BIOS / firmware triggered GPIO access is done. TPS68470 Op Region driver: This is the driver that will be invoked, when the BIOS / firmware configures the voltage / clock for the sensors / vcm devices connected to the PMIC. --- Update on 2 GPIO chips implementation over 1: - Attempted to implement 2 GPIO chips, but ran into couple of issues in the kernel, so we couldn't get it to work. - It was decided to postpone this change, since it is not critical Changes in v6: - MFD driver: - Used non-zero return values from regmap_write/read() calls to detect error conditions Changes in v5: - MFD driver: - Fixed Kconfig description text - Addressed other comments from Lee, related to formatting - GPIO driver: - Formatted the file header text - Opregion driver: - Formatted the file header text Changes in v4: - MFD driver: - Removed board specific code and FIXME comment - Moved i2c.h include from tps68470.h to tps68470.c - Moved the TPS68470 REVID read code after PMIC reset - Fixed typo in debug error message (on failure of devm_mfd_add_devices() ) - Enhanced dependency on I2C by changing it to I2C=y (to fix build errors if I2C is built as module e.g tps68470.c:71: undefined reference to `__devm_regmap_init_i2c' tps68470.c:117: undefined reference to `i2c_register_driver') - Removed most of the unused header file definitions - Moved devm_mfd_add_devices() after PMIC resett - Used probe_new() and removed i2c_device_id table The following patch from Andy is needed for the driver to be probed. http://marc.info/?l=linux-acpi&m=150030081523885&w=2 - GPIO driver: - Added newline at the end of Kconfig description - Updated commit message about the descriptive names for the GPIOs and the typical usage model of the GPIO driver - Opregion driver: - Added dependency on MFD_TPS68470 - Converted 2 liner into one line code Changes in v3: - MFD driver: - Removed GPIO lookup table - Reverted to probe() for consistency - Addressed other comments from Andy - GPIO driver: - Removed the code that initializes the default values of GPIOs to zeros - Used gpiochip_get_data() to access data inside the gpio_chip Changes in v2: - MFD driver: - Removed tps68470_* wrappers around regmap_* calls - Removed "struct tps68470" - used devm_mfd_add_devices and removed mutex in mfd driver - Added reasoning about the need of having mfd driver as bool/builtin - Opregion driver: - renamed opregion driver file / internal symbol names with tps68470_pmic* - Made opregion driver tables as const - Removed unused *handler_context in common handler - Replaced "int" with "unsigned int" - Changed to WARN macro to dev_warn() - Destroyed mutex on error - Added reasoning about the need of having Opregion driver as bool/builtin - GPIO driver: - Implemented get_direction() in the GPIO driver - Setup gpio_chip.names - Moved the GPIO lookup table code inside mfd driver - Added reasoning about the need of having GPIO driver as bool/builtin --- Rajmohan Mani (3): mfd: Add new mfd device TPS68470 gpio: Add support for TPS68470 GPIOs ACPI / PMIC: Add TI PMIC TPS68470 operation region driver drivers/acpi/Kconfig | 16 ++ drivers/acpi/Makefile | 2 + drivers/acpi/pmic/tps68470_pmic.c | 455 ++++++++++++++++++++++++++++++++++++++ drivers/gpio/Kconfig | 15 ++ drivers/gpio/Makefile | 1 + drivers/gpio/gpio-tps68470.c | 176 +++++++++++++++ drivers/mfd/Kconfig | 18 ++ drivers/mfd/Makefile | 1 + drivers/mfd/tps68470.c | 106 +++++++++ include/linux/mfd/tps68470.h | 97 ++++++++ 10 files changed, 887 insertions(+) create mode 100644 drivers/acpi/pmic/tps68470_pmic.c create mode 100644 drivers/gpio/gpio-tps68470.c create mode 100644 drivers/mfd/tps68470.c create mode 100644 include/linux/mfd/tps68470.h -- 1.9.1