162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * STMicroelectronics uvis25 sensor driver 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright 2017 STMicroelectronics Inc. 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * Lorenzo Bianconi <lorenzo.bianconi83@gmail.com> 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#ifndef ST_UVIS25_H 1162306a36Sopenharmony_ci#define ST_UVIS25_H 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#define ST_UVIS25_DEV_NAME "uvis25" 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci#include <linux/iio/iio.h> 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci/** 1862306a36Sopenharmony_ci * struct st_uvis25_hw - ST UVIS25 sensor instance 1962306a36Sopenharmony_ci * @regmap: Register map of the device. 2062306a36Sopenharmony_ci * @trig: The trigger in use by the driver. 2162306a36Sopenharmony_ci * @enabled: Status of the sensor (false->off, true->on). 2262306a36Sopenharmony_ci * @irq: Device interrupt line (I2C or SPI). 2362306a36Sopenharmony_ci */ 2462306a36Sopenharmony_cistruct st_uvis25_hw { 2562306a36Sopenharmony_ci struct regmap *regmap; 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci struct iio_trigger *trig; 2862306a36Sopenharmony_ci bool enabled; 2962306a36Sopenharmony_ci int irq; 3062306a36Sopenharmony_ci /* Ensure timestamp is naturally aligned */ 3162306a36Sopenharmony_ci struct { 3262306a36Sopenharmony_ci u8 chan; 3362306a36Sopenharmony_ci s64 ts __aligned(8); 3462306a36Sopenharmony_ci } scan; 3562306a36Sopenharmony_ci}; 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ciextern const struct dev_pm_ops st_uvis25_pm_ops; 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ciint st_uvis25_probe(struct device *dev, int irq, struct regmap *regmap); 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci#endif /* ST_UVIS25_H */ 42