Commit ae955959 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MFD updates from Lee Jones:
 "Core Frameworks:
   - Fix 'mfd_of_node_list' OF node entry resource leak

  New Drivers:
   - Add support for Ocelot VSC7512 Networking Chip
   - Add support for MediaTek MT6370 subPMIC
   - Add support for Richtek RT5120 (I2C) PMIC

  New Device Support:
   - Add support for Rockchip RV1126 and RK3588 to Syscon
   - Add support for Rockchip RK817 Battery Charger to RK808
   - Add support for Silergy SY7636a Voltage Regulator to Simple MFD
   - Add support for Qualcomm PMP8074 PMIC to QCOM SPMI
   - Add support for Secure Update to Intel M10 BMC

  New Functionality:
   - Provide SSP type to Intel's LPSS (PCI) SPI driver

  Fix-ups:
   - Remove legacy / unused code; stmpe, intel_soc_pmic_crc, syscon
   - Unify / simplify; intel_soc_pmic_crc
   - Trivial reordering / spelling, etc; Makefile, twl-core
   - Convert to managed resources; intel_soc_pmic_crc
   - Use appropriate APIs; intel_soc_pmic_crc
   - strscpy() conversion; htc-i2cpld, lpc_ich, mfd-core
   - GPIOD conversion; htc-i2cpld, stmpe
   - Add missing header file includes; twl4030-irq
   - DT goodies; stmpe, mediatek,mt6370, x-powers,axp152,
     aspeed,ast2x00-scu, mediatek,mt8195-scpsys, qcom,spmi-pmic, syscon,
     qcom,tcsr, rockchip,rk817, sprd,ums512-glbreg, dlg,da9063

  Bug Fixes:
   - Properly check return values; sm501, htc-i2cpld
   - Repair Two-Wire Bus Mode; da9062-core
   - Fix error handling; intel_soc_pmic_core, fsl-imx25-tsadc, lp8788,
     lp8788-irq"

* tag 'mfd-next-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (60 commits)
  mfd: syscon: Remove repetition of the regmap_get_val_endian()
  mfd: ocelot-spi: Add missing MODULE_DEVICE_TABLE
  power: supply: Add charger driver for Rockchip RK817
  dt-bindings: mfd: mt6370: Fix the indentation in the example
  mfd: da9061: Fix Failed to set Two-Wire Bus Mode.
  mfd: htc-i2cpld: Fix an IS_ERR() vs NULL bug in htcpld_core_probe()
  dt-bindings: mfd: qcom,tcsr: Drop simple-mfd from IPQ6018
  mfd: sm501: Add check for platform_driver_register()
  dt-bindings: mfd: mediatek: Add scpsys compatible for mt8186
  mfd: twl4030: Add missed linux/device.h header
  dt-bindings: mfd: dlg,da9063: Add missing regulator patterns
  dt-bindings: mfd: sprd: Add bindings for ums512 global registers
  mfd: intel_soc_pmic_chtdc_ti: Switch from __maybe_unused to pm_sleep_ptr() etc
  dt-bindings: mfd: syscon: Add rk3588 QoS register compatible
  mfd: stmpe: Switch to using gpiod API
  mfd: qcom-spmi-pmic: Add pm7250b compatible
  dt-bindings: mfd: Add missing (unevaluated|additional)Properties on child nodes
  mfd/omap1: htc-i2cpld: Convert to a pure GPIO driver
  mfd: intel-m10-bmc: Add d5005 bmc secure update driver
  dt-bindings: mfd: syscon: Drop ref from reg-io-width
  ...
parents 79d11de9 72a95859
Loading
Loading
Loading
Loading
+40 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ properties:
patternProperties:
  "^.*_(clk|rst)$":
    type: object
    unevaluatedProperties: false

    properties:
      compatible:
@@ -34,6 +35,45 @@ patternProperties:
          - fixed-factor-clock

    allOf:
      - if:
          properties:
            compatible:
              contains:
                const: fixed-factor-clock

        then:
          $ref: /schemas/clock/fixed-factor-clock.yaml#

      - if:
          properties:
            compatible:
              contains:
                const: allwinner,sun4i-a10-mod0-clk

        then:
          properties:
            "#clock-cells":
              const: 0

            # Already checked in the main schema
            compatible: true

            clocks:
              maxItems: 2

            clock-output-names:
              maxItems: 1

            phandle: true

          required:
            - "#clock-cells"
            - compatible
            - clocks
            - clock-output-names

          additionalProperties: false

      - if:
          properties:
            compatible:
+10 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ properties:
patternProperties:
  "^.*(clk|rst|codec).*$":
    type: object
    unevaluatedProperties: false

    properties:
      compatible:
@@ -36,6 +37,15 @@ patternProperties:
      - compatible

    allOf:
      - if:
          properties:
            compatible:
              contains:
                const: fixed-factor-clock

        then:
          $ref: /schemas/clock/fixed-factor-clock.yaml#

      - if:
          properties:
            compatible:
+110 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/aspeed,ast2x00-scu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Aspeed System Control Unit

description:
  The Aspeed System Control Unit manages the global behaviour of the SoC,
  configuring elements such as clocks, pinmux, and reset.

maintainers:
  - Joel Stanley <joel@jms.id.au>
  - Andrew Jeffery <andrew@aj.id.au>

properties:
  compatible:
    items:
      - enum:
          - aspeed,ast2400-scu
          - aspeed,ast2500-scu
          - aspeed,ast2600-scu
      - const: syscon
      - const: simple-mfd

  reg:
    maxItems: 1

  ranges: true

  '#address-cells':
    const: 1

  '#size-cells':
    const: 1

  '#clock-cells':
    const: 1

  '#reset-cells':
    const: 1

patternProperties:
  '^p2a-control@[0-9a-f]+$':
    description: See Documentation/devicetree/bindings/misc/aspeed-p2a-ctrl.txt
    type: object

  '^pinctrl(@[0-9a-f]+)?$':
    oneOf:
      - $ref: /schemas/pinctrl/aspeed,ast2400-pinctrl.yaml
      - $ref: /schemas/pinctrl/aspeed,ast2500-pinctrl.yaml
      - $ref: /schemas/pinctrl/aspeed,ast2600-pinctrl.yaml

  '^interrupt-controller@[0-9a-f]+$':
    description: See Documentation/devicetree/bindings/interrupt-controller/aspeed,ast2xxx-scu-ic.txt
    type: object

  '^silicon-id@[0-9a-f]+$':
    description: Unique hardware silicon identifiers within the SoC
    type: object
    additionalProperties: false

    properties:
      compatible:
        items:
          - enum:
              - aspeed,ast2400-silicon-id
              - aspeed,ast2500-silicon-id
              - aspeed,ast2600-silicon-id
          - const: aspeed,silicon-id

      reg:
        description:
          The reg should be the unique silicon id register, and not backwards
          compatible one in eg. the 2600.
        minItems: 1
        items:
          - description: silicon id information registers
          - description: unique chip id registers

required:
  - compatible
  - reg
  - ranges
  - '#address-cells'
  - '#size-cells'
  - '#clock-cells'
  - '#reset-cells'

additionalProperties: false

examples:
  - |
    syscon@1e6e2000 {
        compatible = "aspeed,ast2400-scu", "syscon", "simple-mfd";
        reg = <0x1e6e2000 0x1a8>;
        #clock-cells = <1>;
        #reset-cells = <1>;

        #address-cells = <1>;
        #size-cells = <1>;
        ranges = <0x0 0x1e6e2000 0x1000>;

        silicon-id@7c {
            compatible = "aspeed,ast2500-silicon-id", "aspeed,silicon-id";
            reg = <0x7c 0x4>, <0x150 0x8>;
        };
    };
...
+0 −48
Original line number Diff line number Diff line
The Aspeed System Control Unit manages the global behaviour of the SoC,
configuring elements such as clocks, pinmux, and reset.

Required properties:
- compatible:	One of:
		"aspeed,ast2400-scu", "syscon", "simple-mfd"
		"aspeed,ast2500-scu", "syscon", "simple-mfd"

- reg:		contains the offset and length of the SCU memory region
- #clock-cells: should be set to <1> - the system controller is also a
	clock provider
- #reset-cells: should be set to <1> - the system controller is also a
	reset line provider

Example:

syscon: syscon@1e6e2000 {
	compatible = "aspeed,ast2400-scu", "syscon", "simple-mfd";
	reg = <0x1e6e2000 0x1a8>;
	#clock-cells = <1>;
	#reset-cells = <1>;
};

Silicon ID
-----------------

Families have unique hardware silicon identifiers within the SoC.

Required properties:

 - compatible:		"aspeed,silicon-id" or:
			"aspeed,ast2400-silicon-id" or
			"aspeed,ast2500-silicon-id" or
			"aspeed,ast2600-silicon-id"

 - reg:			offset and length of the silicon id information
			optionally, a second offset and length describes the unique chip id

			The reg should be the unique silicon id register, and
			not backwards compatible one in eg. the 2600.

Example:


silicon-id@7c {
        compatible = "aspeed,ast2500-silicon-id", "aspeed,silicon-id";
        reg = <0x7c 0x4 0x150 0x8>;
};
+5 −0
Original line number Diff line number Diff line
@@ -144,6 +144,7 @@ properties:
      CODECs digital core if not being provided by an internal regulator.
    type: object
    $ref: /schemas/regulator/regulator.yaml#
    unevaluatedProperties: false
    properties:
      compatible:
        enum:
@@ -161,6 +162,7 @@ properties:
      CODECs MICVDD.
    type: object
    $ref: /schemas/regulator/regulator.yaml#
    unevaluatedProperties: false
    properties:
      compatible:
        enum:
@@ -177,6 +179,7 @@ properties:
      Initialisation data for the MIC1VDD supplies.
    type: object
    $ref: /schemas/regulator/regulator.yaml#
    unevaluatedProperties: false
    properties:
      compatible:
        enum:
@@ -202,6 +205,7 @@ properties:
      Initialisation data for the MIC2VDD supplies.
    type: object
    $ref: /schemas/regulator/regulator.yaml#
    unevaluatedProperties: false
    properties:
      compatible:
        enum:
@@ -228,6 +232,7 @@ properties:
      the CODECs analog and 1.8V digital supplies.
    type: object
    $ref: /schemas/regulator/regulator.yaml#
    unevaluatedProperties: false
    properties:
      compatible:
        enum:
Loading