Commit fef8dfae authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull regulator updates from Mark Brown:
 "This has been a fairly quiet release for the regulator API, the main
  thing has been the addition of helpers for interrupt handling from
  Matti Vaittinen.

  We do also have support for quite a few new devices.

  Summary:

   - Helpers for trivial interrupt notifications, making it easier for
     drivers to handle error interrupts.

   - Support for Dialog DA914x, Maxim MAX2008x, Qualcomm PM8826,
     PMG1100, and PM8450 and TI TPS68470"

* tag 'regulator-v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (30 commits)
  regulator: Add MAX20086-MAX20089 driver
  dt-bindings: regulators: Add bindings for Maxim MAX20086-MAX20089
  regulator: qcom_smd: Align probe function with rpmh-regulator
  regulator: remove redundant ret variable
  regulator: qcom-labibb: OCP interrupts are not a failure while disabled
  regulator: dt-bindings: samsung,s5m8767: Move fixed string BUCK9 to 'properties'
  regulator: Introduce tps68470-regulator driver
  drivers/regulator: remove redundant ret variable
  regulator: fix bullet lists of regulator_ops comment
  regulator: Fix type of regulator-coupled-max-spread property
  regulator: maxim,max8973: Document interrupts property
  regulator: qcom-rpmh: Add support for PM8450 regulators
  regulator: qcom,rpmh: Add compatible for PM8450
  regulator: da9121: Add DA914x binding info
  regulator: da9121: Remove erroneous compatible from binding
  regulator: da9121: Add DA914x support
  regulator: da9121: Prevent current limit change when enabled
  regulator: qcom-rpmh: Add PMG1110 regulators
  dt-bindings: regulator: Add compatible for pmg1110
  regulator: qcom_spmi: Add pm8226 regulators
  ...
parents 2d7852c3 bfff546a
Loading
Loading
Loading
Loading
+44 −32
Original line number Diff line number Diff line
@@ -17,27 +17,39 @@ description: |
  Dialog Semiconductor DA9130 Single-channel 10A double-phase buck converter
  Dialog Semiconductor DA9131 Double-channel  5A single-phase buck converter
  Dialog Semiconductor DA9132 Double-channel  3A single-phase buck converter

  Current limits

  This is PER PHASE, and the current limit setting in the devices reflect
  that with a maximum 10A limit. Allowing for transients at/near double
  the rated current, this translates across the device range to per
  channel figures as so...

                               | DA9121    DA9122     DA9220    DA9217   DA9140
                               | /DA9130   /DA9131    /DA9132
    -----------------------------------------------------------------------------
    Output current / channel   | 10000000   5000000   3000000   6000000  40000000
    Output current / phase     |  5000000   5000000   3000000   3000000   9500000
    -----------------------------------------------------------------------------
    Min regulator-min-microvolt|   300000    300000    300000    300000    500000
    Max regulator-max-microvolt|  1900000   1900000   1900000   1900000   1000000
    Device hardware default    |  1000000   1000000   1000000   1000000   1000000
    -----------------------------------------------------------------------------
    Min regulator-min-microamp |  7000000   3500000   3500000   7000000  26000000
    Max regulator-max-microamp | 20000000  10000000   6000000  12000000  78000000
    Device hardware default    | 15000000   7500000   5500000  11000000  58000000
  Dialog Semiconductor DA9141 Single-channel 40A   quad-phase buck converter
  Dialog Semiconductor DA9142 Single-channel 20A double-phase buck converter

  Device parameter ranges

  The current limits can be set to at/near double the rated current per channel
  to allow for transient peaks.
  Current limit changes when the output is enabled are not supported, as a
  precaution against undefined behaviour.

  |----------------------------------------------|
  |               | range & reset default value  |
  | Device        |------------------------------|
  |               | microvolt    | microamp      |
  |----------------------------------------------|
  | DA9121/DA9130 | Min:  300000 | Min:  7000000 |
  |               | Max: 1900000 | Max: 20000000 |
  |----------------------------------------------|
  | DA9121/DA9131 | Min:  300000 | Min:  3500000 |
  |               | Max: 1900000 | Max: 10000000 |
  |----------------------------------------------|
  | DA9121/DA9131 | Min:  300000 | Min:  3500000 |
  |               | Max: 1900000 | Max:  6000000 |
  |----------------------------------------------|
  | DA9217        | Min:  300000 | Min:  7000000 |
  |               | Max: 1900000 | Max: 12000000 |
  |----------------------------------------------|
  | DA9141        | Min:  300000 | Min: 26000000 |
  |               | Max: 1300000 | Max: 78000000 |
  |----------------------------------------------|
  | DA9142        | Min:  300000 | Min: 13000000 |
  |               | Max: 1300000 | Max: 39000000 |
  |----------------------------------------------|

properties:
  $nodename:
