[V3 4/4] ARM: mmp: support emmc on dkb board

Haojian Zhuang haojian.zhuang at gmail.com
Fri Sep 23 01:58:44 EDT 2011


On Wed, Sep 21, 2011 at 9:07 PM, Jun Nie <njun at marvell.com> wrote:
> Signed-off-by: Jun Nie <njun at marvell.com>
> ---
>  arch/arm/mach-mmp/ttc_dkb.c |   30 ++++++++++++++++++++++++++++++
>  1 files changed, 30 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-mmp/ttc_dkb.c b/arch/arm/mach-mmp/ttc_dkb.c
> index f90e5db..0c05ecd 100644
> --- a/arch/arm/mach-mmp/ttc_dkb.c
> +++ b/arch/arm/mach-mmp/ttc_dkb.c
> @@ -50,6 +50,18 @@ static unsigned long ttc_dkb_pin_config[] __initdata = {
>        GPIO47_UART2_RXD,
>        GPIO48_UART2_TXD,
>
> +#ifdef DKB_EMMC
> +       MFP_CFG(DF_IO0, AF1),
> +       MFP_CFG(DF_IO1, AF1),
> +       MFP_CFG(DF_IO2, AF1),
> +       MFP_CFG(DF_IO3, AF1),
> +       MFP_CFG(DF_IO4, AF1),
> +       MFP_CFG(DF_IO5, AF1),
> +       MFP_CFG(DF_IO6, AF1),
> +       MFP_CFG(DF_IO7, AF1),
> +       MFP_CFG(DF_CLE_SM_OEn, AF1),
> +       MFP_CFG(SM_SCLK, AF1),
> +#else
>        /* DFI */
>        DF_IO0_ND_IO0,
>        DF_IO1_ND_IO1,
> @@ -73,6 +85,7 @@ static unsigned long ttc_dkb_pin_config[] __initdata = {
>        DF_WEn_DF_WEn,
>        DF_REn_DF_REn,
>        DF_RDY0_DF_RDY0,
> +#endif /* DKB_EMMC */
If the pin configurations are conflict for different types of one
platform, it's better
to use Kconfig. Since you can avoid to change your sourcecode.
>
>        /*sdh MMC0*/
>        MMC1_DAT3_MMC1_DAT3,
> @@ -96,6 +109,7 @@ static unsigned long ttc_dkb_pin_config[] __initdata = {
>        GPIO15_GPIO,
>  };
>
> +#ifndef DKB_EMMC
>  static struct mtd_partition ttc_dkb_onenand_partitions[] = {
>        {
>                .name           = "bootloader",
> @@ -147,9 +161,12 @@ static struct platform_device ttc_dkb_device_onenand = {
>                .platform_data  = &ttc_dkb_onenand_info,
>        },
>  };
> +#endif /* DKB_EMMC */
>
>  static struct platform_device *ttc_dkb_devices[] = {
> +#ifndef DKB_EMMC
>        &ttc_dkb_device_onenand,
> +#endif
>  };
>
>  static struct pca953x_platform_data max7312_data[] = {
> @@ -203,6 +220,16 @@ static struct sdhci_pxa_platdata pxa910_sdh_platdata_mmc0 = {
>        .clk_delay_cycles       = 2,
>  };
>
> +/* MMC2 controller for EMMC */
> +#ifdef DKB_EMMC
> +static struct sdhci_pxa_platdata pxa910_sdh_platdata_mmc2 = {
> +       .flags                  = PXA_FLAG_CARD_PERMANENT
> +                                       | PXA_FLAG_SD_8_BIT_CAPABLE_SLOT,
> +       .clk_delay_sel          = 1,
> +       .clk_delay_cycles       = 2,
> +};
> +#endif
> +
>  /* MMC1 controller for SDIO */
>  static struct sdhci_pxa_platdata pxa910_sdh_platdata_mmc1 = {
>        .flags                  = PXA_FLAG_CARD_PERMANENT,
> @@ -216,6 +243,9 @@ static void __init ttc_dkb_init(void)
>        pxa910_add_uart(1);
>        pxa910_add_sdhost0(&pxa910_sdh_platdata_mmc0);
>        pxa910_add_sdhost1(&pxa910_sdh_platdata_mmc1);
> +#ifdef DKB_EMMC
> +       pxa910_add_sdhost2(&pxa910_sdh_platdata_mmc2);
> +#endif
>
>        /* off-chip devices */
>        pxa910_add_twsi(0, NULL, ARRAY_AND_SIZE(ttc_dkb_i2c_info));
> --
> 1.7.0.4
>
>



More information about the linux-arm-kernel mailing list