| From koba@kmckk.co.jp Mon Sep 24 02:46:26 2012 |
| From: Tetsuyuki Kobayashi <koba@kmckk.co.jp> |
| Date: Mon, 24 Sep 2012 18:44:39 +0900 |
| Subject: [PATCH 4/4] ARM: shmobile: kzm9g: enable MicroSD |
| To: greg@kroah.com |
| Cc: ltsi-dev@lists.linuxfoundation.org, horms@verge.net.au, damm@opensource.se, kuninori.morimoto.gx@renesas.com, Tetsuyuki Kobayashi <koba@kmckk.co.jp>, "Rafael J. Wysocki" <rjw@sisk.pl> |
| Message-ID: <1348479879-16002-5-git-send-email-koba@kmckk.co.jp> |
| |
| |
| From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
| |
| This patch enable MicroSD on CN20 |
| |
| Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
| Signed-off-by: Tetsuyuki Kobayashi <koba@kmckk.co.jp> |
| Acked-by: Magnus Damm <damm@opensource.se> |
| Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> |
| (cherry picked from commit 425d6940b967c874dd76f4e5b9c81e201b83bc3b) |
| |
| Signed-off-by: Tetsuyuki Kobayashi <koba@kmckk.co.jp> |
| --- |
| arch/arm/mach-shmobile/board-kzm9g.c | 55 ++++++++++++++++++++++++++++++++++ |
| 1 file changed, 55 insertions(+) |
| |
| diff --git a/arch/arm/mach-shmobile/board-kzm9g.c b/arch/arm/mach-shmobile/board-kzm9g.c |
| index 08ea97b..9e2efee 100644 |
| --- a/arch/arm/mach-shmobile/board-kzm9g.c |
| +++ b/arch/arm/mach-shmobile/board-kzm9g.c |
| @@ -396,6 +396,50 @@ static struct platform_device sdhi0_device = { |
| }, |
| }; |
| |
| +/* Micro SD */ |
| +static struct sh_mobile_sdhi_info sdhi2_info = { |
| + .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | |
| + TMIO_MMC_USE_GPIO_CD | |
| + TMIO_MMC_WRPROTECT_DISABLE, |
| + .tmio_caps = MMC_CAP_SD_HIGHSPEED, |
| + .tmio_ocr_mask = MMC_VDD_27_28 | MMC_VDD_28_29, |
| + .cd_gpio = GPIO_PORT13, |
| +}; |
| + |
| +static struct resource sdhi2_resources[] = { |
| + [0] = { |
| + .name = "SDHI2", |
| + .start = 0xee140000, |
| + .end = 0xee1400ff, |
| + .flags = IORESOURCE_MEM, |
| + }, |
| + [1] = { |
| + .name = SH_MOBILE_SDHI_IRQ_CARD_DETECT, |
| + .start = gic_spi(103), |
| + .flags = IORESOURCE_IRQ, |
| + }, |
| + [2] = { |
| + .name = SH_MOBILE_SDHI_IRQ_SDCARD, |
| + .start = gic_spi(104), |
| + .flags = IORESOURCE_IRQ, |
| + }, |
| + [3] = { |
| + .name = SH_MOBILE_SDHI_IRQ_SDIO, |
| + .start = gic_spi(105), |
| + .flags = IORESOURCE_IRQ, |
| + }, |
| +}; |
| + |
| +static struct platform_device sdhi2_device = { |
| + .name = "sh_mobile_sdhi", |
| + .id = 2, |
| + .num_resources = ARRAY_SIZE(sdhi2_resources), |
| + .resource = sdhi2_resources, |
| + .dev = { |
| + .platform_data = &sdhi2_info, |
| + }, |
| +}; |
| + |
| /* KEY */ |
| #define GPIO_KEY(c, g, d) { .code = c, .gpio = g, .desc = d, .active_low = 1 } |
| |
| @@ -511,6 +555,7 @@ static struct platform_device *kzm_devices[] __initdata = { |
| &lcdc_device, |
| &mmc_device, |
| &sdhi0_device, |
| + &sdhi2_device, |
| &gpio_keys_device, |
| &fsi_device, |
| &fsi_ak4648_device, |
| @@ -641,6 +686,16 @@ static void __init kzm_init(void) |
| gpio_request(GPIO_PORT15, NULL); |
| gpio_direction_output(GPIO_PORT15, 1); /* power */ |
| |
| + /* enable Micro SD */ |
| + gpio_request(GPIO_FN_SDHID2_0, NULL); |
| + gpio_request(GPIO_FN_SDHID2_1, NULL); |
| + gpio_request(GPIO_FN_SDHID2_2, NULL); |
| + gpio_request(GPIO_FN_SDHID2_3, NULL); |
| + gpio_request(GPIO_FN_SDHICMD2, NULL); |
| + gpio_request(GPIO_FN_SDHICLK2, NULL); |
| + gpio_request(GPIO_PORT14, NULL); |
| + gpio_direction_output(GPIO_PORT14, 1); /* power */ |
| + |
| /* I2C 3 */ |
| gpio_request(GPIO_FN_PORT27_I2C_SCL3, NULL); |
| gpio_request(GPIO_FN_PORT28_I2C_SDA3, NULL); |
| -- |
| 1.7.9.5 |
| |