How to change the clock frequency of sdhc/sdio in device tree

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

How to change the clock frequency of sdhc/sdio in device tree

跳至解决方案
5,465 次查看
ASTRIHK
Contributor III

The default clock frequency of sdhc2 is 50Mhz, I would like to change it to 40Mhz by adding clock-frequency = <40000000> in device tree; But when I use scope to probe the clock signal, it's still 50Mhz, anyone can help please?

&usdhc2 {

    pinctrl-names = "default";

    pinctrl-0 = <&pinctrl_usdhc2_2>;

    no-1-8-v;

    bus-width = <4>;

    clock-frequency = <40000000>;

    max-frequency = <40000000>;

    keep-power-in-suspend;

    enable-sdio-wakeup;

    status = "okay";

};

标签 (2)
1 解答
3,885 次查看
ASTRIHK
Contributor III

static unsigned mmc_sdio_get_max_clock(struct mmc_card *card)

{

    unsigned max_dtr;

    if (mmc_card_highspeed(card)) {

        /*

        * The SDIO specification doesn't mention how

        * the CIS transfer speed register relates to

        * high-speed, but it seems that 50 MHz is

        * mandatory.

        */

        max_dtr = 40000000;//50000000; <-change this

    } else {

        max_dtr = card->cis.max_dtr;

    }

    if (card->type == MMC_TYPE_SD_COMBO)

        max_dtr = min(max_dtr, mmc_sd_get_max_clock(card));

    return max_dtr;

}

在原帖中查看解决方案

2 回复数
3,885 次查看
zhanxiaozhang
Contributor III

this will change all sdio port frequency,we perfer special one

0 项奖励
回复
3,886 次查看
ASTRIHK
Contributor III

static unsigned mmc_sdio_get_max_clock(struct mmc_card *card)

{

    unsigned max_dtr;

    if (mmc_card_highspeed(card)) {

        /*

        * The SDIO specification doesn't mention how

        * the CIS transfer speed register relates to

        * high-speed, but it seems that 50 MHz is

        * mandatory.

        */

        max_dtr = 40000000;//50000000; <-change this

    } else {

        max_dtr = card->cis.max_dtr;

    }

    if (card->type == MMC_TYPE_SD_COMBO)

        max_dtr = min(max_dtr, mmc_sd_get_max_clock(card));

    return max_dtr;

}