diff options
| author | Shawn Guo <shawn.guo@freescale.com> | 2011-02-22 03:49:19 -0500 |
|---|---|---|
| committer | Sascha Hauer <s.hauer@pengutronix.de> | 2011-03-25 08:31:50 -0400 |
| commit | 1b6f1e885ef08c6fda87979a2ca05e910d479985 (patch) | |
| tree | 0806d9d63a1f17659b30667121277b6578d6b905 /arch/arm | |
| parent | 47babe692e90e0333b2448969639b8f0940e3682 (diff) | |
ARM: mxs/mx23evk: add mmc device
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
Acked-by: Marc Kleine-Budde <mkl@pengutronix.de>
[sha: updated to Uwes v4 version]
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm')
| -rw-r--r-- | arch/arm/mach-mxs/Kconfig | 1 | ||||
| -rw-r--r-- | arch/arm/mach-mxs/mach-mx23evk.c | 44 |
2 files changed, 45 insertions, 0 deletions
diff --git a/arch/arm/mach-mxs/Kconfig b/arch/arm/mach-mxs/Kconfig index 4f6f174af6c8..9e8152652d42 100644 --- a/arch/arm/mach-mxs/Kconfig +++ b/arch/arm/mach-mxs/Kconfig | |||
| @@ -22,6 +22,7 @@ config MACH_MX23EVK | |||
| 22 | select SOC_IMX23 | 22 | select SOC_IMX23 |
| 23 | select MXS_HAVE_AMBA_DUART | 23 | select MXS_HAVE_AMBA_DUART |
| 24 | select MXS_HAVE_PLATFORM_AUART | 24 | select MXS_HAVE_PLATFORM_AUART |
| 25 | select MXS_HAVE_PLATFORM_MXS_MMC | ||
| 25 | select MXS_HAVE_PLATFORM_MXSFB | 26 | select MXS_HAVE_PLATFORM_MXSFB |
| 26 | default y | 27 | default y |
| 27 | help | 28 | help |
diff --git a/arch/arm/mach-mxs/mach-mx23evk.c b/arch/arm/mach-mxs/mach-mx23evk.c index a66994f0518f..214e5b641bbc 100644 --- a/arch/arm/mach-mxs/mach-mx23evk.c +++ b/arch/arm/mach-mxs/mach-mx23evk.c | |||
| @@ -28,6 +28,8 @@ | |||
| 28 | 28 | ||
| 29 | #define MX23EVK_LCD_ENABLE MXS_GPIO_NR(1, 18) | 29 | #define MX23EVK_LCD_ENABLE MXS_GPIO_NR(1, 18) |
| 30 | #define MX23EVK_BL_ENABLE MXS_GPIO_NR(1, 28) | 30 | #define MX23EVK_BL_ENABLE MXS_GPIO_NR(1, 28) |
| 31 | #define MX23EVK_MMC0_WRITE_PROTECT MXS_GPIO_NR(1, 30) | ||
| 32 | #define MX23EVK_MMC0_SLOT_POWER MXS_GPIO_NR(1, 29) | ||
| 31 | 33 | ||
| 32 | static const iomux_cfg_t mx23evk_pads[] __initconst = { | 34 | static const iomux_cfg_t mx23evk_pads[] __initconst = { |
| 33 | /* duart */ | 35 | /* duart */ |
| @@ -73,6 +75,36 @@ static const iomux_cfg_t mx23evk_pads[] __initconst = { | |||
| 73 | MX23_PAD_LCD_RESET__GPIO_1_18 | MXS_PAD_CTRL, | 75 | MX23_PAD_LCD_RESET__GPIO_1_18 | MXS_PAD_CTRL, |
| 74 | /* backlight control */ | 76 | /* backlight control */ |
| 75 | MX23_PAD_PWM2__GPIO_1_28 | MXS_PAD_CTRL, | 77 | MX23_PAD_PWM2__GPIO_1_28 | MXS_PAD_CTRL, |
| 78 | |||
| 79 | /* mmc */ | ||
| 80 | MX23_PAD_SSP1_DATA0__SSP1_DATA0 | | ||
| 81 | (MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), | ||
| 82 | MX23_PAD_SSP1_DATA1__SSP1_DATA1 | | ||
| 83 | (MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), | ||
| 84 | MX23_PAD_SSP1_DATA2__SSP1_DATA2 | | ||
| 85 | (MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), | ||
| 86 | MX23_PAD_SSP1_DATA3__SSP1_DATA3 | | ||
| 87 | (MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), | ||
| 88 | MX23_PAD_GPMI_D08__SSP1_DATA4 | | ||
| 89 | (MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), | ||
| 90 | MX23_PAD_GPMI_D09__SSP1_DATA5 | | ||
| 91 | (MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), | ||
| 92 | MX23_PAD_GPMI_D10__SSP1_DATA6 | | ||
| 93 | (MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), | ||
| 94 | MX23_PAD_GPMI_D11__SSP1_DATA7 | | ||
| 95 | (MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), | ||
| 96 | MX23_PAD_SSP1_CMD__SSP1_CMD | | ||
| 97 | (MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), | ||
| 98 | MX23_PAD_SSP1_DETECT__SSP1_DETECT | | ||
| 99 | (MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_NOPULL), | ||
| 100 | MX23_PAD_SSP1_SCK__SSP1_SCK | | ||
| 101 | (MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_NOPULL), | ||
| 102 | /* write protect */ | ||
| 103 | MX23_PAD_PWM4__GPIO_1_30 | | ||
| 104 | (MXS_PAD_4MA | MXS_PAD_3V3 | MXS_PAD_NOPULL), | ||
| 105 | /* slot power enable */ | ||
| 106 | MX23_PAD_PWM3__GPIO_1_29 | | ||
| 107 | (MXS_PAD_4MA | MXS_PAD_3V3 | MXS_PAD_NOPULL), | ||
| 76 | }; | 108 | }; |
| 77 | 109 | ||
| 78 | /* mxsfb (lcdif) */ | 110 | /* mxsfb (lcdif) */ |
| @@ -101,6 +133,11 @@ static const struct mxsfb_platform_data mx23evk_mxsfb_pdata __initconst = { | |||
| 101 | .ld_intf_width = STMLCDIF_24BIT, | 133 | .ld_intf_width = STMLCDIF_24BIT, |
| 102 | }; | 134 | }; |
| 103 | 135 | ||
| 136 | static struct mxs_mmc_platform_data mx23evk_mmc_pdata __initdata = { | ||
| 137 | .wp_gpio = MX23EVK_MMC0_WRITE_PROTECT, | ||
| 138 | .flags = SLOTF_8_BIT_CAPABLE, | ||
| 139 | }; | ||
| 140 | |||
| 104 | static void __init mx23evk_init(void) | 141 | static void __init mx23evk_init(void) |
| 105 | { | 142 | { |
| 106 | int ret; | 143 | int ret; |
| @@ -110,6 +147,13 @@ static void __init mx23evk_init(void) | |||
| 110 | mx23_add_duart(); | 147 | mx23_add_duart(); |
| 111 | mx23_add_auart0(); | 148 | mx23_add_auart0(); |
| 112 | 149 | ||
| 150 | /* power on mmc slot by writing 0 to the gpio */ | ||
| 151 | ret = gpio_request_one(MX23EVK_MMC0_SLOT_POWER, GPIOF_DIR_OUT, | ||
| 152 | "mmc0-slot-power"); | ||
| 153 | if (ret) | ||
| 154 | pr_warn("failed to request gpio mmc0-slot-power: %d\n", ret); | ||
| 155 | mx23_add_mxs_mmc(0, &mx23evk_mmc_pdata); | ||
| 156 | |||
| 113 | ret = gpio_request_one(MX23EVK_LCD_ENABLE, GPIOF_DIR_OUT, "lcd-enable"); | 157 | ret = gpio_request_one(MX23EVK_LCD_ENABLE, GPIOF_DIR_OUT, "lcd-enable"); |
| 114 | if (ret) | 158 | if (ret) |
| 115 | pr_warn("failed to request gpio lcd-enable: %d\n", ret); | 159 | pr_warn("failed to request gpio lcd-enable: %d\n", ret); |
