Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5c277007 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'mfd-for-linus-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd

Pull MFD updates from Lee Jones:
 "Changes to existing drivers:
   - fixr platform device collision; da9052, wm8994-core
   - regmap configuration amendments; tps65218
   - fix runtime PM deadlock; rtsx_usb
   - remove unused/superfluous code; db8500-prcmu, omap-usb-host
   - enable watchdog timer; lpc_sch
   - add start/stop RX URBs helpers; dln2
   - remove platform device (DT only); max77686, max77802
   - support suspend and resume; dln2
   - add Device Tree support; da9063
   - extra error checking; intel_soc_pmic
   - const'ify all the things; 88pm860x, hi6421-pmic, intel_soc_pmic,
                               max77686, lm3533, retu, pcf50633,
                               davinci_voicecodec, smsc-ece1099,
                               tps65218, mc13xxx, tps65217, twl-core,
                               twl6040

  New drivers/supported devices:
   - new driver for Richtek RT5033
   - new driver for DA9150 Charger and FuelGauge
   - new driver for Qualcomm Resource Power Manager (RPM)
   - add support for the ir-clk into sun6i-prcm
   - add support for FuelGauge into axp20x"

* tag 'mfd-for-linus-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (32 commits)
  mfd: intel_soc_pmic: Add missing error check for devm_kzalloc
  mfd: rtsx_usb: Defer autosuspend while card exists
  mfd: devicetree: Add bindings for DA9063
  mfd: da9063: Add device tree support
  regulator: qcom-rpm: Add missing state flag in call to RPM
  mfd: qcom-rpm: Driver for the Qualcomm RPM
  mfd: devicetree: bindings: Add Qualcomm RPM DT binding
  mfd: max77686/802: Remove support for board files
  mfd: omap-usb-host: Remove some unused functions
  mfd: twl6040: Constify struct regmap_config and reg_default array
  mfd: twl-core: Constify struct regmap_config and reg_default array
  mfd: tps65217: Constify struct regmap_config
  mfd: mc13xxx: i2c/spi: Constify struct regmap_config
  mfd: tps65218: Constify struct regmap_config
  mfd: smsc-ece1099: Constify struct regmap_config
  mfd: davinci_voicecodec: Constify struct regmap_config
  mfd: pcf50633: Constify struct regmap_config
  mfd: retu: Constify struct regmap_config
  mfd: lm3533: Constify struct regmap_config
  mfd: max77686: Constify struct regmap_config
  ...
parents 9a8b2aa5 0a65fbf6
Loading
Loading
Loading
Loading
+93 −0
Original line number Diff line number Diff line
* Dialog DA9063 Power Management Integrated Circuit (PMIC)

DA9093 consists of a large and varied group of sub-devices (I2C Only):

Device                   Supply Names    Description
------                   ------------    -----------
da9063-regulator        :               : LDOs & BUCKs
da9063-rtc              :               : Real-Time Clock
da9063-watchdog         :               : Watchdog

======

Required properties:

