mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 14:42:37 +02:00
rk3026: i2s add several attempts to double confirm i2s frac effect
This commit is contained in:
parent
96342a866b
commit
baf73f765d
|
|
@ -1687,12 +1687,18 @@ static struct clk clk_i2s_pll = {
|
|||
static int i2s_fracdiv_set_rate(struct clk *clk, unsigned long rate)
|
||||
{
|
||||
u32 numerator, denominator;
|
||||
int i = 10;
|
||||
//clk_i2s_div->clk_i2s_pll->gpll/cpll
|
||||
//clk->parent->parent
|
||||
if (frac_div_get_seting(rate, clk->parent->parent->rate,
|
||||
&numerator, &denominator) == 0) {
|
||||
clk_set_rate_nolock(clk->parent, clk->parent->parent->rate); //PLL:DIV 1:
|
||||
cru_writel_frac(numerator << 16 | denominator, clk->clksel_con);
|
||||
while (i--) {
|
||||
cru_writel_frac((numerator - 1) << 16 | denominator, clk->clksel_con);
|
||||
mdelay(1);
|
||||
cru_writel_frac(numerator << 16 | denominator, clk->clksel_con);
|
||||
mdelay(1);
|
||||
}
|
||||
CLKDATA_DBG("%s set rate=%lu,is ok\n", clk->name, rate);
|
||||
} else {
|
||||
CLKDATA_DBG("clk_frac_div can't get rate=%lu,%s\n", rate, clk->name);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user