mirror of https://gitee.com/openkylin/linux.git
Merge remote-tracking branch 'regulator/fix/arizona' into regulator-linus
This commit is contained in:
commit
c3fda066de
|
@ -174,6 +174,33 @@ static const struct regulator_desc arizona_micsupp = {
|
|||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
static const struct regulator_linear_range arizona_micsupp_ext_ranges[] = {
|
||||
REGULATOR_LINEAR_RANGE(900000, 0, 0x14, 25000),
|
||||
REGULATOR_LINEAR_RANGE(1500000, 0x15, 0x27, 100000),
|
||||
};
|
||||
|
||||
static const struct regulator_desc arizona_micsupp_ext = {
|
||||
.name = "MICVDD",
|
||||
.supply_name = "CPVDD",
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.n_voltages = 40,
|
||||
.ops = &arizona_micsupp_ops,
|
||||
|
||||
.vsel_reg = ARIZONA_LDO2_CONTROL_1,
|
||||
.vsel_mask = ARIZONA_LDO2_VSEL_MASK,
|
||||
.enable_reg = ARIZONA_MIC_CHARGE_PUMP_1,
|
||||
.enable_mask = ARIZONA_CPMIC_ENA,
|
||||
.bypass_reg = ARIZONA_MIC_CHARGE_PUMP_1,
|
||||
.bypass_mask = ARIZONA_CPMIC_BYPASS,
|
||||
|
||||
.linear_ranges = arizona_micsupp_ext_ranges,
|
||||
.n_linear_ranges = ARRAY_SIZE(arizona_micsupp_ext_ranges),
|
||||
|
||||
.enable_time = 3000,
|
||||
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
static const struct regulator_init_data arizona_micsupp_default = {
|
||||
.constraints = {
|
||||
.valid_ops_mask = REGULATOR_CHANGE_STATUS |
|
||||
|
@ -186,9 +213,22 @@ static const struct regulator_init_data arizona_micsupp_default = {
|
|||
.num_consumer_supplies = 1,
|
||||
};
|
||||
|
||||
static const struct regulator_init_data arizona_micsupp_ext_default = {
|
||||
.constraints = {
|
||||
.valid_ops_mask = REGULATOR_CHANGE_STATUS |
|
||||
REGULATOR_CHANGE_VOLTAGE |
|
||||
REGULATOR_CHANGE_BYPASS,
|
||||
.min_uV = 900000,
|
||||
.max_uV = 3300000,
|
||||
},
|
||||
|
||||
.num_consumer_supplies = 1,
|
||||
};
|
||||
|
||||
static int arizona_micsupp_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct arizona *arizona = dev_get_drvdata(pdev->dev.parent);
|
||||
const struct regulator_desc *desc;
|
||||
struct regulator_config config = { };
|
||||
struct arizona_micsupp *micsupp;
|
||||
int ret;
|
||||
|
@ -207,7 +247,17 @@ static int arizona_micsupp_probe(struct platform_device *pdev)
|
|||
* default init_data for it. This will be overridden with
|
||||
* platform data if provided.
|
||||
*/
|
||||
micsupp->init_data = arizona_micsupp_default;
|
||||
switch (arizona->type) {
|
||||
case WM5110:
|
||||
desc = &arizona_micsupp_ext;
|
||||
micsupp->init_data = arizona_micsupp_ext_default;
|
||||
break;
|
||||
default:
|
||||
desc = &arizona_micsupp;
|
||||
micsupp->init_data = arizona_micsupp_default;
|
||||
break;
|
||||
}
|
||||
|
||||
micsupp->init_data.consumer_supplies = &micsupp->supply;
|
||||
micsupp->supply.supply = "MICVDD";
|
||||
micsupp->supply.dev_name = dev_name(arizona->dev);
|
||||
|
@ -226,7 +276,7 @@ static int arizona_micsupp_probe(struct platform_device *pdev)
|
|||
ARIZONA_CPMIC_BYPASS, 0);
|
||||
|
||||
micsupp->regulator = devm_regulator_register(&pdev->dev,
|
||||
&arizona_micsupp,
|
||||
desc,
|
||||
&config);
|
||||
if (IS_ERR(micsupp->regulator)) {
|
||||
ret = PTR_ERR(micsupp->regulator);
|
||||
|
|
Loading…
Reference in New Issue