WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
hal_sio.h
浏览该文件的文档.
1
9#ifndef HAL_SIO_H
10#define HAL_SIO_H
11
12#include <stdint.h>
13#include <stdbool.h>
14#include "common_def.h"
15#include "errcode.h"
16#include "sio_porting.h"
17
18#ifdef __cplusplus
19#if __cplusplus
20extern "C" {
21#endif /* __cplusplus */
22#endif /* __cplusplus */
23
43
58
80
95
109
124
139
161
179
187typedef struct hal_sio_tx_data {
188 uint32_t *left_buff;
190 uint32_t *right_buff;
192 uint32_t length;
195
211
237
238#if defined(CONFIG_I2S_SUPPORT_DMA)
239
247typedef struct hal_i2s_dma_attr {
248 bool tx_dma_enable;
252 uint8_t tx_int_threshold;
254 bool rx_dma_enable;
258 uint8_t rx_int_threshold;
260} hal_i2s_dma_attr_t;
261
273typedef void (*hal_sio_dma_cfg_t)(sio_bus_t bus, const uintptr_t attr);
274#endif
275
283typedef void (*hal_sio_callback_t)(uint32_t *left_buff, uint32_t *right_buff, uint32_t length);
284
299
309typedef void (*hal_sio_deinit_t)(sio_bus_t bus);
310
322typedef void (*hal_sio_set_config_t)(sio_bus_t bus, const hal_sio_config_t *config);
323
336
348typedef void (*hal_sio_rx_enable_t)(sio_bus_t bus, bool en);
349
364
377
389typedef void (*hal_sio_register_t)(sio_bus_t bus, hal_sio_callback_t callback);
390
400typedef void (*hal_sio_unregister_t)(sio_bus_t bus);
401
417typedef void (*hal_sio_loop_t)(sio_bus_t bus, bool en);
418
433
469
482
491
508
523
536
537#if defined(CONFIG_I2S_SUPPORT_DMA)
549void hal_sio_set_crg_clock_enable(sio_bus_t bus, bool enable);
550
562void hal_sio_set_tx_enable(sio_bus_t bus, uint32_t val);
563
575void hal_sio_set_rx_enable(sio_bus_t bus, uint32_t val);
576#endif
581#ifdef __cplusplus
582#if __cplusplus
583}
584#endif /* __cplusplus */
585#endif /* __cplusplus */
586
587#endif
sio_bus_t
SIO(I2S/PCM) Bus.
Definition platform_core.h:254
uint32_t errcode_t
Definition of error code.
Definition errcode.h:30
void(* hal_sio_set_config_t)(sio_bus_t bus, const hal_sio_config_t *config)
HAL层SIO配置接口。
Definition hal_sio.h:322
void(* hal_sio_loop_t)(sio_bus_t bus, bool en)
HAL层SIO自测模式接口。
Definition hal_sio.h:417
struct hal_sio_config hal_sio_config_t
SIO配置参数定义。
enum hal_sio_driver_mode hal_sio_driver_mode_t
SIO设备模式。
hal_sio_driver_mode
SIO设备模式。
Definition hal_sio.h:37
void(* hal_sio_get_data_t)(sio_bus_t bus, hal_sio_rx_data_t *data)
HAL层SIO获取数据接口。
Definition hal_sio.h:376
void(* hal_sio_deinit_t)(sio_bus_t bus)
HAL层SIO的去初始化接口。
Definition hal_sio.h:309
errcode_t hal_sio_unregister_funcs(sio_bus_t bus)
从g_hal_sios_funcs注销 hal_sio_funcs_t 。
Definition hal_sio.c:39
enum hal_sio_clk_edge hal_sio_clk_edge_t
SIO 时钟边沿。
hal_sio_data_width
SIO 数据位宽。
Definition hal_sio.h:147
enum hal_sio_iming_mode hal_sio_timing_mode_t
SIO时序模式。
errcode_t hal_sio_register_funcs(sio_bus_t bus, hal_sio_funcs_t *funcs)
注册 hal_sio_funcs_t 到 g_hal_sios_funcs。
Definition hal_sio.c:29
errcode_t(* hal_sio_init_t)(sio_bus_t bus)
HAL层SIO的初始化接口。
Definition hal_sio.h:298
void(* hal_sio_register_t)(sio_bus_t bus, hal_sio_callback_t callback)
HAL层SIO注册回调函数接口。
Definition hal_sio.h:389
hal_sio_funcs_t * hal_sio_get_funcs(sio_bus_t bus)
获取Driver层sio和HAL层sio的接口实例。参考 hal_sio_funcs_t
Definition hal_sio.c:49
void(* hal_sio_write_t)(sio_bus_t bus, hal_sio_tx_data_t *data, hal_sio_mode_t mode)
HAL层SIO的写接口。
Definition hal_sio.h:363
hal_sio_channel_number
SIO 传输通道数。
Definition hal_sio.h:169
void(* hal_sio_rx_enable_t)(sio_bus_t bus, bool en)
HAL层SIO rx使能接口。
Definition hal_sio.h:348
void(* hal_sio_unregister_t)(sio_bus_t bus)
HAL层SIO去注册回调函数接口。
Definition hal_sio.h:400
enum hal_sio_mode hal_sio_mode_t
SIO 模式。
struct hal_sio_tx_data hal_sio_tx_data_t
SIO tx传输结构体。
enum hal_sio_data_width hal_sio_data_width_t
SIO 数据位宽。
void(* hal_sio_loop_trans_t)(sio_bus_t bus, hal_sio_tx_data_t *data, hal_sio_mode_t mode)
HAL层SIO自测接口。
Definition hal_sio.h:432
enum hal_sio_channel_number hal_sio_channel_number_t
SIO 传输通道数。
void hal_sio_regs_deinit(sio_bus_t bus)
去初始化寄存器基地址列表。
Definition hal_sio.c:24
hal_sio_transfer_mode_t
SIO 传输路径模式。
Definition hal_sio.h:103
hal_sio_interrupt
SIO 中断类型。
Definition hal_sio.h:66
hal_sio_mode
SIO 模式。
Definition hal_sio.h:51
errcode_t(* hal_sio_get_config_t)(sio_bus_t bus, hal_sio_config_t *config)
HAL层SIO获取配置接口。
Definition hal_sio.h:335
hal_sio_voice_channel
SIO 声道。
Definition hal_sio.h:132
enum hal_sio_interrupt hal_sio_interrupt_t
SIO 中断类型。
struct hal_sio_funcs hal_sio_funcs_t
Driver层SIO和HAL层SIO的接口。
enum hal_sio_voice_channel hal_sio_voice_channel_t
SIO 声道。
errcode_t hal_sio_regs_init(sio_bus_t bus)
初始化寄存器基地址列表。
Definition hal_sio.c:15
hal_sio_clk_edge
SIO 时钟边沿。
Definition hal_sio.h:117
hal_sio_iming_mode
SIO时序模式。
Definition hal_sio.h:88
struct hal_sio_received_data hal_sio_rx_data_t
SIO 接收数据。
void(* hal_sio_callback_t)(uint32_t *left_buff, uint32_t *right_buff, uint32_t length)
HAL层SIO回调函数。
Definition hal_sio.h:283
@ SLAVE
Definition hal_sio.h:38
@ MASTER
Definition hal_sio.h:40
@ THIRTY_TWO_BIT
Definition hal_sio.h:158
@ TWENTY_FOUR_BIT
Definition hal_sio.h:156
@ TWENTY_BIT
Definition hal_sio.h:154
@ SIXTEEN_BIT
Definition hal_sio.h:150
@ EIGHTEEN_BIT
Definition hal_sio.h:152
@ RESERVED
Definition hal_sio.h:148
@ SIXTEEN_CH
Definition hal_sio.h:176
@ TWO_CH
Definition hal_sio.h:170
@ EIGHT_CH
Definition hal_sio.h:174
@ FOUR_CH
Definition hal_sio.h:172
@ STD_MODE
Definition hal_sio.h:104
@ MULTICHANNEL_MODE
Definition hal_sio.h:106
@ TX_RIGHT_FIFO_UNDER
Definition hal_sio.h:75
@ TX_LEFT_FIFO_UNDER
Definition hal_sio.h:77
@ RX_LEFT_FIFO_OVER
Definition hal_sio.h:73
@ RX_RIGHT_FIFO_OVER
Definition hal_sio.h:71
@ TX_INTR
Definition hal_sio.h:69
@ RX_INTR
Definition hal_sio.h:67
@ NONE_SIO_MODE
Definition hal_sio.h:56
@ PCM_MODE
Definition hal_sio.h:54
@ I2S_MODE
Definition hal_sio.h:52
@ NONE_MODE
Definition hal_sio.h:137
@ SIO_RIGHT
Definition hal_sio.h:135
@ SIO_LEFT
Definition hal_sio.h:133
@ RISING_EDGE
Definition hal_sio.h:120
@ FALLING_EDGE
Definition hal_sio.h:118
@ NONE_EDGE
Definition hal_sio.h:122
@ PCM_UD_MODE
Definition hal_sio.h:91
@ NONE_TIMING_MODE
Definition hal_sio.h:93
@ PCM_STD_MODE
Definition hal_sio.h:89
#define CONFIG_DATA_LEN_MAX
Definition sio_porting.h:59
SIO配置参数定义。
Definition hal_sio.h:219
uint8_t number_of_channels
Definition hal_sio.h:234
hal_sio_driver_mode_t drive_mode
Definition hal_sio.h:220
hal_sio_timing_mode_t timing
Definition hal_sio.h:228
uint8_t div_number
Definition hal_sio.h:232
hal_sio_data_width_t data_width
Definition hal_sio.h:224
hal_sio_transfer_mode_t transfer_mode
Definition hal_sio.h:222
hal_sio_channel_number_t channels_num
Definition hal_sio.h:226
hal_sio_clk_edge_t clk_edge
Definition hal_sio.h:230
Driver层SIO和HAL层SIO的接口。
Definition hal_sio.h:441
hal_sio_write_t write
Definition hal_sio.h:452
hal_sio_get_config_t get_config
Definition hal_sio.h:448
hal_sio_loop_trans_t loop_trans
Definition hal_sio.h:462
hal_sio_init_t init
Definition hal_sio.h:442
hal_sio_set_config_t set_config
Definition hal_sio.h:446
hal_sio_unregister_t unregisterfunc
Definition hal_sio.h:458
hal_sio_rx_enable_t rx_enable
Definition hal_sio.h:450
hal_sio_loop_t loop
Definition hal_sio.h:460
hal_sio_deinit_t deinit
Definition hal_sio.h:444
hal_sio_get_data_t get_data
Definition hal_sio.h:454
hal_sio_register_t registerfunc
Definition hal_sio.h:456
SIO 接收数据。
Definition hal_sio.h:203
uint32_t left_buff[CONFIG_DATA_LEN_MAX]
Definition hal_sio.h:204
uint32_t right_buff[CONFIG_DATA_LEN_MAX]
Definition hal_sio.h:206
uint32_t length
Definition hal_sio.h:208
SIO tx传输结构体。
Definition hal_sio.h:187
uint32_t * right_buff
Definition hal_sio.h:190
uint32_t length
Definition hal_sio.h:192
uint32_t * left_buff
Definition hal_sio.h:188
unsigned int uintptr_t
Definition td_type.h:65
Definition hal_uart_v151_regs_def.h:38