forked from PAWPAW-Mirror/lib_xua
Fixup CODEC_MASTER usage
This commit is contained in:
@@ -438,10 +438,6 @@
|
|||||||
#define CODEC_MASTER (0)
|
#define CODEC_MASTER (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(CODEC_MASTER) && (CODEC_MASTER == 0)
|
|
||||||
#undef CODEC_MASTER
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Vendor String used by the device. This is also pre-pended to various strings used by the design.
|
* @brief Vendor String used by the device. This is also pre-pended to various strings used by the design.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -88,12 +88,12 @@ extern buffered in port:32 p_i2s_adc[I2S_WIRES_ADC];
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* I2S LR/Bit clock I/O */
|
/* I2S LR/Bit clock I/O */
|
||||||
#ifndef CODEC_MASTER
|
#if CODEC_MASTER
|
||||||
extern buffered out port:32 p_lrclk;
|
|
||||||
extern buffered out port:32 p_bclk;
|
|
||||||
#else
|
|
||||||
extern buffered in port:32 p_lrclk;
|
extern buffered in port:32 p_lrclk;
|
||||||
extern buffered in port:32 p_bclk;
|
extern buffered in port:32 p_bclk;
|
||||||
|
#else
|
||||||
|
extern buffered out port:32 p_lrclk;
|
||||||
|
extern buffered out port:32 p_bclk;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
unsigned dsdMode = DSD_MODE_OFF;
|
unsigned dsdMode = DSD_MODE_OFF;
|
||||||
@@ -341,7 +341,7 @@ static inline int DoDsdDopCheck(unsigned &dsdMode, int &dsdCount, unsigned curSa
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifndef CODEC_MASTER
|
#if !CODEC_MASTER
|
||||||
static inline void InitPorts_master(unsigned divide)
|
static inline void InitPorts_master(unsigned divide)
|
||||||
{
|
{
|
||||||
unsigned tmp;
|
unsigned tmp;
|
||||||
@@ -399,7 +399,7 @@ static inline void InitPorts_master(unsigned divide)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CODEC_MASTER
|
#if CODEC_MASTER
|
||||||
static inline void InitPorts_slave(unsigned divide)
|
static inline void InitPorts_slave(unsigned divide)
|
||||||
{
|
{
|
||||||
unsigned tmp;
|
unsigned tmp;
|
||||||
@@ -440,7 +440,7 @@ static inline void InitPorts_slave(unsigned divide)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef CODEC_MASTER
|
#if (CODEC_MASTER == 0)
|
||||||
#pragma unsafe arrays
|
#pragma unsafe arrays
|
||||||
unsigned static deliver_master(chanend ?c_out, chanend ?c_spd_out
|
unsigned static deliver_master(chanend ?c_out, chanend ?c_spd_out
|
||||||
#ifdef ADAT_TX
|
#ifdef ADAT_TX
|
||||||
@@ -581,6 +581,7 @@ unsigned static deliver_master(chanend ?c_out, chanend ?c_spd_out
|
|||||||
asm volatile("in %0, res[%1]" : "=r"(sample) : "r"(p_i2s_adc[index++]));
|
asm volatile("in %0, res[%1]" : "=r"(sample) : "r"(p_i2s_adc[index++]));
|
||||||
sample = bitrev(sample);
|
sample = bitrev(sample);
|
||||||
int chanIndex = ((frameCount-2)&(I2S_CHANS_PER_FRAME-1))+i; // channels 0, 2, 4.. on each line.
|
int chanIndex = ((frameCount-2)&(I2S_CHANS_PER_FRAME-1))+i; // channels 0, 2, 4.. on each line.
|
||||||
|
|
||||||
#if (AUD_TO_USB_RATIO > 1)
|
#if (AUD_TO_USB_RATIO > 1)
|
||||||
if ((AUD_TO_USB_RATIO - 1) == audioToUsbRatioCounter)
|
if ((AUD_TO_USB_RATIO - 1) == audioToUsbRatioCounter)
|
||||||
{
|
{
|
||||||
@@ -809,10 +810,10 @@ unsigned static deliver_master(chanend ?c_out, chanend ?c_spd_out
|
|||||||
#pragma xta endpoint "deliver_return"
|
#pragma xta endpoint "deliver_return"
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif //ndef CODEC_MASTER
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef CODEC_MASTER
|
#if (CODEC_MASTER == 1)
|
||||||
|
|
||||||
/* I2S delivery thread */
|
/* I2S delivery thread */
|
||||||
#pragma unsafe arrays
|
#pragma unsafe arrays
|
||||||
|
|||||||
@@ -114,13 +114,12 @@ on tile[AUDIO_IO_TILE] : buffered in port:32 p_i2s_adc[I2S_WIRES_ADC] =
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if CODEC_MASTER
|
||||||
#ifndef CODEC_MASTER
|
|
||||||
on tile[AUDIO_IO_TILE] : buffered out port:32 p_lrclk = PORT_I2S_LRCLK;
|
|
||||||
on tile[AUDIO_IO_TILE] : buffered out port:32 p_bclk = PORT_I2S_BCLK;
|
|
||||||
#else
|
|
||||||
on tile[AUDIO_IO_TILE] : buffered in port:32 p_lrclk = PORT_I2S_LRCLK;
|
on tile[AUDIO_IO_TILE] : buffered in port:32 p_lrclk = PORT_I2S_LRCLK;
|
||||||
on tile[AUDIO_IO_TILE] : buffered in port:32 p_bclk = PORT_I2S_BCLK;
|
on tile[AUDIO_IO_TILE] : buffered in port:32 p_bclk = PORT_I2S_BCLK;
|
||||||
|
#else
|
||||||
|
on tile[AUDIO_IO_TILE] : buffered out port:32 p_lrclk = PORT_I2S_LRCLK;
|
||||||
|
on tile[AUDIO_IO_TILE] : buffered out port:32 p_bclk = PORT_I2S_BCLK;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Note, declared unsafe as sometimes we want to share this port
|
/* Note, declared unsafe as sometimes we want to share this port
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ void ConfigAudioPorts(
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (I2S_CHANS_DAC != 0) || (I2S_CHANS_ADC != 0)
|
#if (I2S_CHANS_DAC != 0) || (I2S_CHANS_ADC != 0)
|
||||||
#ifndef CODEC_MASTER
|
#if (CODEC_MASTER == 0)
|
||||||
buffered out port:32 ?p_lrclk,
|
buffered out port:32 ?p_lrclk,
|
||||||
buffered out port:32 p_bclk,
|
buffered out port:32 p_bclk,
|
||||||
#else
|
#else
|
||||||
@@ -41,7 +41,7 @@ void ConfigAudioPorts(
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (I2S_CHANS_DAC != 0) || (I2S_CHANS_ADC != 0)
|
#if (I2S_CHANS_DAC != 0) || (I2S_CHANS_ADC != 0)
|
||||||
#ifndef CODEC_MASTER
|
#if (CODEC_MASTER == 0)
|
||||||
port p_lrclk,
|
port p_lrclk,
|
||||||
port p_bclk,
|
port p_bclk,
|
||||||
#else
|
#else
|
||||||
@@ -66,7 +66,7 @@ void ConfigAudioPortsWrapper(
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (I2S_CHANS_DAC != 0) || (I2S_CHANS_ADC != 0)
|
#if (I2S_CHANS_DAC != 0) || (I2S_CHANS_ADC != 0)
|
||||||
#ifndef CODEC_MASTER
|
#if (CODEC_MASTER == 0)
|
||||||
buffered out port:32 ?p_lrclk,
|
buffered out port:32 ?p_lrclk,
|
||||||
buffered out port:32 p_bclk,
|
buffered out port:32 p_bclk,
|
||||||
#else
|
#else
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ void ConfigAudioPorts(
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (I2S_CHANS_DAC != 0) || (I2S_CHANS_ADC != 0)
|
#if (I2S_CHANS_DAC != 0) || (I2S_CHANS_ADC != 0)
|
||||||
#if !defined(CODEC_MASTER)
|
#if (CODEC_MASTER == 0)
|
||||||
buffered out port:32 ?p_lrclk,
|
buffered out port:32 ?p_lrclk,
|
||||||
buffered out port:32 p_bclk,
|
buffered out port:32 p_bclk,
|
||||||
#else
|
#else
|
||||||
@@ -32,7 +32,7 @@ void ConfigAudioPorts(
|
|||||||
#endif
|
#endif
|
||||||
unsigned int divide, unsigned curSamFreq)
|
unsigned int divide, unsigned curSamFreq)
|
||||||
{
|
{
|
||||||
#if !defined(CODEC_MASTER)
|
#if (CODEC_MASTER == 0)
|
||||||
/* Note this call to stop_clock() will pause forever if the port clocking the clock-block is not low.
|
/* Note this call to stop_clock() will pause forever if the port clocking the clock-block is not low.
|
||||||
* deliver() should return with this being the case */
|
* deliver() should return with this being the case */
|
||||||
stop_clock(clk_audio_bclk);
|
stop_clock(clk_audio_bclk);
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ on tile[AUDIO_IO_TILE] : buffered in port:32 p_i2s_adc[I2S_WIRES_ADC] =
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if defined(CODEC_MASTER) && (CODEC_MASTER != 0)
|
#if CODEC_MASTER
|
||||||
buffered in port:32 p_lrclk = PORT_I2S_LRCLK;
|
buffered in port:32 p_lrclk = PORT_I2S_LRCLK;
|
||||||
buffered in port:32 p_bclk = PORT_I2S_BCLK;
|
buffered in port:32 p_bclk = PORT_I2S_BCLK;
|
||||||
#else
|
#else
|
||||||
@@ -200,13 +200,14 @@ out port p_mclk_gen = on tile[AUDIO_IO_TILE] : XS1_PORT_1A;
|
|||||||
clock clk_audio_mclk_gen = on tile[AUDIO_IO_TILE] : XS1_CLKBLK_3;
|
clock clk_audio_mclk_gen = on tile[AUDIO_IO_TILE] : XS1_CLKBLK_3;
|
||||||
void master_mode_clk_setup(void);
|
void master_mode_clk_setup(void);
|
||||||
|
|
||||||
#ifdef CODEC_MASTER
|
#if CODEC_MASTER
|
||||||
out port p_bclk_gen = on tile[AUDIO_IO_TILE] : XS1_PORT_1B;
|
out port p_bclk_gen = on tile[AUDIO_IO_TILE] : XS1_PORT_1B;
|
||||||
clock clk_audio_bclk_gen = on tile[AUDIO_IO_TILE] : XS1_CLKBLK_4;
|
clock clk_audio_bclk_gen = on tile[AUDIO_IO_TILE] : XS1_CLKBLK_4;
|
||||||
out port p_lrclk_gen = on tile[AUDIO_IO_TILE] : XS1_PORT_1C;
|
out port p_lrclk_gen = on tile[AUDIO_IO_TILE] : XS1_PORT_1C;
|
||||||
clock clk_audio_lrclk_gen = on tile[AUDIO_IO_TILE] : XS1_CLKBLK_5;
|
clock clk_audio_lrclk_gen = on tile[AUDIO_IO_TILE] : XS1_CLKBLK_5;
|
||||||
void slave_mode_clk_setup(const unsigned samFreq, const unsigned chans_per_frame);
|
void slave_mode_clk_setup(const unsigned samFreq, const unsigned chans_per_frame);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if I2S_MODE_TDM
|
#if I2S_MODE_TDM
|
||||||
@@ -233,7 +234,7 @@ int main(void)
|
|||||||
generator(c_checker, c_out);
|
generator(c_checker, c_out);
|
||||||
checker(c_checker, 0);
|
checker(c_checker, 0);
|
||||||
#ifdef SIMULATION
|
#ifdef SIMULATION
|
||||||
#ifdef CODEC_MASTER
|
#if CODEC_MASTER
|
||||||
slave_mode_clk_setup(DEFAULT_FREQ, (i2s_tdm_mode != 0) ? 8 : 2);
|
slave_mode_clk_setup(DEFAULT_FREQ, (i2s_tdm_mode != 0) ? 8 : 2);
|
||||||
#else
|
#else
|
||||||
master_mode_clk_setup();
|
master_mode_clk_setup();
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ void master_mode_clk_setup(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef CODEC_MASTER
|
#if CODEC_MASTER
|
||||||
extern out port p_bclk_gen;
|
extern out port p_bclk_gen;
|
||||||
extern clock clk_audio_bclk_gen;
|
extern clock clk_audio_bclk_gen;
|
||||||
extern out port p_lrclk_gen;
|
extern out port p_lrclk_gen;
|
||||||
|
|||||||
Reference in New Issue
Block a user