Skip to content

Commit

Permalink
Merge tag 'regulator-v5.6' of git://git.kernel.org/pub/scm/linux/kern…
Browse files Browse the repository at this point in the history
…el/git/broonie/regulator

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
  ...
  • Loading branch information
Linus Torvalds committed Jan 27, 2020
2 parents 1e1ab4b + e4e4c2f commit aae1464
Show file tree
Hide file tree
Showing 38 changed files with 2,014 additions and 156 deletions.
22 changes: 22 additions & 0 deletions Documentation/devicetree/bindings/regulator/mp8859.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
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 changes: 121 additions & 0 deletions Documentation/devicetree/bindings/regulator/mps,mpq7920.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
# 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>;
};
};
};
};
...
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# 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
18 changes: 0 additions & 18 deletions Documentation/devicetree/bindings/regulator/st,stm32-booster.txt

This file was deleted.

46 changes: 46 additions & 0 deletions Documentation/devicetree/bindings/regulator/st,stm32-booster.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# 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>;
};
...
20 changes: 0 additions & 20 deletions Documentation/devicetree/bindings/regulator/st,stm32-vrefbuf.txt

This file was deleted.

52 changes: 52 additions & 0 deletions Documentation/devicetree/bindings/regulator/st,stm32-vrefbuf.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/st,stm32-vrefbuf.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: STMicroelectronics STM32 Voltage reference buffer bindings

description: |
Some STM32 devices embed a voltage reference buffer which can be used as
voltage reference for ADCs, DACs and also as voltage reference for external
components through the dedicated VREF+ pin.
maintainers:
- Fabrice Gasnier <fabrice.gasnier@st.com>

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

properties:
compatible:
const: st,stm32-vrefbuf

reg:
maxItems: 1

clocks:
maxItems: 1

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

required:
- compatible
- reg
- clocks
- vdda-supply

examples:
- |
#include <dt-bindings/clock/stm32mp1-clks.h>
vrefbuf@50025000 {
compatible = "st,stm32-vrefbuf";
reg = <0x50025000 0x8>;
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <2500000>;
clocks = <&rcc VREF>;
vdda-supply = <&vdda>;
};
...

Loading

0 comments on commit aae1464

Please sign in to comment.