Skip to content

Commit

Permalink
OMAP3630: DSS2: Updating MAX divider value
Browse files Browse the repository at this point in the history
In DPLL4 M3, M4, M5 and M6 field width has been increased by 1 bit in 3630.
So the max divider value that can be achived will be 32 and not 16.
In 3630 the functional clock is x1 of DPLL4 and not x2. Hence multiplier 2
is removed.

Signed-off-by: Sudeep Basavaraj <sudeep.basavaraj@ti.com>
Signed-off-by: Mukund Mittal <mmittal@ti.com>
Signed-off-by: Kishore Y <kishore.y@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
  • Loading branch information
Kishore Y authored and Tomi Valkeinen committed May 18, 2010
1 parent 2c59ff5 commit ac01bb7
Showing 1 changed file with 19 additions and 5 deletions.
24 changes: 19 additions & 5 deletions drivers/video/omap2/dss/dss.c
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,13 @@ void dss_dump_clocks(struct seq_file *s)

seq_printf(s, "dpll4_ck %lu\n", dpll4_ck_rate);

seq_printf(s, "dss1_alwon_fclk = %lu / %lu * 2 = %lu\n",
if (cpu_is_omap3630())
seq_printf(s, "dss1_alwon_fclk = %lu / %lu = %lu\n",
dpll4_ck_rate,
dpll4_ck_rate / dpll4_m4_ck_rate,
dss_clk_get_rate(DSS_CLK_FCK1));
else
seq_printf(s, "dss1_alwon_fclk = %lu / %lu * 2 = %lu\n",
dpll4_ck_rate,
dpll4_ck_rate / dpll4_m4_ck_rate,
dss_clk_get_rate(DSS_CLK_FCK1));
Expand Down Expand Up @@ -293,7 +299,8 @@ int dss_calc_clock_rates(struct dss_clock_info *cinfo)
{
unsigned long prate;

if (cinfo->fck_div > 16 || cinfo->fck_div == 0)
if (cinfo->fck_div > (cpu_is_omap3630() ? 32 : 16) ||
cinfo->fck_div == 0)
return -EINVAL;

prate = clk_get_rate(clk_get_parent(dss.dpll4_m4_ck));
Expand Down Expand Up @@ -329,7 +336,10 @@ int dss_get_clock_div(struct dss_clock_info *cinfo)
if (cpu_is_omap34xx()) {
unsigned long prate;
prate = clk_get_rate(clk_get_parent(dss.dpll4_m4_ck));
cinfo->fck_div = prate / (cinfo->fck / 2);
if (cpu_is_omap3630())
cinfo->fck_div = prate / (cinfo->fck);
else
cinfo->fck_div = prate / (cinfo->fck / 2);
} else {
cinfo->fck_div = 0;
}
Expand Down Expand Up @@ -402,10 +412,14 @@ int dss_calc_clock_div(bool is_tft, unsigned long req_pck,

goto found;
} else if (cpu_is_omap34xx()) {
for (fck_div = 16; fck_div > 0; --fck_div) {
for (fck_div = (cpu_is_omap3630() ? 32 : 16);
fck_div > 0; --fck_div) {
struct dispc_clock_info cur_dispc;

fck = prate / fck_div * 2;
if (cpu_is_omap3630())
fck = prate / fck_div;
else
fck = prate / fck_div * 2;

if (fck > DISPC_MAX_FCK)
continue;
Expand Down

0 comments on commit ac01bb7

Please sign in to comment.