Zephyr API 3.6.99
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
35__subsystem struct fuel_gauge_emul_driver_api {
36 int (*set_battery_charging)(const struct emul *emul, uint32_t uV, int uA);
37 int (*is_battery_cutoff)(const struct emul *emul, bool *cutoff);
38};
57__syscall int emul_fuel_gauge_set_battery_charging(const struct emul *target, uint32_t uV, int uA);
58static inline int z_impl_emul_fuel_gauge_set_battery_charging(const struct emul *target,
59 uint32_t uV, int uA)
60{
61 const struct fuel_gauge_emul_driver_api *backend_api =
62 (const struct fuel_gauge_emul_driver_api *)target->backend_api;
63
64 if (backend_api->set_battery_charging == 0) {
65 return -ENOTSUP;
66 }
67
68 return backend_api->set_battery_charging(target, uV, uA);
69}
70
80__syscall int emul_fuel_gauge_is_battery_cutoff(const struct emul *target, bool *cutoff);
81static inline int z_impl_emul_fuel_gauge_is_battery_cutoff(const struct emul *target, bool *cutoff)
82{
83 const struct fuel_gauge_emul_driver_api *backend_api =
84 (const struct fuel_gauge_emul_driver_api *)target->backend_api;
85
86 if (backend_api->is_battery_cutoff == 0) {
87 return -ENOTSUP;
88 }
89 return backend_api->is_battery_cutoff(target, cutoff);
90}
91
92#ifdef __cplusplus
93}
94#endif
95
96#include <zephyr/syscalls/emul_fuel_gauge.h>
97
102#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