forked from PAWPAW-Mirror/lib_xua
Fixed issue with I2S xcore-slave mode on L1/SU1 where the master clock-block does not have a source causing bad feedback
This commit is contained in:
@@ -87,8 +87,14 @@ on stdcore[0] : buffered in port:32 p_i2s_adc[I2S_WIRES_ADC] =
|
||||
#define AUDIO_IO_CORE 0
|
||||
#endif
|
||||
|
||||
#if CODEC_SLAVE == 1
|
||||
on stdcore[AUDIO_IO_CORE] : buffered out port:32 p_lrclk = PORT_I2S_LRCLK;
|
||||
on stdcore[AUDIO_IO_CORE] : buffered out port:32 p_bclk = PORT_I2S_BCLK;
|
||||
#else
|
||||
on stdcore[AUDIO_IO_CORE] : in port p_lrclk = PORT_I2S_LRCLK;
|
||||
on stdcore[AUDIO_IO_CORE] : in port p_bclk = PORT_I2S_BCLK;
|
||||
#endif
|
||||
|
||||
on stdcore[AUDIO_IO_CORE] : port p_mclk = PORT_MCLK_IN;
|
||||
on stdcore[0] : in port p_for_mclk_count = PORT_MCLK_COUNT;
|
||||
|
||||
|
||||
@@ -110,11 +110,16 @@ void ConfigAudioPorts(unsigned int divide)
|
||||
/* Pause until output completes */
|
||||
sync(p_bclk);
|
||||
|
||||
#else
|
||||
/* Stop bit and master clock blocks and clear port buffers */
|
||||
#else /* CODEC_SLAVE = 1 */
|
||||
|
||||
/* Stop bit and master clock blocks */
|
||||
stop_clock(clk_audio_bclk);
|
||||
stop_clock(clk_audio_mclk);
|
||||
|
||||
/* Clock master clock-block from master-clock port -
|
||||
* though not directly used in I2S slave mode it is required for FB */
|
||||
configure_clock_src(clk_audio_mclk, p_mclk);
|
||||
|
||||
/* Clock bclk clock-block from bclk pin */
|
||||
configure_clock_src(clk_audio_bclk, p_bclk);
|
||||
|
||||
@@ -133,6 +138,7 @@ void ConfigAudioPorts(unsigned int divide)
|
||||
configure_in_port_no_ready(p_lrclk, clk_audio_bclk);
|
||||
|
||||
start_clock(clk_audio_bclk);
|
||||
start_clock(clk_audio_mclk);
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user