summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-cardhu-sdhci.c
diff options
context:
space:
mode:
authorPavan Kunapuli <pkunapuli@nvidia.com>2011-01-25 08:03:33 +0530
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:45:30 -0800
commit460e4fb316ef9e3bce00f66aab10873f3ed9ce65 (patch)
treedba8df6e5c7208c6bc4e05151aecfa6d0374ae27 /arch/arm/mach-tegra/board-cardhu-sdhci.c
parent4c52f7341b271fa9bc29715a644c083fc4b69ba8 (diff)
board-cardhu:Adding cd and wp gpios for sdmmc1
Adding card detect and write protect gpios for sdmmc1 in cardhu odm kit. Initializing the gpios and providing the gpio number through platform data. Original-Change-Id: I222bb106d7a799cc34d05c47d891ecce241b9099 Reviewed-on: http://git-master/r/16854 Tested-by: Pavan Kunapuli <pkunapuli@nvidia.com> Reviewed-by: Venkata Nageswara Penumarty <vpenumarty@nvidia.com> Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com> Original-Change-Id: I3c74c246b799a5c64c920506a062cf546a751394 Rebase-Id: Rebc90efe856684ef240b615f626297e6fae64072
Diffstat (limited to 'arch/arm/mach-tegra/board-cardhu-sdhci.c')
-rw-r--r--arch/arm/mach-tegra/board-cardhu-sdhci.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu-sdhci.c b/arch/arm/mach-tegra/board-cardhu-sdhci.c
index f437cb3c82c0..1a88afc25540 100644
--- a/arch/arm/mach-tegra/board-cardhu-sdhci.c
+++ b/arch/arm/mach-tegra/board-cardhu-sdhci.c
@@ -124,10 +124,53 @@ static struct platform_device tegra_sdhci_device3 = {
},
};
+static int cardhu_sd_cd_gpio_init(void)
+{
+ unsigned int rc = 0;
+
+ rc = gpio_request(TEGRA_GPIO_PI5, "card_detect");
+ if (rc)
+ return rc;
+
+ tegra_gpio_enable(TEGRA_GPIO_PI5);
+
+ rc = gpio_direction_input(TEGRA_GPIO_PI5);
+ if (rc)
+ return rc;
+
+ return 0;
+}
+
+static int cardhu_sd_wp_gpio_init(void)
+{
+ unsigned int rc = 0;
+
+ rc = gpio_request(TEGRA_GPIO_PT3, "write_protect");
+ if (rc)
+ return rc;
+
+ tegra_gpio_enable(TEGRA_GPIO_PT3);
+
+ rc = gpio_direction_input(TEGRA_GPIO_PT3);
+ if (rc)
+ return rc;
+
+ return 0;
+}
+
int __init cardhu_sdhci_init(void)
{
+ unsigned int rc = 0;
platform_device_register(&tegra_sdhci_device3);
platform_device_register(&tegra_sdhci_device2);
+ rc = cardhu_sd_cd_gpio_init();
+ if (!rc)
+ tegra_sdhci_platform_data0.cd_gpio = TEGRA_GPIO_PI5;
+
+ rc = cardhu_sd_wp_gpio_init();
+ if (!rc)
+ tegra_sdhci_platform_data0.cd_gpio = TEGRA_GPIO_PT3;
+
platform_device_register(&tegra_sdhci_device0);
return 0;
}