summaryrefslogtreecommitdiff
path: root/drivers/regulator/pfuze-regulator.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/regulator/pfuze-regulator.h')
-rw-r--r--drivers/regulator/pfuze-regulator.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/regulator/pfuze-regulator.h b/drivers/regulator/pfuze-regulator.h
index 20d4766e91ea..113355ca250f 100644
--- a/drivers/regulator/pfuze-regulator.h
+++ b/drivers/regulator/pfuze-regulator.h
@@ -23,9 +23,13 @@
struct pfuze_regulator {
struct regulator_desc desc;
unsigned int reg;
+ unsigned int stby_reg;
unsigned char enable_bit;
+ unsigned char stby_bit;
unsigned char vsel_shift;
unsigned char vsel_mask;
+ unsigned char stby_vsel_shift;
+ unsigned char stby_vsel_mask;
int const *voltages;
};
@@ -47,6 +51,7 @@ struct pfuze_regulator_priv {
}, \
.reg = prefix ## _reg, \
.enable_bit = prefix ## _reg ## _ ## EN, \
+ .stby_bit = prefix ## _reg ## _ ## STBY, \
.vsel_shift = prefix ## _reg ## _ ## VSEL,\
.vsel_mask = prefix ## _reg ## _ ## VSEL_M,\
.voltages = _voltages, \
@@ -64,6 +69,25 @@ struct pfuze_regulator_priv {
.reg = prefix ## _reg, \
.vsel_shift = prefix ## _reg ## _ ## VSEL,\
.vsel_mask = prefix ## _reg ## _ ## VSEL_M,\
+ .stby_reg = prefix ## _reg ## _ ## STBY, \
+ .stby_vsel_shift = prefix ## _reg ## _ ## STBY_VSEL,\
+ .stby_vsel_mask = prefix ## _reg ## _ ## STBY_VSEL_M,\
+ .voltages = _voltages, \
+ }
+
+#define PFUZE_SWBST_DEFINE(prefix, _name, _reg, _voltages, _ops) \
+ [prefix ## _name] = { \
+ .desc = { \
+ .name = #prefix "_" #_name, \
+ .n_voltages = ARRAY_SIZE(_voltages), \
+ .ops = &_ops, \
+ .type = REGULATOR_VOLTAGE, \
+ .id = prefix ## _name, \
+ .owner = THIS_MODULE, \
+ }, \
+ .reg = prefix ## _reg, \
+ .vsel_shift = prefix ## _reg ## _ ## VSEL,\
+ .vsel_mask = prefix ## _reg ## _ ## VSEL_M,\
.voltages = _voltages, \
}