[U-Boot] [PATCH 1/7] da850/omap-l138: Add MMC support for DA850/OMAP-L138

Lad, Prabhakar prabhakar.lad at ti.com
Wed Jun 6 10:12:36 CEST 2012


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.lad at ti.com> wrote:
> > From: Lad, Prabhakar <prabhakar.lad at ti.com>
> >
> > This patch adds support for MMC/SD on DA850/OMAP-L138.
> >
> > Signed-off-by: Lad, Prabhakar <prabhakar.lad at ti.com>
> > Signed-off-by: Rajashekhara, Sudhakar <sudhakar.raj at ti.com>
> > Signed-off-by: Hadli, Manjunath <manjunath.hadli at 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 at lists.denx.de
> > http://lists.denx.de/mailman/listinfo/u-boot
> 
> Regards, Christian
> 



More information about the U-Boot mailing list