Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * STMicroelectronics uvis25 sensor driver
0004  *
0005  * Copyright 2017 STMicroelectronics Inc.
0006  *
0007  * Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
0008  */
0009 
0010 #ifndef ST_UVIS25_H
0011 #define ST_UVIS25_H
0012 
0013 #define ST_UVIS25_DEV_NAME      "uvis25"
0014 
0015 #include <linux/iio/iio.h>
0016 
0017 /**
0018  * struct st_uvis25_hw - ST UVIS25 sensor instance
0019  * @regmap: Register map of the device.
0020  * @trig: The trigger in use by the driver.
0021  * @enabled: Status of the sensor (false->off, true->on).
0022  * @irq: Device interrupt line (I2C or SPI).
0023  */
0024 struct st_uvis25_hw {
0025     struct regmap *regmap;
0026 
0027     struct iio_trigger *trig;
0028     bool enabled;
0029     int irq;
0030     /* Ensure timestamp is naturally aligned */
0031     struct {
0032         u8 chan;
0033         s64 ts __aligned(8);
0034     } scan;
0035 };
0036 
0037 extern const struct dev_pm_ops st_uvis25_pm_ops;
0038 
0039 int st_uvis25_probe(struct device *dev, int irq, struct regmap *regmap);
0040 
0041 #endif /* ST_UVIS25_H */