summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Hsu <mhsu@nvidia.com>2011-08-10 11:59:27 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:52:39 -0800
commita9035c54752ca6e2631d45cf8e886a2d2689273b (patch)
treef9301848c7cec2fee2ca7d00836bb637ee7c5da2
parent1486dfe88e07a1c6a54992c6e5e814616c3292cb (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/Kconfig16
-rw-r--r--arch/arm/mach-tegra/Makefile6
-rw-r--r--arch/arm/mach-tegra/board-cardhu.c4
-rw-r--r--arch/arm/mach-tegra/board-enterprise-pinmux.c2
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),