mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 02:50:49 +09:00
phy: rockchip: inno-hdmi: Subdivide rk3528 phy cfg table
Add phy configuration of tmds clk corresponding to 10-bit color depth at different resolutions (such as 1080p60 10-bit). Change-Id: I8792d950dca2a51572314359044c2bea437a71a8 Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
This commit is contained in:
@@ -347,17 +347,27 @@ static const struct phy_config rk3328_phy_cfg[] = {
|
||||
static const struct phy_config rk3528_phy_cfg[] = {
|
||||
/* tmdsclk bias-clk bias-data voltage-clk voltage-data pre-emphasis-data */
|
||||
{ 165000000, {
|
||||
0x03, 0x04, 0x0c, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x02, 0x04, 0x0f, 0x0f, 0x00, 0x76, 0x83, 0x0a, 0x0a,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
}, {
|
||||
185625000, {
|
||||
0x02, 0x0b, 0x0f, 0x0f, 0x00, 0x76, 0x83, 0x0a, 0x33,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
}, {
|
||||
340000000, {
|
||||
0x03, 0x04, 0x0c, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x04, 0x0c, 0x12, 0x00, 0x76, 0x83, 0x00, 0x0f,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
}, {
|
||||
371250000, {
|
||||
0x02, 0x0b, 0x0d, 0x18, 0x00, 0x76, 0x83, 0x0a, 0x33,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
}, {
|
||||
594000000, {
|
||||
0x02, 0x08, 0x0d, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x02, 0x0b, 0x0d, 0x18, 0x00, 0x76, 0x83, 0x0a, 0x33,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
},
|
||||
}, {
|
||||
@@ -1182,21 +1192,12 @@ inno_hdmi_phy_rk3528_power_on(struct inno_hdmi_phy *inno,
|
||||
}
|
||||
|
||||
/* set termination resistance */
|
||||
if (phy_cfg->tmdsclock > 340000000) {
|
||||
inno_write(inno, 0xc7, 0x76);
|
||||
inno_write(inno, 0xc5, 0x83);
|
||||
inno_write(inno, 0xc8, 0x00);
|
||||
inno_write(inno, 0xc9, 0x2f);
|
||||
inno_write(inno, 0xca, 0x2f);
|
||||
inno_write(inno, 0xcb, 0x2f);
|
||||
} else {
|
||||
inno_write(inno, 0xc7, 0x76);
|
||||
inno_write(inno, 0xc5, 0x83);
|
||||
inno_write(inno, 0xc8, 0x00);
|
||||
inno_write(inno, 0xc9, 0x0f);
|
||||
inno_write(inno, 0xca, 0x0f);
|
||||
inno_write(inno, 0xcb, 0x0f);
|
||||
}
|
||||
inno_write(inno, 0xc7, phy_cfg->regs[5]);
|
||||
inno_write(inno, 0xc5, phy_cfg->regs[6]);
|
||||
inno_write(inno, 0xc8, phy_cfg->regs[7]);
|
||||
inno_write(inno, 0xc9, phy_cfg->regs[8]);
|
||||
inno_write(inno, 0xca, phy_cfg->regs[8]);
|
||||
inno_write(inno, 0xcb, phy_cfg->regs[8]);
|
||||
|
||||
/* set TMDS sync detection counter length */
|
||||
temp = 47520000000;
|
||||
|
||||
Reference in New Issue
Block a user