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