123456789101112131415161718192021222324252627282930313233343536 |
- /* SPDX-License-Identifier: GPL-2.0-only */
- /*
- * Copyright (C) 2018 Axentia Technologies AB
- */
- #ifndef __IIO_RESCALE_H__
- #define __IIO_RESCALE_H__
- #include <linux/types.h>
- #include <linux/iio/iio.h>
- struct device;
- struct rescale;
- struct rescale_cfg {
- enum iio_chan_type type;
- int (*props)(struct device *dev, struct rescale *rescale);
- };
- struct rescale {
- const struct rescale_cfg *cfg;
- struct iio_channel *source;
- struct iio_chan_spec chan;
- struct iio_chan_spec_ext_info *ext_info;
- bool chan_processed;
- s32 numerator;
- s32 denominator;
- s32 offset;
- };
- int rescale_process_scale(struct rescale *rescale, int scale_type,
- int *val, int *val2);
- int rescale_process_offset(struct rescale *rescale, int scale_type,
- int scale, int scale2, int schan_off,
- int *val, int *val2);
- #endif /* __IIO_RESCALE_H__ */
|