iio: afe: rescale: expose scale processing function

In preparation for the addition of kunit tests, expose the logic
responsible for combining channel scales.

Signed-off-by: Liam Beguin <liambeguin@gmail.com>
Reviewed-by: Peter Rosin <peda@axentia.se>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20220213025739.2561834-2-liambeguin@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
Liam Beguin
2022-02-12 21:57:30 -05:00
committed by Jonathan Cameron
parent b59c041559
commit bc437f7515
2 changed files with 60 additions and 37 deletions

View File

@@ -0,0 +1,32 @@
/* 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;
};
int rescale_process_scale(struct rescale *rescale, int scale_type,
int *val, int *val2);
#endif /* __IIO_RESCALE_H__ */