From 446f45463fe879487d8bd0cc38d6e2b5056bcd00 Mon Sep 17 00:00:00 2001 From: Pavankumar Kondeti Date: Wed, 1 Feb 2012 13:57:13 +0530 Subject: [PATCH] USB: OTG: msm: Disable PMIC ID pullup before enabling ACA ID detection PMIC internal pullup resistor to be between 75k - 480k. The ACA pulldown resistor can range from 36k - 220k. So leaving the PMIC internal pullup on while the PHY does ACA detection would cause problems. Change-Id: I70e68094ce96a79531b7d3173c9a23fdcc52840d Signed-off-by: Pavankumar Kondeti --- drivers/usb/otg/msm_otg.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/usb/otg/msm_otg.c b/drivers/usb/otg/msm_otg.c index 30cbdd8e197..4e1895ff0f6 100644 --- a/drivers/usb/otg/msm_otg.c +++ b/drivers/usb/otg/msm_otg.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #include @@ -571,6 +572,9 @@ static int msm_otg_reset(struct otg_transceiver *otg) writel_relaxed(val, USB_OTGSC); ulpi_write(otg, ulpi_val, ULPI_USB_INT_EN_RISE); ulpi_write(otg, ulpi_val, ULPI_USB_INT_EN_FALL); + } else if (pdata->otg_control == OTG_PMIC_CONTROL) { + /* Enable PMIC pull-up */ + pm8xxx_usb_id_pullup(1); } return 0; @@ -1307,6 +1311,8 @@ static void msm_chg_enable_aca_det(struct msm_otg *motg) ulpi_write(otg, 0x01, 0x0C); ulpi_write(otg, 0x10, 0x0F); ulpi_write(otg, 0x10, 0x12); + /* Disable PMIC ID pull-up */ + pm8xxx_usb_id_pullup(0); /* Enable ACA ID detection */ ulpi_write(otg, 0x20, 0x85); aca_id_turned_on = true;