Lines Matching refs:i2s_dev

130 static FError FI2sRxInit(struct phytium_i2s_device *i2s_dev, u32 word_length)  in FI2sRxInit()  argument
134 memset(&i2s_dev->i2s_ctrl, 0, sizeof(FI2s)); in FI2sRxInit()
135 memset(&i2s_dev->i2s_ctrl, 0, sizeof(FI2sConfig)); in FI2sRxInit()
136 i2s_dev->i2s_ctrl.data_config.word_length = word_length; in FI2sRxInit()
137 i2s_dev->i2s_config = *FI2sLookupConfig(i2s_ctrl_id); in FI2sRxInit()
139 ret = FI2sCfgInitialize(&i2s_dev->i2s_ctrl, &i2s_dev->i2s_config); in FI2sRxInit()
146 FI2sClkOutDiv(&i2s_dev->i2s_ctrl, i2s_dev->config.samplerate); in FI2sRxInit()
147 FI2sTxRxEnable(&i2s_dev->i2s_ctrl, TRUE); /* 模块使能 */ in FI2sRxInit()
151 static FError FI2sRxDdmaInit(struct phytium_i2s_device *i2s_dev) in FI2sRxDdmaInit() argument
154 i2s_dev->ddmac_config = *FDdmaLookupConfig(ddma_ctrl_id); in FI2sRxDdmaInit()
156 ret = FDdmaCfgInitialize(&i2s_dev->ddmac, &i2s_dev->ddmac_config); in FI2sRxDdmaInit()
166 static FError FI2sDdmaDeviceRX(struct phytium_i2s_device *i2s_dev, u32 work_mode, const void *src, … in FI2sDdmaDeviceRX() argument
175 FDdmaClearChanIrq(i2s_dev->ddmac_config.base_addr, chan, i2s_dev->ddmac_config.caps); in FI2sDdmaDeviceRX()
206 i2s_dev->rx_config.slave_id = 0U, in FI2sDdmaDeviceRX()
207 i2s_dev->rx_config.req_mode = AUDIO_PCM_STREAM_CAPTURE; in FI2sDdmaDeviceRX()
208 i2s_dev->rx_config.ddr_addr = (uintptr)src; in FI2sDdmaDeviceRX()
209 i2s_dev->rx_config.dev_addr = i2s_dev->i2s_config.base_addr + FI2S_RXDMA ; in FI2sDdmaDeviceRX()
210 i2s_dev->rx_config.trans_len = total_bytes; in FI2sDdmaDeviceRX()
211 i2s_dev->rx_config.timeout = 0xffff, in FI2sDdmaDeviceRX()
212 i2s_dev->rx_config.first_desc_addr = (uintptr)bdl_desc_list; in FI2sDdmaDeviceRX()
213 i2s_dev->rx_config.valid_desc_num = bdl_num; in FI2sDdmaDeviceRX()
215 ret = FDdmaChanBdlConfigure(&i2s_dev->ddmac, i2s_dev->rx_channel, &i2s_dev->rx_config); in FI2sDdmaDeviceRX()
237 struct phytium_i2s_device *i2s_dev; in i2s_getcaps() local
240 i2s_dev = (struct phytium_i2s_device *)audio->parent.user_data; in i2s_getcaps()
265 caps->udata.config.samplerate = i2s_dev->config.samplerate; in i2s_getcaps()
266 caps->udata.config.channels = i2s_dev->config.channels; in i2s_getcaps()
267 caps->udata.config.samplebits = i2s_dev->config.samplebits; in i2s_getcaps()
271 caps->udata.config.samplerate = i2s_dev->config.samplerate; in i2s_getcaps()
275 caps->udata.config.channels = i2s_dev->config.channels; in i2s_getcaps()
279 caps->udata.config.samplebits = i2s_dev->config.samplebits; in i2s_getcaps()
299 caps->udata.value = i2s_dev->volume; in i2s_getcaps()
321 struct phytium_i2s_device *i2s_dev; in i2s_configure() local
325 i2s_dev = (struct phytium_i2s_device *)audio->parent.user_data; in i2s_configure()
336 i2s_dev->config.channels = config.channels; in i2s_configure()
337 i2s_dev->config.samplebits = config.samplebits; in i2s_configure()
338 i2s_dev->config.samplerate = config.samplerate; in i2s_configure()
357 struct phytium_i2s_device *i2s_dev; in i2s_init() local
359 i2s_dev = (struct phytium_i2s_device *)audio->parent.user_data; in i2s_init()
361 u32 word_length = i2s_dev->config.samplebits; /* 16-bits word length */ in i2s_init()
369 ret = FI2sRxDdmaInit(i2s_dev); in i2s_init()
375 ret = FI2sRxInit(i2s_dev, word_length); in i2s_init()
382 FDdmaSetupInterrupt(&i2s_dev->ddmac); in i2s_init()
384 …maRegisterChanEvtHandler(&i2s_dev->ddmac, i2s_dev->rx_channel, FDDMA_CHAN_EVT_REQ_DONE, dma_transf… in i2s_init()
391 struct phytium_i2s_device *i2s_dev; in i2s_start() local
393 i2s_dev = (struct phytium_i2s_device *)audio->parent.user_data; in i2s_start()
401 …FI2sDdmaDeviceRX(i2s_dev, AUDIO_PCM_STREAM_CAPTURE, &i2s_dev->rx_fifo[0], TX_RX_BUF_LEN, PER_BUFFE… in i2s_start()
402 FDdmaChanActive(&i2s_dev->ddmac, i2s_dev->rx_channel); in i2s_start()
405 FDdmaStart(&i2s_dev->ddmac); in i2s_start()
412 struct phytium_i2s_device *i2s_dev; in i2s_stop() local
414 i2s_dev = (struct phytium_i2s_device *)audio->parent.user_data; in i2s_stop()
430 static int i2s_controller_init(struct phytium_i2s_device *i2s_dev) in i2s_controller_init() argument
432 struct rt_audio_device *audio = &i2s_dev->audio; in i2s_controller_init()
434 i2s_dev->rx_fifo = rt_calloc(1, TX_RX_BUF_LEN); in i2s_controller_init()
435 if (i2s_dev->rx_fifo == RT_NULL) in i2s_controller_init()
440 i2s_dev->audio.ops = &i2s_ops; in i2s_controller_init()
441 int ret = rt_audio_register(audio, i2s_dev->name, RT_DEVICE_FLAG_RDONLY, (void *)i2s_dev); in i2s_controller_init()