Commit 71a5cc28 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MFD updates from Lee Jones:
 "Core Framework:
   - Add support for Software Nodes to MFD Core
   - Remove support for Device Properties from MFD Core
   - Use standard APIs in MFD Core

  New Drivers:
   - Add support for ROHM BD9576MUF and BD9573MUF PMICs
   - Add support for Netronix Embedded Controller, PWM and RTC
   - Add support for Actions Semi ATC260x PMICs and OnKey

  New Device Support:
   - Add support for DG1 PCIe Graphics Card to Intel PMT
   - Add support for ROHM BD71815 PMIC to ROHM BD71828
   - Add support for Tolino Shine 2 HD to Netronix Embedded Controller
   - Add support for AX10 BMC Secure Updates to Intel M10 BMC

  Removed Device Support:
   - Remove Arizona Extcon support from MFD
   - Remove ST-E AB8500 Power Supply code from MFD
   - Remove AB3100 altogether

  New Functionality:
   - Add support for SMBus and I2C modes to Dialog DA9063
   - Switch to using Software Nodes in Intel (various)

  New/converted Device Tree bindings:
   - rohm bd71815-pmic, rohm bd9576-pmic, netronix ntxec, actions
     atc260x, ricoh rn5t618, qcom pm8xxx

- Fix-ups:
   - Fix error handling/path; intel_pmt
   - Simplify code; rohm-bd718x7, ab8500-core, intel-m10-bmc
   - Trivial clean-ups (reordering, spelling); rohm-generic, rn5t618,
     max8997
   - Use correct data-type; db8500-prcmu
   - Remove superfluous code; lp87565, intel_quark_i2c_gpi, lpc_sch, twl
   - Use generic APIs/defines; lm3533-core, intel_quark_i2c_gpio
   - Regmap related fix-ups; intel-m10-bmc, sec-core
   - Reorder resource freeing during remove; intel_quark_i2c_gpio
   - Make table indexing more robust; intel_quark_i2c_gpio
   - Fix reference imbalances; arizona-irq
   - Staticify and (un)constify things; arizona-spi, stmpe, ene-kb3930,
     intel-lpss-acpi, intel-lpss-pci, atc260x-i2c, intel_quark_i2c_gpio

  Bug Fixes:
   - Fix incorrect (register) values; intel-m10-bmc
   - Kconfig related fixes; ABX500_CORE
   - Do not clear the Auto Reload Register; stm32-timers"

* tag 'mfd-next-5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (84 commits)
  mfd: intel-m10-bmc: Add support for MAX10 BMC Secure Updates
  Revert "mfd: max8997: Add of_compatible to Extcon and Charger mfd_cell"
  mfd: twl: Remove unused inline function twl4030charger_usb_en()
  dt-bindings: mfd: Convert pm8xxx bindings to yaml
  dt-bindings: mfd: Add compatible for pmk8350 rtc
  i2c: designware: Get rid of legacy platform data
  mfd: intel_quark_i2c_gpio: Convert I²C to use software nodes
  mfd: lpc_sch: Partially revert "Add support for Intel Quark X1000"
  mfd: arizona: Fix rumtime PM imbalance on error
  mfd: max8997: Replace 8998 with 8997
  mfd: core: Use acpi_find_child_device() for child devices lookup
  mfd: intel_quark_i2c_gpio: Don't play dirty trick with const
  mfd: intel_quark_i2c_gpio: Enable MSI interrupt
  mfd: intel_quark_i2c_gpio: Reuse BAR definitions for MFD cell indexing
  mfd: ntxec: Support for EC in Tolino Shine 2 HD
  mfd: stm32-timers: Avoid clearing auto reload register
  mfd: intel_quark_i2c_gpio: Replace I²C speeds with descriptive definitions
  mfd: intel_quark_i2c_gpio: Remove unused struct device member
  mfd: intel_quark_i2c_gpio: Unregister resources in reversed order
  mfd: Kconfig: ABX500_CORE should depend on ARCH_U8500
  ...
parents be18cd1f f9386c91
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1933,6 +1933,9 @@ N: Kukjin Kim
E: kgene@kernel.org
D: Samsung S3C, S5P and Exynos ARM architectures

N: Milo Kim
D: TI LP855x, LP8727 and LP8788 drivers

