[ARM] tegra: stingray: Make board init calls explicit
authorColin Cross <ccross@android.com>
Thu, 13 May 2010 23:43:53 +0000 (16:43 -0700)
committerColin Cross <ccross@android.com>
Wed, 6 Oct 2010 23:32:55 +0000 (16:32 -0700)
Change-Id: Id8e8a813d1a65babec791d188263caa168b9f8e3
Signed-off-by: Colin Cross <ccross@android.com>
arch/arm/mach-tegra/board-stingray-i2c.c
arch/arm/mach-tegra/board-stingray-keypad.c
arch/arm/mach-tegra/board-stingray-panel.c
arch/arm/mach-tegra/board-stingray-pinmux.c
arch/arm/mach-tegra/board-stingray-wifi.c
arch/arm/mach-tegra/board-stingray.c
arch/arm/mach-tegra/board-stingray.h

index 9112fda1cce8414519db042bf6f3b10cfbc21e5b..4caa46bff4d70e1ced9cba0af63445a79919e9c0 100644 (file)
@@ -26,6 +26,8 @@
 #include <linux/qtouch_obp_ts.h>
 #include <linux/interrupt.h>
 #include <linux/input.h>
+
+#include "board-stingray.h"
 #include "gpio-names.h"
 
 #define XMEGAT_BL_I2C_ADDR     0x35
@@ -298,11 +300,8 @@ static struct i2c_board_info __initdata stingray_i2c_bus1_board_info[] = {
         },
 };*/
 
-static int __init stingray_init_i2c(void)
+int __init stingray_i2c_init(void)
 {
-       if (!machine_is_stingray())
-               return 0;
-
        tegra_gpio_enable(STINGRAY_TOUCH_INT_N_GPIO);
        gpio_request(STINGRAY_TOUCH_INT_N_GPIO, "touch_irq");
        gpio_direction_input(STINGRAY_TOUCH_INT_N_GPIO);
@@ -321,6 +320,3 @@ static int __init stingray_init_i2c(void)
 
        return 0;
 }
-
-device_initcall(stingray_init_i2c);
-
index df4016d53012531c8b75412b4da57ab14ab97316..4e44c1a4694bc7b99f78d4244bf50bf18a3a19ac 100644 (file)
 #include <linux/gpio_event.h>
 #include <linux/keyreset.h>
 #include <linux/gpio.h>
+#include <asm/mach-types.h>
+
+#include "board-stingray.h"
 #include "gpio-names.h"
 