- compatible : Should be "dlg,da9063"
- reg : Specifies the I2C slave address (this defaults to 0x58 but it can be
  modified to match the chip's OTP settings).
- interrupt-parent : Specifies the reference to the interrupt controller for
  the DA9063.
- interrupts : IRQ line information.
- interrupt-controller

Sub-nodes:

- regulators : This node defines the settings for the LDOs and BUCKs. The
  DA9063 regulators are bound using their names listed below:

    bcore1    : BUCK CORE1
    bcore2    : BUCK CORE2
    bpro      : BUCK PRO
    bmem      : BUCK MEM
    bio       : BUCK IO
    bperi     : BUCK PERI
    ldo1      : LDO_1
    ldo2      : LDO_2
    ldo3      : LDO_3
    ldo4      : LDO_4
    ldo5      : LDO_5
    ldo6      : LDO_6
    ldo7      : LDO_7
    ldo8      : LDO_8
    ldo9      : LDO_9
    ldo10     : LDO_10
    ldo11     : LDO_11

  The component follows the standard regulator framework and the bindings
  details of individual regulator device can be found in:
  Documentation/devicetree/bindings/regulator/regulator.txt

- rtc : This node defines settings for the Real-Time Clock associated with
  the DA9063. There are currently no entries in this binding, however
  compatible = "dlg,da9063-rtc" should be added if a node is created.

- watchdog : This node defines settings for the Watchdog timer associated
  with the DA9063. There are currently no entries in this binding, however
  compatible = "dlg,da9063-watchdog" should be added if a node is created.


Example:

	pmic0: da9063@58 {
		compatible = "dlg,da9063"
		reg = <0x58>;
		interrupt-parent = <&gpio6>;
		interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
		interrupt-controller;

		rtc {
			compatible = "dlg,da9063-rtc";
		};

		wdt {
			compatible = "dlg,da9063-watchdog";
		};

		regulators {
			DA9063_BCORE1: bcore1 {
				regulator-name = "BCORE1";
				regulator-min-microvolt = <300000>;
				regulator-max-microvolt = <1570000>;
				regulator-min-microamp = <500000>;
				regulator-max-microamp = <2000000>;
				regulator-boot-on;
			};
			DA9063_LDO11: ldo11 {
				regulator-name = "LDO_11";
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <3600000>;
				regulator-boot-on;
			};
		};
	};
+70 −0
Original line number Diff line number Diff line
Qualcomm Resource Power Manager (RPM)

This driver is used to interface with the Resource Power Manager (RPM) found in
various Qualcomm platforms. The RPM allows each component in the system to vote
for state of the system resources, such as clocks, regulators and bus
frequencies.

- compatible:
	Usage: required
	Value type: <string>
	Definition: must be one of:
		    "qcom,rpm-apq8064"
		    "qcom,rpm-msm8660"
		    "qcom,rpm-msm8960"

- reg:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: base address and size of the RPM's message ram

- interrupts:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: three entries specifying the RPM's:
		    1. acknowledgement interrupt
		    2. error interrupt
		    3. wakeup interrupt

- interrupt-names:
	Usage: required
	Value type: <string-array>
	Definition: must be the three strings "ack", "err" and "wakeup", in order

- #address-cells:
	Usage: required
	Value type: <u32>
	Definition: must be 1

- #size-cells:
	Usage: required
	Value type: <u32>
	Definition: must be 0

- qcom,ipc:
	Usage: required
	Value type: <prop-encoded-array>

	Definition: three entries specifying the outgoing ipc bit used for
		    signaling the RPM:
		    - phandle to a syscon node representing the apcs registers
		    - u32 representing offset to the register within the syscon
		    - u32 representing the ipc bit within the register


= EXAMPLE

	#include <dt-bindings/mfd/qcom-rpm.h>

	rpm@108000 {
		compatible = "qcom,rpm-msm8960";
		reg = <0x108000 0x1000>;
		qcom,ipc = <&apcs 0x8 2>;

		interrupts = <0 19 0>, <0 21 0>, <0 22 0>;
		interrupt-names = "ack", "err", "wakeup";

		#address-cells = <1>;
		#size-cells = <0>;
	};
+1 −1
Original line number Diff line number Diff line
@@ -1111,7 +1111,7 @@ static int verify_addr(struct i2c_client *i2c)
	return 0;
}