N: Sangbeom Kim
E: sbkim73@samsung.com
D: Samsung SoC Audio (ASoC) drivers
+7 −0
Original line number Diff line number Diff line
@@ -33,4 +33,11 @@ properties:
      power off automatically. Device with key pressed shutdown feature can
      specify this property.

  reset-time-sec:
    description:
      Duration in seconds which the key should be kept pressed for device to
      reset automatically. Device with key pressed reset feature can specify
      this property.
    $ref: /schemas/types.yaml#/definitions/uint32

additionalProperties: true
+183 −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/actions,atc260x.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Actions Semi ATC260x Power Management IC bindings

maintainers:
  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
  - Cristian Ciocaltea <cristian.ciocaltea@gmail.com>

description: |
  ATC260x series PMICs integrates Audio Codec, Power Management, RTC, IR
  and GPIO controller blocks. Currently only the PM related functionalities
  (i.e. regulators and system power-off/reboot) for the ATC2603C and ATC2609A
  chip variants are supported.
  ATC2603C includes 3 programmable DC-DC converters, 9 programmable LDO
  regulators and 1 fixed LDO regulator.
  ATC2609A includes 5 programmable DC-DC converters and 10 programmable LDO
  regulators.

allOf:
  - $ref: ../input/input.yaml

properties:
  compatible:
    enum:
      - actions,atc2603c
      - actions,atc2609a

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  reset-time-sec:
    description: |
      Duration in seconds which the key should be kept pressed for device
      to reset automatically. The hardware default is 8. Use 0 to disable
      this functionality.
    enum: [0, 6, 8, 10, 12]

  regulators:
    type: object
    description: |
      List of child nodes specifying the regulators, depending on chip variant:
      * ATC2603C: dcdc[1-3], ldo[1-3,5-8,11,12], switchldo1
      * ATC2609A: dcdc[0-4], ldo[0-9]

    properties:
      compatible:
        enum:
          - actions,atc2603c-regulator
          - actions,atc2609a-regulator

      switchldo1:
        type: object
        $ref: ../regulator/regulator.yaml

        properties:
          regulator-name: true
          regulator-boot-on: true
          regulator-always-on: true
          regulator-min-microvolt: true
          regulator-max-microvolt: true
          regulator-allow-bypass: true
          regulator-active-discharge: true

        additionalProperties: false

    patternProperties:
      "^(dcdc[0-4]|ldo[0-9]|ldo1[1-2]|switchldo1)-supply$":
        description: ATC260x voltage regulators supplies

      "^(dcdc[0-4]|ldo[0-9]|ldo1[1-2])$":
        type: object
        $ref: ../regulator/regulator.yaml

        properties:
          regulator-name: true
          regulator-boot-on: true
          regulator-always-on: true
          regulator-min-microvolt: true
          regulator-max-microvolt: true
          regulator-allow-bypass: true

        additionalProperties: false

    allOf:
      - if:
          properties:
            compatible:
              contains:
                const: actions,atc2603c-regulator
        then:
          patternProperties:
            "^(dcdc[0,4]|ldo[0,4,9])(-supply)?$": false

            "^(ldo|dcdc)":
              properties:
                regulator-allow-bypass: false
      - if:
          properties:
            compatible:
              contains:
                const: actions,atc2609a-regulator
        then:
          patternProperties:
            "^(ldo1[1-2]|switchldo1)(-supply)?$": false

            "^(dcdc|ldo[3-9])":
              properties:
                regulator-allow-bypass: false

    required:
      - compatible

    additionalProperties: false

additionalProperties: false

required:
  - compatible
  - reg
  - interrupts

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    i2c0 {
        #address-cells = <1>;
        #size-cells = <0>;

        pmic@65 {
            compatible = "actions,atc2603c";
            reg = <0x65>;
            interrupt-parent = <&sirq>;
            interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;

            reset-time-sec = <6>;

            regulators {
                compatible = "actions,atc2603c-regulator";

                dcdc1-supply = <&reg_5v0>;
                dcdc3-supply = <&reg_5v0>;
                ldo5-supply = <&reg_5v0>;
                switchldo1-supply = <&vcc>;

                vdd_cpu: dcdc1 {
                    regulator-name = "VDD_CPU";
                    regulator-min-microvolt = <700000>;
                    regulator-max-microvolt = <1400000>;
                    regulator-always-on;
                };

                vcc: dcdc3 {
                    regulator-name = "VCC";
                    regulator-min-microvolt = <2600000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-always-on;
                };

                vcc_3v1: ldo5 {
                    regulator-name = "VCC_3V1";
                    regulator-min-microvolt = <2600000>;
                    regulator-max-microvolt = <3300000>;
                };

                sd_vcc: switchldo1 {
                    regulator-name = "SD_VCC";
                    regulator-min-microvolt = <3000000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-always-on;
                    regulator-boot-on;
                };
            };
        };
    };

