#include <linux/module.h>
#include <linux/acpi.h>
#include <linux/err.h>
#include <linux/irq.h>
#include <linux/mutex.h>
#include <linux/iio/iio.h>
#include <linux/iio/buffer.h>
#include <linux/iio/trigger.h>
#include <linux/iio/triggered_buffer.h>
#include <linux/iio/trigger_consumer.h>
#define ACPI_ALS_CLASS …
#define ACPI_ALS_DEVICE_NAME …
#define ACPI_ALS_NOTIFY_ILLUMINANCE …
static const struct iio_chan_spec acpi_als_channels[] = …;
#define ACPI_ALS_EVT_BUFFER_SIZE …
struct acpi_als { … };
#define ACPI_ALS_ILLUMINANCE …
#define ACPI_ALS_CHROMATICITY …
#define ACPI_ALS_COLOR_TEMP …
#define ACPI_ALS_POLLING …
#define ACPI_ALS_TABLES …
static int acpi_als_read_value(struct acpi_als *als, char *prop, s32 *val)
{ … }
static void acpi_als_notify(struct acpi_device *device, u32 event)
{ … }
static int acpi_als_read_raw(struct iio_dev *indio_dev,
struct iio_chan_spec const *chan, int *val,
int *val2, long mask)
{ … }
static const struct iio_info acpi_als_info = …;
static irqreturn_t acpi_als_trigger_handler(int irq, void *p)
{ … }
static int acpi_als_add(struct acpi_device *device)
{ … }
static const struct acpi_device_id acpi_als_device_ids[] = …;
MODULE_DEVICE_TABLE(acpi, acpi_als_device_ids);
static struct acpi_driver acpi_als_driver = …;
module_acpi_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;