Thanks Michael. You might be on to something there. I am generating a MCLK signal at 12.288MHz but the analog output looks strange:

See how it alternates between 2 ranges: 1.38V-1.62V and 1.63V-1.89V. I wonder if that could cause the SGTL5000 to behave erratically.
Here's the code I'm using to generate MCLK:
// Initialise the SAI/I2S module
g_sai_tx_config.protocol = kSAI_BusI2S;
g_sai_tx_config.syncMode = kSAI_ModeAsync;
g_sai_tx_config.mclkOutputEnable = true;
g_sai_tx_config.mclkSource = kSAI_MclkSourceSysclk;
g_sai_tx_config.bclkSource = kSAI_BclkSourceMclkDiv;
g_sai_tx_config.masterSlave = kSAI_Master;
SAI_TxInit(I2S0, &g_sai_tx_config);
// Set the format of the data
g_sai_tx_format.bitWidth = kSAI_WordWidth16bits;
g_sai_tx_format.channel = 0; // Taken from Kinetis Serial Audio Training P17
g_sai_tx_format.sampleRate_Hz = kSAI_SampleRate48KHz;
g_sai_tx_format.masterClockHz = 256 * kSAI_SampleRate48KHz; //12.288MHz
g_sai_tx_format.stereo = kSAI_Stereo;
g_sai_tx_format.protocol = kSAI_BusI2S;
SAI_TxSetFormat(I2S0, &g_sai_tx_format, CLOCK_GetCoreSysClkFreq(), CLOCK_GetCoreSysClkFreq());
Am I doing something wrong in the MCLK generation?