/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (c) 2021 MediaTek Inc. */ #ifndef _MTK_BATTERY_H #define _MTK_BATTERY_H #ifndef _DEA_MODIFY_ #include #include #else #include "simulator_kernel.h" #endif /* ============================================================ */ /* typedef */ /* ============================================================ */ /* coulomb service */ struct gauge_consumer { char *name; struct device *dev; long start; long end; int variable; int (*callback)(struct gauge_consumer *gc); struct list_head list; }; extern void gauge_coulomb_service_init(void); extern void gauge_coulomb_consumer_init(struct gauge_consumer *coulomb, struct device *dev, char *name); extern void gauge_coulomb_start(struct gauge_consumer *coulomb, int car); extern void gauge_coulomb_stop(struct gauge_consumer *coulomb); extern void gauge_coulomb_dump_list(void); extern void gauge_coulomb_before_reset(void); extern void gauge_coulomb_after_reset(void); extern void gauge_coulomb_set_log_level(int x); /* coulomb sub system end */ /* battery notify charger_consumer */ enum { EVENT_BATTERY_PLUG_OUT, }; extern int register_battery_notifier(struct notifier_block *nb); extern int unregister_battery_notifier(struct notifier_block *nb); /* battery notify charger_consumer end*/ /* battery common interface */ extern signed int battery_get_bat_voltage(void); extern signed int battery_get_bat_current(void); extern signed int battery_get_bat_current_mA(void); extern signed int battery_get_soc(void); extern signed int battery_get_uisoc(void); extern signed int battery_get_bat_temperature(void); extern signed int battery_get_ibus(void); extern signed int battery_get_vbus(void); extern signed int battery_get_bat_avg_current(void); #endif /* End of _FUEL_GAUGE_GM_30_H */