This is the documentation for the latest (main) development branch of Zephyr. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version.

regulator-gpio

Vendor: Generic or vendor-independent

Description

GPIO-controlled voltage of regulators

Example of dts node:
  vccq_sd0: regulator-vccq-sd0 {
    compatible = "regulator-gpio";

    regulator-name = "SD0 VccQ";
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <3300000>;

    enable-gpios = <&gpio5 3 GPIO_ACTIVE_HIGH>;

    gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>, <&gpio5 2 GPIO_ACTIVE_HIGH>;
    states = <3300000 2>, <2700000 1>, <1800000 0>;

    regulator-boot-on;
  };

In the above example, three GPIO pins are used for controlling the regulator:
  * two of them for controlling voltage;
  * third for enabling/disabling the regulator.

Properties

Properties not inherited from the base binding file.

Name

Type

Details

regulator-name

string

A string used as a descriptive name for regulator outputs

This property is required.

gpios

phandle-array

GPIO to use to switch voltage.

This property is required.

states

array

Selection of available voltages 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. First value in an array
item is voltage in microvolts and the second is GPIO group state value.

enable-gpios

phandle-array

GPIO to use to enable/disable the regulator.

Unlike the gpio property in the Linux bindings this array must provide
the GPIO polarity and open-drain status in the phandle selector. The
Linux enable-active-high and gpio-open-drain properties are not valid
for Zephyr devicetree files. Moreover, the driver isn't capable of
working with more than one GPIO and this property does not have a state
array. The driver simply sets or clears the appropriate GPIO bit when
it is requested to enable or disable the regulator.

Example:
  enable-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;

regulator-init-microvolt

int

Voltage set during initialisation

regulator-min-microvolt

int

smallest voltage consumers may set

regulator-max-microvolt

int

largest voltage consumers may set

regulator-always-on

boolean

boolean, regulator should never be disabled

regulator-boot-on

boolean

bootloader/firmware enabled regulator.
It's expected that this regulator was left on by the bootloader.
If the bootloader didn't leave it on then OS should turn it on
at boot but shouldn't prevent it from being turned off later.
This property is intended to only be used for regulators where
software cannot read the state of the regulator.

startup-delay-us

int

Startup time, in microseconds