Zephyr Project API 4.2.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
emul_fuel_gauge.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2023 Google LLC
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
12#ifndef ZEPHYR_INCLUDE_DRIVERS_EMUL_FUEL_GAUGE_H_
13#define ZEPHYR_INCLUDE_DRIVERS_EMUL_FUEL_GAUGE_H_
14
15#include <stdint.h>
16#include <zephyr/drivers/emul.h>
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
36__subsystem struct fuel_gauge_emul_driver_api {
37 int (*set_battery_charging)(const struct emul *emul, uint32_t uV, int uA);
38 int (*is_battery_cutoff)(const struct emul *emul, bool *cutoff);
39};
58__syscall int emul_fuel_gauge_set_battery_charging(const struct emul *target, uint32_t uV, int uA);
59static inline int z_impl_emul_fuel_gauge_set_battery_charging(const struct emul *target,
60 uint32_t uV, int uA)
61{
62 const struct fuel_gauge_emul_driver_api *backend_api =
63 (const struct fuel_gauge_emul_driver_api *)target->backend_api;
64
65 if (backend_api->set_battery_charging == 0) {
66 return -ENOTSUP;
67 }
68
69 return backend_api->set_battery_charging(target, uV, uA);
70}
71
81__syscall int emul_fuel_gauge_is_battery_cutoff(const struct emul *target, bool *cutoff);
82static inline int z_impl_emul_fuel_gauge_is_battery_cutoff(const struct emul *target, bool *cutoff)
83{
84 const struct fuel_gauge_emul_driver_api *backend_api =
85 (const struct fuel_gauge_emul_driver_api *)target->backend_api;
86
87 if (backend_api->is_battery_cutoff == 0) {
88 return -ENOTSUP;
89 }
90 return backend_api->is_battery_cutoff(target, cutoff);
91}
92
93#ifdef __cplusplus
94}
95#endif
96
97#include <zephyr/syscalls/emul_fuel_gauge.h>
98
103#endif /* ZEPHYR_INCLUDE_DRIVERS_EMUL_FUEL_GAUGE_H_*/
int emul_fuel_gauge_set_battery_charging(const struct emul *target, uint32_t uV, int uA)
Set charging for fuel gauge associated battery.
int emul_fuel_gauge_is_battery_cutoff(const struct emul *target, bool *cutoff)
Check if the battery has been cut off.
#define ENOTSUP
Unsupported value.
Definition errno.h:114
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
An emulator instance - represents the target emulated device/peripheral that is interacted with throu...
Definition emul.h:82
const void * backend_api
Address of the API structure exposed by the emulator instance.
Definition emul.h:103