Resguardo inicial

This commit is contained in:
lastdragon
2026-09-06 12:53:21 -06:00
parent 662efe3c2a
commit ad2088d178
94853 changed files with 43200404 additions and 0 deletions
@@ -0,0 +1,22 @@
Marvell 88PG867/88PG868 voltage regulators
Required properties:
- compatible: one of "marvell,88pg867", "marvell,88pg868";
- reg: I2C slave address.
Optional subnodes for regulators: "buck1", "buck2", using common regulator
bindings given in <Documentation/devicetree/bindings/regulator/regulator.txt>.
Example:
pg868@19 {
compatible = "marvell,88pg868";
reg = <0x19>;
vcpu: buck1 {
regulator-boot-on;
regulator-always-on;
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1350000>;
};
};
@@ -0,0 +1,38 @@
Marvell 88PM800 regulator
Required properties:
- compatible: "marvell,88pm800"
- reg: I2C slave address
- regulators: A node that houses a sub-node for each regulator within the
device. Each sub-node is identified using the node's name (or the deprecated
regulator-compatible property if present), with valid values listed below.
The content of each sub-node is defined by the standard binding for
regulators; see regulator.txt.
The valid names for regulators are:
buck1, buck2, buck3, buck4, buck5, ldo1, ldo2, ldo3, ldo4, ldo5, ldo6, ldo7,
ldo8, ldo9, ldo10, ldo11, ldo12, ldo13, ldo14, ldo15, ldo16, ldo17, ldo18, ldo19
Example:
pmic: 88pm800@31 {
compatible = "marvell,88pm800";
reg = <0x31>;
regulators {
buck1 {
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <3950000>;
regulator-boot-on;
regulator-always-on;
};
ldo1 {
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <15000000>;
regulator-boot-on;
regulator-always-on;
};
...
};
};
@@ -0,0 +1,30 @@
Marvell 88PM860x regulator
Required properties:
- compatible: "marvell,88pm860x"
- reg: I2C slave address
- regulators: A node that houses a sub-node for each regulator within the
device. Each sub-node is identified using the regulator-compatible
property, with valid values listed below.
Example:
pmic: 88pm860x@34 {
compatible = "marvell,88pm860x";
reg = <0x34>;
regulators {
BUCK1 {
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1500000>;
regulator-boot-on;
regulator-always-on;
};
BUCK3 {
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <3000000>;
regulator-boot-on;
regulator-always-on;
};
};
};
@@ -0,0 +1,139 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/active-semi,act8600.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Active-semi ACT8600 regulator
maintainers:
- Paul Cercueil <paul@crapouillou.net>
properties:
compatible:
const: active-semi,act8600
reg:
maxItems: 1
system-power-controller:
description:
Indicates that the ACT8600 is responsible for powering OFF
the system.
type: boolean
active-semi,vsel-high:
description:
Indicates the VSEL pin is high. If this property is missing,
the VSEL pin is assumed to be low.
type: boolean
regulators:
type: object
additionalProperties: false
properties:
DCDC1:
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
properties:
vp1-supply:
description: Handle to the VP1 input supply
DCDC2:
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
properties:
vp2-supply:
description: Handle to the VP2 input supply
DCDC3:
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
properties:
vp3-supply:
description: Handle to the VP3 input supply
patternProperties:
"^(SUDCDC_REG4|LDO_REG9|LDO_REG10)$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
"^LDO[5-8]$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
properties:
inl-supply:
description: Handle to the INL input supply
additionalProperties: false
required:
- reg
- compatible
- regulators
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@5a {
compatible = "active-semi,act8600";
reg = <0x5a>;
regulators {
SUDCDC_REG4 {
regulator-min-microvolt = <5300000>;
regulator-max-microvolt = <5300000>;
inl-supply = <&vcc>;
};
LDO5 {
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <2500000>;
inl-supply = <&vcc>;
};
LDO6 {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
inl-supply = <&vcc>;
};
LDO7 {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
inl-supply = <&vcc>;
};
LDO8 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
inl-supply = <&vcc>;
};
LDO_REG9 {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
inl-supply = <&vcc>;
};
LDO_REG10 {
inl-supply = <&vcc>;
};
};
};
};
@@ -0,0 +1,167 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/active-semi,act8846.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Active-semi ACT8846 regulator
maintainers:
- Paul Cercueil <paul@crapouillou.net>
properties:
compatible:
const: active-semi,act8846
reg:
maxItems: 1
system-power-controller:
description:
Indicates that the ACT8846 is responsible for powering OFF
the system.
type: boolean
active-semi,vsel-high:
description:
Indicates the VSEL pin is high. If this property is missing,
the VSEL pin is assumed to be low.
type: boolean
inl1-supply:
description: Handle to the INL1 input supply (REG5-7)
inl2-supply:
description: Handle to the INL2 input supply (REG8-9)
inl3-supply:
description: Handle to the INL3 input supply (REG10-12)
vp1-supply:
description: Handle to the VP1 input supply (REG1)
vp2-supply:
description: Handle to the VP2 input supply (REG2)
vp3-supply:
description: Handle to the VP3 input supply (REG3)
vp4-supply:
description: Handle to the VP4 input supply (REG4)
regulators:
type: object
additionalProperties: false
patternProperties:
"^REG([1-9]|1[0-2])$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
additionalProperties: false
required:
- reg
- compatible
- regulators
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@5a {
compatible = "active-semi,act8846";
reg = <0x5a>;
system-power-controller;
regulators {
REG1 {
regulator-name = "VCC_DDR";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
};
REG2 {
regulator-name = "VCC_IO";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
REG3 {
regulator-name = "VDD_LOG";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-always-on;
};
REG4 {
regulator-name = "VCC_20";
regulator-min-microvolt = <2000000>;
regulator-max-microvolt = <2000000>;
regulator-always-on;
};
REG5 {
regulator-name = "VCCIO_SD";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
REG6 {
regulator-name = "VDD10_LCD";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-always-on;
};
REG7 {
regulator-name = "VCC_WL";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
REG8 {
regulator-name = "VCCA_33";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
REG9 {
regulator-name = "VCC_LAN";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
REG10 {
regulator-name = "VDD_10";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-always-on;
};
REG11 {
regulator-name = "VCC_18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
REG12 {
regulator-name = "VCC18_LCD";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
};
};
};
@@ -0,0 +1,158 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/active-semi,act8865.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Active-semi ACT8865 regulator
maintainers:
- Paul Cercueil <paul@crapouillou.net>
properties:
compatible:
const: active-semi,act8865
reg:
maxItems: 1
system-power-controller:
description:
Indicates that the ACT8865 is responsible for powering OFF
the system.
type: boolean
active-semi,vsel-high:
description:
Indicates the VSEL pin is high. If this property is missing,
the VSEL pin is assumed to be low.
type: boolean
regulators:
type: object
additionalProperties: false
properties:
DCDC_REG1:
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
properties:
vp1-supply:
description: Handle to the VP1 input supply
DCDC_REG2:
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
properties:
vp2-supply:
description: Handle to the VP2 input supply
DCDC_REG3:
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
properties:
vp3-supply:
description: Handle to the VP3 input supply
patternProperties:
"^LDO_REG[1-2]$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
properties:
inl45-supply:
description: Handle to the INL45 input supply
"^LDO_REG[3-4]$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
properties:
inl67-supply:
description: Handle to the INL67 input supply
additionalProperties: false
required:
- reg
- compatible
- regulators
examples:
- |
#include <dt-bindings/regulator/active-semi,8865-regulator.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@5b {
compatible = "active-semi,act8865";
reg = <0x5b>;
active-semi,vsel-high;
regulators {
DCDC_REG1 {
regulator-name = "VCC_1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
DCDC_REG2 {
regulator-name = "VCC_1V2";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1300000>;
regulator-always-on;
regulator-allowed-modes = <ACT8865_REGULATOR_MODE_FIXED>,
<ACT8865_REGULATOR_MODE_LOWPOWER>;
regulator-initial-mode = <ACT8865_REGULATOR_MODE_FIXED>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-min-microvolt = <1150000>;
regulator-suspend-max-microvolt = <1150000>;
regulator-changeable-in-suspend;
regulator-mode = <ACT8865_REGULATOR_MODE_LOWPOWER>;
};
};
DCDC_REG3 {
regulator-name = "VCC_3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
LDO_REG1 {
regulator-name = "VDDANA";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
regulator-allowed-modes = <ACT8865_REGULATOR_MODE_NORMAL>,
<ACT8865_REGULATOR_MODE_LOWPOWER>;
regulator-initial-mode = <ACT8865_REGULATOR_MODE_NORMAL>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
LDO_REG2 {
regulator-name = "FUSE_2V5";
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <2500000>;
};
};
};
};
@@ -0,0 +1,271 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/active-semi,act8945a.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Active-semi ACT8945a regulator
maintainers:
- Paul Cercueil <paul@crapouillou.net>
properties:
compatible:
const: active-semi,act8945a
reg:
maxItems: 1
system-power-controller:
description:
Indicates that the ACT8945a is responsible for powering OFF
the system.
type: boolean
active-semi,vsel-high:
description:
Indicates the VSEL pin is high. If this property is missing,
the VSEL pin is assumed to be low.
type: boolean
regulators:
type: object
additionalProperties: false
properties:
REG_DCDC1:
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
properties:
vp1-supply:
description: Handle to the VP1 input supply
REG_DCDC2:
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
properties:
vp2-supply:
description: Handle to the VP2 input supply
REG_DCDC3:
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
properties:
vp3-supply:
description: Handle to the VP3 input supply
patternProperties:
"^REG_LDO[1-2]$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
properties:
inl45-supply:
description: Handle to the INL45 input supply
"^REG_LDO[3-4]$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
properties:
inl67-supply:
description: Handle to the INL67 input supply
charger:
type: object
additionalProperties: false
properties:
compatible:
const: active-semi,act8945a-charger
interrupts:
maxItems: 1
active-semi,chglev-gpios:
description: charge current level GPIO
maxItems: 1
active-semi,lbo-gpios:
description: low battery voltage detect GPIO
maxItems: 1
active-semi,input-voltage-threshold-microvolt:
description:
Specifies the charger's input over-voltage threshold value. Despite
the name, specified values are in millivolt (mV).
enum: [ 6600, 7000, 7500, 8000 ]
default: 6600
active-semi,precondition-timeout:
description:
Specifies the charger's PRECONDITION safety timer setting value in
minutes. If 0, it means to disable this timer.
enum: [ 0, 40, 60, 80 ]
default: 40
$ref: /schemas/types.yaml#/definitions/uint32
active-semi,total-timeout:
description:
Specifies the charger's total safety timer setting value in hours; If
0, it means to disable this timer;
enum: [ 0, 3, 4, 5 ]
default: 3
$ref: /schemas/types.yaml#/definitions/uint32
required:
- compatible
- interrupts
- active-semi,chglev-gpios
- active-semi,lbo-gpios
additionalProperties: false
required:
- reg
- compatible
- regulators
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/mfd/atmel-flexcom.h>
#include <dt-bindings/regulator/active-semi,8945a-regulator.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@5b {
compatible = "active-semi,act8945a";
reg = <0x5b>;
active-semi,vsel-high;
regulators {
REG_DCDC1 {
regulator-name = "VDD_1V35";
regulator-min-microvolt = <1350000>;
regulator-max-microvolt = <1350000>;
regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_FIXED>,
<ACT8945A_REGULATOR_MODE_LOWPOWER>;
regulator-initial-mode = <ACT8945A_REGULATOR_MODE_FIXED>;
regulator-always-on;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-min-microvolt = <1400000>;
regulator-suspend-max-microvolt = <1400000>;
regulator-changeable-in-suspend;
regulator-mode = <ACT8945A_REGULATOR_MODE_LOWPOWER>;
};
};
REG_DCDC2 {
regulator-name = "VDD_1V2";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1300000>;
regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_FIXED>,
<ACT8945A_REGULATOR_MODE_LOWPOWER>;
regulator-initial-mode = <ACT8945A_REGULATOR_MODE_FIXED>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
REG_DCDC3 {
regulator-name = "VDD_3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_FIXED>,
<ACT8945A_REGULATOR_MODE_LOWPOWER>;
regulator-initial-mode = <ACT8945A_REGULATOR_MODE_FIXED>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
REG_LDO1 {
regulator-name = "VDD_FUSE";
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <2500000>;
regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>,
<ACT8945A_REGULATOR_MODE_LOWPOWER>;
regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
REG_LDO2 {
regulator-name = "VDD_3V3_LP";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>,
<ACT8945A_REGULATOR_MODE_LOWPOWER>;
regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
REG_LDO3 {
regulator-name = "VDD_LED";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>,
<ACT8945A_REGULATOR_MODE_LOWPOWER>;
regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
REG_LDO4 {
regulator-name = "VDD_SDHC_1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>,
<ACT8945A_REGULATOR_MODE_LOWPOWER>;
regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>;
regulator-always-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
};
charger {
compatible = "active-semi,act8945a-charger";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_charger_chglev &pinctrl_charger_lbo &pinctrl_charger_irq>;
interrupt-parent = <&pioA>;
interrupts = <45 IRQ_TYPE_EDGE_RISING>;
active-semi,chglev-gpios = <&pioA 12 GPIO_ACTIVE_HIGH>;
active-semi,lbo-gpios = <&pioA 72 GPIO_ACTIVE_LOW>;
active-semi,input-voltage-threshold-microvolt = <6600>;
active-semi,precondition-timeout = <40>;
active-semi,total-timeout = <3>;
};
};
};
@@ -0,0 +1,157 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/adi,adp5055-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices ADP5055 Triple Buck Regulator
maintainers:
- Alexis Czezar Torreno <alexisczezar.torreno@analog.com>
description: |
The ADP5055 combines three high performance buck regulator. The device enables
direct connection to high input voltages up to 18 V with no preregulators.
https://www.analog.com/media/en/technical-documentation/data-sheets/adp5055.pdf
properties:
compatible:
enum:
- adi,adp5055
reg:
enum:
- 0x70
- 0x71
adi,tset-us:
description:
Setting time used by the device. This is changed via soldering specific
resistor values on the CFG2 pin.
enum: [2600, 20800]
default: 2600
adi,ocp-blanking:
description:
If present, overcurrent protection (OCP) blanking for all regulator is on.
type: boolean
adi,delay-power-good:
description:
Configures delay timer of the power good (PWRGD) pin. Delay is based on
Tset which can be 2.6 ms or 20.8 ms.
type: boolean
'#address-cells':
const: 1
'#size-cells':
const: 0
patternProperties:
'^buck[0-2]$':
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
properties:
enable-gpios:
maxItems: 1
description:
GPIO specifier to enable the GPIO control for each regulator. The
driver supports two modes of enable, hardware only (GPIOs) or software
only (Registers). Pure hardware enabling requires each regulator to
contain this property. If at least one regulator does not have this,
the driver automatically switches to software only mode.
adi,dvs-limit-upper-microvolt:
description:
Configure the allowable upper side limit of the voltage output of each
regulator in microvolt. Relative to the default Vref trimming value.
Vref = 600 mV. Voltages are in 12 mV steps, value is autoadjusted.
Vout_high = Vref_trim + dvs-limit-upper.
minimum: 12000
maximum: 192000
default: 192000
adi,dvs-limit-lower-microvolt:
description:
Configure the allowable lower side limit of the voltage output of each
regulator in microvolt. Relative to the default Vref trimming value.
Vref = 600 mV. Voltages are in 12 mV steps, value is autoadjusted.
Vout_low = Vref_trim + dvs-limit-lower.
minimum: -190500
maximum: -10500
default: -190500
adi,fast-transient:
description:
Configures the fast transient sensitivity for each regulator.
"none" - No fast transient.
"3G_1.5%" - 1.5% window with 3*350uA/V
"5G_1.5%" - 1.5% window with 5*350uA/V
"5G_2.5%" - 2.5% window with 5*350uA/V
enum: [none, 3G_1.5%, 5G_1.5%, 5G_2.5%]
default: 5G_2.5%
adi,mask-power-good:
description:
If present, masks individual regulators PWRGD signal to the external
PWRGD hardware pin.
type: boolean
required:
- regulator-name
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@70 {
compatible = "adi,adp5055";
reg = <0x70>;
#address-cells = <1>;
#size-cells = <0>;
adi,tset-us = <2600>;
adi,ocp-blanking;
adi,delay-power-good;
buck0 {
regulator-name = "buck0";
enable-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
adi,dvs-limit-upper-microvolt = <192000>;
adi,dvs-limit-lower-microvolt = <(-190500)>;
adi,fast-transient = "5G_2.5%";
adi,mask-power-good;
};
buck1 {
regulator-name = "buck1";
enable-gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
adi,dvs-limit-upper-microvolt = <192000>;
adi,dvs-limit-lower-microvolt = <(-190500)>;
adi,fast-transient = "5G_2.5%";
adi,mask-power-good;
};
buck2 {
regulator-name = "buck2";
enable-gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
adi,dvs-limit-upper-microvolt = <192000>;
adi,dvs-limit-lower-microvolt = <(-190500)>;
adi,fast-transient = "5G_2.5%";
adi,mask-power-good;
};
};
};
@@ -0,0 +1,50 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright (c) 2023 Analog Devices, Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/adi,max77503-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices MAX77503 Buck Converter
maintainers:
- Gokhan Celik <Gokhan.Celik@analog.com>
description: |
The Analog Devices MAX77503 is a single channel 14V input, 1.5A
high-efficiency buck converter. This converter has 94% efficiency
for 2-Cell/3-Cell battery applications.
allOf:
- $ref: regulator.yaml#
properties:
compatible:
enum:
- adi,max77503
reg:
description: I2C address of the device
items:
- enum: [0x1e, 0x24, 0x37]
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@1e {
compatible = "adi,max77503";
reg = <0x1e>;
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <5000000>;
};
};
@@ -0,0 +1,38 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/adi,max77541-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Buck Converter for MAX77540/MAX77541
maintainers:
- Okan Sahin <okan.sahin@analog.com>
description: |
This is a part of device tree bindings for ADI MAX77540/MAX77541
The buck converter is represented as a sub-node of the PMIC node on the device tree.
The device has two buck regulators.
See also Documentation/devicetree/bindings/mfd/adi,max77541.yaml for
additional information and example.
patternProperties:
"^buck[12]$":
type: object
$ref: regulator.yaml#
additionalProperties: false
description: |
Buck regulator.
properties:
regulator-name: true
regulator-always-on: true
regulator-boot-on: true
regulator-min-microvolt:
minimum: 300000
regulator-max-microvolt:
maximum: 5200000
additionalProperties: false
@@ -0,0 +1,184 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/adi,max77675.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim MAX77675 PMIC Regulator
maintainers:
- Joan Na <joan.na@analog.com>
description:
The MAX77675 is a Power Management IC providing four switching buck
regulators (SBB0–SBB3) accessible via I2C. It supports configuration
of output voltages and enable controls for each regulator.
allOf:
- $ref: /schemas/input/input.yaml
- $ref: /schemas/pinctrl/pincfg-node.yaml
properties:
compatible:
const: adi,max77675
reg:
maxItems: 1
reset-time-sec:
description: Manual reset time in seconds
enum: [4, 8, 12, 16]
default: 4
bias-disable:
type: boolean
description: Disable internal pull-up for EN pin
input-debounce:
description: Debounce time for the enable pin, in microseconds
items:
- enum: [100, 30000]
default: 100
adi,en-mode:
description: |
Enable mode configuration.
The debounce time set by 'input-debounce' applies to
both push-button and slide-switch modes.
"push-button" - A long press triggers power-on or power-down
"slide-switch" - Low : powers on, High : powers down
"logic" - Low : powers on, High : powers down (no debounce time)
$ref: /schemas/types.yaml#/definitions/string
enum: [push-button, slide-switch, logic]
default: slide-switch
adi,voltage-change-latency-us:
description:
Specifies the delay (in microseconds) between an output voltage change
request and the start of the SBB voltage ramp.
enum: [10, 100]
default: 100
adi,drv-sbb-strength:
description: |
SIMO Buck-Boost Drive Strength Trim.
Controls the drive strength of the SIMO regulator's power MOSFETs.
This setting affects switching speed, impacting power efficiency and EMI.
"max" – Maximum drive strength (~0.6 ns transition time)
"high" – High drive strength (~1.2 ns transition time)
"low" – Low drive strength (~1.8 ns transition time)
"min" – Minimum drive strength (~8 ns transition time)
$ref: /schemas/types.yaml#/definitions/string
enum: [max, high, low, min]
default: max
adi,dvs-slew-rate-mv-per-us:
description:
Dynamic rising slew rate for output voltage transitions, in mV/μs.
This setting is only used when 'adi,fixed-slew-rate' is not present.
enum: [5, 10]
default: 5
adi,bias-low-power-request:
type: boolean
description: Request low-power bias mode
adi,simo-ldo-always-on:
type: boolean
description: Set internal LDO to always supply 1.8V
regulators:
type: object
description: Regulator child nodes
patternProperties:
"^sbb[0-3]$":
type: object
$ref: regulator.yaml#
properties:
adi,fps-slot:
description: |
FPS (Flexible Power Sequencer) slot selection.
The Flexible Power Sequencer allows resources to power up under
hardware or software control. Additionally, each resource can
power up independently or among a group of other regulators with
adjustable power-up and power-down slots.
"slot0" - Assign to FPS Slot 0
"slot1" - Assign to FPS Slot 1
"slot2" - Assign to FPS Slot 2
"slot3" - Assign to FPS Slot 3
"default" - Use the default FPS slot value stored in register
$ref: /schemas/types.yaml#/definitions/string
enum: [slot0, slot1, slot2, slot3, default]
default: default
adi,fixed-slew-rate:
type: boolean
description:
When this property is present, the device uses a constant 2 mV/μs
slew rate and ignores any dynamic slew rate configuration.
When absent, the device uses the dynamic slew rate specified
by 'adi,dvs-slew-rate-mv-per-us'
unevaluatedProperties: false
required:
- compatible
- reg
- regulators
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
max77675: pmic@44 {
compatible = "adi,max77675";
reg = <0x44>;
reset-time-sec = <4>;
input-debounce = <100>;
adi,en-mode = "slide-switch";
adi,voltage-change-latency-us = <100>;
adi,drv-sbb-strength = "max";
adi,dvs-slew-rate-mv-per-us = <5>;
regulators {
sbb0: sbb0 {
regulator-name = "sbb0";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <5500000>;
adi,fps-slot = "default";
adi,fixed-slew-rate;
};
sbb1: sbb1 {
regulator-name = "sbb1";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <5500000>;
adi,fps-slot = "default";
adi,fixed-slew-rate;
};
sbb2: sbb2 {
regulator-name = "sbb2";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <5500000>;
adi,fps-slot = "default";
adi,fixed-slew-rate;
};
sbb3: sbb3 {
regulator-name = "sbb3";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <5500000>;
adi,fps-slot = "default";
adi,fixed-slew-rate;
};
};
};
};
@@ -0,0 +1,86 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright 2022 Analog Devices Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/adi,max77857.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices MAX77857 Buck-Boost Converter
maintainers:
- Ibrahim Tilki <Ibrahim.Tilki@analog.com>
- Okan Sahin <Okan.Sahin@analog.com>
description: Analog Devices MAX77857 Buck-Boost Converter
properties:
compatible:
enum:
- adi,max77831
- adi,max77857
- adi,max77859
- adi,max77859a
reg:
description: I2C address of the device
items:
- enum: [0x66, 0x67, 0x6E, 0x6F]
interrupts:
maxItems: 1
adi,switch-frequency-hz:
description: Switching frequency of the Buck-Boost converter in Hz.
items:
- enum: [1200000, 1500000, 1800000, 2100000]
adi,rtop-ohms:
description: Top feedback resistor value in ohms for external feedback.
minimum: 150000
maximum: 330000
adi,rbot-ohms:
description: Bottom feedback resistor value in ohms for external feedback.
dependencies:
adi,rtop-ohms: [ 'adi,rbot-ohms' ]
adi,rbot-ohms: [ 'adi,rtop-ohms' ]
required:
- compatible
- reg
allOf:
- $ref: regulator.yaml#
- if:
properties:
compatible:
contains:
enum:
- adi,max77831
then:
properties:
adi,switch-frequency-hz:
items:
enum: [1200000, 1500000, 1800000]
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@66 {
reg = <0x66>;
compatible = "adi,max77857";
interrupt-parent = <&gpio>;
interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
adi,rtop-ohms = <312000>;
adi,rbot-ohms = <12000>;
};
};
@@ -0,0 +1,37 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/allwinner,sun20i-d1-system-ldos.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allwinner D1 System LDOs
maintainers:
- Samuel Holland <samuel@sholland.org>
description:
Allwinner D1 contains a pair of general-purpose LDOs which are designed to
supply power inside and outside the SoC. They are controlled by a register
within the system control MMIO space.
properties:
compatible:
enum:
- allwinner,sun20i-d1-system-ldos
reg:
maxItems: 1
patternProperties:
"^ldo[ab]$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
required:
- compatible
- reg
additionalProperties: false
...
@@ -0,0 +1,93 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/anatop-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Freescale Anatop Voltage Regulators
maintainers:
- Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
allOf:
- $ref: regulator.yaml#
properties:
compatible:
const: fsl,anatop-regulator
regulator-name: true
anatop-reg-offset:
$ref: /schemas/types.yaml#/definitions/uint32
description: u32 value representing the anatop MFD register offset.
anatop-vol-bit-shift:
$ref: /schemas/types.yaml#/definitions/uint32
description: u32 value representing the bit shift for the register.
anatop-vol-bit-width:
$ref: /schemas/types.yaml#/definitions/uint32
description: u32 value representing the number of bits used in the register.
anatop-min-bit-val:
$ref: /schemas/types.yaml#/definitions/uint32
description: u32 value representing the minimum value of this register.
anatop-min-voltage:
$ref: /schemas/types.yaml#/definitions/uint32
description: u32 value representing the minimum voltage of this regulator.
anatop-max-voltage:
$ref: /schemas/types.yaml#/definitions/uint32
description: u32 value representing the maximum voltage of this regulator.
anatop-delay-reg-offset:
$ref: /schemas/types.yaml#/definitions/uint32
description: u32 value representing the anatop MFD step time register offset.
anatop-delay-bit-shift:
$ref: /schemas/types.yaml#/definitions/uint32
description: u32 value representing the bit shift for the step time register.
anatop-delay-bit-width:
$ref: /schemas/types.yaml#/definitions/uint32
description: u32 value representing the number of bits used in the step time register.
anatop-enable-bit:
$ref: /schemas/types.yaml#/definitions/uint32
description: u32 value representing regulator enable bit offset.
vin-supply:
description: input supply phandle.
required:
- compatible
- regulator-name
- anatop-reg-offset
- anatop-vol-bit-shift
- anatop-vol-bit-width
- anatop-min-bit-val
- anatop-min-voltage
- anatop-max-voltage
unevaluatedProperties: false
examples:
- |
regulator-vddpu {
compatible = "fsl,anatop-regulator";
regulator-name = "vddpu";
regulator-min-microvolt = <725000>;
regulator-max-microvolt = <1300000>;
regulator-always-on;
anatop-reg-offset = <0x140>;
anatop-vol-bit-shift = <9>;
anatop-vol-bit-width = <5>;
anatop-delay-reg-offset = <0x170>;
anatop-delay-bit-shift = <24>;
anatop-delay-bit-width = <2>;
anatop-min-bit-val = <1>;
anatop-min-voltage = <725000>;
anatop-max-voltage = <1300000>;
};
@@ -0,0 +1,91 @@
Regulator of AMS AS3722 PMIC.
Name of the regulator subnode must be "regulators".
Optional properties:
--------------------
The input supply of regulators are the optional properties on the
regulator node. The AS3722 is having 7 DCDC step-down regulators as
sd[0-6], 10 LDOs as ldo[0-7], ldo[9-11]. The input supply of these
regulators are provided through following properties:
vsup-sd2-supply: Input supply for SD2.
vsup-sd3-supply: Input supply for SD3.
vsup-sd4-supply: Input supply for SD4.
vsup-sd5-supply: Input supply for SD5.
vin-ldo0-supply: Input supply for LDO0.
vin-ldo1-6-supply: Input supply for LDO1 and LDO6.
vin-ldo2-5-7-supply: Input supply for LDO2, LDO5 and LDO7.
vin-ldo3-4-supply: Input supply for LDO3 and LDO4.
vin-ldo9-10-supply: Input supply for LDO9 and LDO10.
vin-ldo11-supply: Input supply for LDO11.
Optional nodes:
--------------
- regulators : Must contain a sub-node per regulator from the list below.
Each sub-node should contain the constraints and initialization
information for that regulator. See regulator.txt for a
description of standard properties for these sub-nodes.
Additional custom properties are listed below.
sd[0-6], ldo[0-7], ldo[9-11].
Optional sub-node properties:
----------------------------
ams,ext-control: External control of the rail. The option of
this properties will tell which external input is
controlling this rail. Valid values are 0, 1, 2 ad 3.
0: There is no external control of this rail.
1: Rail is controlled by ENABLE1 input pin.
2: Rail is controlled by ENABLE2 input pin.
3: Rail is controlled by ENABLE3 input pin.
ams,enable-tracking: Enable tracking with SD1, only supported
by LDO3.
Example:
-------
ams3722: ams3722 {
compatible = "ams,as3722";
reg = <0x40>;
...
regulators {
vsup-sd2-supply = <...>;
...
sd0 {
regulator-name = "vdd_cpu";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1400000>;
regulator-always-on;
ams,ext-control = <2>;
};
sd1 {
regulator-name = "vdd_core";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1400000>;
regulator-always-on;
ams,ext-control = <1>;
};
sd2 {
regulator-name = "vddio_ddr";
regulator-min-microvolt = <1350000>;
regulator-max-microvolt = <1350000>;
regulator-always-on;
};
sd4 {
regulator-name = "avdd-hdmi-pex";
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1050000>;
regulator-always-on;
};
sd5 {
regulator-name = "vdd-1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
....
};
};
@@ -0,0 +1,78 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/awinic,aw37503.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Awinic AW37503 Voltage Regulator
maintainers:
- Alec Li <like@awinic.com>
description:
The AW37503 are dual voltage regulator, designed to support positive/negative
supply for driving TFT-LCD panels. It support software-configurable output
switching and monitoring. The output voltages can be programmed via an I2C
compatible interface.
properties:
compatible:
const: awinic,aw37503
reg:
maxItems: 1
patternProperties:
"^out[pn]$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description:
Properties for single regulator.
properties:
enable-gpios:
maxItems: 1
description:
GPIO specifier to enable the GPIO control (on/off) for regulator.
required:
- regulator-name
required:
- compatible
- reg
- outp
- outn
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@3e {
compatible = "awinic,aw37503";
reg = <0x3e>;
outp {
regulator-name = "outp";
regulator-boot-on;
regulator-always-on;
enable-gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
};
outn {
regulator-name = "outn";
regulator-boot-on;
regulator-always-on;
enable-gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
};
};
};
...
@@ -0,0 +1,56 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/brcm,bcm59054.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Broadcom BCM59054 Power Management Unit regulators
description: |
This is a part of device tree bindings for the BCM59054 power
management unit.
See Documentation/devicetree/bindings/mfd/brcm,bcm59056.yaml for
additional information and example.
maintainers:
- Artur Weber <aweber.kernel@gmail.com>
patternProperties:
"^(cam|sim|mmc)ldo[1-2]$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
"^(rf|sd|sdx|aud|mic|usb|vib|tcx)ldo$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
"^(c|mm|v)sr$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
"^(io|sd)sr[1-2]$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
"^gpldo[1-3]$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
"^lvldo[1-2]$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
properties:
vbus:
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
additionalProperties: false
@@ -0,0 +1,51 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/brcm,bcm59056.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Broadcom BCM59056 Power Management Unit regulators
description: |
This is a part of device tree bindings for the BCM59056 power
management unit.
See Documentation/devicetree/bindings/mfd/brcm,bcm59056.yaml for
additional information and example.
maintainers:
- Artur Weber <aweber.kernel@gmail.com>
patternProperties:
"^(cam|sim|mmc)ldo[1-2]$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
"^(rf|sd|sdx|aud|mic|usb|vib)ldo$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
"^(c|m|v)sr$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
"^(io|sd)sr[1-2]$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
"^gpldo[1-6]$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
properties:
vbus:
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
additionalProperties: false
@@ -0,0 +1,262 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/dlg,da9121.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Dialog Semiconductor DA9121 voltage regulator
maintainers:
- Adam Ward <Adam.Ward.opensource@diasemi.com>
description: |
Dialog Semiconductor DA9121 Single-channel 10A double-phase buck converter
Dialog Semiconductor DA9122 Double-channel 5A single-phase buck converter
Dialog Semiconductor DA9220 Double-channel 3A single-phase buck converter
Dialog Semiconductor DA9217 Single-channel 6A double-phase buck converter
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
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:
pattern: "pmic@[0-9a-f]{1,2}"
compatible:
enum:
- dlg,da9121
- dlg,da9122
- dlg,da9220
- dlg,da9217
- dlg,da9130
- dlg,da9131
- dlg,da9132
- dlg,da9141
- dlg,da9142
reg:
maxItems: 1
description: Specifies the I2C slave address.
interrupts:
maxItems: 1
description: IRQ line information.
dlg,irq-polling-delay-passive-ms:
minimum: 1000
maximum: 10000
description: |
Specify the polling period, measured in milliseconds, between interrupt status
update checks. Range 1000-10000 ms.
dlg,no-gpio-control:
type: boolean
description: |
Available GPIO input pins of the regulator are strapped to fixed levels, therefore
GPIO configurable input functions, DVC/RELOAD/EN, cannot dynamically update BUCK
registers. GPIO pins connected as output pins are not required to be strapped to a
fixed level. Not allowed together with enable-gpios.
regulators:
type: object
additionalProperties: false
description: |
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-initial-mode:
enum: [ 0, 1, 2, 3 ]
description: Defined in include/dt-bindings/regulator/dlg,da9121-regulator.h
enable-gpios:
maxItems: 1
description: Specify a valid GPIO for platform control of the regulator
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)
unevaluatedProperties: false
required:
- compatible
- reg
- regulators
allOf:
- if:
properties:
compatible:
not:
contains:
enum:
- dlg,da9122
- dlg,da9131
- dlg,da9132
- dlg,da9220
then:
properties:
regulators:
properties:
buck2: false
- if:
required:
- dlg,no-gpio-control
then:
properties:
regulators:
patternProperties:
"^buck([1-2])$":
properties:
enable-gpios: false
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/regulator/dlg,da9121-regulator.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@68 {
compatible = "dlg,da9121";
reg = <0x68>;
interrupt-parent = <&gpio6>;
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
dlg,irq-polling-delay-passive-ms = <2000>;
regulators {
DA9121_BUCK1: buck1 {
regulator-name = "BUCK1";
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <1900000>;
regulator-min-microamp = <7000000>;
regulator-max-microamp = <20000000>;
regulator-boot-on;
regulator-initial-mode = <DA9121_BUCK_MODE_AUTO>;
enable-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
};
};
};
};
- |
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/regulator/dlg,da9121-regulator.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@68 {
compatible = "dlg,da9121";
reg = <0x68>;
interrupt-parent = <&gpio6>;
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
dlg,irq-polling-delay-passive-ms = <2000>;
dlg,no-gpio-control;
regulators {
DA9121_BUCK: buck1 {
regulator-name = "BUCK1";
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <1900000>;
regulator-min-microamp = <7000000>;
regulator-max-microamp = <20000000>;
regulator-boot-on;
regulator-initial-mode = <DA9121_BUCK_MODE_AUTO>;
};
};
};
};
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/regulator/dlg,da9121-regulator.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@68 {
compatible = "dlg,da9122";
reg = <0x68>;
interrupt-parent = <&gpio6>;
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
dlg,irq-polling-delay-passive-ms = <2000>;
regulators {
DA9122_BUCK1: buck1 {
regulator-name = "BUCK1";
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <1900000>;
regulator-min-microamp = <3500000>;
regulator-max-microamp = <10000000>;
regulator-boot-on;
regulator-initial-mode = <DA9121_BUCK_MODE_AUTO>;
enable-gpios = <&gpio6 1 GPIO_ACTIVE_HIGH>;
dlg,ripple-cancel = <DA9121_BUCK_RIPPLE_CANCEL_NONE>;
};
DA9122_BUCK2: buck2 {
regulator-name = "BUCK2";
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <1900000>;
regulator-min-microamp = <3500000>;
regulator-max-microamp = <10000000>;
regulator-boot-on;
regulator-initial-mode = <DA9121_BUCK_MODE_AUTO>;
enable-gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>;
dlg,ripple-cancel = <DA9121_BUCK_RIPPLE_CANCEL_NONE>;
};
};
};
};
...
@@ -0,0 +1,52 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/dlg,da9210.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Dialog Semiconductor DA9210 Multi-Phase 12A DC-DC Buck Converter
maintainers:
- Support Opensource <support.opensource@diasemi.com>
allOf:
- $ref: regulator.yaml#
properties:
compatible:
const: dlg,da9210
reg:
maxItems: 1
interrupts:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@68 {
compatible = "dlg,da9210";
reg = <0x68>;
interrupt-parent = <&irqc0>;
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <1570000>;
regulator-min-microamp = <1600000>;
regulator-max-microamp = <4600000>;
regulator-boot-on;
};
};
@@ -0,0 +1,103 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/dlg,da9211.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title:
Dialog Semiconductor DA9211-9215, DA9223-9225 Voltage Regulators
maintainers:
- Ariel D'Alessandro <ariel.dalessandro@collabora.com>
properties:
compatible:
enum:
- dlg,da9211
- dlg,da9212
- dlg,da9213
- dlg,da9214
- dlg,da9215
- dlg,da9223
- dlg,da9224
- dlg,da9225
reg:
maxItems: 1
interrupts:
maxItems: 1
regulators:
type: object
additionalProperties: false
description:
List of regulators provided by the device
patternProperties:
"^BUCK([AB])$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description:
Properties for a single BUCK regulator
properties:
regulator-initial-mode:
items:
enum: [ 1, 2, 3 ]
description:
Defined in include/dt-bindings/regulator/dlg,da9211-regulator.h
regulator-allowed-modes:
items:
enum: [ 1, 2, 3 ]
description:
Defined in include/dt-bindings/regulator/dlg,da9211-regulator.h
enable-gpios:
maxItems: 1
required:
- compatible
- reg
- interrupts
- regulators
additionalProperties: false
examples:
- |
#include <dt-bindings/regulator/dlg,da9211-regulator.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@68 {
compatible = "dlg,da9212";
reg = <0x68>;
interrupts = <3 27>;
regulators {
BUCKA {
regulator-name = "VBUCKA";
regulator-min-microvolt = < 300000>;
regulator-max-microvolt = <1570000>;
regulator-min-microamp = <2000000>;
regulator-max-microamp = <5000000>;
enable-gpios = <&gpio 27 0>;
};
BUCKB {
regulator-name = "VBUCKB";
regulator-min-microvolt = < 300000>;
regulator-max-microvolt = <1570000>;
regulator-min-microamp = <2000000>;
regulator-max-microamp = <5000000>;
enable-gpios = <&gpio 17 0>;
};
};
};
};
...
@@ -0,0 +1,132 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/dlg,slg51000.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Dialog Semiconductor SLG51000 Voltage Regulator
maintainers:
- Eric Jeong <eric.jeong.opensource@diasemi.com>
- Support Opensource <support.opensource@diasemi.com>
properties:
compatible:
const: dlg,slg51000
reg:
maxItems: 1
interrupts:
maxItems: 1
dlg,cs-gpios:
maxItems: 1
description:
GPIO for chip select
vin3-supply:
description:
Input supply for ldo3, required if regulator is enabled
vin4-supply:
description:
Input supply for ldo4, required if regulator is enabled
vin5-supply:
description:
Input supply for ldo5, required if regulator is enabled
vin6-supply:
description:
Input supply for ldo6, required if regulator is enabled
vin7-supply:
description:
Input supply for ldo7, required if regulator is enabled
regulators:
type: object
additionalProperties: false
patternProperties:
"^ldo[1-7]$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
properties:
enable-gpios:
maxItems: 1
required:
- regulator-name
required:
- compatible
- reg
- regulators
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/regulator/dlg,da9121-regulator.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@75 {
compatible = "dlg,slg51000";
reg = <0x75>;
dlg,cs-gpios = <&tlmm 69 GPIO_ACTIVE_HIGH>;
vin5-supply = <&vreg_s1f_1p2>;
vin6-supply = <&vreg_s1f_1p2>;
regulators {
ldo1 {
regulator-name = "slg51000_b_ldo1";
regulator-min-microvolt = <2400000>;
regulator-max-microvolt = <3300000>;
};
ldo2 {
regulator-name = "slg51000_b_ldo2";
regulator-min-microvolt = <2400000>;
regulator-max-microvolt = <3300000>;
};
ldo3 {
regulator-name = "slg51000_b_ldo3";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3750000>;
};
ldo4 {
regulator-name = "slg51000_b_ldo4";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3750000>;
};
ldo5 {
regulator-name = "slg51000_b_ldo5";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1200000>;
};
ldo6 {
regulator-name = "slg51000_b_ldo6";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1200000>;
};
ldo7 {
regulator-name = "slg51000_b_ldo7";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3750000>;
};
};
};
};
@@ -0,0 +1,73 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/fcs,fan53555.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Fairchild FAN53555 regulators
maintainers:
- Heiko Stuebner <heiko@sntech.de>
allOf:
- $ref: regulator.yaml#
properties:
compatible:
oneOf:
- enum:
- fcs,fan53555
- fcs,fan53526
- rockchip,rk8600
- rockchip,rk8602
- silergy,syr827
- silergy,syr828
- tcs,tcs4525
- items:
- const: rockchip,rk8601
- const: rockchip,rk8600
- items:
- const: rockchip,rk8603
- const: rockchip,rk8602
reg:
maxItems: 1
fcs,suspend-voltage-selector:
description: Declares which of the two available voltage selector
registers should be used for the suspend voltage. The other one is used
for the runtime voltage setting.
$ref: /schemas/types.yaml#/definitions/uint32
enum: [ 0, 1 ]
vin-supply:
description: Supply for the vin pin
vsel-gpios:
description: Voltage Select. When this pin is LOW, VOUT is set by the
VSEL0 register. When this pin is HIGH, VOUT is set by the VSEL1 register.
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@40 {
compatible = "fcs,fan53555";
reg = <0x40>;
regulator-name = "fan53555";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1800000>;
vin-supply = <&parent_reg>;
fcs,suspend-voltage-selector = <1>;
};
};
...
@@ -0,0 +1,111 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/fitipower,fp9931.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: FitiPower FP9931/JD9930 Power Management Integrated Circuit
maintainers:
- Andreas Kemnade <andreas@kemnade.info>
description:
FP9931 is a Power Management IC to provide Power for EPDs with one 3.3V
switch, 2 symmetric LDOs behind 2 DC/DC converters, and one unsymmetric
regulator for a compensation voltage.
JD9930 has in addition some kind of night mode.
properties:
compatible:
oneOf:
- const: fitipower,fp9931
- items:
- const: fitipower,jd9930
- const: fitipower,fp9931
reg:
maxItems: 1
enable-gpios:
maxItems: 1
pg-gpios:
maxItems: 1
en-ts-gpios:
maxItems: 1
xon-gpios:
maxItems: 1
vin-supply:
description:
Supply for the whole chip. Some vendor kernels and devicetrees
declare this as a non-existing GPIO named "pwrall".
fitipower,tdly-ms:
description:
Power up soft start delay settings tDLY1-4 bitfields in the
POWERON_DELAY register
items:
- enum: [0, 1, 2, 4]
- enum: [0, 1, 2, 4]
- enum: [0, 1, 2, 4]
- enum: [0, 1, 2, 4]
regulators:
type: object
additionalProperties: false
patternProperties:
"^(vcom|vposneg|v3p3)$":
unevaluatedProperties: false
type: object
$ref: /schemas/regulator/regulator.yaml
required:
- compatible
- reg
- vin-supply
- pg-gpios
- enable-gpios
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@18 {
compatible = "fitipower,fp9931";
reg = <0x18>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_fp9931_gpio>;
vin-supply = <&epd_pmic_supply>;
pg-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
en-ts-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
enable-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>;
fitipower,tdly-ms = <2 2 4 4>;
regulators {
vcom {
regulator-name = "vcom";
regulator-min-microvolt = <2352840>;
regulator-max-microvolt = <2352840>;
};
vposneg {
regulator-name = "vposneg";
regulator-min-microvolt = <15060000>;
regulator-max-microvolt = <15060000>;
};
v3p3 {
regulator-name = "v3p3";
};
};
};
};
@@ -0,0 +1,160 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/fixed-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Fixed Voltage regulators
maintainers:
- Liam Girdwood <lgirdwood@gmail.com>
- Mark Brown <broonie@kernel.org>
description:
Any property defined as part of the core regulator binding, defined in
regulator.yaml, can also be used. However a fixed voltage regulator is
expected to have the regulator-min-microvolt and regulator-max-microvolt
to be the same.
allOf:
- $ref: regulator.yaml#
- if:
properties:
compatible:
contains:
const: regulator-fixed-clock
then:
required:
- clocks
- if:
properties:
compatible:
contains:
const: regulator-fixed-domain
then:
required:
- power-domains
- required-opps
- not:
required:
- gpio
- gpios
properties:
$nodename:
anyOf:
- description: Preferred name is 'regulator-[0-9]v[0-9]'
pattern: '^regulator(-[0-9]+v[0-9]+|-[0-9a-z-]+)?$'
- description: Any name allowed
deprecated: true
compatible:
enum:
- regulator-fixed
- regulator-fixed-clock
- regulator-fixed-domain
regulator-name: true
gpio:
description: gpio to use for enable control
maxItems: 1
gpios:
maxItems: 1
clocks:
description:
clock to use for enable control. This binding is only available if
the compatible is chosen to regulator-fixed-clock. The clock binding
is mandatory if compatible is chosen to regulator-fixed-clock.
maxItems: 1
power-domains:
deprecated: true
description:
Power domain to use for enable control. This binding is only
available if the compatible is chosen to regulator-fixed-domain.
maxItems: 1
required-opps:
deprecated: true
description:
Performance state to use for enable control. This binding is only
available if the compatible is chosen to regulator-fixed-domain. The
power-domain binding is mandatory if compatible is chosen to
regulator-fixed-domain.
maxItems: 1
startup-delay-us:
description: startup time in microseconds
off-on-delay-us:
description: off delay time in microseconds
enable-active-high:
description:
Polarity of GPIO is Active high. If this property is missing,
the default assumed is Active low.
type: boolean
gpio-open-drain:
description:
GPIO is open drain type. If this property is missing then default
assumption is false.
type: boolean
vin-supply:
description: Input supply phandle.
interrupts:
maxItems: 1
description:
Interrupt signaling a critical under-voltage event.
system-critical-regulator: true
required:
- compatible
- regulator-name
unevaluatedProperties: false
examples:
- |
reg_1v8: regulator-1v8 {
compatible = "regulator-fixed";
regulator-name = "1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&gpio1 16 0>;
startup-delay-us = <70000>;
enable-active-high;
regulator-boot-on;
gpio-open-drain;
vin-supply = <&parent_reg>;
};
reg_1v8_clk: regulator-1v8-clk {
compatible = "regulator-fixed-clock";
regulator-name = "1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
clocks = <&clock1>;
startup-delay-us = <70000>;
enable-active-high;
regulator-boot-on;
vin-supply = <&parent_reg>;
};
reg_1v8_domain: regulator-1v8-domain {
compatible = "regulator-fixed-domain";
regulator-name = "1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
power-domains = <&domain1>;
required-opps = <&domain1_state1>;
startup-delay-us = <70000>;
enable-active-high;
regulator-boot-on;
vin-supply = <&parent_reg>;
};
...
@@ -0,0 +1,58 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/google,cros-ec-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ChromeOS EC controlled voltage regulators
maintainers:
- Pi-Hsun Shih <pihsun@chromium.org>
description:
Any property defined as part of the core regulator binding, defined in
regulator.yaml, can also be used.
allOf:
- $ref: regulator.yaml#
properties:
compatible:
const: google,cros-ec-regulator
reg:
maxItems: 1
description: Identifier for the voltage regulator to ChromeOS EC.
vin-supply:
description: Input supply phandle
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
spi {
#address-cells = <1>;
#size-cells = <0>;
cros_ec: ec@0 {
compatible = "google,cros-ec-spi";
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <99 0>;
regulator@0 {
compatible = "google,cros-ec-regulator";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
reg = <0>;
vin-supply = <&pp4200_s5>;
};
};
};
...
@@ -0,0 +1,122 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/gpio-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: GPIO controlled regulators
maintainers:
- Liam Girdwood <lgirdwood@gmail.com>
- Mark Brown <broonie@kernel.org>
description:
Any property defined as part of the core regulator binding, defined in
regulator.txt, can also be used.
allOf:
- $ref: regulator.yaml#
properties:
compatible:
const: regulator-gpio
regulator-name: true
enable-gpios:
description: GPIO to use to enable/disable the regulator.
Warning, the GPIO phandle flags are ignored and the GPIO polarity is
controlled solely by the presence of "enable-active-high" DT property.
This is due to compatibility with old DTs.
maxItems: 1
gpios:
description: Array of one or more GPIO pins used to select the regulator
voltage/current listed in "states".
minItems: 1
maxItems: 8 # Should be enough...
gpios-states:
description: |
On operating systems, that don't support reading back gpio values in
output mode (most notably linux), this array provides the state of GPIO
pins set when requesting them from the gpio controller. Systems, that are
capable of preserving state when requesting the lines, are free to ignore
this property.
0: LOW
1: HIGH
Default is LOW if nothing else is specified.
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 1
maxItems: 8
items:
enum: [0, 1]
default: 0
states:
description: Selection of available voltages/currents provided by this
regulator and matching GPIO configurations to achieve them. If there are
no states in the "states" array, use a fixed regulator instead.
$ref: /schemas/types.yaml#/definitions/uint32-matrix
minItems: 2
maxItems: 256
items:
items:
- description: Voltage in microvolts
- description: GPIO group state value
startup-delay-us:
description: startup time in microseconds
enable-active-high:
description: Polarity of "enable-gpio" GPIO is active HIGH. Default is
active LOW.
type: boolean
gpio-open-drain:
description:
GPIO is open drain type. If this property is missing then default
assumption is false.
type: boolean
regulator-type:
description: Specifies what is being regulated.
$ref: /schemas/types.yaml#/definitions/string
enum:
- voltage
- current
default: voltage
vin-supply:
description: Input supply phandle.
required:
- compatible
- regulator-name
- gpios
- states
unevaluatedProperties: false
examples:
- |
gpio-regulator {
compatible = "regulator-gpio";
regulator-name = "mmci-gpio-supply";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2600000>;
regulator-boot-on;
enable-gpios = <&gpio0 23 0x4>;
gpios = <&gpio0 24 0x4
&gpio0 25 0x4>;
states = <1800000 0x3>,
<2200000 0x2>,
<2600000 0x1>,
<2900000 0x0>;
startup-delay-us = <100000>;
enable-active-high;
};
...
@@ -0,0 +1,29 @@
Hisilicon Hi655x Voltage regulators
Note:
The Hi655x regulator control is managed by Hi655x PMIC.
So the node of this regulator must be child node of Hi655x
PMIC node.
The driver uses the regulator core framework, so please also
take the bindings of regulator.txt for reference.
The valid names for regulators are:
LDO2_2V8 LDO7_SDIO LDO10_2V85 LDO13_1V8 LDO14_2V8
LDO15_1V8 LDO17_2V5 LDO19_3V0 LDO21_1V8 LDO22_1V2
Example:
pmic: pmic@f8000000 {
compatible = "hisilicon,hi655x-pmic";
...
regulators {
ldo2: LDO2@a21 {
regulator-name = "LDO2_2V8";
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <3200000>;
regulator-enable-ramp-delay = <120>;
};
...
}
}
@@ -0,0 +1,45 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/infineon,ir38060.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Infineon Buck Regulators with PMBUS interfaces
maintainers:
- Guenter Roeck <linux@roeck-us.net>
allOf:
- $ref: regulator.yaml#
properties:
compatible:
enum:
- infineon,ir38060
- infineon,ir38064
- infineon,ir38164
- infineon,ir38263
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@34 {
compatible = "infineon,ir38060";
reg = <0x34>;
regulator-min-microvolt = <437500>;
regulator-max-microvolt = <1387500>;
};
};
@@ -0,0 +1,36 @@
Intersil ISL9305/ISL9305H voltage regulator
Required properties:
- compatible: "isil,isl9305" or "isil,isl9305h"
- reg: I2C slave address, usually 0x68.
- regulators: A node that houses a sub-node for each regulator within the
device. Each sub-node is identified using the node's name, with valid
values being "dcd1", "dcd2", "ldo1" and "ldo2". The content of each sub-node
is defined by the standard binding for regulators; see regulator.txt.
- VINDCD1-supply: A phandle to a regulator node supplying VINDCD1.
VINDCD2-supply: A phandle to a regulator node supplying VINDCD2.
VINLDO1-supply: A phandle to a regulator node supplying VINLDO1.
VINLDO2-supply: A phandle to a regulator node supplying VINLDO2.
Optional properties:
- Per-regulator optional properties are defined in regulator.txt
Example
pmic: isl9305@68 {
compatible = "isil,isl9305";
reg = <0x68>;
VINDCD1-supply = <&system_power>;
VINDCD2-supply = <&system_power>;
VINLDO1-supply = <&system_power>;
VINLDO2-supply = <&system_power>;
regulators {
dcd1 {
regulator-name = "VDD_DSP";
regulator-always-on;
};
};
};
@@ -0,0 +1,167 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/lltc,ltc3676.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Linear Technology LTC3676 8-output regulators
maintainers:
- Tim Harvey <tharvey@gateworks.com>
description: |
LTC3676 contains eight regulators, 4 switching SW1..SW4 and four LDO1..4 .
properties:
compatible:
const: lltc,ltc3676
reg:
maxItems: 1
interrupts:
maxItems: 1
regulators:
type: object
additionalProperties: false
description: |
List of regulators provided by this controller, must be named
after their hardware counterparts (SW|LDO)[1-4].
patternProperties:
"^(sw[1-4]|ldo[24])$":
type: object
unevaluatedProperties: false
$ref: regulator.yaml#
description:
Properties for single SW or LDO regulator. Regulators SW1..SW4 can
regulate the feedback reference from 412.5mV to 800mV in 12.5 mV
steps. The output voltage thus ranges between 0.4125 * (1 + R1/R2) V
and 0.8 * (1 + R1/R2) V.
Regulators LDO1, LDO2, LDO4 have a fixed 0.725 V reference and thus
output 0.725 * (1 + R1/R2) V.
The LDO1 standby regulator can not be disabled and thus should have
the regulator-always-on property set.
properties:
lltc,fb-voltage-divider:
description:
An array of two integers containing the resistor values
R1 and R2 of the feedback voltage divider in ohms.
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 2
maxItems: 2
required:
- lltc,fb-voltage-divider
properties:
ldo1:
type: object
unevaluatedProperties: false
$ref: regulator.yaml#
description:
The LDO1 standby regulator can not be disabled and thus should
have the regulator-always-on property set. See patternProperties
description above for the rest of the details.
properties:
lltc,fb-voltage-divider:
description:
An array of two integers containing the resistor values
R1 and R2 of the feedback voltage divider in ohms.
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 2
maxItems: 2
required:
- lltc,fb-voltage-divider
- regulator-always-on
ldo3:
type: object
unevaluatedProperties: false
$ref: regulator.yaml#
description:
The LDO3 regulator is fixed to 1.8 V. See patternProperties
description above for the rest of the details.
required:
- compatible
- reg
- regulators
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@3c {
compatible = "lltc,ltc3676";
reg = <0x3c>;
regulators {
sw1_reg: sw1 {
regulator-min-microvolt = <674400>;
regulator-max-microvolt = <1308000>;
lltc,fb-voltage-divider = <127000 200000>;
regulator-ramp-delay = <7000>;
regulator-boot-on;
regulator-always-on;
};
sw2_reg: sw2 {
regulator-min-microvolt = <1033310>;
regulator-max-microvolt = <200400>;
lltc,fb-voltage-divider = <301000 200000>;
regulator-ramp-delay = <7000>;
regulator-boot-on;
regulator-always-on;
};
sw3_reg: sw3 {
regulator-min-microvolt = <674400>;
regulator-max-microvolt = <130800>;
lltc,fb-voltage-divider = <127000 200000>;
regulator-ramp-delay = <7000>;
regulator-boot-on;
regulator-always-on;
};
sw4_reg: sw4 {
regulator-min-microvolt = <868310>;
regulator-max-microvolt = <168400>;
lltc,fb-voltage-divider = <221000 200000>;
regulator-ramp-delay = <7000>;
regulator-boot-on;
regulator-always-on;
};
ldo2_reg: ldo2 {
regulator-min-microvolt = <2490375>;
regulator-max-microvolt = <2490375>;
lltc,fb-voltage-divider = <487000 200000>;
regulator-boot-on;
regulator-always-on;
};
ldo3_reg: ldo3 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
};
ldo4_reg: ldo4 {
regulator-min-microvolt = <3023250>;
regulator-max-microvolt = <3023250>;
lltc,fb-voltage-divider = <634000 200000>;
regulator-boot-on;
regulator-always-on;
};
};
};
};
@@ -0,0 +1,108 @@
TI LMU LM363x regulator device tree bindings
LM363x regulator driver supports LM3631 and LM3632.
LM3631 has five regulators and LM3632 supports three regulators.
Required property:
- compatible: "ti,lm363x-regulator"
Optional properties:
LM3632 has external enable pins for two LDOs.
- enable-gpios: Two GPIO specifiers for Vpos and Vneg control pins.
The first entry is Vpos, the second is Vneg enable pin.
Child nodes:
LM3631
- vboost
- vcont
- voref
- vpos
- vneg
LM3632
- vboost
- vpos
- vneg
Optional properties of a child node:
Each sub-node should contain the constraints and initialization.
Please refer to [1].
Examples: Please refer to ti-lmu dt-bindings [2].
lm3631@29 {
compatible = "ti,lm3631";
reg = <0x29>;
regulators {
compatible = "ti,lm363x-regulator";
vboost {
regulator-name = "lcd_boost";
regulator-min-microvolt = <4500000>;
regulator-max-microvolt = <6350000>;
regulator-always-on;
};
vcont {
regulator-name = "lcd_vcont";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
};
voref {
regulator-name = "lcd_voref";
regulator-min-microvolt = <4000000>;
regulator-max-microvolt = <6000000>;
};
vpos {
regulator-name = "lcd_vpos";
regulator-min-microvolt = <4000000>;
regulator-max-microvolt = <6000000>;
regulator-boot-on;
};
vneg {
regulator-name = "lcd_vneg";
regulator-min-microvolt = <4000000>;
regulator-max-microvolt = <6000000>;
regulator-boot-on;
};
};
};
lm3632@11 {
compatible = "ti,lm3632";
reg = <0x11>;
regulators {
compatible = "ti,lm363x-regulator";
/* GPIO1_16 for Vpos, GPIO1_28 is for Vneg */
enable-gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>,
<&gpio1 28 GPIO_ACTIVE_HIGH>;
vboost {
regulator-name = "lcd_boost";
regulator-min-microvolt = <4500000>;
regulator-max-microvolt = <6400000>;
regulator-always-on;
};
vpos {
regulator-name = "lcd_vpos";
regulator-min-microvolt = <4000000>;
regulator-max-microvolt = <6000000>;
};
vneg {
regulator-name = "lcd_vneg";
regulator-min-microvolt = <4000000>;
regulator-max-microvolt = <6000000>;
};
};
};
[1] ../regulator/regulator.txt
[2] ../mfd/ti-lmu.txt
@@ -0,0 +1,161 @@
Binding for TI/National Semiconductor LP872x Driver
Required properties:
- compatible: "ti,lp8720" or "ti,lp8725"
- reg: I2C slave address. 0x7d = LP8720, 0x7a = LP8725
Optional properties:
- ti,general-config: the value of LP872X_GENERAL_CFG register (u8)
(LP8720)
bit[2]: BUCK output voltage control by external DVS pin or register
1 = external pin, 0 = bit7 of register 08h
bit[1]: sleep control by external DVS pin or register
1 = external pin, 0 = bit6 of register 08h
bit[0]: time step unit(usec). 1 = 25, 0 = 50
(LP8725)
bit[7:6]: time step unit(usec). 00 = 32, 01 = 64, 10 = 128, 11 = 256
bit[4]: BUCK2 enable control. 1 = enable, 0 = disable
bit[3]: BUCK2 output voltage register address. 1 = 0Ah, 0 = 0Bh
bit[2]: BUCK1 output voltage control by external DVS pin or register
1 = register 08h, 0 = DVS
bit[1]: LDO sleep control. 1 = sleep mode, 0 = normal
bit[0]: BUCK1 enable control, 1 = enable, 0 = disable
For more details, please see the datasheet.
- ti,update-config: define it when LP872X_GENERAL_CFG register should be set
- ti,dvs-gpio: GPIO specifier for external DVS pin control of LP872x devices.
- ti,dvs-vsel: DVS selector. 0 = SEL_V1, 1 = SEL_V2.
- ti,dvs-state: initial DVS pin state. 0 = DVS_LOW, 1 = DVS_HIGH.
- enable-gpios: GPIO specifier for EN pin control of LP872x devices.
Sub nodes for regulator_init_data
LP8720 has maximum 6 nodes. (child name: ldo1 ~ 5 and buck)
LP8725 has maximum 9 nodes. (child name: ldo1 ~ 5, lilo1,2 and buck1,2)
For more details, please see the following binding document.
(Documentation/devicetree/bindings/regulator/regulator.txt)
Datasheet
- LP8720: https://www.ti.com/lit/ds/symlink/lp8720.pdf
- LP8725: https://www.ti.com/lit/ds/symlink/lp8725.pdf
Example 1) LP8720
lp8720@7d {
compatible = "ti,lp8720";
reg = <0x7d>;
/* external DVS pin used, timestep is 25usec */
ti,general-config = /bits/ 8 <0x03>;
ti,update-config;
/*
* The dvs-gpio depends on the processor environment.
* For example, following GPIO specifier means GPIO134 in OMAP4.
*/
ti,dvs-gpio = <&gpio5 6 0>;
ti,dvs-vsel = /bits/ 8 <1>; /* SEL_V2 */
ti,dvs-state = /bits/ 8 <1>; /* DVS_HIGH */
vaf: ldo1 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
};
vmmc: ldo2 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
};
vcam_io: ldo3 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
};
vcam_core: ldo4 {
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <2850000>;
regulator-boot-on;
};
vcam: ldo5 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
};
vcc: buck {
regulator-name = "VBUCK";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <2300000>;
};
};
Example 2) LP8725
lp8725@7a {
compatible = "ti,lp8725";
reg = <0x7a>;
/* Enable BUCK1,2, no DVS, normal LDO mode, timestep is 256usec */
ti,general-config = /bits/ 8 <0xdd>;
ti,update-config;
vcam_io: ldo1 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
};
vcam_core: ldo2 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
};
vcam: ldo3 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
};
vcmmb_io: ldo4 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
};
vcmmb_core: ldo5 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
};
vaux1: lilo1 {
regulator-name = "VAUX1";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3300000>;
};
vaux2: lilo2 {
regulator-name = "VAUX2";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3300000>;
};
vcc1: buck1 {
regulator-name = "VBUCK1";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3000000>;
regulator-min-microamp = <460000>;
regulator-max-microamp = <1370000>;
regulator-boot-on;
};
vcc2: buck2 {
regulator-name = "VBUCK2";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3000000>;
regulator-min-microamp = <460000>;
regulator-max-microamp = <1370000>;
regulator-boot-on;
};
};
@@ -0,0 +1,99 @@
Linear Technology LTC3589, LTC3589-1, and LTC3589-2 8-output regulators
Required properties:
- compatible: "lltc,ltc3589", "lltc,ltc3589-1" or "lltc,ltc3589-2"
- reg: I2C slave address
Required child node:
- regulators: Contains eight regulator child nodes sw1, sw2, sw3, bb-out,
ldo1, ldo2, ldo3, and ldo4, specifying the initialization data as
documented in Documentation/devicetree/bindings/regulator/regulator.txt.
Each regulator is defined using the standard binding for regulators. The
nodes for sw1, sw2, sw3, bb-out, ldo1, and ldo2 additionally need to specify
the resistor values of their external feedback voltage dividers:
Required properties (not on ldo3, ldo4):
- lltc,fb-voltage-divider: An array of two integers containing the resistor
values R1 and R2 of the feedback voltage divider in ohms.
Regulators sw1, sw2, sw3, and ldo2 can regulate the feedback reference from
0.3625 V to 0.75 V in 12.5 mV steps. The output voltage thus ranges between
0.3625 * (1 + R1/R2) V and 0.75 * (1 + R1/R2) V. Regulators bb-out and ldo1
have a fixed 0.8 V reference and thus output 0.8 * (1 + R1/R2) V. The ldo3
regulator is fixed to 1.8 V on LTC3589 and to 2.8 V on LTC3589-1,2. The ldo4
regulator can output between 1.8 V and 3.3 V on LTC3589 and between 1.2 V
and 3.2 V on LTC3589-1,2 in four steps. The ldo1 standby regulator can not
be disabled and thus should have the regulator-always-on property set.
Example:
ltc3589: pmic@34 {
compatible = "lltc,ltc3589-1";
reg = <0x34>;
regulators {
sw1_reg: sw1 {
regulator-min-microvolt = <591930>;
regulator-max-microvolt = <1224671>;
lltc,fb-voltage-divider = <100000 158000>;
regulator-ramp-delay = <7000>;
regulator-boot-on;
regulator-always-on;
};
sw2_reg: sw2 {
regulator-min-microvolt = <704123>;
regulator-max-microvolt = <1456803>;
lltc,fb-voltage-divider = <180000 191000>;
regulator-ramp-delay = <7000>;
regulator-boot-on;
regulator-always-on;
};
sw3_reg: sw3 {
regulator-min-microvolt = <1341250>;
regulator-max-microvolt = <2775000>;
lltc,fb-voltage-divider = <270000 100000>;
regulator-ramp-delay = <7000>;
regulator-boot-on;
regulator-always-on;
};
bb_out_reg: bb-out {
regulator-min-microvolt = <3387341>;
regulator-max-microvolt = <3387341>;
lltc,fb-voltage-divider = <511000 158000>;
regulator-boot-on;
regulator-always-on;
};
ldo1_reg: ldo1 {
regulator-min-microvolt = <1306329>;
regulator-max-microvolt = <1306329>;
lltc,fb-voltage-divider = <100000 158000>;
regulator-boot-on;
regulator-always-on;
};
ldo2_reg: ldo2 {
regulator-min-microvolt = <704123>;
regulator-max-microvolt = <1456806>;
lltc,fb-voltage-divider = <180000 191000>;
regulator-ramp-delay = <7000>;
regulator-boot-on;
regulator-always-on;
};
ldo3_reg: ldo3 {
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-boot-on;
};
ldo4_reg: ldo4 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3200000>;
};
};
};
@@ -0,0 +1,28 @@
Maxim MAX1586 voltage regulator
Required properties:
- compatible: must be "maxim,max1586"
- reg: I2C slave address, usually 0x14
- v3-gain: integer specifying the V3 gain as per datasheet
(1 + R24/R25 + R24/185.5kOhm)
- any required generic properties defined in regulator.txt
Example:
i2c_master {
max1586@14 {
compatible = "maxim,max1586";
reg = <0x14>;
v3-gain = <1000000>;
regulators {
vcc_core: v3 {
regulator-name = "vcc_core";
regulator-compatible = "Output_V3";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1705000>;
regulator-always-on;
};
};
};
};
@@ -0,0 +1,35 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/max77650-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Regulator driver for MAX77650 PMIC from Maxim Integrated.
maintainers:
- Bartosz Golaszewski <bgolaszewski@baylibre.com>
description: |
This module is part of the MAX77650 MFD device. For more details
see Documentation/devicetree/bindings/mfd/max77650.yaml.
The regulator controller is represented as a sub-node of the PMIC node
on the device tree.
The device has a single LDO regulator and a SIMO buck-boost regulator with
three independent power rails.
properties:
compatible:
const: maxim,max77650-regulator
patternProperties:
"^regulator-(ldo|sbb[0-2])$":
$ref: regulator.yaml#
unevaluatedProperties: false
required:
- compatible
additionalProperties: false
...
@@ -0,0 +1,73 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/max8660.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim MAX8660 voltage regulator
maintainers:
- Daniel Mack <zonque@gmail.com>
properties:
$nodename:
pattern: "pmic@[0-9a-f]{1,2}"
compatible:
enum:
- maxim,max8660
- maxim,max8661
reg:
maxItems: 1
regulators:
type: object
patternProperties:
"^regulator-.+$":
$ref: regulator.yaml#
unevaluatedProperties: false
additionalProperties: false
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@34 {
compatible = "maxim,max8660";
reg = <0x34>;
regulators {
regulator-V3 {
regulator-min-microvolt = <725000>;
regulator-max-microvolt = <1800000>;
};
regulator-V4 {
regulator-min-microvolt = <725000>;
regulator-max-microvolt = <1800000>;
};
regulator-V5 {
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <2000000>;
};
regulator-V6 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
};
regulator-V7 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
};
};
};
};
...
@@ -0,0 +1,88 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/max8893.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Regulator driver for MAX8893 PMIC from Maxim Integrated.
maintainers:
- Sergey Larin <cerg2010cerg2010@mail.ru>
description: |
The device has 5 LDO regulators and a single BUCK regulator.
Programming is done through I2C bus.
properties:
compatible:
const: maxim,max8893
reg:
maxItems: 1
regulators:
type: object
patternProperties:
"^(ldo[1-5]|buck)$":
$ref: regulator.yaml#
additionalProperties: false
additionalProperties: false
required:
- compatible
- reg
- regulators
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@3e {
compatible = "maxim,max8893";
reg = <0x3e>;
regulators {
/* Front camera - s5k6aafx, back - m5mo */
/* Numbers used to indicate the sequence */
front_1_back_1: buck {
regulator-name = "cam_isp_core_1v2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
front_4_back_5: ldo1 {
regulator-name = "vt_io_1v8,cam_isp_1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
front_3_back_4: ldo2 {
regulator-name = "vt_core_1v5";
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <1500000>;
};
front_5_back_6: ldo3 {
regulator-name = "vt_cam_1v8,vt_sensor_io_1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo4 {
/* not used */
};
back_7: ldo5 {
regulator-name = "cam_sensor_io_1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
};
};
};
...
@@ -0,0 +1,69 @@
MAX8907 regulator
Required properties:
- compatible: "maxim,max8907"
- reg: I2C slave address
- interrupts: The interrupt output of the controller
- mbatt-supply: The input supply for MBATT, BBAT, SDBY, VRTC.
- in-v1-supply: The input supply for SD1.
- in-v2-supply: The input supply for SD2.
- in-v3-supply: The input supply for SD3.
- in1-supply: The input supply for LDO1.
...
- in20-supply: The input supply for LDO20.
- regulators: A node that houses a sub-node for each regulator within the
device. Each sub-node is identified using the node's name (or the deprecated
regulator-compatible property if present), with valid values listed below.
The content of each sub-node is defined by the standard binding for
regulators; see regulator.txt.
Optional properties:
- maxim,system-power-controller: Boolean property indicating that the PMIC
controls the overall system power.
The valid names for regulators are:
sd1, sd2, sd3, ldo1, ldo2, ldo3, ldo4, ldo5, ldo6, ldo7, ldo8, ldo9, ldo10,
ldo11, ldo12, ldo13, ldo14, ldo15, ldo16, ldo17, ldo18, ldo19, ldo20, out5v,
out33v, bbat, sdby, vrtc.
Example:
max8907@3c {
compatible = "maxim,max8907";
reg = <0x3c>;
interrupts = <0 86 0x4>;
maxim,system-power-controller;
mbatt-supply = <&some_reg>;
in-v1-supply = <&mbatt_reg>;
...
in1-supply = <&mbatt_reg>;
...
regulators {
mbatt_reg: mbatt {
regulator-name = "vbat_pmu";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
};
sd1 {
regulator-name = "nvvdd_sv1,vdd_cpu_pmu";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-always-on;
};
sd2 {
regulator-name = "nvvdd_sv2,vdd_core";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
};
...
};
};
};
@@ -0,0 +1,40 @@
Max8925 Voltage regulators
Required nodes:
-nodes:
- SDV1 for SDV SDV1
- SDV2 for SDV SDV2
- SDV3 for SDV SDV3
- LDO1 for LDO LDO1
- LDO2 for LDO LDO2
- LDO3 for LDO LDO3
- LDO4 for LDO LDO4
- LDO5 for LDO LDO5
- LDO6 for LDO LDO6
- LDO7 for LDO LDO7
- LDO8 for LDO LDO8
- LDO9 for LDO LDO9
- LDO10 for LDO LDO10
- LDO11 for LDO LDO11
- LDO12 for LDO LDO12
- LDO13 for LDO LDO13
- LDO14 for LDO LDO14
- LDO15 for LDO LDO15
- LDO16 for LDO LDO16
- LDO17 for LDO LDO17
- LDO18 for LDO LDO18
- LDO19 for LDO LDO19
- LDO20 for LDO LDO20
Optional properties:
- Any optional property defined in bindings/regulator/regulator.txt
Example:
SDV1 {
regulator-min-microvolt = <637500>;
regulator-max-microvolt = <1425000>;
regulator-boot-on;
regulator-always-on;
};
@@ -0,0 +1,78 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/maxim,max14577.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim MAX14577/MAX77836 MicroUSB and Companion Power Management IC regulators
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
description: |
This is a part of device tree bindings for Maxim MAX14577/MAX77836 MicroUSB
Integrated Circuit (MUIC).
See also Documentation/devicetree/bindings/mfd/maxim,max14577.yaml for
additional information and example.
properties:
compatible:
enum:
- maxim,max14577-regulator
- maxim,max77836-regulator
CHARGER:
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description: |
Current regulator.
properties:
regulator-min-microvolt: false
regulator-max-microvolt: false
SAFEOUT:
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description: |
Safeout LDO regulator (fixed voltage).
properties:
regulator-min-microamp: false
regulator-max-microamp: false
regulator-min-microvolt:
const: 4900000
regulator-max-microvolt:
const: 4900000
patternProperties:
"^LDO[12]$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description: |
Current regulator.
properties:
regulator-min-microamp: false
regulator-max-microamp: false
regulator-min-microvolt:
minimum: 800000
regulator-max-microvolt:
maximum: 3950000
allOf:
- if:
properties:
compatible:
contains:
const: maxim,max14577-regulator
then:
properties:
LDO1: false
LDO2: false
additionalProperties: false
@@ -0,0 +1,107 @@
# 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#
unevaluatedProperties: false
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";
};
};
};
};
...
@@ -0,0 +1,58 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/maxim,max20411.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim Integrated MAX20411 Step-Down DC-DC Converter
maintainers:
- Bjorn Andersson <andersson@kernel.org>
description:
The MAX20411 is a high-efficiency, DC-DC step-down converter. It provides
configurable output voltage in the range of 0.5V to 1.275V, configurable over
I2C.
allOf:
- $ref: regulator.yaml#
properties:
compatible:
const: maxim,max20411
reg:
maxItems: 1
enable-gpios:
description: GPIO connected to the EN pin, active high
vdd-supply:
description: Input supply for the device (VDD pin, 3.0V to 5.5V)
required:
- compatible
- reg
- enable-gpios
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@39 {
compatible = "maxim,max20411";
reg = <0x39>;
enable-gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1000000>;
};
};
...
@@ -0,0 +1,99 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/maxim,max77620-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Regulator for MAX77620 Power management IC from Maxim Semiconductor.
maintainers:
- Svyatoslav Ryhel <clamor95@gmail.com>
description:
Device has multiple DCDC(sd[0-3]) and LDOs(ldo[0-8]). The input supply
of these regulators are defined under parent device node. Details of
regulator properties are defined as child node under sub-node "regulators"
which is child node of device node.
patternProperties:
"^in-(sd[0-3]|ldo(0-1|2|3-5|4-6|7-8))-supply$":
$ref: /schemas/types.yaml#/definitions/phandle
description: Input supply for DCDC or LDO
"^(sd[0-3]|ldo[0-8])$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
properties:
maxim,active-fps-source:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
FPS source for the GPIOs to get enabled/disabled when system is in
active state. Valid values are:
- MAX77620_FPS_SRC_0: FPS source is FPS0.
- MAX77620_FPS_SRC_1: FPS source is FPS1
- MAX77620_FPS_SRC_2: FPS source is FPS2
- MAX77620_FPS_SRC_NONE: GPIO is not controlled by FPS events and
it gets enabled/disabled by register access.
Absence of this property will leave the FPS configuration register
for that GPIO to default configuration.
maxim,active-fps-power-up-slot:
$ref: /schemas/types.yaml#/definitions/uint32
description:
Sequencing event slot number on which the GPIO get enabled when
master FPS input event set to HIGH. This is applicable if FPS source
is selected as FPS0, FPS1 or FPS2.
enum: [0, 1, 2, 3, 4, 5, 6, 7]
maxim,active-fps-power-down-slot:
$ref: /schemas/types.yaml#/definitions/uint32
description:
Sequencing event slot number on which the GPIO get disabled when
master FPS input event set to LOW. This is applicable if FPS source
is selected as FPS0, FPS1 or FPS2.
enum: [0, 1, 2, 3, 4, 5, 6, 7]
maxim,suspend-fps-source:
$ref: /schemas/types.yaml#/definitions/uint32
description:
This is same as property "maxim,active-fps-source" but value get
configured when system enters in to suspend state.
maxim,suspend-fps-power-up-slot:
$ref: /schemas/types.yaml#/definitions/uint32
description:
This is same as property "maxim,active-fps-power-up-slot" but this
value get configured into FPS configuration register when system
enters into suspend. This is applicable if suspend state FPS source
is selected as FPS0, FPS1 or FPS2.
enum: [0, 1, 2, 3, 4, 5, 6, 7]
maxim,suspend-fps-power-down-slot:
$ref: /schemas/types.yaml#/definitions/uint32
description:
This is same as property "maxim,active-fps-power-down-slot" but this
value get configured into FPS configuration register when system
enters into suspend. This is applicable if suspend state FPS source
is selected as FPS0, FPS1 or FPS2.
enum: [0, 1, 2, 3, 4, 5, 6, 7]
maxim,ramp-rate-setting:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
Ramp rate(uV/us) setting to be configured to the device. The platform
may have different ramp rate than advertised ramp rate if it has design
variation from Maxim's recommended. On this case, platform specific
ramp rate is used for ramp time calculation and this property is used
for device register configurations. The measured ramp rate of platform
is provided by the regulator-ramp-delay.
Maxim Max77620 supports following ramp delay:
SD: 13.75mV/us, 27.5mV/us, 55mV/us
LDOs: 5mV/us, 100mV/us
enum: [5000, 13750, 27500, 55000, 100000]
additionalProperties: false
# see maxim,max77620.yaml for an example
@@ -0,0 +1,83 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/maxim,max77686.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim MAX77686 Power Management IC regulators
maintainers:
- Chanwoo Choi <cw00.choi@samsung.com>
- Krzysztof Kozlowski <krzk@kernel.org>
description: |
This is a part of device tree bindings for Maxim MAX77686 Power Management
Integrated Circuit (PMIC).
The Maxim MAX77686 provides high-efficiency Buck and 26 Low-DropOut (LDO)
regulators.
See also Documentation/devicetree/bindings/mfd/maxim,max77686.yaml for
additional information and example.
patternProperties:
# 26 LDOs
"^LDO([1-9]|1[0-9]|2[3-6])$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description: |
Properties for single LDO regulator.
Regulators which can be turned off during system suspend:
LDO2, LDO6-8, LDO10-12, LDO14-16
required:
- regulator-name
# LDO20-LDO22 with maxim,ena-gpios
"^LDO2[0-2]$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description: |
Properties for single LDO regulator.
properties:
maxim,ena-gpios:
maxItems: 1
description: |
GPIO specifier to enable the GPIO control (on/off) for regulator.
required:
- regulator-name
# 9 bucks
"^BUCK[1-7]$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description: |
Properties for single BUCK regulator.
Regulators which can be turned off during system suspend:
BUCK[1-4]
required:
- regulator-name
"^BUCK[89]$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description: |
Properties for single BUCK regulator.
properties:
maxim,ena-gpios:
maxItems: 1
description: |
GPIO specifier to enable the GPIO control (on/off) for regulator.
required:
- regulator-name
additionalProperties: false
@@ -0,0 +1,60 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/maxim,max77693.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim MAX77693 MicroUSB and Companion Power Management IC regulators
maintainers:
- Chanwoo Choi <cw00.choi@samsung.com>
- Krzysztof Kozlowski <krzk@kernel.org>
description: |
This is a part of device tree bindings for Maxim MAX77693 MicroUSB Integrated
Circuit (MUIC).
See also Documentation/devicetree/bindings/mfd/maxim,max77693.yaml for
additional information and example.
properties:
CHARGER:
type: object
$ref: regulator.yaml#
additionalProperties: false
description: |
Current regulator.
properties:
regulator-name: true
regulator-always-on: true
regulator-boot-on: true
regulator-min-microamp:
minimum: 60000
regulator-max-microamp:
maximum: 2580000
required:
- regulator-name
patternProperties:
"^ESAFEOUT[12]$":
type: object
$ref: regulator.yaml#
additionalProperties: false
description: |
Safeout LDO regulator.
properties:
regulator-name: true
regulator-always-on: true
regulator-boot-on: true
regulator-min-microvolt:
minimum: 3300000
regulator-max-microvolt:
maximum: 4950000
required:
- regulator-name
additionalProperties: false
@@ -0,0 +1,86 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/maxim,max77802.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim MAX77802 Power Management IC regulators
maintainers:
- Javier Martinez Canillas <javier@dowhile0.org>
- Krzysztof Kozlowski <krzk@kernel.org>
description: |
This is a part of device tree bindings for Maxim MAX77802 Power Management
Integrated Circuit (PMIC).
The Maxim MAX77686 provides 10 high-efficiency Buck and 32 Low-DropOut (LDO)
regulators.
See also Documentation/devicetree/bindings/mfd/maxim,max77802.yaml for
additional information and example.
Certain regulators support "regulator-initial-mode" and "regulator-mode".
The valid modes list is defined in the dt-bindings/regulator/maxim,max77802.h
and their meaning is::
1 - Normal regulator voltage output mode.
3 - Low Power which reduces the quiescent current down to only 1uA
The standard "regulator-mode" property can only be used for regulators that
support changing their mode to Low Power Mode during suspend. These
regulators are:: bucks 2-4 and LDOs 1-35. Also, it only takes effect if the
regulator has been enabled for the given suspend state using
"regulator-on-in-suspend" and has not been disabled for that state using
"regulator-off-in-suspend".
patternProperties:
# LDO1, LDO3, LDO20, LDO21
"^LDO([13]|2[01])$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description:
LDOs supporting the regulator-initial-mode property and changing their
mode during normal operation.
# LDO2, LDO4-15, LDO17-19, LDO23-30, LDO32-35
"^LDO([24-9]|1[0-5789]|2[3-9]|3[02345])$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description:
LDOs supporting the regulator-mode property (changing mode to Low Power
Mode during suspend).
properties:
regulator-initial-mode: false
# buck2-4
"^BUCK[2-4]$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description:
bucks supporting the regulator-mode property (changing mode to Low Power
Mode during suspend).
properties:
regulator-initial-mode: false
# buck1, buck5-10
"^BUCK([15-9]|10)$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
properties:
regulator-initial-mode: false
patternProperties:
"^regulator-state-(standby|mem|disk)$":
type: object
additionalProperties: true
properties:
regulator-mode: false
additionalProperties: false
@@ -0,0 +1,67 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/maxim,max77826.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim Integrated MAX77826 PMIC
maintainers:
- Iskren Chernev <iskren.chernev@gmail.com>
properties:
$nodename:
pattern: "pmic@[0-9a-f]{1,2}"
compatible:
enum:
- maxim,max77826
reg:
maxItems: 1
regulators:
type: object
$ref: regulator.yaml#
description: |
list of regulators provided by this controller, must be named
after their hardware counterparts LDO[1-15], BUCK and BUCKBOOST
patternProperties:
"^LDO([1-9]|1[0-5])$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
"^BUCK|BUCKBOOST$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
- reg
- regulators
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@69 {
compatible = "maxim,max77826";
reg = <0x69>;
regulators {
LDO2 {
regulator-min-microvolt = <650000>;
regulator-max-microvolt = <3587500>;
};
};
};
};
...
@@ -0,0 +1,68 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/maxim,max77838.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim Integrated MAX77838 PMIC
maintainers:
- Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
properties:
$nodename:
pattern: "pmic@[0-9a-f]{1,2}"
compatible:
enum:
- maxim,max77838
reg:
maxItems: 1
regulators:
type: object
$ref: regulator.yaml#
description: |
list of regulators provided by this controller, must be named
after their hardware counterparts ldo[1-4] and buck
properties:
buck:
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
patternProperties:
"^ldo([1-4])$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
- reg
- regulators
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@60 {
compatible = "maxim,max77838";
reg = <0x60>;
regulators {
ldo2 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
};
};
};
...
@@ -0,0 +1,65 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/maxim,max77843.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim MAX77843 MicroUSB and Companion Power Management IC regulators
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
description: |
This is a part of device tree bindings for Maxim MAX77843 MicroUSB Integrated
Circuit (MUIC).
See also Documentation/devicetree/bindings/mfd/maxim,max77843.yaml for
additional information and example.
properties:
compatible:
const: maxim,max77843-regulator
CHARGER:
type: object
$ref: regulator.yaml#
additionalProperties: false
description: |
Current regulator.
properties:
regulator-name: true
regulator-always-on: true
regulator-boot-on: true
regulator-min-microamp:
minimum: 100000
regulator-max-microamp:
maximum: 3150000
required:
- regulator-name
patternProperties:
"^SAFEOUT[12]$":
type: object
$ref: regulator.yaml#
additionalProperties: false
description: |
Safeout LDO regulator.
properties:
regulator-name: true
regulator-always-on: true
regulator-boot-on: true
regulator-min-microvolt:
minimum: 3300000
regulator-max-microvolt:
maximum: 4950000
required:
- regulator-name
required:
- compatible
additionalProperties: false
@@ -0,0 +1,109 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/maxim,max8952.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim MAX8952 voltage regulator
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
allOf:
- $ref: regulator.yaml#
properties:
compatible:
const: maxim,max8952
max8952,default-mode:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1, 2, 3]
description: |
index of default DVS voltage
max8952,dvs-mode-microvolt:
minItems: 4
maxItems: 4
items:
minimum: 770000
maximum: 1400000
description: |
Array of 4 integer values defining DVS voltages in microvolts. All values
must be from range <770000, 1400000>.
max8952,en-gpio:
maxItems: 1
description: |
GPIO used to control enable status of regulator
max8952,ramp-speed:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1, 2, 3, 4, 5, 6, 7]
default: 0
description: |
Voltage ramp speed, values map to:
- 0: 32mV/us
- 1: 16mV/us
- 2: 8mV/us
- 3: 4mV/us
- 4: 2mV/us
- 5: 1mV/us
- 6: 0.5mV/us
- 7: 0.25mV/us
Defaults to 32mV/us if not specified.
max8952,sync-freq:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1, 2]
default: 0
description: |
Sync frequency, values map to:
- 0: 26 MHz
- 1: 13 MHz
- 2: 19.2 MHz
Defaults to 26 MHz if not specified.
max8952,vid-gpios:
minItems: 2
maxItems: 2
description: |
Array of two GPIO pins used for DVS voltage selection
reg:
maxItems: 1
required:
- compatible
- max8952,dvs-mode-microvolt
- reg
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@60 {
compatible = "maxim,max8952";
reg = <0x60>;
max8952,vid-gpios = <&gpx0 3 GPIO_ACTIVE_HIGH>,
<&gpx0 4 GPIO_ACTIVE_HIGH>;
max8952,default-mode = <0>;
max8952,dvs-mode-microvolt = <1250000>, <1200000>,
<1050000>, <950000>;
max8952,sync-freq = <0>;
max8952,ramp-speed = <0>;
regulator-name = "VARM_1.2V_C210";
regulator-min-microvolt = <770000>;
regulator-max-microvolt = <1400000>;
regulator-always-on;
regulator-boot-on;
};
};
@@ -0,0 +1,141 @@
# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/maxim,max8973.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim MAX8973/MAX77621 voltage regulator
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
allOf:
- $ref: regulator.yaml#
properties:
compatible:
enum:
- maxim,max8973
- maxim,max77621
junction-warn-millicelsius:
description: |
Junction warning temperature threshold in millicelsius. If die
temperature crosses this level then device generates the warning
interrupts.
Please note that thermal functionality is only supported on MAX77621. The
supported threshold warning temperature for MAX77621 are 120 degC and 140
degC.
maxim,dvs-gpio:
maxItems: 1
description: |
GPIO which is connected to DVS pin of device.
maxim,dvs-default-state:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1]
description: |
Default state of GPIO during initialisation.
1 for HIGH and 0 for LOW.
maxim,externally-enable:
type: boolean
description: |
Externally control the regulator output enable/disable.
maxim,enable-gpio:
maxItems: 1
description: |
GPIO for enable control. If the valid GPIO is provided then externally
enable control will be considered.
maxim,enable-remote-sense:
type: boolean
description: Enable remote sense.
maxim,enable-falling-slew-rate:
type: boolean
description: Enable falling slew rate.
maxim,enable-active-discharge:
type: boolean
description: Eable active discharge.
maxim,enable-frequency-shift:
type: boolean
description: Enable 9% frequency shift.
maxim,enable-bias-control:
type: boolean
description: |
Enable bias control which can reduce the startup delay to 20us from 220us.
maxim,enable-etr:
type: boolean
description: Enable Enhanced Transient Response.
maxim,enable-high-etr-sensitivity:
type: boolean
description: |
Enhanced transient response circuit is enabled and set for high
sensitivity. If this property is available then etr will be enable
default.
Enhanced transient response (ETR) will affect the configuration of CKADV.
reg:
maxItems: 1
interrupts:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@1b {
compatible = "maxim,max8973";
reg = <0x1b>;
regulator-min-microvolt = <935000>;
regulator-max-microvolt = <1200000>;
regulator-boot-on;
regulator-always-on;
};
};
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@1b {
compatible = "maxim,max77621";
reg = <0x1b>;
interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1231250>;
regulator-name = "PPVAR_CPU";
regulator-ramp-delay = <12500>;
maxim,dvs-default-state = <1>;
maxim,enable-active-discharge;
maxim,enable-bias-control;
maxim,enable-etr;
maxim,enable-gpio = <&pmic 5 GPIO_ACTIVE_HIGH>;
maxim,externally-enable;
};
};
@@ -0,0 +1,446 @@
# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/maxim,max8997.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim MAX8997 Power Management IC
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
description: |
The Maxim MAX8997 is a Power Management IC which includes voltage and current
regulators, charger controller with fuel gauge, RTC, clock outputs, haptic
motor driver, flash LED driver and Micro-USB Interface Controller.
The binding here is not complete and describes only regulator and charger
controller parts.
properties:
compatible:
const: maxim,max8997-pmic
charger-supply:
description: |
Regulator node for charging current.
interrupts:
items:
- description: irq1 interrupt
- description: alert interrupt
max8997,pmic-buck1-dvs-voltage:
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 1
maxItems: 8
description: |
A set of 8 voltage values in micro-volt (uV) units for buck1 when
changing voltage using GPIO DVS.
If none of max8997,pmic-buck[1/2/5]-uses-gpio-dvs optional property is
specified, the max8997,pmic-buck[1/2/5]-dvs-voltage property should
specify at least one voltage level (which would be a safe operating
voltage).
max8997,pmic-buck2-dvs-voltage:
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 1
maxItems: 8
description: |
A set of 8 voltage values in micro-volt (uV) units for buck2 when
changing voltage using GPIO DVS.
If none of max8997,pmic-buck[1/2/5]-uses-gpio-dvs optional property is
specified, the max8997,pmic-buck[1/2/5]-dvs-voltage property should
specify at least one voltage level (which would be a safe operating
voltage).
max8997,pmic-buck5-dvs-voltage:
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 1
maxItems: 8
description: |
A set of 8 voltage values in micro-volt (uV) units for buck5 when
changing voltage using GPIO DVS.
If none of max8997,pmic-buck[1/2/5]-uses-gpio-dvs optional property is
specified, the max8997,pmic-buck[1/2/5]-dvs-voltage property should
specify at least one voltage level (which would be a safe operating
voltage).
max8997,pmic-buck1-uses-gpio-dvs:
type: boolean
description: |
buck1 can be controlled by GPIO DVS.
max8997,pmic-buck2-uses-gpio-dvs:
type: boolean
description: |
buck2 can be controlled by GPIO DVS.
max8997,pmic-buck5-uses-gpio-dvs:
type: boolean
description: |
buck5 can be controlled by GPIO DVS.
max8997,pmic-buck125-default-dvs-idx:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 0
maximum: 7
default: 0
description: |
Default voltage setting selected from the possible 8 options selectable
by the dvs gpios. The value of this property should be between 0 and 7.
If not specified or if out of range, the default value of this property
is set to 0.
max8997,pmic-buck125-dvs-gpios:
minItems: 3
maxItems: 3
description: |
GPIO specifiers for three host gpio's used for DVS.
max8997,pmic-ignore-gpiodvs-side-effect:
type: boolean
description: |
When GPIO-DVS mode is used for multiple bucks, changing the voltage value
of one of the bucks may affect that of another buck, which is the side
effect of the change (set_voltage). Use this property to ignore such
side effects and change the voltage.
reg:
maxItems: 1
regulators:
type: object
additionalProperties: false
description:
List of child nodes that specify the regulators.
patternProperties:
# 1-18 and 21 LDOs
"^LDO([1-9]|1[0-8]|21)$":
type: object
$ref: regulator.yaml#
description:
Properties for single LDO regulator.
properties:
regulator-name: true
required:
- regulator-name
unevaluatedProperties: false
# 7 bucks
"^BUCK[1-7]$":
type: object
$ref: regulator.yaml#
description:
Properties for single BUCK regulator.
properties:
regulator-name: true
required:
- regulator-name
unevaluatedProperties: false
"^EN32KHZ_[AC]P$":
type: object
$ref: regulator.yaml#
description:
32768 Hz clock output (modelled as regulator)
properties:
regulator-name: true
regulator-always-on: true
regulator-boot-on: true
required:
- regulator-name
additionalProperties: false
properties:
CHARGER:
type: object
$ref: regulator.yaml#
description: main battery charger current control
properties:
regulator-name: true
required:
- regulator-name
unevaluatedProperties: false
CHARGER_CV:
type: object
$ref: regulator.yaml#
description: main battery charger voltage control
properties:
regulator-name: true
required:
- regulator-name
unevaluatedProperties: false
CHARGER_TOPOFF:
type: object
$ref: regulator.yaml#
description: end of charge current threshold level
properties:
regulator-name: true
required:
- regulator-name
unevaluatedProperties: false
ENVICHG:
type: object
$ref: regulator.yaml#
description: |
Battery Charging Current Monitor Output. This is a fixed voltage type
regulator
properties:
regulator-name: true
required:
- regulator-name
unevaluatedProperties: false
ESAFEOUT1:
type: object
$ref: regulator.yaml#
description: LDO19
properties:
regulator-name: true
required:
- regulator-name
unevaluatedProperties: false
ESAFEOUT2:
type: object
$ref: regulator.yaml#
description: LDO20
properties:
regulator-name: true
required:
- regulator-name
unevaluatedProperties: false
required:
- compatible
- max8997,pmic-buck1-dvs-voltage
- max8997,pmic-buck2-dvs-voltage
- max8997,pmic-buck5-dvs-voltage
- reg
- regulators
dependencies:
max8997,pmic-buck1-uses-gpio-dvs: [ 'max8997,pmic-buck125-dvs-gpios' ]
max8997,pmic-buck2-uses-gpio-dvs: [ 'max8997,pmic-buck125-dvs-gpios' ]
max8997,pmic-buck5-uses-gpio-dvs: [ 'max8997,pmic-buck125-dvs-gpios' ]
additionalProperties: false
if:
anyOf:
- required:
- max8997,pmic-buck1-uses-gpio-dvs
- required:
- max8997,pmic-buck2-uses-gpio-dvs
- required:
- max8997,pmic-buck5-uses-gpio-dvs
then:
properties:
max8997,pmic-buck1-dvs-voltage:
minItems: 8
maxItems: 8
max8997,pmic-buck2-dvs-voltage:
minItems: 8
maxItems: 8
max8997,pmic-buck5-dvs-voltage:
minItems: 8
maxItems: 8
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@66 {
compatible = "maxim,max8997-pmic";
reg = <0x66>;
interrupts-extended = <&gpx0 7 IRQ_TYPE_LEVEL_LOW>,
<&gpx2 3 IRQ_TYPE_EDGE_FALLING>;
max8997,pmic-buck1-uses-gpio-dvs;
max8997,pmic-buck2-uses-gpio-dvs;
max8997,pmic-buck5-uses-gpio-dvs;
max8997,pmic-ignore-gpiodvs-side-effect;
max8997,pmic-buck125-default-dvs-idx = <0>;
max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
<&gpx0 6 GPIO_ACTIVE_HIGH>,
<&gpl0 0 GPIO_ACTIVE_HIGH>;
max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
<1250000>, <1200000>,
<1150000>, <1100000>,
<1000000>, <950000>;
max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
<950000>, <900000>,
<1100000>, <1000000>,
<950000>, <900000>;
max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
<1200000>, <1200000>,
<1200000>, <1200000>,
<1200000>, <1200000>;
pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
pinctrl-names = "default";
charger-supply = <&charger_reg>;
regulators {
LDO1 {
regulator-name = "VADC_3.3V_C210";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
LDO2 {
regulator-name = "VALIVE_1.1V_C210";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
regulator-always-on;
};
BUCK1 {
regulator-name = "VARM_1.2V_C210";
regulator-min-microvolt = <65000>;
regulator-max-microvolt = <2225000>;
regulator-always-on;
};
// ...
BUCK7 {
regulator-name = "VCC_SUB_2.0V";
regulator-min-microvolt = <2000000>;
regulator-max-microvolt = <2000000>;
regulator-always-on;
};
ESAFEOUT1 {
regulator-name = "SAFEOUT1";
};
ESAFEOUT2 {
regulator-name = "SAFEOUT2";
regulator-boot-on;
};
EN32KHZ_AP {
regulator-name = "EN32KHZ_AP";
regulator-always-on;
};
EN32KHZ_CP {
regulator-name = "EN32KHZ_CP";
regulator-always-on;
};
CHARGER {
regulator-name = "CHARGER";
regulator-min-microamp = <200000>;
regulator-max-microamp = <950000>;
};
CHARGER_CV {
regulator-name = "CHARGER_CV";
regulator-min-microvolt = <4200000>;
regulator-max-microvolt = <4200000>;
regulator-always-on;
};
CHARGER_TOPOFF {
regulator-name = "CHARGER_TOPOFF";
regulator-min-microamp = <200000>;
regulator-max-microamp = <200000>;
regulator-always-on;
};
};
};
};
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@66 {
compatible = "maxim,max8997-pmic";
reg = <0x66>;
interrupt-parent = <&gpx0>;
interrupts = <4 IRQ_TYPE_LEVEL_LOW>,
<3 IRQ_TYPE_EDGE_FALLING>;
pinctrl-names = "default";
pinctrl-0 = <&max8997_irq>;
max8997,pmic-buck1-dvs-voltage = <1350000>;
max8997,pmic-buck2-dvs-voltage = <1100000>;
max8997,pmic-buck5-dvs-voltage = <1200000>;
regulators {
LDO1 {
regulator-name = "VDD_ABB_3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
// ...
BUCK1 {
regulator-name = "VDD_ARM_1.2V";
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <1350000>;
regulator-always-on;
regulator-boot-on;
};
// ...
EN32KHZ_AP {
regulator-name = "EN32KHZ_AP";
regulator-always-on;
};
};
};
};
@@ -0,0 +1,70 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mediatek,mt6311-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MediaTek MT6311 Regulator
maintainers:
- AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
description:
The MediaTek MT6311 is an I2C power management IC that provides one step-down
converter and one low-dropout regulator. The regulators are named VDVFS and
VBIASN, respectively.
properties:
compatible:
const: mediatek,mt6311-regulator
reg:
description: I2C slave address.
maxItems: 1
regulators:
type: object
description: List of regulators provided by this controller.
patternProperties:
"^(VDVFS|VBIASN)$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
- reg
- regulators
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@6b {
compatible = "mediatek,mt6311-regulator";
reg = <0x6b>;
regulators {
VDVFS {
regulator-name = "VDVFS";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1400000>;
regulator-ramp-delay = <10000>;
};
VBIASN {
regulator-name = "VBIASN";
regulator-min-microvolt = <200000>;
regulator-max-microvolt = <800000>;
};
};
};
};
...
@@ -0,0 +1,76 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mediatek,mt6316b-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MediaTek MT6316 BP/VP SPMI PMIC Regulators
maintainers:
- AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
description:
The MediaTek MT6316BP/VP PMICs are fully controlled by SPMI interface, both
feature four step-down DC/DC (buck) converters, and provides 2+2 Phases,
joining Buck 1+2 for the first phase, and Buck 3+4 for the second phase.
properties:
compatible:
const: mediatek,mt6316b-regulator
reg:
maxItems: 1
patternProperties:
"^vbuck(12|34)$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
properties:
regulator-allowed-modes:
description: |
Allowed Buck regulator operating modes allowed. Valid values below.
0 - Normal mode with automatic power saving, reducing the switching
frequency when light load conditions are detected
1 - Forced Continuous Conduction mode (FCCM) for improved voltage
regulation accuracy with constant switching frequency but lower
regulator efficiency
2 - Forced Low Power mode for improved regulator efficiency, used
when no heavy load is expected, will shut down unnecessary IP
blocks and secondary phases to reduce quiescent current.
This mode does not limit the maximum output current but unless
only a light load is applied, there will be regulation accuracy
and efficiency losses.
minItems: 1
maxItems: 3
items:
enum: [ 0, 1, 2 ]
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/spmi/spmi.h>
spmi {
#address-cells = <2>;
#size-cells = <0>;
pmic@8 {
compatible = "mediatek,mt6316b-regulator";
reg = <0x8 SPMI_USID>;
vbuck12 {
regulator-name = "dvdd_core";
regulator-min-microvolt = <450000>;
regulator-max-microvolt = <965000>;
regulator-allowed-modes = <0 1 2>;
regulator-enable-ramp-delay = <256>;
};
};
};
...
@@ -0,0 +1,76 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mediatek,mt6316c-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MediaTek MT6316 CP/HP/KP SPMI PMIC Regulators
maintainers:
- AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
description:
The MediaTek MT6316CP/HP/KP PMICs are fully controlled by SPMI interface,
features four step-down DC/DC (buck) converters, and provides 3+1 Phases,
joining Buck 1+2+4 for the first phase, and uses Buck 3 for the second.
properties:
compatible:
const: mediatek,mt6316c-regulator
reg:
maxItems: 1
patternProperties:
"^vbuck(124|3)$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
properties:
regulator-allowed-modes:
description: |
Allowed Buck regulator operating modes allowed. Valid values below.
0 - Normal mode with automatic power saving, reducing the switching
frequency when light load conditions are detected
1 - Forced Continuous Conduction mode (FCCM) for improved voltage
regulation accuracy with constant switching frequency but lower
regulator efficiency
2 - Forced Low Power mode for improved regulator efficiency, used
when no heavy load is expected, will shut down unnecessary IP
blocks and secondary phases to reduce quiescent current.
This mode does not limit the maximum output current but unless
only a light load is applied, there will be regulation accuracy
and efficiency losses.
minItems: 1
maxItems: 3
items:
enum: [ 0, 1, 2 ]
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/spmi/spmi.h>
spmi {
#address-cells = <2>;
#size-cells = <0>;
pmic@6 {
compatible = "mediatek,mt6316c-regulator";
reg = <0x6 SPMI_USID>;
vbuck124 {
regulator-name = "dvdd_proc_m";
regulator-min-microvolt = <450000>;
regulator-max-microvolt = <1277500>;
regulator-allowed-modes = <0 1 2>;
regulator-enable-ramp-delay = <256>;
};
};
};
...
@@ -0,0 +1,75 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mediatek,mt6316d-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MediaTek MT6316 DP/TP SPMI PMIC Regulators
maintainers:
- AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
description:
The MediaTek MT6316DP/TP PMICs are fully controlled by SPMI interface, both
feature four step-down DC/DC (buck) converters, and provides a single Phase,
joining Buck 1+2+3+4.
properties:
compatible:
const: mediatek,mt6316d-regulator
reg:
maxItems: 1
vbuck1234:
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
properties:
regulator-allowed-modes:
description: |
Allowed Buck regulator operating modes allowed. Valid values below.
0 - Normal mode with automatic power saving, reducing the switching
frequency when light load conditions are detected
1 - Forced Continuous Conduction mode (FCCM) for improved voltage
regulation accuracy with constant switching frequency but lower
regulator efficiency
2 - Forced Low Power mode for improved regulator efficiency, used
when no heavy load is expected, will shut down unnecessary IP
blocks and secondary phases to reduce quiescent current.
This mode does not limit the maximum output current but unless
only a light load is applied, there will be regulation accuracy
and efficiency losses.
minItems: 1
maxItems: 3
items:
enum: [ 0, 1, 2 ]
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/spmi/spmi.h>
spmi {
#address-cells = <2>;
#size-cells = <0>;
pmic@7 {
compatible = "mediatek,mt6316d-regulator";
reg = <0x7 SPMI_USID>;
vbuck1234 {
regulator-name = "dvdd_gpustack";
regulator-min-microvolt = <400000>;
regulator-max-microvolt = <1277500>;
regulator-allowed-modes = <0 1 2>;
regulator-enable-ramp-delay = <256>;
};
};
};
...
@@ -0,0 +1,280 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mediatek,mt6331-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MT6331 Regulator from MediaTek Integrated
maintainers:
- AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
description: |
The MT6331 PMIC provides 6 BUCK and 21 LDO (Low Dropout) regulators
and nodes are named according to the regulator type:
buck-<name> and ldo-<name>.
MT6331 regulators node should be sub node of the MT6397 MFD node.
properties:
compatible:
const: mediatek,mt6331-regulator
patternProperties:
"^buck-v(core2|io18|dvfs11|dvfs12|dvfs13|dvfs14)$":
type: object
$ref: regulator.yaml#
properties:
regulator-name:
pattern: "^v(core2|io18|dvfs11|dvfs12|dvfs13|dvfs14)$"
unevaluatedProperties: false
"^ldo-(avdd32aud|vauxa32)$":
type: object
$ref: regulator.yaml#
properties:
regulator-name:
pattern: "^(avdd32_aud|vauxa32)$"
unevaluatedProperties: false
"^ldo-v(dig18|emc33|ibr|io28|mc|mch|mipi|rtc|sim1|sim2|sram|usb10)$":
type: object
$ref: regulator.yaml#
properties:
regulator-name:
pattern: "^v(dig18|emc33|ibr|io28|mc|mch|mipi|rtc|sim1|sim2|sram|usb)$"
unevaluatedProperties: false
"^ldo-vcam(a|af|d|io)$":
type: object
$ref: regulator.yaml#
properties:
regulator-name:
pattern: "^vcam(a|_af|d|io)$"
unevaluatedProperties: false
"^ldo-vtcxo[12]$":
type: object
$ref: regulator.yaml#
properties:
regulator-name:
pattern: "^vtcxo[12]$"
required:
- regulator-name
unevaluatedProperties: false
"^ldo-vgp[1234]$":
type: object
$ref: regulator.yaml#
properties:
regulator-name:
pattern: "^vgp[1234]$"
required:
- regulator-name
unevaluatedProperties: false
required:
- compatible
additionalProperties: false
examples:
- |
pmic {
regulators {
mt6331_vdvfs11_reg: buck-vdvfs11 {
regulator-name = "vdvfs11";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1493750>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <1>;
regulator-allowed-modes = <0 1>;
};
mt6331_vdvfs12_reg: buck-vdvfs12 {
regulator-name = "vdvfs12";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1493750>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <1>;
regulator-allowed-modes = <0 1>;
};
mt6331_vdvfs13_reg: buck-vdvfs13 {
regulator-name = "vdvfs13";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1493750>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <1>;
regulator-allowed-modes = <0 1>;
};
mt6331_vdvfs14_reg: buck-vdvfs14 {
regulator-name = "vdvfs14";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1493750>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <1>;
regulator-allowed-modes = <0 1>;
};
mt6331_vcore2_reg: buck-vcore2 {
regulator-name = "vcore2";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1493750>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <1>;
regulator-allowed-modes = <0 1>;
};
mt6331_vio18_reg: buck-vio18 {
regulator-name = "vio18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <0>;
regulator-allowed-modes = <0 1>;
};
mt6331_vtcxo1_reg: ldo-vtcxo1 {
regulator-name = "vtcxo1";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
regulator-boot-on;
};
mt6331_vtcxo2_reg: ldo-vtcxo2 {
regulator-name = "vtcxo2";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
regulator-boot-on;
};
mt6331_avdd32_aud_reg: ldo-avdd32aud {
regulator-name = "avdd32_aud";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3200000>;
};
mt6331_vauxa32_reg: ldo-vauxa32 {
regulator-name = "vauxa32";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3200000>;
};
mt6331_vcama_reg: ldo-vcama {
regulator-name = "vcama";
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
};
mt6331_vio28_reg: ldo-vio28 {
regulator-name = "vio28";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
regulator-boot-on;
};
mt6331_vcamaf_reg: ldo-vcamaf {
regulator-name = "vcam_af";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
};
mt6331_vmc_reg: ldo-vmc {
regulator-name = "vmc";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
};
mt6331_vmch_reg: ldo-vmch {
regulator-name = "vmch";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3300000>;
};
mt6331_vemc33_reg: ldo-vemc33 {
regulator-name = "vemc33";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
mt6331_vgp1_reg: ldo-vgp1 {
regulator-name = "vgp1";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
};
mt6331_vsim1_reg: ldo-vsim1 {
regulator-name = "vsim1";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <3100000>;
};
mt6331_vsim2_reg: ldo-vsim2 {
regulator-name = "vsim2";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <3100000>;
};
mt6331_vmipi_reg: ldo-vmipi {
regulator-name = "vmipi";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
};
mt6331_vibr_reg: ldo-vibr {
regulator-name = "vibr";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
};
mt6331_vgp4_reg: ldo-vgp4 {
regulator-name = "vgp4";
regulator-min-microvolt = <1600000>;
regulator-max-microvolt = <2200000>;
};
mt6331_vcamd_reg: ldo-vcamd {
regulator-name = "vcamd";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1500000>;
};
mt6331_vusb10_reg: ldo-vusb10 {
regulator-name = "vusb";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1300000>;
regulator-boot-on;
};
mt6331_vcamio_reg: ldo-vcamio {
regulator-name = "vcam_io";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1800000>;
};
mt6331_vsram_reg: ldo-vsram {
regulator-name = "vsram";
regulator-min-microvolt = <1012500>;
regulator-max-microvolt = <1012500>;
regulator-always-on;
regulator-boot-on;
};
mt6331_vgp2_reg: ldo-vgp2 {
regulator-name = "vgp2";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1500000>;
regulator-boot-on;
};
mt6331_vgp3_reg: ldo-vgp3 {
regulator-name = "vgp3";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1800000>;
};
mt6331_vrtc_reg: ldo-vrtc {
regulator-name = "vrtc";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
};
mt6331_vdig18_reg: ldo-vdig18 {
regulator-name = "dvdd18_dig";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
};
};
...
@@ -0,0 +1,119 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mediatek,mt6332-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MT6332 Regulator from MediaTek Integrated
maintainers:
- AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
description: |
The MT6332 Companion PMIC provides 6 BUCK and 4 LDO (Low Dropout)
regulators and nodes are named according to the regulator type:
buck-<name> and ldo-<name>.
MT6332 regulators node should be sub node of the MT6397 MFD node.
properties:
compatible:
const: mediatek,mt6332-regulator
patternProperties:
"^buck-v(dram|dvfs2|pa|rf18a|rf18b|sbst)$":
type: object
$ref: regulator.yaml#
properties:
regulator-name:
pattern: "^v(dram|dvfs2|pa|rf18a|rf18b|sbst)$"
unevaluatedProperties: false
"^ldo-v(bif28|dig18|sram|usb33)$":
type: object
$ref: regulator.yaml#
properties:
regulator-name:
pattern: "^v(bif28|dig18|sram|usb33)$"
unevaluatedProperties: false
required:
- compatible
additionalProperties: false
examples:
- |
pmic {
regulators {
mt6332_vdram_reg: buck-vdram {
regulator-name = "vdram";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1493750>;
regulator-ramp-delay = <12500>;
regulator-allowed-modes = <0 1>;
regulator-always-on;
};
mt6332_vdvfs2_reg: buck-vdvfs2 {
regulator-name = "vdvfs2";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1312500>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <1>;
regulator-allowed-modes = <0 1>;
};
mt6332_vpa_reg: buck-vpa {
regulator-name = "vpa";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
};
mt6332_vrf18a_reg: buck-vrf18a {
regulator-name = "vrf18a";
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <2240625>;
regulator-allowed-modes = <0 1>;
};
mt6332_vrf18b_reg: buck-vrf18b {
regulator-name = "vrf18b";
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <2240625>;
regulator-allowed-modes = <0 1>;
};
mt6332_vsbst_reg: buck-vsbst {
regulator-name = "vsbst";
regulator-min-microvolt = <3500000>;
regulator-max-microvolt = <7468750>;
};
mt6332_vauxb32_reg: ldo-vauxb32 {
regulator-name = "vauxb32";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3200000>;
};
mt6332_vbif28_reg: ldo-vbif28 {
regulator-name = "vbif28";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
mt6332_vdig18_reg: ldo-vdig18 {
regulator-name = "vdig18";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
mt6332_vsram_reg: ldo-vsram {
regulator-name = "vauxa32";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <1493750>;
regulator-always-on;
};
mt6332_vusb33_reg: ldo-vusb33 {
regulator-name = "vusb33";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
};
};
...
@@ -0,0 +1,284 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mediatek,mt6357-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MediaTek MT6357 Regulators
maintainers:
- Chen Zhong <chen.zhong@mediatek.com>
- Fabien Parent <fabien.parent@linaro.org>
- Alexandre Mergnat <amergnat@baylibre.com>
description: |
The MT6357 PMIC provides 5 BUCK and 29 LDO.
Regulators and nodes are named according to the regulator type:
- buck-<name>
- ldo-<name>.
MT6357 regulators node should be sub node of the MT6397 MFD node.
patternProperties:
"^buck-v(core|modem|pa|proc|s1)$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description:
Properties for single BUCK regulator.
required:
- regulator-name
- regulator-min-microvolt
- regulator-max-microvolt
"^ldo-v(camio18|aud28|aux18|io18|io28|rf12|rf18|cn18|cn28|fe28)$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description:
Properties for single fixed LDO regulator.
required:
- regulator-name
- regulator-min-microvolt
- regulator-max-microvolt
"^ldo-v(efuse|ibr|ldo28|mch|cama|camd|cn33-bt|cn33-wifi)$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description:
Properties for single LDO regulator.
required:
- regulator-name
- regulator-min-microvolt
- regulator-max-microvolt
"^ldo-v(xo22|emc|mc|sim1|sim2|sram-others|sram-proc|dram|usb33)$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description:
Properties for single LDO regulator.
required:
- regulator-name
- regulator-min-microvolt
- regulator-max-microvolt
additionalProperties: false
examples:
- |
pmic {
regulators {
mt6357_vproc_reg: buck-vproc {
regulator-name = "vproc";
regulator-min-microvolt = <518750>;
regulator-max-microvolt = <1312500>;
regulator-ramp-delay = <6250>;
regulator-enable-ramp-delay = <220>;
regulator-always-on;
};
mt6357_vcore_reg: buck-vcore {
regulator-name = "vcore";
regulator-min-microvolt = <518750>;
regulator-max-microvolt = <1312500>;
regulator-ramp-delay = <6250>;
regulator-enable-ramp-delay = <220>;
regulator-always-on;
};
mt6357_vmodem_reg: buck-vmodem {
regulator-name = "vmodem";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1193750>;
regulator-ramp-delay = <6250>;
regulator-enable-ramp-delay = <220>;
};
mt6357_vs1_reg: buck-vs1 {
regulator-name = "vs1";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <2200000>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <220>;
regulator-always-on;
};
mt6357_vpa_reg: buck-vpa {
regulator-name = "vpa";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3650000>;
regulator-ramp-delay = <50000>;
regulator-enable-ramp-delay = <220>;
};
mt6357_vfe28_reg: ldo-vfe28 {
regulator-name = "vfe28";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <264>;
};
mt6357_vxo22_reg: ldo-vxo22 {
regulator-name = "vxo22";
regulator-min-microvolt = <2200000>;
regulator-max-microvolt = <2400000>;
regulator-enable-ramp-delay = <110>;
};
mt6357_vrf18_reg: ldo-vrf18 {
regulator-name = "vrf18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <110>;
};
mt6357_vrf12_reg: ldo-vrf12 {
regulator-name = "vrf12";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-enable-ramp-delay = <110>;
};
mt6357_vefuse_reg: ldo-vefuse {
regulator-name = "vefuse";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <264>;
};
mt6357_vcn33_bt_reg: ldo-vcn33-bt {
regulator-name = "vcn33-bt";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3500000>;
regulator-enable-ramp-delay = <264>;
};
mt6357_vcn33_wifi_reg: ldo-vcn33-wifi {
regulator-name = "vcn33-wifi";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3500000>;
regulator-enable-ramp-delay = <264>;
};
mt6357_vcn28_reg: ldo-vcn28 {
regulator-name = "vcn28";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <264>;
};
mt6357_vcn18_reg: ldo-vcn18 {
regulator-name = "vcn18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <264>;
};
mt6357_vcama_reg: ldo-vcama {
regulator-name = "vcama";
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <264>;
};
mt6357_vcamd_reg: ldo-vcamd {
regulator-name = "vcamd";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <264>;
};
mt6357_vcamio_reg: ldo-vcamio18 {
regulator-name = "vcamio";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <264>;
};
mt6357_vldo28_reg: ldo-vldo28 {
regulator-name = "vldo28";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3000000>;
regulator-enable-ramp-delay = <264>;
};
mt6357_vsram_others_reg: ldo-vsram-others {
regulator-name = "vsram-others";
regulator-min-microvolt = <518750>;
regulator-max-microvolt = <1312500>;
regulator-ramp-delay = <6250>;
regulator-enable-ramp-delay = <110>;
regulator-always-on;
};
mt6357_vsram_proc_reg: ldo-vsram-proc {
regulator-name = "vsram-proc";
regulator-min-microvolt = <518750>;
regulator-max-microvolt = <1312500>;
regulator-ramp-delay = <6250>;
regulator-enable-ramp-delay = <110>;
regulator-always-on;
};
mt6357_vaux18_reg: ldo-vaux18 {
regulator-name = "vaux18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <264>;
};
mt6357_vaud28_reg: ldo-vaud28 {
regulator-name = "vaud28";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <264>;
};
mt6357_vio28_reg: ldo-vio28 {
regulator-name = "vio28";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <264>;
};
mt6357_vio18_reg: ldo-vio18 {
regulator-name = "vio18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <264>;
regulator-always-on;
};
mt6357_vdram_reg: ldo-vdram {
regulator-name = "vdram";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1200000>;
regulator-enable-ramp-delay = <3300>;
};
mt6357_vmc_reg: ldo-vmc {
regulator-name = "vmc";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <44>;
};
mt6357_vmch_reg: ldo-vmch {
regulator-name = "vmch";
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <44>;
};
mt6357_vemc_reg: ldo-vemc {
regulator-name = "vemc";
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <44>;
regulator-always-on;
};
mt6357_vsim1_reg: ldo-vsim1 {
regulator-name = "vsim1";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <3100000>;
regulator-enable-ramp-delay = <264>;
};
mt6357_vsim2_reg: ldo-vsim2 {
regulator-name = "vsim2";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <3100000>;
regulator-enable-ramp-delay = <264>;
};
mt6357_vibr_reg: ldo-vibr {
regulator-name = "vibr";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <44>;
};
mt6357_vusb33_reg: ldo-vusb33 {
regulator-name = "vusb33";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3100000>;
regulator-enable-ramp-delay = <264>;
};
};
};
...
@@ -0,0 +1,250 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mediatek,mt6358-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MediaTek MT6358 Regulator
maintainers:
- Zhiyong Tao <zhiyong.tao@mediatek.com>
description:
Regulator node of the PMIC. This node should under the PMIC's device node.
All voltage regulators provided by the PMIC are described as sub-nodes of
this node.
properties:
compatible:
oneOf:
- const: mediatek,mt6358-regulator
- items:
- const: mediatek,mt6366-regulator
- const: mediatek,mt6358-regulator
vsys-ldo1-supply:
description: Supply for LDOs vfe28, vxo22, vcn28, vaux18, vaud28, vsim1, vusb, vbif28
vsys-ldo2-supply:
description: Supply for LDOs vldo28 (MT6358 only), vio28, vmc, vmch, vsim2
vsys-ldo3-supply:
description: Supply for LDOs vcn33, vcama[12] (MT6358 only), vemc, vibr
vsys-vcore-supply:
description: Supply for buck regulator vcore
vsys-vdram1-supply:
description: Supply for buck regulator vdram1
vsys-vgpu-supply:
description: Supply for buck regulator vgpu
vsys-vmodem-supply:
description: Supply for buck regulator vmodem
vsys-vpa-supply:
description: Supply for buck regulator vpa
vsys-vproc11-supply:
description: Supply for buck regulator vproc11
vsys-vproc12-supply:
description: Supply for buck regulator vproc12
vsys-vs1-supply:
description: Supply for buck regulator vs1
vsys-vs2-supply:
description: Supply for buck regulator vs2
vs1-ldo1-supply:
description:
Supply for LDOs vrf18, vefuse, vcn18, vcamio (MT6358 only), vio18, vm18 (MT6366 only)
vs2-ldo1-supply:
description: Supply for LDOs vdram2, vmddr (MT6366 only)
vs2-ldo2-supply:
description: Supply for LDOs vrf12, va12
vs2-ldo3-supply:
description:
Supply for LDOs vsram-core (MT6366 only), vsram-gpu, vsram-others, vsram-proc11, vsram-proc12
vs2-ldo4-supply:
description: Supply for LDO vcamd
patternProperties:
"^(buck_)?v(core|dram1|gpu|modem|pa|proc1[12]|s[12])$":
description: Buck regulators
type: object
$ref: regulator.yaml#
properties:
regulator-allowed-modes:
description: |
Buck regulatpr operating modes allowed. Valid values below.
Users should use the macros from dt-bindings/regulator/mediatek,mt6397-regulator.h
0 (MT6397_BUCK_MODE_AUTO): Auto PFM/PWM mode
1 (MT6397_BUCK_MODE_FORCE_PWM): Forced PWM mode
items:
enum: [0, 1]
unevaluatedProperties: false
"^(ldo_)?v(a|rf)12$":
description: LDOs with fixed 1.2V output and 0~100/10mV tuning
type: object
$ref: regulator.yaml#
properties:
regulator-allowed-modes: false
unevaluatedProperties: false
"^(ldo_)?v((aux|cn|io|rf)18|camio)$":
description:
LDOs with fixed 1.8V output and 0~100/10mV tuning (vcn18 on MT6366 has variable output)
type: object
$ref: regulator.yaml#
properties:
regulator-allowed-modes: false
unevaluatedProperties: false
"^(ldo_)?vxo22$":
description: LDOs with fixed 2.2V output and 0~100/10mV tuning
type: object
$ref: regulator.yaml#
properties:
regulator-allowed-modes: false
unevaluatedProperties: false
"^(ldo_)?v(aud|bif|cn|fe|io)28$":
description: LDOs with fixed 2.8V output and 0~100/10mV tuning
type: object
$ref: regulator.yaml#
properties:
regulator-allowed-modes: false
unevaluatedProperties: false
"^(ldo_)?vusb$":
description: LDOs with fixed 3.0V output and 0~100/10mV tuning
type: object
$ref: regulator.yaml#
properties:
regulator-allowed-modes: false
unevaluatedProperties: false
"^(ldo_)?vsram[_-](core|gpu|others|proc1[12])$":
description: LDOs with variable output
type: object
$ref: regulator.yaml#
properties:
regulator-allowed-modes: false
unevaluatedProperties: false
"^(ldo_)?v(cama[12]|camd|cn33|dram2|efuse|emc|ibr|ldo28|m18|mc|mch|mddr|sim[12])$":
description: LDOs with variable output and 0~100/10mV tuning
type: object
$ref: regulator.yaml#
properties:
regulator-allowed-modes: false
unevaluatedProperties: false
required:
- compatible
additionalProperties: false
allOf:
- if:
properties:
compatible:
const: mediatek,mt6358-regulator
then:
patternProperties:
# Old regulator node name scheme (with prefix and underscores) only
# ([^y-] is used to avoid matching -supply
"^(?<!buck_)(?<!ldo_)v.*[^y-](?!-supply)$": false
"^ldo_vsram-": false
# vsram_core regulator doesn't exist on MT6358
"^ldo_vsram[-_]core$": false
properties:
# vm18 and vmddr regulators don't exist on MT6358
ldo_vm18: false
ldo_vmddr: false
- if:
properties:
compatible:
contains:
const: mediatek,mt6366-regulator
then:
patternProperties:
# Prefer cleaned up regulator node names
"^(buck|ldo)_": false
# Don't allow underscores
"^vsram_": false
# vcam* regulators don't exist on MT6366
"^vcam": false
properties:
# vldo28 regulator doesn't exist on MT6366
vldo28: false
# vs2_ldo4 supply pin doesn't exist on MT6366
vs2-ldo4-supply: false
examples:
- |
#include <dt-bindings/regulator/mediatek,mt6397-regulator.h>
regulator {
compatible = "mediatek,mt6358-regulator";
buck_vgpu {
regulator-name = "vgpu";
regulator-min-microvolt = <625000>;
regulator-max-microvolt = <900000>;
regulator-ramp-delay = <6250>;
regulator-enable-ramp-delay = <200>;
regulator-allowed-modes = <MT6397_BUCK_MODE_AUTO
MT6397_BUCK_MODE_FORCE_PWM>;
};
ldo_vsram_gpu {
regulator-name = "vsram_gpu";
regulator-min-microvolt = <850000>;
regulator-max-microvolt = <1000000>;
regulator-ramp-delay = <6250>;
regulator-enable-ramp-delay = <240>;
};
};
- |
#include <dt-bindings/regulator/mediatek,mt6397-regulator.h>
regulator {
compatible = "mediatek,mt6366-regulator", "mediatek,mt6358-regulator";
vdram1 {
regulator-name = "pp1125_emi_vdd2";
regulator-min-microvolt = <1125000>;
regulator-max-microvolt = <1125000>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <0>;
regulator-allowed-modes = <MT6397_BUCK_MODE_AUTO
MT6397_BUCK_MODE_FORCE_PWM>;
regulator-always-on;
};
vproc11 {
regulator-name = "ppvar_dvdd_proc_bc_mt6366";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1200000>;
regulator-ramp-delay = <6250>;
regulator-enable-ramp-delay = <200>;
regulator-allowed-modes = <MT6397_BUCK_MODE_AUTO
MT6397_BUCK_MODE_FORCE_PWM>;
regulator-always-on;
};
vmddr {
regulator-name = "pm0750_emi_vmddr";
regulator-min-microvolt = <700000>;
regulator-max-microvolt = <750000>;
regulator-enable-ramp-delay = <325>;
regulator-always-on;
};
vsram-proc11 {
regulator-name = "pp0900_dvdd_sram_bc";
regulator-min-microvolt = <850000>;
regulator-max-microvolt = <1120000>;
regulator-ramp-delay = <6250>;
regulator-enable-ramp-delay = <240>;
regulator-always-on;
};
};
...
@@ -0,0 +1,146 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mediatek,mt6363-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MediaTek MT6363 PMIC Regulators
maintainers:
- AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
description:
The MT6363 SPMI PMIC provides 10 BUCK and 25 LDO (Low DropOut) regulators
and can optionally provide overcurrent warnings with one ocp interrupt
for each voltage regulator.
properties:
compatible:
const: mediatek,mt6363-regulator
reg:
maxItems: 1
vsys-vbuck1-supply:
description: Input supply for vbuck1
vsys-vbuck2-supply:
description: Input supply for vbuck2
vsys-vbuck3-supply:
description: Input supply for vbuck3
vsys-vbuck4-supply:
description: Input supply for vbuck4
vsys-vbuck5-supply:
description: Input supply for vbuck5
vsys-vbuck6-supply:
description: Input supply for vbuck6
vsys-vbuck7-supply:
description: Input supply for vbuck7
vsys-vs1-supply:
description: Input supply for vs1
vsys-vs2-supply:
description: Input supply for vs2
vsys-vs3-supply:
description: Input supply for vs3
vs1-ldo1-supply:
description: Input supply for va15, vio0p75, vm18, vrf18, vrf-io18
vs1-ldo2-supply:
description: Input supply for vcn15, vio18, vufs18
vs2-ldo1-supply:
description: Input supply for vsram-cpub, vsram-cpum, vrf12, vrf13, vufs12
vs2-ldo2-supply:
description: Input supply for va12-1, va12-2, vcn13, vsram-cpul
vs3-ldo1-supply:
description: Input supply for vsram-apu, vsram-digrf, vsram-mdfe
vs3-ldo2-supply:
description: Input supply for vsram-modem, vrf0p9
vsys-ldo1-supply:
description: Input supply for vaux18, vemc, vtref18
patternProperties:
"^v(buck[1-7]|s[1-3])$":
description: Buck regulators
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
properties:
regulator-allowed-modes:
description: |
Allowed Buck regulator operating modes allowed. Valid values below.
0 - Normal mode with automatic power saving, reducing the switching
frequency when light load conditions are detected
1 - Forced Continuous Conduction mode (FCCM) for improved voltage
regulation accuracy with constant switching frequency but lower
regulator efficiency
2 - Forced Low Power mode for improved regulator efficiency, used
when no heavy load is expected, does not limit the maximum out
current but unless only a light load is applied, there will be
regulation accuracy and efficiency losses.
3 - Forced Ultra Low Power mode for ultra low load, this greatly
reduces the maximum output power, makes the regulator to be
efficient only for ultra light load, and greatly reduces the
quiescent current (Iq) of the buck.
maxItems: 3
items:
enum: [ 0, 1, 2, 3 ]
"^va(12-1|12-2|15)$":
$ref: "#/$defs/ldo-common"
"^v(aux|m|rf-io|tref)18$":
$ref: "#/$defs/ldo-common"
"^v(cn13|cn15|emc)$":
$ref: "#/$defs/ldo-common"
"^vio(0p75|18)$":
$ref: "#/$defs/ldo-common"
"^vrf(0p9|12|13|18)$":
$ref: "#/$defs/ldo-common"
"^vsram-(apu|cpub|cpum|cpul|digrf|mdfe|modem)$":
$ref: "#/$defs/ldo-common"
"^vufs(12|18)$":
$ref: "#/$defs/ldo-common"
$defs:
ldo-common:
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
properties:
regulator-allowed-modes:
description: |
Allowed LDO regulator operating modes allowed. Valid values below.
0 - Normal mode with automatic power saving, reducing the switching
frequency when light load conditions are detected
2 - Forced Low Power mode for improved regulator efficiency, used
when no heavy load is expected, does not limit the maximum out
current but unless only a light load is applied, there will be
regulation accuracy and efficiency losses.
maxItems: 2
items:
enum: [ 0, 2 ]
required:
- compatible
- reg
additionalProperties: false
@@ -0,0 +1,238 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mediatek,mt6397-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MediaTek MT6397 Regulator
maintainers:
- Sen Chu <sen.chu@mediatek.com>
- Macpaul Lin <macpaul.lin@mediatek.com>
description:
Regulator node of the PMIC. This node should under the PMIC's device node.
All voltage regulators provided by the PMIC are described as sub-nodes of
this node.
properties:
compatible:
items:
- const: mediatek,mt6397-regulator
patternProperties:
"^(buck_)?v(core|drm|gpu|io18|pca(7|15)|sramca(7|15))$":
description: Buck regulators
type: object
$ref: regulator.yaml#
properties:
regulator-allowed-modes:
description: |
BUCK regulators can set regulator-initial-mode and regulator-allowed-modes to
values specified in dt-bindings/regulator/mediatek,mt6397-regulator.h
items:
enum: [0, 1]
unevaluatedProperties: false
"^(ldo_)?v(tcxo|(a|io)28)$":
description: LDOs with fixed 2.8V output and 0~100/10mV tuning
type: object
$ref: regulator.yaml#
properties:
regulator-allowed-modes: false
unevaluatedProperties: false
"^(ldo_)?vusb$":
description: LDOs with fixed 3.0V output and 0~100/10mV tuning
type: object
$ref: regulator.yaml#
properties:
regulator-allowed-modes: false
unevaluatedProperties: false
"^(ldo_)?v(cama|emc3v3|gp[123456]|ibr|mc|mch)$":
description: LDOs with variable output and 0~100/10mV tuning
type: object
$ref: regulator.yaml#
properties:
regulator-allowed-modes: false
unevaluatedProperties: false
required:
- compatible
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
mt6397_regulators: regulators {
compatible = "mediatek,mt6397-regulator";
mt6397_vpca15_reg: buck_vpca15 {
regulator-name = "vpca15";
regulator-min-microvolt = < 850000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <200>;
};
mt6397_vpca7_reg: buck_vpca7 {
regulator-name = "vpca7";
regulator-min-microvolt = < 850000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <115>;
};
mt6397_vsramca15_reg: buck_vsramca15 {
regulator-name = "vsramca15";
regulator-min-microvolt = < 850000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <115>;
};
mt6397_vsramca7_reg: buck_vsramca7 {
regulator-name = "vsramca7";
regulator-min-microvolt = < 850000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <115>;
};
mt6397_vcore_reg: buck_vcore {
regulator-name = "vcore";
regulator-min-microvolt = < 850000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <115>;
};
mt6397_vgpu_reg: buck_vgpu {
regulator-name = "vgpu";
regulator-min-microvolt = < 700000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <115>;
};
mt6397_vdrm_reg: buck_vdrm {
regulator-name = "vdrm";
regulator-min-microvolt = < 800000>;
regulator-max-microvolt = <1400000>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <500>;
};
mt6397_vio18_reg: buck_vio18 {
regulator-name = "vio18";
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <2120000>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <500>;
};
mt6397_vtcxo_reg: ldo_vtcxo {
regulator-name = "vtcxo";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <90>;
};
mt6397_va28_reg: ldo_va28 {
regulator-name = "va28";
/* fixed output 2.8 V */
regulator-enable-ramp-delay = <218>;
};
mt6397_vcama_reg: ldo_vcama {
regulator-name = "vcama";
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <218>;
};
mt6397_vio28_reg: ldo_vio28 {
regulator-name = "vio28";
/* fixed output 2.8 V */
regulator-enable-ramp-delay = <240>;
};
mt6397_usb_reg: ldo_vusb {
regulator-name = "vusb";
/* fixed output 3.3 V */
regulator-enable-ramp-delay = <218>;
};
mt6397_vmc_reg: ldo_vmc {
regulator-name = "vmc";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <218>;
};
mt6397_vmch_reg: ldo_vmch {
regulator-name = "vmch";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <218>;
};
mt6397_vemc_3v3_reg: ldo_vemc3v3 {
regulator-name = "vemc_3v3";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <218>;
};
mt6397_vgp1_reg: ldo_vgp1 {
regulator-name = "vcamd";
regulator-min-microvolt = <1220000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <240>;
};
mt6397_vgp2_reg: ldo_vgp2 {
regulator-name = "vcamio";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <218>;
};
mt6397_vgp3_reg: ldo_vgp3 {
regulator-name = "vcamaf";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <218>;
};
mt6397_vgp4_reg: ldo_vgp4 {
regulator-name = "vgp4";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <218>;
};
mt6397_vgp5_reg: ldo_vgp5 {
regulator-name = "vgp5";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3000000>;
regulator-enable-ramp-delay = <218>;
};
mt6397_vgp6_reg: ldo_vgp6 {
regulator-name = "vgp6";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <218>;
};
mt6397_vibr_reg: ldo_vibr {
regulator-name = "vibr";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <218>;
};
};
@@ -0,0 +1,45 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mediatek,mt6873-dvfsrc-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MediaTek DVFSRC-controlled Regulators
description:
The Dynamic Voltage and Frequency Scaling Resource Collector Regulators
are controlled with votes to the DVFSRC hardware.
maintainers:
- AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
properties:
compatible:
enum:
- mediatek,mt6873-dvfsrc-regulator
- mediatek,mt6893-dvfsrc-regulator
- mediatek,mt8183-dvfsrc-regulator
- mediatek,mt8192-dvfsrc-regulator
- mediatek,mt8195-dvfsrc-regulator
- mediatek,mt8196-dvfsrc-regulator
dvfsrc-vcore:
description: DVFSRC-controlled SoC Vcore regulator
$ref: regulator.yaml#
unevaluatedProperties: false
dvfsrc-vscp:
description: DVFSRC-controlled System Control Processor regulator
$ref: regulator.yaml#
unevaluatedProperties: false
required:
- compatible
anyOf:
- required:
- dvfsrc-vcore
- required:
- dvfsrc-vscp
additionalProperties: false
@@ -0,0 +1,200 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/microchip,mcp16502.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MCP16502 - High-Performance PMIC
maintainers:
- Andrei Simion <andrei.simion@microchip.com>
description:
The MCP16502 is an optimally integrated PMIC compatible
with Microchip's eMPUs(Embedded Microprocessor Units),
requiring Dynamic Voltage Scaling (DVS) with the use
of High-Performance mode (HPM).
properties:
compatible:
const: microchip,mcp16502
lpm-gpios:
maxItems: 1
description: GPIO for LPM pin.
Note that this GPIO must remain high during
suspend-to-ram, keeping the PMIC into HIBERNATE mode.
reg:
maxItems: 1
lvin-supply:
description: Input supply phandle for LDO1 and LDO2
pvin1-supply:
description: Input supply phandle for VDD_IO (BUCK1)
pvin2-supply:
description: Input supply phandle for VDD_DDR (BUCK2)
pvin3-supply:
description: Input supply phandle for VDD_CORE (BUCK3)
pvin4-supply:
description: Input supply phandle for VDD_OTHER (BUCK4)
regulators:
type: object
additionalProperties: false
description: List of regulators and its properties.
patternProperties:
"^(VDD_(IO|CORE|DDR|OTHER)|LDO[1-2])$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
properties:
regulator-initial-mode:
enum: [2, 4]
default: 2
description: Initial operating mode
regulator-allowed-modes:
items:
enum: [2, 4]
description: Supported modes
2 - FPWM higher precision, higher consumption
4 - AutoPFM lower precision, lower consumption
required:
- compatible
- reg
- regulators
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@5b {
compatible = "microchip,mcp16502";
reg = <0x5b>;
lvin-supply = <&reg_5v>;
pvin1-supply = <&reg_5v>;
pvin2-supply = <&reg_5v>;
pvin3-supply = <&reg_5v>;
pvin4-supply = <&reg_5v>;
regulators {
VDD_IO {
regulator-name = "VDD_IO";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-initial-mode = <2>;
regulator-allowed-modes = <2>, <4>;
regulator-always-on;
regulator-state-standby {
regulator-on-in-suspend;
regulator-mode = <4>;
};
regulator-state-mem {
regulator-off-in-suspend;
regulator-mode = <4>;
};
};
VDD_DDR {
regulator-name = "VDD_DDR";
regulator-min-microvolt = <1350000>;
regulator-max-microvolt = <1350000>;
regulator-initial-mode = <2>;
regulator-allowed-modes = <2>, <4>;
regulator-always-on;
regulator-state-standby {
regulator-on-in-suspend;
regulator-mode = <4>;
};
regulator-state-mem {
regulator-on-in-suspend;
regulator-mode = <4>;
};
};
VDD_CORE {
regulator-name = "VDD_CORE";
regulator-min-microvolt = <1150000>;
regulator-max-microvolt = <1150000>;
regulator-initial-mode = <2>;
regulator-allowed-modes = <2>, <4>;
regulator-always-on;
regulator-state-standby {
regulator-on-in-suspend;
regulator-mode = <4>;
};
regulator-state-mem {
regulator-off-in-suspend;
regulator-mode = <4>;
};
};
VDD_OTHER {
regulator-name = "VDD_OTHER";
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1250000>;
regulator-initial-mode = <2>;
regulator-allowed-modes = <2>, <4>;
regulator-always-on;
regulator-state-standby {
regulator-on-in-suspend;
regulator-mode = <4>;
};
regulator-state-mem {
regulator-off-in-suspend;
regulator-mode = <4>;
};
};
LDO1 {
regulator-name = "LDO1";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-state-standby {
regulator-on-in-suspend;
};
regulator-state-mem {
regulator-off-in-suspend;
};
};
LDO2 {
regulator-name = "LDO2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3700000>;
regulator-always-on;
regulator-state-standby {
regulator-on-in-suspend;
};
regulator-state-mem {
regulator-off-in-suspend;
};
};
};
};
};
@@ -0,0 +1,47 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/motorola,cpcap-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Motorola CPCAP PMIC regulators
maintainers:
- Svyatoslav Ryhel <clamor95@gmail.com>
description:
This module is part of the Motorola CPCAP MFD device. For more details
see Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml. The
regulator controller is represented as a sub-node of the PMIC node
on the device tree.
properties:
compatible:
enum:
- motorola,cpcap-regulator
- motorola,mapphone-cpcap-regulator
- motorola,mot-cpcap-regulator
- motorola,xoom-cpcap-regulator
regulators:
type: object
patternProperties:
"^(SW[1-6]|V(CAM|CSI|DAC|DIG|FUSE|HVIO|SDIO|PLL|RF[12]|RFREF|WLAN[12]|SIM|SIMCARD|VIB|USB|AUDIO))$":
$ref: /schemas/regulator/regulator.yaml#
type: object
required:
- regulator-name
- regulator-enable-ramp-delay
- regulator-min-microvolt
- regulator-max-microvolt
unevaluatedProperties: false
required:
- compatible
additionalProperties: false
...
@@ -0,0 +1,78 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mps,mp5416.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Monolithic Power System MP5416 PMIC
maintainers:
- Saravanan Sekar <sravanhome@gmail.com>
properties:
$nodename:
pattern: "^pmic@[0-9a-f]{1,2}$"
compatible:
enum:
- mps,mp5416
- mps,mp5496
reg:
maxItems: 1
regulators:
type: object
description: |
list of regulators provided by this controller, must be named
after their hardware counterparts BUCK[1-4] and LDO[1-4]
patternProperties:
"^buck[1-4]$":
$ref: regulator.yaml#
unevaluatedProperties: false
type: object
"^ldo[1-4]$":
$ref: regulator.yaml#
unevaluatedProperties: false
type: object
additionalProperties: false
required:
- compatible
- reg
- regulators
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@69 {
compatible = "mps,mp5416";
reg = <0x69>;
regulators {
buck1 {
regulator-name = "buck1";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <2187500>;
regulator-min-microamp = <3800000>;
regulator-max-microamp = <6800000>;
regulator-boot-on;
};
ldo2 {
regulator-name = "ldo2";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3975000>;
};
};
};
};
...
@@ -0,0 +1,54 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mps,mp8859.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Monolithic Power Systems MP8859 Voltage Regulator
maintainers:
- Markus Reichl <reichl@t-online.de>
description:
The MP8859 is a synchronous, 4-switch, integrated buck-boost converter
capable of regulating the output voltage from 2.8V to 22V wide input voltage
range with high efficiency.
properties:
compatible:
const: mps,mp8859
reg:
maxItems: 1
mp8859_dcdc:
$ref: /schemas/regulator/regulator.yaml#
type: object
description: DCDC regulator subnode
unevaluatedProperties: false
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@66 {
compatible = "mps,mp8859";
reg = <0x66>;
mp8859_dcdc {
regulator-name = "dc_12v";
regulator-min-microvolt = <12000000>;
regulator-max-microvolt = <12000000>;
regulator-boot-on;
regulator-always-on;
};
};
};
@@ -0,0 +1,63 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mps,mp886x.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Monolithic Power Systems MP8867/MP8869 voltage regulator
maintainers:
- Jisheng Zhang <jszhang@kernel.org>
allOf:
- $ref: regulator.yaml#
properties:
compatible:
enum:
- mps,mp8867
- mps,mp8869
reg:
maxItems: 1
enable-gpios:
description: GPIO to enable/disable the regulator.
maxItems: 1
mps,fb-voltage-divider:
description: An array of two integers containing the resistor
values R1 and R2 of the feedback voltage divider in kilo ohms.
$ref: /schemas/types.yaml#/definitions/uint32-array
maxItems: 2
mps,switch-frequency-hz:
description: The valid switch frequency in Hertz.
enum: [500000, 750000, 1000000, 1250000, 1500000]
required:
- compatible
- reg
- enable-gpios
- mps,fb-voltage-divider
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@62 {
compatible = "mps,mp8869";
regulator-name = "vcpu";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1150000>;
enable-gpios = <&porta 1 GPIO_ACTIVE_LOW>;
mps,fb-voltage-divider = <80 240>;
reg = <0x62>;
};
};
...
@@ -0,0 +1,59 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mps,mpq2286.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Monolithic Power System MPQ2286 PMIC
maintainers:
- Saravanan Sekar <saravanan@linumiz.com>
properties:
compatible:
enum:
- mps,mpq2286
reg:
maxItems: 1
regulators:
type: object
properties:
buck:
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
- reg
- regulators
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@3 {
compatible = "mps,mpq2286";
reg = <0x3>;
regulators {
buck {
regulator-name = "buck";
regulator-min-microvolt = <1600000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
};
};
};
};
...
@@ -0,0 +1,117 @@
# 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
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:
$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
ldortc:
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
patternProperties:
"^ldo[1-4]$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
"^buck[1-4]$":
type: object
$ref: regulator.yaml#
properties:
mps,buck-softstart:
$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:
$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
unevaluatedProperties: 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>;
};
};
};
};
...
@@ -0,0 +1,68 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mps,mpq7932.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Monolithic Power System MPQ7932 PMIC
maintainers:
- Saravanan Sekar <saravanan@linumiz.com>
properties:
compatible:
enum:
- mps,mpq7932
reg:
maxItems: 1
regulators:
type: object
description: |
list of regulators provided by this controller, must be named
after their hardware counterparts BUCK[1-6]
patternProperties:
"^buck[1-6]$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
- reg
- regulators
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@3 {
compatible = "mps,mpq7932";
reg = <0x3>;
regulators {
buck1 {
regulator-name = "buck1";
regulator-min-microvolt = <1600000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
};
buck2 {
regulator-name = "buck2";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <1800000>;
regulator-boot-on;
};
};
};
};
...
@@ -0,0 +1,80 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mt6315-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Mediatek MT6315 Regulator
maintainers:
- Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>
description: |
The MT6315 is a power management IC (PMIC) configurable with SPMI.
that contains 4 BUCKs output which can combine with each other
by different efuse settings.
properties:
compatible:
oneOf:
- items:
- const: mediatek,mt6319-regulator
- const: mediatek,mt6315-regulator
- const: mediatek,mt6315-regulator
reg:
maxItems: 1
pvdd1-supply:
description: Supply for regulator vbuck1
pvdd2-supply:
description: Supply for regulator vbuck2
pvdd3-supply:
description: Supply for regulator vbuck3
pvdd4-supply:
description: Supply for regulator vbuck4
regulators:
type: object
description: List of regulators and its properties
patternProperties:
"^vbuck[1-4]$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
- reg
- regulators
additionalProperties: false
examples:
- |
pmic@6 {
compatible = "mediatek,mt6315-regulator";
reg = <0x6 0>;
pvdd1-supply = <&pp4200_z2>;
pvdd3-supply = <&pp4200_z2>;
regulators {
vbuck1 {
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <1193750>;
regulator-enable-ramp-delay = <256>;
regulator-allowed-modes = <0 1 2>;
};
vbuck3 {
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <1193750>;
regulator-enable-ramp-delay = <256>;
regulator-allowed-modes = <0 1 2>;
};
};
};
@@ -0,0 +1,237 @@
Mediatek MT6323 Regulator
All voltage regulators are defined as subnodes of the regulators node. A list
of regulators provided by this controller are defined as subnodes of the
PMIC's node. Each regulator is named according to its regulator type,
buck_<name> and ldo_<name>. The definition for each of these nodes is defined
using the standard binding for regulators at
Documentation/devicetree/bindings/regulator/regulator.txt.
The valid names for regulators are::
BUCK:
buck_vproc, buck_vsys, buck_vpa
LDO:
ldo_vtcxo, ldo_vcn28, ldo_vcn33_bt, ldo_vcn33_wifi, ldo_va, ldo_vcama,
ldo_vio28, ldo_vusb, ldo_vmc, ldo_vmch, ldo_vemc3v3, ldo_vgp1, ldo_vgp2,
ldo_vgp3, ldo_vcn18, ldo_vsim1, ldo_vsim2, ldo_vrtc, ldo_vcamaf, ldo_vibr,
ldo_vrf18, ldo_vm, ldo_vio18, ldo_vcamd, ldo_vcamio
Example:
pmic: mt6323 {
mt6323regulator: regulators {
mt6323_vproc_reg: buck_vproc{
regulator-name = "vproc";
regulator-min-microvolt = < 700000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <12500>;
regulator-always-on;
regulator-boot-on;
};
mt6323_vsys_reg: buck_vsys{
regulator-name = "vsys";
regulator-min-microvolt = <1400000>;
regulator-max-microvolt = <2987500>;
regulator-ramp-delay = <25000>;
regulator-always-on;
regulator-boot-on;
};
mt6323_vpa_reg: buck_vpa{
regulator-name = "vpa";
regulator-min-microvolt = < 500000>;
regulator-max-microvolt = <3650000>;
};
mt6323_vtcxo_reg: ldo_vtcxo{
regulator-name = "vtcxo";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <90>;
regulator-always-on;
regulator-boot-on;
};
mt6323_vcn28_reg: ldo_vcn28{
regulator-name = "vcn28";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <185>;
};
mt6323_vcn33_bt_reg: ldo_vcn33_bt{
regulator-name = "vcn33_bt";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3600000>;
regulator-enable-ramp-delay = <185>;
};
mt6323_vcn33_wifi_reg: ldo_vcn33_wifi{
regulator-name = "vcn33_wifi";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3600000>;
regulator-enable-ramp-delay = <185>;
};
mt6323_va_reg: ldo_va{
regulator-name = "va";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <216>;
regulator-always-on;
regulator-boot-on;
};
mt6323_vcama_reg: ldo_vcama{
regulator-name = "vcama";
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <216>;
};
mt6323_vio28_reg: ldo_vio28{
regulator-name = "vio28";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <216>;
regulator-always-on;
regulator-boot-on;
};
mt6323_vusb_reg: ldo_vusb{
regulator-name = "vusb";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <216>;
regulator-boot-on;
};
mt6323_vmc_reg: ldo_vmc{
regulator-name = "vmc";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <36>;
regulator-boot-on;
};
mt6323_vmch_reg: ldo_vmch{
regulator-name = "vmch";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <36>;
regulator-boot-on;
};
mt6323_vemc3v3_reg: ldo_vemc3v3{
regulator-name = "vemc3v3";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <36>;
regulator-boot-on;
};
mt6323_vgp1_reg: ldo_vgp1{
regulator-name = "vgp1";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <216>;
};
mt6323_vgp2_reg: ldo_vgp2{
regulator-name = "vgp2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3000000>;
regulator-enable-ramp-delay = <216>;
};
mt6323_vgp3_reg: ldo_vgp3{
regulator-name = "vgp3";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <216>;
};
mt6323_vcn18_reg: ldo_vcn18{
regulator-name = "vcn18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <216>;
};
mt6323_vsim1_reg: ldo_vsim1{
regulator-name = "vsim1";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3000000>;
regulator-enable-ramp-delay = <216>;
};
mt6323_vsim2_reg: ldo_vsim2{
regulator-name = "vsim2";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3000000>;
regulator-enable-ramp-delay = <216>;
};
mt6323_vrtc_reg: ldo_vrtc{
regulator-name = "vrtc";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
regulator-boot-on;
};
mt6323_vcamaf_reg: ldo_vcamaf{
regulator-name = "vcamaf";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <216>;
};
mt6323_vibr_reg: ldo_vibr{
regulator-name = "vibr";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <36>;
};
mt6323_vrf18_reg: ldo_vrf18{
regulator-name = "vrf18";
regulator-min-microvolt = <1825000>;
regulator-max-microvolt = <1825000>;
regulator-enable-ramp-delay = <187>;
};
mt6323_vm_reg: ldo_vm{
regulator-name = "vm";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <216>;
regulator-always-on;
regulator-boot-on;
};
mt6323_vio18_reg: ldo_vio18{
regulator-name = "vio18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <216>;
regulator-always-on;
regulator-boot-on;
};
mt6323_vcamd_reg: ldo_vcamd{
regulator-name = "vcamd";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <216>;
};
mt6323_vcamio_reg: ldo_vcamio{
regulator-name = "vcamio";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <216>;
};
};
};
@@ -0,0 +1,341 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mt6359-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MT6359 Regulator from MediaTek Integrated
maintainers:
- Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>
description: |
List of regulators provided by this controller. It is named
according to its regulator type, buck_<name> and ldo_<name>.
MT6359 regulators node should be sub node of the MT6397 MFD node.
patternProperties:
"^buck_v(s1|gpu11|modem|pu|core|s2|pa|proc2|proc1|core_sshub)$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
"^ldo_v(ibr|rf12|usb|camio|efuse|xo22)$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
"^ldo_v(rfck|emc|a12|a09|ufs|bbck)$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
"^ldo_vcn(18|13|33_[12])$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
"^ldo_vsram_(proc2|others|md|proc1|others_sshub)$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
"^ldo_v(fe|bif|io)28$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
"^ldo_v(aud|io|aux|rf|m)18$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
"^ldo_vsim[12]$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
"^ldo_vcn33_[12]_(bt|wifi)$":
type: object
$ref: regulator.yaml#
description:
vcn33_[12]_(bt|wifi) are incorrect representations.
Use vcn33_[12] instead.
deprecated: true
unevaluatedProperties: false
additionalProperties: false
examples:
- |
pmic {
regulators {
mt6359_vs1_buck_reg: buck_vs1 {
regulator-name = "vs1";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <2200000>;
regulator-enable-ramp-delay = <0>;
regulator-always-on;
};
mt6359_vgpu11_buck_reg: buck_vgpu11 {
regulator-name = "vgpu11";
regulator-min-microvolt = <400000>;
regulator-max-microvolt = <1193750>;
regulator-ramp-delay = <5000>;
regulator-enable-ramp-delay = <200>;
regulator-allowed-modes = <0 1 2>;
};
mt6359_vmodem_buck_reg: buck_vmodem {
regulator-name = "vmodem";
regulator-min-microvolt = <400000>;
regulator-max-microvolt = <1100000>;
regulator-ramp-delay = <10760>;
regulator-enable-ramp-delay = <200>;
};
mt6359_vpu_buck_reg: buck_vpu {
regulator-name = "vpu";
regulator-min-microvolt = <400000>;
regulator-max-microvolt = <1193750>;
regulator-ramp-delay = <5000>;
regulator-enable-ramp-delay = <200>;
regulator-allowed-modes = <0 1 2>;
};
mt6359_vcore_buck_reg: buck_vcore {
regulator-name = "vcore";
regulator-min-microvolt = <400000>;
regulator-max-microvolt = <1300000>;
regulator-ramp-delay = <5000>;
regulator-enable-ramp-delay = <200>;
regulator-allowed-modes = <0 1 2>;
};
mt6359_vs2_buck_reg: buck_vs2 {
regulator-name = "vs2";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1600000>;
regulator-enable-ramp-delay = <0>;
regulator-always-on;
};
mt6359_vpa_buck_reg: buck_vpa {
regulator-name = "vpa";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3650000>;
regulator-enable-ramp-delay = <300>;
};
mt6359_vproc2_buck_reg: buck_vproc2 {
regulator-name = "vproc2";
regulator-min-microvolt = <400000>;
regulator-max-microvolt = <1193750>;
regulator-ramp-delay = <7500>;
regulator-enable-ramp-delay = <200>;
regulator-allowed-modes = <0 1 2>;
};
mt6359_vproc1_buck_reg: buck_vproc1 {
regulator-name = "vproc1";
regulator-min-microvolt = <400000>;
regulator-max-microvolt = <1193750>;
regulator-ramp-delay = <7500>;
regulator-enable-ramp-delay = <200>;
regulator-allowed-modes = <0 1 2>;
};
mt6359_vcore_sshub_buck_reg: buck_vcore_sshub {
regulator-name = "vcore_sshub";
regulator-min-microvolt = <400000>;
regulator-max-microvolt = <1193750>;
};
mt6359_vgpu11_sshub_buck_reg: buck_vgpu11_sshub {
regulator-name = "vgpu11_sshub";
regulator-min-microvolt = <400000>;
regulator-max-microvolt = <1193750>;
};
mt6359_vaud18_ldo_reg: ldo_vaud18 {
regulator-name = "vaud18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <240>;
};
mt6359_vsim1_ldo_reg: ldo_vsim1 {
regulator-name = "vsim1";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <3100000>;
};
mt6359_vibr_ldo_reg: ldo_vibr {
regulator-name = "vibr";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
};
mt6359_vrf12_ldo_reg: ldo_vrf12 {
regulator-name = "vrf12";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1300000>;
};
mt6359_vusb_ldo_reg: ldo_vusb {
regulator-name = "vusb";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-enable-ramp-delay = <960>;
regulator-always-on;
};
mt6359_vsram_proc2_ldo_reg: ldo_vsram_proc2 {
regulator-name = "vsram_proc2";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1293750>;
regulator-ramp-delay = <7500>;
regulator-enable-ramp-delay = <240>;
regulator-always-on;
};
mt6359_vio18_ldo_reg: ldo_vio18 {
regulator-name = "vio18";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <1900000>;
regulator-enable-ramp-delay = <960>;
regulator-always-on;
};
mt6359_vcamio_ldo_reg: ldo_vcamio {
regulator-name = "vcamio";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <1900000>;
};
mt6359_vcn18_ldo_reg: ldo_vcn18 {
regulator-name = "vcn18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <240>;
};
mt6359_vfe28_ldo_reg: ldo_vfe28 {
regulator-name = "vfe28";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <120>;
};
mt6359_vcn13_ldo_reg: ldo_vcn13 {
regulator-name = "vcn13";
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1300000>;
};
mt6359_vcn33_1_bt_ldo_reg: ldo_vcn33_1 {
regulator-name = "vcn33_1";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3500000>;
};
mt6359_vaux18_ldo_reg: ldo_vaux18 {
regulator-name = "vaux18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <240>;
regulator-always-on;
};
mt6359_vsram_others_ldo_reg: ldo_vsram_others {
regulator-name = "vsram_others";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1293750>;
regulator-ramp-delay = <5000>;
regulator-enable-ramp-delay = <240>;
};
mt6359_vefuse_ldo_reg: ldo_vefuse {
regulator-name = "vefuse";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <2000000>;
};
mt6359_vxo22_ldo_reg: ldo_vxo22 {
regulator-name = "vxo22";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2200000>;
regulator-always-on;
};
mt6359_vrfck_ldo_reg: ldo_vrfck {
regulator-name = "vrfck";
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <1700000>;
};
mt6359_vrfck_1_ldo_reg: ldo_vrfck_1 {
regulator-name = "vrfck_1";
regulator-min-microvolt = <1240000>;
regulator-max-microvolt = <1600000>;
};
mt6359_vbif28_ldo_reg: ldo_vbif28 {
regulator-name = "vbif28";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <240>;
};
mt6359_vio28_ldo_reg: ldo_vio28 {
regulator-name = "vio28";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
mt6359_vemc_ldo_reg: ldo_vemc {
regulator-name = "vemc";
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <3300000>;
};
mt6359_vemc_1_ldo_reg: ldo_vemc_1 {
regulator-name = "vemc_1";
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <3300000>;
};
mt6359_vcn33_2_bt_ldo_reg: ldo_vcn33_2 {
regulator-name = "vcn33_2";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3500000>;
};
mt6359_va12_ldo_reg: ldo_va12 {
regulator-name = "va12";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1300000>;
regulator-always-on;
};
mt6359_va09_ldo_reg: ldo_va09 {
regulator-name = "va09";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1200000>;
};
mt6359_vrf18_ldo_reg: ldo_vrf18 {
regulator-name = "vrf18";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <1810000>;
};
mt6359_vsram_md_ldo_reg: ldo_vsram_md {
regulator-name = "vsram_md";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1293750>;
regulator-ramp-delay = <10760>;
regulator-enable-ramp-delay = <240>;
};
mt6359_vufs_ldo_reg: ldo_vufs {
regulator-name = "vufs";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <1900000>;
};
mt6359_vm18_ldo_reg: ldo_vm18 {
regulator-name = "vm18";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <1900000>;
regulator-always-on;
};
mt6359_vbbck_ldo_reg: ldo_vbbck {
regulator-name = "vbbck";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1200000>;
};
mt6359_vsram_proc1_ldo_reg: ldo_vsram_proc1 {
regulator-name = "vsram_proc1";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1293750>;
regulator-ramp-delay = <7500>;
regulator-enable-ramp-delay = <240>;
regulator-always-on;
};
mt6359_vsim2_ldo_reg: ldo_vsim2 {
regulator-name = "vsim2";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <3100000>;
};
mt6359_vsram_others_sshub_ldo: ldo_vsram_others_sshub {
regulator-name = "vsram_others_sshub";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1293750>;
};
};
};
...
@@ -0,0 +1,111 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mt6360-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MT6360 Regulator from MediaTek Integrated
maintainers:
- Gene Chen <gene_chen@richtek.com>
description: |
list of regulators provided by this controller, must be named
after their hardware counterparts buck1/2 or ldo1/2/3/5/6/7
properties:
compatible:
const: mediatek,mt6360-regulator
BUCK1_VIN-supply:
description: Input supply phandle(s) for BUCK1
BUCK2_VIN-supply:
description: Input supply phandle(s) for BUCK2
LDO_VIN1-supply:
description: Input supply phandle(s) for LDO1/2/3
LDO_VIN2-supply:
description: Input supply phandle(s) for LDO5
LDO_VIN3-supply:
description: Input supply phandle(s) for LDO6/7
patternProperties:
"^buck[12]$":
$ref: regulator.yaml#
unevaluatedProperties: false
"^ldo[123567]$":
$ref: regulator.yaml#
unevaluatedProperties: false
required:
- compatible
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/regulator/mediatek,mt6360-regulator.h>
regulator {
compatible = "mediatek,mt6360-regulator";
LDO_VIN3-supply = <&BUCK2>;
buck1 {
regulator-name = "mt6360,buck1";
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <1300000>;
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
MT6360_OPMODE_LP
MT6360_OPMODE_ULP>;
};
BUCK2: buck2 {
regulator-name = "mt6360,buck2";
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <1300000>;
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
MT6360_OPMODE_LP
MT6360_OPMODE_ULP>;
};
ldo6 {
regulator-name = "mt6360,ldo6";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <2100000>;
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
MT6360_OPMODE_LP>;
};
ldo7 {
regulator-name = "mt6360,ldo7";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <2100000>;
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
MT6360_OPMODE_LP>;
};
ldo1 {
regulator-name = "mt6360,ldo1";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3600000>;
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
MT6360_OPMODE_LP>;
};
ldo2 {
regulator-name = "mt6360,ldo2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3600000>;
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
MT6360_OPMODE_LP>;
};
ldo3 {
regulator-name = "mt6360,ldo3";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3600000>;
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
MT6360_OPMODE_LP>;
};
ldo5 {
regulator-name = "mt6360,ldo5";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3600000>;
regulator-allowed-modes = <MT6360_OPMODE_NORMAL
MT6360_OPMODE_LP>;
};
};
...
@@ -0,0 +1,89 @@
MediaTek MT6380 Regulator
All voltage regulators provided by the MT6380 PMIC are described as the
subnodes of the MT6380 regulators node. Each regulator is named according
to its regulator type, buck-<name> and ldo-<name>. The definition for each
of these nodes is defined using the standard binding for regulators at
Documentation/devicetree/bindings/regulator/regulator.txt.
The valid names for regulators are:
BUCK:
buck-core1, buck-vcore, buck-vrf
LDO:
ldo-vm ,ldo-va , ldo-vphy, ldo-vddr, ldo-vt
Example:
regulators {
compatible = "mediatek,mt6380-regulator";
mt6380_vcpu_reg: buck-vcore1 {
regulator-name = "vcore1";
regulator-min-microvolt = < 600000>;
regulator-max-microvolt = <1393750>;
regulator-ramp-delay = <6250>;
regulator-always-on;
regulator-boot-on;
};
mt6380_vcore_reg: buck-vcore {
regulator-name = "vcore";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1393750>;
regulator-ramp-delay = <6250>;
};
mt6380_vrf_reg: buck-vrf {
regulator-name = "vrf";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1575000>;
regulator-ramp-delay = <0>;
regulator-always-on;
regulator-boot-on;
};
mt6380_vm_reg: ldo-vm {
regulator-name = "vm";
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1400000>;
regulator-ramp-delay = <0>;
regulator-always-on;
regulator-boot-on;
};
mt6380_va_reg: ldo-va {
regulator-name = "va";
regulator-min-microvolt = <2200000>;
regulator-max-microvolt = <3300000>;
regulator-ramp-delay = <0>;
regulator-always-on;
regulator-boot-on;
};
mt6380_vphy_reg: ldo-vphy {
regulator-name = "vphy";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-ramp-delay = <0>;
regulator-always-on;
regulator-boot-on;
};
mt6380_vddr_reg: ldo-vddr {
regulator-name = "vddr";
regulator-min-microvolt = <1240000>;
regulator-max-microvolt = <1840000>;
regulator-ramp-delay = <0>;
regulator-always-on;
regulator-boot-on;
};
mt6380_vt_reg: ldo-vt {
regulator-name = "vt";
regulator-min-microvolt = <2200000>;
regulator-max-microvolt = <3300000>;
regulator-ramp-delay = <0>;
regulator-always-on;
regulator-boot-on;
};
};
@@ -0,0 +1,65 @@
NVIDIA Tegra Regulators Coupling
================================
NVIDIA Tegra SoC's have a mandatory voltage-coupling between regulators.
Thus on Tegra20 there are 3 coupled regulators and on NVIDIA Tegra30
there are 2.
Tegra20 voltage coupling
------------------------
On Tegra20 SoC's there are 3 coupled regulators: CORE, RTC and CPU.
The CORE and RTC voltages shall be in a range of 170mV from each other
and they both shall be higher than the CPU voltage by at least 120mV.
Tegra30 voltage coupling
------------------------
On Tegra30 SoC's there are 2 coupled regulators: CORE and CPU. The CORE
and CPU voltages shall be in a range of 300mV from each other and CORE
voltage shall be higher than the CPU by N mV, where N depends on the CPU
voltage.
Required properties:
- nvidia,tegra-core-regulator: Boolean property that designates regulator
as the "Core domain" voltage regulator.
- nvidia,tegra-rtc-regulator: Boolean property that designates regulator
as the "RTC domain" voltage regulator.
- nvidia,tegra-cpu-regulator: Boolean property that designates regulator
as the "CPU domain" voltage regulator.
Example:
pmic {
regulators {
core_vdd_reg: core {
regulator-name = "vdd_core";
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <1300000>;
regulator-coupled-with = <&rtc_vdd_reg &cpu_vdd_reg>;
regulator-coupled-max-spread = <170000 550000>;
nvidia,tegra-core-regulator;
};
rtc_vdd_reg: rtc {
regulator-name = "vdd_rtc";
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <1300000>;
regulator-coupled-with = <&core_vdd_reg &cpu_vdd_reg>;
regulator-coupled-max-spread = <170000 550000>;
nvidia,tegra-rtc-regulator;
};
cpu_vdd_reg: cpu {
regulator-name = "vdd_cpu";
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <1125000>;
regulator-coupled-with = <&core_vdd_reg &rtc_vdd_reg>;
regulator-coupled-max-spread = <550000 550000>;
nvidia,tegra-cpu-regulator;
};
};
};
@@ -0,0 +1,288 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/nxp,pca9450-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NXP PCA9450A/B/C Power Management Integrated Circuit regulators
maintainers:
- Robin Gong <yibin.gong@nxp.com>
description: |
Regulator nodes should be named to BUCK_<number> and LDO_<number>. The
definition for each of these nodes is defined using the standard
binding for regulators at
Documentation/devicetree/bindings/regulator/regulator.txt.
Datasheet is available at
https://www.nxp.com/docs/en/data-sheet/PCA9450DS.pdf
Support PF9453, Datasheet is available at
https://www.nxp.com/docs/en/data-sheet/PF9453_SDS.pdf
# The valid names for PCA9450 regulator nodes are:
# BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6,
# LDO1, LDO2, LDO3, LDO4, LDO5
# Note: Buck3 removed on PCA9450B and connect with Buck1 on PCA9450C.
properties:
compatible:
enum:
- nxp,pca9450a
- nxp,pca9450b
- nxp,pca9450c
- nxp,pca9451a
- nxp,pca9452
- nxp,pf9453
reg:
maxItems: 1
interrupts:
maxItems: 1
inl1-supply:
description: Regulator supply for the INL1 pin group, powering LDOx
inb13-supply:
description:
Regulator supply for the INB13 pin group, powering BUCK1 and BUCK3.
inb26-supply:
description:
Regulator supply for the INB26 pin group, powering BUCK2 and BUCK6.
inb45-supply:
description:
Regulator supply for the INB45 pin group, powering BUCK4 and BUCK5.
regulators:
type: object
description: |
list of regulators provided by this controller
properties:
LDO5:
type: object
$ref: regulator.yaml#
description:
Properties for single LDO5 regulator.
properties:
nxp,sd-vsel-fixed-low:
type: boolean
description:
Let the driver know that SD_VSEL is hardwired to low level and
there is no GPIO to get the actual value from.
sd-vsel-gpios:
description:
GPIO that can be used to read the current status of the SD_VSEL
signal in order for the driver to know if LDO5CTRL_L or LDO5CTRL_H
is used by the hardware.
unevaluatedProperties: false
patternProperties:
"^LDO([1-4]|-SNVS)$":
type: object
$ref: regulator.yaml#
description:
Properties for single LDO regulator.
unevaluatedProperties: false
"^BUCK[1-6]$":
type: object
$ref: regulator.yaml#
description:
Properties for single BUCK regulator.
properties:
nxp,dvs-run-voltage:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 600000
maximum: 2187500
description:
PMIC default "RUN" state voltage in uV. Only Buck1~3 have such
dvs(dynamic voltage scaling) property.
nxp,dvs-standby-voltage:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 600000
maximum: 2187500
description:
PMIC default "STANDBY" state voltage in uV. Only Buck1~3 have such
dvs(dynamic voltage scaling) property.
regulator-allowed-modes:
description: |
Buck regulator operating modes allowed. Valid values below.
Users should use the macros from dt-bindings/regulator/nxp,pca9450-regulator.h
0 (PCA9450_BUCK_MODE_AUTO): Auto PFM/PWM mode
1 (PCA9450_BUCK_MODE_FORCE_PWM): Forced PWM mode
items:
enum: [ 0, 1 ]
unevaluatedProperties: false
additionalProperties: false
nxp,i2c-lt-enable:
type: boolean
description:
Indicates that the I2C Level Translator is used.
nxp,wdog_b-warm-reset:
type: boolean
description:
When WDOG_B signal is asserted a warm reset will be done instead of cold
reset.
nxp,pmic-on-req-on-debounce-us:
enum: [ 120, 20000, 100000, 750000 ]
description: Debounce time for PMIC_ON_REQ high.
nxp,pmic-on-req-off-debounce-us:
enum: [ 120, 2000 ]
description: Debounce time for PMIC_ON_REQ is asserted low
nxp,power-on-step-ms:
enum: [ 1, 2, 4, 8]
description: Time step configuration during power on sequence
nxp,power-down-step-ms:
enum: [ 2, 4, 8, 16 ]
description: Time step configuration during power down sequence
nxp,restart-ms:
enum: [ 250, 500 ]
description: Time to stay off regulators during Cold reset
npx,pmic-rst-b-debounce-ms:
enum: [ 10, 50, 100, 500, 1000, 2000, 4000, 8000 ]
description: PMIC_RST_B debounce time
required:
- compatible
- reg
- regulators
additionalProperties: false
allOf:
- if:
properties:
compatible:
contains:
const: nxp,pf9453
then:
properties:
regulators:
patternProperties:
"^LDO[3-4]$": false
"^BUCK[5-6]$": false
else:
properties:
regulators:
properties:
LDO-SNVS: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/regulator/nxp,pca9450-regulator.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic: pmic@25 {
compatible = "nxp,pca9450b";
reg = <0x25>;
pinctrl-0 = <&pinctrl_pmic>;
interrupt-parent = <&gpio1>;
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
regulators {
buck1: BUCK1 {
regulator-name = "BUCK1";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <2187500>;
regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <3125>;
};
buck2: BUCK2 {
regulator-name = "BUCK2";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <2187500>;
regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <3125>;
nxp,dvs-run-voltage = <950000>;
nxp,dvs-standby-voltage = <850000>;
};
buck4: BUCK4 {
regulator-name = "BUCK4";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <3400000>;
regulator-boot-on;
regulator-always-on;
regulator-initial-mode = <PCA9450_BUCK_MODE_FORCE_PWM>;
regulator-allowed-modes = <PCA9450_BUCK_MODE_FORCE_PWM>;
};
buck5: BUCK5 {
regulator-name = "BUCK5";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <3400000>;
regulator-boot-on;
regulator-always-on;
regulator-allowed-modes = <PCA9450_BUCK_MODE_AUTO
PCA9450_BUCK_MODE_FORCE_PWM>;
};
buck6: BUCK6 {
regulator-name = "BUCK6";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <3400000>;
regulator-boot-on;
regulator-always-on;
};
ldo1: LDO1 {
regulator-name = "LDO1";
regulator-min-microvolt = <1600000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
ldo2: LDO2 {
regulator-name = "LDO2";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1150000>;
regulator-boot-on;
regulator-always-on;
};
ldo3: LDO3 {
regulator-name = "LDO3";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
ldo4: LDO4 {
regulator-name = "LDO4";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
ldo5: LDO5 {
regulator-name = "LDO5";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
};
};
};
@@ -0,0 +1,163 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/nxp,pf0900.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NXP PF0900 Power Management Integrated Circuit regulators
maintainers:
- Joy Zou <joy.zou@nxp.com>
description:
The PF0900 is a power management integrated circuit (PMIC) optimized
for high performance i.MX9x based applications. It features five high
efficiency buck converters, three linear and one vaon regulators. It
provides low quiescent current in Standby and low power off Modes.
properties:
compatible:
enum:
- nxp,pf0900
reg:
maxItems: 1
interrupts:
maxItems: 1
regulators:
type: object
additionalProperties: false
properties:
vaon:
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
patternProperties:
"^ldo[1-3]$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
"^sw[1-5]$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
nxp,i2c-crc-enable:
type: boolean
description:
The CRC enabled during register read/write. Controlled by customer
unviewable fuse bits OTP_I2C_CRC_EN. Check chip part number.
required:
- compatible
- reg
- interrupts
- regulators
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@8 {
compatible = "nxp,pf0900";
reg = <0x08>;
interrupt-parent = <&pcal6524>;
interrupts = <89 IRQ_TYPE_LEVEL_LOW>;
nxp,i2c-crc-enable;
regulators {
vaon {
regulator-name = "VAON";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
sw1 {
regulator-name = "SW1";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <1950>;
regulator-state-mem {
regulator-on-in-suspend;
regulator-suspend-max-microvolt = <650000>;
regulator-suspend-min-microvolt = <650000>;
};
};
sw2 {
regulator-name = "SW2";
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <1950>;
};
sw3 {
regulator-name = "SW3";
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <1950>;
};
sw4 {
regulator-name = "SW4";
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <1950>;
};
sw5 {
regulator-name = "SW5";
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <1950>;
};
ldo1 {
regulator-name = "LDO1";
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
ldo2 {
regulator-name = "LDO2";
regulator-min-microvolt = <650000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
ldo3 {
regulator-name = "LDO3";
regulator-min-microvolt = <650000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
};
};
};
@@ -0,0 +1,54 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/nxp,pf5300.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NXP PF5300/PF5301/PF5302 PMIC regulators
maintainers:
- Woodrow Douglass <wdouglass@carnegierobotics.com>
description: |
The PF5300, PF5301, and PF5302 integrate high-performance buck converters,
12 A, 8 A, and 15 A, respectively, to power high-end automotive and industrial
processors. With adaptive voltage positioning and a high-bandwidth loop, they
offer transient regulation to minimize capacitor requirements.
allOf:
- $ref: regulator.yaml#
properties:
compatible:
oneOf:
- const: nxp,pf5300
- items:
- enum:
- nxp,pf5301
- nxp,pf5302
- const: nxp,pf5300
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@28 {
compatible = "nxp,pf5302", "nxp,pf5300";
reg = <0x28>;
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <1200000>;
regulator-min-microvolt = <500000>;
};
};
@@ -0,0 +1,190 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/nxp,pf8x00-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NXP PF8100/PF8121A/PF8200 PMIC regulators
maintainers:
- Jagan Teki <jagan@amarulasolutions.com>
- Troy Kisky <troy.kisky@boundarydevices.com>
description: |
PF8100/PF8121A/PF8200 is a PMIC designed for highperformance consumer
applications. It features seven high efficiency buck converters, four
linear and one vsnvs regulators. It has built-in one time programmable
fuse bank for device configurations.
properties:
compatible:
enum:
- nxp,pf8100
- nxp,pf8121a
- nxp,pf8200
reg:
maxItems: 1
regulators:
type: object
description: |
list of regulators provided by this controller
patternProperties:
"^ldo[1-4]$":
type: object
$ref: regulator.yaml#
description:
Properties for single LDO regulator.
unevaluatedProperties: false
"^buck[1-7]$":
type: object
$ref: regulator.yaml#
description:
Properties for single BUCK regulator.
properties:
nxp,ilim-ma:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 2100
maximum: 4500
deprecated: true
description:
BUCK regulators current limit in mA.
This property is deprecated, please use
"regulator-max-microamp" instead.
Listed current limits in mA are,
2100 (default)
2600
3000
4500
nxp,phase-shift:
$ref: /schemas/types.yaml#/definitions/uint32
default: 0
enum: [ 0, 45, 90, 135, 180, 225, 270, 315 ]
description:
BUCK regulators phase shift control in degrees.
unevaluatedProperties: false
properties:
vsnvs:
type: object
$ref: regulator.yaml#
description:
Properties for single VSNVS regulator.
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
- reg
- regulators
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@8 {
compatible = "nxp,pf8100";
reg = <0x08>;
regulators {
reg_ldo1: ldo1 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <5000000>;
regulator-min-microvolt = <1500000>;
};
reg_ldo2: ldo2 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <5000000>;
regulator-min-microvolt = <1500000>;
};
reg_ldo3: ldo3 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <5000000>;
regulator-min-microvolt = <1500000>;
};
reg_ldo4: ldo4 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <5000000>;
regulator-min-microvolt = <1500000>;
};
reg_buck1: buck1 {
nxp,ilim-ma = <4500>;
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <1800000>;
regulator-min-microvolt = <400000>;
};
reg_buck2: buck2 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <1800000>;
regulator-min-microvolt = <400000>;
};
reg_buck3: buck3 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <1800000>;
regulator-min-microvolt = <400000>;
};
reg_buck4: buck4 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <1800000>;
regulator-min-microvolt = <400000>;
};
reg_buck5: buck5 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <1800000>;
regulator-min-microvolt = <400000>;
};
reg_buck6: buck6 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <1800000>;
regulator-min-microvolt = <400000>;
};
reg_buck7: buck7 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <3300000>;
};
reg_vsnvs: vsnvs {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <1800000>;
};
};
};
};
@@ -0,0 +1,87 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/onnn,fan53880.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Onsemi FAN53880 PMIC
maintainers:
- Christoph Fritz <chf.fritz@googlemail.com>
description: |
The FAN53880 is an I2C porgrammable power management IC (PMIC)
that contains a BUCK (step-down converter), four low dropouts (LDO)
and one BOOST (step-up converter) output. It is designed for mobile
power applications.
properties:
$nodename:
pattern: "pmic@[0-9a-f]{1,2}"
compatible:
enum:
- onnn,fan53880
reg:
maxItems: 1
VIN12-supply:
description: Input supply phandle(s) for LDO1 and LDO2
VIN3-supply:
description: Input supply phandle(s) for LDO3
VIN4-supply:
description: Input supply phandle(s) for LDO4
PVIN-supply:
description: Input supply phandle(s) for BUCK and BOOST
regulators:
type: object
$ref: regulator.yaml#
description: |
list of regulators provided by this controller, must be named
after their hardware counterparts LDO[1-4], BUCK and BOOST
patternProperties:
"^LDO[1-4]$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
"^BUCK|BOOST$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
- reg
- regulators
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@35 {
compatible = "onnn,fan53880";
reg = <0x35>;
PVIN-supply = <&fixreg_example_vcc>;
regulators {
BUCK {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
};
};
};
...
@@ -0,0 +1,89 @@
* palmas regulator IP block devicetree bindings
The tps659038 for the AM57x class have OTP spins that
have different part numbers but the same functionality. There
is not a need to add the OTP spins to the palmas driver. The
spin devices should use the tps659038 as it's compatible value.
This is the list of those devices:
tps659037
Required properties:
- compatible : Should be from the list
ti,twl6035-pmic
ti,twl6036-pmic
ti,twl6037-pmic
ti,tps65913-pmic
ti,tps65914-pmic
ti,tps65917-pmic
ti,tps659038-pmic
and also the generic series names
ti,palmas-pmic
- interrupts : The interrupt number and the type which can be looked up here:
arch/arm/boot/dts/include/dt-bindings/interrupt-controller/irq.h
- interrupts-name: The names of the individual interrupts.
Optional properties:
- ti,ldo6-vibrator : ldo6 is in vibrator mode
Optional nodes:
- regulators : Must contain a sub-node per regulator from the list below.
Each sub-node should contain the constraints and initialization
information for that regulator. See regulator.txt for a
description of standard properties for these sub-nodes.
Additional custom properties are listed below.
For ti,palmas-pmic - smps12, smps123, smps3 depending on OTP,
smps45, smps457, smps7 depending on variant, smps6, smps[8-9],
smps10_out2, smps10_out1, ldo[1-9], ldoln, ldousb.
Optional sub-node properties:
ti,warm-reset - maintain voltage during warm reset(boolean)
ti,roof-floor - This takes as optional argument on platform supporting
the rail from desired external control. If there is no argument then
it will be assume that it is controlled by NSLEEP pin.
The valid value for external pins are:
ENABLE1 then 1,
ENABLE2 then 2 or
NSLEEP then 3.
ti,mode-sleep - mode to adopt in pmic sleep 0 - off, 1 - auto,
2 - eco, 3 - forced pwm
ti,smps-range - OTP has the wrong range set for the hardware so override
0 - low range, 1 - high range.
- ti,system-power-controller: Telling whether or not this pmic is controlling
the system power.
Example:
#include <dt-bindings/interrupt-controller/irq.h>
pmic {
compatible = "ti,twl6035-pmic", "ti,palmas-pmic";
interrupt-parent = <&palmas>;
interrupts = <14 IRQ_TYPE_NONE>;
interrupts-name = "short-irq";
ti,ldo6-vibrator;
ti,system-power-controller;
regulators {
smps12_reg : smps12 {
regulator-name = "smps12";
regulator-min-microvolt = < 600000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
regulator-boot-on;
ti,warm-reset;
ti,roof-floor = <1>; /* ENABLE1 control */
ti,mode-sleep = <0>;
ti,smps-range = <1>;
};
ldo1_reg: ldo1 {
regulator-name = "ldo1";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
};
};
@@ -0,0 +1,32 @@
PBIAS internal regulator for SD card dual voltage i/o pads on OMAP SoCs.
Required properties:
- compatible:
- should be "ti,pbias-dra7" for DRA7
- should be "ti,pbias-omap2" for OMAP2
- should be "ti,pbias-omap3" for OMAP3
- should be "ti,pbias-omap4" for OMAP4
- should be "ti,pbias-omap5" for OMAP5
- "ti,pbias-omap" is deprecated
- reg: pbias register offset from syscon base and size of pbias register.
- syscon : phandle of the system control module
- regulator-name : should be
pbias_mmc_omap2430 for OMAP2430, OMAP3 SoCs
pbias_sim_omap3 for OMAP3 SoCs
pbias_mmc_omap4 for OMAP4 SoCs
pbias_mmc_omap5 for OMAP5 and DRA7 SoC
Optional properties:
- Any optional property defined in bindings/regulator/regulator.txt
Example:
pbias_regulator: pbias_regulator {
compatible = "ti,pbias-omap";
reg = <0 0x4>;
syscon = <&omap5_padconf_global>;
pbias_mmc_reg: pbias_mmc_omap5 {
regulator-name = "pbias_mmc_omap5";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3000000>;
};
@@ -0,0 +1,199 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/pfuze100.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: PFUZE100 family of regulators
maintainers:
- Robin Gong <yibin.gong@nxp.com>
description: |
The valid names for regulators are:
--PFUZE100
sw1ab,sw1c,sw2,sw3a,sw3b,sw4,swbst,vsnvs,vrefddr,vgen1~vgen6
--PFUZE200
sw1ab,sw2,sw3a,sw3b,swbst,vsnvs,vrefddr,vgen1~vgen6,coin
--PFUZE3000
sw1a,sw1b,sw2,sw3,swbst,vsnvs,vrefddr,vldo1,vldo2,vccsd,v33,vldo3,vldo4
--PFUZE3001
sw1,sw2,sw3,vsnvs,vldo1,vldo2,vccsd,v33,vldo3,vldo4
Each regulator is defined using the standard binding for regulators.
properties:
$nodename:
pattern: "^pmic@[0-9]$"
compatible:
enum:
- fsl,pfuze100
- fsl,pfuze200
- fsl,pfuze3000
- fsl,pfuze3001
reg:
maxItems: 1
interrupts:
maxItems: 1
fsl,pfuze-support-disable-sw:
$ref: /schemas/types.yaml#/definitions/flag
description: |
Boolean, if present disable all unused switch regulators to save power
consumption. Attention, ensure that all important regulators
(e.g. DDR ref, DDR supply) has set the "regulator-always-on" property.
If not present, the switched regulators are always on and can't be
disabled. This binding is a workaround to keep backward compatibility
with old dtb's which rely on the fact that the switched regulators are
always on and don't mark them explicit as "regulator-always-on".
fsl,pmic-stby-poweroff:
$ref: /schemas/types.yaml#/definitions/flag
description: |
if present, configure the PMIC to shutdown all
power rails when PMIC_STBY_REQ line is asserted during the power off sequence.
Use this option if the SoC should be powered off by external power management
IC (PMIC) on PMIC_STBY_REQ signal.
As opposite to PMIC_STBY_REQ boards can implement PMIC_ON_REQ signal.
regulators:
type: object
description: |
list of regulators provided by this controller.
patternProperties:
"^sw([1-4]|[1-4][a-c]|[1-4][a-c][a-c])$":
$ref: regulator.yaml#
type: object
unevaluatedProperties: false
"^vgen[1-6]$":
$ref: regulator.yaml#
type: object
unevaluatedProperties: false
"^vldo[1-4]$":
$ref: regulator.yaml#
type: object
unevaluatedProperties: false
"^(vsnvs|vref|vrefddr|swbst|coin|v33|vccsd)$":
$ref: regulator.yaml#
type: object
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@8 {
compatible = "fsl,pfuze100";
reg = <0x08>;
regulators {
sw1a_reg: sw1ab {
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <1875000>;
regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <6250>;
};
sw1c_reg: sw1c {
regulator-min-microvolt = <300000>;
regulator-max-microvolt = <1875000>;
regulator-boot-on;
regulator-always-on;
};
sw2_reg: sw2 {
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
sw3a_reg: sw3a {
regulator-min-microvolt = <400000>;
regulator-max-microvolt = <1975000>;
regulator-boot-on;
regulator-always-on;
};
sw3b_reg: sw3b {
regulator-min-microvolt = <400000>;
regulator-max-microvolt = <1975000>;
regulator-boot-on;
regulator-always-on;
};
sw4_reg: sw4 {
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3300000>;
};
swbst_reg: swbst {
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5150000>;
};
snvs_reg: vsnvs {
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <3000000>;
regulator-boot-on;
regulator-always-on;
};
vref_reg: vrefddr {
regulator-boot-on;
regulator-always-on;
};
vgen1_reg: vgen1 {
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1550000>;
};
vgen2_reg: vgen2 {
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1550000>;
};
vgen3_reg: vgen3 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
};
vgen4_reg: vgen4 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
vgen5_reg: vgen5 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
vgen6_reg: vgen6 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
};
};
};
@@ -0,0 +1,124 @@
* Powerventure Semiconductor PV88060 Voltage Regulator
Required properties:
- compatible: "pvs,pv88060".
- reg: I2C slave address, usually 0x49.
- interrupts: the interrupt outputs of the controller
- regulators: A node that houses a sub-node for each regulator within the
device. Each sub-node is identified using the node's name, with valid
values listed below. The content of each sub-node is defined by the
standard binding for regulators; see regulator.txt.
BUCK1, LDO1, LDO2, LDO3, LDO4, LDO5, LDO6, LDO7, SW1, SW2, SW3, SW4,
SW5, and SW6.
Optional properties:
- Any optional property defined in regulator.txt
Example
pmic: pv88060@49 {
compatible = "pvs,pv88060";
reg = <0x49>;
interrupt-parent = <&gpio>;
interrupts = <24 24>;
regulators {
BUCK1 {
regulator-name = "buck1";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <4387500>;
regulator-min-microamp = <1496000>;
regulator-max-microamp = <4189000>;
regulator-boot-on;
};
LDO1 {
regulator-name = "ldo1";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3350000>;
regulator-boot-on;
};
LDO2 {
regulator-name = "ldo2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3350000>;
regulator-boot-on;
};
LDO3 {
regulator-name = "ldo3";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3350000>;
regulator-boot-on;
};
LDO4 {
regulator-name = "ldo4";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3350000>;
regulator-boot-on;
};
LDO5 {
regulator-name = "ldo5";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3350000>;
regulator-boot-on;
};
LDO6 {
regulator-name = "ldo6";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3350000>;
regulator-boot-on;
};
LDO7 {
regulator-name = "ldo7";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3350000>;
regulator-boot-on;
};
SW1 {
regulator-name = "sw1";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
SW2 {
regulator-name = "sw2";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-boot-on;
};
SW3 {
regulator-name = "sw3";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-boot-on;
};
SW4 {
regulator-name = "sw4";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-boot-on;
};
SW5 {
regulator-name = "sw5";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-boot-on;
};
SW6 {
regulator-name = "sw6";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
};
};
@@ -0,0 +1,62 @@
* Powerventure Semiconductor PV88080 Voltage Regulator
Required properties:
- compatible: Must be one of the following, depending on the
silicon version:
- "pvs,pv88080" (DEPRECATED)
- "pvs,pv88080-aa" for PV88080 AA or AB silicon
- "pvs,pv88080-ba" for PV88080 BA or BB silicon
NOTE: The use of the compatibles with no silicon version is deprecated.
- reg: I2C slave address, usually 0x49
- interrupts: the interrupt outputs of the controller
- regulators: A node that houses a sub-node for each regulator within the
device. Each sub-node is identified using the node's name, with valid
values listed below. The content of each sub-node is defined by the
standard binding for regulators; see regulator.txt.
BUCK1, BUCK2, BUCK3 and HVBUCK.
Optional properties:
- Any optional property defined in regulator.txt
Example:
pmic: pv88080@49 {
compatible = "pvs,pv88080-ba";
reg = <0x49>;
interrupt-parent = <&gpio>;
interrupts = <24 24>;
regulators {
BUCK1 {
regulator-name = "buck1";
regulator-min-microvolt = < 600000>;
regulator-max-microvolt = <1393750>;
regulator-min-microamp = < 220000>;
regulator-max-microamp = <7040000>;
};
BUCK2 {
regulator-name = "buck2";
regulator-min-microvolt = < 600000>;
regulator-max-microvolt = <1393750>;
regulator-min-microamp = <1496000>;
regulator-max-microamp = <4189000>;
};
BUCK3 {
regulator-name = "buck3";
regulator-min-microvolt = <1400000>;
regulator-max-microvolt = <2193750>;
regulator-min-microamp = <1496000>;
regulator-max-microamp = <4189000>;
};
HVBUCK {
regulator-name = "hvbuck";
regulator-min-microvolt = < 5000>;
regulator-max-microvolt = <1275000>;
};
};
};
@@ -0,0 +1,65 @@
* Powerventure Semiconductor PV88090 Voltage Regulator
Required properties:
- compatible: "pvs,pv88090".
- reg: I2C slave address, usually 0x48.
- interrupts: the interrupt outputs of the controller
- regulators: A node that houses a sub-node for each regulator within the
device. Each sub-node is identified using the node's name, with valid
values listed below. The content of each sub-node is defined by the
standard binding for regulators; see regulator.txt.
BUCK1, BUCK2, BUCK3, LDO1, and LDO2.
Optional properties:
- Any optional property defined in regulator.txt
Example
pmic: pv88090@48 {
compatible = "pvs,pv88090";
reg = <0x48>;
interrupt-parent = <&gpio>;
interrupts = <24 24>;
regulators {
BUCK1 {
regulator-name = "buck1";
regulator-min-microvolt = < 600000>;
regulator-max-microvolt = <1393750>;
regulator-min-microamp = < 220000>;
regulator-max-microamp = <7040000>;
regulator-boot-on;
};
BUCK2 {
regulator-name = "buck2";
regulator-min-microvolt = < 600000>;
regulator-max-microvolt = <1393750>;
regulator-min-microamp = <1496000>;
regulator-max-microamp = <4189000>;
};
BUCK3 {
regulator-name = "buck3";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1393750>;
regulator-min-microamp = <1496000>;
regulator-max-microamp = <4189000>;
regulator-boot-on;
};
LDO1 {
regulator-name = "ldo1";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <4350000>;
regulator-boot-on;
};
LDO2 {
regulator-name = "ldo2";
regulator-min-microvolt = < 650000>;
regulator-max-microvolt = <2225000>;
regulator-boot-on;
};
};
};
@@ -0,0 +1,127 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/pwm-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Generic PWM Regulator
maintainers:
- Brian Norris <briannorris@chromium.org>
- Lee Jones <lee@kernel.org>
- Alexandre Courbot <acourbot@nvidia.com>
description: |
Currently supports 2 modes of operation:
Voltage Table:
When in this mode, a voltage table (See below) of predefined voltage <=>
duty-cycle values must be provided via DT. Limitations are that the
regulator can only operate at the voltages supplied in the table.
Intermediary duty-cycle values which would normally allow finer grained
voltage selection are ignored and rendered useless. Although more control
is given to the user if the assumptions made in continuous-voltage mode do
not reign true.
Continuous Voltage:
This mode uses the regulator's maximum and minimum supplied voltages
specified in the regulator-{min,max}-microvolt properties to calculate
appropriate duty-cycle values. This allows for a much more fine grained
solution when compared with voltage-table mode above. This solution does
make an assumption that a %50 duty-cycle value will cause the regulator
voltage to run at half way between the supplied max_uV and min_uV values.
If voltage-table is provided, then the device will be used in Voltage Table
Mode. If no voltage-table is provided, then the device will be used in
Continuous Voltage Mode.
allOf:
- $ref: regulator.yaml#
properties:
compatible:
const: pwm-regulator
pwms:
maxItems: 1
voltage-table:
description: Voltage and Duty-Cycle table.
$ref: /schemas/types.yaml#/definitions/uint32-matrix
items:
items:
- description: voltage in microvolts (uV)
- description: duty-cycle in percent (%)
enable-gpios:
description: Regulator enable GPIO
maxItems: 1
# Optional properties for Continuous mode:
pwm-dutycycle-unit:
description:
Integer value encoding the duty cycle unit. If not
defined, <100> is assumed, meaning that
pwm-dutycycle-range contains values expressed in
percent.
$ref: /schemas/types.yaml#/definitions/uint32
default: 100
pwm-dutycycle-range:
description:
Should contain 2 entries. The first entry is encoding
the dutycycle for regulator-min-microvolt and the
second one the dutycycle for regulator-max-microvolt.
Duty cycle values are expressed in pwm-dutycycle-unit.
If not defined, <0 100> is assumed.
$ref: /schemas/types.yaml#/definitions/uint32-array
items:
- description: the dutycycle for regulator-min-microvolt
- description: the dutycycle for regulator-max-microvolt
default: [ 0 100 ]
required:
- compatible
- pwms
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
// Continuous Voltage With Enable GPIO Example:
regulator {
compatible = "pwm-regulator";
pwms = <&pwm1 0 8448 0>;
enable-gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
regulator-min-microvolt = <1016000>;
regulator-max-microvolt = <1114000>;
regulator-name = "vdd_logic";
/* unit == per-mille */
pwm-dutycycle-unit = <1000>;
/*
* Inverted PWM logic, and the duty cycle range is limited
* to 30%-70%.
*/
pwm-dutycycle-range = <700 300>; /* */
};
- |
// Voltage Table Example:
regulator {
compatible = "pwm-regulator";
pwms = <&pwm1 0 8448 0>;
regulator-min-microvolt = <1016000>;
regulator-max-microvolt = <1114000>;
regulator-name = "vdd_logic";
/* Voltage Duty-Cycle */
voltage-table = <1114000 0>,
<1095000 10>,
<1076000 20>,
<1056000 30>,
<1036000 40>,
<1016000 50>;
};
...
@@ -0,0 +1,250 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/qcom,qca6390-pmu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Technologies, Inc. QCA6390 PMU Regulators
maintainers:
- Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
description:
The QCA6390 package contains discrete modules for WLAN and Bluetooth. They
are powered by the Power Management Unit (PMU) that takes inputs from the
host and provides LDO outputs. This document describes this module.
properties:
compatible:
oneOf:
- items:
- enum:
- qcom,wcn6755-pmu
- const: qcom,wcn6750-pmu
- enum:
- qcom,qca6390-pmu
- qcom,wcn6750-pmu
- qcom,wcn6855-pmu
- qcom,wcn7850-pmu
vdd-supply:
description: VDD supply regulator handle
vddaon-supply:
description: VDD_AON supply regulator handle
vddasd-supply:
description: VDD_ASD supply regulator handle
vdddig-supply:
description: VDD_DIG supply regulator handle
vddpmu-supply:
description: VDD_PMU supply regulator handle
vddpmumx-supply:
description: VDD_PMU_MX supply regulator handle
vddpmucx-supply:
description: VDD_PMU_CX supply regulator handle
vddio1p2-supply:
description: VDD_IO_1P2 supply regulator handle
vddrfa0p8-supply:
description: VDD_RFA_0P8 supply regulator handle
vddrfa0p95-supply:
description: VDD_RFA_0P95 supply regulator handle
vddrfa1p2-supply:
description: VDD_RFA_1P2 supply regulator handle
vddrfa1p3-supply:
description: VDD_RFA_1P3 supply regulator handle
vddrfa1p7-supply:
description: VDD_RFA_1P7 supply regulator handle
vddrfa1p8-supply:
description: VDD_RFA_1P8 supply regulator handle
vddrfa1p9-supply:
description: VDD_RFA_1P9 supply regulator handle
vddrfa2p2-supply:
description: VDD_RFA_2P2 supply regulator handle
vddpcie1p3-supply:
description: VDD_PCIE_1P3 supply regulator handle
vddpcie1p9-supply:
description: VDD_PCIE_1P9 supply regulator handle
vddio-supply:
description: VDD_IO supply regulator handle
wlan-enable-gpios:
maxItems: 1
description: GPIO line enabling the ATH11K WLAN module supplied by the PMU
bt-enable-gpios:
maxItems: 1
description: GPIO line enabling the Bluetooth module supplied by the PMU
swctrl-gpios:
maxItems: 1
description: GPIO line indicating the state of the clock supply to the BT module
xo-clk-gpios:
maxItems: 1
description: GPIO line allowing to select the XO clock configuration for the module
clocks:
maxItems: 1
description: Reference clock handle
regulators:
type: object
description:
LDO outputs of the PMU
patternProperties:
"^ldo[0-9]$":
$ref: regulator.yaml#
type: object
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
- regulators
allOf:
- if:
properties:
compatible:
contains:
const: qcom,qca6390-pmu
then:
required:
- vddaon-supply
- vddpmu-supply
- vddrfa0p95-supply
- vddrfa1p3-supply
- vddrfa1p9-supply
- vddpcie1p3-supply
- vddpcie1p9-supply
- vddio-supply
- if:
properties:
compatible:
contains:
const: qcom,wcn6750-pmu
then:
required:
- vddaon-supply
- vddasd-supply
- vddpmu-supply
- vddrfa0p8-supply
- vddrfa1p2-supply
- vddrfa1p7-supply
- vddrfa2p2-supply
- if:
properties:
compatible:
contains:
const: qcom,wcn6855-pmu
then:
required:
- vddio-supply
- vddaon-supply
- vddpmu-supply
- vddpmumx-supply
- vddpmucx-supply
- vddrfa0p95-supply
- vddrfa1p3-supply
- vddrfa1p9-supply
- vddpcie1p3-supply
- vddpcie1p9-supply
- if:
properties:
compatible:
contains:
const: qcom,wcn7850-pmu
then:
required:
- vdd-supply
- vddio-supply
- vddaon-supply
- vdddig-supply
- vddrfa1p2-supply
- vddrfa1p8-supply
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
pmu {
compatible = "qcom,qca6390-pmu";
pinctrl-names = "default";
pinctrl-0 = <&bt_en_state>, <&wlan_en_state>;
vddaon-supply = <&vreg_s6a_0p95>;
vddpmu-supply = <&vreg_s2f_0p95>;
vddrfa0p95-supply = <&vreg_s2f_0p95>;
vddrfa1p3-supply = <&vreg_s8c_1p3>;
vddrfa1p9-supply = <&vreg_s5a_1p9>;
vddpcie1p3-supply = <&vreg_s8c_1p3>;
vddpcie1p9-supply = <&vreg_s5a_1p9>;
vddio-supply = <&vreg_s4a_1p8>;
wlan-enable-gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>;
bt-enable-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
regulators {
vreg_pmu_rfa_cmn: ldo0 {
regulator-name = "vreg_pmu_rfa_cmn";
};
vreg_pmu_aon_0p59: ldo1 {
regulator-name = "vreg_pmu_aon_0p59";
};
vreg_pmu_wlcx_0p8: ldo2 {
regulator-name = "vreg_pmu_wlcx_0p8";
};
vreg_pmu_wlmx_0p85: ldo3 {
regulator-name = "vreg_pmu_wlmx_0p85";
};
vreg_pmu_btcmx_0p85: ldo4 {
regulator-name = "vreg_pmu_btcmx_0p85";
};
vreg_pmu_rfa_0p8: ldo5 {
regulator-name = "vreg_pmu_rfa_0p8";
};
vreg_pmu_rfa_1p2: ldo6 {
regulator-name = "vreg_pmu_rfa_1p2";
};
vreg_pmu_rfa_1p7: ldo7 {
regulator-name = "vreg_pmu_rfa_1p7";
};
vreg_pmu_pcie_0p9: ldo8 {
regulator-name = "vreg_pmu_pcie_0p9";
};
vreg_pmu_pcie_1p8: ldo9 {
regulator-name = "vreg_pmu_pcie_1p8";
};
};
};
@@ -0,0 +1,128 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/qcom,rpm-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm RPM regulator
description:
The Qualcomm RPM regulator is modelled as a subdevice of the RPM.
Please refer to Documentation/devicetree/bindings/soc/qcom/qcom,rpm.yaml
for information regarding the RPM node.
The regulator node houses sub-nodes for each regulator within the device.
Each sub-node is identified using the node's name, with valid values listed
for each of the pmics below.
For pm8058 l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15,
l16, l17, l18, l19, l20, l21, l22, l23, l24, l25, s0, s1, s2, s3, s4,
lvs0, lvs1, ncp
For pm8901 l0, l1, l2, l3, l4, l5, l6, s0, s1, s2, s3, s4, lvs0, lvs1, lvs2, lvs3,
mvs
For pm8921 s1, s2, s3, s4, s7, s8, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
l12, l14, l15, l16, l17, l18, l21, l22, l23, l24, l25, l26, l27, l28,
l29, lvs1, lvs2, lvs3, lvs4, lvs5, lvs6, lvs7, usb-switch, hdmi-switch,
ncp
For pm8018 s1, s2, s3, s4, s5, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
l12, l14, lvs1
For smb208 s1a, s1b, s2a, s2b
maintainers:
- Bjorn Andersson <andersson@kernel.org>
properties:
compatible:
enum:
- qcom,rpm-pm8058-regulators
- qcom,rpm-pm8901-regulators
- qcom,rpm-pm8921-regulators
- qcom,rpm-pm8018-regulators
- qcom,rpm-smb208-regulators
patternProperties:
".*-supply$":
description: Input supply phandle(s) for this node
"^((s|l|lvs)[0-9]*|s[1-2][a-b]|ncp|mvs|usb-switch|hdmi-switch)$":
description: List of regulators and its properties
$ref: regulator.yaml#
unevaluatedProperties: false
properties:
bias-pull-down:
description: enable pull down of the regulator when inactive
type: boolean
qcom,switch-mode-frequency:
description: Frequency (Hz) of the switch-mode power supply
$ref: /schemas/types.yaml#/definitions/uint32
enum:
- 19200000
- 9600000
- 6400000
- 4800000
- 3840000
- 3200000
- 2740000
- 2400000
- 2130000
- 1920000
- 1750000
- 1600000
- 1480000
- 1370000
- 1280000
- 1200000
qcom,force-mode:
description: Indicates that the regulator should be forced to a particular mode
$ref: /schemas/types.yaml#/definitions/uint32
enum:
- 0 # QCOM_RPM_FORCE_MODE_NONE do not force any mode
- 1 # QCOM_RPM_FORCE_MODE_LPM force into low power mode
- 2 # QCOM_RPM_FORCE_MODE_HPM force into high power mode
- 3 # QCOM_RPM_FORCE_MODE_AUTO allow regulator to automatically select its own mode
# based on realtime current draw, only for pm8921 smps and ftsmps
qcom,power-mode-hysteretic:
description: select that the power supply should operate in hysteretic mode,
instead of the default pwm mode
type: boolean
additionalProperties: false
required:
- compatible
examples:
- |
#include <dt-bindings/mfd/qcom-rpm.h>
regulators {
compatible = "qcom,rpm-pm8921-regulators";
vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
s1 {
regulator-min-microvolt = <1225000>;
regulator-max-microvolt = <1225000>;
bias-pull-down;
qcom,switch-mode-frequency = <3200000>;
};
pm8921_s4: s4 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
qcom,switch-mode-frequency = <1600000>;
bias-pull-down;
qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
};
};
...
@@ -0,0 +1,623 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/qcom,rpmh-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Technologies, Inc. RPMh Regulators
maintainers:
- Bjorn Andersson <bjorn.andersson@linaro.org>
- Krzysztof Kozlowski <krzk@kernel.org>
description: |
rpmh-regulator devices support PMIC regulator management via the Voltage
Regulator Manager (VRM) and Oscillator Buffer (XOB) RPMh accelerators.
The APPS processor communicates with these hardware blocks via a
Resource State Coordinator (RSC) using command packets. The VRM allows
changing three parameters for a given regulator, enable state, output
voltage, and operating mode. The XOB allows changing only a single
parameter for a given regulator, its enable state. Despite its name,
the XOB is capable of controlling the enable state of any PMIC peripheral.
It is used for clock buffers, low-voltage switches, and LDO/SMPS regulators
which have a fixed voltage and mode.
=======================
Required Node Structure
=======================
RPMh regulators must be described in two levels of device nodes. The first
level describes the PMIC containing the regulators and must reside within an
RPMh device node. The second level describes each regulator within the PMIC
which is to be used on the board. Each of these regulators maps to a single
RPMh resource.
The names used for regulator nodes must match those supported by a given
PMIC. Supported regulator node names are
For PM6150, smps1 - smps5, ldo1 - ldo19
For PM6150L, smps1 - smps8, ldo1 - ldo11, bob
For PM6350, smps1 - smps5, ldo1 - ldo22
For PM660, smps1 - smps6, ldo1 - ldo3, ldo5 - ldo19
For PM660L, smps1 - smps3, smps5, ldo1 - ldo8, bob
For PM7325, smps1 - smps8, ldo1 - ldo19
For PM7550, smps1 - smps6, ldo1 - ldo23, bob
For PM8005, smps1 - smps4
For PM8009, smps1 - smps2, ldo1 - ldo7
For PM8010, ldo1 - ldo7
For PM8150, smps1 - smps10, ldo1 - ldo18
For PM8150L, smps1 - smps8, ldo1 - ldo11, bob, flash, rgb
For PM8350, smps1 - smps12, ldo1 - ldo10
For PM8350B, ldo1
For PM8350C, smps1 - smps10, ldo1 - ldo13, bob
For PM8450, smps1 - smps6, ldo1 - ldo4
For PM8550, smps1 - smps6, ldo1 - ldo17, bob1 - bob2
For PM8998, smps1 - smps13, ldo1 - ldo28, lvs1 - lvs2
For PMAU0102, smps1 - smps8, ldo1 - ldo3
For PMH0101, ldo1 - ldo18, bob1 - bob2
For PMH0104, smps1 - smps4
For PMH0110, smps1 - smps10, ldo1 - ldo4
For PMI8998, bob
For PMC8380, smps1 - smps8, ldo1 - lodo3
For PMCX0102, smps1 - smps10, ldo1 - ldo4
For PMR735A, smps1 - smps3, ldo1 - ldo7
For PMR735B, ldo1 - ldo12
For PMR735D, ldo1 - ldo7
For PMX55, smps1 - smps7, ldo1 - ldo16
For PMX65, smps1 - smps8, ldo1 - ldo21
For PMX75, smps1 - smps10, ldo1 - ldo21
properties:
compatible:
enum:
- qcom,pm6150-rpmh-regulators
- qcom,pm6150l-rpmh-regulators
- qcom,pm6350-rpmh-regulators
- qcom,pm660-rpmh-regulators
- qcom,pm660l-rpmh-regulators
- qcom,pm7325-rpmh-regulators
- qcom,pm7550-rpmh-regulators
- qcom,pm8005-rpmh-regulators
- qcom,pm8009-rpmh-regulators
- qcom,pm8009-1-rpmh-regulators
- qcom,pm8010-rpmh-regulators
- qcom,pm8150-rpmh-regulators
- qcom,pm8150l-rpmh-regulators
- qcom,pm8350-rpmh-regulators
- qcom,pm8350b-rpmh-regulators
- qcom,pm8350c-rpmh-regulators
- qcom,pm8450-rpmh-regulators
- qcom,pm8550-rpmh-regulators
- qcom,pm8550ve-rpmh-regulators
- qcom,pm8550vs-rpmh-regulators
- qcom,pm8998-rpmh-regulators
- qcom,pmau0102-rpmh-regulators
- qcom,pmc8180-rpmh-regulators
- qcom,pmc8180c-rpmh-regulators
- qcom,pmc8380-rpmh-regulators
- qcom,pmcx0102-rpmh-regulators
- qcom,pmg1110-rpmh-regulators
- qcom,pmh0101-rpmh-regulators
- qcom,pmh0104-rpmh-regulators
- qcom,pmh0110-rpmh-regulators
- qcom,pmi8998-rpmh-regulators
- qcom,pmm8155au-rpmh-regulators
- qcom,pmm8654au-rpmh-regulators
- qcom,pmr735a-rpmh-regulators
- qcom,pmr735b-rpmh-regulators
- qcom,pmr735d-rpmh-regulators
- qcom,pmx55-rpmh-regulators
- qcom,pmx65-rpmh-regulators
- qcom,pmx75-rpmh-regulators
qcom,pmic-id:
description: |
RPMh resource name suffix used for the regulators found
on this PMIC.
$ref: /schemas/types.yaml#/definitions/string
pattern: "^[a-n]|[A-N]_E[0-3]+$"
qcom,always-wait-for-ack:
description: |
Boolean flag which indicates that the application processor
must wait for an ACK or a NACK from RPMh for every request
sent for this regulator including those which are for a
strictly lower power state.
$ref: /schemas/types.yaml#/definitions/flag
vdd-flash-supply:
description: Input supply phandle of flash.
vdd-rgb-supply:
description: Input supply phandle of rgb.
bob:
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description: BOB regulator node.
dependencies:
regulator-allow-set-load: [ regulator-allowed-modes ]
patternProperties:
"^(smps|ldo|lvs|bob)[0-9]+$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
description: smps/ldo regulator nodes(s).
dependencies:
regulator-allow-set-load: [ regulator-allowed-modes ]
required:
- compatible
- qcom,pmic-id
allOf:
- if:
properties:
compatible:
enum:
- qcom,pm6150-rpmh-regulators
then:
properties:
vdd-l2-l3-supply: true
vdd-l4-l7-l8-supply: true
vdd-l5-l16-l17-l18-l19-supply: true
vdd-l10-l14-l15-supply: true
vdd-l11-l12-l13-supply: true
patternProperties:
"^vdd-l[169]-supply$": true
"^vdd-s[1-5]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pm6150l-rpmh-regulators
- qcom,pm8150l-rpmh-regulators
- qcom,pmc8180c-rpmh-regulators
then:
properties:
vdd-bob-supply:
description: BOB regulator parent supply phandle.
vdd-l1-l8-supply: true
vdd-l2-l3-supply: true
vdd-l4-l5-l6-supply: true
vdd-l7-l11-supply: true
vdd-l9-l10-supply: true
patternProperties:
"^vdd-s[1-8]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pm660-rpmh-regulators
then:
properties:
vdd-l1-l6-l7-supply: true
vdd-l2-l3-supply: true
vdd-l5-supply: true
vdd-l8-l9-l10-l11-l12-l13-l14-supply: true
vdd-l15-l16-l17-l18-l19-supply: true
patternProperties:
"^vdd-s[1-6]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pm660l-rpmh-regulators
then:
properties:
vdd-bob-supply:
description: BOB regulator parent supply phandle.
vdd-l1-l9-l10-supply: true
vdd-l2-supply: true
vdd-l3-l5-l7-l8-supply: true
vdd-l4-l6-supply: true
vdd-s3-s4-supply: true
patternProperties:
"^vdd-s[125]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pm7325-rpmh-regulators
then:
properties:
vdd-l1-l4-l12-l15-supply: true
vdd-l2-l7-supply: true
vdd-l6-l9-l10-supply: true
vdd-l11-l17-l18-l19-supply: true
vdd-l13-supply: true
vdd-l14-l16-supply: true
patternProperties:
"^vdd-l[358]-supply$": true
"^vdd-s[1-8]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pm7550-rpmh-regulators
then:
properties:
vdd-bob-supply:
description: BOB regulator parent supply phandle.
vdd-l2-l3-supply: true
vdd-l4-l5-supply: true
vdd-l9-l10-supply: true
vdd-l12-l14-supply: true
vdd-l13-l16-supply: true
vdd-l15-l17-l18-l19-l20-l21-l22-l23-supply: true
patternProperties:
"^vdd-l(1|[6-8]|11)-supply$": true
"^vdd-s[1-6]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pm8005-rpmh-regulators
- qcom,pmh0104-rpmh-regulators
then:
patternProperties:
"^vdd-s[1-4]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pm8009-rpmh-regulators
- qcom,pm8009-1-rpmh-regulators
then:
properties:
vdd-l5-l6-supply: true
patternProperties:
"^vdd-l[1-47]-supply$": true
"^vdd-s[1-2]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pm8010-rpmh-regulators
then:
properties:
vdd-l1-l2-supply: true
vdd-l3-l4-supply: true
patternProperties:
"^vdd-l[5-7]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pm8150-rpmh-regulators
- qcom,pmc8180-rpmh-regulators
- qcom,pmm8155au-rpmh-regulators
then:
properties:
vdd-l1-l8-l11-supply: true
vdd-l2-l10-supply: true
vdd-l3-l4-l5-l18-supply: true
vdd-l6-l9-supply: true
vdd-l7-l12-l14-l15-supply: true
vdd-l13-l16-l17-supply: true
patternProperties:
"^vdd-s([1-9]|10)-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pmm8654au-rpmh-regulators
then:
properties:
vdd-l1-supply: true
vdd-l2-l3-supply: true
vdd-l4-supply: true
vdd-l5-supply: true
vdd-l6-l7-supply: true
vdd-l8-l9-supply: true
patternProperties:
"^vdd-s[1-9]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pm8350-rpmh-regulators
then:
properties:
vdd-l1-l4-supply: true
vdd-l2-l7-supply: true
vdd-l3-l5-supply: true
vdd-l6-l9-l10-supply: true
vdd-l8-supply: true
patternProperties:
"^vdd-s([1-9]|1[0-2])-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pm8350b-rpmh-regulators
then:
properties:
vdd-l1-supply: true
- if:
properties:
compatible:
enum:
- qcom,pm8350c-rpmh-regulators
then:
properties:
vdd-bob-supply:
description: BOB regulator parent supply phandle.
vdd-l1-l12-supply: true
vdd-l2-l8-supply: true
vdd-l3-l4-l5-l7-l13-supply: true
vdd-l6-l9-l11-supply: true
vdd-l10-supply: true
patternProperties:
"^vdd-s([1-9]|10)-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pm8450-rpmh-regulators
then:
patternProperties:
"^vdd-l[1-4]-supply$": true
"^vdd-s[1-6]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pm8550-rpmh-regulators
then:
properties:
vdd-l1-l4-l10-supply: true
vdd-l2-l13-l14-supply: true
vdd-l5-l16-supply: true
vdd-l6-l7-supply: true
vdd-l8-l9-supply: true
patternProperties:
"^vdd-l(3|1[1-7])-supply$": true
"^vdd-s[1-6]-supply$": true
"^vdd-bob[1-2]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pm8550vs-rpmh-regulators
then:
patternProperties:
"^vdd-l[1-3]-supply$": true
"^vdd-s[1-6]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pm8998-rpmh-regulators
then:
properties:
vdd-l1-l27-supply: true
vdd-l2-l8-l17-supply: true
vdd-l3-l11-supply: true
vdd-l4-l5-supply: true
vdd-l6-supply: true
vdd-l7-l12-l14-l15-supply: true
vdd-l9-supply: true
vdd-l10-l23-l25-supply: true
vdd-l13-l19-l21-supply: true
vdd-l16-l28-supply: true
vdd-l18-l22-supply: true
vdd-l20-l24-supply: true
vdd-l26-supply: true
vin-lvs-1-2-supply: true
patternProperties:
"^vdd-s([1-9]|1[0-3])-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pmau0102-rpmh-regulators
- qcom,pmc8380-rpmh-regulators
- qcom,pm8550ve-rpmh-regulators
then:
patternProperties:
"^vdd-l[1-3]-supply$": true
"^vdd-s[1-8]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pmg1110-rpmh-regulators
then:
properties:
vdd-s1-supply: true
- if:
properties:
compatible:
enum:
- qcom,pmh0101-rpmh-regulators
then:
properties:
vdd-l1-l4-l10-supply: true
vdd-l2-l13-l14-supply: true
vdd-l3-l11-supply: true
vdd-l5-l16-supply: true
vdd-l6-l7-supply: true
vdd-l8-l9-supply: true
patternProperties:
"^vdd-l(1[2578])-supply$": true
"^vdd-bob[1-2]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pmcx0102-rpmh-regulators
- qcom,pmh0110-rpmh-regulators
then:
patternProperties:
"^vdd-l[1-4]-supply$": true
"^vdd-s([1-9]|10)-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pmi8998-rpmh-regulators
then:
properties:
vdd-bob-supply:
description: BOB regulator parent supply phandle.
- if:
properties:
compatible:
enum:
- qcom,pmr735a-rpmh-regulators
then:
properties:
vdd-l1-l2-supply: true
vdd-l3-supply: true
vdd-l4-supply: true
vdd-l5-l6-supply: true
vdd-l7-bob-supply: true
patternProperties:
"^vdd-s[1-3]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pmr735b-rpmh-regulators
then:
properties:
vdd-l1-l2-supply: true
vdd-l7-l8-supply: true
patternProperties:
"^vdd-l([3-6]|9|1[0-2])-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pmr735d-rpmh-regulators
then:
properties:
vdd-l1-l2-l5-supply: true
vdd-l3-l4-supply: true
patternProperties:
"^vdd-l[6-7]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pmx55-rpmh-regulators
then:
properties:
vdd-l1-l2-supply: true
vdd-l3-l9-supply: true
vdd-l4-l12-supply: true
vdd-l5-l6-supply: true
vdd-l7-l8-supply: true
vdd-l10-l11-l13-supply: true
patternProperties:
"^vdd-l1[4-6]-supply$": true
"^vdd-s[1-7]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pmx65-rpmh-regulators
then:
properties:
vdd-l2-l18-supply: true
vdd-l5-l6-l16-supply: true
vdd-l8-l9-supply: true
vdd-l11-l13-supply: true
patternProperties:
"^vdd-l[1347]-supply$": true
"^vdd-l1[024579]-supply$": true
"^vdd-l2[01]-supply$": true
"^vdd-s[1-8]-supply$": true
- if:
properties:
compatible:
enum:
- qcom,pmx75-rpmh-regulators
then:
properties:
vdd-l2-l18-supply: true
vdd-l4-l16-supply: true
vdd-l5-l6-supply: true
vdd-l8-l9-supply: true
vdd-l11-l13-supply: true
vdd-l20-l21-supply: true
patternProperties:
"^vdd-l[137]-supply$": true
"^vdd-l1[024579]-supply$": true
"^vdd-s([1-9]|10)-supply$": true
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
pm8998-rpmh-regulators {
compatible = "qcom,pm8998-rpmh-regulators";
qcom,pmic-id = "a";
vdd-l7-l12-l14-l15-supply = <&pm8998_s5>;
smps2 {
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
};
ldo7 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
};
lvs1 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
};
pmi8998-rpmh-regulators {
compatible = "qcom,pmi8998-rpmh-regulators";
qcom,pmic-id = "b";
bob {
regulator-min-microvolt = <3312000>;
regulator-max-microvolt = <3600000>;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_AUTO
RPMH_REGULATOR_MODE_HPM>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
};
};
...
@@ -0,0 +1,60 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/qcom,sdm845-refgen-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Technologies, Inc. REFGEN Regulator
maintainers:
- Konrad Dybcio <konradybcio@kernel.org>
description:
The REFGEN (reference voltage generator) regulator provides reference
voltage for on-chip IPs (like PHYs) on some Qualcomm SoCs.
allOf:
- $ref: regulator.yaml#
properties:
compatible:
oneOf:
- items:
- enum:
- qcom,sc7180-refgen-regulator
- qcom,sc8180x-refgen-regulator
- qcom,sdm670-refgen-regulator
- qcom,sm8150-refgen-regulator
- const: qcom,sdm845-refgen-regulator
- items:
- enum:
- qcom,qcs8300-refgen-regulator
- qcom,sa8775p-refgen-regulator
- qcom,sc7280-refgen-regulator
- qcom,sc8280xp-refgen-regulator
- qcom,sm6350-refgen-regulator
- qcom,sm6375-refgen-regulator
- qcom,sm8350-refgen-regulator
- const: qcom,sm8250-refgen-regulator
- enum:
- qcom,sdm845-refgen-regulator
- qcom,sm8250-refgen-regulator
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
regulator@162f000 {
compatible = "qcom,sm8250-refgen-regulator";
reg = <0x0162f000 0x84>;
};
...
@@ -0,0 +1,153 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/qcom,smd-rpm-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: QCOM SMD RPM REGULATOR
description:
The Qualcomm RPM over SMD regulator is modelled as a subdevice of the RPM.
Because SMD is used as the communication transport mechanism, the RPM
resides as a subnode of the SMD. As such, the SMD-RPM regulator requires
that the SMD and RPM nodes be present.
Please refer to Documentation/devicetree/bindings/soc/qcom/qcom,smd.yaml for
information pertaining to the SMD node.
Please refer to Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml
for information regarding the RPM node.
The regulator node houses sub-nodes for each regulator within the device.
Each sub-node is identified using the node's name, with valid values listed
for each of the pmics below.
For mp5496, s1, s2, l2, l5
For pm2250, s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
l12, l13, l14, l15, l16, l17, l18, l19, l20, l21, l22
For pm6125 s1, s2, s3, s4, s5, s6, s7, s8, l1, l2, l3, l5, l6, l7, l8, l9,
l10, l22, l12, l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24
For pm660, s1, s2, s3, s4, s5, s6, l1, l2, l3, l5, l6, l7, l8, l9, l10, l22,
l12, l13, l14, l15, l16, l17, l18, l19
For pm660l s1, s2, s3, s5, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, bob
For pm8019, s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
l12, l13, l14
For pm8150, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, l1, l2, l3, l4, l5, l6,
l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18
For pm8226, s1, s2, s3, s4, s5, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10,
l11, l12, l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, l25,
l26, l27, l28, lvs1
For pm8841, s1, s2, s3, s4, s5, s6, s7, s8
For pm8909, s1, s2, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13,
l14, l15, l17, l18
For pm8916, s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
l12, l13, l14, l15, l16, l17, l18
For pm8937, s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10,
l11, l12, l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23
For pm8941, s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
l12, l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, lvs1, lvs2,
lvs3, 5vs1, 5vs2
For pm8950 and pm8953, s1, s2, s3, s4, s5, s6, s7, l1, l2, l3, l4, l5, l6,
l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20, l21, l22,
l23
For pm8994, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, l1, l2, l3,
l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19,
l20, l21, l22, l23, l24, l25, l26, l27, l28, l29, l30, l31, l32, lvs1, lvs2
For pm8998, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, l1, l2,
l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19,
l20, l21, l22, l23, l24, l25, l26, l27, l28, lvs1, lvs2
For pma8084, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, l1, l2, l3,
l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19,
l20, l21, l22, l23, l24, l25, l26, l27, lvs1, lvs2, lvs3, lvs4, 5vs1
For pmi8994, s1, s2, s3, boost-bypass
For pmi8998, bob
For pmr735a, s1, s2, s3, l1, l2, l3, l4, l5, l6, l7
For pms405, s1, s2, s3, s4, s5, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
l12, l13
maintainers:
- Andy Gross <agross@kernel.org>
- Bjorn Andersson <bjorn.andersson@linaro.org>
properties:
compatible:
enum:
- qcom,rpm-mp5496-regulators
- qcom,rpm-pm2250-regulators
- qcom,rpm-pm6125-regulators
- qcom,rpm-pm660-regulators
- qcom,rpm-pm660l-regulators
- qcom,rpm-pm8019-regulators
- qcom,rpm-pm8150-regulators
- qcom,rpm-pm8226-regulators
- qcom,rpm-pm8841-regulators
- qcom,rpm-pm8909-regulators
- qcom,rpm-pm8916-regulators
- qcom,rpm-pm8937-regulators
- qcom,rpm-pm8941-regulators
- qcom,rpm-pm8950-regulators
- qcom,rpm-pm8953-regulators
- qcom,rpm-pm8994-regulators
- qcom,rpm-pm8998-regulators
- qcom,rpm-pma8084-regulators
- qcom,rpm-pmi8994-regulators
- qcom,rpm-pmi8998-regulators
- qcom,rpm-pmr735a-regulators
- qcom,rpm-pms405-regulators
patternProperties:
".*-supply$":
description: Input supply phandle(s) for this node
"^((s|l|lvs|5vs)[0-9]*)|(boost-bypass)|(bob)$":
description: List of regulators and its properties
$ref: regulator.yaml#
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
examples:
- |
pm8941-regulators {
compatible = "qcom,rpm-pm8941-regulators";
vdd_l13_l20_l23_l24-supply = <&pm8941_boost>;
pm8941_s3: s3 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
pm8941_boost: s4 {
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
pm8941_l20: l20 {
regulator-min-microvolt = <2950000>;
regulator-max-microvolt = <2950000>;
};
};
...
@@ -0,0 +1,439 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/qcom,spmi-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm SPMI Regulators
maintainers:
- Robert Marko <robimarko@gmail.com>
properties:
compatible:
enum:
- qcom,pm6125-regulators
- qcom,pm660-regulators
- qcom,pm660l-regulators
- qcom,pm8004-regulators
- qcom,pm8005-regulators
- qcom,pm8019-regulators
- qcom,pm8226-regulators
- qcom,pm8841-regulators
- qcom,pm8909-regulators
- qcom,pm8916-regulators
- qcom,pm8937-regulators
- qcom,pm8941-regulators
- qcom,pm8950-regulators
- qcom,pm8994-regulators
- qcom,pma8084-regulators
- qcom,pmi8994-regulators
- qcom,pmp8074-regulators
- qcom,pms405-regulators
qcom,saw-reg:
description: Reference to syscon node defining the SAW registers
$ref: /schemas/types.yaml#/definitions/phandle
patternProperties:
"^(5vs[1-2]|(l|s)[1-9][0-9]?|lvs[1-4])$":
description: List of regulators and its properties
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
properties:
qcom,ocp-max-retries:
description:
Maximum number of times to try toggling a voltage switch off and
back on as a result of consecutive over current events
$ref: /schemas/types.yaml#/definitions/uint32
qcom,ocp-retry-delay:
description:
Time to delay in milliseconds between each voltage switch toggle
after an over current event takes place
$ref: /schemas/types.yaml#/definitions/uint32
qcom,pin-ctrl-enable:
description:
Bit mask specifying which hardware pins should be used to enable the
regulator, if any.
Supported bits are
0 = ignore all hardware enable signals
BIT(0) = follow HW0_EN signal
BIT(1) = follow HW1_EN signal
BIT(2) = follow HW2_EN signal
BIT(3) = follow HW3_EN signal
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 0
maximum: 15
qcom,pin-ctrl-hpm:
description:
Bit mask specifying which hardware pins should be used to force the
regulator into high power mode, if any.
Supported bits are
0 = ignore all hardware enable signals
BIT(0) = follow HW0_EN signal
BIT(1) = follow HW1_EN signal
BIT(2) = follow HW2_EN signal
BIT(3) = follow HW3_EN signal
BIT(4) = follow PMIC awake state
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 0
maximum: 31
qcom,vs-soft-start-strength:
description:
This property sets the soft start strength for voltage switch type
regulators.
Supported values are
0 = 0.05 uA
1 = 0.25 uA
2 = 0.55 uA
3 = 0.75 uA
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 0
maximum: 3
qcom,saw-slave:
description: SAW controlled gang slave. Will not be configured.
type: boolean
qcom,saw-leader:
description:
SAW controlled gang leader. Will be configured as SAW regulator.
type: boolean
required:
- compatible
allOf:
- if:
properties:
compatible:
contains:
enum:
- qcom,pm6125-regulators
then:
properties:
vdd_l1_l7_l17_l18-supply: true
vdd_l2_l3_l4-supply: true
vdd_l5_l15_l19_l20_l21_l22-supply: true
vdd_l6_l8-supply: true
vdd_l9_l11-supply: true
vdd_l10_l13_l14-supply: true
vdd_l12_l16-supply: true
vdd_l23_l24-supply: true
patternProperties:
"^vdd_s[1-8]-supply$": true
- if:
properties:
compatible:
contains:
enum:
- qcom,pm660-regulators
then:
properties:
vdd_l15_l16_l17_l18_l19-supply: true
vdd_l1_l6_l7-supply: true
vdd_l2_l3-supply: true
vdd_l5-supply: true
vdd_l8_l9_l10_l11_l12_l13_l14-supply: true
patternProperties:
"^vdd_s[1-6]-supply$": true
- if:
properties:
compatible:
contains:
enum:
- qcom,pm660l-regulators
then:
properties:
vdd_l1_l9_l10-supply: true
vdd_l2-supply: true
vdd_l3_l5_l7_l8-supply: true
vdd_l4_l6-supply: true
patternProperties:
"^vdd_s[1-5]-supply$": true
- if:
properties:
compatible:
contains:
enum:
- qcom,pm8004-regulators
then:
patternProperties:
"^vdd_s[25]-supply$": true
- if:
properties:
compatible:
contains:
enum:
- qcom,pm8005-regulators
then:
patternProperties:
"^vdd_s[1-4]-supply$": true
- if:
properties:
compatible:
contains:
enum:
- qcom,pm8019-regulators
then:
properties:
vdd_l1-supply: true
vdd_l2_l3-supply: true
vdd_l4_l5_l6-supply: true
vdd_l7_l8_l11-supply: true
vdd_l9-supply: true
vdd_l10-supply: true
vdd_l12-supply: true
vdd_l13_l14-supply: true
patternProperties:
"^vdd_s[1-4]-supply$": true
- if:
properties:
compatible:
contains:
enum:
- qcom,pm8226-regulators
then:
properties:
vdd_l10_l11_l13-supply: true
vdd_l12_l14-supply: true
vdd_l15_l16_l17_l18-supply: true
vdd_l19_l20_l21_l22_l23_l28-supply: true
vdd_l1_l2_l4_l5-supply: true
vdd_l25-supply: true
vdd_l3_l24_l26-supply: true
vdd_l6_l7_l8_l9_l27-supply: true
vdd_lvs1-supply: true
patternProperties:
"^vdd_s[1-5]-supply$": true
- if:
properties:
compatible:
contains:
enum:
- qcom,pm8841-regulators
then:
patternProperties:
"^vdd_s[1-8]-supply$": true
- if:
properties:
compatible:
contains:
enum:
- qcom,pm8909-regulators
then:
properties:
vdd_s1-supply: true
vdd_s2-supply: true
vdd_l1-supply: true
vdd_l2_l5-supply: true
vdd_l3_l6_l10-supply: true
vdd_l4_l7-supply: true
vdd_l8_l11_l15_l18-supply: true
vdd_l9_l12_l14_l17-supply: true
vdd_l13-supply: true
- if:
properties:
compatible:
contains:
enum:
- qcom,pm8916-regulators
then:
properties:
vdd_l1_l3-supply: true
vdd_l4_l5_l6-supply: true
vdd_l8_l11_l14_l15_l16-supply: true
vdd_l9_l10_l12_l13_l17_l18-supply: true
patternProperties:
"^vdd_l[27]-supply$": true
"^vdd_s[1-4]-supply$": true
- if:
properties:
compatible:
contains:
enum:
- qcom,pm8941-regulators
then:
properties:
interrupts:
items:
- description: Over-current protection interrupt for 5V S1
- description: Over-current protection interrupt for 5V S2
interrupt-names:
items:
- const: ocp-5vs1
- const: ocp-5vs2
vdd_l13_l20_l23_l24-supply: true
vdd_l1_l3-supply: true
vdd_l21-supply: true
vdd_l2_lvs_1_2_3-supply: true
vdd_l4_l11-supply: true
vdd_l5_l7-supply: true
vdd_l6_l12_l14_l15-supply: true
vdd_l8_l16_l18_19-supply: true
vdd_l9_l10_l17_l22-supply: true
vin_5vs-supply: true
patternProperties:
"^vdd_s[1-3]-supply$": true
- if:
properties:
compatible:
contains:
enum:
- qcom,pm8937-regulators
then:
properties:
vdd_l1_l19-supply: true
vdd_l20_l21-supply: true
vdd_l2_l23-supply: true
vdd_l3-supply: true
vdd_l4_l5_l6_l7_l16-supply: true
vdd_l8_l11_l12_l17_l22-supply: true
vdd_l9_l10_l13_l14_l15_l18-supply: true
patternProperties:
"^vdd_s[1-6]-supply$": true
- if:
properties:
compatible:
contains:
enum:
- qcom,pm8950-regulators
then:
properties:
vdd_l1_l19-supply: true
vdd_l20-supply: true
vdd_l21-supply: true
vdd_l2_l23-supply: true
vdd_l3-supply: true
vdd_l4_l5_l6_l7_l16-supply: true
vdd_l8_l11_l12_l17_l22-supply: true
vdd_l9_l10_l13_l14_l15_l18-supply: true
patternProperties:
"^vdd_s[1-6]-supply$": true
- if:
properties:
compatible:
contains:
enum:
- qcom,pm8994-regulators
then:
properties:
vdd_l1-supply: true
vdd_l13_l19_l23_l24-supply: true
vdd_l14_l15-supply: true
vdd_l17_l29-supply: true
vdd_l20_l21-supply: true
vdd_l25-supply: true
vdd_l2_l26_l28-supply: true
vdd_l3_l11-supply: true
vdd_l4_l27_l31-supply: true
vdd_l5_l7-supply: true
vdd_l6_l12_l32-supply: true
vdd_l8_l16_l30-supply: true
vdd_l9_l10_l18_l22-supply: true
vdd_lvs_1_2-supply: true
patternProperties:
"^vdd_s[1-9][0-2]?-supply$": true
- if:
properties:
compatible:
contains:
enum:
- qcom,pma8084-regulators
then:
properties:
vdd_l1_l11-supply: true
vdd_l2_l3_l4_l27-supply: true
vdd_l5_l7-supply: true
vdd_l6_l12_l14_l15_l26-supply: true
vdd_l8-supply: true
vdd_l9_l10_l13_l20_l23_l24-supply: true
vdd_l16_l25-supply: true
vdd_l17-supply: true
vdd_l18-supply: true
vdd_l19-supply: true
vdd_l21-supply: true
vdd_l22-supply: true
vdd_lvs1_2-supply: true
vdd_lvs3_4-supply: true
vdd_5vs1-supply: true
patternProperties:
"^vdd_s([1-9]|1[0-2])-supply$": true
- if:
properties:
compatible:
contains:
enum:
- qcom,pmi8994-regulators
then:
properties:
vdd_l1-supply: true
patternProperties:
"^vdd_s[1-3]-supply$": true
- if:
properties:
compatible:
contains:
enum:
- qcom,pmp8074-regulators
then:
properties:
vdd_l10_l11_l12_l13-supply: true
vdd_l1_l2-supply: true
vdd_l3_l8-supply: true
vdd_l5_l6_l15-supply: true
patternProperties:
"^vdd_l[479]-supply$": true
"^vdd_s[1-5]-supply$": true
- if:
properties:
compatible:
contains:
enum:
- qcom,pms405-regulators
then:
properties:
vdd_s3-supply: true
unevaluatedProperties: false
examples:
- |
regulators {
compatible = "qcom,pm8941-regulators";
vdd_l1_l3-supply = <&s1>;
s1: s1 {
regulator-min-microvolt = <1300000>;
regulator-max-microvolt = <1400000>;
};
l1: l1 {
regulator-min-microvolt = <1225000>;
regulator-max-microvolt = <1300000>;
};
};
...
@@ -0,0 +1,58 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/qcom,usb-vbus-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: The Qualcomm PMIC VBUS output regulator driver
maintainers:
- Wesley Cheng <quic_wcheng@quicinc.com>
description: |
This regulator driver controls the VBUS output by the Qualcomm PMIC. This
regulator will be enabled in situations where the device is required to
provide power to the connected peripheral.
allOf:
- $ref: regulator.yaml#
properties:
compatible:
oneOf:
- enum:
- qcom,pm8150b-vbus-reg
- items:
- enum:
- qcom,pm4125-vbus-reg
- qcom,pm6150-vbus-reg
- qcom,pm7250b-vbus-reg
- qcom,pmi632-vbus-reg
- const: qcom,pm8150b-vbus-reg
reg:
maxItems: 1
description: VBUS output base address
required:
- compatible
- reg
- regulator-min-microamp
- regulator-max-microamp
unevaluatedProperties: false
examples:
- |
pmic {
#address-cells = <1>;
#size-cells = <0>;
usb-vbus-regulator@1100 {
compatible = "qcom,pm8150b-vbus-reg";
reg = <0x1100>;
regulator-min-microamp = <500000>;
regulator-max-microamp = <3000000>;
};
};
...
@@ -0,0 +1,100 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/qcom,wcn3990-pmu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Technologies, Inc. WCN3990 PMU Regulators
maintainers:
- Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
description:
The WCN3990 package contains discrete modules for WLAN and Bluetooth. They
are powered by the Power Management Unit (PMU) that takes inputs from the
host and provides LDO outputs. This document describes this module.
properties:
compatible:
enum:
- qcom,wcn3950-pmu
- qcom,wcn3988-pmu
- qcom,wcn3990-pmu
- qcom,wcn3991-pmu
- qcom,wcn3998-pmu
vddio-supply:
description: VDD_IO supply regulator handle
vddxo-supply:
description: VDD_XTAL supply regulator handle
vddrf-supply:
description: VDD_RF supply regulator handle
vddch0-supply:
description: chain 0 supply regulator handle
vddch1-supply:
description: chain 1 supply regulator handle
swctrl-gpios:
maxItems: 1
description: GPIO line indicating the state of the clock supply to the BT module
clocks:
maxItems: 1
description: Reference clock handle
regulators:
type: object
description:
LDO outputs of the PMU
patternProperties:
"^ldo[0-9]$":
$ref: regulator.yaml#
type: object
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
- regulators
- vddio-supply
- vddxo-supply
- vddrf-supply
- vddch0-supply
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
pmu {
compatible = "qcom,wcn3990-pmu";
vddio-supply = <&vreg_io>;
vddxo-supply = <&vreg_xo>;
vddrf-supply = <&vreg_rf>;
vddch0-supply = <&vreg_ch0>;
regulators {
vreg_pmu_io: ldo0 {
regulator-name = "vreg_pmu_io";
};
vreg_pmu_xo: ldo1 {
regulator-name = "vreg_pmu_xo";
};
vreg_pmu_rf: ldo2 {
regulator-name = "vreg_pmu_rf";
};
vreg_pmu_ch0: ldo3 {
regulator-name = "vreg_pmu_ch0";
};
};
};
@@ -0,0 +1,106 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/qcom-labibb-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm's LAB(LCD AMOLED Boost)/IBB(Inverting Buck Boost) Regulator
maintainers:
- Sumit Semwal <sumit.semwal@linaro.org>
description:
LAB can be used as a positive boost power supply and IBB can be used as a
negative boost power supply for display panels. Currently implemented for
pmi8998.
properties:
compatible:
oneOf:
- const: qcom,pmi8998-lab-ibb
- items:
- enum:
- qcom,pmi8950-lab-ibb
- const: qcom,pmi8998-lab-ibb
lab:
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
properties:
qcom,soft-start-us:
description: Regulator soft start time in microseconds.
enum: [200, 400, 600, 800]
default: 200
interrupts:
minItems: 1
maxItems: 2
description:
Short-circuit and over-current interrupts for lab.
interrupt-names:
minItems: 1
items:
- const: sc-err
- const: ocp
required:
- interrupts
- interrupt-names
ibb:
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
properties:
qcom,discharge-resistor-kohms:
$ref: /schemas/types.yaml#/definitions/uint32
description: Discharge resistor value in KiloOhms.
enum: [300, 64, 32, 16]
default: 300
interrupts:
minItems: 1
maxItems: 2
description:
Short-circuit and over-current interrupts for ibb.
interrupt-names:
minItems: 1
items:
- const: sc-err
- const: ocp
required:
- interrupts
- interrupt-names
required:
- compatible
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
labibb {
compatible = "qcom,pmi8998-lab-ibb";
lab {
interrupts = <0x3 0xde 0x1 IRQ_TYPE_EDGE_RISING>,
<0x3 0xde 0x0 IRQ_TYPE_LEVEL_LOW>;
interrupt-names = "sc-err", "ocp";
};
ibb {
interrupts = <0x3 0xdc 0x2 IRQ_TYPE_EDGE_RISING>,
<0x3 0xdc 0x0 IRQ_TYPE_LEVEL_LOW>;
interrupt-names = "sc-err", "ocp";
};
};
...
@@ -0,0 +1,61 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/raspberrypi,7inch-touchscreen-panel-regulator-v2.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: RaspberryPi 5" and 7" display V2 MCU-based regulator/backlight controller
maintainers:
- Marek Vasut <marek.vasut+renesas@mailbox.org>
description: |
The RaspberryPi 5" and 7" display 2 has an MCU-based regulator, PWM
backlight and GPIO controller on the PCB, which is used to turn the
display unit on/off and control the backlight.
allOf:
- $ref: regulator.yaml#
properties:
compatible:
const: raspberrypi,touchscreen-panel-regulator-v2
reg:
maxItems: 1
gpio-controller: true
"#gpio-cells":
const: 2
description:
The first cell is the pin number, and the second cell is used to
specify the gpio polarity (GPIO_ACTIVE_HIGH or GPIO_ACTIVE_LOW).
"#pwm-cells":
const: 3
description: See ../../pwm/pwm.yaml for description of the cell formats.
additionalProperties: false
required:
- compatible
- reg
- gpio-controller
- "#gpio-cells"
- "#pwm-cells"
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@45 {
compatible = "raspberrypi,touchscreen-panel-regulator-v2";
reg = <0x45>;
gpio-controller;
#gpio-cells = <2>;
#pwm-cells = <3>;
};
};
...

Some files were not shown because too many files have changed in this diff Show More