Message ID | 1443595158-550-2-git-send-email-wenyou.yang@atmel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Wenyou, [auto build test results on v4.3-rc3 -- if it's inappropriate base, please ignore] config: i386-randconfig-r0-201539 (attached as .config) reproduce: git checkout 2470179cdcc3b8eebdb6abd5aecbbe6e2804fb33 # save the attached .config to linux build tree make ARCH=i386 All error/warnings (new ones prefixed by >>): >> drivers/regulator/act8865-regulator.c:265:48: error: macro "ACT88xx_REG" requires 5 arguments, but only 4 given ACT88xx_REG("DCDC_REG1", ACT8865, DCDC1, VSET2), ^ >> drivers/regulator/act8865-regulator.c:265:2: error: 'ACT88xx_REG' undeclared here (not in a function) ACT88xx_REG("DCDC_REG1", ACT8865, DCDC1, VSET2), ^ drivers/regulator/act8865-regulator.c:266:48: error: macro "ACT88xx_REG" requires 5 arguments, but only 4 given ACT88xx_REG("DCDC_REG2", ACT8865, DCDC2, VSET2), ^ drivers/regulator/act8865-regulator.c:267:48: error: macro "ACT88xx_REG" requires 5 arguments, but only 4 given ACT88xx_REG("DCDC_REG3", ACT8865, DCDC3, VSET2), ^ drivers/regulator/act8865-regulator.c:268:45: error: macro "ACT88xx_REG" requires 5 arguments, but only 4 given ACT88xx_REG("LDO_REG1", ACT8865, LDO1, VSET), ^ drivers/regulator/act8865-regulator.c:269:45: error: macro "ACT88xx_REG" requires 5 arguments, but only 4 given ACT88xx_REG("LDO_REG2", ACT8865, LDO2, VSET), ^ drivers/regulator/act8865-regulator.c:270:45: error: macro "ACT88xx_REG" requires 5 arguments, but only 4 given ACT88xx_REG("LDO_REG3", ACT8865, LDO3, VSET), ^ drivers/regulator/act8865-regulator.c:271:45: error: macro "ACT88xx_REG" requires 5 arguments, but only 4 given ACT88xx_REG("LDO_REG4", ACT8865, LDO4, VSET), ^ vim +/ACT88xx_REG +265 drivers/regulator/act8865-regulator.c 259 ACT88xx_REG("LDO_REG2", ACT8865, LDO2, VSET, "inl45"), 260 ACT88xx_REG("LDO_REG3", ACT8865, LDO3, VSET, "inl67"), 261 ACT88xx_REG("LDO_REG4", ACT8865, LDO4, VSET, "inl67"), 262 }; 263 264 static const struct regulator_desc act8865_alt_regulators[] = { > 265 ACT88xx_REG("DCDC_REG1", ACT8865, DCDC1, VSET2), 266 ACT88xx_REG("DCDC_REG2", ACT8865, DCDC2, VSET2), 267 ACT88xx_REG("DCDC_REG3", ACT8865, DCDC3, VSET2), 268 ACT88xx_REG("LDO_REG1", ACT8865, LDO1, VSET), --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/drivers/regulator/act8865-regulator.c b/drivers/regulator/act8865-regulator.c index 896db16..e2b50f3 100644 --- a/drivers/regulator/act8865-regulator.c +++ b/drivers/regulator/act8865-regulator.c @@ -261,6 +261,16 @@ static const struct regulator_desc act8865_regulators[] = { ACT88xx_REG("LDO_REG4", ACT8865, LDO4, VSET, "inl67"), }; +static const struct regulator_desc act8865_alt_regulators[] = { + ACT88xx_REG("DCDC_REG1", ACT8865, DCDC1, VSET2), + ACT88xx_REG("DCDC_REG2", ACT8865, DCDC2, VSET2), + ACT88xx_REG("DCDC_REG3", ACT8865, DCDC3, VSET2), + ACT88xx_REG("LDO_REG1", ACT8865, LDO1, VSET), + ACT88xx_REG("LDO_REG2", ACT8865, LDO2, VSET), + ACT88xx_REG("LDO_REG3", ACT8865, LDO3, VSET), + ACT88xx_REG("LDO_REG4", ACT8865, LDO4, VSET), +}; + #ifdef CONFIG_OF static const struct of_device_id act8865_dt_ids[] = { { .compatible = "active-semi,act8600", .data = (void *)ACT8600 }, @@ -413,6 +423,7 @@ static int act8865_pmic_probe(struct i2c_client *client, struct act8865 *act8865; unsigned long type; int off_reg, off_mask; + int voltage_select; pdata = dev_get_platdata(dev); @@ -424,6 +435,10 @@ static int act8865_pmic_probe(struct i2c_client *client, return -ENODEV; type = (unsigned long) id->data; + + voltage_select = !!of_get_property(dev->of_node, + "active-semi,vsel-high", + NULL); } else { type = i2c_id->driver_data; } @@ -442,8 +457,13 @@ static int act8865_pmic_probe(struct i2c_client *client, off_mask = ACT8846_OFF_SYSMASK; break; case ACT8865: - regulators = act8865_regulators; - num_regulators = ARRAY_SIZE(act8865_regulators); + if (voltage_select) { + regulators = act8865_alt_regulators; + num_regulators = ARRAY_SIZE(act8865_alt_regulators); + } else { + regulators = act8865_regulators; + num_regulators = ARRAY_SIZE(act8865_regulators); + } off_reg = ACT8865_SYS_CTRL; off_mask = ACT8865_MSTROFF; break;
For the step-down DC/DC regulators, the output voltage is selectable by setting VSEL pin that when VSEL is low, output voltage is programmed by VSET1[] bits, and when VSEL is high, output voltage is programmed by VSET2[] bits. The DT property "active-semi,vsel-high" is used to specify the VSEL pin at high on the board. Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com> --- drivers/regulator/act8865-regulator.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-)