Commit fa722ecb authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MFD updates from Lee Jones:
 "New Device Support:
   - Add support for Lakefield PCH to Intel LPSS PCI

  Remove Device Support:
   - Remove support for ROHM BD70528 Power Management IC

  New Functionality:
   - Add support for SMBus and I2C mode to Dialog DA9062/61 PMIC
   - Enable I2C4 on Microsoft Surface Go & Go 2

  Fix-ups:
   - Device Tree changes (inc. YAML conversion); maxim,max77686,
     rohm,bd9571mwv, syscon, brcm,twd, google,cros-ec
   - Use __maybe_unused instead of #ifery; atmel-flexcom
   - Allow the Regmap API to handle endianess internally; ntxec
   - Utilise I2C's .resume_noirq call-back; atmel-flexcom
   - Remove unused code; ti_am335x_tscadc
   - Use CPU-id instead of ACPI _HRV to ID variants; intel_soc_pmic_core
   - Allow device to power-off right from .probe(); tps65910
   - Trivial (whitespace, typos, etc); da9063

  Bug Fixes:
   - Fix ordering issues during probe; intel-lpss-acpi
   - Fix correct clock speed; intel-lpss-pci"

* tag 'mfd-next-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (25 commits)
  mfd: google,cros-ec: Fix property name for MediaTek rpmsg
  dt-bindings: mfd: Fix typo "DA9093" -> "DA9063"
  mfd: ntxec: Change return type of ntxec_reg8 from __be16 to u16
  mfd: tps65910: Set PWR_OFF bit during driver probe
  mfd: intel_soc_pmic: Use CPU-id check instead of _HRV check to differentiate variants
  mfd: intel-lpss: Fix I2C4 not being available on the Microsoft Surface Go & Go 2
  dt-bindings: mfd: Add Broadcom's Timer-Watchdog block
  dt-bindings: mfd: Add Freecom system controller
  mfd: Kconfig: Change INTEL_SOC_PMIC_CHTDC_TI to bool
  dt-bindings: mfd: syscon: Add samsung,exynos850-sysreg
  mfd: da9062: Support SMBus and I2C mode
  mfd: intel-lpss-pci: Fix clock speed for 38a8 UART
  mfd: intel-lpss: Fix too early PM enablement in the ACPI ->probe()
  mfd: ti_am335x_tscadc: Drop the CNTRLREG_TSC_8WIRE macro
  mfd: stmpe: Support disabling sub-functions
  mfd: atmel-flexcom: Use .resume_noirq
  mfd: atmel-flexcom: Remove #ifdef CONFIG_PM_SLEEP
  dt-bindings: mfd: bd9571mwv: Convert to json-schema
  mfd: intel-lpss: Add Intel Lakefield PCH PCI IDs
  dt-bindings: mfd: maxim,max77686: Convert to dtschema
  ...
parents 282aa44c e565615c
Loading
Loading
Loading
Loading
+0 −69
Original line number Diff line number Diff line
* ROHM BD9571MWV/BD9574MWF Power Management Integrated Circuit (PMIC) bindings

Required properties:
 - compatible		: Should be "rohm,bd9571mwv" or "rohm,bd9574mwf".
 - reg			: I2C slave address.
 - interrupts		: The interrupt line the device is connected to.
 - interrupt-controller	: Marks the device node as an interrupt controller.
 - #interrupt-cells	: The number of cells to describe an IRQ, should be 2.
			    The first cell is the IRQ number.
			    The second cell is the flags, encoded as trigger
			    masks from ../interrupt-controller/interrupts.txt.
 - gpio-controller      : Marks the device node as a GPIO Controller.
 - #gpio-cells          : Should be two.  The first cell is the pin number and
                            the second cell is used to specify flags.
                            See ../gpio/gpio.txt for more information.
 - regulators:          : List of child nodes that specify the regulator
                            initialization data. Child nodes must be named
                            after their hardware counterparts:
			     - vd09
			     - vd18
			     - vd25
			     - vd33
			     - dvfs
			    Each child node is defined using the standard
			    binding for regulators.

