Hello,
Our board is utilizing the mmc2 interface. I'm wanting to activate this device in Linux. From what I can
tell, I only have mmcblk0p1 device available. How do I go about getting mmcblk0p2? Is there a better way
of accessing this device?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello,
Our board is utilizing the mmc2 interface. I'm wanting to activate this device in Linux. From what I can
tell, I only have mmcblk0p1 device available. How do I go about getting mmcblk0p2? Is there a better way
of accessing this device?
Acutally, MMC1 is mmcblk0 and each partitions would be mmcblk0p1, mmcblk0p2, etc. MMC2 then becomes mmcblk1 with the partitions being mmcblk1p1, mmcblk1p2, etc.
I would start with u-boot. Modify the pin muxing in there to support MMC2. Then in your Linux kernel, look at your arch/arm/mach-omap2/board- file. For example, the OMAP3 EVM file is named board-omap3evm.c. You'll find a table with MMC interfaces:
static struct twl4030_hsmmc_info mmc[] __initdata = {
{
.mmc = 1,
.wires = 4,
.gpio_cd = -EINVAL,
.gpio_wp = 63,
},
{} /* Terminator */
};
You would add an entry for your MMC2.
There might be more work, but this is a start.
Steve K.
In reading the Technical Reference Manual, it states that ...
The second controller (MMC/SD/SDIO2) allows connecting MMC/SD/SDIO cards (only 1.8V cards) or
and external device that uses the MMC/SD/SDIO interface (WLAN device for example).
When I run the PSP-SDK_02.01.01.08 kernel, it seems to be setting VMMC2 to about 3V. Is this OK? Can
I run standard SD cards in MMC2, or must I use a 1.8V part? I guess the same goes for MMC3?
Thanks.
I have been trying to get MMC2 to work with a Marvell 8686 SDIO card, this card does not have any write protect or chip detect. It is being externally powered and can be assumed to always be there. I was able to get the card to work on MMC1 but it needs to be on MMC2. I probably need to add voltage translators to go from the 1.8 V to 3.0 V but I cannot ever see a MMC2 clock ever come out of the OMAP3EVM board.
I am using the OMAP3EVM with 2.6.29-rc3 kernel, I have made the following modifications but I am unable to see a MMC2 clock. I would think during linux initialization it would probe the MMC2 to see if anything is there. Is this not true?
/*Wireless LAN */\
MUX_VAL(CP(MMC2_CLK), (IEN | PTD | DIS | M0)) /*MMC2_CLK*/\
MUX_VAL(CP(MMC2_CMD), (IEN | PTU | EN | M0)) /*MMC2_CMD*/\
MUX_VAL(CP(MMC2_DAT0), (IEN | PTU | EN | M0)) /*MMC2_DAT0*/\
MUX_VAL(CP(MMC2_DAT1), (IEN | PTU | EN | M0)) /*MMC2_DAT1*/\
MUX_VAL(CP(MMC2_DAT2), (IEN | PTU | EN | M0)) /*MMC2_DAT2*/\
MUX_VAL(CP(MMC2_DAT3), (IEN | PTU | EN | M0)) /*MMC2_DAT3*/\
MUX_VAL(CP(MMC2_DAT4), (IDIS | PTD | DIS | M0)) /*MMC2_DAT4*/\
MUX_VAL(CP(MMC2_DAT5), (IDIS | PTD | DIS | M0)) /*MMC2_DAT5*/\
MUX_VAL(CP(MMC2_DAT6), (IDIS | PTD | DIS | M0)) /*MMC2_DAT6 */\
MUX_VAL(CP(MMC2_DAT7), (IEN | PTU | EN | M0)) /*MMC2_DAT7*/\
And then in my board file I changed the mmc structure to:
static struct twl4030_hsmmc_info mmc[] __initdata = {
{
.mmc = 1,
.wires = 4,
.gpio_cd = -EINVAL,
.gpio_wp = 63,
},
{
.mmc = 2,
.wires = 4,
.gpio_wp = -EINVAL
},
{} /* Terminator */
};
Anyone have any success getting MMC2 to work with a fixed attached device?