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

Commit bc914532 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MFD updates from Lee Jones:
 "New Device Support:
   - Add support for 88pm860; 88pm80x
   - Add support for 24c08 EEPROM; at24
   - Add support for Broxton Whiskey Cove; intel*
   - Add support for RTS522A; rts5227
   - Add support for I2C devices; intel_quark_i2c_gpio

  New Functionality:
   - Add microphone support; arizona
   - Add general purpose switch support; arizona
   - Add fuel-gauge support; da9150-core
   - Add shutdown support; sec-core
   - Add charger support; tps65217
   - Add flexible serial communication unit support; atmel-flexcom
   - Add power button support; axp20x
   - Add led-flash support; rt5033

  Core Frameworks:
   - Supply a generic macro for defining Regmap IRQs
   - Rework ACPI child device matching

  Fix-ups:
   - Use Regmap to access registers; tps6105x
   - Use DEFINE_RES_IRQ_NAMED() macro; da9150
   - Re-arrange device registration order; intel_quark_i2c_gpio
   - Allow OF matching; cros_ec_i2c, atmel-hlcdc, hi6421-pmic, max8997, sm501
   - Handle deferred probe; twl6040
   - Improve accuracy of headphone detect; arizona
   - Unnecessary MODULE_ALIAS() removal; bcm590xx, rt5033
   - Remove unused code; htc-i2cpld, arizona, pcf50633-irq, sec-core
   - Simplify code; kempld, rts5209, da903x, lm3533, da9052, arizona
   - Remove #iffery; arizona
   - DT binding adaptions; many

  Bug Fixes:
   - Fix possible NULL pointer dereference; wm831x, tps6105x
   - Fix 64bit bug; intel_soc_pmic_bxtwc
   - Fix signedness issue; arizona"

* tag 'mfd-for-linus-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (73 commits)
  bindings: mfd: s2mps11: Add documentation for s2mps15 PMIC
  mfd: sec-core: Remove unused s2mpu02-rtc and s2mpu02-clk children
  extcon: arizona: Add extcon specific device tree binding document
  MAINTAINERS: Add binding docs for Cirrus Logic/Wolfson Arizona devices
  mfd: arizona: Remove bindings covered in new subsystem specific docs
  mfd: rt5033: Add RT5033 Flash led sub device
  mfd: lpss: Add Intel Broxton PCI IDs
  mfd: lpss: Add Broxton ACPI IDs
  mfd: arizona: Signedness bug in arizona_runtime_suspend()
  mfd: axp20x: Add a cell for the power button part of the, axp288 PMICs
  mfd: dt-bindings: Document pulled down WRSTBI pin on S2MPS1X
  mfd: sec-core: Disable buck voltage reset on watchdog falling edge
  mfd: sec-core: Dump PMIC revision to find out the HW
  mfd: arizona: Use correct type ID for device tree config
  mfd: arizona: Remove use of codec build config #ifdefs
  mfd: arizona: Simplify adding subdevices
  mfd: arizona: Downgrade type mismatch messages to dev_warn
  mfd: arizona: Factor out checking of jack detection state
  mfd: arizona: Factor out DCVDD isolation control
  mfd: Make TPS6105X select REGMAP_I2C
  ...
parents 54727e6e 271bb177
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -347,13 +347,18 @@ For the first case, the MFD drivers do not need to do anything. The
resulting child platform device will have its ACPI_COMPANION() set to point
to the parent device.

If the ACPI namespace has a device that we can match using an ACPI id,
the id should be set like:
If the ACPI namespace has a device that we can match using an ACPI id or ACPI
adr, the cell should be set like:

	static struct mfd_cell_acpi_match my_subdevice_cell_acpi_match = {
		.pnpid = "XYZ0001",
		.adr = 0,
	};

	static struct mfd_cell my_subdevice_cell = {
		.name = "my_subdevice",
		/* set the resources relative to the parent */
		.acpi_pnpid = "XYZ0001",
		.acpi_match = &my_subdevice_cell_acpi_match,
	};

The ACPI id "XYZ0001" is then used to lookup an ACPI device directly under
+15 −0
Original line number Diff line number Diff line
Cirrus Logic Arizona class audio SoCs

These devices are audio SoCs with extensive digital capabilities and a range
of analogue I/O.

This document lists Extcon specific bindings, see the primary binding document:
  ../mfd/arizona.txt

