#include <linux/bitfield.h>
#include <linux/clk.h>
#include <linux/completion.h>
#include <linux/delay.h>
#include <linux/iio/iio.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/property.h>
#include <linux/reset.h>
#define DRIVER_NAME …
#define RZG2L_ADM(n) …
#define RZG2L_ADM0_ADCE …
#define RZG2L_ADM0_ADBSY …
#define RZG2L_ADM0_PWDWNB …
#define RZG2L_ADM0_SRESB …
#define RZG2L_ADM1_TRG …
#define RZG2L_ADM1_MS …
#define RZG2L_ADM1_BS …
#define RZG2L_ADM1_EGA_MASK …
#define RZG2L_ADM2_CHSEL_MASK …
#define RZG2L_ADM3_ADIL_MASK …
#define RZG2L_ADM3_ADCMP_MASK …
#define RZG2L_ADM3_ADCMP_E …
#define RZG2L_ADM3_ADSMP_MASK …
#define RZG2L_ADINT …
#define RZG2L_ADINT_INTEN_MASK …
#define RZG2L_ADINT_CSEEN …
#define RZG2L_ADINT_INTS …
#define RZG2L_ADSTS …
#define RZG2L_ADSTS_CSEST …
#define RZG2L_ADSTS_INTST_MASK …
#define RZG2L_ADIVC …
#define RZG2L_ADIVC_DIVADC_MASK …
#define RZG2L_ADIVC_DIVADC_4 …
#define RZG2L_ADFIL …
#define RZG2L_ADCR(n) …
#define RZG2L_ADCR_AD_MASK …
#define RZG2L_ADSMP_DEFAULT_SAMPLING …
#define RZG2L_ADC_MAX_CHANNELS …
#define RZG2L_ADC_CHN_MASK …
#define RZG2L_ADC_TIMEOUT …
struct rzg2l_adc_data { … };
struct rzg2l_adc { … };
static const char * const rzg2l_adc_channel_name[] = …;
static unsigned int rzg2l_adc_readl(struct rzg2l_adc *adc, u32 reg)
{ … }
static void rzg2l_adc_writel(struct rzg2l_adc *adc, unsigned int reg, u32 val)
{ … }
static void rzg2l_adc_pwr(struct rzg2l_adc *adc, bool on)
{ … }
static void rzg2l_adc_start_stop(struct rzg2l_adc *adc, bool start)
{ … }
static void rzg2l_set_trigger(struct rzg2l_adc *adc)
{ … }
static int rzg2l_adc_conversion_setup(struct rzg2l_adc *adc, u8 ch)
{ … }
static int rzg2l_adc_set_power(struct iio_dev *indio_dev, bool on)
{ … }
static int rzg2l_adc_conversion(struct iio_dev *indio_dev, struct rzg2l_adc *adc, u8 ch)
{ … }
static int rzg2l_adc_read_raw(struct iio_dev *indio_dev,
struct iio_chan_spec const *chan,
int *val, int *val2, long mask)
{ … }
static int rzg2l_adc_read_label(struct iio_dev *iio_dev,
const struct iio_chan_spec *chan,
char *label)
{ … }
static const struct iio_info rzg2l_adc_iio_info = …;
static irqreturn_t rzg2l_adc_isr(int irq, void *dev_id)
{ … }
static int rzg2l_adc_parse_properties(struct platform_device *pdev, struct rzg2l_adc *adc)
{ … }
static int rzg2l_adc_hw_init(struct rzg2l_adc *adc)
{ … }
static void rzg2l_adc_pm_runtime_disable(void *data)
{ … }
static void rzg2l_adc_pm_runtime_set_suspended(void *data)
{ … }
static void rzg2l_adc_reset_assert(void *data)
{ … }
static int rzg2l_adc_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id rzg2l_adc_match[] = …;
MODULE_DEVICE_TABLE(of, rzg2l_adc_match);
static int __maybe_unused rzg2l_adc_pm_runtime_suspend(struct device *dev)
{ … }
static int __maybe_unused rzg2l_adc_pm_runtime_resume(struct device *dev)
{ … }
static const struct dev_pm_ops rzg2l_adc_pm_ops = …;
static struct platform_driver rzg2l_adc_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;