diff options
author | Phoenix Jung <pjung@nvidia.com> | 2014-04-08 20:17:36 +0900 |
---|---|---|
committer | Sandeep Trasi <strasi@nvidia.com> | 2014-04-09 20:55:50 -0700 |
commit | ba886a5a969cbec915bda418cf4b2351d4875c79 (patch) | |
tree | 2aa52736feb5b55f5f6070730666587a287722be | |
parent | e70d9eaf9e473cfb828b53e73e3c348777a49139 (diff) |
ARM: tegra: vcm30t124: Added support Bluetooth.
Added support Bluetooth with bcm4330 and registered
bluedroid_pm for power management.
Bug 1440706
Bug 1481623
Change-Id: Ia02e4c00f2ec041caf79db8143aa6d8df9e788fd
Signed-off-by: Phoenix Jung <pjung@nvidia.com>
Reviewed-on: http://git-master/r/393423
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
Tested-by: Sandeep Trasi <strasi@nvidia.com>
-rw-r--r-- | arch/arm/mach-tegra/board-vcm30_t124-power.c | 14 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-vcm30_t124.c | 34 |
2 files changed, 42 insertions, 6 deletions
diff --git a/arch/arm/mach-tegra/board-vcm30_t124-power.c b/arch/arm/mach-tegra/board-vcm30_t124-power.c index df96af2cc0dc..590d1440446e 100644 --- a/arch/arm/mach-tegra/board-vcm30_t124-power.c +++ b/arch/arm/mach-tegra/board-vcm30_t124-power.c @@ -397,12 +397,14 @@ int __init vcm30_t124_soctherm_init(void) * WiFi stack. */ static struct gpio vcm30_t124_system_0_gpios[] = { - {MISCIO_WF_EN_GPIO, GPIOF_OUT_INIT_LOW, "wifi_en"}, - {MISCIO_WF_RST_GPIO, GPIOF_OUT_INIT_LOW, "wifi_rst"}, - {MISCIO_BT_WAKEUP_GPIO, GPIOF_OUT_INIT_HIGH, "bt_wk"}, - {MISCIO_ABB_RST_GPIO, GPIOF_OUT_INIT_HIGH, "ebb_rst"}, - {MISCIO_USER_LED2_GPIO, GPIOF_OUT_INIT_LOW, "usr_led2"}, - {MISCIO_USER_LED1_GPIO, GPIOF_OUT_INIT_LOW, "usr_led1"}, + {MISCIO_BT_RST_GPIO, GPIOF_OUT_INIT_HIGH, "bt_rst"}, + {MISCIO_WF_EN_GPIO, GPIOF_OUT_INIT_LOW, "wifi_en"}, + {MISCIO_WF_RST_GPIO, GPIOF_OUT_INIT_LOW, "wifi_rst"}, + {MISCIO_BT_EN_GPIO, GPIOF_OUT_INIT_HIGH, "bt_en"}, + {MISCIO_BT_WAKEUP_GPIO, GPIOF_OUT_INIT_HIGH, "bt_wk"}, + {MISCIO_ABB_RST_GPIO, GPIOF_OUT_INIT_HIGH, "ebb_rst"}, + {MISCIO_USER_LED2_GPIO, GPIOF_OUT_INIT_LOW, "usr_led2"}, + {MISCIO_USER_LED1_GPIO, GPIOF_OUT_INIT_LOW, "usr_led1"}, }; /* diff --git a/arch/arm/mach-tegra/board-vcm30_t124.c b/arch/arm/mach-tegra/board-vcm30_t124.c index cfea61c5daac..add48d97a6d9 100644 --- a/arch/arm/mach-tegra/board-vcm30_t124.c +++ b/arch/arm/mach-tegra/board-vcm30_t124.c @@ -48,6 +48,35 @@ static struct board_info board_info, display_board_info; +#if defined(CONFIG_ANDROID) && defined(CONFIG_BLUEDROID_PM) +static struct resource vcm30_t124_bluedroid_pm_resources[] = { + [0] = { + .name = "reset_gpio", + .start = MISCIO_BT_RST_GPIO, + .end = MISCIO_BT_RST_GPIO, + .flags = IORESOURCE_IO, + }, + [1] = { + .name = "shutdown_gpio", + .start = MISCIO_BT_EN_GPIO, + .end = MISCIO_BT_EN_GPIO, + .flags = IORESOURCE_IO, + }, +}; + +static struct platform_device vcm30_t124_bluedroid_pm_device = { + .name = "bluedroid_pm", + .id = 0, + .num_resources = ARRAY_SIZE(vcm30_t124_bluedroid_pm_resources), + .resource = vcm30_t124_bluedroid_pm_resources, +}; + +static noinline void __init vcm30_t124_setup_bluedroid_pm(void) +{ + platform_device_register(&vcm30_t124_bluedroid_pm_device); +} +#endif + /* * Set clock values as per automotive POR */ @@ -243,7 +272,9 @@ static struct tegra_clk_init_table vcm30t124_fixed_target_clk_table[] = { SET_FIXED_TARGET_RATE("uarta", 408000000), SET_FIXED_TARGET_RATE("uartb", 408000000), SET_FIXED_TARGET_RATE("uartc", 408000000), +#ifndef CONFIG_ANDROID SET_FIXED_TARGET_RATE("uartd", 408000000), +#endif }; static struct tegra_clk_init_table vcm30t124_a0x_i2s_clk_table[] = { @@ -751,6 +782,9 @@ static void __init tegra_vcm30_t124_late_init(void) register_therm_monitor(&vcm30t30_therm_monitor_data); #endif +#if defined(CONFIG_ANDROID) && defined(CONFIG_BLUEDROID_PM) + vcm30_t124_setup_bluedroid_pm(); +#endif } static void __init tegra_vcm30_t124_dt_init(void) |