6#ifndef CAFFEINE_SAL_DEV_LED_H
7#define CAFFEINE_SAL_DEV_LED_H
19#define CFN_SAL_DEV_TYPE_LED CFN_SAL_TYPE('L', 'E', 'D')
82 uint32_t peripheral_id,
90 CFN_HAL_POPULATE_DRIVER(
91 driver,
CFN_SAL_DEV_TYPE_LED, peripheral_id, NULL, dependency, api, phy, config, callback, user_arg);
106 return CFN_HAL_ERROR_BAD_PARAM;
108 driver->base.vmt = (
const struct cfn_hal_api_base_s *) driver->api;
116 return CFN_HAL_ERROR_BAD_PARAM;
126 return CFN_HAL_ERROR_BAD_PARAM;
128 driver->config = config;
135 if (!driver || !config || !driver->config)
137 return CFN_HAL_ERROR_BAD_PARAM;
139 *config = *(driver->config);
140 return CFN_HAL_ERROR_OK;
149 return CFN_HAL_ERROR_BAD_PARAM;
151 driver->cb = callback;
152 driver->cb_user_arg = user_arg;
153 return cfn_hal_base_callback_register(&driver->base,
CFN_SAL_DEV_TYPE_LED, (cfn_hal_callback_t) callback, user_arg);
157 cfn_hal_power_state_t state)
161 return CFN_HAL_ERROR_BAD_PARAM;
170 return CFN_HAL_ERROR_BAD_PARAM;
179 return CFN_HAL_ERROR_BAD_PARAM;
188 return CFN_HAL_ERROR_BAD_PARAM;
197 return CFN_HAL_ERROR_BAD_PARAM;
206 return CFN_HAL_ERROR_BAD_PARAM;
215 return CFN_HAL_ERROR_BAD_PARAM;
224 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
232 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
239 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
246 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
253 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
254 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(
CFN_SAL_DEV_TYPE_LED, get_brightness, driver, error, percent_out);
260 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
267 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
274 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
280 uint32_t interval_ms,
283 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
284 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(
CFN_SAL_DEV_TYPE_LED, set_blink, driver, error, interval_ms, count);
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_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_get_state(cfn_sal_dev_led_t *driver, cfn_sal_dev_led_state_t *state_out)
Definition cfn_sal_dev_led.h:229
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_init(cfn_sal_dev_led_t *driver)
Definition cfn_sal_dev_led.h:102
cfn_hal_error_code_t cfn_sal_dev_led_destruct(cfn_sal_dev_led_t *driver)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_deinit(cfn_sal_dev_led_t *driver)
Definition cfn_sal_dev_led.h:112
struct cfn_sal_dev_led_s cfn_sal_dev_led_t
Definition cfn_sal_dev_led.h:44
cfn_sal_dev_led_state_t
Definition cfn_sal_dev_led.h:24
@ CFN_SAL_DEV_LED_STATE_ON
Definition cfn_sal_dev_led.h:26
@ CFN_SAL_DEV_LED_STATE_OFF
Definition cfn_sal_dev_led.h:25
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_config_get(cfn_sal_dev_led_t *driver, cfn_sal_dev_led_config_t *config)
Definition cfn_sal_dev_led.h:132
cfn_hal_error_code_t cfn_sal_dev_led_construct(cfn_sal_dev_led_t *driver, const cfn_sal_dev_led_config_t *config, const cfn_sal_phy_t *phy, void *dependency, cfn_sal_dev_led_callback_t callback, void *user_arg)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_get_brightness(cfn_sal_dev_led_t *driver, uint8_t *percent_out)
Definition cfn_sal_dev_led.h:251
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_event_enable(cfn_sal_dev_led_t *driver, uint32_t event_mask)
Definition cfn_sal_dev_led.h:166
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_blink_start(cfn_sal_dev_led_t *driver, uint32_t period_ms)
Definition cfn_sal_dev_led.h:265
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_error_enable(cfn_sal_dev_led_t *driver, uint32_t error_mask)
Definition cfn_sal_dev_led.h:193
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_error_get(cfn_sal_dev_led_t *driver, uint32_t *error_mask)
Definition cfn_sal_dev_led.h:211
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_set_brightness(cfn_sal_dev_led_t *driver, uint8_t percent)
Definition cfn_sal_dev_led.h:244
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_callback_register(cfn_sal_dev_led_t *driver, cfn_sal_dev_led_callback_t callback, void *user_arg)
Definition cfn_sal_dev_led.h:143
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_toggle(cfn_sal_dev_led_t *driver)
Definition cfn_sal_dev_led.h:237
#define CFN_SAL_DEV_TYPE_LED
Definition cfn_sal_dev_led.h:19
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_set_blink(cfn_sal_dev_led_t *driver, uint32_t interval_ms, uint32_t count)
Definition cfn_sal_dev_led.h:279
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_config_set(cfn_sal_dev_led_t *driver, const cfn_sal_dev_led_config_t *config)
Definition cfn_sal_dev_led.h:121
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_event_get(cfn_sal_dev_led_t *driver, uint32_t *event_mask)
Definition cfn_sal_dev_led.h:184
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_error_disable(cfn_sal_dev_led_t *driver, uint32_t error_mask)
Definition cfn_sal_dev_led.h:202
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_event_disable(cfn_sal_dev_led_t *driver, uint32_t event_mask)
Definition cfn_sal_dev_led.h:175
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_power_state_set(cfn_sal_dev_led_t *driver, cfn_hal_power_state_t state)
Definition cfn_sal_dev_led.h:156
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_set_state(cfn_sal_dev_led_t *driver, cfn_sal_dev_led_state_t state)
Definition cfn_sal_dev_led.h:222
CFN_HAL_VMT_CHECK(struct cfn_sal_dev_led_api_s)
void(* cfn_sal_dev_led_callback_t)(cfn_sal_dev_led_t *driver, uint32_t event, uint32_t error, void *user_arg)
Definition cfn_sal_dev_led.h:47
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_set_color(cfn_sal_dev_led_t *driver, cfn_sal_dev_led_color_t color)
Definition cfn_sal_dev_led.h:258
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_dev_led_blink_stop(cfn_sal_dev_led_t *driver)
Definition cfn_sal_dev_led.h:272
CFN_HAL_INLINE void cfn_sal_dev_led_populate(cfn_sal_dev_led_t *driver, uint32_t peripheral_id, void *dependency, const cfn_sal_dev_led_api_t *api, const cfn_sal_phy_t *phy, const cfn_sal_dev_led_config_t *config, cfn_sal_dev_led_callback_t callback, void *user_arg)
Definition cfn_sal_dev_led.h:81
LED Virtual Method Table (VMT).
Definition cfn_sal_dev_led.h:53
cfn_hal_error_code_t(* set_blink)(cfn_sal_dev_led_t *driver, uint32_t interval_ms, uint32_t count)
Definition cfn_sal_dev_led.h:71
cfn_hal_error_code_t(* get_brightness)(cfn_sal_dev_led_t *driver, uint8_t *percent_out)
Definition cfn_sal_dev_led.h:63
cfn_hal_error_code_t(* blink_stop)(cfn_sal_dev_led_t *driver)
Definition cfn_sal_dev_led.h:70
cfn_hal_error_code_t(* toggle)(cfn_sal_dev_led_t *driver)
Definition cfn_sal_dev_led.h:59
cfn_hal_error_code_t(* get_state)(cfn_sal_dev_led_t *driver, cfn_sal_dev_led_state_t *state_out)
Definition cfn_sal_dev_led.h:58
cfn_hal_error_code_t(* set_color)(cfn_sal_dev_led_t *driver, cfn_sal_dev_led_color_t color)
Definition cfn_sal_dev_led.h:66
cfn_hal_error_code_t(* blink_start)(cfn_sal_dev_led_t *driver, uint32_t period_ms)
Definition cfn_sal_dev_led.h:69
cfn_hal_error_code_t(* set_brightness)(cfn_sal_dev_led_t *driver, uint8_t percent)
Definition cfn_sal_dev_led.h:62
cfn_hal_api_base_t base
Definition cfn_sal_dev_led.h:54
cfn_hal_error_code_t(* set_state)(cfn_sal_dev_led_t *driver, cfn_sal_dev_led_state_t state)
Definition cfn_sal_dev_led.h:57
Definition cfn_sal_dev_led.h:30
uint8_t r
Definition cfn_sal_dev_led.h:31
uint8_t b
Definition cfn_sal_dev_led.h:33
uint8_t g
Definition cfn_sal_dev_led.h:32
Definition cfn_sal_dev_led.h:39
void * custom
Definition cfn_sal_dev_led.h:41
bool active_low
Definition cfn_sal_dev_led.h:40
Generic physical mapping for services.
Definition cfn_sal_types.h:26