diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2012-04-09 20:57:09 (GMT) |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2012-06-10 16:45:29 (GMT) |
commit | 171af7dcb8812f173f0a5a4ab79a88598586d394 (patch) | |
tree | f88033b11637fb434ca0cc7a09ffe352094f5a8b /arch/arm/mach-nomadik/board-nhk8815.c | |
parent | d088f671e413ec1a58ebf9adc288ca93346f9b8e (diff) | |
download | linux-fsl-qoriq-171af7dcb8812f173f0a5a4ab79a88598586d394.tar.xz |
ARM: nomadik: register the MMC/SD device
This registers the MMC device for the Nomadik so we can access
MMC/SD cards, which is pretty nice.
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'arch/arm/mach-nomadik/board-nhk8815.c')
-rw-r--r-- | arch/arm/mach-nomadik/board-nhk8815.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/arch/arm/mach-nomadik/board-nhk8815.c b/arch/arm/mach-nomadik/board-nhk8815.c index 029a741..f4535a7 100644 --- a/arch/arm/mach-nomadik/board-nhk8815.c +++ b/arch/arm/mach-nomadik/board-nhk8815.c @@ -14,6 +14,7 @@ #include <linux/init.h> #include <linux/platform_device.h> #include <linux/amba/bus.h> +#include <linux/amba/mmci.h> #include <linux/interrupt.h> #include <linux/gpio.h> #include <linux/mtd/mtd.h> @@ -186,6 +187,29 @@ static void __init nhk8815_onenand_init(void) #endif } +static struct mmci_platform_data mmcsd_plat_data = { + .ocr_mask = MMC_VDD_29_30, + .f_max = 48000000, + .gpio_wp = -1, + .gpio_cd = 111, + .cd_invert = true, + .capabilities = MMC_CAP_MMC_HIGHSPEED | + MMC_CAP_SD_HIGHSPEED | MMC_CAP_4_BIT_DATA, +}; + +static int __init nhk8815_mmcsd_init(void) +{ + int ret; + + ret = gpio_request(112, "card detect bias"); + if (ret) + return ret; + gpio_direction_output(112, 0); + amba_apb_device_add(NULL, "mmci", NOMADIK_SDI_BASE, SZ_4K, IRQ_SDMMC, 0, &mmcsd_plat_data, 0x10180180); + return 0; +} +module_init(nhk8815_mmcsd_init); + static struct resource nhk8815_eth_resources[] = { { .name = "smc91x-regs", |