how to set sdio clock on imx6q (Android)

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

how to set sdio clock on imx6q (Android)

643 Views
stevenshi
Contributor I

hi Freescale:

     our board is designed base on SDB, and android os is 4.4.2.

     our wifi moudle use SDIO, the SDIO clock need 10~20M, i know the default SDIO Clock is 50M, so  we try to reduce the clock to 10~20M,  we change kernel_imx/arch/arm/mach-mx6/clock.c

static int _clk_usdhc3_set_rate(struct clk *clk, unsigned long rate)

{

    u32 reg, div;

    u32 parent_rate = clk_get_rate(clk->parent);

    div = parent_rate / rate;

    printk(KERN_ERR "++++++++++++++++++++++++++++++++++usdhc3 div is \n",div);

    if (div == 0)

        div++;

    if (((parent_rate / div) != rate) || (div > 8))

        return -EINVAL;

    reg = __raw_readl(MXC_CCM_CSCDR1);

    reg &= ~MXC_CCM_CSCDR1_USDHC3_PODF_MASK;

    reg |= (4 - 1) << MXC_CCM_CSCDR1_USDHC3_PODF_OFFSET;

    //reg |= (div - 1) << MXC_CCM_CSCDR1_USDHC3_PODF_OFFSET;

    __raw_writel(reg, MXC_CCM_CSCDR1);

    return 0;

}

this change is right???

Labels (6)
0 Kudos
1 Reply

403 Views
alejandrolozan1
NXP Employee
NXP Employee

Hi,

That way the divisor will be hardcoded. I believe there must be other place in the code or configuration you could modify instead of that file.

Did that change work?

/Alejandro

0 Kudos