xref: /linux/drivers/iio/imu/inv_icm42607/inv_icm42607_temp.h (revision 67f8bc848ee31831336bd478e57d2f993551902e)
1*512d321bSChris Morgan /* SPDX-License-Identifier: GPL-2.0-or-later */
2*512d321bSChris Morgan /*
3*512d321bSChris Morgan  * Copyright (C) 2026 InvenSense, Inc.
4*512d321bSChris Morgan  */
5*512d321bSChris Morgan 
6*512d321bSChris Morgan #ifndef INV_ICM42607_TEMP_H_
7*512d321bSChris Morgan #define INV_ICM42607_TEMP_H_
8*512d321bSChris Morgan 
9*512d321bSChris Morgan #include <linux/bitops.h>
10*512d321bSChris Morgan 
11*512d321bSChris Morgan struct iio_dev;
12*512d321bSChris Morgan struct iio_chan_spec;
13*512d321bSChris Morgan 
14*512d321bSChris Morgan #define INV_ICM42607_TEMP_CHAN(_index)				\
15*512d321bSChris Morgan {								\
16*512d321bSChris Morgan 	.type = IIO_TEMP,					\
17*512d321bSChris Morgan 	.info_mask_separate =					\
18*512d321bSChris Morgan 		BIT(IIO_CHAN_INFO_RAW) |			\
19*512d321bSChris Morgan 		BIT(IIO_CHAN_INFO_OFFSET) |			\
20*512d321bSChris Morgan 		BIT(IIO_CHAN_INFO_SCALE),			\
21*512d321bSChris Morgan 	.info_mask_shared_by_all =				\
22*512d321bSChris Morgan 		BIT(IIO_CHAN_INFO_SAMP_FREQ),			\
23*512d321bSChris Morgan 	.info_mask_shared_by_all_available =			\
24*512d321bSChris Morgan 		BIT(IIO_CHAN_INFO_SAMP_FREQ),			\
25*512d321bSChris Morgan 	.scan_index = _index,					\
26*512d321bSChris Morgan 	.scan_type = {						\
27*512d321bSChris Morgan 		.sign = 's',					\
28*512d321bSChris Morgan 		.realbits = 16,					\
29*512d321bSChris Morgan 		.storagebits = 16,				\
30*512d321bSChris Morgan 		.endianness = IIO_BE,				\
31*512d321bSChris Morgan 	},							\
32*512d321bSChris Morgan }
33*512d321bSChris Morgan 
34*512d321bSChris Morgan int inv_icm42607_temp_read_raw(struct iio_dev *indio_dev,
35*512d321bSChris Morgan 			       struct iio_chan_spec const *chan,
36*512d321bSChris Morgan 			       int *val, int *val2, long mask);
37*512d321bSChris Morgan 
38*512d321bSChris Morgan #endif
39