|  | 
 
| 各位好: 最近在用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},
 
 
 | 
 |