diff options
author | Pavan Kunapuli <pkunapuli@nvidia.com> | 2011-01-25 08:03:33 +0530 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:45:30 -0800 |
commit | 460e4fb316ef9e3bce00f66aab10873f3ed9ce65 (patch) | |
tree | dba8df6e5c7208c6bc4e05151aecfa6d0374ae27 /arch/arm/mach-tegra/board-cardhu-sdhci.c | |
parent | 4c52f7341b271fa9bc29715a644c083fc4b69ba8 (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.c | 43 |
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; } |