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 Original line Diff line number Diff line
@@ -22,6 +22,7 @@ properties:
patternProperties:
patternProperties:
  "^.*_(clk|rst)$":
  "^.*_(clk|rst)$":
    type: object
    type: object
    unevaluatedProperties: false


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


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


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


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

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

      - if:
      - if:
          properties:
          properties:
            compatible:
            compatible:
+110 −0
Original line number Original line 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 Original line 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 Original line Diff line number Diff line
@@ -144,6 +144,7 @@ properties:
      CODECs digital core if not being provided by an internal regulator.
      CODECs digital core if not being provided by an internal regulator.
    type: object
    type: object
    $ref: /schemas/regulator/regulator.yaml#
    $ref: /schemas/regulator/regulator.yaml#
    unevaluatedProperties: false
    properties:
    properties:
      compatible:
      compatible:
        enum:
        enum:
@@ -161,6 +162,7 @@ properties:
      CODECs MICVDD.
      CODECs MICVDD.
    type: object
    type: object
    $ref: /schemas/regulator/regulator.yaml#
    $ref: /schemas/regulator/regulator.yaml#
    unevaluatedProperties: false
    properties:
    properties:
      compatible:
      compatible:
        enum:
        enum:
@@ -177,6 +179,7 @@ properties:
      Initialisation data for the MIC1VDD supplies.
      Initialisation data for the MIC1VDD supplies.
    type: object
    type: object
    $ref: /schemas/regulator/regulator.yaml#
    $ref: /schemas/regulator/regulator.yaml#
    unevaluatedProperties: false
    properties:
    properties:
      compatible:
      compatible:
        enum:
        enum:
@@ -202,6 +205,7 @@ properties:
      Initialisation data for the MIC2VDD supplies.
      Initialisation data for the MIC2VDD supplies.
    type: object
    type: object
    $ref: /schemas/regulator/regulator.yaml#
    $ref: /schemas/regulator/regulator.yaml#
    unevaluatedProperties: false
    properties:
    properties:
      compatible:
      compatible:
        enum:
        enum:
@@ -228,6 +232,7 @@ properties:
      the CODECs analog and 1.8V digital supplies.
      the CODECs analog and 1.8V digital supplies.
    type: object
    type: object
    $ref: /schemas/regulator/regulator.yaml#
    $ref: /schemas/regulator/regulator.yaml#
    unevaluatedProperties: false
    properties:
    properties:
      compatible:
      compatible:
        enum:
        enum:
Loading