Hi Christian, On Tue, Jun 05, 2012 at 15:33:07, Christian Riesch wrote: > Hi, > > On Fri, Jun 1, 2012 at 4:30 PM, Prabhakar Lad <prabhakar....@ti.com> wrote: > > From: Lad, Prabhakar <prabhakar....@ti.com> > > > > This patch adds support for MMC/SD on DA850/OMAP-L138. > > > > Signed-off-by: Lad, Prabhakar <prabhakar....@ti.com> > > Signed-off-by: Rajashekhara, Sudhakar <sudhakar....@ti.com> > > Signed-off-by: Hadli, Manjunath <manjunath.ha...@ti.com> > > --- > > arch/arm/cpu/arm926ejs/davinci/da850_pinmux.c | 13 ++++++++++ > > arch/arm/include/asm/arch-davinci/hardware.h | 1 + > > arch/arm/include/asm/arch-davinci/pinmux_defs.h | 3 ++ > > board/davinci/da8xxevm/da850evm.c | 28 > > +++++++++++++++++++++++ > > include/configs/da850evm.h | 14 +++++++++++ > > 5 files changed, 59 insertions(+), 0 deletions(-) > > > > diff --git a/arch/arm/cpu/arm926ejs/davinci/da850_pinmux.c > > b/arch/arm/cpu/arm926ejs/davinci/da850_pinmux.c > > index fa07fb5..a95e419 100644 > > --- a/arch/arm/cpu/arm926ejs/davinci/da850_pinmux.c > > +++ b/arch/arm/cpu/arm926ejs/davinci/da850_pinmux.c > > @@ -169,3 +169,16 @@ const struct pinmux_config emifa_pins_nor[] = { > > { pinmux(12), 1, 6 }, /* EMA_A[1] */ > > { pinmux(12), 1, 7 }, /* EMA_A[0] */ > > }; > > + > > +/* MMC0 pin muxer settings */ > > +const struct pinmux_config mmc0_pins[] = { > > + /* GP0[11] is required for SD to work on Rev 3 EVMs */ > > + { pinmux(0), 8, 4 }, /* GP0[11] */ > > Please move GP0[11] to the board specific file, e.g., add it to static > const struct pinmux_config gpio_pins[] in > board/davinci/da8xxevm/da850evm.c. Other boards might use other (or > no) GPIOs for this purpose...
Ok. Thx, --Prabhakar Lad > > > + { pinmux(10), 2, 0 }, /* MMCSD0_CLK */ > > + { pinmux(10), 2, 1 }, /* MMCSD0_CMD */ > > + { pinmux(10), 2, 2 }, /* MMCSD0_DAT_0 */ > > + { pinmux(10), 2, 3 }, /* MMCSD0_DAT_1 */ > > + { pinmux(10), 2, 4 }, /* MMCSD0_DAT_2 */ > > + { pinmux(10), 2, 5 }, /* MMCSD0_DAT_3 */ > > + /* DA850 supports only 4-bit mode, remaining pins are not > > configured */ > > +}; > > diff --git a/arch/arm/include/asm/arch-davinci/hardware.h > > b/arch/arm/include/asm/arch-davinci/hardware.h > > index b145c6e..f6b7a2c 100644 > > --- a/arch/arm/include/asm/arch-davinci/hardware.h > > +++ b/arch/arm/include/asm/arch-davinci/hardware.h > > @@ -446,6 +446,7 @@ struct davinci_pllc_regs { > > #define DAVINCI_SPI1_CLKID (cpu_is_da830() ? 2 : ASYNC3) > > /* Clock IDs */ > > enum davinci_clk_ids { > > + DAVINCI_MMCSD_CLKID = 2, > > DAVINCI_SPI0_CLKID = 2, > > DAVINCI_UART2_CLKID = 2, > > DAVINCI_MMC_CLKID = 2, > > diff --git a/arch/arm/include/asm/arch-davinci/pinmux_defs.h > > b/arch/arm/include/asm/arch-davinci/pinmux_defs.h > > index 07aceaa..c9ac697 100644 > > --- a/arch/arm/include/asm/arch-davinci/pinmux_defs.h > > +++ b/arch/arm/include/asm/arch-davinci/pinmux_defs.h > > @@ -48,4 +48,7 @@ extern const struct pinmux_config emifa_pins_cs4[1]; > > extern const struct pinmux_config emifa_pins_nand[12]; > > extern const struct pinmux_config emifa_pins_nor[43]; > > > > +/* MMC pin muxer settings */ > > +extern const struct pinmux_config mmc0_pins[7]; > > + > > #endif > > diff --git a/board/davinci/da8xxevm/da850evm.c > > b/board/davinci/da8xxevm/da850evm.c > > index 82d707f..608c652 100644 > > --- a/board/davinci/da8xxevm/da850evm.c > > +++ b/board/davinci/da8xxevm/da850evm.c > > @@ -36,6 +36,11 @@ > > #include <asm/errno.h> > > #include <hwconfig.h> > > > > +#ifdef CONFIG_DAVINCI_MMC > > +#include <mmc.h> > > +#include <asm/arch/sdmmc_defs.h> > > +#endif > > + > > DECLARE_GLOBAL_DATA_PTR; > > > > #ifdef CONFIG_DRIVER_TI_EMAC > > @@ -204,6 +209,23 @@ int misc_init_r(void) > > return 0; > > } > > > > +#ifdef CONFIG_DAVINCI_MMC > > +static struct davinci_mmc mmc_sd0 = { > > + .reg_base = (struct davinci_mmc_regs *)DAVINCI_MMC_SD0_BASE, > > + .host_caps = MMC_MODE_4BIT, /* DA850 supports only 4-bit SD/MMC > > */ > > + .voltages = MMC_VDD_32_33 | MMC_VDD_33_34, > > + .version = MMC_CTLR_VERSION_2, > > +}; > > + > > +int board_mmc_init(bd_t *bis) > > +{ > > + mmc_sd0.input_clk = clk_get(DAVINCI_MMCSD_CLKID); > > + > > + /* Add slot-0 to mmc subsystem */ > > + return davinci_mmc_init(bis, &mmc_sd0); > > +} > > +#endif > > + > > static const struct pinmux_config gpio_pins[] = { > > #ifdef CONFIG_USE_NOR > > /* GP0[11] is required for NOR to work on Rev 3 EVMs */ > > @@ -236,6 +258,9 @@ const struct pinmux_resource pinmuxes[] = { > > PINMUX_ITEM(emifa_pins_nor), > > #endif > > PINMUX_ITEM(gpio_pins), > > +#ifdef CONFIG_DAVINCI_MMC > > + PINMUX_ITEM(mmc0_pins), > > +#endif > > }; > > > > const int pinmuxes_size = ARRAY_SIZE(pinmuxes); > > @@ -246,6 +271,9 @@ const struct lpsc_resource lpsc[] = { > > { DAVINCI_LPSC_EMAC }, /* image download */ > > { DAVINCI_LPSC_UART2 }, /* console */ > > { DAVINCI_LPSC_GPIO }, > > +#ifdef CONFIG_DAVINCI_MMC > > + { DAVINCI_LPSC_MMC_SD }, > > +#endif > > }; > > > > const int lpsc_size = ARRAY_SIZE(lpsc); > > diff --git a/include/configs/da850evm.h b/include/configs/da850evm.h > > index 989472b..9301a3b 100644 > > --- a/include/configs/da850evm.h > > +++ b/include/configs/da850evm.h > > @@ -313,6 +313,20 @@ > > #undef CONFIG_CMD_ENV > > #endif > > > > +/* SD/MMC */ > > +#define CONFIG_MMC > > +#define CONFIG_DAVINCI_MMC_SD1 > > +#define CONFIG_MMC_MBLOCK > > +#define CONFIG_GENERIC_MMC > > +#define CONFIG_DAVINCI_MMC > > + > > +#ifdef CONFIG_MMC > > +#define CONFIG_DOS_PARTITION > > +#define CONFIG_CMD_EXT2 > > +#define CONFIG_CMD_FAT > > +#define CONFIG_CMD_MMC > > +#endif > > + > > /* defines for SPL */ > > #define CONFIG_SPL > > #define CONFIG_SPL_SPI_SUPPORT > > -- > > 1.7.4.1 > > > > _______________________________________________ > > U-Boot mailing list > > U-Boot@lists.denx.de > > http://lists.denx.de/mailman/listinfo/u-boot > > Regards, Christian > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot