diff options
Diffstat (limited to 'drivers/iio/proximity/sx_common.c')
| -rw-r--r-- | drivers/iio/proximity/sx_common.c | 23 | 
1 files changed, 3 insertions, 20 deletions
diff --git a/drivers/iio/proximity/sx_common.c b/drivers/iio/proximity/sx_common.c index d70a6b4f0bf8..eba9256730ec 100644 --- a/drivers/iio/proximity/sx_common.c +++ b/drivers/iio/proximity/sx_common.c @@ -424,13 +424,6 @@ static const struct iio_buffer_setup_ops sx_common_buffer_setup_ops = {  	.postdisable = sx_common_buffer_postdisable,  }; -static void sx_common_regulator_disable(void *_data) -{ -	struct sx_common_data *data = _data; - -	regulator_bulk_disable(ARRAY_SIZE(data->supplies), data->supplies); -} -  #define SX_COMMON_SOFT_RESET				0xde  static int sx_common_init_device(struct device *dev, struct iio_dev *indio_dev) @@ -474,6 +467,7 @@ int sx_common_probe(struct i2c_client *client,  		    const struct sx_common_chip_info *chip_info,  		    const struct regmap_config *regmap_config)  { +	static const char * const regulator_names[] = { "vdd", "svdd" };  	struct device *dev = &client->dev;  	struct iio_dev *indio_dev;  	struct sx_common_data *data; @@ -487,8 +481,6 @@ int sx_common_probe(struct i2c_client *client,  	data->chip_info = chip_info;  	data->client = client; -	data->supplies[0].supply = "vdd"; -	data->supplies[1].supply = "svdd";  	mutex_init(&data->mutex);  	init_completion(&data->completion); @@ -497,23 +489,14 @@ int sx_common_probe(struct i2c_client *client,  		return dev_err_probe(dev, PTR_ERR(data->regmap),  				     "Could init register map\n"); -	ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(data->supplies), -				      data->supplies); +	ret = devm_regulator_bulk_get_enable(dev, ARRAY_SIZE(regulator_names), +					     regulator_names);  	if (ret)  		return dev_err_probe(dev, ret, "Unable to get regulators\n"); -	ret = regulator_bulk_enable(ARRAY_SIZE(data->supplies), data->supplies); -	if (ret) -		return dev_err_probe(dev, ret, "Unable to enable regulators\n"); -  	/* Must wait for Tpor time after initial power up */  	usleep_range(1000, 1100); -	ret = devm_add_action_or_reset(dev, sx_common_regulator_disable, data); -	if (ret) -		return dev_err_probe(dev, ret, -				     "Unable to register regulators deleter\n"); -  	ret = data->chip_info->ops.check_whoami(dev, indio_dev);  	if (ret)  		return dev_err_probe(dev, ret, "error reading WHOAMI\n");  |