summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVic Yang <victoryang@chromium.org>2012-08-28 04:38:15 +0800
committerGerrit <chrome-bot@google.com>2012-08-28 16:39:32 -0700
commit773e3c369f0f6bffa01065bb3f96f4774380eda7 (patch)
treed30c9bbbb481a1e8fce0df598217b6da54d896ac
parenta90949661214a14a5f299181267db45a67b6b81e (diff)
downloadchrome-ec-773e3c369f0f6bffa01065bb3f96f4774380eda7.tar.gz
Revisit USB charge modes
"Auto" mode is observed to cause problems and thus is removed. This leaves only three modes: - Standard downstream port. USB 2.0 mode. 500mA. - Charging downstream port. BC1.2. 1500mA. - Dedicated charging port. BC1.2. 1500mA. BUG=chrome-os-partner:11550 TEST=Check all modes work as expected. Check no discharge between the first two modes. BRANCH=link CQ-DEPEND=31639 Change-Id: I41102a8bc3ac34ff9a1bf4e47c89cdb93a2c4eb5 Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/31616
-rw-r--r--common/usb_charge.c43
-rw-r--r--include/usb_charge.h16
2 files changed, 25 insertions, 34 deletions
diff --git a/common/usb_charge.c b/common/usb_charge.c
index 6495a491c0..67c9b369cf 100644
--- a/common/usb_charge.c
+++ b/common/usb_charge.c
@@ -62,8 +62,8 @@ static void usb_charge_set_ilim(int port_id, int sel)
static int usb_charge_all_ports_on(void)
{
- usb_charge_set_mode(0, USB_CHARGE_MODE_DOWNSTREAM_500MA);
- usb_charge_set_mode(1, USB_CHARGE_MODE_DOWNSTREAM_500MA);
+ usb_charge_set_mode(0, USB_CHARGE_MODE_SDP2);
+ usb_charge_set_mode(1, USB_CHARGE_MODE_SDP2);
return EC_SUCCESS;
}
@@ -89,23 +89,19 @@ int usb_charge_set_mode(int port_id, enum usb_charge_mode mode)
usb_charge_set_enabled(port_id, 1);
switch (mode) {
- case USB_CHARGE_MODE_CHARGE_AUTO:
- usb_charge_set_control_mode(port_id, 1);
- usb_charge_set_ilim(port_id, 1);
- break;
- case USB_CHARGE_MODE_CHARGE_BC12:
- usb_charge_set_control_mode(port_id, 4);
- break;
- case USB_CHARGE_MODE_DOWNSTREAM_500MA:
- usb_charge_set_control_mode(port_id, 2);
- usb_charge_set_ilim(port_id, 0);
- break;
- case USB_CHARGE_MODE_DOWNSTREAM_1500MA:
- usb_charge_set_control_mode(port_id, 2);
- usb_charge_set_ilim(port_id, 1);
- break;
- default:
- return EC_ERROR_UNKNOWN;
+ case USB_CHARGE_MODE_SDP2:
+ usb_charge_set_control_mode(port_id, 7);
+ usb_charge_set_ilim(port_id, 0);
+ break;
+ case USB_CHARGE_MODE_CDP:
+ usb_charge_set_control_mode(port_id, 7);
+ usb_charge_set_ilim(port_id, 1);
+ break;
+ case USB_CHARGE_MODE_DCP_SHORT:
+ usb_charge_set_control_mode(port_id, 4);
+ break;
+ default:
+ return EC_ERROR_UNKNOWN;
}
charge_mode[port_id] = mode;
@@ -136,13 +132,12 @@ static int command_set_mode(int argc, char **argv)
return usb_charge_set_mode(port_id, mode);
}
DECLARE_CONSOLE_COMMAND(usbchargemode, command_set_mode,
- "<port> <0 | 1 | 2 | 3 | 4>",
+ "<port> <0 | 1 | 2 | 3>",
"Set USB charge mode",
"Modes: 0=Disabled.\n"
- " 1=Dedicated charging. Auto select.\n"
- " 2=Dedicated charging. BC 1.2.\n"
- " 3=Downstream. Max 500mA.\n"
- " 4=Downstream. Max 1.5A.\n");
+ " 1=Standard downstream port.\n"
+ " 2=Charging downstream port, BC 1.2.\n"
+ " 3=Dedicated charging port, BC 1.2.\n");
/*****************************************************************************/
diff --git a/include/usb_charge.h b/include/usb_charge.h
index b73f57a684..ca012d9af6 100644
--- a/include/usb_charge.h
+++ b/include/usb_charge.h
@@ -13,16 +13,12 @@
enum usb_charge_mode {
/* Disable USB port. */
USB_CHARGE_MODE_DISABLED,
- /* Set USB port to be dedicated charging port, auto selecting charging
- * schemes. */
- USB_CHARGE_MODE_CHARGE_AUTO,
- /* Set USB port to be dedicated charging port following USB Battery
- * Charging Specification 1.2. */
- USB_CHARGE_MODE_CHARGE_BC12,
- /* Set USB port to be standard downstream port, with current limit set
- * to 500mA or 1500mA. */
- USB_CHARGE_MODE_DOWNSTREAM_500MA,
- USB_CHARGE_MODE_DOWNSTREAM_1500MA,
+ /* Set USB port to Standard Downstream Port, USB 2.0 mode. */
+ USB_CHARGE_MODE_SDP2,
+ /* Set USB port to Charging Downstream Port, BC 1.2. */
+ USB_CHARGE_MODE_CDP,
+ /* Set USB port to Dedicated Charging Port, BC 1.2. */
+ USB_CHARGE_MODE_DCP_SHORT,
USB_CHARGE_MODE_COUNT
};