Optional properties:
  - rohm,ddr-backup-power : Value to use for DDR-Backup Power (default 0).
			    This is a bitmask that specifies which DDR power
			    rails need to be kept powered when backup mode is
			    entered, for system suspend:
			      - bit 0: DDR0
			      - bit 1: DDR1
			      - bit 2: DDR0C
			      - bit 3: DDR1C
			    These bits match the KEEPON_DDR* bits in the
			    documentation for the "BKUP Mode Cnt" register.
  - rohm,rstbmode-level: The RSTB signal is configured for level mode, to
			 accommodate a toggle power switch (the RSTBMODE pin is
			 strapped low).
  - rohm,rstbmode-pulse: The RSTB signal is configured for pulse mode, to
			 accommodate a momentary power switch (the RSTBMODE pin
			 is strapped high).
			 The two properties above are mutually exclusive.

Example:

	pmic: pmic@30 {
		compatible = "rohm,bd9571mwv";
		reg = <0x30>;
		interrupt-parent = <&gpio2>;
		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
		interrupt-controller;
		#interrupt-cells = <2>;
		gpio-controller;
		#gpio-cells = <2>;
		rohm,ddr-backup-power = <0xf>;
		rohm,rstbmode-pulse;

		regulators {
			dvfs: dvfs {
				regulator-name = "dvfs";
				regulator-min-microvolt = <750000>;
				regulator-max-microvolt = <1030000>;
				regulator-boot-on;
				regulator-always-on;
			};
		};
	};
+61 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/brcm,twd.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom's Timer-Watchdog (aka TWD)

maintainers:
  - Rafał Miłecki <rafal@milecki.pl>

description: |
  Broadcom has a Timer-Watchdog block used in multiple SoCs (e.g., BCM4908,
  BCM63xx, BCM7038). There are few variants available (they differ slightly in
  registers layout). This block consists of: timers, watchdog and optionally a
  software reset handler.

properties:
  compatible:
    items:
      - enum:
          - brcm,bcm4908-twd
          - brcm,bcm7038-twd
      - const: simple-mfd
      - const: syscon

  reg:
    maxItems: 1

  ranges: true

  "#address-cells":
    const: 1

  "#size-cells":
    const: 1

patternProperties:
  '^watchdog@[a-f0-9]+$':
    $ref: /schemas/watchdog/brcm,bcm7038-wdt.yaml

additionalProperties: false

required:
  - reg

examples:
  - |
    timer-mfd@ff800400 {
        compatible = "brcm,bcm4908-twd", "simple-mfd", "syscon";
        reg = <0xff800400 0x4c>;
        ranges = <0x00000000 0xff800400 0x4c>;

        #address-cells = <1>;
        #size-cells = <1>;

        watchdog@28 {
            compatible = "brcm,bcm7038-wdt";
            reg = <0x28 0x8>;
        };
    };
+1 −1
Original line number Diff line number Diff line
* Dialog DA9063/DA9063L Power Management Integrated Circuit (PMIC)

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

Device                   Supply Names    Description
------                   ------------    -----------
+1 −1
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ properties:
      whether this nvram is present or not.
    type: boolean

  mtk,rpmsg-name:
  mediatek,rpmsg-name:
    description:
      Must be defined if the cros-ec is a rpmsg device for a Mediatek
      ARM Cortex M4 Co-processor. Contains the name pf the rpmsg
+0 −26
Original line number Diff line number Diff line
Maxim MAX77686 multi-function device

MAX77686 is a Multifunction device with PMIC, RTC and Charger on chip. It is
interfaced to host controller using i2c interface. PMIC and Charger submodules
are addressed using same i2c slave address whereas RTC submodule uses
different i2c slave address,presently for which we are statically creating i2c
client while probing.This document describes the binding for mfd device and
PMIC submodule.

Bindings for the built-in 32k clock generator block and
regulators are defined in ../clk/maxim,max77686.txt and
../regulator/max77686.txt respectively.

Required properties:
- compatible : Must be "maxim,max77686";
- reg : Specifies the i2c slave address of PMIC block.
- interrupts : This i2c device has an IRQ line connected to the main SoC.

Example:

	max77686: pmic@9 {
		compatible = "maxim,max77686";
		interrupt-parent = <&wakeup_eint>;
		interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
		reg = <0x09>;
	};
Loading