#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/delay.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/io.h>
#include <linux/clk.h>
#include <linux/of.h>
#include <linux/of_irq.h>
#include <linux/regulator/consumer.h>
#include <linux/of_platform.h>
#include <linux/err.h>
#include <linux/pm_runtime.h>
#include <linux/iio/iio.h>
#include <linux/iio/sysfs.h>
#include <linux/iio/trigger.h>
#define DRIVER_NAME …
#define RCAR_GYROADC_MODE_SELECT …
#define RCAR_GYROADC_MODE_SELECT_1_MB88101A …
#define RCAR_GYROADC_MODE_SELECT_2_ADCS7476 …
#define RCAR_GYROADC_MODE_SELECT_3_MAX1162 …
#define RCAR_GYROADC_START_STOP …
#define RCAR_GYROADC_START_STOP_START …
#define RCAR_GYROADC_CLOCK_LENGTH …
#define RCAR_GYROADC_1_25MS_LENGTH …
#define RCAR_GYROADC_REALTIME_DATA(ch) …
#define RCAR_GYROADC_100MS_ADDED_DATA(ch) …
#define RCAR_GYROADC_10MS_AVG_DATA(ch) …
#define RCAR_GYROADC_FIFO_STATUS …
#define RCAR_GYROADC_FIFO_STATUS_EMPTY(ch) …
#define RCAR_GYROADC_FIFO_STATUS_FULL(ch) …
#define RCAR_GYROADC_FIFO_STATUS_ERROR(ch) …
#define RCAR_GYROADC_INTR …
#define RCAR_GYROADC_INTR_INT …
#define RCAR_GYROADC_INTENR …
#define RCAR_GYROADC_INTENR_INTEN …
#define RCAR_GYROADC_SAMPLE_RATE …
#define RCAR_GYROADC_RUNTIME_PM_DELAY_MS …
enum rcar_gyroadc_model { … };
struct rcar_gyroadc { … };
static void rcar_gyroadc_hw_init(struct rcar_gyroadc *priv)
{ … }
static void rcar_gyroadc_hw_start(struct rcar_gyroadc *priv)
{ … }
static void rcar_gyroadc_hw_stop(struct rcar_gyroadc *priv)
{ … }
#define RCAR_GYROADC_CHAN(_idx) …
static const struct iio_chan_spec rcar_gyroadc_iio_channels_1[] = …;
static const struct iio_chan_spec rcar_gyroadc_iio_channels_2[] = …;
static const struct iio_chan_spec rcar_gyroadc_iio_channels_3[] = …;
static int rcar_gyroadc_set_power(struct rcar_gyroadc *priv, bool on)
{ … }
static int rcar_gyroadc_read_raw(struct iio_dev *indio_dev,
struct iio_chan_spec const *chan,
int *val, int *val2, long mask)
{ … }
static int rcar_gyroadc_reg_access(struct iio_dev *indio_dev,
unsigned int reg, unsigned int writeval,
unsigned int *readval)
{ … }
static const struct iio_info rcar_gyroadc_iio_info = …;
static const struct of_device_id rcar_gyroadc_match[] = …;
MODULE_DEVICE_TABLE(of, rcar_gyroadc_match);
static const struct of_device_id rcar_gyroadc_child_match[] __maybe_unused = …;
static int rcar_gyroadc_parse_subdevs(struct iio_dev *indio_dev)
{ … }
static void rcar_gyroadc_deinit_supplies(struct iio_dev *indio_dev)
{ … }
static int rcar_gyroadc_init_supplies(struct iio_dev *indio_dev)
{ … }
static int rcar_gyroadc_probe(struct platform_device *pdev)
{ … }
static void rcar_gyroadc_remove(struct platform_device *pdev)
{ … }
static int rcar_gyroadc_suspend(struct device *dev)
{ … }
static int rcar_gyroadc_resume(struct device *dev)
{ … }
static const struct dev_pm_ops rcar_gyroadc_pm_ops = …;
static struct platform_driver rcar_gyroadc_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;