yxl 发表于 2021-5-20 20:38:42

335xD mmc2下的SDIO WiFi 内核修改问题

各位好:
      最近在用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.mmc = 3;
        am335x_mmc.name = "WiFi101";
        am335x_mmc.caps = MMC_CAP_4_BIT_DATA | MMC_CAP_NONREMOVABLE | MMC_CAP_SD_HIGHSPEED;
        am335x_mmc.nonremovable = true;
        am335x_mmc.gpio_cd = GPIO_TO_PIN(2, 24);        //模块厂家要求有插入检测,这个管脚高电平和低电平都试过
        am335x_mmc.gpio_wp = -EINVAL;
        am335x_mmc.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},

ljb2019001 发表于 2021-5-24 10:52:16

其中有一个引脚复用成spi了,这个您注释了吗
{"gpmc_ad13.gpio1_13",OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
页: [1]
查看完整版本: 335xD mmc2下的SDIO WiFi 内核修改问题