brintos

brintos / linux-shallow public Read only

0
0
Text · 1.0 KiB · 721359e Raw
56 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * STMicroelectronics hts221 sensor driver4 *5 * Copyright 2016 STMicroelectronics Inc.6 *7 * Lorenzo Bianconi <lorenzo.bianconi@st.com>8 */9 10#ifndef HTS221_H11#define HTS221_H12 13#define HTS221_DEV_NAME		"hts221"14 15#include <linux/iio/iio.h>16 17enum hts221_sensor_type {18	HTS221_SENSOR_H,19	HTS221_SENSOR_T,20	HTS221_SENSOR_MAX,21};22 23struct hts221_sensor {24	u8 cur_avg_idx;25	int slope, b_gen;26};27 28struct hts221_hw {29	const char *name;30	struct device *dev;31	struct regmap *regmap;32 33	struct iio_trigger *trig;34	int irq;35 36	struct hts221_sensor sensors[HTS221_SENSOR_MAX];37 38	bool enabled;39	u8 odr;40	/* Ensure natural alignment of timestamp */41	struct {42		__le16 channels[2];43		s64 ts __aligned(8);44	} scan;45};46 47extern const struct dev_pm_ops hts221_pm_ops;48 49int hts221_probe(struct device *dev, int irq, const char *name,50		 struct regmap *regmap);51int hts221_set_enable(struct hts221_hw *hw, bool enable);52int hts221_allocate_buffers(struct iio_dev *iio_dev);53int hts221_allocate_trigger(struct iio_dev *iio_dev);54 55#endif /* HTS221_H */56