Commit e5744abb authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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

Pull MFD updates from Lee Jones:
 "Changes to existing drivers:
   - Use of managed resources - omap, twl4030, ti_am335x_tscadc
   - Advanced error handling - omap
   - Rework clk management - omap
   - Device Tree (re-)work - tc3589x, pm8921, da9055, sec
   - IRC management overhaul and !BROKEN - pm8921
   - Convert to regmap - ssbi, pm8921
   - Use simple power-management ops - ucb1x00
   - Include file clean-up - adp5520, cs5535, janz, lpc_ich,
      - lpc_sch, max14577, mcp-sa11x0, pcf50633-adc, rc5t583,
      	rdc321x-southbridge, retu, smsc-ece1099, ti-ssp, ti_am335x_tscadc,
	tps65912, vexpress-config, wm8350, ywm8350
   - Various bug fixes across the subsystem
      - NULL/invalid pointer dereference prevention
      - Resource leak mitigation,
      - Variable used initialised
      - Staticise various containers
      - Enforce return value checks

  New drivers/supported devices:
   - Add support for s2mps14 and s2mpa01 to sec
   - Add support for da9063 (v5) to da9063
   - Add support for atom-c2000 to gpio-ich
   - Add support for come-{mbt10,cbt6,chl6} to kempld
   - Add support for da9053 to da9052
   - Add support for itco-wdt (v3) and baytrail to lpc_ich
   - Add new drivers for tps65218, rtsx_usb, bcm590xx

  (Re-)moved drivers:
   - twl4030 ==> drivers/iio
   - ti-ssp  ==> /dev/null"

* tag 'mfd-for-linus-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (103 commits)
  mfd: wm5110: Correct default for HEADPHONE_DETECT_1
  mfd: arizona: Correct small errors in the DT binding documentation
  mfd: arizona: Mark DSP clocking register as volatile
  mfd: devicetree: bindings: Add pm8xxx RTC description
  mfd: kempld-core: Fix potential hang-up during boot
  mfd: sec-core: Fix uninitialized 'regmap_rtc' on S2MPA01
  mfd: tps65910: Fix regmap_irq_chip_data leak on mfd_add_devices fail
  mfd: tps65910: Fix possible invalid pointer dereference on regmap_add_irq_chip fail
  mfd: sec-core: Fix I2C dummy device resource leak on probe failure
  mfd: sec-core: Add of_compatible strings for clock MFD cells
  mfd: Remove obsolete ti-ssp driver
  Documentation: mfd: s2mps11: Describe S5M8767 and S2MPS14 clocks
  mfd: bcm590xx: Fix type argument for module device table
  mfd: lpc_ich: Add support for Intel Bay Trail SoC
  mfd: lpc_ich: Add support for NM10 GPIO
  mfd: lpc_ich: Change Avoton to iTCO v3
  watchdog: iTCO_wdt: Add support for v3 silicon
  mfd: lpc_ich: Add support for iTCO v3
  mfd: lpc_ich: Remove lpc_ich_cfg struct use
  mfd: lpc_ich: Only configure watchdog or GPIO when present
  ...
parents c29aa153 2d28ca73
Loading
Loading
Loading
Loading
+24 −0
Original line number Original line Diff line number Diff line
* TWL4030 Monitoring Analog to Digital Converter (MADC)

The MADC subsystem in the TWL4030 consists of a 10-bit ADC
combined with a 16-input analog multiplexer.

Required properties:
  - compatible: Should contain "ti,twl4030-madc".
  - interrupts: IRQ line for the MADC submodule.
  - #io-channel-cells: Should be set to <1>.

Optional properties:
  - ti,system-uses-second-madc-irq: boolean, set if the second madc irq register
				    should be used, which is intended to be used
				    by Co-Processors (e.g. a modem).

Example:

&twl {
	madc {
		compatible = "ti,twl4030-madc";
		interrupts = <3>;
		#io-channel-cells = <1>;
	};
};
+13 −10
Original line number Original line Diff line number Diff line
@@ -5,9 +5,10 @@ of analogue I/O.


