From 8beb46f564c986a06f27ffe16f924eadfd11c82a Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 13 May 2010 16:43:53 -0700 Subject: [PATCH] [ARM] tegra: stingray: Make board init calls explicit Change-Id: Id8e8a813d1a65babec791d188263caa168b9f8e3 Signed-off-by: Colin Cross --- arch/arm/mach-tegra/board-stingray-i2c.c | 10 +-- arch/arm/mach-tegra/board-stingray-keypad.c | 69 +++++++++++---------- arch/arm/mach-tegra/board-stingray-panel.c | 15 +---- arch/arm/mach-tegra/board-stingray-pinmux.c | 5 +- arch/arm/mach-tegra/board-stingray-wifi.c | 13 +--- arch/arm/mach-tegra/board-stingray.c | 16 ++++- arch/arm/mach-tegra/board-stingray.h | 4 ++ 7 files changed, 64 insertions(+), 68 deletions(-) diff --git a/arch/arm/mach-tegra/board-stingray-i2c.c b/arch/arm/mach-tegra/board-stingray-i2c.c index 9112fda1cce8..4caa46bff4d7 100644 --- a/arch/arm/mach-tegra/board-stingray-i2c.c +++ b/arch/arm/mach-tegra/board-stingray-i2c.c @@ -26,6 +26,8 @@ #include #include #include + +#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); - diff --git a/arch/arm/mach-tegra/board-stingray-keypad.c b/arch/arm/mach-tegra/board-stingray-keypad.c index df4016d53012..4e44c1a4694b 100644 --- a/arch/arm/mach-tegra/board-stingray-keypad.c +++ b/arch/arm/mach-tegra/board-stingray-keypad.c @@ -19,23 +19,26 @@ #include #include #include +#include + +#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); diff --git a/arch/arm/mach-tegra/board-stingray-panel.c b/arch/arm/mach-tegra/board-stingray-panel.c index ef744c134399..93a6d6553314 100644 --- a/arch/arm/mach-tegra/board-stingray-panel.c +++ b/arch/arm/mach-tegra/board-stingray-panel.c @@ -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); - diff --git a/arch/arm/mach-tegra/board-stingray-pinmux.c b/arch/arm/mach-tegra/board-stingray-pinmux.c index 29212bbe7024..8f329887e3e1 100644 --- a/arch/arm/mach-tegra/board-stingray-pinmux.c +++ b/arch/arm/mach-tegra/board-stingray-pinmux.c @@ -16,13 +16,14 @@ #include #include +#include #include #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)); diff --git a/arch/arm/mach-tegra/board-stingray-wifi.c b/arch/arm/mach-tegra/board-stingray-wifi.c index 482d7dd1de42..e591109d72f4 100644 --- a/arch/arm/mach-tegra/board-stingray-wifi.c +++ b/arch/arm/mach-tegra/board-stingray-wifi.c @@ -12,6 +12,7 @@ #include #include +#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); diff --git a/arch/arm/mach-tegra/board-stingray.c b/arch/arm/mach-tegra/board-stingray.c index 34e62fcc0d58..69cf93363060 100644 --- a/arch/arm/mach-tegra/board-stingray.c +++ b/arch/arm/mach-tegra/board-stingray.c @@ -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") diff --git a/arch/arm/mach-tegra/board-stingray.h b/arch/arm/mach-tegra/board-stingray.h index 257b08667c5a..8e84cacc3fd4 100644 --- a/arch/arm/mach-tegra/board-stingray.h +++ b/arch/arm/mach-tegra/board-stingray.h @@ -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 -- 2.34.1