#include <linux/bitfield.h>
#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/iopoll.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/regulator/consumer.h>
#define IMX93_ADC_DRIVER_NAME …
#define IMX93_ADC_MCR …
#define IMX93_ADC_MSR …
#define IMX93_ADC_ISR …
#define IMX93_ADC_IMR …
#define IMX93_ADC_CIMR0 …
#define IMX93_ADC_CTR0 …
#define IMX93_ADC_NCMR0 …
#define IMX93_ADC_PCDR0 …
#define IMX93_ADC_PCDR1 …
#define IMX93_ADC_PCDR2 …
#define IMX93_ADC_PCDR3 …
#define IMX93_ADC_PCDR4 …
#define IMX93_ADC_PCDR5 …
#define IMX93_ADC_PCDR6 …
#define IMX93_ADC_PCDR7 …
#define IMX93_ADC_CALSTAT …
#define IMX93_ADC_MCR_MODE_MASK …
#define IMX93_ADC_MCR_NSTART_MASK …
#define IMX93_ADC_MCR_CALSTART_MASK …
#define IMX93_ADC_MCR_ADCLKSE_MASK …
#define IMX93_ADC_MCR_PWDN_MASK …
#define IMX93_ADC_MSR_CALFAIL_MASK …
#define IMX93_ADC_MSR_CALBUSY_MASK …
#define IMX93_ADC_MSR_ADCSTATUS_MASK …
#define IMX93_ADC_ISR_ECH_MASK …
#define IMX93_ADC_ISR_EOC_MASK …
#define IMX93_ADC_ISR_EOC_ECH_MASK …
#define IMX93_ADC_IMR_JEOC_MASK …
#define IMX93_ADC_IMR_JECH_MASK …
#define IMX93_ADC_IMR_EOC_MASK …
#define IMX93_ADC_IMR_ECH_MASK …
#define IMX93_ADC_PCDR_CDATA_MASK …
#define IMX93_ADC_MSR_ADCSTATUS_IDLE …
#define IMX93_ADC_MSR_ADCSTATUS_POWER_DOWN …
#define IMX93_ADC_MSR_ADCSTATUS_WAIT_STATE …
#define IMX93_ADC_MSR_ADCSTATUS_BUSY_IN_CALIBRATION …
#define IMX93_ADC_MSR_ADCSTATUS_SAMPLE …
#define IMX93_ADC_MSR_ADCSTATUS_CONVERSION …
#define IMX93_ADC_TIMEOUT …
struct imx93_adc { … };
#define IMX93_ADC_CHAN(_idx) …
static const struct iio_chan_spec imx93_adc_iio_channels[] = …;
static void imx93_adc_power_down(struct imx93_adc *adc)
{ … }
static void imx93_adc_power_up(struct imx93_adc *adc)
{ … }
static void imx93_adc_config_ad_clk(struct imx93_adc *adc)
{ … }
static int imx93_adc_calibration(struct imx93_adc *adc)
{ … }
static int imx93_adc_read_channel_conversion(struct imx93_adc *adc,
int channel_number,
int *result)
{ … }
static int imx93_adc_read_raw(struct iio_dev *indio_dev,
struct iio_chan_spec const *chan,
int *val, int *val2, long mask)
{ … }
static irqreturn_t imx93_adc_isr(int irq, void *dev_id)
{ … }
static const struct iio_info imx93_adc_iio_info = …;
static int imx93_adc_probe(struct platform_device *pdev)
{ … }
static void imx93_adc_remove(struct platform_device *pdev)
{ … }
static int imx93_adc_runtime_suspend(struct device *dev)
{ … }
static int imx93_adc_runtime_resume(struct device *dev)
{ … }
static DEFINE_RUNTIME_DEV_PM_OPS(imx93_adc_pm_ops,
imx93_adc_runtime_suspend,
imx93_adc_runtime_resume, NULL);
static const struct of_device_id imx93_adc_match[] = …;
MODULE_DEVICE_TABLE(of, imx93_adc_match);
static struct platform_driver imx93_adc_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;