root/include/linux/regulator/gpio-regulator.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3  * gpio-regulator.h
   4  *
   5  * Copyright 2011 Heiko Stuebner <heiko@sntech.de>
   6  *
   7  * based on fixed.h
   8  *
   9  * Copyright 2008 Wolfson Microelectronics PLC.
  10  *
  11  * Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
  12  *
  13  * Copyright (c) 2009 Nokia Corporation
  14  * Roger Quadros <ext-roger.quadros@nokia.com>
  15  */
  16 
  17 #ifndef __REGULATOR_GPIO_H
  18 #define __REGULATOR_GPIO_H
  19 
  20 #include <linux/gpio/consumer.h>
  21 
  22 struct regulator_init_data;
  23 
  24 enum regulator_type;
  25 
  26 /**
  27  * struct gpio_regulator_state - state description
  28  * @value:              microvolts or microamps
  29  * @gpios:              bitfield of gpio target-states for the value
  30  *
  31  * This structure describes a supported setting of the regulator
  32  * and the necessary gpio-state to achieve it.
  33  *
  34  * The n-th bit in the bitfield describes the state of the n-th GPIO
  35  * from the gpios-array defined in gpio_regulator_config below.
  36  */
  37 struct gpio_regulator_state {
  38         int value;
  39         int gpios;
  40 };
  41 
  42 /**
  43  * struct gpio_regulator_config - config structure
  44  * @supply_name:        Name of the regulator supply
  45  * @enabled_at_boot:    Whether regulator has been enabled at
  46  *                      boot or not. 1 = Yes, 0 = No
  47  *                      This is used to keep the regulator at
  48  *                      the default state
  49  * @startup_delay:      Start-up time in microseconds
  50  * @gflags:             Array of GPIO configuration flags for initial
  51  *                      states
  52  * @ngpios:             Number of GPIOs and configurations available
  53  * @states:             Array of gpio_regulator_state entries describing
  54  *                      the gpio state for specific voltages
  55  * @nr_states:          Number of states available
  56  * @regulator_type:     either REGULATOR_CURRENT or REGULATOR_VOLTAGE
  57  * @init_data:          regulator_init_data
  58  *
  59  * This structure contains gpio-voltage regulator configuration
  60  * information that must be passed by platform code to the
  61  * gpio-voltage regulator driver.
  62  */
  63 struct gpio_regulator_config {
  64         const char *supply_name;
  65 
  66         unsigned enabled_at_boot:1;
  67         unsigned startup_delay;
  68 
  69         enum gpiod_flags *gflags;
  70         int ngpios;
  71 
  72         struct gpio_regulator_state *states;
  73         int nr_states;
  74 
  75         enum regulator_type type;
  76         struct regulator_init_data *init_data;
  77 };
  78 
  79 #endif

/* [<][>][^][v][top][bottom][index][help] */