linux/drivers/iio/chemical/ens160_core.c

// SPDX-License-Identifier: GPL-2.0
/*
 * ScioSense ENS160 multi-gas sensor driver
 *
 * Copyright (c) 2024 Gustavo Silva <[email protected]>
 *
 * Datasheet:
 *  https://www.sciosense.com/wp-content/uploads/2023/12/ENS160-Datasheet.pdf
 */

#include <linux/bitfield.h>
#include <linux/iio/iio.h>
#include <linux/iio/trigger.h>
#include <linux/iio/trigger_consumer.h>
#include <linux/iio/triggered_buffer.h>
#include <linux/module.h>
#include <linux/regmap.h>

#include "ens160.h"

#define ENS160_PART_ID

#define ENS160_BOOTING_TIME_MS

#define ENS160_REG_PART_ID

#define ENS160_REG_OPMODE

#define ENS160_REG_CONFIG
#define ENS160_REG_CONFIG_INTEN
#define ENS160_REG_CONFIG_INTDAT
#define ENS160_REG_CONFIG_INT_CFG

#define ENS160_REG_MODE_DEEP_SLEEP
#define ENS160_REG_MODE_IDLE
#define ENS160_REG_MODE_STANDARD
#define ENS160_REG_MODE_RESET

#define ENS160_REG_COMMAND
#define ENS160_REG_COMMAND_GET_APPVER
#define ENS160_REG_COMMAND_CLRGPR

#define ENS160_REG_TEMP_IN
#define ENS160_REG_RH_IN
#define ENS160_REG_DEVICE_STATUS
#define ENS160_REG_DATA_AQI
#define ENS160_REG_DATA_TVOC
#define ENS160_REG_DATA_ECO2
#define ENS160_REG_DATA_T
#define ENS160_REG_DATA_RH
#define ENS160_REG_GPR_READ4

#define ENS160_STATUS_VALIDITY_FLAG

#define ENS160_STATUS_NORMAL

struct ens160_data {};

static const struct iio_chan_spec ens160_channels[] =;

static int ens160_read_raw(struct iio_dev *indio_dev,
			   struct iio_chan_spec const *chan,
			   int *val, int *val2, long mask)
{}

static int ens160_set_mode(struct ens160_data *data, u8 mode)
{}

static void ens160_set_idle(void *data)
{}

static int ens160_chip_init(struct ens160_data *data)
{}

static const struct iio_info ens160_info =;

static int ens160_suspend(struct device *dev)
{}

static int ens160_resume(struct device *dev)
{}
EXPORT_NS_SIMPLE_DEV_PM_OPS(ens160_pm_ops, ens160_suspend, ens160_resume,
			    IIO_ENS160);

static irqreturn_t ens160_trigger_handler(int irq, void *p)
{}

static int ens160_set_trigger_state(struct iio_trigger *trig, bool state)
{}

static const struct iio_trigger_ops ens160_trigger_ops =;

static int ens160_setup_trigger(struct iio_dev *indio_dev, int irq)
{}

int devm_ens160_core_probe(struct device *dev, struct regmap *regmap, int irq,
			   const char *name)
{}
EXPORT_SYMBOL_NS();

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();