aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-shmobile/board-mackerel.c
diff options
context:
space:
mode:
authorYusuke Goda <yusuke.goda.sx@renesas.com>2011-01-07 09:48:36 +0000
committerPaul Mundt <lethal@linux-sh.org>2011-01-11 12:54:48 +0900
commitda5d1f4c9001c0aa2092019bdfa8f41e9985d163 (patch)
tree78f4b749872675ebe9711da0ca72d65bf54c2f29 /arch/arm/mach-shmobile/board-mackerel.c
parentMerge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 (diff)
downloadlinux-dev-da5d1f4c9001c0aa2092019bdfa8f41e9985d163.tar.xz
linux-dev-da5d1f4c9001c0aa2092019bdfa8f41e9985d163.zip
ARM: mach-shmobile: mackerel: Add support get_cd in CN23
Signed-off-by: Yusuke Goda <yusuke.goda.sx@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/arm/mach-shmobile/board-mackerel.c')
-rw-r--r--arch/arm/mach-shmobile/board-mackerel.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c
index 5bcf5c1e1399..f0547dcb1d8c 100644
--- a/arch/arm/mach-shmobile/board-mackerel.c
+++ b/arch/arm/mach-shmobile/board-mackerel.c
@@ -729,6 +729,15 @@ static struct platform_device sdhi1_device = {
};
#endif
+/*
+ * The card detect pin of the top SD/MMC slot (CN23) is active low and is
+ * connected to GPIO SCIFB_SCK of SH7372 (GPIO_PORT162).
+ */
+static int slot_cn23_get_cd(struct platform_device *pdev)
+{
+ return !gpio_get_value(GPIO_PORT162);
+}
+
/* SDHI2 */
static struct sh_mobile_sdhi_info sdhi2_info = {
.dma_slave_tx = SHDMA_SLAVE_SDHI2_TX,
@@ -736,6 +745,7 @@ static struct sh_mobile_sdhi_info sdhi2_info = {
.tmio_flags = TMIO_MMC_WRPROTECT_DISABLE,
.tmio_caps = MMC_CAP_SD_HIGHSPEED |
MMC_CAP_NEEDS_POLL,
+ .get_cd = slot_cn23_get_cd,
};
static struct resource sdhi2_resources[] = {
@@ -1127,6 +1137,10 @@ static void __init mackerel_init(void)
gpio_request(GPIO_FN_SDHID2_1, NULL);
gpio_request(GPIO_FN_SDHID2_0, NULL);
+ /* card detect pin for microSD slot (CN23) */
+ gpio_request(GPIO_PORT162, NULL);
+ gpio_direction_input(GPIO_PORT162);
+
/* MMCIF */
gpio_request(GPIO_FN_MMCD0_0, NULL);
gpio_request(GPIO_FN_MMCD0_1, NULL);