summaryrefslogtreecommitdiff
path: root/board/atlas
diff options
context:
space:
mode:
Diffstat (limited to 'board/atlas')
-rw-r--r--board/atlas/board.c32
-rw-r--r--board/atlas/board.h4
2 files changed, 29 insertions, 7 deletions
diff --git a/board/atlas/board.c b/board/atlas/board.c
index d2562d43d3..6fbbb64b16 100644
--- a/board/atlas/board.c
+++ b/board/atlas/board.c
@@ -531,15 +531,39 @@ int board_set_active_charge_port(int charge_port)
return EC_SUCCESS;
}
+/*
+ * Limit the input current to 95% negotiated limit,
+ * to account for the charger chip margin.
+ */
+
+static int charger_derate(int current)
+{
+ return current * 95 / 100;
+}
+
static void board_charger_init(void)
{
- charger_set_input_current_limit(
- CHARGER_SOLO,
- PD_MAX_CURRENT_MA *
- (100 - CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT) / 100);
+ charger_set_input_current_limit(CHARGER_SOLO,
+ charger_derate(PD_MAX_CURRENT_MA));
}
DECLARE_HOOK(HOOK_INIT, board_charger_init, HOOK_PRIO_DEFAULT);
+/**
+ * Set the charge limit based upon desired maximum.
+ *
+ * @param port Port number.
+ * @param supplier Charge supplier type.
+ * @param charge_ma Desired charge limit (mA).
+ * @param charge_mv Negotiated charge voltage (mV).
+ */
+void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma,
+ int charge_mv)
+{
+ charge_ma = charger_derate(charge_ma);
+ charge_set_input_current_limit(
+ MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv);
+}
+
static void board_chipset_suspend(void)
{
gpio_set_level(GPIO_KBD_BL_EN, 0);
diff --git a/board/atlas/board.h b/board/atlas/board.h
index 3dbce640bb..9718ab7cdd 100644
--- a/board/atlas/board.h
+++ b/board/atlas/board.h
@@ -77,9 +77,7 @@
#define CONFIG_CHARGER
#define CONFIG_CHARGER_ISL9238
#define CONFIG_CHARGER_DISCHARGE_ON_AC
-#define CONFIG_CHARGER_DEFAULT_CURRENT_LIMIT 512
-#define CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT 512
-#define CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT 5
+#define CONFIG_CHARGER_INPUT_CURRENT 512
#define CONFIG_CHARGER_PROFILE_OVERRIDE
#define CONFIG_CHARGER_PSYS
#define CONFIG_CHARGER_PSYS_READ