/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (c) 2021 The Linux Foundation. All rights reserved. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. */ #ifndef __QBG_IIO_H__ #define __QBG_IIO_H__ struct qbg_iio_channels { const char *datasheet_name; int channel_num; enum iio_chan_type type; long info_mask; }; #define QBG_IIO_CHAN(_name, _num, _type, _mask) \ { \ .datasheet_name = _name, \ .channel_num = _num, \ .type = _type, \ .info_mask = _mask, \ }, #define QBG_CHAN_ENERGY(_name, _num) \ QBG_IIO_CHAN(_name, _num, IIO_ENERGY, \ BIT(IIO_CHAN_INFO_PROCESSED)) #define QBG_CHAN_TEMP(_name, _num) \ QBG_IIO_CHAN(_name, _num, IIO_TEMP, \ BIT(IIO_CHAN_INFO_PROCESSED)) #define QBG_CHAN_VOLT(_name, _num) \ QBG_IIO_CHAN(_name, _num, IIO_VOLTAGE, \ BIT(IIO_CHAN_INFO_PROCESSED)) #define QBG_CHAN_TSTAMP(_name, _num) \ QBG_IIO_CHAN(_name, _num, IIO_TIMESTAMP, \ BIT(IIO_CHAN_INFO_PROCESSED)) #define QBG_CHAN_RES(_name, _num) \ QBG_IIO_CHAN(_name, _num, IIO_RESISTANCE, \ BIT(IIO_CHAN_INFO_PROCESSED)) #define QBG_CHAN_INDEX(_name, _num) \ QBG_IIO_CHAN(_name, _num, IIO_INDEX, \ BIT(IIO_CHAN_INFO_PROCESSED)) #define QBG_CHAN_CUR(_name, _num) \ QBG_IIO_CHAN(_name, _num, IIO_CURRENT, \ BIT(IIO_CHAN_INFO_PROCESSED)) #define QBG_CHAN_COUNT(_name, _num) \ QBG_IIO_CHAN(_name, _num, IIO_COUNT, \ BIT(IIO_CHAN_INFO_PROCESSED)) enum qbg_ext_iio_channels { RECHARGE_SOC, FORCE_RECHARGE, CHARGE_DONE, SYS_SOC, }; static const char * const qbg_ext_iio_chan_name[] = { [RECHARGE_SOC] = "recharge_soc", [FORCE_RECHARGE] = "force_recharge", [CHARGE_DONE] = "charge_done", [SYS_SOC] = "sys_soc", }; #endif /* __QBG_IIO_H__ */