From 498219b65a707c266acb957ccaa8467b26d39e99 Mon Sep 17 00:00:00 2001 From: Aseda Aboagye Date: Wed, 31 Mar 2021 02:28:13 +0000 Subject: Revert "dedede/raa489000: Disable ASGATE from READY state" This reverts commit f7fbc629f0655229cc7ffdadfb18c9e13118e3d2. Reason for revert: Breaks sourcing of VBUS. Original change's description: > dedede/raa489000: Disable ASGATE from READY state > > On the boards which use the RAA489000, we keep the ADC enabled while > giving VBUS control to the charger side. This can cause a situation > where VBUS is not quite zero volts when a charger is removed. This > commit uses the charger side registers to control the ASGATE when > selecting our active charge port. This is done in addition to the > existing implementation which uses the TCPCI registers to control > ASGATE. When we place the parts into low power mode, we move the VBUS > control from the TCPC side of the IC to the charger side. It should > be safe to issue both commands as if the TCPC side has control, the IC > ignores the setting from the charger side registers. > > BUG=b:183220414 > BRANCH=dedede > TEST=Build and flash madoo, plug in charger to port, unplug, verify > that VBUS falls to < 200mV and decays from there. > > Signed-off-by: Aseda Aboagye > Change-Id: I8e8c8cc32575d18c9d3d1210ed3c5cf69ad5ca4b > Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2793058 > Tested-by: Aseda Aboagye > Reviewed-by: Diana Z > Commit-Queue: Aseda Aboagye Bug: b:183220414 Change-Id: Ibf6c161adca9981a065e969b6c3b73dd408ef1ba Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2796411 Reviewed-by: Aseda Aboagye Commit-Queue: Aseda Aboagye Tested-by: Aseda Aboagye Bot-Commit: Rubber Stamper --- board/blipper/board.c | 5 ++--- board/boten/board.c | 5 ++--- board/galtic/board.c | 19 +++++++------------ board/madoo/board.c | 8 ++------ board/magolor/board.c | 8 ++------ board/metaknight/board.c | 8 ++------ board/sasuke/board.c | 8 ++------ board/sasukette/board.c | 9 ++------- board/storo/board.c | 9 ++------- board/waddledoo/board.c | 8 ++------ 10 files changed, 25 insertions(+), 62 deletions(-) (limited to 'board') diff --git a/board/blipper/board.c b/board/blipper/board.c index 5e6cb866ff..fc9e2306f1 100644 --- a/board/blipper/board.c +++ b/board/blipper/board.c @@ -316,7 +316,7 @@ int board_set_active_charge_port(int port) if (port == CHARGE_PORT_NONE) { tcpc_write(0, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW); - raa489000_enable_asgate(0, false); + return EC_SUCCESS; } @@ -327,8 +327,7 @@ int board_set_active_charge_port(int port) } /* Enable requested charge port. */ - if (raa489000_enable_asgate(port, true) || - tcpc_write(0, TCPC_REG_COMMAND, + if (tcpc_write(0, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_HIGH)) { CPRINTUSB("p%d: sink path enable failed.", port); return EC_ERROR_UNKNOWN; diff --git a/board/boten/board.c b/board/boten/board.c index c69c014b8b..a544377aa7 100644 --- a/board/boten/board.c +++ b/board/boten/board.c @@ -308,7 +308,7 @@ int board_set_active_charge_port(int port) if (port == CHARGE_PORT_NONE) { tcpc_write(0, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW); - raa489000_enable_asgate(0, false); + return EC_SUCCESS; } @@ -319,8 +319,7 @@ int board_set_active_charge_port(int port) } /* Enable requested charge port. */ - if (raa489000_enable_asgate(port, true) || - tcpc_write(0, TCPC_REG_COMMAND, + if (tcpc_write(0, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_HIGH)) { CPRINTUSB("p%d: sink path enable failed.", port); return EC_ERROR_UNKNOWN; diff --git a/board/galtic/board.c b/board/galtic/board.c index 85195851fb..5e8f5f5714 100644 --- a/board/galtic/board.c +++ b/board/galtic/board.c @@ -516,16 +516,13 @@ int board_set_active_charge_port(int port) /* Disable all ports. */ if (port == CHARGE_PORT_NONE) { - for (i = 0; i < board_get_usb_pd_port_count(); i++) { + for (i = 0; i < board_get_usb_pd_port_count(); i++) tcpc_write(i, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW); - raa489000_enable_asgate(i, false); - } - return EC_SUCCESS; } - /* Check if port is sourcing VBUS. */ + /* Check is port is sourcing VBUS. */ if (board_is_sourcing_vbus(port)) { CPRINTS("Skip enable p%d", port); return EC_ERROR_INVAL; @@ -542,20 +539,18 @@ int board_set_active_charge_port(int port) if (tcpc_write(i, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW)) CPRINTS("p%d: sink path disable failed.", i); - raa489000_enable_asgate(i, false); } /* - * Stop the charger IC from switching while changing ports. Otherwise, - * we can overcurrent the adapter we're switching to. (crbug.com/926056) + * Stop the charger IC from switching while charging ports. Otherwise, + * we can overcurrent the adapter we's switching to. (crbug.com/926056) */ if (old_port != CHARGE_PORT_NONE) charger_discharge_on_ac(1); - /* Enable requested charge port. */ - if (raa489000_enable_asgate(port, true) || - tcpc_write(port, TCPC_REG_COMMAND, - TCPC_REG_COMMAND_SNK_CTRL_HIGH)) { + /* Enable requested charge port. */ + if (tcpc_write(port, TCPC_REG_COMMAND, + TCPC_REG_COMMAND_SNK_CTRL_HIGH)) { CPRINTS("p%d: sink path enable failed.", port); charger_discharge_on_ac(0); return EC_ERROR_UNKNOWN; diff --git a/board/madoo/board.c b/board/madoo/board.c index 1e1ee9b348..62724bde05 100644 --- a/board/madoo/board.c +++ b/board/madoo/board.c @@ -266,11 +266,9 @@ int board_set_active_charge_port(int port) /* Disable all ports. */ if (port == CHARGE_PORT_NONE) { - for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) { + for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) tcpc_write(i, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW); - raa489000_enable_asgate(i, false); - } return EC_SUCCESS; } @@ -292,7 +290,6 @@ int board_set_active_charge_port(int port) if (tcpc_write(i, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW)) CPRINTS("p%d: sink path disable failed.", i); - raa489000_enable_asgate(i, false); } /* @@ -303,8 +300,7 @@ int board_set_active_charge_port(int port) charger_discharge_on_ac(1); /* Enable requested charge port. */ - if (raa489000_enable_asgate(port, true) || - tcpc_write(port, TCPC_REG_COMMAND, + if (tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_HIGH)) { CPRINTS("p%d: sink path enable failed.", port); charger_discharge_on_ac(0); diff --git a/board/magolor/board.c b/board/magolor/board.c index a64b7781be..f1fca86f90 100644 --- a/board/magolor/board.c +++ b/board/magolor/board.c @@ -420,11 +420,9 @@ int board_set_active_charge_port(int port) /* Disable all ports. */ if (port == CHARGE_PORT_NONE) { - for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) { + for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) tcpc_write(i, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW); - raa489000_enable_asgate(i, false); - } return EC_SUCCESS; } @@ -446,7 +444,6 @@ int board_set_active_charge_port(int port) if (tcpc_write(i, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW)) CPRINTS("p%d: sink path disable failed.", i); - raa489000_enable_asgate(i, false); } /* @@ -457,8 +454,7 @@ int board_set_active_charge_port(int port) charger_discharge_on_ac(1); /* Enable requested charge port. */ - if (raa489000_enable_asgate(port, true) || - tcpc_write(port, TCPC_REG_COMMAND, + if (tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_HIGH)) { CPRINTS("p%d: sink path enable failed.", port); charger_discharge_on_ac(0); diff --git a/board/metaknight/board.c b/board/metaknight/board.c index e4fee336f0..9f307af8b2 100644 --- a/board/metaknight/board.c +++ b/board/metaknight/board.c @@ -339,11 +339,9 @@ int board_set_active_charge_port(int port) /* Disable all ports. */ if (port == CHARGE_PORT_NONE) { - for (i = 0; i < board_get_usb_pd_port_count(); i++) { + for (i = 0; i < board_get_usb_pd_port_count(); i++) tcpc_write(i, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW); - raa489000_enable_asgate(i, false); - } return EC_SUCCESS; } @@ -365,7 +363,6 @@ int board_set_active_charge_port(int port) if (tcpc_write(i, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW)) CPRINTS("p%d: sink path disable failed.", i); - raa489000_enable_asgate(i, false); } /* @@ -376,8 +373,7 @@ int board_set_active_charge_port(int port) charger_discharge_on_ac(1); /* Enable requested charge port. */ - if (raa489000_enable_asgate(port, true) || - tcpc_write(port, TCPC_REG_COMMAND, + if (tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_HIGH)) { CPRINTS("p%d: sink path enable failed.", port); charger_discharge_on_ac(0); diff --git a/board/sasuke/board.c b/board/sasuke/board.c index 7e96204f11..ef6d0effae 100644 --- a/board/sasuke/board.c +++ b/board/sasuke/board.c @@ -337,11 +337,9 @@ int board_set_active_charge_port(int port) /* Disable all ports. */ if (port == CHARGE_PORT_NONE) { - for (i = 0; i < board_get_usb_pd_port_count(); i++) { + for (i = 0; i < board_get_usb_pd_port_count(); i++) tcpc_write(i, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW); - raa489000_enable_asgate(i, false); - } return EC_SUCCESS; } @@ -363,7 +361,6 @@ int board_set_active_charge_port(int port) if (tcpc_write(i, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW)) CPRINTS("p%d: sink path disable failed.", i); - raa489000_enable_asgate(i, false); } /* @@ -374,8 +371,7 @@ int board_set_active_charge_port(int port) charger_discharge_on_ac(1); /* Enable requested charge port. */ - if (raa489000_enable_asgate(port, true) || - tcpc_write(port, TCPC_REG_COMMAND, + if (tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_HIGH)) { CPRINTS("p%d: sink path enable failed.", port); charger_discharge_on_ac(0); diff --git a/board/sasukette/board.c b/board/sasukette/board.c index 76824d6ab1..d9471fbcaf 100644 --- a/board/sasukette/board.c +++ b/board/sasukette/board.c @@ -282,12 +282,9 @@ int board_set_active_charge_port(int port) /* Disable all ports. */ if (port == CHARGE_PORT_NONE) { - for (i = 0; i < board_get_usb_pd_port_count(); i++) { + for (i = 0; i < board_get_usb_pd_port_count(); i++) tcpc_write(i, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW); - raa489000_enable_asgate(i, false); - } - return EC_SUCCESS; } @@ -308,7 +305,6 @@ int board_set_active_charge_port(int port) if (tcpc_write(i, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW)) CPRINTS("p%d: sink path disable failed.", i); - raa489000_enable_asgate(i, false); } /* @@ -319,8 +315,7 @@ int board_set_active_charge_port(int port) charger_discharge_on_ac(1); /* Enable requested charge port. */ - if (raa489000_enable_asgate(port, true) || - tcpc_write(port, TCPC_REG_COMMAND, + if (tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_HIGH)) { CPRINTS("p%d: sink path enable failed.", port); charger_discharge_on_ac(0); diff --git a/board/storo/board.c b/board/storo/board.c index 7de876beee..3a3e7ab53d 100644 --- a/board/storo/board.c +++ b/board/storo/board.c @@ -387,12 +387,9 @@ int board_set_active_charge_port(int port) /* Disable all ports. */ if (port == CHARGE_PORT_NONE) { - for (i = 0; i < board_get_usb_pd_port_count(); i++) { + for (i = 0; i < board_get_usb_pd_port_count(); i++) tcpc_write(i, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW); - raa489000_enable_asgate(i, false); - } - return EC_SUCCESS; } @@ -413,7 +410,6 @@ int board_set_active_charge_port(int port) if (tcpc_write(i, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW)) CPRINTS("p%d: sink path disable failed.", i); - raa489000_enable_asgate(i, false); } /* @@ -424,8 +420,7 @@ int board_set_active_charge_port(int port) charger_discharge_on_ac(1); /* Enable requested charge port. */ - if (raa489000_enable_asgate(port, true) || - tcpc_write(port, TCPC_REG_COMMAND, + if (tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_HIGH)) { CPRINTS("p%d: sink path enable failed.", port); charger_discharge_on_ac(0); diff --git a/board/waddledoo/board.c b/board/waddledoo/board.c index a7e76e6525..bea0774a3d 100644 --- a/board/waddledoo/board.c +++ b/board/waddledoo/board.c @@ -344,11 +344,9 @@ int board_set_active_charge_port(int port) /* Disable all ports. */ if (port == CHARGE_PORT_NONE) { - for (i = 0; i < board_get_usb_pd_port_count(); i++) { + for (i = 0; i < board_get_usb_pd_port_count(); i++) tcpc_write(i, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW); - raa489000_enable_asgate(i, false); - } return EC_SUCCESS; } @@ -370,7 +368,6 @@ int board_set_active_charge_port(int port) if (tcpc_write(i, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_LOW)) CPRINTS("p%d: sink path disable failed.", i); - raa489000_enable_asgate(i, false); } /* @@ -381,8 +378,7 @@ int board_set_active_charge_port(int port) charger_discharge_on_ac(1); /* Enable requested charge port. */ - if (raa489000_enable_asgate(port, true) || - tcpc_write(port, TCPC_REG_COMMAND, + if (tcpc_write(port, TCPC_REG_COMMAND, TCPC_REG_COMMAND_SNK_CTRL_HIGH)) { CPRINTS("p%d: sink path enable failed.", port); charger_discharge_on_ac(0); -- cgit v1.2.1