linux/include/linux/regulator/fixed.h
<<
>>
Prefs
   1/*
   2 * fixed.h
   3 *
   4 * Copyright 2008 Wolfson Microelectronics PLC.
   5 *
   6 * Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
   7 *
   8 * Copyright (c) 2009 Nokia Corporation
   9 * Roger Quadros <ext-roger.quadros@nokia.com>
  10 *
  11 * This program is free software; you can redistribute it and/or
  12 * modify it under the terms of the GNU General Public License as
  13 * published by the Free Software Foundation; either version 2 of the
  14 * License, or (at your option) any later version.
  15 */
  16
  17#ifndef __REGULATOR_FIXED_H
  18#define __REGULATOR_FIXED_H
  19
  20struct regulator_init_data;
  21
  22/**
  23 * struct fixed_voltage_config - fixed_voltage_config structure
  24 * @supply_name:        Name of the regulator supply
  25 * @input_supply:       Name of the input regulator supply
  26 * @microvolts:         Output voltage of regulator
  27 * @gpio:               GPIO to use for enable control
  28 *                      set to -EINVAL if not used
  29 * @startup_delay:      Start-up time in microseconds
  30 * @gpio_is_open_drain: Gpio pin is open drain or normal type.
  31 *                      If it is open drain type then HIGH will be set
  32 *                      through PULL-UP with setting gpio as input
  33 *                      and low will be set as gpio-output with driven
  34 *                      to low. For non-open-drain case, the gpio will
  35 *                      will be in output and drive to low/high accordingly.
  36 * @enable_high:        Polarity of enable GPIO
  37 *                      1 = Active high, 0 = Active low
  38 * @enabled_at_boot:    Whether regulator has been enabled at
  39 *                      boot or not. 1 = Yes, 0 = No
  40 *                      This is used to keep the regulator at
  41 *                      the default state
  42 * @init_data:          regulator_init_data
  43 *
  44 * This structure contains fixed voltage regulator configuration
  45 * information that must be passed by platform code to the fixed
  46 * voltage regulator driver.
  47 */
  48struct fixed_voltage_config {
  49        const char *supply_name;
  50        const char *input_supply;
  51        int microvolts;
  52        int gpio;
  53        unsigned startup_delay;
  54        unsigned gpio_is_open_drain:1;
  55        unsigned enable_high:1;
  56        unsigned enabled_at_boot:1;
  57        struct regulator_init_data *init_data;
  58};
  59
  60struct regulator_consumer_supply;
  61
  62#if IS_ENABLED(CONFIG_REGULATOR)
  63struct platform_device *regulator_register_always_on(int id, const char *name,
  64                struct regulator_consumer_supply *supplies, int num_supplies, int uv);
  65#else
  66static inline struct platform_device *regulator_register_always_on(int id, const char *name,
  67                struct regulator_consumer_supply *supplies, int num_supplies, int uv)
  68{
  69        return NULL;
  70}
  71#endif
  72
  73#define regulator_register_fixed(id, s, ns) regulator_register_always_on(id, \
  74                                                "fixed-dummy", s, ns, 0)
  75
  76#endif
  77