Commit | Line | Data |
---|---|---|
48d335ba MB |
1 | /* |
2 | * fixed.h | |
3 | * | |
4 | * Copyright 2008 Wolfson Microelectronics PLC. | |
5 | * | |
6 | * Author: Mark Brown <broonie@opensource.wolfsonmicro.com> | |
7 | * | |
86d9884b RQ |
8 | * Copyright (c) 2009 Nokia Corporation |
9 | * Roger Quadros <ext-roger.quadros@nokia.com> | |
10 | * | |
48d335ba MB |
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 | ||
bcf3402c MB |
20 | struct regulator_init_data; |
21 | ||
86d9884b RQ |
22 | /** |
23 | * struct fixed_voltage_config - fixed_voltage_config structure | |
24 | * @supply_name: Name of the regulator supply | |
6be5bfc3 | 25 | * @input_supply: Name of the input regulator supply |
86d9884b RQ |
26 | * @microvolts: Output voltage of regulator |
27 | * @gpio: GPIO to use for enable control | |
28 | * set to -EINVAL if not used | |
eda79a30 | 29 | * @startup_delay: Start-up time in microseconds |
a4d9f179 LD |
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. | |
86d9884b RQ |
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 | */ | |
48d335ba MB |
48 | struct fixed_voltage_config { |
49 | const char *supply_name; | |
6be5bfc3 | 50 | const char *input_supply; |
48d335ba | 51 | int microvolts; |
86d9884b | 52 | int gpio; |
eda79a30 | 53 | unsigned startup_delay; |
a4d9f179 | 54 | unsigned gpio_is_open_drain:1; |
86d9884b RQ |
55 | unsigned enable_high:1; |
56 | unsigned enabled_at_boot:1; | |
bcf3402c | 57 | struct regulator_init_data *init_data; |
48d335ba MB |
58 | }; |
59 | ||
613330a0 SH |
60 | struct regulator_consumer_supply; |
61 | ||
62 | #if IS_ENABLED(CONFIG_REGULATOR) | |
dfad84ae | 63 | struct platform_device *regulator_register_always_on(int id, const char *name, |
15719ccc | 64 | struct regulator_consumer_supply *supplies, int num_supplies, int uv); |
613330a0 | 65 | #else |
dfad84ae | 66 | static inline struct platform_device *regulator_register_always_on(int id, const char *name, |
15719ccc | 67 | struct regulator_consumer_supply *supplies, int num_supplies, int uv) |
613330a0 SH |
68 | { |
69 | return NULL; | |
70 | } | |
71 | #endif | |
72 | ||
dfad84ae | 73 | #define regulator_register_fixed(id, s, ns) regulator_register_always_on(id, \ |
15719ccc | 74 | "fixed-dummy", s, ns, 0) |
dfad84ae | 75 | |
48d335ba | 76 | #endif |