#include <dt-bindings/iio/adc/fsl-imx25-gcq.h>
#include <linux/clk.h>
#include <linux/iio/iio.h>
#include <linux/interrupt.h>
#include <linux/mfd/imx25-tsadc.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
#include <linux/platform_device.h>
#include <linux/property.h>
#include <linux/regmap.h>
#include <linux/regulator/consumer.h>
#define MX25_GCQ_TIMEOUT …
static const char * const driver_name = …;
enum mx25_gcq_cfgs { … };
struct mx25_gcq_priv { … };
#define MX25_CQG_CHAN(chan, id) …
static const struct iio_chan_spec mx25_gcq_channels[MX25_NUM_CFGS] = …;
static const char * const mx25_gcq_refp_names[] = …;
static irqreturn_t mx25_gcq_irq(int irq, void *data)
{ … }
static int mx25_gcq_get_raw_value(struct device *dev,
struct iio_chan_spec const *chan,
struct mx25_gcq_priv *priv,
int *val)
{ … }
static int mx25_gcq_read_raw(struct iio_dev *indio_dev,
struct iio_chan_spec const *chan, int *val,
int *val2, long mask)
{ … }
static const struct iio_info mx25_gcq_iio_info = …;
static const struct regmap_config mx25_gcq_regconfig = …;
static int mx25_gcq_ext_regulator_setup(struct device *dev,
struct mx25_gcq_priv *priv, u32 refp)
{ … }
static int mx25_gcq_setup_cfgs(struct platform_device *pdev,
struct mx25_gcq_priv *priv)
{ … }
static void mx25_gcq_reg_disable(void *reg)
{ … }
static void mx25_gcq_clk_disable(void *clk)
{ … }
static int mx25_gcq_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id mx25_gcq_ids[] = …;
MODULE_DEVICE_TABLE(of, mx25_gcq_ids);
static struct platform_driver mx25_gcq_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;