diff options
author | Aaron Huang <aaronh@nvidia.com> | 2013-08-14 05:54:08 +0000 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2013-09-14 13:41:25 -0700 |
commit | 8fe79096ebe0d863faead75f0ab7397ced86f3b7 (patch) | |
tree | 17dd45b270dd8ebdf7532510e0b1b3f37ba5232c /arch/arm/mach-tegra | |
parent | f5b0942812fbaad8caf341d9de40a258921edb5c (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.c | 33 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-laguna-power.c | 10 |
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 = { |