summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hill <ecgh@chromium.org>2020-08-28 11:35:51 -0600
committerCommit Bot <commit-bot@chromium.org>2020-08-30 01:36:12 +0000
commit8a768a06bc876f83427691d27b4e572418406875 (patch)
treeb0e287a0acbae2b6ea4ce993e0394ad87e950ffc
parent79c4353e8d0f45ce3b3908757194f5191bb389da (diff)
downloadchrome-ec-8a768a06bc876f83427691d27b4e572418406875.tar.gz
zork: Enable CONFIG_CHARGE_RAMP_SW
We would prefer to use CONFIG_CHARGE_RAMP_HW to enable legacy BC1.2 charging but that feature of ISL9241 is broken (b/160287056) so we have to use CONFIG_CHARGE_RAMP_SW instead. BUG=b:163864475 BRANCH=zork TEST=ramp up to 1.5A from legacy charger Signed-off-by: Edward Hill <ecgh@chromium.org> Change-Id: Iec0a4b82f42fd388d738362ce9a8de4d31c61054 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2382635
-rw-r--r--baseboard/zork/baseboard.c22
-rw-r--r--baseboard/zork/baseboard.h6
-rw-r--r--board/berknip/ec.tasklist1
-rw-r--r--board/dalboz/ec.tasklist1
-rw-r--r--board/dirinboz/ec.tasklist1
-rw-r--r--board/ezkinil/ec.tasklist1
-rw-r--r--board/morphius/ec.tasklist1
-rw-r--r--board/trembyle/ec.tasklist1
-rw-r--r--board/vilboz/ec.tasklist1
-rw-r--r--board/woomax/ec.tasklist1
10 files changed, 36 insertions, 0 deletions
diff --git a/baseboard/zork/baseboard.c b/baseboard/zork/baseboard.c
index 4a482a42cb..c4715a943a 100644
--- a/baseboard/zork/baseboard.c
+++ b/baseboard/zork/baseboard.c
@@ -10,6 +10,7 @@
#include "button.h"
#include "cbi_ec_fw_config.h"
#include "charge_manager.h"
+#include "charge_ramp.h"
#include "charge_state.h"
#include "charge_state_v2.h"
#include "common.h"
@@ -46,6 +47,13 @@
#define SAFE_RESET_VBUS_MV 5000
+/*
+ * For legacy BC1.2 charging with CONFIG_CHARGE_RAMP_SW, ramp up input current
+ * until voltage drops to 4.5V. Don't go lower than this to be kind to the
+ * charger (see b/67964166).
+ */
+#define BC12_MIN_VOLTAGE 4500
+
const enum gpio_signal hibernate_wake_pins[] = {
GPIO_LID_OPEN,
GPIO_AC_PRESENT,
@@ -348,3 +356,17 @@ void board_pwrbtn_to_pch(int level)
}
gpio_set_level(GPIO_PCH_PWRBTN_L, level);
}
+
+/**
+ * Return if VBUS is sagging too low
+ */
+int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state)
+{
+ int voltage;
+
+ if (charger_get_vbus_voltage(port, &voltage))
+ voltage = 0;
+ ccprints("vbus %d", voltage);
+
+ return voltage < BC12_MIN_VOLTAGE;
+}
diff --git a/baseboard/zork/baseboard.h b/baseboard/zork/baseboard.h
index 4e166be723..4938914e52 100644
--- a/baseboard/zork/baseboard.h
+++ b/baseboard/zork/baseboard.h
@@ -71,6 +71,12 @@
#define CONFIG_CHARGER_ISL9241
#define CONFIG_CHARGER_SENSE_RESISTOR 10
#define CONFIG_CHARGER_SENSE_RESISTOR_AC 20
+/*
+ * We would prefer to use CONFIG_CHARGE_RAMP_HW to enable legacy BC1.2 charging
+ * but that feature of ISL9241 is broken (b/160287056) so we have to use
+ * CONFIG_CHARGE_RAMP_SW instead.
+ */
+#define CONFIG_CHARGE_RAMP_SW
#define CONFIG_CHIPSET_STONEY
#define CONFIG_CHIPSET_CAN_THROTTLE
diff --git a/board/berknip/ec.tasklist b/board/berknip/ec.tasklist
index 2874dff927..d9c1606eb2 100644
--- a/board/berknip/ec.tasklist
+++ b/board/berknip/ec.tasklist
@@ -9,6 +9,7 @@
#define CONFIG_TASK_LIST \
TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
diff --git a/board/dalboz/ec.tasklist b/board/dalboz/ec.tasklist
index fb6e2f75a1..41b83cf4f3 100644
--- a/board/dalboz/ec.tasklist
+++ b/board/dalboz/ec.tasklist
@@ -9,6 +9,7 @@
#define CONFIG_TASK_LIST \
TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
diff --git a/board/dirinboz/ec.tasklist b/board/dirinboz/ec.tasklist
index 2874dff927..d9c1606eb2 100644
--- a/board/dirinboz/ec.tasklist
+++ b/board/dirinboz/ec.tasklist
@@ -9,6 +9,7 @@
#define CONFIG_TASK_LIST \
TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
diff --git a/board/ezkinil/ec.tasklist b/board/ezkinil/ec.tasklist
index 2874dff927..d9c1606eb2 100644
--- a/board/ezkinil/ec.tasklist
+++ b/board/ezkinil/ec.tasklist
@@ -9,6 +9,7 @@
#define CONFIG_TASK_LIST \
TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
diff --git a/board/morphius/ec.tasklist b/board/morphius/ec.tasklist
index fb6e2f75a1..41b83cf4f3 100644
--- a/board/morphius/ec.tasklist
+++ b/board/morphius/ec.tasklist
@@ -9,6 +9,7 @@
#define CONFIG_TASK_LIST \
TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
diff --git a/board/trembyle/ec.tasklist b/board/trembyle/ec.tasklist
index fb6e2f75a1..41b83cf4f3 100644
--- a/board/trembyle/ec.tasklist
+++ b/board/trembyle/ec.tasklist
@@ -9,6 +9,7 @@
#define CONFIG_TASK_LIST \
TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
diff --git a/board/vilboz/ec.tasklist b/board/vilboz/ec.tasklist
index c45a43e848..08801d1786 100644
--- a/board/vilboz/ec.tasklist
+++ b/board/vilboz/ec.tasklist
@@ -9,6 +9,7 @@
#define CONFIG_TASK_LIST \
TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \
TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
diff --git a/board/woomax/ec.tasklist b/board/woomax/ec.tasklist
index 2874dff927..d9c1606eb2 100644
--- a/board/woomax/ec.tasklist
+++ b/board/woomax/ec.tasklist
@@ -9,6 +9,7 @@
#define CONFIG_TASK_LIST \
TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \
TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, TASK_STACK_SIZE) \
TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \