Skip to content

Commit 6a15521

Browse files
jernejskmripard
authored andcommitted
drm/sun4i: Fix H6 HDMI PHY configuration
As it turns out, vendor HDMI PHY driver for H6 has a pretty big table of predefined values for various pixel clocks. However, most of them are not useful/tested because they come from reference driver code. Vendor PHY driver is concerned with only few of those, namely 27 MHz, 74.25 MHz, 148.5 MHz, 297 MHz and 594 MHz. These are all frequencies for standard CEA modes. Fix sun50i_h6_cur_ctr and sun50i_h6_phy_config with the values only for aforementioned frequencies. Table sun50i_h6_mpll_cfg doesn't need to be changed because values are actually frequency dependent and not so much SoC dependent. See i.MX6 documentation for explanation of those values for similar PHY. Fixes: c71c9b2 ("drm/sun4i: Add support for Synopsys HDMI PHY") Tested-by: Andre Heider <[email protected]> Signed-off-by: Jernej Skrabec <[email protected]> Signed-off-by: Maxime Ripard <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent 36b5358 commit 6a15521

1 file changed

Lines changed: 9 additions & 17 deletions

File tree

drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -104,29 +104,21 @@ static const struct dw_hdmi_mpll_config sun50i_h6_mpll_cfg[] = {
104104

105105
static const struct dw_hdmi_curr_ctrl sun50i_h6_cur_ctr[] = {
106106
/* pixelclk bpp8 bpp10 bpp12 */
107-
{ 25175000, { 0x0000, 0x0000, 0x0000 }, },
108107
{ 27000000, { 0x0012, 0x0000, 0x0000 }, },
109-
{ 59400000, { 0x0008, 0x0008, 0x0008 }, },
110-
{ 72000000, { 0x0008, 0x0008, 0x001b }, },
111-
{ 74250000, { 0x0013, 0x0013, 0x0013 }, },
112-
{ 90000000, { 0x0008, 0x001a, 0x001b }, },
113-
{ 118800000, { 0x001b, 0x001a, 0x001b }, },
114-
{ 144000000, { 0x001b, 0x001a, 0x0034 }, },
115-
{ 180000000, { 0x001b, 0x0033, 0x0034 }, },
116-
{ 216000000, { 0x0036, 0x0033, 0x0034 }, },
117-
{ 237600000, { 0x0036, 0x0033, 0x001b }, },
118-
{ 288000000, { 0x0036, 0x001b, 0x001b }, },
119-
{ 297000000, { 0x0019, 0x001b, 0x0019 }, },
120-
{ 330000000, { 0x0036, 0x001b, 0x001b }, },
121-
{ 594000000, { 0x003f, 0x001b, 0x001b }, },
108+
{ 74250000, { 0x0013, 0x001a, 0x001b }, },
109+
{ 148500000, { 0x0019, 0x0033, 0x0034 }, },
110+
{ 297000000, { 0x0019, 0x001b, 0x001b }, },
111+
{ 594000000, { 0x0010, 0x001b, 0x001b }, },
122112
{ ~0UL, { 0x0000, 0x0000, 0x0000 }, }
123113
};
124114

125115
static const struct dw_hdmi_phy_config sun50i_h6_phy_config[] = {
126116
/*pixelclk symbol term vlev*/
127-
{ 74250000, 0x8009, 0x0004, 0x0232},
128-
{ 148500000, 0x8029, 0x0004, 0x0273},
129-
{ 594000000, 0x8039, 0x0004, 0x014a},
117+
{ 27000000, 0x8009, 0x0007, 0x02b0 },
118+
{ 74250000, 0x8009, 0x0006, 0x022d },
119+
{ 148500000, 0x8029, 0x0006, 0x0270 },
120+
{ 297000000, 0x8039, 0x0005, 0x01ab },
121+
{ 594000000, 0x8029, 0x0000, 0x008a },
130122
{ ~0UL, 0x0000, 0x0000, 0x0000}
131123
};
132124

0 commit comments

Comments
 (0)