1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * STMicroelectronics uvis25 sensor driver 4 * 5 * Copyright 2017 STMicroelectronics Inc. 6 * 7 * Lorenzo Bianconi <lorenzo.bianconi83@gmail.com> 8 */ 9 10 #ifndef ST_UVIS25_H 11 #define ST_UVIS25_H 12 13 #define ST_UVIS25_DEV_NAME "uvis25" 14 15 #include <linux/iio/iio.h> 16 17 /** 18 * struct st_uvis25_hw - ST UVIS25 sensor instance 19 * @regmap: Register map of the device. 20 * @trig: The trigger in use by the driver. 21 * @enabled: Status of the sensor (false->off, true->on). 22 * @irq: Device interrupt line (I2C or SPI). 23 */ 24 struct st_uvis25_hw { 25 struct regmap *regmap; 26 27 struct iio_trigger *trig; 28 bool enabled; 29 int irq; 30 /* Ensure timestamp is naturally aligned */ 31 struct { 32 u8 chan; 33 s64 ts __aligned(8); 34 } scan; 35 }; 36 37 extern const struct dev_pm_ops st_uvis25_pm_ops; 38 39 int st_uvis25_probe(struct device *dev, int irq, struct regmap *regmap); 40 41 #endif /* ST_UVIS25_H */ 42