12 #include "hpm_soc_ip_feature.h"
13 #include "hpm_trgm_regs.h"
14 #include "hpm_trgmmux_src.h"
107 #if defined(TRGM_SOC_HAS_FILTER_SHIFT) && TRGM_SOC_HAS_FILTER_SHIFT
108 uint32_t len = length;
139 #if defined(TRGM_SOC_HAS_FILTER_SHIFT) && TRGM_SOC_HAS_FILTER_SHIFT
331 #if defined(TRGM_SOC_HAS_DMAMUX_EN) && TRGM_SOC_HAS_DMAMUX_EN
338 #if defined(HPM_IP_FEATURE_TRGM_HAS_TRGM_IN_OUT_STATUS) && HPM_IP_FEATURE_TRGM_HAS_TRGM_IN_OUT_STATUS
346 static inline uint32_t trgm_input_get_group_status(
TRGM_Type *ptr, uint8_t trgm_in_group)
351 return ptr->
TRGM_IN[trgm_in_group];
361 static inline int trgm_input_get_signal_status(
TRGM_Type *ptr, uint8_t trgm_in_index)
363 uint8_t group = trgm_in_index / 32;
364 uint8_t index = trgm_in_index % 32;
369 return ((ptr->
TRGM_IN[group] >> index) & 0x01);
373 #if defined(HPM_IP_FEATURE_TRGM_HRPWM_CALIBRATION_2) || defined(HPM_IP_FEATURE_TRGM_HRPWM_CALIBRATION_1)
383 #if defined(HPM_IP_FEATURE_TRGM_HRPWM_CALIBRATION_2)
384 uint16_t val_n, val_p;
387 #if defined(HPM_IP_FEATURE_TRGM_HRPWM_CALIBRATION_1)
388 static uint16_t last_val = 0;
401 #if defined(HPM_IP_FEATURE_TRGM_HRPWM_CALIBRATION_2)
404 if ((val_n > 3) && (val_p > 3)) {
413 #if defined(HPM_IP_FEATURE_TRGM_HRPWM_CALIBRATION_1)
415 if (last_val == 0U) {
416 if (delay_val > 10) {
417 last_val = delay_val;
424 diff_val = ((delay_val - last_val) > 0) ? (delay_val - last_val) : (last_val - delay_val);
426 if (((
float)diff_val / last_val) > 0.25f) {
428 last_val = delay_val;
#define TRGM_SOC_TRIM_IN_GROUP_MAX
Definition: hpm_soc_feature.h:178
#define TRGM_TRGOCFG_OUTINV_SET(x)
Definition: hpm_trgm_regs.h:96
#define TRGM_TRGOCFG_REDG2PEN_MASK
Definition: hpm_trgm_regs.h:114
#define TRGM_TRGOCFG_FEDG2PEN_MASK
Definition: hpm_trgm_regs.h:104
#define TRGM_DMACFG_DMAMUX_EN_MASK
Definition: hpm_trgm_regs.h:134
#define TRGM_FILTCFG_SYNCEN_MASK
Definition: hpm_trgm_regs.h:64
#define TRGM_FILTCFG_OUTINV_MASK
Definition: hpm_trgm_regs.h:39
#define TRGM_FILTCFG_FILTLEN_BASE_SHIFT
Definition: hpm_trgm_regs.h:84
#define TRGM_FILTCFG_MODE_MASK
Definition: hpm_trgm_regs.h:54
#define TRGM_FILTCFG_FILTLEN_BASE_SET(x)
Definition: hpm_trgm_regs.h:85
#define TRGM_FILTCFG_FILTLEN_BASE_MASK
Definition: hpm_trgm_regs.h:83
#define TRGM_TRGOCFG_TRIGOSEL_MASK
Definition: hpm_trgm_regs.h:124
#define TRGM_FILTCFG_OUTINV_SET(x)
Definition: hpm_trgm_regs.h:41
#define TRGM_FILTCFG_SYNCEN_SET(x)
Definition: hpm_trgm_regs.h:66
#define TRGM_FILTCFG_MODE_SET(x)
Definition: hpm_trgm_regs.h:56
#define TRGM_TRGOCFG_TRIGOSEL_SET(x)
Definition: hpm_trgm_regs.h:126
#define TRGM_FILTCFG_FILTLEN_SHIFT_SHIFT
Definition: hpm_trgm_regs.h:74
#define TRGM_DMACFG_DMASRCSEL_SET(x)
Definition: hpm_trgm_regs.h:146
#define TRGM_FILTCFG_FILTLEN_SHIFT_MASK
Definition: hpm_trgm_regs.h:73
#define TRGM_FILTCFG_FILTLEN_SHIFT_SET(x)
Definition: hpm_trgm_regs.h:75
#define TRGM_FILTCFG_FILTLEN_MASK
Definition: hpm_trgm_regs.h:65
#define TRGM_FILTCFG_FILTLEN_SET(x)
Definition: hpm_trgm_regs.h:67
#define TRGM_PWM_CALIB_CFG_CALIB_HW_ENABLE_MASK
Definition: hpm_trgm_regs.h:771
#define TRGM_PWM_CALIB_STATUS0_CALIB_RESULT_GET(x)
Definition: hpm_trgm_regs.h:791
#define TRGM_PWM_CALIB_CFG_CALIB_SW_START_MASK
Definition: hpm_trgm_regs.h:762
#define TRGM_PWM_CALIB_STATUS0_CALIB_ON_GET(x)
Definition: hpm_trgm_regs.h:783
#define TRGM_PWM_CALIB_STATUS1_CALIB_RESULT_P_GET(x)
Definition: hpm_trgm_regs.h:636
#define TRGM_PWM_DELAY_CFG_DELAY_CHAN_CALIB_N_SW_SET(x)
Definition: hpm_trgm_regs.h:578
#define TRGM_PWM_CALIB_STATUS1_CALIB_RESULT_N_GET(x)
Definition: hpm_trgm_regs.h:628
#define TRGM_PWM_DELAY_CFG_DELAY_CHAN_CALIB_P_SW_SET(x)
Definition: hpm_trgm_regs.h:588
trgm_filter_t trgm_input_filter_t
Definition: hpm_trgm_drv.h:61
trgm_output_type
Output type.
Definition: hpm_trgm_drv.h:37
static void trgm_filter_enable_sync(TRGM_Type *ptr, uint8_t input)
Enable sync input with TRGM clock.
Definition: hpm_trgm_drv.h:155
static void trgm_input_filter_config(TRGM_Type *ptr, uint8_t input, trgm_input_filter_t *filter)
Configure filter, legacy API for compatibility.
Definition: hpm_trgm_drv.h:289
static void trgm_filter_config(TRGM_Type *ptr, uint8_t input, trgm_filter_t *filter)
Configure filter.
Definition: hpm_trgm_drv.h:204
trgm_pwmv2_calibration_mode_t
Definition: hpm_trgm_drv.h:45
static void trgm_filter_set_filter_shift(TRGM_Type *ptr, uint8_t input, uint8_t shift)
Set filter length shift.
Definition: hpm_trgm_drv.h:137
static void trgm_input_filter_set_filter_shift(TRGM_Type *ptr, uint8_t input, uint8_t shift)
Set filter length shift, legacy API for compatibility.
Definition: hpm_trgm_drv.h:231
static void trgm_input_filter_enable_sync(TRGM_Type *ptr, uint8_t input)
Enable sync input with TRGM clock, legacy API for compatibility.
Definition: hpm_trgm_drv.h:242
static void trgm_filter_set_filter_length(TRGM_Type *ptr, uint8_t input, uint32_t length)
Set filter length.
Definition: hpm_trgm_drv.h:105
struct trgm_output trgm_output_t
Output configuration.
static void trgm_output_update_source(TRGM_Type *ptr, uint8_t output, uint8_t source)
Update source for TRGM output.
Definition: hpm_trgm_drv.h:301
static void trgm_input_filter_set_mode(TRGM_Type *ptr, uint8_t input, trgm_filter_mode_t mode)
Set filter working mode, legacy API for compatibility.
Definition: hpm_trgm_drv.h:265
enum trgm_filter_mode trgm_filter_mode_t
Filter mode.
static void trgm_filter_disable_sync(TRGM_Type *ptr, uint8_t input)
Disable sync input with TRGM clock.
Definition: hpm_trgm_drv.h:166
static void trgm_output_config(TRGM_Type *ptr, uint8_t output, trgm_output_t *config)
Configure output.
Definition: hpm_trgm_drv.h:314
enum trgm_output_type trgm_output_type_t
Output type.
static void trgm_input_filter_set_filter_length(TRGM_Type *ptr, uint8_t input, uint32_t length)
Set filter length, legacy API for compatibility.
Definition: hpm_trgm_drv.h:219
static void trgm_input_filter_disable_sync(TRGM_Type *ptr, uint8_t input)
Disable sync input with TRGM clock, legacy API for compatibility.
Definition: hpm_trgm_drv.h:253
static void trgm_dma_request_config(TRGM_Type *ptr, uint8_t dma_out, uint8_t dma_src)
Configure DMA request.
Definition: hpm_trgm_drv.h:329
static void trgm_filter_set_mode(TRGM_Type *ptr, uint8_t input, trgm_filter_mode_t mode)
Set filter working mode.
Definition: hpm_trgm_drv.h:178
static void trgm_filter_invert(TRGM_Type *ptr, uint8_t input, bool invert)
Invert filter output.
Definition: hpm_trgm_drv.h:191
trgm_filter_mode
Filter mode.
Definition: hpm_trgm_drv.h:26
static void trgm_enable_io_output(TRGM_Type *ptr, uint32_t mask)
Enable IO output.
Definition: hpm_trgm_drv.h:82
static void trgm_input_filter_invert(TRGM_Type *ptr, uint8_t input, bool invert)
Invert filter output, legacy API for compatibility.
Definition: hpm_trgm_drv.h:277
struct trgm_input_filter trgm_filter_t
Filter configuration.
static void trgm_disable_io_output(TRGM_Type *ptr, uint32_t mask)
Disable IO output.
Definition: hpm_trgm_drv.h:93
@ trgm_output_pulse_at_input_rising_edge
Definition: hpm_trgm_drv.h:40
@ trgm_output_pulse_at_input_falling_edge
Definition: hpm_trgm_drv.h:39
@ trgm_output_pulse_at_input_both_edge
Definition: hpm_trgm_drv.h:41
@ trgm_output_same_as_input
Definition: hpm_trgm_drv.h:38
@ trgm_pwmv2_calibration_mode_end
Definition: hpm_trgm_drv.h:48
@ trgm_pwmv2_calibration_mode_wait
Definition: hpm_trgm_drv.h:47
@ trgm_pwmv2_calibration_mode_begin
Definition: hpm_trgm_drv.h:46
@ trgm_filter_mode_rapid_change
Definition: hpm_trgm_drv.h:28
@ trgm_filter_mode_delay
Definition: hpm_trgm_drv.h:29
@ trgm_filter_mode_bypass
Definition: hpm_trgm_drv.h:27
@ trgm_filter_mode_stable_high
Definition: hpm_trgm_drv.h:31
@ trgm_filter_mode_stable_low
Definition: hpm_trgm_drv.h:30
Definition: hpm_trgm_regs.h:12
__R uint32_t PWM_CALIB_STATUS0
Definition: hpm_trgm_regs.h:45
__RW uint32_t TRGOCFG[137]
Definition: hpm_trgm_regs.h:15
__RW uint32_t DMACFG[8]
Definition: hpm_trgm_regs.h:17
__RW uint32_t PWM_CALIB_CFG
Definition: hpm_trgm_regs.h:43
__R uint32_t PWM_CALIB_STATUS1
Definition: hpm_trgm_regs.h:43
__R uint32_t TRGM_IN[4]
Definition: hpm_trgm_regs.h:26
__RW uint32_t FILTCFG[28]
Definition: hpm_trgm_regs.h:13
__RW uint32_t PWM_DELAY_CFG
Definition: hpm_trgm_regs.h:42
__RW uint32_t GCR
Definition: hpm_trgm_regs.h:19
Output configuration.
Definition: hpm_trgm_drv.h:66
trgm_output_type_t type
Definition: hpm_trgm_drv.h:68
bool invert
Definition: hpm_trgm_drv.h:67
uint8_t input
Definition: hpm_trgm_drv.h:69