Hi,
I have also an issue with mmc2 @ an AM3352 phyCore and a custom Board.
My muxing and initialisation looks like this:
static struct omap2_hsmmc_info am335x_mmc[] __initdata = {
{
.mmc = 1,
.caps = MMC_CAP_4_BIT_DATA,
.gpio_cd = GPIO_TO_PIN(0, 6),
.gpio_wp = -EINVAL,
.ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34, /* 3V3 */
},
{
.mmc = 2,
.name = "EX_SD",
.caps = MMC_CAP_4_BIT_DATA,
.nonremovable = false,
.gpio_cd = GPIO_TO_PIN(3, 16),
.gpio_wp = -EINVAL,
.ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34, /* 3V3 */
},
{
.mmc = 0, /* will be set at runtime */
},
{} /* Terminator */
};
/* Module pin mux for mmc0 */
static struct pinmux_config mmc0_pin_mux[] = {
{"mmc0_dat3.mmc0_dat3", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"mmc0_dat2.mmc0_dat2", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"mmc0_dat1.mmc0_dat1", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"mmc0_dat0.mmc0_dat0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"mmc0_clk.mmc0_clk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"mmc0_cmd.mmc0_cmd", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"spi0_cs1.mmc0_sdcd", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
{NULL, 0},
};
/* Module pin mux for mmc2 */
static struct pinmux_config mmc2_pin_mux[] = {
{"gpmc_ad12.mmc2_dat0", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
{"gpmc_ad13.mmc2_dat1", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
{"gpmc_ad14.mmc2_dat2", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
{"gpmc_ad15.mmc2_dat3", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
{"gpmc_csn3.mmc2_cmd", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
{"mii1_rxd1.mmc2_clk", OMAP_MUX_MODE6 | AM33XX_PIN_INPUT_PULLUP},
{"mcasp0_axr0.mmc2_sdcd", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLUP},
{NULL, 0},
};
static void mmc0_init(void)
{
setup_pin_mux(mmc0_pin_mux);
setup_pin_mux(mmc2_pin_mux);
omap2_hsmmc_init(am335x_mmc);
return;
}
The inti is called @ boot time.
@ Kernel Booting mmc0 works like a charm. The Kernel and Barebox is booting from it.
But mmc2 doesn't work. I looked at the cmd and clk line. cmd line is @ everytime high due to a 10k Pullup in the Schematic.
Unfortunatly the clk line is @ everytime low. Nothing happens there. And after booting only mmc0 is available. Where is the Problem?? clk is directly connected to the SD-Card without any pullup/down. I tested it with plugging in an SD-Card before and after Kernel booting... nothing. :-(
Can somebody help me?