Commit aae1464f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull regulator updates from Mark Brown:
 "Hardly anything going on in the core this time around with the
  regulator API and pretty quiet on the driver front:

   - An API for comparing regulators, useful for devices that need to
     check if supply voltages exactly match rather than just nominally
     match.

   - Conversion of several DT bindings to YAML format.

   - Conversion of I2C drivers to probe_new().

   - New drivers for Monolithic MPQ7920 and MP8859, and Rohm BD71828"

* tag 'regulator-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (34 commits)
  dt-bindings: regulator: add document bindings for mpq7920
  regulator: core: Fix exported symbols to the exported GPL version
  regulator: mpq7920: Fix incorrect defines
  regulator: vqmmc-ipq4019: Fix platform_no_drv_owner.cocci warnings
  regulator: vctrl-regulator: Avoid deadlock getting and setting the voltage
  regulator fix for "regulator: core: Add regulator_is_equal() helper"
  regulator: core: Add regulator_is_equal() helper
  regulator: mpq7920: Convert to use .probe_new
  regulator: mpq7920: Remove unneeded fields from struct mpq7920_regulator_info
  regulator: vqmmc-ipq4019: Trivial clean up
  regulator: vqmmc-ipq4019: Remove ipq4019_regulator_remove
  regulator: bindings: Drop document bindings for mpq7920
  dt-bindings: Drop entry for Monolithic Power System, MPS
  regulator: bd718x7: Simplify the code by removing struct bd718xx_pmic_inits
  regulator: add IPQ4019 SDHCI VQMMC LDO driver
  regulator: Convert i2c drivers to use .probe_new
  regulator: mpq7920: Check the correct variable in mpq7920_regulator_register()
  regulator: mpq7920: Fix Woverflow warning on conversion
  regulator: mp8859: tidy up white space in probe
  regulator: mpq7920: add mpq7920 regulator driver
  ...
parents 1e1ab4ba e4e4c2ff
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
Monolithic Power Systems MP8859 voltage regulator

Required properties:
- compatible: "mps,mp8859";
- reg: I2C slave address.

Optional subnode for regulator: "mp8859_dcdc", using common regulator
bindings given in <Documentation/devicetree/bindings/regulator/regulator.txt>.

Example:

	mp8859: regulator@66 {
		compatible = "mps,mp8859";
		reg = <0x66>;
		dc_12v: mp8859_dcdc {
			regulator-name = "dc_12v";
			regulator-min-microvolt = <12000000>;
			regulator-max-microvolt = <12000000>;
			regulator-boot-on;
			regulator-always-on;
		};
	};
+121 −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/regulator/mps,mpq7920.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Monolithic Power System MPQ7920 PMIC

maintainers:
  - Saravanan Sekar <sravanhome@gmail.com>

properties:
  $nodename:
    pattern: "pmic@[0-9a-f]{1,2}"
  compatible:
    enum:
      - mps,mpq7920

  reg:
    maxItems: 1

  regulators:
    type: object
    allOf:
      - $ref: regulator.yaml#
    description: |
      list of regulators provided by this controller, must be named
      after their hardware counterparts BUCK[1-4], one LDORTC, and LDO[2-5]

    properties:
      mps,switch-freq:
        allOf:
          - $ref: "/schemas/types.yaml#/definitions/uint8"
        enum: [ 0, 1, 2, 3 ]
        default: 2
        description: |
          switching frequency must be one of following corresponding value
          1.1MHz, 1.65MHz, 2.2MHz, 2.75MHz

    patternProperties:
      "^ldo[1-4]$":
        type: object
        allOf:
          - $ref: regulator.yaml#

      "^ldortc$":
        type: object
        allOf:
          - $ref: regulator.yaml#

      "^buck[1-4]$":
        type: object
        allOf:
          - $ref: regulator.yaml#

        properties:
          mps,buck-softstart:
            allOf:
              - $ref: "/schemas/types.yaml#/definitions/uint8"
            enum: [ 0, 1, 2, 3 ]
            description: |
              defines the soft start time of this buck, must be one of the following
              corresponding values 150us, 300us, 610us, 920us

          mps,buck-phase-delay:
            allOf:
              - $ref: "/schemas/types.yaml#/definitions/uint8"
            enum: [ 0, 1, 2, 3 ]
            description: |
              defines the phase delay of this buck, must be one of the following
              corresponding values 0deg, 90deg, 180deg, 270deg

          mps,buck-ovp-disable:
            type: boolean
            description: |
              disables over voltage protection of this buck

      additionalProperties: false
    additionalProperties: false

required:
  - compatible
  - reg
  - regulators

additionalProperties: false

examples:
  - |
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        pmic@69 {
          compatible = "mps,mpq7920";
          reg = <0x69>;

          regulators {
            mps,switch-freq = /bits/ 8 <1>;

            buck1 {
             regulator-name = "buck1";
             regulator-min-microvolt = <400000>;
             regulator-max-microvolt = <3587500>;
             regulator-min-microamp  = <460000>;
             regulator-max-microamp  = <7600000>;
             regulator-boot-on;
             mps,buck-ovp-disable;
             mps,buck-phase-delay = /bits/ 8 <2>;
             mps,buck-softstart = /bits/ 8 <1>;
            };

            ldo2 {
             regulator-name = "ldo2";
             regulator-min-microvolt = <650000>;
             regulator-max-microvolt = <3587500>;
            };
         };
       };
     };
