diff options
author | Michael Hsu <mhsu@nvidia.com> | 2011-08-10 11:59:27 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:52:39 -0800 |
commit | a9035c54752ca6e2631d45cf8e886a2d2689273b (patch) | |
tree | f9301848c7cec2fee2ca7d00836bb637ee7c5da2 | |
parent | 1486dfe88e07a1c6a54992c6e5e814616c3292cb (diff) |
arm: tegra: enterprise: Add drivers for flashless XMM modem
XMM modem requires GPIO power on sequence before modem
software can be downloaded to it.
BUG 828389
Change-Id: Ib8cf2a16a8b05a586d2f0b3bb57bad106a889cd1
Reviewed-on: http://git-master/r/46801
(cherry picked from commit 675f98979d6c6a281631d6590be5c7b6e5352b6f)
Reviewed-on: http://git-master/r/65958
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Rebase-Id: Red280cdd7669487e2368b75d4e1cd1c2130b3829
-rw-r--r-- | arch/arm/mach-tegra/Kconfig | 16 | ||||
-rw-r--r-- | arch/arm/mach-tegra/Makefile | 6 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-cardhu.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-enterprise-pinmux.c | 2 |
4 files changed, 25 insertions, 3 deletions
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig index d2ca9e1d9cd7..171a04d1e8d0 100644 --- a/arch/arm/mach-tegra/Kconfig +++ b/arch/arm/mach-tegra/Kconfig @@ -400,6 +400,21 @@ config TEGRA_USB_MODEM_POWER This option enables support for out-of_band remote wakeup, selective suspend and system suspend/resume. +config TEGRA_BB_XMM_POWER + bool "Enable power driver for XMM modem" + default n + help + Enables power driver which controls gpio signals to XMM modem. + +config TEGRA_BB_XMM_POWER2 + tristate "Enable power driver for XMM modem (flashless)" + default n + help + Enables power driver which controls gpio signals to XMM modem + (in flashless configuration). User-mode application must + insert this LKM to initiate 2nd USB enumeration power sequence + - after modem software has been downloaded to flashless device. + config TEGRA_THERMAL_SYSFS bool "Enable Thermal driver to use Thermal Sysfs infrastructure" depends on THERMAL @@ -415,3 +430,4 @@ config TEGRA_PLLM_RESTRICTED disabled, PLLM is used as a clock source with no restrictions (which may effectively increase lower limit for core voltage). endif + diff --git a/arch/arm/mach-tegra/Makefile b/arch/arm/mach-tegra/Makefile index 7e2bdfbe876f..5ef2a5173cd3 100644 --- a/arch/arm/mach-tegra/Makefile +++ b/arch/arm/mach-tegra/Makefile @@ -156,8 +156,6 @@ obj-${CONFIG_MACH_CARDHU} += board-cardhu-sdhci.o obj-${CONFIG_MACH_CARDHU} += board-cardhu-sensors.o obj-${CONFIG_MACH_CARDHU} += board-cardhu-memory.o obj-${CONFIG_MACH_CARDHU} += board-cardhu-powermon.o -obj-${CONFIG_MACH_CARDHU} += baseband-xmm-power.o -obj-m += baseband-xmm-power2.o obj-${CONFIG_MACH_TEGRA_ENTERPRISE} += board-enterprise.o obj-${CONFIG_MACH_TEGRA_ENTERPRISE} += board-enterprise-panel.o @@ -168,3 +166,7 @@ obj-${CONFIG_MACH_TEGRA_ENTERPRISE} += board-enterprise-power.o obj-${CONFIG_MACH_TEGRA_ENTERPRISE} += board-enterprise-baseband.o obj-${CONFIG_MACH_TEGRA_ENTERPRISE} += board-enterprise-kbc.o obj-${CONFIG_MACH_TEGRA_ENTERPRISE} += board-enterprise-sensors.o + +obj-${CONFIG_TEGRA_BB_XMM_POWER} += baseband-xmm-power.o +obj-${CONFIG_TEGRA_BB_XMM_POWER2} += baseband-xmm-power2.o + diff --git a/arch/arm/mach-tegra/board-cardhu.c b/arch/arm/mach-tegra/board-cardhu.c index bb49def7d14f..10267288f805 100644 --- a/arch/arm/mach-tegra/board-cardhu.c +++ b/arch/arm/mach-tegra/board-cardhu.c @@ -757,13 +757,17 @@ static struct usb_phy_plat_data tegra_usb_phy_pdata[] = { static int cardu_usb_hsic_postsupend(void) { +#ifdef CONFIG_TEGRA_BB_XMM_POWER baseband_xmm_set_power_status(BBXMM_PS_L2); +#endif return 0; } static int cardu_usb_hsic_preresume(void) { +#ifdef CONFIG_TEGRA_BB_XMM_POWER baseband_xmm_set_power_status(BBXMM_PS_L2TOL0); +#endif return 0; } diff --git a/arch/arm/mach-tegra/board-enterprise-pinmux.c b/arch/arm/mach-tegra/board-enterprise-pinmux.c index 8fba8248ccd1..6b10ac43c427 100644 --- a/arch/arm/mach-tegra/board-enterprise-pinmux.c +++ b/arch/arm/mach-tegra/board-enterprise-pinmux.c @@ -244,7 +244,7 @@ static __initdata struct tegra_pingroup_config enterprise_pinmux[] = { DEFAULT_PINMUX(GPIO_PU2, UARTA, NORMAL, NORMAL, INPUT), DEFAULT_PINMUX(GPIO_PU3, UARTA, NORMAL, NORMAL, OUTPUT), DEFAULT_PINMUX(GPIO_PU5, PWM2, NORMAL, NORMAL, INPUT), - DEFAULT_PINMUX(GPIO_PU6, RSVD1, NORMAL, NORMAL, INPUT), + DEFAULT_PINMUX(GPIO_PU6, PWM3, NORMAL, NORMAL, OUTPUT), DEFAULT_PINMUX(DAP4_FS, I2S3, NORMAL, NORMAL, INPUT), DEFAULT_PINMUX(DAP4_DIN, I2S3, NORMAL, NORMAL, INPUT), DEFAULT_PINMUX(DAP4_DOUT, I2S3, NORMAL, NORMAL, INPUT), |