diff options
Diffstat (limited to 'drivers/regulator/pfuze-regulator.h')
-rw-r--r-- | drivers/regulator/pfuze-regulator.h | 24 |
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, \ } |