---
name: "struct_regulator_ops"
section: "9"
platform: "linux"
package: "linux-manual-4.9"
version: "4.9.228-1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/struct_regulator_ops"
---

# struct\_regulator\_ops(9)

regulator operations.

## NAME

struct\_regulator\_ops - regulator operations.

## SYNOPSIS

```
struct regulator_ops {
  int (* list_voltage) (struct regulator_dev *, unsigned selector);
  int (* set_voltage) (struct regulator_dev *, int min_uV, int max_uV,unsigned *selector);
  int (* map_voltage) (struct regulator_dev *, int min_uV, int max_uV);
  int (* set_voltage_sel) (struct regulator_dev *, unsigned selector);
  int (* get_voltage) (struct regulator_dev *);
  int (* get_voltage_sel) (struct regulator_dev *);
  int (* set_current_limit) (struct regulator_dev *,int min_uA, int max_uA);
  int (* get_current_limit) (struct regulator_dev *);
  int (* set_input_current_limit) (struct regulator_dev *, int lim_uA);
  int (* set_over_current_protection) (struct regulator_dev *);
  int (* set_active_discharge) (struct regulator_dev *, bool enable);
  int (* enable) (struct regulator_dev *);
  int (* disable) (struct regulator_dev *);
  int (* is_enabled) (struct regulator_dev *);
  int (* set_mode) (struct regulator_dev *, unsigned int mode);
  unsigned int (* get_mode) (struct regulator_dev *);
  int (* enable_time) (struct regulator_dev *);
  int (* set_ramp_delay) (struct regulator_dev *, int ramp_delay);
  int (* set_voltage_time) (struct regulator_dev *, int old_uV,int new_uV);
  int (* set_voltage_time_sel) (struct regulator_dev *,unsigned int old_selector,unsigned int new_selector);
  int (* set_soft_start) (struct regulator_dev *);
  int (* get_status) (struct regulator_dev *);
  unsigned int (* get_optimum_mode) (struct regulator_dev *, int input_uV,int output_uV, int load_uA);
  int (* set_load) (struct regulator_dev *, int load_uA);
  int (* set_bypass) (struct regulator_dev *dev, bool enable);
  int (* get_bypass) (struct regulator_dev *dev, bool *enable);
  int (* set_suspend_voltage) (struct regulator_dev *, int uV);
  int (* set_suspend_enable) (struct regulator_dev *);
  int (* set_suspend_disable) (struct regulator_dev *);
  int (* set_suspend_mode) (struct regulator_dev *, unsigned int mode);
  int (* set_pull_down) (struct regulator_dev *);
};
```

## MEMBERS

list\_voltage

Return one of the supported voltages, in microvolts; zero if the selector indicates a voltage that is unusable on this system; or negative errno. Selectors range from zero to one less than regulator\_desc.n\_voltages. Voltages may be reported in any order.

set\_voltage

Set the voltage for the regulator within the range specified. The driver should select the voltage closest to min\_uV.

map\_voltage

Convert a voltage into a selector

set\_voltage\_sel

Set the voltage for the regulator using the specified selector.

get\_voltage

Return the currently configured voltage for the regulator.

get\_voltage\_sel

Return the currently configured voltage selector for the regulator.

set\_current\_limit

Configure a limit for a current-limited regulator. The driver should select the current closest to max\_uA.

get\_current\_limit

Get the configured limit for a current-limited regulator.

set\_input\_current\_limit

Configure an input limit.

set\_over\_current\_protection

Support capability of automatically shutting down when detecting an over current event.

set\_active\_discharge

Set active discharge enable/disable of regulators.

enable

Configure the regulator as enabled.

disable

Configure the regulator as disabled.

is\_enabled

Return 1 if the regulator is enabled, 0 if not. May also return negative errno.

set\_mode

Set the configured operating mode for the regulator.

get\_mode

Get the configured operating mode for the regulator.

enable\_time

Time taken for the regulator voltage output voltage to stabilise after being enabled, in microseconds.

set\_ramp\_delay

Set the ramp delay for the regulator. The driver should select ramp delay equal to or less than(closest) ramp\_delay.

set\_voltage\_time

Time taken for the regulator voltage output voltage to stabilise after being set to a new value, in microseconds. The function receives the from and to voltage as input, it should return the worst case.

set\_voltage\_time\_sel

Time taken for the regulator voltage output voltage to stabilise after being set to a new value, in microseconds. The function receives the from and to voltage selector as input, it should return the worst case.

set\_soft\_start

Enable soft start for the regulator.

get\_status

Return actual (not as-configured) status of regulator, as a REGULATOR\_STATUS value (or negative errno)

get\_optimum\_mode

Get the most efficient operating mode for the regulator when running with the specified parameters.

set\_load

Set the load for the regulator.

set\_bypass

Set the regulator in bypass mode.

get\_bypass

Get the regulator bypass mode state.

set\_suspend\_voltage

Set the voltage for the regulator when the system is suspended.

set\_suspend\_enable

Mark the regulator as enabled when the system is suspended.

set\_suspend\_disable

Mark the regulator as disabled when the system is suspended.

set\_suspend\_mode

Set the operating mode for the regulator when the system is suspended.

set\_pull\_down

Configure the regulator to pull down when the regulator is disabled.

## DESCRIPTION

This struct describes regulator operations which can be implemented by regulator chip drivers.

## AUTHORS

**Liam Girdwood** \<lrg@slimlogic.co.uk\>

Author.

**Mark Brown** \<broonie@opensource.wolfsonmicro.com\>\
 Wolfson Microelectronics,

Author.

## COPYRIGHT
