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