|
@@ -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));
|
|
@@ -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));
|
|
@@ -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;
|
|
|
}
|
|
@@ -402,10 +412,14 @@ retry:
|
|
|
|
|
|
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;
|