mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
iio: amplifiers: ad8366: replace reset-gpio with reset controller
Remove reset_gpio from the device state struct and use the reset_control interface instead, using a local variable, as it is not being used anywhere else. The reset controller init is moved out from the switch case and optionally initialized for every device variant. Although not all devices have a reset pin the code does not need to change if it is not wired. Signed-off-by: Rodrigo Alencar <rodrigo.alencar@analog.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
5fdb9c8332
commit
ee4f8c56e4
|
|
@ -23,6 +23,7 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
#include <linux/reset.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
|
|
@ -44,7 +45,6 @@ struct ad8366_info {
|
|||
struct ad8366_state {
|
||||
struct spi_device *spi;
|
||||
struct mutex lock; /* protect sensor state */
|
||||
struct gpio_desc *reset_gpio;
|
||||
unsigned char ch[2];
|
||||
enum ad8366_type type;
|
||||
const struct ad8366_info *info;
|
||||
|
|
@ -248,6 +248,7 @@ static const struct iio_chan_spec ada4961_channels[] = {
|
|||
static int ad8366_probe(struct spi_device *spi)
|
||||
{
|
||||
struct device *dev = &spi->dev;
|
||||
struct reset_control *rstc;
|
||||
struct iio_dev *indio_dev;
|
||||
struct ad8366_state *st;
|
||||
int ret;
|
||||
|
|
@ -278,11 +279,6 @@ static int ad8366_probe(struct spi_device *spi)
|
|||
case ID_ADL5240:
|
||||
case ID_HMC792:
|
||||
case ID_HMC1119:
|
||||
st->reset_gpio = devm_gpiod_get_optional(&spi->dev, "reset", GPIOD_OUT_HIGH);
|
||||
if (IS_ERR(st->reset_gpio))
|
||||
return dev_err_probe(dev, PTR_ERR(st->reset_gpio),
|
||||
"Failed to get reset gpio\n");
|
||||
|
||||
indio_dev->channels = ada4961_channels;
|
||||
indio_dev->num_channels = ARRAY_SIZE(ada4961_channels);
|
||||
break;
|
||||
|
|
@ -290,6 +286,11 @@ static int ad8366_probe(struct spi_device *spi)
|
|||
return dev_err_probe(dev, -EINVAL, "Invalid device ID\n");
|
||||
}
|
||||
|
||||
rstc = devm_reset_control_get_optional_exclusive_deasserted(dev, NULL);
|
||||
if (IS_ERR(rstc))
|
||||
return dev_err_probe(dev, PTR_ERR(rstc),
|
||||
"Failed to get reset controller\n");
|
||||
|
||||
st->info = &ad8366_infos[st->type];
|
||||
indio_dev->name = spi_get_device_id(spi)->name;
|
||||
indio_dev->info = &ad8366_info;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user