|
各位好:
最近在用335xD核心板调试一款SDIO WiFi模块,模块是连接在mmc2,参考内核源码中rtl8189eus的代码进行了修改,但是内核启动阶段会报omap_hsmmc: probe of omap_hsmmc.2 failed with error -16这个错误,根据这个错误能判断出是我修改的内核有问题还是模块问题吗?谢谢。
修改的代码如下:
static struct pinmux_config mmc2_common_pin_mux[] = {
{"gpmc_ad15.mmc2_dat3", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
{"gpmc_ad14.mmc2_dat2", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
{"gpmc_ad13.mmc2_dat1", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
{"gpmc_ad12.mmc2_dat0", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
{"gpmc_clk.mmc2_clk", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
{"gpmc_csn3.mmc2_cmd", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
{"gpmc_a2.gpio1_18", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT_PULLUP},
{NULL, 0},
};
static void mmc2_sdiowifi_init(int evm_id, int profile)
{
setup_pin_mux(mmc2_common_pin_mux);
if(gpio_request(GPIO_TO_PIN(1,18),"gpio1_18") < 0) //WL_EN
{
return;
}
gpio_direction_output(GPIO_TO_PIN(1,18),1);
gpio_set_value(GPIO_TO_PIN(1,18),1);
#if 1
am335x_mmc[1].mmc = 3;
am335x_mmc[1].name = "WiFi101";
am335x_mmc[1].caps = MMC_CAP_4_BIT_DATA | MMC_CAP_NONREMOVABLE | MMC_CAP_SD_HIGHSPEED;
am335x_mmc[1].nonremovable = true;
am335x_mmc[1].gpio_cd = GPIO_TO_PIN(2, 24); //模块厂家要求有插入检测,这个管脚高电平和低电平都试过
am335x_mmc[1].gpio_wp = -EINVAL;
am335x_mmc[1].ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34; /* 3V3 */
#endif
}
//OK335x
static struct evm_dev_cfg ok335x_dev_cfg[] = {
{mmc2_sdiowifi_init,DEV_ON_BASEBOARD,PROFILE_ALL},
{mmc_init, DEV_ON_BASEBOARD, PROFILE_ALL},
|
|