Required properties:
Required properties:


  - compatible : one of the following chip-specific strings:
  - compatible : One of the following chip-specific strings:
        "wlf,wm5102"
        "wlf,wm5102"
        "wlf,wm5110"
        "wlf,wm5110"
        "wlf,wm8997"
  - reg : I2C slave address when connected using I2C, chip select number when
  - reg : I2C slave address when connected using I2C, chip select number when
    using SPI.
    using SPI.


@@ -25,8 +26,9 @@ Required properties:
  - #gpio-cells : Must be 2. The first cell is the pin number and the
  - #gpio-cells : Must be 2. The first cell is the pin number and the
    second cell is used to specify optional parameters (currently unused).
    second cell is used to specify optional parameters (currently unused).


  - AVDD1-supply, DBVDD1-supply, DBVDD2-supply, DBVDD3-supply, CPVDD-supply,
  - AVDD-supply, DBVDD1-supply, DBVDD2-supply, DBVDD3-supply (wm5102, wm5110),
    SPKVDDL-supply, SPKVDDR-supply : power supplies for the device, as covered
    CPVDD-supply, SPKVDDL-supply (wm5102, wm5110), SPKVDDR-supply (wm5102,
    wm5110), SPKVDD-supply (wm8997) : Power supplies for the device, as covered
    in Documentation/devicetree/bindings/regulator/regulator.txt
    in Documentation/devicetree/bindings/regulator/regulator.txt


Optional properties:
Optional properties:
@@ -46,6 +48,7 @@ codec: wm5102@1a {
	compatible = "wlf,wm5102";
	compatible = "wlf,wm5102";
	reg = <0x1a>;
	reg = <0x1a>;
	interrupts = <347>;
	interrupts = <347>;
	interrupt-controller;
	#interrupt-cells = <2>;
	#interrupt-cells = <2>;
        interrupt-parent = <&gic>;
        interrupt-parent = <&gic>;


@@ -53,10 +56,10 @@ codec: wm5102@1a {
	#gpio-cells = <2>;
	#gpio-cells = <2>;


	wlf,gpio-defaults = <
	wlf,gpio-defaults = <
		0x00000000, /* AIF1TXLRCLK */
		0x00000000 /* AIF1TXLRCLK */
		0xffffffff,
		0xffffffff
		0xffffffff,
		0xffffffff
		0xffffffff,
		0xffffffff
		0xffffffff,
		0xffffffff
	>;
	>;
};
};
+37 −0
Original line number Original line Diff line number Diff line
-------------------------------
BCM590xx Power Management Units
-------------------------------

Required properties:
- compatible: "brcm,bcm59056"
- reg: I2C slave address
- interrupts: interrupt for the PMU. Generic interrupt client node bindings
  are described in interrupt-controller/interrupts.txt

------------------
Voltage Regulators
------------------

Optional child nodes:
- regulators: container node for regulators following the generic
  regulator binding in regulator/regulator.txt

  The valid regulator node names for BCM59056 are:
  	rfldo, camldo1, camldo2, simldo1, simldo2, sdldo, sdxldo,
	mmcldo1, mmcldo2, audldo, micldo, usbldo, vibldo,
	csr, iosr1, iosr2, msr, sdsr1, sdsr2, vsr

Example:
	pmu: bcm59056@8 {
		compatible = "brcm,bcm59056";
		reg = <0x08>;
		interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
		regulators {
			rfldo_reg: rfldo {
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3300000>;
			};

			...
		};
	};
+72 −0
Original line number Original line Diff line number Diff line
* Dialog DA9055 Power Management Integrated Circuit (PMIC)

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

Device			 Supply Names	 Description
------			 ------------	 -----------
da9055-gpio		:		: GPIOs
da9055-regulator	:		: Regulators
da9055-onkey		:		: On key
da9055-rtc		:		: RTC
da9055-hwmon		:		: ADC
da9055-watchdog		:		: Watchdog

