#include <linux/err.h>
#include <linux/iio/consumer.h>
#include <linux/iio/iio.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/mux/consumer.h>
#include <linux/platform_device.h>
#include <linux/property.h>
struct mux_ext_info_cache { … };
struct mux_child { … };
struct mux { … };
static int iio_mux_select(struct mux *mux, int idx)
{ … }
static void iio_mux_deselect(struct mux *mux)
{ … }
static int mux_read_raw(struct iio_dev *indio_dev,
struct iio_chan_spec const *chan,
int *val, int *val2, long mask)
{ … }
static int mux_read_avail(struct iio_dev *indio_dev,
struct iio_chan_spec const *chan,
const int **vals, int *type, int *length,
long mask)
{ … }
static int mux_write_raw(struct iio_dev *indio_dev,
struct iio_chan_spec const *chan,
int val, int val2, long mask)
{ … }
static const struct iio_info mux_info = …;
static ssize_t mux_read_ext_info(struct iio_dev *indio_dev, uintptr_t private,
struct iio_chan_spec const *chan, char *buf)
{ … }
static ssize_t mux_write_ext_info(struct iio_dev *indio_dev, uintptr_t private,
struct iio_chan_spec const *chan,
const char *buf, size_t len)
{ … }
static int mux_configure_channel(struct device *dev, struct mux *mux,
u32 state, const char *label, int idx)
{ … }
static int mux_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id mux_match[] = …;
MODULE_DEVICE_TABLE(of, mux_match);
static struct platform_driver mux_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;