/* * Copyright (C) 2020 Locha Inc * * This file is subject to the terms and conditions of the GNU Lesser * General Public License v2.1. See the file LICENSE in the top level * directory for more details. */ /** * @ingroup tests * @brief Util functions for test application for the BQ24298x device * driver * @author Jean Pierre Dudey * @file */ #ifndef PRIV_UTIL_H #define PRIV_UTIL_H #include #include "bq2429x.h" #ifdef __cplusplus extern "C" { #endif static inline const char *_util_vlim_to_str(bq2429x_input_voltage_limit_t vlim) { switch (vlim) { case BQ2429X_VLIM_3880: return "3880 mV"; case BQ2429X_VLIM_3960: return "3960 mV"; case BQ2429X_VLIM_4040: return "4040 mV"; case BQ2429X_VLIM_4120: return "4120 mV"; case BQ2429X_VLIM_4200: return "4200 mV"; case BQ2429X_VLIM_4280: return "4280 mV"; case BQ2429X_VLIM_4360: return "4360 mV"; case BQ2429X_VLIM_4440: return "4440 mV"; case BQ2429X_VLIM_4520: return "4520 mV"; case BQ2429X_VLIM_4600: return "4600 mV"; case BQ2429X_VLIM_4680: return "4680 mV"; case BQ2429X_VLIM_4760: return "4760 mV"; case BQ2429X_VLIM_4840: return "4840 mV"; case BQ2429X_VLIM_4920: return "4920 mV"; case BQ2429X_VLIM_5000: return "5000 mV"; case BQ2429X_VLIM_5080: return "5080 mV"; default: assert(0); break; } return ""; } static inline const char *_util_ilim_to_str(bq2429x_input_current_limit_t vlim) { switch (vlim) { case BQ2429X_ILIM_100: return "100 mA"; case BQ2429X_ILIM_150: return "150 mA"; case BQ2429X_ILIM_500: return "500 mA"; case BQ2429X_ILIM_900: return "900 mA"; case BQ2429X_ILIM_1000: return "1000 mA"; case BQ2429X_ILIM_1500: return "1500 mA"; case BQ2429X_ILIM_2000: return "2000 mA"; case BQ2429X_ILIM_3000: return "3000 mA"; default: assert(0); break; } return ""; } static inline const char *_util_ichg_to_str(bq2429x_charge_current_t vlim) { switch (vlim) { case BQ2429X_ICHG_512: return "512 mA"; case BQ2429X_ICHG_1024: return "1024 mA"; case BQ2429X_ICHG_2048: return "2048 mA"; case BQ2429X_ICHG_3008: return "3008 mA"; case BQ2429X_ICHG_4032: return "4032 mA"; case BQ2429X_ICHG_4544: return "4544 mA"; default: assert(0); break; } return ""; } static inline const char *_util_vreg_to_str(bq2429x_charge_voltage_limit_t vreg) { switch (vreg) { case BQ2429X_VREG_3504: return "3504 mV"; case BQ2429X_VREG_3600: return "3600 mV"; case BQ2429X_VREG_3808: return "3808 mV"; case BQ2429X_VREG_3904: return "3904 mV"; case BQ2429X_VREG_4000: return "4000 mV"; case BQ2429X_VREG_4112: return "4112 mV"; case BQ2429X_VREG_4208: return "4208 mV"; case BQ2429X_VREG_4304: return "4304 mV"; case BQ2429X_VREG_4352: return "4352 mV"; case BQ2429X_VREG_4400: return "4400 mV"; default: assert(0); break; } return ""; } static inline const char *_util_vbus_stat_to_str(bq2429x_vbus_stat_t stat) { switch (stat) { case BQ2429X_VBUS_NONE: return "None"; case BQ2429X_VBUS_USB_CHARGER: return "USB"; case BQ2429X_VBUS_AP_CHARGER: return "Adapter Port"; case BQ2429X_VBUS_OTG: return "OTG"; default: assert(0); break; } return ""; } static inline const char *_util_chrg_stat_to_str(bq2429x_chrg_stat_t stat) { switch (stat) { case BQ2429X_CHARGE_NONE: return "None"; case BQ2429X_CHARGE_PRE: return "Pre-charge"; case BQ2429X_CHARGE_FAST: return "Fast Charging"; case BQ2429X_CHARGE_DONE: return "Charge Done"; default: assert(0); break; } return ""; } static inline const char *_util_chrg_fault_to_str(bq2429x_chrg_fault_t fault) { switch (fault) { case BQ2429x_CHRG_FAULT_NORMAL: return "Normal"; case BQ2429x_CHRG_FAULT_INPUT: return "Input Fault (OVP or bad source)"; case BQ2429x_CHRG_FAULT_THERMAL_SHUTDOWN: return "Thermal Shutdown"; case BQ2429x_CHRG_FAULT_CHARGE_TIMER_EXPIRATION: return "Charge Timer Expiration"; default: assert(0); break; } return ""; } #ifdef __cplusplus } #endif #endif /* PRIV_UTIL_H */