luat_i2s.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #ifndef LUAT_I2S_H
  2. #define LUAT_I2S_H
  3. typedef struct luat_i2s_conf
  4. {
  5. uint8_t id;
  6. uint8_t mode;
  7. uint32_t sample_rate;
  8. uint8_t bits_per_sample;
  9. uint8_t channel_format;
  10. uint8_t communication_format;
  11. uint32_t mclk;
  12. //uint8_t intr_alloc_flags;
  13. // uint8_t dma_buf_count;
  14. // uint8_t dma_buf_len;
  15. // uint8_t use_apll;
  16. // uint8_t tx_desc_auto_clear;
  17. }luat_i2s_conf_t;
  18. int luat_i2s_setup(luat_i2s_conf_t *conf);
  19. int luat_i2s_send(uint8_t id, char* buff, size_t len);
  20. int luat_i2s_recv(uint8_t id, char* buff, size_t len);
  21. int luat_i2s_close(uint8_t id);
  22. int32_t luat_i2s_rx_cb(void *pdata, void *param);
  23. int luat_i2s_tx_stat(uint8_t id, size_t *buffsize, size_t* remain);
  24. //csdk专用
  25. void luat_i2s_init(void);
  26. int luat_i2s_start(uint8_t bus_id, uint8_t is_play, uint32_t sample, uint8_t channel_num);
  27. void luat_i2s_base_setup(uint8_t bus_id, uint8_t mode, uint8_t frame_size);
  28. void luat_i2s_no_block_tx(uint8_t bus_id, uint8_t* address, uint32_t byte_len, void * cb, void *param);
  29. void luat_i2s_no_block_rx(uint8_t bus_id, uint32_t byte_len, void *cb, void *param);
  30. void luat_i2s_tx_stop(uint8_t bus_id);
  31. void luat_i2s_rx_stop(uint8_t bus_id);
  32. void luat_i2s_deinit(uint8_t bus_id);
  33. void luat_i2s_pause(uint8_t bus_id);
  34. #endif