regulators: Removed macros for initialization of ab8500 regulators
This patch removes the macros for initializing the regulators. The purpose is to remove one layer of abstraction and make the code easier to read. Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com> Acked-by: Linus Walleij <linus.walleij@stericsson.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>hifive-unleashed-5.1
parent
09aefa12ac
commit
6909b4522e
|
@ -311,7 +311,7 @@ static int ab8500_fixed_get_voltage(struct regulator_dev *rdev)
|
|||
return info->fixed_uV;
|
||||
}
|
||||
|
||||
static struct regulator_ops ab8500_ldo_fixed_ops = {
|
||||
static struct regulator_ops ab8500_regulator_fixed_ops = {
|
||||
.enable = ab8500_regulator_enable,
|
||||
.disable = ab8500_regulator_disable,
|
||||
.is_enabled = ab8500_regulator_is_enabled,
|
||||
|
@ -319,79 +319,196 @@ static struct regulator_ops ab8500_ldo_fixed_ops = {
|
|||
.list_voltage = ab8500_list_voltage,
|
||||
};
|
||||
|
||||
#define AB8500_LDO(_id, _min_mV, _max_mV, \
|
||||
_u_bank, _u_reg, _u_mask, _u_val_enable, \
|
||||
_v_bank, _v_reg, _v_mask, _v_table, _v_table_len) \
|
||||
[AB8500_LDO_##_id] = { \
|
||||
.desc = { \
|
||||
.name = "LDO-" #_id, \
|
||||
.ops = &ab8500_regulator_ops, \
|
||||
.type = REGULATOR_VOLTAGE, \
|
||||
.id = AB8500_LDO_##_id, \
|
||||
.owner = THIS_MODULE, \
|
||||
}, \
|
||||
.min_uV = (_min_mV) * 1000, \
|
||||
.max_uV = (_max_mV) * 1000, \
|
||||
.update_bank = _u_bank, \
|
||||
.update_reg = _u_reg, \
|
||||
.update_mask = _u_mask, \
|
||||
.update_val_enable = _u_val_enable, \
|
||||
.voltage_bank = _v_bank, \
|
||||
.voltage_reg = _v_reg, \
|
||||
.voltage_mask = _v_mask, \
|
||||
.voltages = _v_table, \
|
||||
.voltages_len = _v_table_len, \
|
||||
.fixed_uV = 0, \
|
||||
}
|
||||
|
||||
#define AB8500_FIXED_LDO(_id, _fixed_mV, \
|
||||
_u_bank, _u_reg, _u_mask, _u_val_enable) \
|
||||
[AB8500_LDO_##_id] = { \
|
||||
.desc = { \
|
||||
.name = "LDO-" #_id, \
|
||||
.ops = &ab8500_ldo_fixed_ops, \
|
||||
.type = REGULATOR_VOLTAGE, \
|
||||
.id = AB8500_LDO_##_id, \
|
||||
.owner = THIS_MODULE, \
|
||||
}, \
|
||||
.fixed_uV = (_fixed_mV) * 1000, \
|
||||
.update_bank = _u_bank, \
|
||||
.update_reg = _u_reg, \
|
||||
.update_mask = _u_mask, \
|
||||
.update_val_enable = _u_val_enable, \
|
||||
}
|
||||
|
||||
static struct ab8500_regulator_info ab8500_regulator_info[] = {
|
||||
static struct ab8500_regulator_info
|
||||
ab8500_regulator_info[AB8500_NUM_REGULATORS] = {
|
||||
/*
|
||||
* Variable Voltage Regulators
|
||||
* name, min mV, max mV,
|
||||
* update bank, reg, mask, enable val
|
||||
* volt bank, reg, mask, table, table length
|
||||
*/
|
||||
AB8500_LDO(AUX1, 1100, 3300,
|
||||
0x04, 0x09, 0x03, 0x01, 0x04, 0x1f, 0x0f,
|
||||
ldo_vauxn_voltages, ARRAY_SIZE(ldo_vauxn_voltages)),
|
||||
AB8500_LDO(AUX2, 1100, 3300,
|
||||
0x04, 0x09, 0x0c, 0x04, 0x04, 0x20, 0x0f,
|
||||
ldo_vauxn_voltages, ARRAY_SIZE(ldo_vauxn_voltages)),
|
||||
AB8500_LDO(AUX3, 1100, 3300,
|
||||
0x04, 0x0a, 0x03, 0x01, 0x04, 0x21, 0x07,
|
||||
ldo_vaux3_voltages, ARRAY_SIZE(ldo_vaux3_voltages)),
|
||||
AB8500_LDO(INTCORE, 1100, 3300,
|
||||
0x03, 0x80, 0x44, 0x04, 0x03, 0x80, 0x38,
|
||||
ldo_vintcore_voltages, ARRAY_SIZE(ldo_vintcore_voltages)),
|
||||
[AB8500_LDO_AUX1] = {
|
||||
.desc = {
|
||||
.name = "LDO-AUX1",
|
||||
.ops = &ab8500_regulator_ops,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.id = AB8500_LDO_AUX1,
|
||||
.owner = THIS_MODULE,
|
||||
.n_voltages = ARRAY_SIZE(ldo_vauxn_voltages),
|
||||
},
|
||||
.min_uV = 1100000,
|
||||
.max_uV = 3300000,
|
||||
.update_bank = 0x04,
|
||||
.update_reg = 0x09,
|
||||
.update_mask = 0x03,
|
||||
.update_val_enable = 0x01,
|
||||
.voltage_bank = 0x04,
|
||||
.voltage_reg = 0x1f,
|
||||
.voltage_mask = 0x0f,
|
||||
.voltages = ldo_vauxn_voltages,
|
||||
.voltages_len = ARRAY_SIZE(ldo_vauxn_voltages),
|
||||
},
|
||||
[AB8500_LDO_AUX2] = {
|
||||
.desc = {
|
||||
.name = "LDO-AUX2",
|
||||
.ops = &ab8500_regulator_ops,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.id = AB8500_LDO_AUX2,
|
||||
.owner = THIS_MODULE,
|
||||
.n_voltages = ARRAY_SIZE(ldo_vauxn_voltages),
|
||||
},
|
||||
.min_uV = 1100000,
|
||||
.max_uV = 3300000,
|
||||
.update_bank = 0x04,
|
||||
.update_reg = 0x09,
|
||||
.update_mask = 0x0c,
|
||||
.update_val_enable = 0x04,
|
||||
.voltage_bank = 0x04,
|
||||
.voltage_reg = 0x20,
|
||||
.voltage_mask = 0x0f,
|
||||
.voltages = ldo_vauxn_voltages,
|
||||
.voltages_len = ARRAY_SIZE(ldo_vauxn_voltages),
|
||||
},
|
||||
[AB8500_LDO_AUX3] = {
|
||||
.desc = {
|
||||
.name = "LDO-AUX3",
|
||||
.ops = &ab8500_regulator_ops,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.id = AB8500_LDO_AUX3,
|
||||
.owner = THIS_MODULE,
|
||||
.n_voltages = ARRAY_SIZE(ldo_vaux3_voltages),
|
||||
},
|
||||
.min_uV = 1100000,
|
||||
.max_uV = 3300000,
|
||||
.update_bank = 0x04,
|
||||
.update_reg = 0x0a,
|
||||
.update_mask = 0x03,
|
||||
.update_val_enable = 0x01,
|
||||
.voltage_bank = 0x04,
|
||||
.voltage_reg = 0x21,
|
||||
.voltage_mask = 0x07,
|
||||
.voltages = ldo_vaux3_voltages,
|
||||
.voltages_len = ARRAY_SIZE(ldo_vaux3_voltages),
|
||||
},
|
||||
[AB8500_LDO_INTCORE] = {
|
||||
.desc = {
|
||||
.name = "LDO-INTCORE",
|
||||
.ops = &ab8500_regulator_ops,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.id = AB8500_LDO_INTCORE,
|
||||
.owner = THIS_MODULE,
|
||||
.n_voltages = ARRAY_SIZE(ldo_vintcore_voltages),
|
||||
},
|
||||
.min_uV = 1100000,
|
||||
.max_uV = 3300000,
|
||||
.update_bank = 0x03,
|
||||
.update_reg = 0x80,
|
||||
.update_mask = 0x44,
|
||||
.update_val_enable = 0x04,
|
||||
.voltage_bank = 0x03,
|
||||
.voltage_reg = 0x80,
|
||||
.voltage_mask = 0x38,
|
||||
.voltages = ldo_vintcore_voltages,
|
||||
.voltages_len = ARRAY_SIZE(ldo_vintcore_voltages),
|
||||
},
|
||||
|
||||
/*
|
||||
* Fixed Voltage Regulators
|
||||
* name, fixed mV,
|
||||
* update bank, reg, mask, enable val
|
||||
*/
|
||||
AB8500_FIXED_LDO(TVOUT, 2000, 0x03, 0x80, 0x82, 0x02),
|
||||
AB8500_FIXED_LDO(AUDIO, 2000, 0x03, 0x83, 0x02, 0x02),
|
||||
AB8500_FIXED_LDO(ANAMIC1, 2050, 0x03, 0x83, 0x08, 0x08),
|
||||
AB8500_FIXED_LDO(ANAMIC2, 2050, 0x03, 0x83, 0x10, 0x10),
|
||||
AB8500_FIXED_LDO(DMIC, 1800, 0x03, 0x83, 0x04, 0x04),
|
||||
AB8500_FIXED_LDO(ANA, 1200, 0x04, 0x06, 0x0c, 0x04),
|
||||
[AB8500_LDO_TVOUT] = {
|
||||
.desc = {
|
||||
.name = "LDO-TVOUT",
|
||||
.ops = &ab8500_regulator_fixed_ops,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.id = AB8500_LDO_TVOUT,
|
||||
.owner = THIS_MODULE,
|
||||
.n_voltages = 1,
|
||||
},
|
||||
.fixed_uV = 2000000,
|
||||
.update_bank = 0x03,
|
||||
.update_reg = 0x80,
|
||||
.update_mask = 0x82,
|
||||
.update_val_enable = 0x02,
|
||||
},
|
||||
[AB8500_LDO_AUDIO] = {
|
||||
.desc = {
|
||||
.name = "LDO-AUDIO",
|
||||
.ops = &ab8500_regulator_fixed_ops,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.id = AB8500_LDO_AUDIO,
|
||||
.owner = THIS_MODULE,
|
||||
.n_voltages = 1,
|
||||
},
|
||||
.fixed_uV = 2000000,
|
||||
.update_bank = 0x03,
|
||||
.update_reg = 0x83,
|
||||
.update_mask = 0x02,
|
||||
.update_val_enable = 0x02,
|
||||
},
|
||||
[AB8500_LDO_ANAMIC1] = {
|
||||
.desc = {
|
||||
.name = "LDO-ANAMIC1",
|
||||
.ops = &ab8500_regulator_fixed_ops,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.id = AB8500_LDO_ANAMIC1,
|
||||
.owner = THIS_MODULE,
|
||||
.n_voltages = 1,
|
||||
},
|
||||
.fixed_uV = 2050000,
|
||||
.update_bank = 0x03,
|
||||
.update_reg = 0x83,
|
||||
.update_mask = 0x08,
|
||||
.update_val_enable = 0x08,
|
||||
},
|
||||
[AB8500_LDO_ANAMIC2] = {
|
||||
.desc = {
|
||||
.name = "LDO-ANAMIC2",
|
||||
.ops = &ab8500_regulator_fixed_ops,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.id = AB8500_LDO_ANAMIC2,
|
||||
.owner = THIS_MODULE,
|
||||
.n_voltages = 1,
|
||||
},
|
||||
.fixed_uV = 2050000,
|
||||
.update_bank = 0x03,
|
||||
.update_reg = 0x83,
|
||||
.update_mask = 0x10,
|
||||
.update_val_enable = 0x10,
|
||||
},
|
||||
[AB8500_LDO_DMIC] = {
|
||||
.desc = {
|
||||
.name = "LDO-DMIC",
|
||||
.ops = &ab8500_regulator_fixed_ops,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.id = AB8500_LDO_DMIC,
|
||||
.owner = THIS_MODULE,
|
||||
.n_voltages = 1,
|
||||
},
|
||||
.fixed_uV = 1800000,
|
||||
.update_bank = 0x03,
|
||||
.update_reg = 0x83,
|
||||
.update_mask = 0x04,
|
||||
.update_val_enable = 0x04,
|
||||
},
|
||||
[AB8500_LDO_ANA] = {
|
||||
.desc = {
|
||||
.name = "LDO-ANA",
|
||||
.ops = &ab8500_regulator_fixed_ops,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.id = AB8500_LDO_ANA,
|
||||
.owner = THIS_MODULE,
|
||||
.n_voltages = 1,
|
||||
},
|
||||
.fixed_uV = 1200000,
|
||||
.update_bank = 0x04,
|
||||
.update_reg = 0x06,
|
||||
.update_mask = 0x0c,
|
||||
.update_val_enable = 0x04,
|
||||
},
|
||||
|
||||
|
||||
};
|
||||
|
||||
static __devinit int ab8500_regulator_probe(struct platform_device *pdev)
|
||||
|
|
Loading…
Reference in New Issue