Your board setup file in arch/arm/mach-omap2/whatever.c should have a struct twl4030_hsmmc_info that sets up the platform dependent info about your board: static struct twl4030_hsmmc_info mmc[] = { { .mmc = 1, .wires = 4, .gpio_cd = -EINVAL, .gpio_wp = -EINVAL, }, {} /* Terminator */ }; I believe you can set wires to 1 to force it to only use 1 wire. On Tue, Oct 6, 2009 at 3:18 PM, John Faith <jfaith7@xxxxxxxxx> wrote: > > Hi, > I have a prototype board based on the 3530EVM which cannot read its > microSD card. I enabled CONFIG_MMC_DEBUG and other printks to the > 2.6.29rc3 kernel and can see that info like the transfer rate is > coming back but after I reach mmc_set_clock() and setting the bus > width, I just get timeouts (output below). > > Looking at DAT0-3 on a scope, I see activity on DAT0, but the other > lines just follow the MMC power, up for ~800ms then off. > > As an experiment, I tried commenting-out these 2 lines in > drivers/mmc/host/omap_hsmmc.c: > mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED; > ... > mmc->caps |= MMC_CAP_4_BIT_DATA; > > in an attempt to use slow, 1-wire transfers, but that got me a panic > in mmc_omap_irq(). > > Assuming the hardware is functioning, is there a way to force the SD > controller into its simplest/slowest mode to improve my chances of > reading the card? > > Thanks! > , > John > > ... > mmc0: starting CMD9 arg 8fe40000 flags 00000007 > MMC: IRQ Status is 1 > drivers/mmc/core/sd.c 102 mmc_decode_csd() csd_struct=0 > tacc_ns=0 > tacc_clks=0 > max_dtr=25000000 > cmdclass=1461 > capacity=7744512 > drivers/mmc/core/sd.c 67 mmc_decode_cid() manfid=3 > prod_name=SU04G > card type=1 > card state=8 > mmc0: starting CMD7 arg 8fe40000 flags 00000015 > MMC: IRQ Status is 1 > mmc0: starting CMD55 arg 8fe40000 flags 00000095 > MMC: IRQ Status is 1 > mmc0: starting CMD51 arg 00000000 flags 000000b5 > MMC: IRQ Status is 3 > drivers/mmc/core/sd.c 183 mmc_decode_scr() > mmc0: starting CMD6 arg 00fffff1 flags 000000b5 > MMC: IRQ Status is 3 > drivers/mmc/core/sd.c 261 mmc_switch_hs() > mmc0: starting CMD6 arg 80fffff1 flags 000000b5 > MMC: IRQ Status is 3 > card->csd.max_dtr=25000000 > mmc_card_highspeed true > max_dtr=50000000 > drivers/mmc/core/core.c:443 mmc_set_clock() > mmc_app_set_bus_width() > mmc_app_set_bus_width MMC_BUS_WIDTH_4 > mmc0: starting CMD55 arg 8fe40000 flags 00000095 > MMC: IRQ Status is 18000 > mmc0: starting CMD55 arg 8fe40000 flags 00000095 > drivers/mmc/host/omap_hsmmc.c 535 > MMC: IRQ Status is 18000 > mmc0: starting CMD55 arg 8fe40000 flags 00000095 > MMC: IRQ Status is 18000 > mmc0: starting CMD55 arg 8fe40000 flags 00000095 > MMC: IRQ Status is 18000 > drivers/mmc/core/sd.c 559 mmc_app_set_bus_width failed > mmc0: error -110 whilst initialising SD card > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html