@@ -51,7 +63,8 @@ properties:
      - dlg,da9130
      - dlg,da9131
      - dlg,da9132
      - dlg,da9140
      - dlg,da9141
      - dlg,da9142

  reg:
    maxItems: 1
@@ -70,26 +83,24 @@ properties:

  regulators:
    type: object
    $ref: regulator.yaml#
    description: |
      This node defines the settings for the BUCK. The content of the
      sub-node is defined by the standard binding for regulators; see regulator.yaml.
      The DA9121 regulator is bound using their names listed below
      buck1 - BUCK1
      buck2 - BUCK2       //DA9122, DA9220, DA9131, DA9132 only
      List of regulators provided by the device

    patternProperties:
      "^buck([1-2])$":
        type: object
        $ref: regulator.yaml#
        description: |
          Properties for a single BUCK regulator

        properties:
          regulator-mode:
            maxItems: 1
            description: Defined in include/dt-bindings/regulator/dlg,da9121-regulator.h
          regulator-name:
            pattern: "^BUCK([1-2])$"
            description: |
              BUCK2 present in DA9122, DA9220, DA9131, DA9132 only

          regulator-initial-mode:
            maxItems: 1
            enum: [ 0, 1, 2, 3 ]
            description: Defined in include/dt-bindings/regulator/dlg,da9121-regulator.h

          enable-gpios:
@@ -98,6 +109,7 @@ properties:

          dlg,ripple-cancel:
            $ref: "/schemas/types.yaml#/definitions/uint32"
            enum: [ 0, 1, 2, 3 ]
            description: |
              Defined in include/dt-bindings/regulator/dlg,da9121-regulator.h
              Only present on multi-channel devices (DA9122, DA9220, DA9131, DA9132)
+106 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/maxim,max20086.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Maxim Integrated MAX20086-MAX20089 Camera Power Protector

maintainers:
  - Laurent Pinchart <laurent.pinchart@ideasonboard.com>

description: |
  The MAX20086-MAX20089 are dual/quad camera power protectors, designed to
  deliver power over coax for radar and camera modules. They support
  software-configurable output switching and monitoring. The output voltage and
  current limit are fixed by the hardware design.

properties:
  compatible:
    enum:
      - maxim,max20086
      - maxim,max20087
      - maxim,max20088
      - maxim,max20089

  reg:
    maxItems: 1

  enable-gpios:
    maxItems: 1
    description: GPIO connected to the EN pin, active high

  in-supply:
    description: Input supply for the camera outputs (IN pin, 3.0V to 15.0V)

  vdd-supply:
    description: Input supply for the device (VDD pin, 3.0V to 5.5V)

  regulators:
    type: object

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

    additionalProperties: false

required:
  - compatible
  - reg
  - in-supply
  - vdd-supply
  - regulators

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - maxim,max20088
              - maxim,max20089
    then:
      properties:
        regulators:
          properties:
            OUT3: false
            OUT4: false

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>

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

        regulator@28 {
            compatible = "maxim,max20087";
            reg = <0x28>;

            in-supply = <&reg_12v0>;
            vdd-supply = <&reg_3v3>;

            enable-gpios = <&gpio 108 GPIO_ACTIVE_HIGH>;

            regulators {
                OUT1 {
                    regulator-name = "VOUT1";
                };
                OUT2 {
                    regulator-name = "VOUT2";
                };
                OUT3 {
                    regulator-name = "VOUT3";
                };
                OUT4 {
                    regulator-name = "VOUT4";
                };
            };
        };
    };
...
+3 −0
Original line number Diff line number Diff line
@@ -86,6 +86,9 @@ properties:
  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

required:
  - compatible
  - reg
+3 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ description: |
      For PM8150L, smps1 - smps8, ldo1 - ldo11, bob, flash, rgb
      For PM8350, smps1 - smps12, ldo1 - ldo10
      For PM8350C, smps1 - smps10, ldo1 - ldo13, bob
      For PM8450, smps1 - smps6, ldo1 - ldo4
      For PM8998, smps1 - smps13, ldo1 - ldo28, lvs1 - lvs2
      For PMI8998, bob
      For PMR735A, smps1 - smps3, ldo1 - ldo7
@@ -62,7 +63,9 @@ properties:
      - qcom,pm8150l-rpmh-regulators
      - qcom,pm8350-rpmh-regulators
      - qcom,pm8350c-rpmh-regulators
      - qcom,pm8450-rpmh-regulators
      - qcom,pm8998-rpmh-regulators
      - qcom,pmg1110-rpmh-regulators
      - qcom,pmi8998-rpmh-regulators
      - qcom,pmm8155au-rpmh-regulators
      - qcom,pmr735a-rpmh-regulators
+1 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ Qualcomm SPMI Regulators
	Definition: must be one of:
			"qcom,pm8004-regulators"
			"qcom,pm8005-regulators"
			"qcom,pm8226-regulators"
			"qcom,pm8841-regulators"
			"qcom,pm8916-regulators"
			"qcom,pm8941-regulators"
Loading