#include <linux/clk.h>
#include <linux/completion.h>
#include <linux/err.h>
#include <linux/iio/iio.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
#include <linux/mutex.h>
#include <linux/platform_device.h>
#include <linux/regulator/consumer.h>
#define LPC32XXAD_SELECT(x) …
#define LPC32XXAD_CTRL(x) …
#define LPC32XXAD_VALUE(x) …
#define LPC32XXAD_REFm …
#define LPC32XXAD_REFp …
#define LPC32XXAD_IN …
#define LPC32XXAD_INTERNAL …
#define LPC32XXAD_STROBE …
#define LPC32XXAD_PDN_CTRL …
#define LPC32XXAD_VALUE_MASK …
#define LPC32XXAD_NAME …
struct lpc32xx_adc_state { … };
static int lpc32xx_read_raw(struct iio_dev *indio_dev,
struct iio_chan_spec const *chan,
int *val,
int *val2,
long mask)
{ … }
static const struct iio_info lpc32xx_adc_iio_info = …;
#define LPC32XX_ADC_CHANNEL_BASE(_index) …
#define LPC32XX_ADC_CHANNEL(_index) …
#define LPC32XX_ADC_SCALE_CHANNEL(_index) …
static const struct iio_chan_spec lpc32xx_adc_iio_channels[] = …;
static const struct iio_chan_spec lpc32xx_adc_iio_scale_channels[] = …;
static irqreturn_t lpc32xx_adc_isr(int irq, void *dev_id)
{ … }
static int lpc32xx_adc_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id lpc32xx_adc_match[] = …;
MODULE_DEVICE_TABLE(of, lpc32xx_adc_match);
static struct platform_driver lpc32xx_adc_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;