38 #include "hal_platform.h" 40 #ifdef HAL_I2S_MODULE_ENABLED 41 #ifdef HAL_I2S_SUPPORT_VFIFO 614 #endif // #ifdef HAL_I2S_SUPPORT_VFIFO 661 #ifdef HAL_I2S_EXTENDED 664 hal_i2s_lr_swap_t lr_swap;
665 hal_i2s_word_select_inverse_t word_select_inverse;
675 #ifdef HAL_I2S_FEATURE_TDM 676 hal_i2s_tdm_channel_t tdm_channel;
678 #ifdef HAL_I2S_EXTENDED 679 hal_i2s_frame_sync_width_t frame_sync_width;
680 hal_i2s_sample_width_t sample_width;
681 hal_i2s_tx_mode_t tx_mode;
683 hal_i2s_rx_down_rate_t rx_down_rate;
697 #ifdef HAL_I2S_SUPPORT_VFIFO 715 #ifdef HAL_I2S_SUPPORT_VFIFO 749 #ifdef HAL_I2S_FEATURE_MULTI_I2S 772 #ifdef HAL_I2S_FEATURE_MULTI_I2S 796 #ifdef HAL_I2S_FEATURE_MULTI_I2S 820 #ifdef HAL_I2S_FEATURE_MULTI_I2S 833 #ifdef HAL_I2S_SUPPORT_VFIFO 842 #ifdef HAL_I2S_FEATURE_MULTI_I2S 862 #ifdef HAL_I2S_FEATURE_MULTI_I2S 908 #ifdef HAL_I2S_SUPPORT_VFIFO 918 #ifdef HAL_I2S_FEATURE_MULTI_I2S 927 hal_i2s_status_t hal_i2s_enable_tx_dma_interrupt_ex(hal_i2s_port_t i2s_port);
938 #ifdef HAL_I2S_FEATURE_MULTI_I2S 946 hal_i2s_status_t hal_i2s_disable_tx_dma_interrupt_ex(hal_i2s_port_t i2s_port);
958 #ifdef HAL_I2S_FEATURE_MULTI_I2S 967 hal_i2s_status_t hal_i2s_enable_rx_dma_interrupt_ex(hal_i2s_port_t i2s_port);
978 #ifdef HAL_I2S_FEATURE_MULTI_I2S 986 hal_i2s_status_t hal_i2s_disable_rx_dma_interrupt_ex(hal_i2s_port_t i2s_port);
1004 hal_i2s_status_t hal_i2s_setup_tx_vfifo(uint32_t *buffer, uint32_t threshold, uint32_t buffer_length);
1005 #ifdef HAL_I2S_FEATURE_MULTI_I2S 1021 hal_i2s_status_t hal_i2s_setup_tx_vfifo_ex(hal_i2s_port_t i2s_port, uint32_t *buffer, uint32_t threshold, uint32_t buffer_length);
1033 #ifdef HAL_I2S_FEATURE_MULTI_I2S 1060 hal_i2s_status_t hal_i2s_setup_rx_vfifo(uint32_t *buffer, uint32_t threshold, uint32_t buffer_length);
1061 #ifdef HAL_I2S_FEATURE_MULTI_I2S 1077 hal_i2s_status_t hal_i2s_setup_rx_vfifo_ex(hal_i2s_port_t i2s_port, uint32_t *buffer, uint32_t threshold, uint32_t buffer_length);
1089 #ifdef HAL_I2S_FEATURE_MULTI_I2S 1104 #ifdef HAL_I2S_SUPPORT_VFIFO 1114 #ifdef HAL_I2S_FEATURE_MULTI_I2S 1139 #ifdef HAL_I2S_SUPPORT_VFIFO 1149 #ifdef HAL_I2S_FEATURE_MULTI_I2S 1174 #ifdef HAL_I2S_SUPPORT_VFIFO 1182 #ifdef HAL_I2S_FEATURE_MULTI_I2S 1210 #ifdef HAL_I2S_FEATURE_MULTI_I2S 1222 #ifdef HAL_I2S_SUPPORT_VFIFO 1235 #ifdef HAL_I2S_FEATURE_MULTI_I2S 1246 hal_i2s_status_t hal_i2s_tx_write_ex(hal_i2s_port_t i2s_port, uint32_t data);
1264 #ifdef HAL_I2S_SUPPORT_VFIFO 1275 #ifdef HAL_I2S_FEATURE_MULTI_I2S 1285 hal_i2s_status_t hal_i2s_get_tx_sample_count_ex(hal_i2s_port_t i2s_port, uint32_t *sample_count);
1300 #ifdef HAL_I2S_SUPPORT_VFIFO 1308 #ifdef HAL_I2S_FEATURE_MULTI_I2S 1337 #ifdef HAL_I2S_FEATURE_MULTI_I2S 1349 #ifdef HAL_I2S_SUPPORT_VFIFO 1361 #ifdef HAL_I2S_FEATURE_MULTI_I2S 1370 hal_i2s_status_t hal_i2s_rx_read_ex(hal_i2s_port_t i2s_port, uint32_t *data);
1388 #ifdef HAL_I2S_SUPPORT_VFIFO 1399 #ifdef HAL_I2S_FEATURE_MULTI_I2S 1409 hal_i2s_status_t hal_i2s_get_rx_sample_count_ex(hal_i2s_port_t i2s_port, uint32_t *sample_count);
hal_i2s_sample_rate_t
I2S sampling rates.
Definition: hal_platform.h:518
hal_i2s_status_t hal_i2s_init(hal_i2s_initial_type_t i2s_initial_type)
This function initializes the I2S hardware type.
hal_i2s_status_t hal_i2s_get_rx_sample_count(uint32_t *sample_count)
This function queries the available data for an input.
hal_i2s_channel_number_t channel_number
Channel number of the I2S link.
Definition: hal_i2s.h:660
An error occurred during the function call.
Definition: hal_i2s.h:629
hal_i2s_status_t hal_i2s_rx_read(void *buffer, uint32_t sample_count)
This function receives data from the I2S input link.
Two channels.
Definition: hal_i2s.h:644
Clock source fed to an external device.
Definition: hal_i2s.h:636
Clock source comes from an external device.
Definition: hal_i2s.h:637
hal_i2s_status_t hal_i2s_set_memory(uint8_t *memory)
This function submits the allocated memory to the I2S driver.
hal_i2s_channel_number_t
This enum defines the I2S channel number.
Definition: hal_i2s.h:642
hal_i2s_clock_mode_t
This enum defines the I2S clock mode.
Definition: hal_i2s.h:635
hal_i2s_status_t hal_i2s_register_tx_callback(hal_i2s_tx_callback_t tx_callback, void *user_data)
This function registers the callback function for output data.
hal_i2s_link_config_t i2s_in
I2S input link configuration.
Definition: hal_i2s.h:672
hal_i2s_event_t
I2S event.
Definition: hal_platform.h:507
hal_i2s_status_t hal_i2s_enable_rx(void)
This function enables the I2S input link.
hal_i2s_status_t hal_i2s_get_memory_pointer(uint8_t **memory_pointer)
This function receives the pointer to the memory buffer.
hal_i2s_clock_mode_t clock_mode
I2S clock source.
Definition: hal_i2s.h:674
hal_i2s_status_t hal_i2s_get_tx_sample_count(uint32_t *sample_count)
This function queries the available free space for an output.
hal_i2s_link_config_t i2s_out
I2S output link configuration.
Definition: hal_i2s.h:673
hal_i2s_status_t hal_i2s_register_rx_callback(hal_i2s_rx_callback_t rx_callback, void *user_data)
This function registers the callback function for input data.
No error occurred during the function call.
Definition: hal_i2s.h:630
hal_i2s_status_t hal_i2s_enable_tx(void)
This function enables the I2S output link.
hal_i2s_status_t hal_i2s_disable_tx(void)
This function disables the I2S output link.
hal_i2s_status_t
This enum defines the I2S status.
Definition: hal_i2s.h:627
hal_i2s_sample_rate_t sample_rate
Sampling rate of the I2S link.
Definition: hal_i2s.h:659
hal_i2s_status_t hal_i2s_get_config(hal_i2s_config_t *config)
This function queries the I2S configuration details.
hal_i2s_status_t hal_i2s_set_config(const hal_i2s_config_t *config)
This function sets the I2S configuration details.
hal_i2s_status_t hal_i2s_get_memory_size(uint32_t *memory_size)
This function queries the size of the required memory to be allocated for an internal use in the I2S ...
A wrong parameter is given.
Definition: hal_i2s.h:628
void(* hal_i2s_rx_callback_t)(hal_i2s_event_t event, void *user_data)
This function defines the I2S RX callback function prototype.
Definition: hal_i2s.h:712
void(* hal_i2s_tx_callback_t)(hal_i2s_event_t event, void *user_data)
This function defines the I2S TX callback function prototype.
Definition: hal_i2s.h:730
I2S configure structure.
Definition: hal_i2s.h:671
hal_i2s_status_t hal_i2s_deinit(void)
This function deinitializes the I2S hardware.
I2S link structure.
Definition: hal_i2s.h:658
hal_i2s_status_t hal_i2s_disable_rx(void)
This function disables the I2S input link.
A single channel.
Definition: hal_i2s.h:643
hal_i2s_status_t hal_i2s_tx_write(const void *buffer, uint32_t sample_count)
This function transmits data to the I2S output link.
hal_i2s_initial_type_t
This enum defines initial type of the I2S.
Definition: hal_platform.h:498