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

Commit 883cad5b authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MFD updates from Lee Jones:
 "New Device Support:
   - Add support for AXP813 ADC to AXP20x
   - Add support for PM8005, PM8998 and PMI8998

  New Functionality:
   - Add support for Battery Power Supply to AXP813
   - Add support for SYSCON to SPARD SC27XX SPI
   - Add support for RTC to ChromeOS Embedded-Controller

  Fix-ups:
   - Remove unused code; exynos{4,5}-pmu, cros_ec, cros_ec_acpi_gpe
   - Remove duplicate error messages (-ENOMEM, etc); htc-i2cpld,
        janz-cmodio, max8997, rc5t583, sm501, smsc-ece1099, abx500-core,
        si476x-i2c, ti_am335x_tscadc, tps65090, tps6586x, tps65910,
        tps80031, twl6030-irq, viperboard
   - Succinctly use ptr to struct in sizeof(); rc5t583, abx500-core,
        sm501, smsc-ece1099
   - Simplify syntax for NULL ptr checking; abx500-core, sm501
   - No not unnecessarily initialise variables; tps65910, tps65910
   - Reorganise and simplify driver data; omap-usb-tll
   - Move to SPDX license statement; tps68470
   - Probe ADCs via DT; axp20x
   - Use new GPIOD API; arizona-core
   - Constify things; axp20x
   - Reduce code-size (use MACROS, etc); axp20x, omap-usb-host
   - Add DT support/docs; motorola-cpcap
   - Remove VLAs; rave-sp
   - Use devm_* managed resources; cros_ec
   - Interrogate HW for firmware version; rave-sp
   - Provide ACPI support for ChromeOS Embedded-Controller

  Bug Fixes:
   - Reorder ordered (enum) device list; tps65218
   - Only accept valid data from the offset; rave-sp
   - Refrain from copying junk from failed SPI read; cros_ec_dev
   - Fix potential memory leaks; pcf50633-core
   - Fix clock initialisation; twl-core
   - Fix build-issue; tps65911
   - Fix off-by-one error; tps65911
   - Fix code ordering issues; intel-lpss
   - Fix COMPILE_TEST related issues; pwm-stm32
   - Fix broken MMC card detection; asic3
   - Fix clocking related issues; intel-lpss-pci"

* tag 'mfd-next-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (84 commits)
  mfd: cros_ec: Remove unused __remove function
  mfd: wm97xx-core: Platform data can be NULL
  mfd: cros_ec_dev: Don't advertise junk features on failure
  mfd: cros_ec: Use devm_kzalloc for private data
  mfd: intel-lpss: Fix Intel Cannon Lake LPSS I2C input clock
  mfd: asic3: Fix broken MMC card detection
  mfd: timberdale: Fix spelling mistake "Uknown" -> "Unknown"
  mfd: omap-usb-host: Use match_string() helper
  mfd: stm32-timers: Fix pwm-stm32 linker issue with COMPILE_TEST
  pwm: stm32: Initialize raw local variables
  mfd: arizona: Update DT doc to support more standard Reset binding
  dt-bindings: mfd: Add bindings for DA9063L
  mfd: intel-lpss: Correct names of RESETS register bits
  mfd: qcom-spmi-pmic: Add support for pm8005, pm8998 and pmi8998
  mfd: intel-lpss: Program REMAP register in PIO mode
  mfd: cros_ec_i2c: Moving the system sleep pm ops to late
  mfd: cros_ec_i2c: Add ACPI module device table
  mfd: cros_ec_dev: Register shutdown function for debugfs
  mfd: cros_ec_dev: Register cros-ec-rtc driver as a subdevice
  mfd: cros_ec: Don't try to grab log when suspended
  ...
parents 8d08c055 556c2420
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
MediaTek MT6397/MT6323 PMIC Keys Device Driver

There are two key functions provided by MT6397/MT6323 PMIC, pwrkey
and homekey. The key functions are defined as the subnode of the function
node provided by MT6397/MT6323 PMIC that is being defined as one kind
of Muti-Function Device (MFD)

For MT6397/MT6323 MFD bindings see:
Documentation/devicetree/bindings/mfd/mt6397.txt

Required properties:
- compatible: "mediatek,mt6397-keys" or "mediatek,mt6323-keys"
- linux,keycodes: See Documentation/devicetree/bindings/input/keys.txt

Optional Properties:
- wakeup-source: See Documentation/devicetree/bindings/power/wakeup-source.txt
- mediatek,long-press-mode: Long press key shutdown setting, 1 for
	pwrkey only, 2 for pwrkey/homekey together, others for disabled.
- power-off-time-sec: See Documentation/devicetree/bindings/input/keys.txt

Example:

	pmic: mt6397 {
		compatible = "mediatek,mt6397";

		...

		mt6397keys: mt6397keys {
			compatible = "mediatek,mt6397-keys";
			mediatek,long-press-mode = <1>;
			power-off-time-sec = <0>;

			power {
				linux,keycodes = <116>;
				wakeup-source;
			};

			home {
				linux,keycodes = <114>;
			};
		};

	};
+5 −1
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ Required properties:

