From 1301b2997b5330699d4d9c6260ca9827f467d501 Mon Sep 17 00:00:00 2001 From: yzq Date: Sun, 28 Apr 2013 18:05:05 +0800 Subject: [PATCH] mfd:rk616 hdmi: add spdif source select --- .../video/rockchip/hdmi/chips/rk616/rk616_hdmi.h | 5 +++++ .../rockchip/hdmi/chips/rk616/rk616_hdmi_hw.c | 16 ++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/drivers/video/rockchip/hdmi/chips/rk616/rk616_hdmi.h b/drivers/video/rockchip/hdmi/chips/rk616/rk616_hdmi.h index 7cc85ccce3a0..9a61738043df 100755 --- a/drivers/video/rockchip/hdmi/chips/rk616/rk616_hdmi.h +++ b/drivers/video/rockchip/hdmi/chips/rk616/rk616_hdmi.h @@ -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), diff --git a/drivers/video/rockchip/hdmi/chips/rk616/rk616_hdmi_hw.c b/drivers/video/rockchip/hdmi/chips/rk616/rk616_hdmi_hw.c index d9df536c6677..6f6b286ba656 100755 --- a/drivers/video/rockchip/hdmi/chips/rk616/rk616_hdmi_hw.c +++ b/drivers/video/rockchip/hdmi/chips/rk616/rk616_hdmi_hw.c @@ -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); -- 2.34.1