6#ifndef CAFFEINE_SAL_DEV_BATTERY_H
7#define CAFFEINE_SAL_DEV_BATTERY_H
19#define CFN_SAL_DEV_TYPE_BATTERY CFN_SAL_TYPE('B', 'A', 'T')
103 uint32_t peripheral_id,
111 CFN_HAL_POPULATE_DRIVER(
127 return CFN_HAL_ERROR_BAD_PARAM;
129 driver->base.vmt = (
const struct cfn_hal_api_base_s *) driver->api;
137 return CFN_HAL_ERROR_BAD_PARAM;
147 return CFN_HAL_ERROR_BAD_PARAM;
149 driver->config = config;
156 if (!driver || !config || !driver->config)
158 return CFN_HAL_ERROR_BAD_PARAM;
160 *config = *(driver->config);
161 return CFN_HAL_ERROR_OK;
170 return CFN_HAL_ERROR_BAD_PARAM;
172 driver->cb = callback;
173 driver->cb_user_arg = user_arg;
174 return cfn_hal_base_callback_register(
179 cfn_hal_power_state_t state)
183 return CFN_HAL_ERROR_BAD_PARAM;
192 return CFN_HAL_ERROR_BAD_PARAM;
202 return CFN_HAL_ERROR_BAD_PARAM;
211 return CFN_HAL_ERROR_BAD_PARAM;
220 return CFN_HAL_ERROR_BAD_PARAM;
230 return CFN_HAL_ERROR_BAD_PARAM;
239 return CFN_HAL_ERROR_BAD_PARAM;
248 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
254 uint8_t *percent_out)
256 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
263 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
271 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
279 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
286 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
294 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
301 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
307 float *soc_percent_out)
309 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
317 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
Core definitions and macros for Caffeine SAL.
#define CFN_SAL_CREATE_DRIVER_TYPE(prefix, config_type, api_type, phy_type, cb_type)
Definition cfn_sal.h:38
cfn_sal_dev_battery_event_t
Definition cfn_sal_dev_battery.h:24
@ CFN_SAL_DEV_BATTERY_EVENT_LOW
Definition cfn_sal_dev_battery.h:29
@ CFN_SAL_DEV_BATTERY_EVENT_CHARGING
Definition cfn_sal_dev_battery.h:26
@ CFN_SAL_DEV_BATTERY_EVENT_NONE
Definition cfn_sal_dev_battery.h:25
@ CFN_SAL_DEV_BATTERY_EVENT_DISCHARGING
Definition cfn_sal_dev_battery.h:27
@ CFN_SAL_DEV_BATTERY_EVENT_CRITICAL
Definition cfn_sal_dev_battery.h:30
@ CFN_SAL_DEV_BATTERY_EVENT_FULL
Definition cfn_sal_dev_battery.h:28
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_config_get(cfn_sal_dev_battery_t *driver, cfn_sal_dev_battery_config_t *config)
Definition cfn_sal_dev_battery.h:153
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_event_disable(cfn_sal_dev_battery_t *driver, uint32_t event_mask)
Definition cfn_sal_dev_battery.h:197
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_get_status(cfn_sal_dev_battery_t *driver, cfn_sal_dev_battery_status_t *status_out)
Definition cfn_sal_dev_battery.h:276
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_get_charge_state(cfn_sal_dev_battery_t *driver, cfn_sal_dev_battery_charge_state_t *state_out)
Definition cfn_sal_dev_battery.h:314
cfn_sal_dev_battery_charge_state_t
Definition cfn_sal_dev_battery.h:43
@ CFN_SAL_DEV_BATTERY_STATE_FAULT
Definition cfn_sal_dev_battery.h:47
@ CFN_SAL_DEV_BATTERY_STATE_CHARGING
Definition cfn_sal_dev_battery.h:45
@ CFN_SAL_DEV_BATTERY_STATE_DISCHARGING
Definition cfn_sal_dev_battery.h:44
@ CFN_SAL_DEV_BATTERY_STATE_FULL
Definition cfn_sal_dev_battery.h:46
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_deinit(cfn_sal_dev_battery_t *driver)
Definition cfn_sal_dev_battery.h:133
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_event_get(cfn_sal_dev_battery_t *driver, uint32_t *event_mask)
Definition cfn_sal_dev_battery.h:207
cfn_hal_error_code_t cfn_sal_dev_battery_destruct(cfn_sal_dev_battery_t *driver)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_get_voltage(cfn_sal_dev_battery_t *driver, float *volts_out)
Definition cfn_sal_dev_battery.h:246
cfn_sal_dev_battery_status_t
Definition cfn_sal_dev_battery.h:34
@ CFN_SAL_DEV_BATTERY_STATUS_CHARGING
Definition cfn_sal_dev_battery.h:36
@ CFN_SAL_DEV_BATTERY_STATUS_UNKNOWN
Definition cfn_sal_dev_battery.h:35
@ CFN_SAL_DEV_BATTERY_STATUS_NOT_CHARGING
Definition cfn_sal_dev_battery.h:38
@ CFN_SAL_DEV_BATTERY_STATUS_DISCHARGING
Definition cfn_sal_dev_battery.h:37
@ CFN_SAL_DEV_BATTERY_STATUS_FULL
Definition cfn_sal_dev_battery.h:39
void(* cfn_sal_dev_battery_callback_t)(cfn_sal_dev_battery_t *driver, uint32_t event, uint32_t error, void *user_arg)
Definition cfn_sal_dev_battery.h:63
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_error_disable(cfn_sal_dev_battery_t *driver, uint32_t error_mask)
Definition cfn_sal_dev_battery.h:225
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_callback_register(cfn_sal_dev_battery_t *driver, cfn_sal_dev_battery_callback_t callback, void *user_arg)
Definition cfn_sal_dev_battery.h:164
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_get_temperature(cfn_sal_dev_battery_t *driver, float *temp_out)
Definition cfn_sal_dev_battery.h:284
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_init(cfn_sal_dev_battery_t *driver)
Definition cfn_sal_dev_battery.h:123
#define CFN_SAL_DEV_TYPE_BATTERY
Definition cfn_sal_dev_battery.h:19
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_config_set(cfn_sal_dev_battery_t *driver, const cfn_sal_dev_battery_config_t *config)
Definition cfn_sal_dev_battery.h:142
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_error_enable(cfn_sal_dev_battery_t *driver, uint32_t error_mask)
Definition cfn_sal_dev_battery.h:216
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_get_percentage(cfn_sal_dev_battery_t *driver, uint8_t *percent_out)
Definition cfn_sal_dev_battery.h:253
struct cfn_sal_dev_battery_s cfn_sal_dev_battery_t
Definition cfn_sal_dev_battery.h:60
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_power_state_set(cfn_sal_dev_battery_t *driver, cfn_hal_power_state_t state)
Definition cfn_sal_dev_battery.h:178
cfn_hal_error_code_t cfn_sal_dev_battery_construct(cfn_sal_dev_battery_t *driver, const cfn_sal_dev_battery_config_t *config, const cfn_sal_phy_t *phy, void *dependency, cfn_sal_dev_battery_callback_t callback, void *user_arg)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_get_current(cfn_sal_dev_battery_t *driver, float *amps_out)
Definition cfn_sal_dev_battery.h:261
CFN_HAL_INLINE void cfn_sal_dev_battery_populate(cfn_sal_dev_battery_t *driver, uint32_t peripheral_id, void *dependency, const cfn_sal_dev_battery_api_t *api, const cfn_sal_phy_t *phy, const cfn_sal_dev_battery_config_t *config, cfn_sal_dev_battery_callback_t callback, void *user_arg)
Definition cfn_sal_dev_battery.h:102
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_read_current_ma(cfn_sal_dev_battery_t *driver, float *current_out)
Definition cfn_sal_dev_battery.h:291
CFN_HAL_VMT_CHECK(struct cfn_sal_dev_battery_api_s)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_read_state_of_charge(cfn_sal_dev_battery_t *driver, float *soc_percent_out)
Definition cfn_sal_dev_battery.h:306
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_error_get(cfn_sal_dev_battery_t *driver, uint32_t *error_mask)
Definition cfn_sal_dev_battery.h:235
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_read_capacity_mah(cfn_sal_dev_battery_t *driver, float *cap_out)
Definition cfn_sal_dev_battery.h:299
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_get_remaining_capacity(cfn_sal_dev_battery_t *driver, uint32_t *mah_out)
Definition cfn_sal_dev_battery.h:268
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_battery_event_enable(cfn_sal_dev_battery_t *driver, uint32_t event_mask)
Definition cfn_sal_dev_battery.h:188
Battery Monitor Virtual Method Table (VMT).
Definition cfn_sal_dev_battery.h:72
cfn_hal_error_code_t(* read_current_ma)(cfn_sal_dev_battery_t *driver, float *current_out)
Definition cfn_sal_dev_battery.h:81
cfn_hal_error_code_t(* get_status)(cfn_sal_dev_battery_t *driver, cfn_sal_dev_battery_status_t *status_out)
Definition cfn_sal_dev_battery.h:86
cfn_hal_error_code_t(* get_charge_state)(cfn_sal_dev_battery_t *driver, cfn_sal_dev_battery_charge_state_t *state_out)
Definition cfn_sal_dev_battery.h:87
cfn_hal_api_base_t base
Definition cfn_sal_dev_battery.h:73
cfn_hal_error_code_t(* get_current)(cfn_sal_dev_battery_t *driver, float *amps_out)
Definition cfn_sal_dev_battery.h:78
cfn_hal_error_code_t(* get_temperature)(cfn_sal_dev_battery_t *driver, float *temp_out)
Definition cfn_sal_dev_battery.h:89
cfn_hal_error_code_t(* read_state_of_charge)(cfn_sal_dev_battery_t *driver, float *soc_percent_out)
Definition cfn_sal_dev_battery.h:83
cfn_hal_error_code_t(* read_capacity_mah)(cfn_sal_dev_battery_t *driver, float *cap_out)
Definition cfn_sal_dev_battery.h:82
cfn_hal_error_code_t(* get_voltage)(cfn_sal_dev_battery_t *driver, float *volts_out)
Definition cfn_sal_dev_battery.h:76
cfn_hal_error_code_t(* get_percentage)(cfn_sal_dev_battery_t *driver, uint8_t *percent_out)
Definition cfn_sal_dev_battery.h:77
cfn_hal_error_code_t(* get_remaining_capacity)(cfn_sal_dev_battery_t *driver, uint32_t *mah_out)
Definition cfn_sal_dev_battery.h:79
Definition cfn_sal_dev_battery.h:53
uint32_t design_capacity_mah
Definition cfn_sal_dev_battery.h:54
float voltage_min
Definition cfn_sal_dev_battery.h:55
void * custom
Definition cfn_sal_dev_battery.h:57
float voltage_max
Definition cfn_sal_dev_battery.h:56
Generic physical mapping for services.
Definition cfn_sal_types.h:26