Commit 37323918 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MFD updates from Lee Jones:
 "Core Frameworks:
   - Add support for a "resource managed strongly uncachable ioremap"
     call
   - Provide a collection of MFD helper macros
   - Remove mfd_clone_cell() from MFD core
   - Add NULL de-reference protection in MFD core
   - Remove superfluous function fd_platform_add_cell() from MFD core
   - Honour Device Tree's request to disable a device

  New Drivers:
   - Add support for MediaTek MT6323 PMIC

  New Device Support:
   - Add support for Gemini Lake to Intel LPSS PCI
   - Add support for Cherry Trail Crystal Cover PMIC to Intel SoC PMIC
     CRC
   - Add support for PM{I}8950 to Qualcomm SPMI PMIC
   - Add support for U8420 to ST-Ericsson DB8500
   - Add support for Comet Lake PCH-H to Intel LPSS PCI

  New Functionality:
   - Add support for requested supply clocks; madera-core

  Fix-ups:
   - Lower interrupt priority; rk808
   - Use provided helpers (macros, group functions, defines); rk808,
     ipaq-micro, ab8500-core, db8500-prcmu, mt6397-core, cs5535-mfd
   - Only allocate IRQs on request; max77620
   - Use simplified API; arizona-core
   - Remove redundant and/or duplicated code; wm8998-tables, arizona,
     syscon
   - Device Tree binding fix-ups; madera, max77650, max77693
   - Remove mfd_cell->id abuse hack; cs5535-mfd
   - Remove only user of mfd_clone_cell(); cs5535-mfd
   - Make resources static; rohm-bd70528

  Bug Fixes:
   - Fix product ID for RK818; rk808
   - Fix Power Key; rk808
   - Fix booting on the BananaPi; mt6397-core
   - Endian fix-ups; twl.h
   - Fix static error checker warnings; ti_am335x_tscadc"

* tag 'mfd-next-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (47 commits)
  Revert "mfd: syscon: Set name of regmap_config"
  mfd: ti_am335x_tscadc: Fix static checker warning
  mfd: bd70528: Staticize bit value definitions
  mfd: mfd-core: Honour Device Tree's request to disable a child-device
  dt-bindings: mfd: max77693: Fix missing curly brace
  mfd: intel-lpss: Add Intel Comet Lake PCH-H PCI IDs
  mfd: db8500-prcmu: Support U8420-sysclk firmware
  dt-bindings: mfd: max77650: Convert the binding document to yaml
  mfd: mfd-core: Move pdev->mfd_cell creation back into mfd_add_device()
  mfd: mfd-core: Remove usage counting for .{en,dis}able() call-backs
  x86: olpc-xo1-sci: Remove invocation of MFD's .enable()/.disable() call-backs
  x86: olpc-xo1-pm: Remove invocation of MFD's .enable()/.disable() call-backs
  mfd: mfd-core: Remove mfd_clone_cell()
  mfd: mfd-core: Protect against NULL call-back function pointer
  mfd: cs5535-mfd: Register clients using their own dedicated MFD cell entries
  mfd: cs5535-mfd: Request shared IO regions centrally
  mfd: cs5535-mfd: Remove mfd_cell->id hack
  mfd: cs5535-mfd: Use PLATFORM_DEVID_* defines and tidy error message
  mfd: intel_soc_pmic_crc: Add "cht_crystal_cove_pmic" cell to CHT cells
  mfd: madera: Add support for requesting the supply clocks
  ...
parents 38edc3df edfaeaf7
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -67,6 +67,14 @@ Optional properties:
    As defined in bindings/gpio.txt.
    Although optional, it is strongly recommended to use a hardware reset

  - clocks: Should reference the clocks supplied on MCLK1, MCLK2 and MCLK3
  - clock-names: May contain up to three strings:
      "mclk1" for the clock supplied on MCLK1, recommended to be a high
      quality audio reference clock
      "mclk2" for the clock supplied on MCLK2, required to be an always on
      32k clock
      "mclk3" for the clock supplied on MCLK3

  - MICBIASx : Initial data for the MICBIAS regulators, as covered in
    Documentation/devicetree/bindings/regulator/regulator.txt.
    One for each MICBIAS generator (MICBIAS1, MICBIAS2, ...)
+0 −46
Original line number Diff line number Diff line
MAX77650 ultra low-power PMIC from Maxim Integrated.

Required properties:
-------------------
- compatible:		Must be "maxim,max77650"
- reg:			I2C device address.
- interrupts:		The interrupt on the parent the controller is
			connected to.
- interrupt-controller: Marks the device node as an interrupt controller.
- #interrupt-cells:	Must be <2>.

- gpio-controller:	Marks the device node as a gpio controller.
- #gpio-cells:		Must be <2>. The first cell is the pin number and
			the second cell is used to specify the gpio active
			state.

