Files
TAIXIN/sdk/include/dev/i2s/hgi2s_v0.h

50 lines
966 B
C

#ifndef _HGI2S_V0_H_
#define _HGI2S_V0_H_
#include "hal/i2s.h"
#ifdef __cplusplus
extern "C" {
#endif
/** @brief I2S operating handle structure
* @{
*/
struct hgi2s_v0 {
struct i2s_device dev ;
uint32 hw ;
i2s_irq_hdl irq_hdl ;
uint32 irq_data ;
uint16 irq_num ;
uint16 opened :1,
dsleep :1,
duplex_en:1;
#ifdef CONFIG_SLEEP
struct {
uint32 con;
uint32 bit_set;
uint32 baud;
uint32 ws_con;
uint32 dma_stadr;
uint32 dma_len;
}bp_regs;
uint32 bp_irq_flags;
i2s_irq_hdl bp_irq_hdl;
uint32 bp_irq_data;
os_mutex_t bp_suspend_lock;
os_mutex_t bp_resume_lock;
#endif
};
int32 hgi2s_v0_attach(uint32 dev_id, struct hgi2s_v0 *i2s);
#ifdef __cplusplus
}
#endif
#endif /* _HGI2S_V0_H_ */