Lines Matching refs:mcpwm_num

64 #define MCPWM_TIMER_ID_CHECK(mcpwm_num, timer_num)                                                 …  argument
66 …ESP_RETURN_ON_FALSE((mcpwm_num) < SOC_MCPWM_GROUPS, ESP_ERR_INVALID_ARG, TAG, MCPWM_GROUP_NUM_ERRO…
70 #define MCPWM_TIMER_CHECK(mcpwm_num, timer_num) … argument
72 …MCPWM_TIMER_ID_CHECK(mcpwm_num, timer_num); …
73 …ESP_RETURN_ON_FALSE(context[mcpwm_num].hal.dev, ESP_ERR_INVALID_STATE, TAG, MCPWM_DRIVER_INIT_ERRO…
76 #define MCPWM_GEN_CHECK(mcpwm_num, timer_num, gen) \ argument
78 MCPWM_TIMER_CHECK(mcpwm_num, timer_num); \
115 static inline void mcpwm_critical_enter(mcpwm_unit_t mcpwm_num) in mcpwm_critical_enter() argument
117 portENTER_CRITICAL(&context[mcpwm_num].spinlock); in mcpwm_critical_enter()
120 static inline void mcpwm_critical_exit(mcpwm_unit_t mcpwm_num) in mcpwm_critical_exit() argument
122 portEXIT_CRITICAL(&context[mcpwm_num].spinlock); in mcpwm_critical_exit()
125 static inline void mcpwm_mutex_lock(mcpwm_unit_t mcpwm_num) in mcpwm_mutex_lock() argument
127 _lock_acquire(&context[mcpwm_num].mutex_lock); in mcpwm_mutex_lock()
130 static inline void mcpwm_mutex_unlock(mcpwm_unit_t mcpwm_num) in mcpwm_mutex_unlock() argument
132 _lock_release(&context[mcpwm_num].mutex_lock); in mcpwm_mutex_unlock()
135 esp_err_t mcpwm_gpio_init(mcpwm_unit_t mcpwm_num, mcpwm_io_signals_t io_signal, int gpio_num) in mcpwm_gpio_init() argument
141 …ESP_RETURN_ON_FALSE(mcpwm_num < SOC_MCPWM_GROUPS, ESP_ERR_INVALID_ARG, TAG, MCPWM_GROUP_NUM_ERROR); in mcpwm_gpio_init()
149 …esp_rom_gpio_connect_out_signal(gpio_num, mcpwm_periph_signals.groups[mcpwm_num].operators[operato… in mcpwm_gpio_init()
153 …esp_rom_gpio_connect_in_signal(gpio_num, mcpwm_periph_signals.groups[mcpwm_num].gpio_synchros[gpio… in mcpwm_gpio_init()
157 …esp_rom_gpio_connect_in_signal(gpio_num, mcpwm_periph_signals.groups[mcpwm_num].gpio_faults[fault_… in mcpwm_gpio_init()
161 …esp_rom_gpio_connect_in_signal(gpio_num, mcpwm_periph_signals.groups[mcpwm_num].captures[capture_i… in mcpwm_gpio_init()
167 esp_err_t mcpwm_set_pin(mcpwm_unit_t mcpwm_num, const mcpwm_pin_config_t *mcpwm_pin) in mcpwm_set_pin() argument
169 …ESP_RETURN_ON_FALSE(mcpwm_num < SOC_MCPWM_GROUPS, ESP_ERR_INVALID_ARG, TAG, MCPWM_GROUP_NUM_ERROR); in mcpwm_set_pin()
170 mcpwm_gpio_init(mcpwm_num, MCPWM0A, mcpwm_pin->mcpwm0a_out_num); //MCPWM0A in mcpwm_set_pin()
171 mcpwm_gpio_init(mcpwm_num, MCPWM0B, mcpwm_pin->mcpwm0b_out_num); //MCPWM0B in mcpwm_set_pin()
172 mcpwm_gpio_init(mcpwm_num, MCPWM1A, mcpwm_pin->mcpwm1a_out_num); //MCPWM1A in mcpwm_set_pin()
173 mcpwm_gpio_init(mcpwm_num, MCPWM1B, mcpwm_pin->mcpwm1b_out_num); //MCPWM1B in mcpwm_set_pin()
174 mcpwm_gpio_init(mcpwm_num, MCPWM2A, mcpwm_pin->mcpwm2a_out_num); //MCPWM2A in mcpwm_set_pin()
175 mcpwm_gpio_init(mcpwm_num, MCPWM2B, mcpwm_pin->mcpwm2b_out_num); //MCPWM2B in mcpwm_set_pin()
176 mcpwm_gpio_init(mcpwm_num, MCPWM_SYNC_0, mcpwm_pin->mcpwm_sync0_in_num); //SYNC0 in mcpwm_set_pin()
177 mcpwm_gpio_init(mcpwm_num, MCPWM_SYNC_1, mcpwm_pin->mcpwm_sync1_in_num); //SYNC1 in mcpwm_set_pin()
178 mcpwm_gpio_init(mcpwm_num, MCPWM_SYNC_2, mcpwm_pin->mcpwm_sync2_in_num); //SYNC2 in mcpwm_set_pin()
179 mcpwm_gpio_init(mcpwm_num, MCPWM_FAULT_0, mcpwm_pin->mcpwm_fault0_in_num); //FAULT0 in mcpwm_set_pin()
180 mcpwm_gpio_init(mcpwm_num, MCPWM_FAULT_1, mcpwm_pin->mcpwm_fault1_in_num); //FAULT1 in mcpwm_set_pin()
181 mcpwm_gpio_init(mcpwm_num, MCPWM_FAULT_2, mcpwm_pin->mcpwm_fault2_in_num); //FAULT2 in mcpwm_set_pin()
182 mcpwm_gpio_init(mcpwm_num, MCPWM_CAP_0, mcpwm_pin->mcpwm_cap0_in_num); //CAP0 in mcpwm_set_pin()
183 mcpwm_gpio_init(mcpwm_num, MCPWM_CAP_1, mcpwm_pin->mcpwm_cap1_in_num); //CAP1 in mcpwm_set_pin()
184 mcpwm_gpio_init(mcpwm_num, MCPWM_CAP_2, mcpwm_pin->mcpwm_cap2_in_num); //CAP2 in mcpwm_set_pin()
188 esp_err_t mcpwm_start(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num) in mcpwm_start() argument
190 MCPWM_TIMER_CHECK(mcpwm_num, timer_num); in mcpwm_start()
192 mcpwm_critical_enter(mcpwm_num); in mcpwm_start()
193 …mcpwm_ll_timer_set_start_stop_command(context[mcpwm_num].hal.dev, timer_num, MCPWM_TIMER_START_NO_… in mcpwm_start()
194 mcpwm_critical_exit(mcpwm_num); in mcpwm_start()
198 esp_err_t mcpwm_stop(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num) in mcpwm_stop() argument
200 MCPWM_TIMER_CHECK(mcpwm_num, timer_num); in mcpwm_stop()
202 mcpwm_critical_enter(mcpwm_num); in mcpwm_stop()
203 …mcpwm_ll_timer_set_start_stop_command(context[mcpwm_num].hal.dev, timer_num, MCPWM_TIMER_STOP_EMPT… in mcpwm_stop()
204 mcpwm_critical_exit(mcpwm_num); in mcpwm_stop()
208 static inline uint32_t mcpwm_group_get_resolution(mcpwm_unit_t mcpwm_num) in mcpwm_group_get_resolution() argument
210 if (context[mcpwm_num].group_resolution_hz == 0) { in mcpwm_group_get_resolution()
211 context[mcpwm_num].group_resolution_hz = MCPWM_DEFAULT_GROUP_CLK_RESOLUTION_HZ; in mcpwm_group_get_resolution()
213 return context[mcpwm_num].group_resolution_hz; in mcpwm_group_get_resolution()
216 static inline uint32_t mcpwm_timer_get_resolution(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num) in mcpwm_timer_get_resolution() argument
218 if (context[mcpwm_num].timer_resolution_hz[timer_num] == 0) { in mcpwm_timer_get_resolution()
219 context[mcpwm_num].timer_resolution_hz[timer_num] = MCPWM_DEFAULT_TIMER_CLK_RESOLUTION_HZ; in mcpwm_timer_get_resolution()
221 return context[mcpwm_num].timer_resolution_hz[timer_num]; in mcpwm_timer_get_resolution()
224 esp_err_t mcpwm_group_set_resolution(mcpwm_unit_t mcpwm_num, uint32_t resolution) in mcpwm_group_set_resolution() argument
226 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_group_set_resolution()
232 context[mcpwm_num].group_resolution_hz = clk_src_hz / pre_scale_temp; in mcpwm_group_set_resolution()
234 mcpwm_critical_enter(mcpwm_num); in mcpwm_group_set_resolution()
236 mcpwm_critical_exit(mcpwm_num); in mcpwm_group_set_resolution()
240 esp_err_t mcpwm_timer_set_resolution(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, uint32_t reso… in mcpwm_timer_set_resolution() argument
242 MCPWM_TIMER_CHECK(mcpwm_num, timer_num); in mcpwm_timer_set_resolution()
244 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_timer_set_resolution()
245 uint32_t group_resolution = mcpwm_group_get_resolution(mcpwm_num); in mcpwm_timer_set_resolution()
249 …context[mcpwm_num].timer_resolution_hz[timer_num] = context[mcpwm_num].group_resolution_hz / pre_s… in mcpwm_timer_set_resolution()
251 mcpwm_critical_enter(mcpwm_num); in mcpwm_timer_set_resolution()
253 mcpwm_critical_exit(mcpwm_num); in mcpwm_timer_set_resolution()
257 esp_err_t mcpwm_set_frequency(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, uint32_t frequency) in mcpwm_set_frequency() argument
261 MCPWM_TIMER_CHECK(mcpwm_num, timer_num); in mcpwm_set_frequency()
262 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_set_frequency()
264 mcpwm_critical_enter(mcpwm_num); in mcpwm_set_frequency()
268 uint32_t timer_resolution = mcpwm_timer_get_resolution(mcpwm_num, timer_num); in mcpwm_set_frequency()
282 mcpwm_critical_exit(mcpwm_num); in mcpwm_set_frequency()
286 esp_err_t mcpwm_set_duty(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, mcpwm_generator_t gen, fl… in mcpwm_set_duty() argument
292 MCPWM_GEN_CHECK(mcpwm_num, timer_num, gen); in mcpwm_set_duty()
293 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_set_duty()
295 mcpwm_critical_enter(mcpwm_num); in mcpwm_set_duty()
300 mcpwm_critical_exit(mcpwm_num); in mcpwm_set_duty()
304 esp_err_t mcpwm_set_duty_in_us(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, mcpwm_generator_t g… in mcpwm_set_duty_in_us() argument
310 MCPWM_GEN_CHECK(mcpwm_num, timer_num, gen); in mcpwm_set_duty_in_us()
311 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_set_duty_in_us()
313 mcpwm_critical_enter(mcpwm_num); in mcpwm_set_duty_in_us()
315 uint64_t timer_resolution = mcpwm_timer_get_resolution(mcpwm_num, timer_num); in mcpwm_set_duty_in_us()
320 mcpwm_critical_exit(mcpwm_num); in mcpwm_set_duty_in_us()
324 esp_err_t mcpwm_set_duty_type(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, mcpwm_generator_t ge… in mcpwm_set_duty_type() argument
329 MCPWM_GEN_CHECK(mcpwm_num, timer_num, gen); in mcpwm_set_duty_type()
331 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_set_duty_type()
334 mcpwm_critical_enter(mcpwm_num); in mcpwm_set_duty_type()
402 mcpwm_critical_exit(mcpwm_num); in mcpwm_set_duty_type()
406 esp_err_t mcpwm_init(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, const mcpwm_config_t *mcpwm_c… in mcpwm_init() argument
409 MCPWM_TIMER_ID_CHECK(mcpwm_num, op); in mcpwm_init()
410 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_init()
411 periph_module_enable(mcpwm_periph_signals.groups[mcpwm_num].module); in mcpwm_init()
413 .group_id = mcpwm_num in mcpwm_init()
419 uint32_t group_resolution = mcpwm_group_get_resolution(mcpwm_num); in mcpwm_init()
420 uint32_t timer_resolution = mcpwm_timer_get_resolution(mcpwm_num, timer_num); in mcpwm_init()
424 mcpwm_critical_enter(mcpwm_num); in mcpwm_init()
433 mcpwm_critical_exit(mcpwm_num); in mcpwm_init()
435 mcpwm_set_duty(mcpwm_num, timer_num, 0, mcpwm_conf->cmpr_a); in mcpwm_init()
436 mcpwm_set_duty(mcpwm_num, timer_num, 1, mcpwm_conf->cmpr_b); in mcpwm_init()
437 mcpwm_set_duty_type(mcpwm_num, timer_num, 0, mcpwm_conf->duty_mode); in mcpwm_init()
438 mcpwm_set_duty_type(mcpwm_num, timer_num, 1, mcpwm_conf->duty_mode); in mcpwm_init()
439 mcpwm_start(mcpwm_num, timer_num); in mcpwm_init()
444 uint32_t mcpwm_get_frequency(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num) in mcpwm_get_frequency() argument
446 if (mcpwm_num >= MCPWM_UNIT_MAX || timer_num >= MCPWM_TIMER_MAX) { in mcpwm_get_frequency()
451 uint32_t timer_resolution = mcpwm_timer_get_resolution(mcpwm_num, timer_num); in mcpwm_get_frequency()
453 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_get_frequency()
454 mcpwm_critical_enter(mcpwm_num); in mcpwm_get_frequency()
457 mcpwm_critical_exit(mcpwm_num); in mcpwm_get_frequency()
461 float mcpwm_get_duty(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, mcpwm_generator_t gen) in mcpwm_get_duty() argument
463 if (mcpwm_num >= MCPWM_UNIT_MAX || timer_num >= MCPWM_TIMER_MAX || gen >= MCPWM_GEN_MAX) { in mcpwm_get_duty()
469 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_get_duty()
470 mcpwm_critical_enter(mcpwm_num); in mcpwm_get_duty()
472 mcpwm_critical_exit(mcpwm_num); in mcpwm_get_duty()
476 uint32_t mcpwm_get_duty_in_us(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, mcpwm_operator_t gen) in mcpwm_get_duty_in_us() argument
478 if (mcpwm_num >= MCPWM_UNIT_MAX || timer_num >= MCPWM_TIMER_MAX || gen >= MCPWM_GEN_MAX) { in mcpwm_get_duty_in_us()
483 uint32_t timer_resolution = mcpwm_timer_get_resolution(mcpwm_num, timer_num); in mcpwm_get_duty_in_us()
487 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_get_duty_in_us()
488 mcpwm_critical_enter(mcpwm_num); in mcpwm_get_duty_in_us()
490 mcpwm_critical_exit(mcpwm_num); in mcpwm_get_duty_in_us()
494 esp_err_t mcpwm_set_signal_high(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, mcpwm_generator_t … in mcpwm_set_signal_high() argument
497 return mcpwm_set_duty_type(mcpwm_num, timer_num, gen, MCPWM_DUTY_MODE_FORCE_HIGH); in mcpwm_set_signal_high()
500 esp_err_t mcpwm_set_signal_low(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, mcpwm_generator_t g… in mcpwm_set_signal_low() argument
503 return mcpwm_set_duty_type(mcpwm_num, timer_num, gen, MCPWM_DUTY_MODE_FORCE_LOW); in mcpwm_set_signal_low()
506 esp_err_t mcpwm_carrier_enable(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num) in mcpwm_carrier_enable() argument
510 MCPWM_TIMER_CHECK(mcpwm_num, timer_num); in mcpwm_carrier_enable()
512 mcpwm_critical_enter(mcpwm_num); in mcpwm_carrier_enable()
513 mcpwm_ll_carrier_enable(context[mcpwm_num].hal.dev, op, true); in mcpwm_carrier_enable()
514 mcpwm_critical_exit(mcpwm_num); in mcpwm_carrier_enable()
518 esp_err_t mcpwm_carrier_disable(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num) in mcpwm_carrier_disable() argument
522 MCPWM_TIMER_CHECK(mcpwm_num, timer_num); in mcpwm_carrier_disable()
524 mcpwm_critical_enter(mcpwm_num); in mcpwm_carrier_disable()
525 mcpwm_ll_carrier_enable(context[mcpwm_num].hal.dev, op, false); in mcpwm_carrier_disable()
526 mcpwm_critical_exit(mcpwm_num); in mcpwm_carrier_disable()
530 esp_err_t mcpwm_carrier_set_period(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, uint8_t carrier… in mcpwm_carrier_set_period() argument
534 MCPWM_TIMER_CHECK(mcpwm_num, timer_num); in mcpwm_carrier_set_period()
536 mcpwm_critical_enter(mcpwm_num); in mcpwm_carrier_set_period()
537 mcpwm_ll_carrier_set_prescale(context[mcpwm_num].hal.dev, op, carrier_period + 1); in mcpwm_carrier_set_period()
538 mcpwm_critical_exit(mcpwm_num); in mcpwm_carrier_set_period()
542 esp_err_t mcpwm_carrier_set_duty_cycle(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, uint8_t car… in mcpwm_carrier_set_duty_cycle() argument
546 MCPWM_TIMER_CHECK(mcpwm_num, timer_num); in mcpwm_carrier_set_duty_cycle()
548 mcpwm_critical_enter(mcpwm_num); in mcpwm_carrier_set_duty_cycle()
549 mcpwm_ll_carrier_set_duty(context[mcpwm_num].hal.dev, op, carrier_duty); in mcpwm_carrier_set_duty_cycle()
550 mcpwm_critical_exit(mcpwm_num); in mcpwm_carrier_set_duty_cycle()
554 esp_err_t mcpwm_carrier_oneshot_mode_enable(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, uint8_… in mcpwm_carrier_oneshot_mode_enable() argument
558 MCPWM_TIMER_CHECK(mcpwm_num, timer_num); in mcpwm_carrier_oneshot_mode_enable()
560 mcpwm_critical_enter(mcpwm_num); in mcpwm_carrier_oneshot_mode_enable()
561 mcpwm_ll_carrier_set_first_pulse_width(context[mcpwm_num].hal.dev, op, pulse_width + 1); in mcpwm_carrier_oneshot_mode_enable()
562 mcpwm_critical_exit(mcpwm_num); in mcpwm_carrier_oneshot_mode_enable()
566 esp_err_t mcpwm_carrier_output_invert(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, in mcpwm_carrier_output_invert() argument
571 MCPWM_TIMER_CHECK(mcpwm_num, timer_num); in mcpwm_carrier_output_invert()
573 mcpwm_critical_enter(mcpwm_num); in mcpwm_carrier_output_invert()
574 mcpwm_ll_carrier_out_invert(context[mcpwm_num].hal.dev, op, carrier_ivt_mode); in mcpwm_carrier_output_invert()
575 mcpwm_critical_exit(mcpwm_num); in mcpwm_carrier_output_invert()
579 esp_err_t mcpwm_carrier_init(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, const mcpwm_carrier_c… in mcpwm_carrier_init() argument
583 MCPWM_TIMER_CHECK(mcpwm_num, timer_num); in mcpwm_carrier_init()
584 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_carrier_init()
586 mcpwm_carrier_enable(mcpwm_num, timer_num); in mcpwm_carrier_init()
587 mcpwm_carrier_set_period(mcpwm_num, timer_num, carrier_conf->carrier_period); in mcpwm_carrier_init()
588 mcpwm_carrier_set_duty_cycle(mcpwm_num, timer_num, carrier_conf->carrier_duty); in mcpwm_carrier_init()
589 mcpwm_carrier_oneshot_mode_enable(mcpwm_num, timer_num, carrier_conf->pulse_width_in_os); in mcpwm_carrier_init()
590 mcpwm_carrier_output_invert(mcpwm_num, timer_num, carrier_conf->carrier_ivt_mode); in mcpwm_carrier_init()
592 mcpwm_critical_enter(mcpwm_num); in mcpwm_carrier_init()
594 mcpwm_critical_exit(mcpwm_num); in mcpwm_carrier_init()
599 esp_err_t mcpwm_deadtime_enable(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, mcpwm_deadtime_typ… in mcpwm_deadtime_enable() argument
604 MCPWM_TIMER_CHECK(mcpwm_num, timer_num); in mcpwm_deadtime_enable()
606 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_deadtime_enable()
608 mcpwm_critical_enter(mcpwm_num); in mcpwm_deadtime_enable()
682 mcpwm_critical_exit(mcpwm_num); in mcpwm_deadtime_enable()
686 esp_err_t mcpwm_deadtime_disable(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num) in mcpwm_deadtime_disable() argument
690 MCPWM_TIMER_CHECK(mcpwm_num, timer_num); in mcpwm_deadtime_disable()
691 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_deadtime_disable()
693 mcpwm_critical_enter(mcpwm_num); in mcpwm_deadtime_disable()
703 mcpwm_critical_exit(mcpwm_num); in mcpwm_deadtime_disable()
707 esp_err_t mcpwm_fault_init(mcpwm_unit_t mcpwm_num, mcpwm_fault_input_level_t intput_level, mcpwm_fa… in mcpwm_fault_init() argument
709 …ESP_RETURN_ON_FALSE(mcpwm_num < SOC_MCPWM_GROUPS, ESP_ERR_INVALID_ARG, TAG, MCPWM_GROUP_NUM_ERROR); in mcpwm_fault_init()
710 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_fault_init()
712 mcpwm_critical_enter(mcpwm_num); in mcpwm_fault_init()
715 mcpwm_critical_exit(mcpwm_num); in mcpwm_fault_init()
719 esp_err_t mcpwm_fault_deinit(mcpwm_unit_t mcpwm_num, mcpwm_fault_signal_t fault_sig) in mcpwm_fault_deinit() argument
721 …ESP_RETURN_ON_FALSE(mcpwm_num < SOC_MCPWM_GROUPS, ESP_ERR_INVALID_ARG, TAG, MCPWM_GROUP_NUM_ERROR); in mcpwm_fault_deinit()
722 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_fault_deinit()
724 mcpwm_critical_enter(mcpwm_num); in mcpwm_fault_deinit()
729 mcpwm_critical_exit(mcpwm_num); in mcpwm_fault_deinit()
733 esp_err_t mcpwm_fault_set_cyc_mode(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, mcpwm_fault_sig… in mcpwm_fault_set_cyc_mode() argument
738 MCPWM_TIMER_CHECK(mcpwm_num, op); in mcpwm_fault_set_cyc_mode()
739 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_fault_set_cyc_mode()
741 mcpwm_critical_enter(mcpwm_num); in mcpwm_fault_set_cyc_mode()
749 mcpwm_critical_exit(mcpwm_num); in mcpwm_fault_set_cyc_mode()
753 esp_err_t mcpwm_fault_set_oneshot_mode(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, mcpwm_fault… in mcpwm_fault_set_oneshot_mode() argument
758 MCPWM_TIMER_CHECK(mcpwm_num, op); in mcpwm_fault_set_oneshot_mode()
759 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_fault_set_oneshot_mode()
761 mcpwm_critical_enter(mcpwm_num); in mcpwm_fault_set_oneshot_mode()
769 mcpwm_critical_exit(mcpwm_num); in mcpwm_fault_set_oneshot_mode()
798 esp_err_t mcpwm_capture_enable_channel(mcpwm_unit_t mcpwm_num, mcpwm_capture_channel_id_t cap_chann… in mcpwm_capture_enable_channel() argument
800 …ESP_RETURN_ON_FALSE(mcpwm_num < SOC_MCPWM_GROUPS, ESP_ERR_INVALID_ARG, TAG, MCPWM_GROUP_NUM_ERROR); in mcpwm_capture_enable_channel()
802 …ESP_RETURN_ON_FALSE(context[mcpwm_num].cap_isr_func[cap_channel].fn == NULL, ESP_ERR_INVALID_STATE… in mcpwm_capture_enable_channel()
804 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_capture_enable_channel()
807 periph_module_enable(mcpwm_periph_signals.groups[mcpwm_num].module); in mcpwm_capture_enable_channel()
810 .group_id = mcpwm_num in mcpwm_capture_enable_channel()
816 uint32_t group_resolution = mcpwm_group_get_resolution(mcpwm_num); in mcpwm_capture_enable_channel()
819 mcpwm_critical_enter(mcpwm_num); in mcpwm_capture_enable_channel()
831 mcpwm_critical_exit(mcpwm_num); in mcpwm_capture_enable_channel()
833 mcpwm_mutex_lock(mcpwm_num); in mcpwm_capture_enable_channel()
834 context[mcpwm_num].cap_isr_func[cap_channel].fn = cap_conf->capture_cb; in mcpwm_capture_enable_channel()
835 context[mcpwm_num].cap_isr_func[cap_channel].args = cap_conf->user_data; in mcpwm_capture_enable_channel()
837 if (context[mcpwm_num].mcpwm_intr_handle == NULL) { in mcpwm_capture_enable_channel()
838 ret = esp_intr_alloc(mcpwm_periph_signals.groups[mcpwm_num].irq_id, MCPWM_INTR_FLAG, in mcpwm_capture_enable_channel()
840 … (void *) (context + mcpwm_num), &(context[mcpwm_num].mcpwm_intr_handle)); in mcpwm_capture_enable_channel()
842 mcpwm_mutex_unlock(mcpwm_num); in mcpwm_capture_enable_channel()
847 esp_err_t mcpwm_capture_disable_channel(mcpwm_unit_t mcpwm_num, mcpwm_capture_channel_id_t cap_chan… in mcpwm_capture_disable_channel() argument
849 …ESP_RETURN_ON_FALSE(mcpwm_num < SOC_MCPWM_GROUPS, ESP_ERR_INVALID_ARG, TAG, MCPWM_GROUP_NUM_ERROR); in mcpwm_capture_disable_channel()
852 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_capture_disable_channel()
854 mcpwm_critical_enter(mcpwm_num); in mcpwm_capture_disable_channel()
857 mcpwm_critical_exit(mcpwm_num); in mcpwm_capture_disable_channel()
859 mcpwm_mutex_lock(mcpwm_num); in mcpwm_capture_disable_channel()
860 context[mcpwm_num].cap_isr_func[cap_channel].fn = NULL; in mcpwm_capture_disable_channel()
861 context[mcpwm_num].cap_isr_func[cap_channel].args = NULL; in mcpwm_capture_disable_channel()
865 if (context[mcpwm_num].cap_isr_func[i].fn != NULL) { in mcpwm_capture_disable_channel()
872 ret = esp_intr_free(context[mcpwm_num].mcpwm_intr_handle); in mcpwm_capture_disable_channel()
876 context[mcpwm_num].mcpwm_intr_handle = NULL; in mcpwm_capture_disable_channel()
878 mcpwm_mutex_unlock(mcpwm_num); in mcpwm_capture_disable_channel()
881 periph_module_disable(mcpwm_periph_signals.groups[mcpwm_num].module); in mcpwm_capture_disable_channel()
885 uint32_t MCPWM_ISR_ATTR mcpwm_capture_signal_get_value(mcpwm_unit_t mcpwm_num, mcpwm_capture_signal… in mcpwm_capture_signal_get_value() argument
887 if (mcpwm_num >= MCPWM_UNIT_MAX || cap_sig >= SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER) { in mcpwm_capture_signal_get_value()
890 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_capture_signal_get_value()
894 uint32_t mcpwm_capture_get_resolution(mcpwm_unit_t mcpwm_num) in mcpwm_capture_get_resolution() argument
896 if (mcpwm_num >= MCPWM_UNIT_MAX) { in mcpwm_capture_get_resolution()
901 return mcpwm_group_get_resolution(mcpwm_num); in mcpwm_capture_get_resolution()
907 uint32_t MCPWM_ISR_ATTR mcpwm_capture_signal_get_edge(mcpwm_unit_t mcpwm_num, mcpwm_capture_signal_… in mcpwm_capture_signal_get_edge() argument
909 if (mcpwm_num >= MCPWM_UNIT_MAX || cap_sig >= SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER) { in mcpwm_capture_signal_get_edge()
912 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_capture_signal_get_edge()
916 esp_err_t mcpwm_sync_configure(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, const mcpwm_sync_co… in mcpwm_sync_configure() argument
918 MCPWM_TIMER_CHECK(mcpwm_num, timer_num); in mcpwm_sync_configure()
920 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_sync_configure()
922 mcpwm_critical_enter(mcpwm_num); in mcpwm_sync_configure()
936 mcpwm_critical_exit(mcpwm_num); in mcpwm_sync_configure()
940 esp_err_t mcpwm_sync_disable(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num) in mcpwm_sync_disable() argument
942 MCPWM_TIMER_CHECK(mcpwm_num, timer_num); in mcpwm_sync_disable()
943 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_sync_disable()
945 mcpwm_critical_enter(mcpwm_num); in mcpwm_sync_disable()
947 mcpwm_critical_exit(mcpwm_num); in mcpwm_sync_disable()
951 esp_err_t mcpwm_timer_trigger_soft_sync(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num) in mcpwm_timer_trigger_soft_sync() argument
953 MCPWM_TIMER_CHECK(mcpwm_num, timer_num); in mcpwm_timer_trigger_soft_sync()
955 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_timer_trigger_soft_sync()
956 mcpwm_critical_enter(mcpwm_num); in mcpwm_timer_trigger_soft_sync()
958 mcpwm_critical_exit(mcpwm_num); in mcpwm_timer_trigger_soft_sync()
963 esp_err_t mcpwm_sync_invert_gpio_synchro(mcpwm_unit_t mcpwm_num, mcpwm_sync_signal_t sync_sig, bool… in mcpwm_sync_invert_gpio_synchro() argument
968 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_sync_invert_gpio_synchro()
969 mcpwm_critical_enter(mcpwm_num); in mcpwm_sync_invert_gpio_synchro()
971 mcpwm_critical_exit(mcpwm_num); in mcpwm_sync_invert_gpio_synchro()
976 esp_err_t mcpwm_set_timer_sync_output(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num, mcpwm_timer_… in mcpwm_set_timer_sync_output() argument
978 MCPWM_TIMER_CHECK(mcpwm_num, timer_num); in mcpwm_set_timer_sync_output()
980 mcpwm_hal_context_t *hal = &context[mcpwm_num].hal; in mcpwm_set_timer_sync_output()
981 mcpwm_critical_enter(mcpwm_num); in mcpwm_set_timer_sync_output()
997 mcpwm_critical_exit(mcpwm_num); in mcpwm_set_timer_sync_output()