aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/hdmi_ti_4xxx_ip.c
diff options
context:
space:
mode:
authorVaradarajan, Charulatha <charu@ti.com>2012-06-12 21:20:23 +0530
committerZiyan <jaraidaniel@gmail.com>2015-04-17 20:41:14 +0200
commitc18407a9a170554b7f0da4d7a8d13e51158cd7d3 (patch)
tree9498d5ba2db4d8b80fef6643b2a22b768c2c5801 /drivers/video/hdmi_ti_4xxx_ip.c
parentd161dc1203dc29aa281f17bc36bd52d1b8a1c5c9 (diff)
downloadkernel_samsung_tuna-c18407a9a170554b7f0da4d7a8d13e51158cd7d3.zip
kernel_samsung_tuna-c18407a9a170554b7f0da4d7a8d13e51158cd7d3.tar.gz
kernel_samsung_tuna-c18407a9a170554b7f0da4d7a8d13e51158cd7d3.tar.bz2
OMAP4: HDMI: Fix HDMI_TXPHY_TX_CONTROL.FREQOUT programming
According to TRM, the HDMI_TXPHY_TX_CONTROL.FREQOUT bit has to be programmed based on the clock frequency. But this bit is always programmed as 1 in the HDMI driver irrespective of the clock frequency values. Fix this and program HDMI_TXPHY_TX_CONTROL.FREQOUT based on the clock frequency. Change-Id: I25a4c335ec773e241cc0daca5c1c1c8f223cd4a0 Signed-off-by: TAKAHASHI, Masato <m_takahashi@ti.com> Signed-off-by: Varadarajan, Charulatha <charu@ti.com>
Diffstat (limited to 'drivers/video/hdmi_ti_4xxx_ip.c')
-rw-r--r--drivers/video/hdmi_ti_4xxx_ip.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/video/hdmi_ti_4xxx_ip.c b/drivers/video/hdmi_ti_4xxx_ip.c
index fdb9b7b..d5a90a9 100644
--- a/drivers/video/hdmi_ti_4xxx_ip.c
+++ b/drivers/video/hdmi_ti_4xxx_ip.c
@@ -407,7 +407,7 @@ int hdmi_ti_4xxx_pll_program(struct hdmi_ip_data *ip_data,
return 0;
}
-int hdmi_ti_4xxx_phy_init(struct hdmi_ip_data *ip_data)
+int hdmi_ti_4xxx_phy_init(struct hdmi_ip_data *ip_data, int phy)
{
u16 r = 0;
@@ -430,7 +430,15 @@ int hdmi_ti_4xxx_phy_init(struct hdmi_ip_data *ip_data)
* Write to phy address 0 to configure the clock
* use HFBITCLK write HDMI_TXPHY_TX_CONTROL_FREQOUT field
*/
- REG_FLD_MOD(hdmi_phy_base(ip_data), HDMI_TXPHY_TX_CTRL, 0x1, 31, 30);
+ if (phy <= 50000)
+ REG_FLD_MOD(hdmi_phy_base(ip_data), HDMI_TXPHY_TX_CTRL, 0x0, 31,
+ 30);
+ else if ((50000 < phy) && (phy <= 100000))
+ REG_FLD_MOD(hdmi_phy_base(ip_data), HDMI_TXPHY_TX_CTRL, 0x1, 31,
+ 30);
+ else
+ REG_FLD_MOD(hdmi_phy_base(ip_data), HDMI_TXPHY_TX_CTRL, 0x2, 31,
+ 30);
/* Write to phy address 1 to start HDMI line (TXVALID and TMDSCLKEN) */
hdmi_write_reg(hdmi_phy_base(ip_data),