mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 12:57:06 +09:00
mfd:rk616 hdmi: add spdif source select
This commit is contained in:
@@ -9,6 +9,11 @@
|
||||
#else
|
||||
#define HDMI_SOURCE_DEFAULT HDMI_SOURCE_LCDC0
|
||||
#endif
|
||||
enum{
|
||||
INPUT_IIS,
|
||||
INPUT_SPDIF
|
||||
};
|
||||
#define HDMI_CODEC_SOURCE_SELECT INPUT_SPDIF
|
||||
|
||||
extern void rk616_hdmi_control_output(int enable);
|
||||
extern int rk616_hdmi_register_hdcp_callbacks(void (*hdcp_cb)(void),
|
||||
|
||||
@@ -353,12 +353,16 @@ static int rk616_hdmi_config_audio(struct hdmi_audio *audio)
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
//set_audio source I2S
|
||||
HDMIWrReg(AUDIO_CTRL1, 0x00); //internal CTS, disable down sample, i2s input, disable MCLK
|
||||
HDMIWrReg(AUDIO_SAMPLE_RATE, rate);
|
||||
HDMIWrReg(AUDIO_I2S_MODE, v_I2S_MODE(I2S_STANDARD) | v_I2S_CHANNEL(channel) );
|
||||
HDMIWrReg(AUDIO_I2S_MAP, 0x00);
|
||||
HDMIWrReg(AUDIO_I2S_SWAPS_SPDIF, 0); // no swap
|
||||
if(HDMI_CODEC_SOURCE_SELECT == INPUT_IIS){
|
||||
//set_audio source I2S
|
||||
HDMIWrReg(AUDIO_SAMPLE_RATE, rate);
|
||||
HDMIWrReg(AUDIO_I2S_MODE, v_I2S_MODE(I2S_STANDARD) | v_I2S_CHANNEL(channel) );
|
||||
HDMIWrReg(AUDIO_I2S_MAP, 0x00);
|
||||
HDMIWrReg(AUDIO_I2S_SWAPS_SPDIF, 0); // no swap
|
||||
}else{
|
||||
HDMIWrReg(AUDIO_CTRL1, 0x08); //internal CTS, disable down sample, i2s input, disable MCLK
|
||||
HDMIWrReg(AUDIO_I2S_SWAPS_SPDIF, 0); // no swap
|
||||
}
|
||||
|
||||
//Set N value
|
||||
HDMIWrReg(AUDIO_N_H, (N >> 16) & 0x0F);
|
||||
|
||||
Reference in New Issue
Block a user