-static unsigned int tegra_row_gpios[] = {
+static unsigned int stingray_row_gpios[] = {
        TEGRA_GPIO_PR0,
        TEGRA_GPIO_PR1,
        TEGRA_GPIO_PR2
 };
-static unsigned int tegra_col_gpios[] = {
+static unsigned int stingray_col_gpios[] = {
        TEGRA_GPIO_PQ0,
        TEGRA_GPIO_PQ1,
        TEGRA_GPIO_PQ2
 };
 
-#define KEYMAP_INDEX(col, row) ((col)*ARRAY_SIZE(tegra_row_gpios) + (row))
+#define KEYMAP_INDEX(col, row) ((col)*ARRAY_SIZE(stingray_row_gpios) + (row))
 
-static const unsigned short tegra_p3_keymap[ARRAY_SIZE(tegra_col_gpios) *
-                                            ARRAY_SIZE(tegra_row_gpios)] = {
+static const unsigned short stingray_p3_keymap[ARRAY_SIZE(stingray_col_gpios) *
+                                            ARRAY_SIZE(stingray_row_gpios)] = {
        [KEYMAP_INDEX(0, 0)] = KEY_VOLUMEUP,
        [KEYMAP_INDEX(1, 0)] = KEY_CAMERA_FOCUS,
        [KEYMAP_INDEX(2, 0)] = KEY_MENU,
@@ -47,56 +50,56 @@ static const unsigned short tegra_p3_keymap[ARRAY_SIZE(tegra_col_gpios) *
        [KEYMAP_INDEX(2, 2)] = KEY_BACK,
 };
 
-static struct gpio_event_matrix_info tegra_keypad_matrix_info = {
+static struct gpio_event_matrix_info stingray_keypad_matrix_info = {
        .info.func = gpio_event_matrix_func,
-       .keymap = tegra_p3_keymap,
-       .output_gpios = tegra_col_gpios,
-       .input_gpios = tegra_row_gpios,
-       .noutputs = ARRAY_SIZE(tegra_col_gpios),
-       .ninputs = ARRAY_SIZE(tegra_row_gpios),
+       .keymap = stingray_p3_keymap,
+       .output_gpios = stingray_col_gpios,
+       .input_gpios = stingray_row_gpios,
+       .noutputs = ARRAY_SIZE(stingray_col_gpios),
+       .ninputs = ARRAY_SIZE(stingray_row_gpios),
        .settle_time.tv.nsec = 40 * NSEC_PER_USEC,
        .poll_time.tv.nsec = 20 * NSEC_PER_MSEC,
        .flags = GPIOKPF_LEVEL_TRIGGERED_IRQ | GPIOKPF_REMOVE_PHANTOM_KEYS |
                 GPIOKPF_PRINT_UNMAPPED_KEYS /*| GPIOKPF_PRINT_MAPPED_KEYS*/
 };
 
-static struct gpio_event_direct_entry tegra_keypad_switch_map[] = {
+static struct gpio_event_direct_entry stingray_keypad_switch_map[] = {
 };
 
-static struct gpio_event_input_info tegra_keypad_switch_info = {
+static struct gpio_event_input_info stingray_keypad_switch_info = {
        .info.func = gpio_event_input_func,
        .flags = 0,
        .type = EV_SW,
-       .keymap = tegra_keypad_switch_map,
-       .keymap_size = ARRAY_SIZE(tegra_keypad_switch_map)
+       .keymap = stingray_keypad_switch_map,
+       .keymap_size = ARRAY_SIZE(stingray_keypad_switch_map)
 };
 
-static struct gpio_event_info *tegra_keypad_info[] = {
-       &tegra_keypad_matrix_info.info,
-       &tegra_keypad_switch_info.info,
+static struct gpio_event_info *stingray_keypad_info[] = {
+       &stingray_keypad_matrix_info.info,
+       &stingray_keypad_switch_info.info,
 };
 
-static struct gpio_event_platform_data tegra_keypad_data = {
-       .name = "tegra-keypad",
-       .info = tegra_keypad_info,
-       .info_count = ARRAY_SIZE(tegra_keypad_info)
+static struct gpio_event_platform_data stingray_keypad_data = {
+       .name = "stingray-keypad",
+       .info = stingray_keypad_info,
+       .info_count = ARRAY_SIZE(stingray_keypad_info)
 };
 
-static struct platform_device tegra_keypad_device = {
+static struct platform_device stingray_keypad_device = {
        .name = GPIO_EVENT_DEV_NAME,
        .id = 0,
        .dev            = {
-               .platform_data  = &tegra_keypad_data,
+               .platform_data  = &stingray_keypad_data,
        },
 };
 
-static int tegra_reset_keys_up[] = {
+static int stingray_reset_keys_up[] = {
        BTN_MOUSE,              /* XXX */
         0
 };
 
-static struct keyreset_platform_data tegra_reset_keys_pdata = {
-       .keys_up = tegra_reset_keys_up,
+static struct keyreset_platform_data stingray_reset_keys_pdata = {
+       .keys_up = stingray_reset_keys_up,
        .keys_down = {
                KEY_LEFTSHIFT,
                KEY_LEFTALT,
@@ -105,12 +108,12 @@ static struct keyreset_platform_data tegra_reset_keys_pdata = {
        },
 };
 
-static struct platform_device tegra_reset_keys_device = {
+static struct platform_device stingray_reset_keys_device = {
          .name = KEYRESET_NAME,
-         .dev.platform_data = &tegra_reset_keys_pdata,
+         .dev.platform_data = &stingray_reset_keys_pdata,
 };
 
-static int __init tegra_init_keypad(void)
+int __init stingray_keypad_init(void)
 {
        tegra_gpio_enable(TEGRA_GPIO_PR0);
        tegra_gpio_enable(TEGRA_GPIO_PR1);
@@ -118,8 +121,6 @@ static int __init tegra_init_keypad(void)
        tegra_gpio_enable(TEGRA_GPIO_PQ0);
        tegra_gpio_enable(TEGRA_GPIO_PQ1);
        tegra_gpio_enable(TEGRA_GPIO_PQ2);
-       platform_device_register(&tegra_reset_keys_device);
-       return platform_device_register(&tegra_keypad_device);
+       platform_device_register(&stingray_reset_keys_device);
+       return platform_device_register(&stingray_keypad_device);
 }
-
-device_initcall(tegra_init_keypad);
index ef744c1343992a5471ef557772a1e1e635e0510a..93a6d6553314a79823fabe9ffb1bf840c6ba5e76 100644 (file)
@@ -58,18 +58,7 @@ static struct platform_device tegra_fb_device = {
        },
 };
 
-static int __init stingray_init_panel(void) {
-       int ret;
-
-       if (!machine_is_stingray())
-               return 0;
-
-       ret = platform_device_register(&tegra_fb_device);
-       if (ret != 0)
-               return ret;
-
-       return 0;
+int __init stingray_panel_init(void) {
+       return platform_device_register(&tegra_fb_device);
 }
 
-device_initcall(stingray_init_panel);
-
index 29212bbe7024b423b2e2b87d8ea961f705cd52cb..8f329887e3e161a5e80cd72e48e5c09d17b73100 100644 (file)
 
 #include <linux/kernel.h>
 #include <linux/gpio.h>
+#include <linux/init.h>
 #include <mach/pinmux.h>
 
 #include "gpio-names.h"
 
 #include "board-stingray.h"
 
-static struct tegra_pingroup_config stingray_pinmux[] = {
+static __initdata struct tegra_pingroup_config stingray_pinmux[] = {
        {TEGRA_PINGROUP_ATA,   TEGRA_MUX_GMI,           TEGRA_PUPD_PULL_UP,   TEGRA_TRI_NORMAL},
        {TEGRA_PINGROUP_ATB,   TEGRA_MUX_SDIO4,         TEGRA_PUPD_PULL_UP,   TEGRA_TRI_NORMAL},
        {TEGRA_PINGROUP_ATC,   TEGRA_MUX_GMI,           TEGRA_PUPD_PULL_UP,   TEGRA_TRI_NORMAL},
@@ -141,7 +142,7 @@ static struct tegra_pingroup_config stingray_pinmux[] = {
        {TEGRA_PINGROUP_XM2D,  TEGRA_MUX_NONE,          TEGRA_PUPD_NORMAL,    TEGRA_TRI_NORMAL},
 };
 
-void stingray_pinmux_init(void)
+void __init stingray_pinmux_init(void)
 {
        tegra_pinmux_config_table(stingray_pinmux, ARRAY_SIZE(stingray_pinmux));
 
index 482d7dd1de42f2c67973c749d727d8ec5dcd25db..e591109d72f4234eac9b89cfc76c36b4c800d059 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/wlan_plat.h>
 #include <mach/sdhci.h>
 
+#include "board-stingray.h"
 #include "gpio-names.h"
 
 #define STINGRAY_WLAN_IRQ      TEGRA_GPIO_PU5
@@ -195,18 +196,10 @@ static void __init stingray_wlan_gpio(void)
        gpio_direction_input(STINGRAY_WLAN_IRQ);
 }
 
-static int __init stingray_wlan_init(void)
+int __init stingray_wlan_init(void)
 {
-       int ret;
-
-       if (!machine_is_stingray())
-               return 0;
-
        pr_debug("%s: start\n", __func__);
        stingray_wlan_gpio();
        stingray_init_wifi_mem();
-       ret = platform_device_register(&stingray_wifi_device);
-       return ret;
+       return platform_device_register(&stingray_wifi_device);
 }
-
-late_initcall(stingray_wlan_init);
index 34e62fcc0d580d81d45276eebe35b7d37c0078d5..69cf93363060bc6c047f9a9da68b25d6d8871f28 100644 (file)
@@ -202,6 +202,14 @@ static struct platform_device *stingray_devices[] __initdata = {
        &androidusb_device,
        &pda_power_device,
        &hsuart,
+       &tegra_i2c_device1,
+       &tegra_i2c_device2,
+       &tegra_i2c_device3,
+       &tegra_i2c_device4,
+       &tegra_spi_device1,
+       &tegra_spi_device2,
+       &tegra_spi_device3,
+       &tegra_spi_device4,
 };
 
 extern struct tegra_sdhci_platform_data stingray_wifi_data; /* sdhci2 */
@@ -267,14 +275,18 @@ static void __init tegra_stingray_init(void)
 
        stingray_pinmux_init();
 
-       stingray_sdhci_init();
-
        tegra_clk_init_from_table(stingray_clk_init_table);
 
        clk = tegra_get_clock_by_name("uartb");
        debug_uart_platform_data[0].uartclk = clk_get_rate(clk);
 
        platform_add_devices(stingray_devices, ARRAY_SIZE(stingray_devices));
+
+       stingray_keypad_init();
+       stingray_i2c_init();
+       stingray_panel_init();
+       stingray_sdhci_init();
+       stingray_wlan_init();
 }
 
 MACHINE_START(STINGRAY, "stingray")
index 257b08667c5a449b22688f1b480a58a7042741c7..8e84cacc3fd4447574ddb0032d33db44fe751052 100644 (file)
@@ -18,5 +18,9 @@
 #define _MACH_TEGRA_BOARD_STINGRAY_H
 
 void stingray_pinmux_init(void);
+int stingray_panel_init(void);
+int stingray_keypad_init(void);
+int stingray_i2c_init(void);
+int stingray_wlan_init(void);
 
 #endif