mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 12:21:22 -05:00
Input: mpr121 - use devm_regulator_get_enable_read_voltage()
We can reduce boilerplate code by using devm_regulator_get_enable_read_voltage(). Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: David Lechner <dlechner@baylibre.com> Link: https://lore.kernel.org/r/20241119-input-mpr121-regulator-get-enable-read-voltage-v3-1-1d8ee5c22f6c@baylibre.com Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
committed by
Dmitry Torokhov
parent
048b3ae033
commit
0433773862
@@ -82,42 +82,6 @@ static const struct mpr121_init_register init_reg_table[] = {
|
||||
{ AUTO_CONFIG_CTRL_ADDR, 0x0b },
|
||||
};
|
||||
|
||||
static void mpr121_vdd_supply_disable(void *data)
|
||||
{
|
||||
struct regulator *vdd_supply = data;
|
||||
|
||||
regulator_disable(vdd_supply);
|
||||
}
|
||||
|
||||
static struct regulator *mpr121_vdd_supply_init(struct device *dev)
|
||||
{
|
||||
struct regulator *vdd_supply;
|
||||
int err;
|
||||
|
||||
vdd_supply = devm_regulator_get(dev, "vdd");
|
||||
if (IS_ERR(vdd_supply)) {
|
||||
dev_err(dev, "failed to get vdd regulator: %ld\n",
|
||||
PTR_ERR(vdd_supply));
|
||||
return vdd_supply;
|
||||
}
|
||||
|
||||
err = regulator_enable(vdd_supply);
|
||||
if (err) {
|
||||
dev_err(dev, "failed to enable vdd regulator: %d\n", err);
|
||||
return ERR_PTR(err);
|
||||
}
|
||||
|
||||
err = devm_add_action_or_reset(dev, mpr121_vdd_supply_disable,
|
||||
vdd_supply);
|
||||
if (err) {
|
||||
dev_err(dev, "failed to add disable regulator action: %d\n",
|
||||
err);
|
||||
return ERR_PTR(err);
|
||||
}
|
||||
|
||||
return vdd_supply;
|
||||
}
|
||||
|
||||
static void mpr_touchkey_report(struct input_dev *dev)
|
||||
{
|
||||
struct mpr121_touchkey *mpr121 = input_get_drvdata(dev);
|
||||
@@ -233,7 +197,6 @@ static int mpr121_phys_init(struct mpr121_touchkey *mpr121,
|
||||
static int mpr_touchkey_probe(struct i2c_client *client)
|
||||
{
|
||||
struct device *dev = &client->dev;
|
||||
struct regulator *vdd_supply;
|
||||
int vdd_uv;
|
||||
struct mpr121_touchkey *mpr121;
|
||||
struct input_dev *input_dev;
|
||||
@@ -241,11 +204,9 @@ static int mpr_touchkey_probe(struct i2c_client *client)
|
||||
int error;
|
||||
int i;
|
||||
|
||||
vdd_supply = mpr121_vdd_supply_init(dev);
|
||||
if (IS_ERR(vdd_supply))
|
||||
return PTR_ERR(vdd_supply);
|
||||
|
||||
vdd_uv = regulator_get_voltage(vdd_supply);
|
||||
vdd_uv = devm_regulator_get_enable_read_voltage(dev, "vdd");
|
||||
if (vdd_uv < 0)
|
||||
return dev_err_probe(dev, vdd_uv, "failed to get vdd voltage\n");
|
||||
|
||||
mpr121 = devm_kzalloc(dev, sizeof(*mpr121), GFP_KERNEL);
|
||||
if (!mpr121)
|
||||
|
||||
Reference in New Issue
Block a user