Optional properties:

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

  - clocks: Should reference the clocks supplied on MCLK1 and MCLK2
  - clock-names: Should contains two strings:
@@ -70,6 +70,10 @@ Optional properties:
    Documentation/devicetree/bindings/regulator/regulator.txt
    (wm5102, wm5110, wm8280, wm8997, wm8998, wm1814)

Deprecated properties:

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

Also see child specific device properties:
  Regulator - ../regulator/arizona-regulator.txt
  Extcon    - ../extcon/extcon-arizona.txt
+17 −15
Original line number Diff line number Diff line
* Dialog DA9063 Power Management Integrated Circuit (PMIC)
* Dialog DA9063/DA9063L Power Management Integrated Circuit (PMIC)

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

@@ -6,14 +6,14 @@ Device Supply Names Description
------                   ------------    -----------
da9063-regulator        :               : LDOs & BUCKs
da9063-onkey            :               : On Key
da9063-rtc              :               : Real-Time Clock
da9063-rtc              :               : Real-Time Clock (DA9063 only)
da9063-watchdog         :               : Watchdog

======

Required properties:

- compatible : Should be "dlg,da9063"
- compatible : Should be "dlg,da9063" or "dlg,da9063l"
- 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
@@ -23,8 +23,8 @@ Required properties:

Sub-nodes:

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

    bcore1    : BUCK CORE1
    bcore2    : BUCK CORE2
@@ -32,16 +32,16 @@ Sub-nodes:
    bmem      : BUCK MEM
    bio       : BUCK IO
    bperi     : BUCK PERI
    ldo1      : LDO_1
    ldo2      : LDO_2
    ldo1      : LDO_1	(DA9063 only)
    ldo2      : LDO_2	(DA9063 only)
    ldo3      : LDO_3
    ldo4      : LDO_4
    ldo5      : LDO_5
    ldo6      : LDO_6
    ldo4      : LDO_4	(DA9063 only)
    ldo5      : LDO_5	(DA9063 only)
    ldo6      : LDO_6	(DA9063 only)
    ldo7      : LDO_7
    ldo8      : LDO_8
    ldo9      : LDO_9
    ldo10     : LDO_10
    ldo10     : LDO_10	(DA9063 only)
    ldo11     : LDO_11

  The component follows the standard regulator framework and the bindings
@@ -49,8 +49,9 @@ Sub-nodes:
  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.
  the DA9063 only. The RTC is not present in DA9063L. There are currently
  no entries in this binding, however compatible = "dlg,da9063-rtc" should
  be added if a node is created.

- onkey : This node defines the OnKey settings for controlling the key
  functionality of the device. The node should contain the compatible property
@@ -65,8 +66,9 @@ Sub-nodes:
    and KEY_SLEEP.

- 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.
  with the DA9063 and DA9063L. There are currently no entries in this
  binding, however compatible = "dlg,da9063-watchdog" should be added
  if a node is created.


Example:
+42 −0
Original line number Diff line number Diff line
@@ -12,6 +12,30 @@ Required properties:
- spi-max-frequency	: Typically set to 3000000
- spi-cs-high		: SPI chip select direction

Optional subnodes:

The sub-functions of CPCAP get their own node with their own compatible values,
which are described in the following files:

- ../power/supply/cpcap-battery.txt
- ../power/supply/cpcap-charger.txt
- ../regulator/cpcap-regulator.txt
- ../phy/phy-cpcap-usb.txt
- ../input/cpcap-pwrbutton.txt
- ../rtc/cpcap-rtc.txt
- ../leds/leds-cpcap.txt
- ../iio/adc/cpcap-adc.txt

The only exception is the audio codec. Instead of a compatible value its
node must be named "audio-codec".

Required properties for the audio-codec subnode:

- #sound-dai-cells = <1>;

The audio-codec provides two DAIs. The first one is connected to the
Stereo HiFi DAC and the second one is connected to the Voice DAC.

Example:

&mcspi1 {
@@ -26,6 +50,24 @@ Example:
		#size-cells = <0>;
		spi-max-frequency = <3000000>;
		spi-cs-high;

		audio-codec {
			#sound-dai-cells = <1>;

			/* HiFi */
			port@0 {
				endpoint {
					remote-endpoint = <&cpu_dai1>;
				};
			};

			/* Voice */
			port@1 {
				endpoint {
					remote-endpoint = <&cpu_dai2>;
				};
			};
		};
	};
};
+6 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ MT6397/MT6323 is a multifunction device with the following sub modules:
- GPIO
- Clock
- LED
- Keys

It is interfaced to host controller using SPI interface by a proprietary hardware
called PMIC wrapper or pwrap. MT6397/MT6323 MFD is a child device of pwrap.
@@ -40,6 +41,11 @@ Optional subnodes:
		- compatible: "mediatek,mt6323-led"
	see Documentation/devicetree/bindings/leds/leds-mt6323.txt

- keys
	Required properties:
		- compatible: "mediatek,mt6397-keys" or "mediatek,mt6323-keys"
	see Documentation/devicetree/bindings/input/mtk-pmic-keys.txt

Example:
	pwrap: pwrap@1000f000 {
		compatible = "mediatek,mt8135-pwrap";
Loading