Lines Matching refs:hal_ctx
20 bool twai_hal_init(twai_hal_context_t *hal_ctx, const twai_hal_config_t *config) in twai_hal_init() argument
23 hal_ctx->dev = TWAI_LL_GET_HW(config->controller_id); in twai_hal_init()
24 hal_ctx->state_flags = 0; in twai_hal_init()
25 hal_ctx->clock_source_hz = config->clock_source_hz; in twai_hal_init()
27 twai_ll_enable_clock(hal_ctx->dev, true); in twai_hal_init()
29 twai_ll_enter_reset_mode(hal_ctx->dev); in twai_hal_init()
30 …if (!twai_ll_is_in_reset_mode(hal_ctx->dev)) { //Must enter reset mode to write to config regis… in twai_hal_init()
34 …twai_ll_enable_extended_reg_layout(hal_ctx->dev); //Changes the address layout of the regis… in twai_hal_init()
36 twai_ll_set_mode(hal_ctx->dev, TWAI_MODE_LISTEN_ONLY); //Freeze REC by changing to LOM mode in twai_hal_init()
38 twai_ll_set_tec(hal_ctx->dev, TWAI_HAL_INIT_TEC); in twai_hal_init()
39 twai_ll_set_rec(hal_ctx->dev, TWAI_HAL_INIT_REC); in twai_hal_init()
40 twai_ll_set_err_warn_lim(hal_ctx->dev, TWAI_HAL_INIT_EWL); //Set default value of for EWL in twai_hal_init()
44 void twai_hal_deinit(twai_hal_context_t *hal_ctx) in twai_hal_deinit() argument
47 (void) twai_ll_get_and_clear_intrs(hal_ctx->dev); in twai_hal_deinit()
48 twai_ll_set_enabled_intrs(hal_ctx->dev, 0); in twai_hal_deinit()
49 twai_ll_clear_arb_lost_cap(hal_ctx->dev); in twai_hal_deinit()
50 twai_ll_clear_err_code_cap(hal_ctx->dev); in twai_hal_deinit()
52 twai_ll_enable_clock(hal_ctx->dev, false); in twai_hal_deinit()
53 hal_ctx->dev = NULL; in twai_hal_deinit()
56 void twai_hal_configure(twai_hal_context_t *hal_ctx, const twai_timing_config_t *t_config, const tw… in twai_hal_configure() argument
62 brp = hal_ctx->clock_source_hz / t_config->quanta_resolution_hz; in twai_hal_configure()
71 twai_ll_set_clock_source(hal_ctx->dev, clk_src); in twai_hal_configure()
74 …twai_ll_set_bus_timing(hal_ctx->dev, brp, t_config->sjw, t_config->tseg_1, t_config->tseg_2, t_con… in twai_hal_configure()
75 …twai_ll_set_acc_filter(hal_ctx->dev, f_config->acceptance_code, f_config->acceptance_mask, f_confi… in twai_hal_configure()
76 twai_ll_set_clkout(hal_ctx->dev, clkout_divider); in twai_hal_configure()
77 twai_ll_set_enabled_intrs(hal_ctx->dev, intr_mask); in twai_hal_configure()
78 (void) twai_ll_get_and_clear_intrs(hal_ctx->dev); //Clear any latched interrupts in twai_hal_configure()
83 void twai_hal_start(twai_hal_context_t *hal_ctx, twai_mode_t mode) in twai_hal_start() argument
85 twai_ll_set_mode(hal_ctx->dev, mode); //Set operating mode in twai_hal_start()
87 twai_ll_set_tec(hal_ctx->dev, 0); in twai_hal_start()
95 twai_ll_set_rec(hal_ctx->dev, 128); in twai_hal_start()
99 twai_ll_set_rec(hal_ctx->dev, 0); in twai_hal_start()
101 (void) twai_ll_get_and_clear_intrs(hal_ctx->dev); //Clear any latched interrupts in twai_hal_start()
102 TWAI_HAL_SET_BITS(hal_ctx->state_flags, TWAI_HAL_STATE_FLAG_RUNNING); in twai_hal_start()
103 twai_ll_exit_reset_mode(hal_ctx->dev); in twai_hal_start()
106 void twai_hal_stop(twai_hal_context_t *hal_ctx) in twai_hal_stop() argument
108 twai_ll_enter_reset_mode(hal_ctx->dev); in twai_hal_stop()
109 (void) twai_ll_get_and_clear_intrs(hal_ctx->dev); in twai_hal_stop()
110 twai_ll_set_mode(hal_ctx->dev, TWAI_MODE_LISTEN_ONLY); //Freeze REC by changing to LOM mode in twai_hal_stop()
112 …TWAI_HAL_CLEAR_BITS(hal_ctx->state_flags, TWAI_HAL_STATE_FLAG_TX_BUFF_OCCUPIED | TWAI_HAL_STATE_FL… in twai_hal_stop()