HPM SDK
HPMicro Software Development Kit
hpm_smix_drv.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2023 HPMicro
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #ifndef HPM_SMIX_DRV_H
9 #define HPM_SMIX_DRV_H
10 
11 #include "hpm_common.h"
12 #include "hpm_soc_feature.h"
13 #include "hpm_smix_regs.h"
14 #include <math.h>
15 
23 typedef enum {
33 
34 typedef enum {
39 
40 typedef enum {
45 
46 typedef enum {
50 
51 typedef enum {
60 
75 
79 
80 
81 typedef enum {
96 
97 
98 typedef struct {
99  uint32_t ctrl;
100  uint32_t trans_size;
101  uint32_t src_addr;
102  uint32_t reserved0;
103  uint32_t dst_addr;
104  uint32_t reserved1;
105  uint32_t linked_ptr;
106  uint32_t reserved2;
108 
109 
110 typedef struct {
111  uint8_t priority;
112  uint8_t src_burst_size;
113  uint8_t src_req_sel;
114  uint8_t dst_req_sel;
115  uint8_t src_mode;
116  uint8_t dst_mode;
117  uint8_t src_width;
118  uint8_t dst_width;
119  uint8_t src_addr_ctrl;
120  uint8_t dst_addr_ctrl;
124  uint32_t src_addr;
125  uint32_t dst_addr;
126  uint32_t linked_ptr;
127  uint32_t trans_bytes;
129 
130 /* gain bit[14:0] */
131 /* low 12 bits is fraction */
132 /* high 3 bits: 1 - right shift 2; 2 - right shift 4 */
133 typedef enum {
176 
177 
178 typedef enum {
188 
189 typedef struct {
191  uint8_t fifo_thr;
193  bool da_int_en;
197  bool active_en;
200  bool fadein_en;
202  bool mixer_en;
203 
204  uint16_t gain;
205  uint32_t length;
206  uint32_t fadein_delta;
207  uint32_t fadeout_delta;
208  uint8_t src_ch_mask;
210 
211 
212 typedef struct {
213  uint8_t fifo_thr;
215  bool dn_int_en;
218  uint8_t convert_rate;
219 
220  uint16_t gain;
221  uint32_t fadein_delta;
222  uint32_t fadeout_delta;
223  uint32_t length;
225 
226 #ifdef __cplusplus
227 extern "C" {
228 #endif
229 
237 static inline bool smix_dma_check_transfer_complete(SMIX_Type *ptr, uint8_t ch_index)
238 {
239  if ((SMIX_DMAC_TC_ST_CH_GET(ptr->DMAC_TC_ST) & (1U << ch_index)) != 0) {
240  ptr->DMAC_TC_ST = (1U << ch_index); /* W1C clear status*/
241  return true;
242  }
243  return false;
244 }
245 
253 static inline bool smix_dma_check_transfer_abort(SMIX_Type *ptr, uint8_t ch_index)
254 {
255  if ((SMIX_DMAC_ABRT_ST_CH_GET(ptr->DMAC_ABRT_ST) & (1U << ch_index)) != 0) {
256  ptr->DMAC_ABRT_ST = (1U << ch_index); /* W1C clear status*/
257  return true;
258  }
259  return false;
260 }
261 
269 static inline bool smix_dma_check_transfer_error(SMIX_Type *ptr, uint8_t ch_index)
270 {
271  if ((SMIX_DMAC_ERR_ST_CH_GET(ptr->DMAC_ERR_ST) & (1U << ch_index)) != 0) {
272  ptr->DMAC_ERR_ST = (1U << ch_index); /* W1C clear status*/
273  return true;
274  }
275  return false;
276 }
277 
285 static inline void smix_mixer_dst_enable_source_channel(SMIX_Type *ptr, uint8_t dst_ch, uint32_t source_ch_mask)
286 {
287  ptr->DST_CH[dst_ch].SOURCE_EN |= source_ch_mask;
288 }
289 
297 static inline void smix_mixer_dst_disable_source_channel(SMIX_Type *ptr, uint8_t dst_ch, uint32_t source_ch_mask)
298 {
299  ptr->DST_CH[dst_ch].SOURCE_EN &= ~source_ch_mask;
300 }
301 
309 static inline void smix_mixer_dst_active_source_channel(SMIX_Type *ptr, uint8_t dst_ch, uint32_t source_ch_mask)
310 {
311  ptr->DST_CH[dst_ch].SOURCE_ACT |= source_ch_mask;
312 }
313 
321 static inline void smix_mixer_dst_deactive_source_channel(SMIX_Type *ptr, uint8_t dst_ch, uint32_t source_ch_mask)
322 {
323  ptr->DST_CH[dst_ch].SOURCE_DEACT |= source_ch_mask;
324 }
325 
333 static inline void smix_mixer_dst_fadein_source_channel(SMIX_Type *ptr, uint8_t dst_ch, uint32_t source_ch_mask)
334 {
335  ptr->DST_CH[dst_ch].SOURCE_FADEIN_CTRL |= source_ch_mask;
336 }
337 
345 static inline void smix_mixer_dst_fadeout_source_channel(SMIX_Type *ptr, uint8_t dst_ch, uint32_t source_ch_mask)
346 {
347  ptr->DST_CH[dst_ch].SOURCE_MFADEOUT_CTRL |= source_ch_mask;
348 }
349 
357 static inline void smix_mixer_dst_enable(SMIX_Type *ptr)
358 {
361 }
362 
370 static inline void smix_mixer_dst_disable(SMIX_Type *ptr)
371 {
373 }
374 
381 static inline uint32_t smix_mixer_get_calsat_status(SMIX_Type *ptr)
382 {
383  return ptr->CALSAT_ST;
384 }
385 
393 static inline bool smix_mixer_check_dst_cal_saturation_error(SMIX_Type *ptr, uint8_t dst_ch)
394 {
395  return ((SMIX_CALSAT_ST_DST_GET(ptr->CALSAT_ST) & (1U << dst_ch)) != 0) ? true : false;
396 }
397 
405 static inline bool smix_mixer_check_source_cal_saturation_error(SMIX_Type *ptr, uint8_t source_ch)
406 {
407  return ((SMIX_CALSAT_ST_SRC_GET(ptr->CALSAT_ST) & (1U << source_ch)) != 0) ? true : false;
408 }
409 
417 static inline bool smix_mixer_check_dst_data_underflew(SMIX_Type *ptr, uint8_t dst_ch)
418 {
419  return ((SMIX_DATA_ST_DST_UNDL_GET(ptr->DATA_ST) & (1U << dst_ch)) != 0) ? true : false;
420 }
421 
429 static inline bool smix_mixer_check_dst_data_available(SMIX_Type *ptr, uint8_t dst_ch)
430 {
431  return ((SMIX_DATA_ST_DST_DA_GET(ptr->DATA_ST) & (1U << dst_ch)) != 0) ? true : false;
432 }
433 
441 static inline bool smix_mixer_check_source_data_needed(SMIX_Type *ptr, uint8_t source_ch)
442 {
443  return ((SMIX_DATA_ST_SRC_DN_GET(ptr->DATA_ST) & (1U << source_ch)) != 0) ? true : false;
444 }
445 
455 hpm_stat_t smix_mixer_config_dst_fadein_delta(SMIX_Type *ptr, uint8_t ch, uint32_t target_sample_rate, uint32_t ms);
456 
466 hpm_stat_t smix_mixer_config_dst_fadeout_delta(SMIX_Type *ptr, uint8_t ch, uint32_t target_sample_rate, uint32_t ms);
467 
477 hpm_stat_t smix_mixer_config_source_fadein_delta(SMIX_Type *ptr, uint8_t ch, uint32_t target_sample_rate, uint32_t ms);
478 
488 hpm_stat_t smix_mixer_config_source_fadeout_delta(SMIX_Type *ptr, uint8_t ch, uint32_t target_sample_rate, uint32_t ms);
489 
497 
505 
513 
523 hpm_stat_t smix_config_dma_channel(SMIX_Type *ptr, uint8_t ch, smix_dma_ch_config_t *config, bool start);
524 
534 
544 
552 static inline void smix_set_source_gain(SMIX_Type *ptr, uint8_t ch_index, smix_mixer_gain_t gain)
553 {
554  ptr->SOURCE_CH[ch_index].GAIN = SMIX_SOURCE_CH_GAIN_VAL_SET(gain);
555 }
556 
564 static inline void smix_set_dst_gain(SMIX_Type *ptr, uint8_t ch_index, smix_mixer_gain_t gain)
565 {
566  ptr->DST_CH[ch_index].GAIN = SMIX_DST_CH_GAIN_VAL_SET(gain);
567 }
568 
569 #ifdef __cplusplus
570 }
571 #endif
572 
577 #endif /* HPM_SMIX_DRV_H */
uint32_t hpm_stat_t
Definition: hpm_common.h:126
hpm_stat_t smix_mixer_config_dst_ch(SMIX_Type *ptr, uint8_t ch, smix_mixer_dst_config_t *dst)
smix mixer config dst channel
Definition: hpm_smix_drv.c:174
smix_mixer_rate_convert_t
Definition: hpm_smix_drv.h:178
static bool smix_mixer_check_dst_data_available(SMIX_Type *ptr, uint8_t dst_ch)
smix mixer check dst channel data available
Definition: hpm_smix_drv.h:429
hpm_stat_t smix_mixer_config_source_fadein_delta(SMIX_Type *ptr, uint8_t ch, uint32_t target_sample_rate, uint32_t ms)
smix mixer config source channel fadein delta
Definition: hpm_smix_drv.c:240
static uint32_t smix_mixer_get_calsat_status(SMIX_Type *ptr)
smix mixer get calculate saturation register value
Definition: hpm_smix_drv.h:381
static void smix_mixer_dst_enable_source_channel(SMIX_Type *ptr, uint8_t dst_ch, uint32_t source_ch_mask)
smix mixer enable source channel for dst
Definition: hpm_smix_drv.h:285
smix_dma_req_t
Definition: hpm_smix_drv.h:51
smix_dma_transfer_width_t
Definition: hpm_smix_drv.h:34
static bool smix_dma_check_transfer_abort(SMIX_Type *ptr, uint8_t ch_index)
smix dma check transfer abort status
Definition: hpm_smix_drv.h:253
smix_dma_address_control_t
Definition: hpm_smix_drv.h:40
smix_src_clk_source_t
Definition: hpm_smix_drv.h:81
static void smix_mixer_dst_deactive_source_channel(SMIX_Type *ptr, uint8_t dst_ch, uint32_t source_ch_mask)
smix mixer deactive source channel for dst
Definition: hpm_smix_drv.h:321
static bool smix_mixer_check_source_data_needed(SMIX_Type *ptr, uint8_t source_ch)
smix mixer check source channel data available
Definition: hpm_smix_drv.h:441
static bool smix_mixer_check_dst_cal_saturation_error(SMIX_Type *ptr, uint8_t dst_ch)
smix mixer check dst channel calculate saturation error
Definition: hpm_smix_drv.h:393
smix_dma_handshake_mode_t
Definition: hpm_smix_drv.h:46
static void smix_mixer_dst_disable(SMIX_Type *ptr)
smix mixer disable dst channel
Definition: hpm_smix_drv.h:370
hpm_stat_t smix_mixer_config_source_fadeout_delta(SMIX_Type *ptr, uint8_t ch, uint32_t target_sample_rate, uint32_t ms)
smix mixer config source channel fadeout delta
Definition: hpm_smix_drv.c:251
void smix_get_mixer_source_ch_default_config(SMIX_Type *ptr, smix_mixer_source_config_t *config)
smix get source channel default config
Definition: hpm_smix_drv.c:85
static bool smix_dma_check_transfer_error(SMIX_Type *ptr, uint8_t ch_index)
smix dma check transfer error status
Definition: hpm_smix_drv.h:269
void smix_get_dma_default_ch_config(SMIX_Type *ptr, smix_dma_ch_config_t *config)
smix get dma channel default config
Definition: hpm_smix_drv.c:39
smix_mixer_gain_t
Definition: hpm_smix_drv.h:133
static bool smix_dma_check_transfer_complete(SMIX_Type *ptr, uint8_t ch_index)
smix dma check transfer complete status
Definition: hpm_smix_drv.h:237
hpm_stat_t smix_config_dma_channel(SMIX_Type *ptr, uint8_t ch, smix_dma_ch_config_t *config, bool start)
smix config dma channel
Definition: hpm_smix_drv.c:101
smix_dma_transfer_burst_t
Definition: hpm_smix_drv.h:23
static void smix_mixer_dst_active_source_channel(SMIX_Type *ptr, uint8_t dst_ch, uint32_t source_ch_mask)
smix mixer active source channel for dst
Definition: hpm_smix_drv.h:309
hpm_stat_t smix_mixer_config_source_ch(SMIX_Type *ptr, uint8_t ch, smix_mixer_source_config_t *src)
smix mixer config source channel
Definition: hpm_smix_drv.c:144
static void smix_mixer_dst_disable_source_channel(SMIX_Type *ptr, uint8_t dst_ch, uint32_t source_ch_mask)
smix mixer disable source channel for dst
Definition: hpm_smix_drv.h:297
static void smix_mixer_dst_fadein_source_channel(SMIX_Type *ptr, uint8_t dst_ch, uint32_t source_ch_mask)
smix mixer fadein source channel for dst
Definition: hpm_smix_drv.h:333
static bool smix_mixer_check_source_cal_saturation_error(SMIX_Type *ptr, uint8_t source_ch)
smix mixer check source channel calculate saturation error
Definition: hpm_smix_drv.h:405
hpm_stat_t smix_mixer_config_dst_fadein_delta(SMIX_Type *ptr, uint8_t ch, uint32_t target_sample_rate, uint32_t ms)
smix mixer config dst channel fadein delta
Definition: hpm_smix_drv.c:217
static void smix_set_dst_gain(SMIX_Type *ptr, uint8_t ch_index, smix_mixer_gain_t gain)
smix mixer config dst channel gain
Definition: hpm_smix_drv.h:564
static void smix_set_source_gain(SMIX_Type *ptr, uint8_t ch_index, smix_mixer_gain_t gain)
smix mixer config source channel gain
Definition: hpm_smix_drv.h:552
static bool smix_mixer_check_dst_data_underflew(SMIX_Type *ptr, uint8_t dst_ch)
smix mixer check dst channel data ubderflew
Definition: hpm_smix_drv.h:417
static void smix_mixer_dst_fadeout_source_channel(SMIX_Type *ptr, uint8_t dst_ch, uint32_t source_ch_mask)
smix mixer fadeout source channel for dst
Definition: hpm_smix_drv.h:345
hpm_stat_t smix_mixer_config_dst_fadeout_delta(SMIX_Type *ptr, uint8_t ch, uint32_t target_sample_rate, uint32_t ms)
smix mixer config dst channel fadeout delta
Definition: hpm_smix_drv.c:228
void smix_get_mixer_dst_ch_default_config(SMIX_Type *ptr, smix_mixer_dst_config_t *config)
smix get dst channel default config
Definition: hpm_smix_drv.c:61
static void smix_mixer_dst_enable(SMIX_Type *ptr)
smix mixer enable dst channel
Definition: hpm_smix_drv.h:357
@ smix_mixer_upper_12x_sample
Definition: hpm_smix_drv.h:185
@ smix_mixer_upper_6x_sample
Definition: hpm_smix_drv.h:183
@ smix_mixer_upper_8x_sample
Definition: hpm_smix_drv.h:184
@ smix_mixer_upper_3x_sample
Definition: hpm_smix_drv.h:181
@ smix_mixer_upper_2x_sample
Definition: hpm_smix_drv.h:180
@ smix_mixer_no_rate_convert
Definition: hpm_smix_drv.h:179
@ smix_mixer_upper_4x_sample
Definition: hpm_smix_drv.h:182
@ smix_mixer_lower_2x_sample
Definition: hpm_smix_drv.h:186
@ smix_dma_req_mixer_src_ch12
Definition: hpm_smix_drv.h:73
@ smix_dma_req_i2s1_tx
Definition: hpm_smix_drv.h:55
@ smix_dma_req_mixer_dst_ch0
Definition: hpm_smix_drv.h:76
@ smix_dma_req_mixer_src_ch6
Definition: hpm_smix_drv.h:67
@ smix_dma_req_i2s3_rx
Definition: hpm_smix_drv.h:58
@ smix_dma_req_mixer_src_ch9
Definition: hpm_smix_drv.h:70
@ smix_dma_req_mixer_dst_ch1
Definition: hpm_smix_drv.h:77
@ smix_dma_req_i2s0_rx
Definition: hpm_smix_drv.h:52
@ smix_dma_req_mixer_src_ch3
Definition: hpm_smix_drv.h:64
@ smix_dma_req_i2s1_rx
Definition: hpm_smix_drv.h:54
@ smix_dma_req_i2s2_tx
Definition: hpm_smix_drv.h:57
@ smix_dma_req_mixer_src_ch4
Definition: hpm_smix_drv.h:65
@ smix_dma_req_mixer_src_ch5
Definition: hpm_smix_drv.h:66
@ smix_dma_req_mixer_src_ch1
Definition: hpm_smix_drv.h:62
@ smix_dma_req_i2s0_tx
Definition: hpm_smix_drv.h:53
@ smix_dma_req_mixer_src_ch2
Definition: hpm_smix_drv.h:63
@ smix_dma_req_mixer_src_ch10
Definition: hpm_smix_drv.h:71
@ smix_dma_req_mixer_src_ch13
Definition: hpm_smix_drv.h:74
@ smix_dma_req_i2s3_tx
Definition: hpm_smix_drv.h:59
@ smix_dma_req_i2s2_rx
Definition: hpm_smix_drv.h:56
@ smix_dma_req_mixer_src_ch11
Definition: hpm_smix_drv.h:72
@ smix_dma_req_mixer_src_ch0
Definition: hpm_smix_drv.h:61
@ smix_dma_req_mixer_src_ch8
Definition: hpm_smix_drv.h:69
@ smix_dma_req_mixer_src_ch7
Definition: hpm_smix_drv.h:68
@ smix_dma_transfer_byte
Definition: hpm_smix_drv.h:35
@ smix_dma_transfer_word
Definition: hpm_smix_drv.h:37
@ smix_dma_transfer_half_word
Definition: hpm_smix_drv.h:36
@ smix_dma_address_fixed
Definition: hpm_smix_drv.h:43
@ smix_dma_address_increment
Definition: hpm_smix_drv.h:41
@ smix_dma_address_decrement
Definition: hpm_smix_drv.h:42
@ smix_src_clk_i2s1_mclk
Definition: hpm_smix_drv.h:87
@ smix_src_clk_i2s2_fclk
Definition: hpm_smix_drv.h:89
@ smix_src_clk_i2s1_fclk
Definition: hpm_smix_drv.h:86
@ smix_src_clk_none
Definition: hpm_smix_drv.h:94
@ smix_src_clk_i2s0_mclk
Definition: hpm_smix_drv.h:84
@ smix_src_clk_i2s0_bclk
Definition: hpm_smix_drv.h:82
@ smix_src_clk_i2s3_fclk
Definition: hpm_smix_drv.h:92
@ smix_src_clk_i2s2_bclk
Definition: hpm_smix_drv.h:88
@ smix_src_clk_i2s1_bclk
Definition: hpm_smix_drv.h:85
@ smix_src_clk_i2s2_mclk
Definition: hpm_smix_drv.h:90
@ smix_src_clk_i2s3_bclk
Definition: hpm_smix_drv.h:91
@ smix_src_clk_i2s0_fclk
Definition: hpm_smix_drv.h:83
@ smix_src_clk_i2s3_mclk
Definition: hpm_smix_drv.h:93
@ smix_dma_mode_handshake
Definition: hpm_smix_drv.h:48
@ smix_dma_mode_normal
Definition: hpm_smix_drv.h:47
@ smix_mixer_gain_decrease_3db
Definition: hpm_smix_drv.h:151
@ smix_mixer_gain_decrease_18db
Definition: hpm_smix_drv.h:136
@ smix_mixer_gain_decrease_20db
Definition: hpm_smix_drv.h:134
@ smix_mixer_gain_decrease_15db
Definition: hpm_smix_drv.h:139
@ smix_mixer_gain_decrease_11db
Definition: hpm_smix_drv.h:143
@ smix_mixer_gain_increase_7db
Definition: hpm_smix_drv.h:161
@ smix_mixer_gain_decrease_12db
Definition: hpm_smix_drv.h:142
@ smix_mixer_gain_increase_15db
Definition: hpm_smix_drv.h:169
@ smix_mixer_gain_increase_8db
Definition: hpm_smix_drv.h:162
@ smix_mixer_gain_decrease_6db
Definition: hpm_smix_drv.h:148
@ smix_mixer_gain_increase_12db
Definition: hpm_smix_drv.h:166
@ smix_mixer_gain_increase_11db
Definition: hpm_smix_drv.h:165
@ smix_mixer_gain_increase_18db
Definition: hpm_smix_drv.h:172
@ smix_mixer_gain_increase_9db
Definition: hpm_smix_drv.h:163
@ smix_mixer_gain_decrease_10db
Definition: hpm_smix_drv.h:144
@ smix_mixer_gain_decrease_8db
Definition: hpm_smix_drv.h:146
@ smix_mixer_gain_increase_5db
Definition: hpm_smix_drv.h:159
@ smix_mixer_gain_decrease_9db
Definition: hpm_smix_drv.h:145
@ smix_mixer_gain_increase_3db
Definition: hpm_smix_drv.h:157
@ smix_mixer_gain_decrease_19db
Definition: hpm_smix_drv.h:135
@ smix_mixer_gain_decrease_7db
Definition: hpm_smix_drv.h:147
@ smix_mixer_gain_increase_16db
Definition: hpm_smix_drv.h:170
@ smix_mixer_gain_increase_13db
Definition: hpm_smix_drv.h:167
@ smix_mixer_gain_decrease_2db
Definition: hpm_smix_drv.h:152
@ smix_mixer_gain_decrease_13db
Definition: hpm_smix_drv.h:141
@ smix_mixer_gain_decrease_4db
Definition: hpm_smix_drv.h:150
@ smix_mixer_gain_increase_19db
Definition: hpm_smix_drv.h:173
@ smix_mixer_gain_increase_10db
Definition: hpm_smix_drv.h:164
@ smix_mixer_gain_decrease_17db
Definition: hpm_smix_drv.h:137
@ smix_mixer_gain_increase_20db
Definition: hpm_smix_drv.h:174
@ smix_mixer_gain_decrease_14db
Definition: hpm_smix_drv.h:140
@ smix_mixer_gain_decrease_5db
Definition: hpm_smix_drv.h:149
@ smix_mixer_gain_decrease_1db
Definition: hpm_smix_drv.h:153
@ smix_mixer_gain_increase_2db
Definition: hpm_smix_drv.h:156
@ smix_mixer_gain_0db
Definition: hpm_smix_drv.h:154
@ smix_mixer_gain_increase_6db
Definition: hpm_smix_drv.h:160
@ smix_mixer_gain_increase_17db
Definition: hpm_smix_drv.h:171
@ smix_mixer_gain_decrease_16db
Definition: hpm_smix_drv.h:138
@ smix_mixer_gain_increase_4db
Definition: hpm_smix_drv.h:158
@ smix_mixer_gain_increase_1db
Definition: hpm_smix_drv.h:155
@ smix_mixer_gain_increase_14db
Definition: hpm_smix_drv.h:168
@ smix_dma_transfer_burst_32t
Definition: hpm_smix_drv.h:29
@ smix_dma_transfer_burst_2t
Definition: hpm_smix_drv.h:25
@ smix_dma_transfer_burst_1t
Definition: hpm_smix_drv.h:24
@ smix_dma_transfer_burst_4t
Definition: hpm_smix_drv.h:26
@ smix_dma_transfer_burst_64t
Definition: hpm_smix_drv.h:30
@ smix_dma_transfer_burst_16t
Definition: hpm_smix_drv.h:28
@ smix_dma_transfer_burst_128t
Definition: hpm_smix_drv.h:31
@ smix_dma_transfer_burst_8t
Definition: hpm_smix_drv.h:27
#define SMIX_SOURCE_CH_GAIN_VAL_SET(x)
Definition: hpm_smix_regs.h:852
#define SMIX_DATA_ST_DST_UNDL_GET(x)
Definition: hpm_smix_regs.h:416
#define SMIX_DST_CH_GAIN_VAL_SET(x)
Definition: hpm_smix_regs.h:577
#define SMIX_DMAC_TC_ST_CH_GET(x)
Definition: hpm_smix_regs.h:88
#define SMIX_DATA_ST_DST_DA_GET(x)
Definition: hpm_smix_regs.h:407
#define SMIX_DATA_ST_SRC_DN_GET(x)
Definition: hpm_smix_regs.h:425
#define SMIX_CALSAT_ST_DST_GET(x)
Definition: hpm_smix_regs.h:366
#define SMIX_CALSAT_ST_SRC_GET(x)
Definition: hpm_smix_regs.h:376
#define SMIX_DMAC_ABRT_ST_CH_GET(x)
Definition: hpm_smix_regs.h:99
#define SMIX_DMAC_ERR_ST_CH_GET(x)
Definition: hpm_smix_regs.h:114
#define SMIX_DST_CH_CTRL_DST_EN_MASK
Definition: hpm_smix_regs.h:544
Definition: hpm_smix_regs.h:12
struct SMIX_Type::@611 SOURCE_CH[14]
struct SMIX_Type::@610 DST_CH[2]
__RW uint32_t GAIN
Definition: hpm_smix_regs.h:40
__RW uint32_t DMAC_TC_ST
Definition: hpm_smix_regs.h:14
__RW uint32_t SOURCE_ACT
Definition: hpm_smix_regs.h:48
__RW uint32_t SOURCE_FADEIN_CTRL
Definition: hpm_smix_regs.h:50
__RW uint32_t DMAC_ABRT_ST
Definition: hpm_smix_regs.h:15
__RW uint32_t SOURCE_MFADEOUT_CTRL
Definition: hpm_smix_regs.h:52
__RW uint32_t CTRL
Definition: hpm_smix_regs.h:39
__RW uint32_t SOURCE_EN
Definition: hpm_smix_regs.h:47
__RW uint32_t DMAC_ERR_ST
Definition: hpm_smix_regs.h:16
__RW uint32_t SOURCE_DEACT
Definition: hpm_smix_regs.h:49
__R uint32_t DATA_ST
Definition: hpm_smix_regs.h:36
__RW uint32_t CALSAT_ST
Definition: hpm_smix_regs.h:34
Definition: hpm_smix_drv.h:110
uint8_t src_mode
Definition: hpm_smix_drv.h:115
uint8_t dst_req_sel
Definition: hpm_smix_drv.h:114
bool error_int_en
Definition: hpm_smix_drv.h:122
uint32_t dst_addr
Definition: hpm_smix_drv.h:125
uint32_t linked_ptr
Definition: hpm_smix_drv.h:126
uint8_t dst_mode
Definition: hpm_smix_drv.h:116
uint8_t dst_addr_ctrl
Definition: hpm_smix_drv.h:120
uint8_t src_width
Definition: hpm_smix_drv.h:117
bool abort_int_en
Definition: hpm_smix_drv.h:121
uint8_t src_req_sel
Definition: hpm_smix_drv.h:113
bool complete_int_en
Definition: hpm_smix_drv.h:123
uint32_t src_addr
Definition: hpm_smix_drv.h:124
uint8_t src_addr_ctrl
Definition: hpm_smix_drv.h:119
uint8_t src_burst_size
Definition: hpm_smix_drv.h:112
uint8_t priority
Definition: hpm_smix_drv.h:111
uint32_t trans_bytes
Definition: hpm_smix_drv.h:127
uint8_t dst_width
Definition: hpm_smix_drv.h:118
Definition: hpm_smix_drv.h:98
uint32_t dst_addr
Definition: hpm_smix_drv.h:103
uint32_t reserved1
Definition: hpm_smix_drv.h:104
uint32_t src_addr
Definition: hpm_smix_drv.h:101
uint32_t ctrl
Definition: hpm_smix_drv.h:99
uint32_t trans_size
Definition: hpm_smix_drv.h:100
uint32_t reserved2
Definition: hpm_smix_drv.h:106
uint32_t reserved0
Definition: hpm_smix_drv.h:102
uint32_t linked_ptr
Definition: hpm_smix_drv.h:105
Definition: hpm_smix_drv.h:189
bool channel_en
Definition: hpm_smix_drv.h:201
bool active_en
Definition: hpm_smix_drv.h:197
bool underflow_int_en
Definition: hpm_smix_drv.h:190
bool fadeout_done_int_en
Definition: hpm_smix_drv.h:195
uint16_t gain
Definition: hpm_smix_drv.h:204
bool deactivate_en
Definition: hpm_smix_drv.h:196
bool calsat_int_en
Definition: hpm_smix_drv.h:192
uint32_t fadein_delta
Definition: hpm_smix_drv.h:206
bool fadein_en
Definition: hpm_smix_drv.h:200
uint8_t fifo_thr
Definition: hpm_smix_drv.h:191
bool auto_deactivate_en
Definition: hpm_smix_drv.h:194
uint32_t fadeout_delta
Definition: hpm_smix_drv.h:207
uint8_t src_ch_mask
Definition: hpm_smix_drv.h:208
uint32_t length
Definition: hpm_smix_drv.h:205
bool fadeout_now_en
Definition: hpm_smix_drv.h:198
bool fadeout_auto_en
Definition: hpm_smix_drv.h:199
bool da_int_en
Definition: hpm_smix_drv.h:193
bool mixer_en
Definition: hpm_smix_drv.h:202
Definition: hpm_smix_drv.h:212
bool dn_int_en
Definition: hpm_smix_drv.h:215
uint32_t fadein_delta
Definition: hpm_smix_drv.h:221
uint8_t convert_rate
Definition: hpm_smix_drv.h:218
uint32_t fadeout_delta
Definition: hpm_smix_drv.h:222
bool fadeout_int_en
Definition: hpm_smix_drv.h:217
bool auto_deactivate_en
Definition: hpm_smix_drv.h:216
bool calsat_int_en
Definition: hpm_smix_drv.h:214
uint8_t fifo_thr
Definition: hpm_smix_drv.h:213
uint16_t gain
Definition: hpm_smix_drv.h:220
uint32_t length
Definition: hpm_smix_drv.h:223