diff options
Diffstat (limited to 'drivers/staging/iio/adc/ad7606.h')
-rw-r--r-- | drivers/staging/iio/adc/ad7606.h | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/drivers/staging/iio/adc/ad7606.h b/drivers/staging/iio/adc/ad7606.h index 338bade801a7..b8b3d8ef1ff2 100644 --- a/drivers/staging/iio/adc/ad7606.h +++ b/drivers/staging/iio/adc/ad7606.h @@ -43,17 +43,17 @@ struct ad7606_platform_data { /** * struct ad7606_chip_info - chip specifc information * @name: indentification string for chip - * @bits: accuracy of the adc in bits - * @bits: output coding [s]igned or [u]nsigned * @int_vref_mv: the internal reference voltage - * @num_channels: number of physical inputs on chip + * @channels: channel specification + * @num_channels: number of channels */ struct ad7606_chip_info { - char name[10]; + const char *name; u8 bits; char sign; u16 int_vref_mv; + struct iio_chan_spec *channels; unsigned num_channels; }; @@ -62,14 +62,12 @@ struct ad7606_chip_info { */ struct ad7606_state { - struct iio_dev *indio_dev; struct device *dev; const struct ad7606_chip_info *chip_info; struct ad7606_platform_data *pdata; struct regulator *reg; struct work_struct poll_work; wait_queue_head_t wq_data_avail; - atomic_t protect_ring; size_t d_size; const struct ad7606_bus_ops *bops; int irq; @@ -97,12 +95,12 @@ struct ad7606_bus_ops { int (*read_block)(struct device *, int, void *); }; -void ad7606_suspend(struct ad7606_state *st); -void ad7606_resume(struct ad7606_state *st); -struct ad7606_state *ad7606_probe(struct device *dev, int irq, +void ad7606_suspend(struct iio_dev *indio_dev); +void ad7606_resume(struct iio_dev *indio_dev); +struct iio_dev *ad7606_probe(struct device *dev, int irq, void __iomem *base_address, unsigned id, const struct ad7606_bus_ops *bops); -int ad7606_remove(struct ad7606_state *st); +int ad7606_remove(struct iio_dev *indio_dev); int ad7606_reset(struct ad7606_state *st); enum ad7606_supported_device_ids { @@ -111,7 +109,7 @@ enum ad7606_supported_device_ids { ID_AD7606_4 }; -int ad7606_scan_from_ring(struct ad7606_state *st, unsigned ch); +int ad7606_scan_from_ring(struct iio_dev *indio_dev, unsigned ch); int ad7606_register_ring_funcs_and_init(struct iio_dev *indio_dev); void ad7606_ring_cleanup(struct iio_dev *indio_dev); #endif /* IIO_ADC_AD7606_H_ */ |