Commit 86406a9e authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MFD updates from Lee Jones:
 "Core Frameworks:
   - Add support for registering devices via MFD cells to Simple MFD (I2C)

  New Drivers:
   - Add support for Renesas Synchronization Management Unit (SMU)

  New Device Support:
   - Add support for N5010 to Intel M10 BMC
   - Add support for Cannon Lake to Intel LPSS ACPI
   - Add support for Samsung SSG{1,2} to ST-Ericsson's U8500 family
   - Add support for TQMx110EB and TQMxE40x to TQ-Systems PLD TQMx86

  New Functionality:
   - Add support for GPIO to Intel LPC ICH
   - Add support for Reset to Texas Instruments TPS65086

  Fix-ups:
   - Trivial, sorting, whitespace, renaming, etc; mt6360-core, db8500-prcmu-regs, tqmx86
   - Device Tree fiddling; syscon, axp20x, qcom,pm8008, ti,tps65086, brcm,cru
   - Use proper APIs for IRQ map resolution; ab8500-core, stmpe, tc3589x, wm8994-irq
   - Pass 'supplied-from' property through axp288_fuel_gauge via swnode
   - Remove unused file entry; MAINTAINERS
   - Make interrupt line optional; tps65086
   - Rename db8500-cpuidle driver symbol; db8500-prcmu
   - Remove support for unused hardware; tqmx86
   - Provide a standard LPC clock frequency for unknown boards; tqmx86
   - Remove unused code; ti_am335x_tscadc
   - Use of_iomap() instead of ioremap(); syscon

  Bug Fixes:
   - Clear GPIO IRQ resource flags when no IRQ is set; tqmx86
   - Fix incorrect/misleading frequencies; db8500-prcmu
   - Mitigate namespace clash with other GPIOBASE users"

* tag 'mfd-next-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (31 commits)
  mfd: lpc_sch: Rename GPIOBASE to prevent build error
  mfd: syscon: Use of_iomap() instead of ioremap()
  dt-bindings: mfd: Add Broadcom CRU
  mfd: ti_am335x_tscadc: Delete superfluous error message
  mfd: tqmx86: Assume 24MHz LPC clock for unknown boards
  mfd: tqmx86: Add support for TQ-Systems DMI IDs
  mfd: tqmx86: Add support for TQMx110EB and TQMxE40x
  mfd: tqmx86: Fix typo in "platform"
  mfd: tqmx86: Remove incorrect TQMx90UC board ID
  mfd: tqmx86: Clear GPIO IRQ resource when no IRQ is set
  mfd: simple-mfd-i2c: Add support for registering devices via MFD cells
  mfd/cpuidle: ux500: Rename driver symbol
  mfd: tps65086: Add cell entry for reset driver
  mfd: tps65086: Make interrupt line optional
  dt-bindings: mfd: Convert tps65086.txt to YAML
  MAINTAINERS: Adjust ARM/NOMADIK/Ux500 ARCHITECTURES to file renaming
  mfd: db8500-prcmu: Handle missing FW variant
  mfd: db8500-prcmu: Rename register header
  mfd: axp20x: Add supplied-from property to axp288_fuel_gauge cell
  mfd: Don't use irq_create_mapping() to resolve a mapping
  ...
parents 5e6a5845 cdff1eda
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -26,10 +26,10 @@ Required properties:
    * "x-powers,axp803"
    * "x-powers,axp806"
    * "x-powers,axp805", "x-powers,axp806"
    * "x-powers,axp305", "x-powers,axp805", "x-powers,axp806"
    * "x-powers,axp809"
    * "x-powers,axp813"
- reg: The I2C slave address or RSB hardware address for the AXP chip
- interrupts: SoC NMI / GPIO interrupt connected to the PMIC's IRQ pin
- interrupt-controller: The PMIC has its own internal IRQs
- #interrupt-cells: Should be set to 1

@@ -43,6 +43,7 @@ more information:
			AXP20x/LDO3: software-based implementation

Optional properties:
- interrupts: SoC NMI / GPIO interrupt connected to the PMIC's IRQ pin
- x-powers,dcdc-freq: defines the work frequency of DC-DC in KHz
		      AXP152/20X: range:  750-1875, Default: 1.5 MHz
		      AXP22X/8XX: range: 1800-4050, Default: 3   MHz
+86 −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,cru.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom CRU

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

description: |
  Broadcom CRU ("Clock and Reset Unit" or "Central Resource Unit") is a hardware
  block grouping smaller blocks. On Broadcom Northstar platform it contains e.g.
  clocks, pinctrl, USB PHY and thermal.

properties:
  compatible:
    items:
      - enum:
          - brcm,ns-cru
      - const: simple-mfd

  reg:
    description: CRU registers

  ranges: true

  "#address-cells":
    const: 1

  "#size-cells":
    const: 1

  pinctrl:
    $ref: ../pinctrl/brcm,ns-pinmux.yaml

patternProperties:
  '^clock-controller@[a-f0-9]+$':
    $ref: ../clock/brcm,iproc-clocks.yaml

  '^thermal@[a-f0-9]+$':
    $ref: ../thermal/brcm,ns-thermal.yaml

additionalProperties: false

required:
  - reg

