staging:iio:adc:ad7150: remove conversion mode handling.
The AD7150 family of devices power up in continues conversion mode. We can stay in this mode, unless power consumption becomes a real issue. Actually the event generation as well as the running average relies on continues conversion mode, so we better stay there. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
531efd6aa0
commit
cd400fc94d
|
@ -89,93 +89,10 @@ struct ad7150_chip_info {
|
||||||
struct mutex state_lock;
|
struct mutex state_lock;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ad7150_conversion_mode {
|
|
||||||
char *name;
|
|
||||||
u8 reg_cfg;
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct ad7150_conversion_mode
|
|
||||||
ad7150_conv_mode_table[AD7150_MAX_CONV_MODE] = {
|
|
||||||
{ "idle", 0 },
|
|
||||||
{ "continuous-conversion", 1 },
|
|
||||||
{ "single-conversion", 2 },
|
|
||||||
{ "power-down", 3 },
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* sysfs nodes
|
* sysfs nodes
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define IIO_DEV_ATTR_AVAIL_CONVERSION_MODES(_show) \
|
|
||||||
IIO_DEVICE_ATTR(available_conversion_modes, S_IRUGO, _show, NULL, 0)
|
|
||||||
#define IIO_DEV_ATTR_CONVERSION_MODE(_mode, _show, _store) \
|
|
||||||
IIO_DEVICE_ATTR(conversion_mode, _mode, _show, _store, 0)
|
|
||||||
|
|
||||||
static ssize_t ad7150_show_conversion_modes(struct device *dev,
|
|
||||||
struct device_attribute *attr,
|
|
||||||
char *buf)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
int len = 0;
|
|
||||||
|
|
||||||
for (i = 0; i < AD7150_MAX_CONV_MODE; i++)
|
|
||||||
len += sprintf(buf + len, "%s\n",
|
|
||||||
ad7150_conv_mode_table[i].name);
|
|
||||||
|
|
||||||
return len;
|
|
||||||
}
|
|
||||||
|
|
||||||
static IIO_DEV_ATTR_AVAIL_CONVERSION_MODES(ad7150_show_conversion_modes);
|
|
||||||
|
|
||||||
static ssize_t ad7150_show_conversion_mode(struct device *dev,
|
|
||||||
struct device_attribute *attr,
|
|
||||||
char *buf)
|
|
||||||
{
|
|
||||||
struct iio_dev *dev_info = dev_get_drvdata(dev);
|
|
||||||
struct ad7150_chip_info *chip = iio_priv(dev_info);
|
|
||||||
|
|
||||||
return sprintf(buf, "%s\n", chip->conversion_mode);
|
|
||||||
}
|
|
||||||
|
|
||||||
static ssize_t ad7150_store_conversion_mode(struct device *dev,
|
|
||||||
struct device_attribute *attr,
|
|
||||||
const char *buf,
|
|
||||||
size_t len)
|
|
||||||
{
|
|
||||||
struct iio_dev *dev_info = dev_get_drvdata(dev);
|
|
||||||
struct ad7150_chip_info *chip = iio_priv(dev_info);
|
|
||||||
u8 cfg;
|
|
||||||
int i, ret;
|
|
||||||
|
|
||||||
ret = i2c_smbus_read_byte_data(chip->client, AD7150_CFG);
|
|
||||||
if (ret < 0)
|
|
||||||
return ret;
|
|
||||||
cfg = ret;
|
|
||||||
|
|
||||||
for (i = 0; i < AD7150_MAX_CONV_MODE; i++) {
|
|
||||||
if (strncmp(buf, ad7150_conv_mode_table[i].name,
|
|
||||||
strlen(ad7150_conv_mode_table[i].name) - 1) ==
|
|
||||||
0) {
|
|
||||||
chip->conversion_mode = ad7150_conv_mode_table[i].name;
|
|
||||||
cfg |= 0x18 | ad7150_conv_mode_table[i].reg_cfg;
|
|
||||||
ret = i2c_smbus_write_byte_data(chip->client,
|
|
||||||
AD7150_CFG,
|
|
||||||
cfg);
|
|
||||||
if (ret < 0)
|
|
||||||
return ret;
|
|
||||||
return len;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dev_err(dev, "not supported conversion mode\n");
|
|
||||||
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static IIO_DEV_ATTR_CONVERSION_MODE(S_IRUGO | S_IWUSR,
|
|
||||||
ad7150_show_conversion_mode,
|
|
||||||
ad7150_store_conversion_mode);
|
|
||||||
|
|
||||||
static const u8 ad7150_addresses[][6] = {
|
static const u8 ad7150_addresses[][6] = {
|
||||||
{ AD7150_CH1_DATA_HIGH, AD7150_CH1_AVG_HIGH,
|
{ AD7150_CH1_DATA_HIGH, AD7150_CH1_AVG_HIGH,
|
||||||
AD7150_CH1_SETUP, AD7150_CH1_THR_HOLD_H,
|
AD7150_CH1_SETUP, AD7150_CH1_THR_HOLD_H,
|
||||||
|
@ -543,16 +460,6 @@ static const struct iio_chan_spec ad7150_channels[] = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct attribute *ad7150_attributes[] = {
|
|
||||||
&iio_dev_attr_available_conversion_modes.dev_attr.attr,
|
|
||||||
&iio_dev_attr_conversion_mode.dev_attr.attr,
|
|
||||||
NULL,
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct attribute_group ad7150_attribute_group = {
|
|
||||||
.attrs = ad7150_attributes,
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* threshold events
|
* threshold events
|
||||||
*/
|
*/
|
||||||
|
@ -637,7 +544,6 @@ static struct attribute_group ad7150_event_attribute_group = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct iio_info ad7150_info = {
|
static const struct iio_info ad7150_info = {
|
||||||
.attrs = &ad7150_attribute_group,
|
|
||||||
.event_attrs = &ad7150_event_attribute_group,
|
.event_attrs = &ad7150_event_attribute_group,
|
||||||
.driver_module = THIS_MODULE,
|
.driver_module = THIS_MODULE,
|
||||||
.read_raw = &ad7150_read_raw,
|
.read_raw = &ad7150_read_raw,
|
||||||
|
|
Loading…
Reference in New Issue