Optional properties:
--------------------
gpio-line-names:	Single string containing the name of the GPIO line.

The GPIO-controller module is represented as part of the top-level PMIC
node. The device exposes a single GPIO line.

For device-tree bindings of other sub-modules (regulator, power supply,
LEDs and onkey) refer to the binding documents under the respective
sub-system directories.

For more details on GPIO bindings, please refer to the generic GPIO DT
binding document <devicetree/bindings/gpio/gpio.txt>.

Example:
--------

	pmic@48 {
		compatible = "maxim,max77650";
		reg = <0x48>;

		interrupt-controller;
		interrupt-parent = <&gpio2>;
		#interrupt-cells = <2>;
		interrupts = <3 IRQ_TYPE_LEVEL_LOW>;

		gpio-controller;
		#gpio-cells = <2>;
		gpio-line-names = "max77650-charger";
	};
+149 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/max77650.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MAX77650 ultra low-power PMIC from Maxim Integrated.

maintainers:
  - Bartosz Golaszewski <bgolaszewski@baylibre.com>

description: |
  MAX77650 is an ultra-low power PMIC providing battery charging and power
  supply for low-power IoT and wearable applications.

  The GPIO-controller module is represented as part of the top-level PMIC
  node. The device exposes a single GPIO line.

  For device-tree bindings of other sub-modules (regulator, power supply,
  LEDs and onkey) refer to the binding documents under the respective
  sub-system directories.

properties:
  compatible:
    const: maxim,max77650

  reg:
    description:
      I2C device address.
    maxItems: 1

  interrupts:
    maxItems: 1

  interrupt-controller: true

  "#interrupt-cells":
    const: 2
    description:
      The first cell is the IRQ number, the second cell is the trigger type.

  gpio-controller: true

  "#gpio-cells":
    const: 2
    description:
      The first cell is the pin number and the second cell is used to specify
      the gpio active state.

  gpio-line-names:
    maxItems: 1
    description:
      Single string containing the name of the GPIO line.

  regulators:
    $ref: ../regulator/max77650-regulator.yaml

  charger:
    $ref: ../power/supply/max77650-charger.yaml

  leds:
    $ref: ../leds/leds-max77650.yaml

  onkey:
    $ref: ../input/max77650-onkey.yaml

required:
  - compatible
  - reg
  - interrupts
  - interrupt-controller
  - "#interrupt-cells"
  - gpio-controller
  - "#gpio-cells"

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/input/linux-event-codes.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        pmic@48 {
            compatible = "maxim,max77650";
            reg = <0x48>;

            interrupt-controller;
            interrupt-parent = <&gpio2>;
            #interrupt-cells = <2>;
            interrupts = <3 IRQ_TYPE_LEVEL_LOW>;

            gpio-controller;
            #gpio-cells = <2>;
            gpio-line-names = "max77650-charger";

            regulators {
                compatible = "maxim,max77650-regulator";

                max77650_ldo: regulator@0 {
                    regulator-compatible = "ldo";
                    regulator-name = "max77650-ldo";
                    regulator-min-microvolt = <1350000>;
                    regulator-max-microvolt = <2937500>;
                };

                max77650_sbb0: regulator@1 {
                    regulator-compatible = "sbb0";
                    regulator-name = "max77650-sbb0";
                    regulator-min-microvolt = <800000>;
                    regulator-max-microvolt = <1587500>;
                };
            };

            charger {
                compatible = "maxim,max77650-charger";
                input-voltage-min-microvolt = <4200000>;
                input-current-limit-microamp = <285000>;
            };

            leds {
                compatible = "maxim,max77650-led";
                #address-cells = <1>;
                #size-cells = <0>;

                led@0 {
                    reg = <0>;
                    label = "blue:usr0";
                };

                led@1 {
                    reg = <1>;
                    label = "red:usr1";
                    linux,default-trigger = "heartbeat";
                };

                led@2 {
                    reg = <2>;
                    label = "green:usr2";
                };
            };

            onkey {
                compatible = "maxim,max77650-onkey";
                linux,code = <KEY_END>;
                maxim,onkey-slide;
            };
        };
    };
+1 −0
Original line number Diff line number Diff line
@@ -175,6 +175,7 @@ Example:
			maxim,thermal-regulation-celsius = <75>;
			maxim,battery-overcurrent-microamp = <3000000>;
			maxim,charge-input-threshold-microvolt = <4300000>;
		};

		led {
			compatible = "maxim,max77693-led";
+2 −0
Original line number Diff line number Diff line
@@ -29,6 +29,8 @@ Required properties:
                   "qcom,pm8916",
                   "qcom,pm8004",
                   "qcom,pm8909",
                   "qcom,pm8950",
                   "qcom,pmi8950",
                   "qcom,pm8998",
                   "qcom,pmi8998",
                   "qcom,pm8005",
Loading