examples:
  - |
    cru-bus@1800c100 {
        compatible = "brcm,ns-cru", "simple-mfd";
        reg = <0x1800c100 0x1d0>;
        ranges;
        #address-cells = <1>;
        #size-cells = <1>;

        clock-controller@100 {
            #clock-cells = <1>;
            compatible = "brcm,nsp-lcpll0";
            reg = <0x100 0x14>;
            clocks = <&osc>;
            clock-output-names = "lcpll0", "pcie_phy", "sdio", "ddr_phy";
        };

        clock-controller@140 {
            #clock-cells = <1>;
            compatible = "brcm,nsp-genpll";
            reg = <0x140 0x24>;
            clocks = <&osc>;
            clock-output-names = "genpll", "phy", "ethernetclk", "usbclk",
                                 "iprocfast", "sata1", "sata2";
        };

        pinctrl {
            compatible = "brcm,bcm4708-pinmux";
            offset = <0x1c0>;
        };

        thermal@2c0 {
            compatible = "brcm,ns-thermal";
            reg = <0x2c0 0x10>;
            #thermal-sensor-cells = <0>;
        };
    };
+10 −3
Original line number Diff line number Diff line
@@ -53,7 +53,9 @@ patternProperties:

    properties:
      compatible:
        const: qcom,pm8008-gpio
        items:
          - const: qcom,pm8008-gpio
          - const: qcom,spmi-gpio

      reg:
        description: Peripheral address of one of the two GPIO peripherals.
@@ -61,6 +63,9 @@ patternProperties:

      gpio-controller: true

      gpio-ranges:
        maxItems: 1

      interrupt-controller: true

      "#interrupt-cells":
@@ -75,6 +80,7 @@ patternProperties:
      - gpio-controller
      - interrupt-controller
      - "#gpio-cells"
      - gpio-ranges
      - "#interrupt-cells"

    additionalProperties: false
@@ -107,10 +113,11 @@ examples:
        interrupt-parent = <&tlmm>;
        interrupts = <32 IRQ_TYPE_EDGE_RISING>;

        gpio@c000 {
          compatible = "qcom,pm8008-gpio";
        pm8008_gpios: gpio@c000 {
          compatible = "qcom,pm8008-gpio", "qcom,spmi-gpio";
          reg = <0xc000>;
          gpio-controller;
          gpio-ranges = <&pm8008_gpios 0 0 2>;
          #gpio-cells = <2>;
          interrupt-controller;
          #interrupt-cells = <2>;
+3 −0
Original line number Diff line number Diff line
@@ -45,9 +45,12 @@ properties:
              - microchip,sparx5-cpu-syscon
              - mstar,msc313-pmsleep
              - rockchip,px30-qos
              - rockchip,rk3036-qos
              - rockchip,rk3066-qos
              - rockchip,rk3228-qos
              - rockchip,rk3288-qos
              - rockchip,rk3399-qos
              - rockchip,rk3568-qos
              - samsung,exynos3-sysreg
              - samsung,exynos4-sysreg
              - samsung,exynos5-sysreg
+124 −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/ti,tps65086.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: TPS65086 Power Management Integrated Circuit (PMIC)

maintainers:
  - Emil Renner Berthing <kernel@esmil.dk>

properties:
  compatible:
    const: ti,tps65086

  reg:
    const: 0x5e
    description: I2C slave address

  interrupts:
    maxItems: 1

  interrupt-controller: true

  '#interrupt-cells':
    const: 2
    description: |
      The first cell is the IRQ number. The second cell is the flags,
      encoded as trigger masks from ../interrupt-controller/interrupts.txt.

  gpio-controller: true

  '#gpio-cells':
    const: 2
    description: |
      The first cell is the pin number and the second cell is used to specify
      flags.  See ../gpio/gpio.txt for more information.

  regulators:
    type: object
    description: |
      List of child nodes that specify the regulator initialization data.
      Child nodes must be named after their hardware counterparts:
      buck[1-6], ldoa[1-3], swa1, swb[1-2], and vtt.
      Each child node is defined using the standard binding for regulators and
      the optional regulator properties defined below.

    patternProperties:
      "^buck[1-6]$":
        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
          ti,regulator-step-size-25mv:
            type: boolean
            description: |
              Set this if the regulator is factory set with a 25mv step voltage
              mapping.
          ti,regulator-decay:
            type: boolean
            description: |
              Set this if the output needs to decay, default is for the output
              to slew down.

        additionalProperties: false

      "^(ldoa[1-3]|swa1|swb[1-2]|vtt)$":
        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

        additionalProperties: false

additionalProperties: false

required:
  - compatible
  - reg
  - gpio-controller
  - '#gpio-cells'
  - regulators

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

        pmic: pmic@5e {
            compatible = "ti,tps65086";
            reg = <0x5e>;
            interrupt-parent = <&gpio1>;
            interrupts = <28 IRQ_TYPE_LEVEL_LOW>;
            interrupt-controller;
            #interrupt-cells = <2>;
            gpio-controller;
            #gpio-cells = <2>;

            regulators {
                buck1 {
                    regulator-name = "vcc1";
                    regulator-min-microvolt = <1600000>;
                    regulator-max-microvolt = <1600000>;
                    regulator-boot-on;
                    ti,regulator-decay;
                    ti,regulator-step-size-25mv;
                };
            };
        };
    };

...
Loading