6#ifndef CAFFEINE_SAL_DEV_TEMPERATURE_H
7#define CAFFEINE_SAL_DEV_TEMPERATURE_H
19#define CFN_SAL_DEV_TYPE_TEMPERATURE CFN_SAL_TYPE('T', 'M', 'P')
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;
169 return CFN_HAL_ERROR_BAD_PARAM;
171 driver->cb = callback;
172 driver->cb_user_arg = user_arg;
173 return cfn_hal_base_callback_register(
178 cfn_hal_power_state_t state)
182 return CFN_HAL_ERROR_BAD_PARAM;
192 return CFN_HAL_ERROR_BAD_PARAM;
202 return CFN_HAL_ERROR_BAD_PARAM;
208 uint32_t *event_mask)
212 return CFN_HAL_ERROR_BAD_PARAM;
222 return CFN_HAL_ERROR_BAD_PARAM;
232 return CFN_HAL_ERROR_BAD_PARAM;
238 uint32_t *error_mask)
242 return CFN_HAL_ERROR_BAD_PARAM;
252 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
260 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
268 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
275 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
281 uint32_t *status_flags)
283 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
290 uint32_t duration_ms)
292 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
299 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
306 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
315 if (driver->api->handle_interrupt)
317 driver->api->handle_interrupt(driver);
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_temperature_event_t
Definition cfn_sal_dev_temperature.h:30
@ CFN_SAL_DEV_TEMPERATURE_EVENT_THRESHOLD_LOW
Definition cfn_sal_dev_temperature.h:34
@ CFN_SAL_DEV_TEMPERATURE_EVENT_DATA_READY
Definition cfn_sal_dev_temperature.h:32
@ CFN_SAL_DEV_TEMPERATURE_EVENT_THRESHOLD_HIGH
Definition cfn_sal_dev_temperature.h:33
@ CFN_SAL_DEV_TEMPERATURE_EVENT_NONE
Definition cfn_sal_dev_temperature.h:31
CFN_HAL_INLINE void cfn_sal_dev_temperature_populate(cfn_sal_dev_temperature_t *driver, uint32_t peripheral_id, void *dependency, const cfn_sal_dev_temperature_api_t *api, const cfn_sal_phy_t *phy, const cfn_sal_dev_temperature_config_t *config, cfn_sal_dev_temperature_callback_t callback, void *user_arg)
Definition cfn_sal_dev_temperature.h:102
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_soft_reset(cfn_sal_dev_temperature_t *driver)
Definition cfn_sal_dev_temperature.h:297
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_error_enable(cfn_sal_dev_temperature_t *driver, uint32_t error_mask)
Definition cfn_sal_dev_temperature.h:217
struct cfn_sal_dev_temperature_s cfn_sal_dev_temperature_t
Definition cfn_sal_dev_temperature.h:60
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_callback_register(cfn_sal_dev_temperature_t *driver, cfn_sal_dev_temperature_callback_t callback, void *user_arg)
Definition cfn_sal_dev_temperature.h:164
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_error_disable(cfn_sal_dev_temperature_t *driver, uint32_t error_mask)
Definition cfn_sal_dev_temperature.h:227
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_get_id(cfn_sal_dev_temperature_t *driver, uint32_t *id_out)
Definition cfn_sal_dev_temperature.h:304
#define CFN_SAL_DEV_TYPE_TEMPERATURE
Definition cfn_sal_dev_temperature.h:19
CFN_HAL_VMT_CHECK(struct cfn_sal_dev_temperature_api_s)
cfn_hal_error_code_t cfn_sal_dev_temperature_destruct(cfn_sal_dev_temperature_t *driver)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_read_celsius(cfn_sal_dev_temperature_t *driver, float *temp_out)
Definition cfn_sal_dev_temperature.h:249
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_read_raw(cfn_sal_dev_temperature_t *driver, int32_t *raw_out)
Definition cfn_sal_dev_temperature.h:265
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_power_state_set(cfn_sal_dev_temperature_t *driver, cfn_hal_power_state_t state)
Definition cfn_sal_dev_temperature.h:177
void(* cfn_sal_dev_temperature_callback_t)(cfn_sal_dev_temperature_t *driver, uint32_t event, uint32_t error, void *user_arg)
Definition cfn_sal_dev_temperature.h:63
cfn_sal_dev_temperature_mode_t
Definition cfn_sal_dev_temperature.h:24
@ CFN_SAL_DEV_TEMPERATURE_MODE_CONTINUOUS
Definition cfn_sal_dev_temperature.h:25
@ CFN_SAL_DEV_TEMPERATURE_MODE_ONE_SHOT
Definition cfn_sal_dev_temperature.h:26
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_start_conversion(cfn_sal_dev_temperature_t *driver)
Definition cfn_sal_dev_temperature.h:273
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_event_disable(cfn_sal_dev_temperature_t *driver, uint32_t event_mask)
Definition cfn_sal_dev_temperature.h:197
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_init(cfn_sal_dev_temperature_t *driver)
Definition cfn_sal_dev_temperature.h:123
cfn_sal_dev_temperature_oversampling_t
Definition cfn_sal_dev_temperature.h:38
@ CFN_SAL_DEV_TEMPERATURE_OVERSAMPLING_NONE
Definition cfn_sal_dev_temperature.h:39
@ CFN_SAL_DEV_TEMPERATURE_OVERSAMPLING_1X
Definition cfn_sal_dev_temperature.h:40
@ CFN_SAL_DEV_TEMPERATURE_OVERSAMPLING_4X
Definition cfn_sal_dev_temperature.h:42
@ CFN_SAL_DEV_TEMPERATURE_OVERSAMPLING_16X
Definition cfn_sal_dev_temperature.h:44
@ CFN_SAL_DEV_TEMPERATURE_OVERSAMPLING_2X
Definition cfn_sal_dev_temperature.h:41
@ CFN_SAL_DEV_TEMPERATURE_OVERSAMPLING_8X
Definition cfn_sal_dev_temperature.h:43
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_get_status(cfn_sal_dev_temperature_t *driver, uint32_t *status_flags)
Definition cfn_sal_dev_temperature.h:280
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_error_get(cfn_sal_dev_temperature_t *driver, uint32_t *error_mask)
Definition cfn_sal_dev_temperature.h:237
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_deinit(cfn_sal_dev_temperature_t *driver)
Definition cfn_sal_dev_temperature.h:133
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_config_get(cfn_sal_dev_temperature_t *driver, cfn_sal_dev_temperature_config_t *config)
Definition cfn_sal_dev_temperature.h:153
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_enable_heater(cfn_sal_dev_temperature_t *driver, uint32_t power_mw, uint32_t duration_ms)
Definition cfn_sal_dev_temperature.h:288
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_event_enable(cfn_sal_dev_temperature_t *driver, uint32_t event_mask)
Definition cfn_sal_dev_temperature.h:187
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_config_set(cfn_sal_dev_temperature_t *driver, const cfn_sal_dev_temperature_config_t *config)
Definition cfn_sal_dev_temperature.h:142
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_event_get(cfn_sal_dev_temperature_t *driver, uint32_t *event_mask)
Definition cfn_sal_dev_temperature.h:207
cfn_hal_error_code_t cfn_sal_dev_temperature_construct(cfn_sal_dev_temperature_t *driver, const cfn_sal_dev_temperature_config_t *config, const cfn_sal_phy_t *phy, void *dependency, cfn_sal_dev_temperature_callback_t callback, void *user_arg)
CFN_HAL_INLINE void cfn_sal_dev_temperature_handle_interrupt(cfn_sal_dev_temperature_t *driver)
Definition cfn_sal_dev_temperature.h:311
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_temperature_read_fahrenheit(cfn_sal_dev_temperature_t *driver, float *temp_out)
Definition cfn_sal_dev_temperature.h:257
Temperature Sensor Virtual Method Table (VMT).
Definition cfn_sal_dev_temperature.h:72
cfn_hal_api_base_t base
Definition cfn_sal_dev_temperature.h:73
cfn_hal_error_code_t(* start_conversion)(cfn_sal_dev_temperature_t *driver)
Definition cfn_sal_dev_temperature.h:81
cfn_hal_error_code_t(* soft_reset)(cfn_sal_dev_temperature_t *driver)
Definition cfn_sal_dev_temperature.h:86
cfn_hal_error_code_t(* enable_heater)(cfn_sal_dev_temperature_t *driver, uint32_t power_mw, uint32_t duration_ms)
Definition cfn_sal_dev_temperature.h:85
cfn_hal_error_code_t(* read_celsius)(cfn_sal_dev_temperature_t *driver, float *temp_out)
Definition cfn_sal_dev_temperature.h:76
cfn_hal_error_code_t(* get_status)(cfn_sal_dev_temperature_t *driver, uint32_t *status_flags)
Definition cfn_sal_dev_temperature.h:82
cfn_hal_error_code_t(* get_id)(cfn_sal_dev_temperature_t *driver, uint32_t *id_out)
Definition cfn_sal_dev_temperature.h:87
void(* handle_interrupt)(cfn_sal_dev_temperature_t *driver)
Definition cfn_sal_dev_temperature.h:89
cfn_hal_error_code_t(* read_raw)(cfn_sal_dev_temperature_t *driver, int32_t *raw_out)
Definition cfn_sal_dev_temperature.h:78
cfn_hal_error_code_t(* read_fahrenheit)(cfn_sal_dev_temperature_t *driver, float *temp_out)
Definition cfn_sal_dev_temperature.h:77
Definition cfn_sal_dev_temperature.h:50
uint32_t sampling_rate_hz
Definition cfn_sal_dev_temperature.h:53
cfn_sal_dev_temperature_oversampling_t oversampling
Definition cfn_sal_dev_temperature.h:52
uint8_t resolution_bits
Definition cfn_sal_dev_temperature.h:54
cfn_sal_dev_temperature_mode_t mode
Definition cfn_sal_dev_temperature.h:51
void * custom
Definition cfn_sal_dev_temperature.h:57
int32_t high_threshold
Definition cfn_sal_dev_temperature.h:55
int32_t low_threshold
Definition cfn_sal_dev_temperature.h:56
Generic physical mapping for services.
Definition cfn_sal_types.h:26