Hi Andy, > This patch sets the MMC width according to the MMC host capabilities. > It turned out, that there are some targets (e.g. GONI), which are able > to read data from SPI only at 4 bit mode. > This patch restricts the width number according to the MMC host. > > Signed-off-by: Lukasz Majewski <l.majew...@samsung.com> > Signed-off-by: Kyungmin Park <kyungmin.p...@samsung.com> > Cc: Andy Fleming <aflem...@gmail.com> > --- > drivers/mmc/mmc.c | 4 +++- > include/mmc.h | 3 +++ > 2 files changed, 6 insertions(+), 1 deletions(-) > > diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c > index 49c3349..51c0106 100644 > --- a/drivers/mmc/mmc.c > +++ b/drivers/mmc/mmc.c > @@ -1103,7 +1103,9 @@ int mmc_startup(struct mmc *mmc) > else > mmc_set_clock(mmc, 25000000); > } else { > - for (width = EXT_CSD_BUS_WIDTH_8; width >= 0; > width--) { > + width = ((mmc->host_caps & MMC_MODE_MASK_WIDTH_BITS) > >> > + MMC_MODE_WIDTH_BITS_SHIFT); > + for (; width >= 0; width--) { > /* Set the card to use 4 bit*/ > err = mmc_switch(mmc, EXT_CSD_CMD_SET_NORMAL, > EXT_CSD_BUS_WIDTH, width); > diff --git a/include/mmc.h b/include/mmc.h > index 30c2375..ff2f28e 100644 > --- a/include/mmc.h > +++ b/include/mmc.h > @@ -47,6 +47,9 @@ > #define MMC_MODE_SPI 0x400 > #define MMC_MODE_HC 0x800 > > +#define MMC_MODE_MASK_WIDTH_BITS (MMC_MODE_4BIT | MMC_MODE_8BIT) > +#define MMC_MODE_WIDTH_BITS_SHIFT 8 > + > #define SD_DATA_4BIT 0x00040000 > > #define IS_SD(x) (x->version & SD_VERSION_SD)
Do you have any opinions/comments about this patch? It has already spent some time on the mainling list and nobody complaint :-) -- Best regards, Lukasz Majewski Samsung Poland R&D Center Platform Group _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot