* sricharan <r.sricha...@ti.com> [101114 23:26]:
> Use the mux framework to initialise the mmc mux pins.
> 
> Signed-off-by: sricharan <r.sricha...@ti.com>
> ---
>  arch/arm/mach-omap2/devices.c |   83 
> +++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 83 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
> index eaf3799..56b1ac9 100644
> --- a/arch/arm/mach-omap2/devices.c
> +++ b/arch/arm/mach-omap2/devices.c
> @@ -784,6 +784,89 @@ static inline void omap2_mmc_mux(struct 
> omap_mmc_platform_data *mmc_controller,
>                * For MMC3 the pins need to be muxed in the board-*.c files
>                */
>       }
> +
> +     if (cpu_is_omap44xx()) {
> +             switch (controller_nr) {
> +             case 0:
> +                     /* MMC 1 */
> +                     omap_mux_init_signal("sdmmc1_clk.sdmmc1_clk",
> +                                             OMAP_PIN_INPUT_PULLUP);
> +                     omap_mux_init_signal("sdmmc1_cmd.sdmmc1_cmd",
> +                                             OMAP_PIN_INPUT_PULLUP);
> +                     omap_mux_init_signal("sdmmc1_dat0.sdmmc1_dat0",
> +                                             OMAP_PIN_INPUT_PULLUP);
> +                     if (mmc_controller->slots[0].caps &
> +                             (MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA)) {
> +                             omap_mux_init_signal("sdmmc1_dat1.sdmmc1_dat1",
> +                                             OMAP_PIN_INPUT_PULLUP);
> +                             omap_mux_init_signal("sdmmc1_dat2.sdmmc1_dat2",
> +                                             OMAP_PIN_INPUT_PULLUP);
> +                             omap_mux_init_signal("sdmmc1_dat3.sdmmc1_dat3",
> +                                             OMAP_PIN_INPUT_PULLUP);
> +                     }

This does not solve the selected pins issue. For example, you don't know
if it's sdmmc1_dat1.sdmmc1_dat1 or gpmc_ad9.sdmmc_dat1. That selection
is board specific.

So you either have to pass the selected pins from the board-*.c file,
or do the muxing in board-*.c file. It depends on the the case.

How about take a look at specifying the pin names in board-*.c in
struct omap_mmc_platform_data?

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to