Optional properties:

  - wlf,hpdet-channel : Headphone detection channel.
    ARIZONA_ACCDET_MODE_HPL or 1 - Headphone detect mode is set to HPDETL
    ARIZONA_ACCDET_MODE_HPR or 2 - Headphone detect mode is set to HPDETR
    If this node is not mentioned or if the value is unknown, then
    headphone detection mode is set to HPDETL.
+3 −12
Original line number Diff line number Diff line
@@ -44,7 +44,6 @@ Required properties:
Optional properties:

  - wlf,reset : GPIO specifier for the GPIO controlling /RESET
  - wlf,ldoena : GPIO specifier for the GPIO controlling LDOENA

  - wlf,gpio-defaults : A list of GPIO configuration register values. Defines
    for the appropriate values can found in <dt-bindings/mfd/arizona.txt>. If
@@ -67,21 +66,13 @@ Optional properties:
    present, the number of values should be less than or equal to the
    number of inputs, unspecified inputs will use the chip default.

  - wlf,hpdet-channel : Headphone detection channel.
    ARIZONA_ACCDET_MODE_HPL or 1 - Headphone detect mode is set to HPDETL
    ARIZONA_ACCDET_MODE_HPR or 2 - Headphone detect mode is set to HPDETR
    If this node is not mentioned or if the value is unknown, then
    headphone detection mode is set to HPDETL.

  - DCVDD-supply, MICVDD-supply : Power supplies, only need to be specified if
    they are being externally supplied. As covered in
    Documentation/devicetree/bindings/regulator/regulator.txt

Optional subnodes:
  - ldo1 : Initial data for the LDO1 regulator, as covered in
    Documentation/devicetree/bindings/regulator/regulator.txt
  - micvdd : Initial data for the MICVDD regulator, as covered in
    Documentation/devicetree/bindings/regulator/regulator.txt
Also see child specific device properties:
  Regulator - ../regulator/arizona-regulator.txt
  Extcon    - ../extcon/extcon-arizona.txt

Example:

+63 −0
Original line number Diff line number Diff line
* Device tree bindings for Atmel Flexcom (Flexible Serial Communication Unit)

The Atmel Flexcom is just a wrapper which embeds a SPI controller, an I2C
controller and an USART. Only one function can be used at a time and is chosen
at boot time according to the device tree.

Required properties:
- compatible:		Should be "atmel,sama5d2-flexcom"
- reg:			Should be the offset/length value for Flexcom dedicated
			I/O registers (without USART, TWI or SPI registers).
- clocks:		Should be the Flexcom peripheral clock from PMC.
- #address-cells:	Should be <1>
- #size-cells:		Should be <1>
- ranges:		Should be one range for the full I/O register region
			(including USART, TWI and SPI registers).
- atmel,flexcom-mode:	Should be one of the following values:
			- <1> for USART
			- <2> for SPI
			- <3> for I2C

Required child:
A single available child device of type matching the "atmel,flexcom-mode"
property.

The phandle provided by the clocks property of the child is the same as one for
the Flexcom parent.

For other properties, please refer to the documentations of the respective
device:
- ../serial/atmel-usart.txt
- ../spi/spi_atmel.txt
- ../i2c/i2c-at91.txt

Example:

flexcom@f8034000 {
	compatible = "atmel,sama5d2-flexcom";
	reg = <0xf8034000 0x200>;
	clocks = <&flx0_clk>;
	#address-cells = <1>;
	#size-cells = <1>;
	ranges = <0x0 0xf8034000 0x800>;
	atmel,flexcom-mode = <2>;

	spi@400 {
		compatible = "atmel,at91rm9200-spi";
		reg = <0x400 0x200>;
		interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_flx0_default>;
		#address-cells = <1>;
		#size-cells = <0>;
		clocks = <&flx0_clk>;
		clock-names = "spi_clk";
		atmel,fifo-size = <32>;

		mtd_dataflash@0 {
			compatible = "atmel,at25f512b";
			reg = <0>;
			spi-max-frequency = <20000000>;
		};
	};
};
+4 −0
Original line number Diff line number Diff line
@@ -34,6 +34,10 @@ Required properties (LPC):
- compatible: "google,cros-ec-lpc"
- reg: List of (IO address, size) pairs defining the interface uses

Optional properties (all):
- google,has-vbc-nvram: Some implementations of the EC include a small
  nvram space used to store verified boot context data. This boolean flag
  is used to specify whether this nvram is present or not.

Example for I2C:

Loading