mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.1 KiB
57 lines
1.1 KiB
/* SPDX-License-Identifier: GPL-2.0-only */ |
|
/* |
|
* STMicroelectronics hts221 sensor driver |
|
* |
|
* Copyright 2016 STMicroelectronics Inc. |
|
* |
|
* Lorenzo Bianconi <[email protected]> |
|
*/ |
|
|
|
#ifndef HTS221_H |
|
#define HTS221_H |
|
|
|
#define HTS221_DEV_NAME "hts221" |
|
|
|
#include <linux/iio/iio.h> |
|
#include <linux/regulator/consumer.h> |
|
|
|
enum hts221_sensor_type { |
|
HTS221_SENSOR_H, |
|
HTS221_SENSOR_T, |
|
HTS221_SENSOR_MAX, |
|
}; |
|
|
|
struct hts221_sensor { |
|
u8 cur_avg_idx; |
|
int slope, b_gen; |
|
}; |
|
|
|
struct hts221_hw { |
|
const char *name; |
|
struct device *dev; |
|
struct regmap *regmap; |
|
struct regulator *vdd; |
|
|
|
struct iio_trigger *trig; |
|
int irq; |
|
|
|
struct hts221_sensor sensors[HTS221_SENSOR_MAX]; |
|
|
|
bool enabled; |
|
u8 odr; |
|
/* Ensure natural alignment of timestamp */ |
|
struct { |
|
__le16 channels[2]; |
|
s64 ts __aligned(8); |
|
} scan; |
|
}; |
|
|
|
extern const struct dev_pm_ops hts221_pm_ops; |
|
|
|
int hts221_probe(struct device *dev, int irq, const char *name, |
|
struct regmap *regmap); |
|
int hts221_set_enable(struct hts221_hw *hw, bool enable); |
|
int hts221_allocate_buffers(struct iio_dev *iio_dev); |
|
int hts221_allocate_trigger(struct iio_dev *iio_dev); |
|
|
|
#endif /* HTS221_H */
|
|
|