From 9ce6f6b608392c4b3fce74146db071f23dd0f82f Mon Sep 17 00:00:00 2001
From: Zheng Yang <zhengyang@rock-chips.com>
Date: Fri, 18 Sep 2015 16:58:52 +0800
Subject: [PATCH] video: rockchip: hdmi: 3288/3368: set ddc clock to 50KHz.

Change-Id: I00ba32eb9115fe63606b6ccb441ca3b7e3378880
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
---
 .../hdmi/rockchip-hdmiv2/rockchip_hdmiv2_hw.c  | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2_hw.c b/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2_hw.c
index ae9b34acb62b..0e669262c5a3 100755
--- a/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2_hw.c
+++ b/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2_hw.c
@@ -179,7 +179,7 @@ static void rockchip_hdmiv2_i2cm_mask_int(struct hdmi_dev *hdmi_dev, int mask)
 	}
 }
 
-#define I2C_DIV_FACTOR 100000
+#define I2C_DIV_FACTOR 1000000
 static u16 i2c_count(u16 sfrclock, u16 sclmintime)
 {
 	unsigned long tmp_scl_period = 0;
@@ -195,16 +195,24 @@ static u16 i2c_count(u16 sfrclock, u16 sclmintime)
 	return (u16)(tmp_scl_period);
 }
 
-#define EDID_I2C_MIN_SS_SCL_HIGH_TIME	50000
-#define EDID_I2C_MIN_SS_SCL_LOW_TIME	50000
+#define EDID_I2C_MIN_SS_SCL_HIGH_TIME	9625
+#define EDID_I2C_MIN_SS_SCL_LOW_TIME	10000
 
 static void rockchip_hdmiv2_i2cm_clk_init(struct hdmi_dev *hdmi_dev)
 {
+	int value;
+
 	/* Set DDC I2C CLK which devided from DDC_CLK. */
+	value = i2c_count(24000, EDID_I2C_MIN_SS_SCL_HIGH_TIME);
 	hdmi_writel(hdmi_dev, I2CM_SS_SCL_HCNT_0_ADDR,
-		    i2c_count(24000, EDID_I2C_MIN_SS_SCL_HIGH_TIME));
+		    value & 0xff);
+	hdmi_writel(hdmi_dev, I2CM_SS_SCL_HCNT_1_ADDR,
+		    (value >> 8) & 0xff);
+	value = i2c_count(24000, EDID_I2C_MIN_SS_SCL_LOW_TIME);
 	hdmi_writel(hdmi_dev, I2CM_SS_SCL_LCNT_0_ADDR,
-		    i2c_count(24000, EDID_I2C_MIN_SS_SCL_LOW_TIME));
+		    value & 0xff);
+	hdmi_writel(hdmi_dev, I2CM_SS_SCL_LCNT_1_ADDR,
+		    (value >> 8) & 0xff);
 	hdmi_msk_reg(hdmi_dev, I2CM_DIV, m_I2CM_FAST_STD_MODE,
 		     v_I2CM_FAST_STD_MODE(STANDARD_MODE));
 }
-- 
2.34.1