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 * @startup_delay: Start-up time in microseconds 28 * @gpio_is_open_drain: Gpio pin is open drain or normal type. 29 * If it is open drain type then HIGH will be set 30 * through PULL-UP with setting gpio as input 31 * and low will be set as gpio-output with driven 32 * to low. For non-open-drain case, the gpio will 33 * will be in output and drive to low/high accordingly. 34 * @enable_high: Polarity of enable GPIO 35 * 1 = Active high, 0 = Active low 36 * @enabled_at_boot: Whether regulator has been enabled at 37 * boot or not. 1 = Yes, 0 = No 38 * This is used to keep the regulator at 39 * the default state 40 * @init_data: regulator_init_data 41 * 42 * This structure contains fixed voltage regulator configuration 43 * information that must be passed by platform code to the fixed 44 * voltage regulator driver. 45 */ 46struct fixed_voltage_config { 47 const char *supply_name; 48 const char *input_supply; 49 int microvolts; 50 unsigned startup_delay; 51 unsigned gpio_is_open_drain:1; 52 unsigned enable_high:1; 53 unsigned enabled_at_boot:1; 54 struct regulator_init_data *init_data; 55}; 56 57struct regulator_consumer_supply; 58 59#if IS_ENABLED(CONFIG_REGULATOR) 60struct platform_device *regulator_register_always_on(int id, const char *name, 61 struct regulator_consumer_supply *supplies, int num_supplies, int uv); 62#else 63static inline struct platform_device *regulator_register_always_on(int id, const char *name, 64 struct regulator_consumer_supply *supplies, int num_supplies, int uv) 65{ 66 return NULL; 67} 68#endif 69 70#define regulator_register_fixed(id, s, ns) regulator_register_always_on(id, \ 71 "fixed-dummy", s, ns, 0) 72 73#endif 74