The CODEC device in DA9055 has a separate, configurable I2C address and so
is instantiated separately from the PMIC.

For details on accompanying CODEC I2C device, see the following:
Documentation/devicetree/bindings/sound/da9055.txt

======

Required properties:
- compatible : Should be "dlg,da9055-pmic"
- reg: Specifies the I2C slave address (defaults to 0x5a but can be modified)
- interrupt-parent: Specifies the phandle of the interrupt controller to which
  the IRQs from da9055 are delivered to.
- interrupts: IRQ line info for da9055 chip.
- interrupt-controller: da9055 has internal IRQs (has own IRQ domain).
- #interrupt-cells: Should be 1, is the local IRQ number for da9055.

Sub-nodes:
- regulators : Contain the regulator nodes. The DA9055 regulators are
  bound using their names as listed below:

    buck1     : regulator BUCK1
    buck2     : regulator BUCK2
    ldo1      : regulator LDO1
    ldo2      : regulator LDO2
    ldo3      : regulator LDO3
    ldo4      : regulator LDO4
    ldo5      : regulator LDO5
    ldo6      : regulator LDO6

  The bindings details of individual regulator device can be found in:
  Documentation/devicetree/bindings/regulator/regulator.txt


Example:

	pmic: da9055-pmic@5a {
		compatible = "dlg,da9055-pmic";
		reg = <0x5a>;
		interrupt-parent = <&intc>;
		interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
		interrupt-controller;
		#interrupt-cells = <1>;

		regulators {
			buck1: BUCK1 {
				regulator-min-microvolt = <725000>;
				regulator-max-microvolt = <2075000>;
			};
			buck2: BUCK2 {
				regulator-min-microvolt = <925000>;
				regulator-max-microvolt = <2500000>;
			};
			ldo1: LDO1 {
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <3300000>;
			};
		};
	};
+23 −0
Original line number Original line Diff line number Diff line
@@ -32,6 +32,29 @@ Optional properties:
- single-ulpi-bypass: Must be present if the controller contains a single
- single-ulpi-bypass: Must be present if the controller contains a single
  ULPI bypass control bit. e.g. OMAP3 silicon <= ES2.1
  ULPI bypass control bit. e.g. OMAP3 silicon <= ES2.1


- clocks: a list of phandles and clock-specifier pairs, one for each entry in
  clock-names.

- clock-names: should include:
  For OMAP3
  * "usbhost_120m_fck" - 120MHz Functional clock.

  For OMAP4+
  * "refclk_60m_int" - 60MHz internal reference clock for UTMI clock mux
  * "refclk_60m_ext_p1" - 60MHz external ref. clock for Port 1's UTMI clock mux.
  * "refclk_60m_ext_p2" - 60MHz external ref. clock for Port 2's UTMI clock mux
  * "utmi_p1_gfclk" - Port 1 UTMI clock mux.
  * "utmi_p2_gfclk" - Port 2 UTMI clock mux.
  * "usb_host_hs_utmi_p1_clk" - Port 1 UTMI clock gate.
  * "usb_host_hs_utmi_p2_clk" - Port 2 UTMI clock gate.
  * "usb_host_hs_utmi_p3_clk" - Port 3 UTMI clock gate.
  * "usb_host_hs_hsic480m_p1_clk" - Port 1 480MHz HSIC clock gate.
  * "usb_host_hs_hsic480m_p2_clk" - Port 2 480MHz HSIC clock gate.
  * "usb_host_hs_hsic480m_p3_clk" - Port 3 480MHz HSIC clock gate.
  * "usb_host_hs_hsic60m_p1_clk" - Port 1 60MHz HSIC clock gate.
  * "usb_host_hs_hsic60m_p2_clk" - Port 2 60MHz HSIC clock gate.
  * "usb_host_hs_hsic60m_p3_clk" - Port 3 60MHz HSIC clock gate.

Required properties if child node exists:
Required properties if child node exists:


- #address-cells: Must be 1
- #address-cells: Must be 1
Loading