...
+107 −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/regulator/rohm,bd71828-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: ROHM BD71828 Power Management Integrated Circuit regulators

maintainers:
  - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>

description: |
  This module is part of the ROHM BD71828 MFD device. For more details
  see Documentation/devicetree/bindings/mfd/rohm,bd71828-pmic.yaml.

  The regulator controller is represented as a sub-node of the PMIC node
  on the device tree.

  Regulator nodes should be named to BUCK_<number> and LDO_<number>.
  The valid names for BD71828 regulator nodes are
  BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6, BUCK7
  LDO1, LDO2, LDO3, LDO4, LDO5, LDO6, LDO7

patternProperties:
  "^LDO[1-7]$":
    type: object
    allOf:
      - $ref: regulator.yaml#
    description:
      Properties for single LDO regulator.

    properties:
      regulator-name:
        pattern: "^ldo[1-7]$"
        description:
          should be "ldo1", ..., "ldo7"

  "^BUCK[1-7]$":
    type: object
    allOf:
      - $ref: regulator.yaml#
    description:
      Properties for single BUCK regulator.

    properties:
      regulator-name:
        pattern: "^buck[1-7]$"
        description:
          should be "buck1", ..., "buck7"

      rohm,dvs-run-voltage:
        allOf:
          - $ref: "/schemas/types.yaml#/definitions/uint32"
          - minimum: 0
            maximum: 3300000
        description:
          PMIC default "RUN" state voltage in uV. See below table for
          bucks which support this. 0 means disabled.

      rohm,dvs-idle-voltage:
        allOf:
          - $ref: "/schemas/types.yaml#/definitions/uint32"
          - minimum: 0
            maximum: 3300000
        description:
          PMIC default "IDLE" state voltage in uV. See below table for
          bucks which support this. 0 means disabled.

      rohm,dvs-suspend-voltage:
        allOf:
          - $ref: "/schemas/types.yaml#/definitions/uint32"
          - minimum: 0
            maximum: 3300000
        description:
          PMIC default "SUSPEND" state voltage in uV. See below table for
          bucks which support this. 0 means disabled.

      rohm,dvs-lpsr-voltage:
        allOf:
          - $ref: "/schemas/types.yaml#/definitions/uint32"
          - minimum: 0
            maximum: 3300000
        description:
          PMIC default "LPSR" state voltage in uV. See below table for
          bucks which support this. 0 means disabled.

        # Supported default DVS states:
        #     buck       |    run     |   idle    | suspend  | lpsr
        #--------------------------------------------------------------
        # 1, 2, 6, and 7 | supported  | supported | supported (*)
        #--------------------------------------------------------------
        # 3, 4, and 5    |                    supported (**)
        #--------------------------------------------------------------
        #
        #(*)  LPSR and SUSPEND states use same voltage but both states have own
        #     enable /
        #     disable settings. Voltage 0 can be specified for a state to make
        #     regulator disabled on that state.
        #
        #(**) All states use same voltage but have own enable / disable
        #     settings. Voltage 0 can be specified for a state to make
        #     regulator disabled on that state.

    required:
      - regulator-name
  additionalProperties: false
additionalProperties: false
+0 −18
Original line number Diff line number Diff line
STM32 BOOSTER - Booster for ADC analog input switches

Some STM32 devices embed a 3.3V booster supplied by Vdda, that can be used
to supply ADC analog input switches.

Required properties:
- compatible: Should be one of:
  "st,stm32h7-booster"
  "st,stm32mp1-booster"
- st,syscfg: Phandle to system configuration controller.
- vdda-supply: Phandle to the vdda input analog voltage.

Example:
	booster: regulator-booster {
		compatible = "st,stm32mp1-booster";
		st,syscfg = <&syscfg>;
		vdda-supply = <&vdda>;
	};
+46 −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/regulator/st,stm32-booster.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: STMicroelectronics STM32 booster for ADC analog input switches bindings

maintainers:
  - Fabrice Gasnier <fabrice.gasnier@st.com>

description: |
  Some STM32 devices embed a 3.3V booster supplied by Vdda, that can be used
  to supply ADC analog input switches.

allOf:
  - $ref: "regulator.yaml#"

properties:
  compatible:
    enum:
      - st,stm32h7-booster
      - st,stm32mp1-booster

  st,syscfg:
    allOf:
      - $ref: "/schemas/types.yaml#/definitions/phandle-array"
    description: phandle to system configuration controller.

  vdda-supply:
    description: phandle to the vdda input analog voltage.

required:
  - compatible
  - st,syscfg
  - vdda-supply

examples:
  - |
    regulator-booster {
      compatible = "st,stm32mp1-booster";
      st,syscfg = <&syscfg>;
      vdda-supply = <&vdda>;
    };

...
Loading