summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra
diff options
context:
space:
mode:
authorAaron Huang <aaronh@nvidia.com>2013-08-14 05:54:08 +0000
committerDan Willemsen <dwillemsen@nvidia.com>2013-09-14 13:41:25 -0700
commit8fe79096ebe0d863faead75f0ab7397ced86f3b7 (patch)
tree17dd45b270dd8ebdf7532510e0b1b3f37ba5232c /arch/arm/mach-tegra
parentf5b0942812fbaad8caf341d9de40a258921edb5c (diff)
ARM: tegra: laguna: USB ID detection using AMS PMU
Change USB ID detection method by using AS3722 for laguna to save power Bug 1347819 Change-Id: I8e6bf028ca3377b51ed1f1bff240d29ec2a7a198 Signed-off-by: Aaron Huang <aaronh@nvidia.com> Reviewed-on: http://git-master/r/261356 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra')
-rw-r--r--arch/arm/mach-tegra/board-ardbeg.c33
-rw-r--r--arch/arm/mach-tegra/board-laguna-power.c10
2 files changed, 32 insertions, 11 deletions
diff --git a/arch/arm/mach-tegra/board-ardbeg.c b/arch/arm/mach-tegra/board-ardbeg.c
index 76a0ca080042..961a41c0da2b 100644
--- a/arch/arm/mach-tegra/board-ardbeg.c
+++ b/arch/arm/mach-tegra/board-ardbeg.c
@@ -677,19 +677,30 @@ static void ardbeg_usb_init(void)
int modem_id = tegra_get_modem_id();
struct board_info bi;
- tegra_get_pmu_board_info(&bi);
-
- switch (bi.board_id) {
- case BOARD_E1733:
- /* Host cable is detected through USB ID */
- tegra_udc_pdata.id_det_type = TEGRA_USB_ID;
- tegra_ehci1_utmi_pdata.id_det_type = TEGRA_USB_ID;
- break;
- case BOARD_E1735:
- /* Host cable is detected through PMU Interrupt */
+ if (board_info.board_id == BOARD_PM359 ||
+ board_info.board_id == BOARD_PM358 ||
+ board_info.board_id == BOARD_PM363) {
+ /* Laguna */
+ /* Host cable is detected through AMS PMU Interrupt */
tegra_udc_pdata.id_det_type = TEGRA_USB_PMU_ID;
tegra_ehci1_utmi_pdata.id_det_type = TEGRA_USB_PMU_ID;
- tegra_otg_pdata.id_extcon_dev_name = "palmas-extcon";
+ tegra_otg_pdata.id_extcon_dev_name = "as3722-extcon";
+ } else {
+ /* Ardbeg */
+ tegra_get_pmu_board_info(&bi);
+
+ switch (bi.board_id) {
+ case BOARD_E1733:
+ /* Host cable is detected through USB ID */
+ tegra_udc_pdata.id_det_type = TEGRA_USB_ID;
+ tegra_ehci1_utmi_pdata.id_det_type = TEGRA_USB_ID;
+ break;
+ case BOARD_E1735:
+ /* Host cable is detected through PMU Interrupt */
+ tegra_udc_pdata.id_det_type = TEGRA_USB_PMU_ID;
+ tegra_ehci1_utmi_pdata.id_det_type = TEGRA_USB_PMU_ID;
+ tegra_otg_pdata.id_extcon_dev_name = "palmas-extcon";
+ }
}
if (!(usb_port_owner_info & UTMI1_PORT_OWNER_XUSB)) {
diff --git a/arch/arm/mach-tegra/board-laguna-power.c b/arch/arm/mach-tegra/board-laguna-power.c
index 59b114890d39..dd28fc5df98e 100644
--- a/arch/arm/mach-tegra/board-laguna-power.c
+++ b/arch/arm/mach-tegra/board-laguna-power.c
@@ -272,6 +272,15 @@ static struct as3722_rtc_platform_data as3722_rtc_pdata = {
.enable_clk32k = 1,
};
+static struct as3722_adc_extcon_platform_data as3722_adc_extcon_pdata = {
+ .connection_name = "as3722-extcon",
+ .enable_adc1_continuous_mode = true,
+ .enable_low_voltage_range = true,
+ .adc_channel = 12,
+ .hi_threshold = 0x100,
+ .low_threshold = 0x80,
+};
+
static struct as3722_platform_data as3722_pdata = {
.reg_pdata[AS3722_LDO0] = &as3722_ldo0_reg_pdata,
.reg_pdata[AS3722_LDO1] = &as3722_ldo1_reg_pdata,
@@ -303,6 +312,7 @@ static struct as3722_platform_data as3722_pdata = {
.use_power_off = true,
.enable_ldo3_tracking = true,
.disabe_ldo3_tracking_suspend = true,
+ .extcon_pdata = &as3722_adc_extcon_pdata,
};
static struct pca953x_platform_data tca6416_pdata = {