static struct regmap_config pm860x_regmap_config = {
static const struct regmap_config pm860x_regmap_config = {
	.reg_bits = 8,
	.val_bits = 8,
};
+39 −0
Original line number Diff line number Diff line
@@ -195,6 +195,18 @@ config MFD_DA9063
	  Additional drivers must be enabled in order to use the functionality
	  of the device.

config MFD_DA9150
	tristate "Dialog Semiconductor DA9150 Charger Fuel-Gauge chip"
	depends on I2C=y
	select MFD_CORE
	select REGMAP_I2C
	select REGMAP_IRQ
	help
	  This adds support for the DA9150 integrated charger and fuel-gauge
	  chip. This driver provides common support for accessing the device.
	  Additional drivers must be enabled in order to use the specific
	  features of the device.

config MFD_DLN2
	tristate "Diolan DLN2 support"
	select MFD_CORE
@@ -417,6 +429,7 @@ config MFD_MAX14577
config MFD_MAX77686
	bool "Maxim Semiconductor MAX77686/802 PMIC Support"
	depends on I2C=y
	depends on OF
	select MFD_CORE
	select REGMAP_I2C
	select REGMAP_IRQ
@@ -589,6 +602,20 @@ config MFD_PM8921_CORE
	  Say M here if you want to include support for PM8921 chip as a module.
	  This will build a module called "pm8921-core".

config MFD_QCOM_RPM
	tristate "Qualcomm Resource Power Manager (RPM)"
	depends on ARCH_QCOM && OF
	help
	  If you say yes to this option, support will be included for the
	  Resource Power Manager system found in the Qualcomm 8660, 8960 and
	  8064 based devices.

	  This is required to access many regulators, clocks and bus
	  frequencies controlled by the RPM on these devices.

	  Say M here if you want to include support for the Qualcomm RPM as a
	  module. This will build a module called "qcom_rpm".

config MFD_SPMI_PMIC
	tristate "Qualcomm SPMI PMICs"
	depends on ARCH_QCOM || COMPILE_TEST
@@ -623,6 +650,18 @@ config MFD_RTSX_PCI
	  types of memory cards, such as Memory Stick, Memory Stick Pro,
	  Secure Digital and MultiMediaCard.

config MFD_RT5033
	tristate "Richtek RT5033 Power Management IC"
	depends on I2C=y
	select MFD_CORE
	select REGMAP_I2C
	help
	  This driver provides for the Richtek RT5033 Power Management IC,
	  which includes the I2C driver and the Core APIs. This driver provides
	  common support for accessing the device. The device supports multiple
	  sub-devices like charger, fuel gauge, flash LED, current source,
	  LDO and Buck.

config MFD_RTSX_USB
	tristate "Realtek USB card reader"
	depends on USB
+3 −1
Original line number Diff line number Diff line
@@ -113,7 +113,7 @@ obj-$(CONFIG_MFD_DA9055) += da9055.o

da9063-objs			:= da9063-core.o da9063-irq.o da9063-i2c.o
obj-$(CONFIG_MFD_DA9063)	+= da9063.o

obj-$(CONFIG_MFD_DA9150)	+= da9150-core.o
obj-$(CONFIG_MFD_MAX14577)	+= max14577.o
obj-$(CONFIG_MFD_MAX77686)	+= max77686.o
obj-$(CONFIG_MFD_MAX77693)	+= max77693.o
@@ -153,6 +153,7 @@ obj-$(CONFIG_MFD_SI476X_CORE) += si476x-core.o
obj-$(CONFIG_MFD_CS5535)	+= cs5535-mfd.o
obj-$(CONFIG_MFD_OMAP_USB_HOST)	+= omap-usb-host.o omap-usb-tll.o
obj-$(CONFIG_MFD_PM8921_CORE) 	+= pm8921-core.o ssbi.o
obj-$(CONFIG_MFD_QCOM_RPM)	+= qcom_rpm.o
obj-$(CONFIG_MFD_SPMI_PMIC)	+= qcom-spmi-pmic.o
obj-$(CONFIG_TPS65911_COMPARATOR)	+= tps65911-comparator.o
obj-$(CONFIG_MFD_TPS65090)	+= tps65090.o
@@ -176,6 +177,7 @@ obj-$(CONFIG_MFD_IPAQ_MICRO) += ipaq-micro.o
obj-$(CONFIG_MFD_MENF21BMC)	+= menf21bmc.o
obj-$(CONFIG_MFD_HI6421_PMIC)	+= hi6421-pmic-core.o
obj-$(CONFIG_MFD_DLN2)		+= dln2.o
obj-$(CONFIG_MFD_RT5033)	+= rt5033.o

intel-soc-pmic-objs		:= intel_soc_pmic_core.o intel_soc_pmic_crc.o
obj-$(CONFIG_INTEL_SOC_PMIC)	+= intel-soc-pmic.o
Loading