...
+76 −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/netronix,ntxec.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Netronix Embedded Controller

maintainers:
  - Jonathan Neuschäfer <j.neuschaefer@gmx.net>

description: |
  This EC is found in e-book readers of multiple brands (e.g. Kobo, Tolino), and
  is typically implemented as a TI MSP430 microcontroller.

properties:
  compatible:
    const: netronix,ntxec

  reg:
    items:
      - description: The I2C address of the EC

  system-power-controller:
    type: boolean
    description: See Documentation/devicetree/bindings/power/power-controller.txt

  interrupts:
    minItems: 1
    description:
      The EC can signal interrupts via a GPIO line

  "#pwm-cells":
    const: 2
    description: |
      Number of cells in a PWM specifier.

      The following PWM channels are supported:
        - 0: The PWM channel controlled by registers 0xa1-0xa7

required:
  - compatible
  - reg

additionalProperties: false

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

            ec: embedded-controller@43 {
                    pinctrl-names = "default";
                    pinctrl-0 = <&pinctrl_ntxec>;

                    compatible = "netronix,ntxec";
                    reg = <0x43>;
                    system-power-controller;
                    interrupt-parent = <&gpio4>;
                    interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
                    #pwm-cells = <2>;
            };
    };

    backlight {
            compatible = "pwm-backlight";
            pwms = <&ec 0 50000>;
            power-supply = <&backlight_regulator>;
    };

    backlight_regulator: regulator-dummy {
            compatible = "regulator-fixed";
            regulator-name = "backlight";
    };
+0 −99
Original line number Diff line number Diff line
Qualcomm PM8xxx PMIC multi-function devices

The PM8xxx family of Power Management ICs are used to provide regulated
voltages and other various functionality to Qualcomm SoCs.

= PROPERTIES

- compatible:
	Usage: required
	Value type: <string>
	Definition: must be one of:
		    "qcom,pm8058"
		    "qcom,pm8821"
		    "qcom,pm8921"

- #address-cells:
	Usage: required
	Value type: <u32>
	Definition: must be 1

- #size-cells:
	Usage: required
	Value type: <u32>
	Definition: must be 0

- interrupts:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: specifies the interrupt that indicates a subdevice
		    has generated an interrupt (summary interrupt). The
		    format of the specifier is defined by the binding document
		    describing the node's interrupt parent.

- #interrupt-cells:
	Usage: required
	Value type : <u32>
	Definition: must be 2. Specifies the number of cells needed to encode
		    an interrupt source. The 1st cell contains the interrupt
		    number. The 2nd cell is the trigger type and level flags
		    encoded as follows:

			1 = low-to-high edge triggered
			2 = high-to-low edge triggered
			4 = active high level-sensitive
			8 = active low level-sensitive

- interrupt-controller:
	Usage: required
	Value type: <empty>
	Definition: identifies this node as an interrupt controller

= SUBCOMPONENTS

The PMIC contains multiple independent functions, each described in a subnode.
The below bindings specify the set of valid subnodes.

== Real-Time Clock

- compatible:
	Usage: required
	Value type: <string>
	Definition: must be one of:
		    "qcom,pm8058-rtc"
		    "qcom,pm8921-rtc"
		    "qcom,pm8941-rtc"
		    "qcom,pm8018-rtc"

- reg:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: single entry specifying the base address of the RTC registers

- interrupts:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: single entry specifying the RTC's alarm interrupt

- allow-set-time:
	Usage: optional
	Value type: <empty>
	Definition: indicates that the setting of RTC time is allowed by
		    the host CPU

= EXAMPLE

	pmicintc: pmic@0 {
		compatible = "qcom,pm8921";
		interrupts = <104 8>;
		#interrupt-cells = <2>;
		interrupt-controller;
		#address-cells = <1>;
		#size-cells = <0>;

		rtc@11d {
			compatible = "qcom,pm8921-rtc";
			reg = <0x11d>;
			interrupts = <0x27 0>;
		};
	};
Loading