arm: tegra: cardhu: separate pinmux and gpio init
Pritesh Raithatha [Fri, 12 Oct 2012 14:19:15 +0000 (19:19 +0530)]
Bug 1003210

Change-Id: If26ee43f7ee37e48998ec91a4f163f3f35aebbc9
Signed-off-by: Pritesh Raithatha <praithatha@nvidia.com>
Reviewed-on: http://git-master/r/144101
Reviewed-by: Mrutyunjay Sawant <msawant@nvidia.com>
Tested-by: Mrutyunjay Sawant <msawant@nvidia.com>

arch/arm/mach-tegra/board-cardhu-pinmux.c
arch/arm/mach-tegra/board-cardhu.c
arch/arm/mach-tegra/board-cardhu.h

index a485ca7..e2b1688 100644 (file)
@@ -610,7 +610,7 @@ static __initdata struct tegra_pingroup_config gmi_pins_269[] = {
        DEFAULT_PINMUX(GMI_WP_N,        NAND,           NORMAL,     NORMAL,       INPUT),
 };
 
-static void __init cardhu_pinmux_audio_init(void)
+static void __init cardhu_audio_gpio_init(void)
 {
        int ret = gpio_request(TEGRA_GPIO_CDC_IRQ, "wm8903");
        if (ret < 0) {
@@ -694,6 +694,14 @@ static void __init cardhu_gpio_init_configure(void)
        }
 }
 
+int __init cardhu_gpio_init(void)
+{
+       cardhu_gpio_init_configure();
+       cardhu_audio_gpio_init();
+
+       return 0;
+}
+
 int __init cardhu_pinmux_init(void)
 {
        struct board_info board_info;
@@ -701,8 +709,6 @@ int __init cardhu_pinmux_init(void)
 
        tegra30_default_pinmux();
 
-       cardhu_gpio_init_configure();
-
        tegra_pinmux_config_table(cardhu_pinmux_common, ARRAY_SIZE(cardhu_pinmux_common));
        tegra_drive_pinmux_config_table(cardhu_drive_pinmux,
                                        ARRAY_SIZE(cardhu_drive_pinmux));
@@ -764,8 +770,6 @@ int __init cardhu_pinmux_init(void)
                break;
        }
 
-       cardhu_pinmux_audio_init();
-
        return 0;
 }
 
index 2fab8a5..8d85cf1 100644 (file)
@@ -1384,6 +1384,7 @@ static void __init tegra_cardhu_init(void)
        tegra_smmu_init();
        tegra_soc_device_init("cardhu");
        cardhu_pinmux_init();
+       cardhu_gpio_init();
        cardhu_i2c_init();
        cardhu_spi_init();
        cardhu_usb_init();
index 49c1abf..ca44496 100644 (file)
@@ -207,6 +207,7 @@ int cardhu_regulator_init(void);
 int cardhu_suspend_init(void);
 int cardhu_sdhci_init(void);
 int cardhu_pinmux_init(void);
+int cardhu_gpio_init(void);
 int cardhu_panel_init(void);
 int cardhu_sensors_init(void);
 int cardhu_kbc_init(void);