From 377f793ebf5542628c24f8aae8d00060b49693d9 Mon Sep 17 00:00:00 2001 From: Zheng Yang Date: Fri, 29 Dec 2017 14:09:54 +0800 Subject: [PATCH] phy: rockchip: inno-hdmi: enable RK3328 150ohm differential resistance On some sink, e.g. Philips 24PFL3545/T3, Y data which is transmitted in the D1 channel was recognized error, and picture will show noise. It's fixed after enable the 150ohm differential resistance. Change-Id: Ie1197dc78260bf7931786ebbccf98e9599b66ccd Signed-off-by: Zheng Yang --- drivers/phy/rockchip/phy-rockchip-inno-hdmi-phy.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-hdmi-phy.c b/drivers/phy/rockchip/phy-rockchip-inno-hdmi-phy.c index f761b9b2f78f..a563835796eb 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-hdmi-phy.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-hdmi-phy.c @@ -283,7 +283,7 @@ static const struct phy_config rk3228_phy_cfg[] = { static const struct phy_config rk3328_phy_cfg[] = { { 165000000, { - 0x07, 0x08, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x08, + 0x07, 0x0a, 0x0a, 0x0a, 0x00, 0x00, 0x08, 0x08, 0x08, 0x00, 0xac, 0xcc, 0xcc, 0xcc, }, }, { @@ -774,17 +774,15 @@ inno_hdmi_phy_rk3328_power_on(struct inno_hdmi_phy *inno, inno_write(inno, 0xc6, val & 0xff); inno_write(inno, 0xc7, 3 << 1); inno_write(inno, 0xc5, ((val >> 8) & 0xff)); - } else if (phy_cfg->tmdsclock > 165000000) { + } else { inno_write(inno, 0xc5, 0x81); - /* clk termination resistor is 50ohm - * data termination resistor is 150ohm - */ - inno_write(inno, 0xc8, 0x30); + /* clk termination resistor is 50ohm */ + if (phy_cfg->tmdsclock > 165000000) + inno_write(inno, 0xc8, 0x30); + /* data termination resistor is 150ohm */ inno_write(inno, 0xc9, 0x10); inno_write(inno, 0xca, 0x10); inno_write(inno, 0xcb, 0x10); - } else { - inno_write(inno, 0xc5, 0x81); } /* Power up post PLL */