summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
Diffstat (limited to 'board')
-rw-r--r--board/agah/board.c4
-rw-r--r--board/agah/board.h1
-rw-r--r--board/agah/charger_isl9241.c1
-rw-r--r--board/agah/gpio.inc2
-rw-r--r--board/agah/led.c4
-rw-r--r--board/ambassador/board.c2
-rw-r--r--board/anahera/board.c2
-rw-r--r--board/anahera/charger.c2
-rw-r--r--board/anahera/led.c2
-rw-r--r--board/asurada/board.c2
-rw-r--r--board/asurada/led.c2
-rw-r--r--board/atlas/board.h3
-rw-r--r--board/aurash/board.c2
-rw-r--r--board/banshee/charger.c2
-rw-r--r--board/banshee/led.c6
-rw-r--r--board/beadrix/board.c2
-rw-r--r--board/beadrix/led.c2
-rw-r--r--board/beetley/board.c2
-rw-r--r--board/berknip/led.c4
-rw-r--r--board/blipper/board.c2
-rw-r--r--board/bloog/led.c4
-rw-r--r--board/boten/board.c2
-rw-r--r--board/boxy/board.c74
-rw-r--r--board/boxy/board.h4
-rw-r--r--board/boxy/gpio.inc21
-rw-r--r--board/brask/board.c2
-rw-r--r--board/brya/charger.c2
-rw-r--r--board/bugzzy/board.c2
-rw-r--r--board/burnet/led.c4
-rw-r--r--board/cappy2/board.c2
-rw-r--r--board/careena/led.c4
-rw-r--r--board/cherry/board.c2
-rw-r--r--board/chronicler/board.c2
-rw-r--r--board/chronicler/led.c4
-rw-r--r--board/coachz/led.c2
-rw-r--r--board/constitution/board.c2
-rw-r--r--board/coral/board.h3
-rw-r--r--board/coral/led.c2
-rw-r--r--board/corori/board.c2
-rw-r--r--board/corori/board.h3
-rw-r--r--board/corori/led.c2
-rw-r--r--board/corori2/board.c2
-rw-r--r--board/cret/board.c2
-rw-r--r--board/crota/charger.c2
-rw-r--r--board/crota/led.c2
-rw-r--r--board/damu/board.h3
-rw-r--r--board/dibbi/board.c2
-rw-r--r--board/dirinboz/led.c4
-rw-r--r--board/dojo/board.c2
-rw-r--r--board/dojo/led.c2
-rw-r--r--board/dooly/board.c2
-rw-r--r--board/dratini/led.c4
-rw-r--r--board/drawcia/board.c2
-rw-r--r--board/drawcia/led.c4
-rw-r--r--board/drawcia_riscv/board.c2
-rw-r--r--board/drawcia_riscv/led.c4
-rw-r--r--board/driblee/board.c2
-rw-r--r--board/drobit/board.c2
-rw-r--r--board/eldrid/board.c2
-rw-r--r--board/elemi/led.c4
-rw-r--r--board/elm/led.c2
-rw-r--r--board/eve/board.h3
-rw-r--r--board/eve/led.c2
-rw-r--r--board/ezkinil/board.c2
-rw-r--r--board/felwinter/charger_isl9241.c2
-rw-r--r--board/gaelin/board.c2
-rw-r--r--board/galtic/board.c2
-rw-r--r--board/gelarshie/led.c2
-rw-r--r--board/gimble/board.c2
-rw-r--r--board/gimble/charger.c2
-rw-r--r--board/gladios/board.c2
-rw-r--r--board/gooey/board.c2
-rw-r--r--board/goroh/board.c2
-rw-r--r--board/gumboz/led.c2
-rw-r--r--board/haboki/board.c2
-rw-r--r--board/haboki/led.c4
-rw-r--r--board/hades/board.c4
-rw-r--r--board/hades/board.h1
-rw-r--r--board/hades/charger_isl9241.c1
-rw-r--r--board/hades/gpio.inc2
-rw-r--r--board/hades/led.c4
-rw-r--r--board/hammer/board.h1
-rw-r--r--board/hammer/variants.h2
-rw-r--r--board/herobrine/led.c2
-rw-r--r--board/homestar/led.c4
-rw-r--r--board/hyperdebug/gpio.c64
-rw-r--r--board/hyperdebug/i2c.c52
-rw-r--r--board/jinlon/led.c2
-rw-r--r--board/kakadu/led.c4
-rw-r--r--board/kano/charger.c2
-rw-r--r--board/kappa/led.c4
-rw-r--r--board/katsu/led.c4
-rw-r--r--board/kingoftown/led.c4
-rw-r--r--board/kinox/board.c2
-rw-r--r--board/kracko/board.c2
-rw-r--r--board/kukui/led.c6
-rw-r--r--board/kuldax/board.c2
-rw-r--r--board/lalala/board.c2
-rw-r--r--board/lantis/board.c2
-rw-r--r--board/lantis/led.c4
-rw-r--r--board/lazor/led.c2
-rw-r--r--board/lisbon/board.c2
-rw-r--r--board/madoo/board.c2
-rw-r--r--board/madoo/led.c4
-rw-r--r--board/magolor/board.c2
-rw-r--r--board/marasov/charger.c2
-rw-r--r--board/marzipan/led.c2
-rw-r--r--board/mchpevb1/led.c2
-rw-r--r--board/metaknight/board.c2
-rw-r--r--board/mithrax/charger_isl9241.c2
-rw-r--r--board/moli/board.c2
-rw-r--r--board/morphius/board.h3
-rw-r--r--board/morphius/led.c2
-rw-r--r--board/mrbland/led.c6
-rw-r--r--board/nami/led.c4
-rw-r--r--board/nautilus/led.c4
-rw-r--r--board/nipperkin/led.c4
-rw-r--r--board/nocturne/battery.c2
-rw-r--r--board/nocturne/board.c1
-rw-r--r--board/oak/led.c4
-rw-r--r--board/omnigul/charger.c2
-rw-r--r--board/omnigul/fw_config.c5
-rw-r--r--board/omnigul/fw_config.h2
-rw-r--r--board/omnigul/sensors.c19
-rw-r--r--board/osiris/charger.c2
-rw-r--r--board/pazquel/led.c2
-rw-r--r--board/pirika/board.c2
-rw-r--r--board/pompom/led.c2
-rw-r--r--board/poppy/led.c2
-rw-r--r--board/primus/board.c2
-rw-r--r--board/primus/board.h3
-rw-r--r--board/primus/charger.c2
-rw-r--r--board/primus/led.c2
-rw-r--r--board/prism/board.h1
-rw-r--r--board/puff/board.c2
-rw-r--r--board/quackingstick/led.c2
-rw-r--r--board/rammus/board.h3
-rw-r--r--board/rammus/led.c4
-rw-r--r--board/redrix/charger.c2
-rw-r--r--board/redrix/led.c2
-rw-r--r--board/reef/led.c2
-rw-r--r--board/reef_it8320/led.c2
-rw-r--r--board/reef_mchp/led.c2
-rw-r--r--board/sasuke/board.c2
-rw-r--r--board/sasukette/board.c2
-rw-r--r--board/scarlet/battery.c6
-rw-r--r--board/scarlet/board.c1
-rw-r--r--board/scarlet/led.c4
-rw-r--r--board/shotzo/board.c2
-rw-r--r--board/spherion/board.c2
-rw-r--r--board/storo/board.c2
-rw-r--r--board/taeko/board.c2
-rw-r--r--board/taeko/charger.c2
-rw-r--r--board/taniks/board.c2
-rw-r--r--board/taniks/charger.c2
-rw-r--r--board/taranza/board.c27
-rw-r--r--board/taranza/board.h14
-rw-r--r--board/taranza/gpio.inc10
-rw-r--r--board/taranza/led.c95
-rw-r--r--board/trogdor/led.c2
-rw-r--r--board/vell/charger.c2
-rw-r--r--board/vell/led.c2
-rw-r--r--board/vilboz/board.c2
-rw-r--r--board/volmar/charger.c2
-rw-r--r--board/waddledee/board.c2
-rw-r--r--board/waddledoo/board.c2
-rw-r--r--board/waddledoo2/board.c2
-rw-r--r--board/wheelie/board.c2
-rw-r--r--board/wormdingler/led.c4
169 files changed, 396 insertions, 379 deletions
diff --git a/board/agah/board.c b/board/agah/board.c
index 91b326c868..7884ac1e97 100644
--- a/board/agah/board.c
+++ b/board/agah/board.c
@@ -39,8 +39,8 @@ struct d_notify_policy d_notify_policies[] = {
[D_NOTIFY_1] = AC_ATLEAST_W(100),
[D_NOTIFY_2] = AC_ATLEAST_W(65),
[D_NOTIFY_3] = AC_DC,
- [D_NOTIFY_4] = DC_ATLEAST_SOC(20),
- [D_NOTIFY_5] = DC_ATLEAST_SOC(5),
+ [D_NOTIFY_4] = DC_ATMOST_SOC(20),
+ [D_NOTIFY_5] = DC_ATMOST_SOC(5),
};
BUILD_ASSERT(ARRAY_SIZE(d_notify_policies) == D_NOTIFY_COUNT);
diff --git a/board/agah/board.h b/board/agah/board.h
index 35ecdc58e6..ba2889130d 100644
--- a/board/agah/board.h
+++ b/board/agah/board.h
@@ -96,6 +96,7 @@
#define GPIO_PCH_WAKE_L GPIO_EC_PCH_INT_ODL
#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_SEQ_EC_ALL_SYS_PG
#define GPIO_PG_EC_DSW_PWROK GPIO_SEQ_EC_DSW_PWROK
+#define GPIO_PCH_DSW_PWROK GPIO_PCH_PWROK
#define GPIO_PG_EC_RSMRST_ODL GPIO_SEQ_EC_RSMRST_ODL
#define GPIO_POWER_BUTTON_L GPIO_GSC_EC_PWR_BTN_ODL
#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
diff --git a/board/agah/charger_isl9241.c b/board/agah/charger_isl9241.c
index 902bd57aa3..892c857ad6 100644
--- a/board/agah/charger_isl9241.c
+++ b/board/agah/charger_isl9241.c
@@ -35,7 +35,6 @@
#include "charge_manager.h"
#include "charge_state.h"
-#include "charge_state_v2.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/agah/gpio.inc b/board/agah/gpio.inc
index c9308fd903..7f120d9ba6 100644
--- a/board/agah/gpio.inc
+++ b/board/agah/gpio.inc
@@ -8,13 +8,13 @@
#define MODULE_KB MODULE_KEYBOARD_SCAN
/* INTERRUPT GPIOs: */
+GPIO_INT(SEQ_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, intel_x86_pwrok_signal_interrupt)
GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
GPIO_INT(EC_PROCHOT_IN_L, PIN(F, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
GPIO_INT(GSC_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_HIB_WAKE_LOW, power_button_interrupt)
GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
GPIO_INT(SEQ_EC_ALL_SYS_PG, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
GPIO_INT(SEQ_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
GPIO_INT(SLP_SUS_L, PIN(F, 1), GPIO_INT_BOTH, power_signal_interrupt)
diff --git a/board/agah/led.c b/board/agah/led.c
index d5b27f128d..e92b369e68 100644
--- a/board/agah/led.c
+++ b/board/agah/led.c
@@ -112,7 +112,7 @@ static void led_set_battery(void)
battery_ticks++;
if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
- charge_get_state() != PWR_STATE_CHARGE) {
+ led_pwr_get_state() != PWR_STATE_CHARGE) {
suspend_ticks++;
led_set_color_battery(
@@ -123,7 +123,7 @@ static void led_set_battery(void)
return;
}
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/ambassador/board.c b/board/ambassador/board.c
index d8de0ec5fa..dd839574b5 100644
--- a/board/ambassador/board.c
+++ b/board/ambassador/board.c
@@ -8,7 +8,7 @@
#include "adc.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "chipset.h"
#include "common.h"
#include "core/cortex-m/cpu.h"
diff --git a/board/anahera/board.c b/board/anahera/board.c
index 4b328e6db2..f5fc90a9aa 100644
--- a/board/anahera/board.c
+++ b/board/anahera/board.c
@@ -6,7 +6,7 @@
#include "battery.h"
#include "button.h"
#include "charge_ramp.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/anahera/charger.c b/board/anahera/charger.c
index 4976abdea6..827152e115 100644
--- a/board/anahera/charger.c
+++ b/board/anahera/charger.c
@@ -4,7 +4,7 @@
*/
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/anahera/led.c b/board/anahera/led.c
index 1d76fc342d..205bf5a713 100644
--- a/board/anahera/led.c
+++ b/board/anahera/led.c
@@ -136,7 +136,7 @@ static void led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/asurada/board.c b/board/asurada/board.c
index 82cda97dfd..a9b5e0aab4 100644
--- a/board/asurada/board.c
+++ b/board/asurada/board.c
@@ -7,7 +7,7 @@
#include "adc.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "chipset.h"
#include "common.h"
diff --git a/board/asurada/led.c b/board/asurada/led.c
index ca29f0be45..e793e6ff13 100644
--- a/board/asurada/led.c
+++ b/board/asurada/led.c
@@ -143,7 +143,7 @@ int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
static void update_led(enum ec_led_id led_id, bool is_active_charge_port,
int duty, int tick)
{
- enum charge_state power_state = charge_get_state();
+ enum led_pwr_state power_state = led_pwr_get_state();
if (power_state == PWR_STATE_IDLE) {
/* Factory mode: blinking white (2sec on + 2sec off) */
diff --git a/board/atlas/board.h b/board/atlas/board.h
index 144afda14c..bde6d3e07a 100644
--- a/board/atlas/board.h
+++ b/board/atlas/board.h
@@ -64,7 +64,8 @@
/* Battery */
#define CONFIG_BATTERY_CUT_OFF
#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_LEVEL_NEAR_FULL 95
+#undef CONFIG_BATT_HOST_FULL_FACTOR
+#define CONFIG_BATT_HOST_FULL_FACTOR 95
#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
#define CONFIG_BATTERY_PRESENT_CUSTOM
#define CONFIG_BATTERY_SMART
diff --git a/board/aurash/board.c b/board/aurash/board.c
index 64a8ca6015..ec833141a7 100644
--- a/board/aurash/board.c
+++ b/board/aurash/board.c
@@ -7,7 +7,7 @@
#include "builtin/assert.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "chipset.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/banshee/charger.c b/board/banshee/charger.c
index c6ee062ab5..76e2712181 100644
--- a/board/banshee/charger.c
+++ b/board/banshee/charger.c
@@ -4,7 +4,7 @@
*/
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/banshee/led.c b/board/banshee/led.c
index f0ea78cab2..15df2be5db 100644
--- a/board/banshee/led.c
+++ b/board/banshee/led.c
@@ -252,9 +252,9 @@ static int led_get_charge_percent(void)
static void select_active_port_led(int port)
{
- if ((charge_get_state() == PWR_STATE_DISCHARGE &&
+ if ((led_pwr_get_state() == PWR_STATE_DISCHARGE &&
led_get_charge_percent() < 10) ||
- charge_get_state() == PWR_STATE_ERROR) {
+ led_pwr_get_state() == PWR_STATE_ERROR) {
gpio_set_level(GPIO_LEFT_SIDE, 1);
gpio_set_level(GPIO_RIGHT_SIDE, 1);
} else if (port == RIGHT_PORT) {
@@ -299,7 +299,7 @@ static void led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(EC_LED_COLOR_AMBER);
diff --git a/board/beadrix/board.c b/board/beadrix/board.c
index d14996c6e5..92da9f5295 100644
--- a/board/beadrix/board.c
+++ b/board/beadrix/board.c
@@ -8,7 +8,7 @@
#include "adc_chip.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "driver/bc12/pi3usb9201.h"
#include "driver/charger/isl923x.h"
diff --git a/board/beadrix/led.c b/board/beadrix/led.c
index 8bef7c0bd9..56b8b736e5 100644
--- a/board/beadrix/led.c
+++ b/board/beadrix/led.c
@@ -66,7 +66,7 @@ static void board_led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate amber on when charging. */
color = LED_RED;
diff --git a/board/beetley/board.c b/board/beetley/board.c
index 697e2a50fe..7bd12e9bdb 100644
--- a/board/beetley/board.c
+++ b/board/beetley/board.c
@@ -10,7 +10,7 @@
#include "cbi_fw_config.h"
#include "cbi_ssfc.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "cros_board_info.h"
#include "driver/accel_lis2dw12.h"
diff --git a/board/berknip/led.c b/board/berknip/led.c
index c2b0e69cbb..17ad80fa40 100644
--- a/board/berknip/led.c
+++ b/board/berknip/led.c
@@ -138,7 +138,7 @@ static void led_set_battery(void)
* system suspend with non-charging state.
*/
if (chipset_in_state(CHIPSET_STATE_SUSPEND | CHIPSET_STATE_STANDBY) &&
- charge_get_state() != PWR_STATE_CHARGE) {
+ led_pwr_get_state() != PWR_STATE_CHARGE) {
power_ticks++;
led_set_color_battery(RIGHT_PORT,
@@ -156,7 +156,7 @@ static void led_set_battery(void)
power_ticks = 0;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/blipper/board.c b/board/blipper/board.c
index 58867cafb2..15a2d4b520 100644
--- a/board/blipper/board.c
+++ b/board/blipper/board.c
@@ -10,7 +10,7 @@
#include "cbi_fw_config.h"
#include "cbi_ssfc.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "cros_board_info.h"
#include "driver/accel_lis2dw12.h"
diff --git a/board/bloog/led.c b/board/bloog/led.c
index c11244b613..6a1b85712b 100644
--- a/board/bloog/led.c
+++ b/board/bloog/led.c
@@ -139,7 +139,7 @@ static void led_set_battery(void)
if (!board_is_convertible()) {
if (chipset_in_state(CHIPSET_STATE_SUSPEND |
CHIPSET_STATE_STANDBY) &&
- charge_get_state() != PWR_STATE_CHARGE) {
+ led_pwr_get_state() != PWR_STATE_CHARGE) {
power_ticks++;
led_set_color_battery(0, power_ticks & 0x4 ? LED_WHITE :
@@ -152,7 +152,7 @@ static void led_set_battery(void)
power_ticks = 0;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/boten/board.c b/board/boten/board.c
index fe23078c4c..c352d12f78 100644
--- a/board/boten/board.c
+++ b/board/boten/board.c
@@ -9,7 +9,7 @@
#include "button.h"
#include "cbi_fw_config.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "driver/accel_lis2dw12.h"
#include "driver/accelgyro_lsm6dsm.h"
diff --git a/board/boxy/board.c b/board/boxy/board.c
index e9cd9fb227..a0f8dd6683 100644
--- a/board/boxy/board.c
+++ b/board/boxy/board.c
@@ -9,7 +9,7 @@
#include "board.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "driver/ppc/syv682x_public.h"
#include "driver/tcpm/it83xx_pd.h"
@@ -54,6 +54,11 @@ const struct adc_t adc_channels[] = {
.factor_div = ADC_READ_MAX + 1,
.shift = 0,
.channel = CHIP_ADC_CH3 },
+ [ADC_VBUS] = { .name = "VBUS", /* 113/1113 voltage divider */
+ .factor_mul = ADC_MAX_MVOLT * 1113,
+ .factor_div = (ADC_READ_MAX + 1) * 113,
+ .shift = 0,
+ .channel = CHIP_ADC_CH4 },
[ADC_TEMP_SENSOR_3] = { .name = "TEMP_SENSOR3",
.factor_mul = ADC_MAX_MVOLT,
.factor_div = ADC_READ_MAX + 1,
@@ -153,8 +158,6 @@ BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
void board_init(void)
{
- gpio_enable_interrupt(GPIO_BJ_ADP_PRESENT);
-
/* Enable PPC interrupt */
gpio_enable_interrupt(GPIO_USB_C0_FAULT_L);
}
@@ -214,50 +217,6 @@ void board_pd_vconn_ctrl(int port, enum usbpd_cc_pin cc_pin, int enabled)
* - CHARGE_PORT_NONE will never be selected.
*/
-/* List of BJ adapters */
-enum bj_adapter {
- BJ_NONE,
- BJ_65W_19V,
-};
-
-/* Barrel-jack power adapter ratings. */
-static const struct charge_port_info bj_adapters[] = {
- [BJ_NONE] = { .current = 0, .voltage = 0 },
- [BJ_65W_19V] = { .current = 3420, .voltage = 19000 },
-};
-#define BJ_ADP_RATING_DEFAULT BJ_65W_19V /* BJ power ratings default */
-#define ADP_DEBOUNCE_MS 1000 /* Debounce time for BJ plug/unplug */
-
-/* Debounced connection state of the barrel jack */
-static int8_t bj_adp_connected = -1;
-static void adp_connect_deferred(void)
-{
- const struct charge_port_info *pi;
- int connected = gpio_get_level(GPIO_BJ_ADP_PRESENT);
-
- /* Debounce */
- if (connected == bj_adp_connected)
- return;
-
- if (connected) {
- pi = &bj_adapters[BJ_ADP_RATING_DEFAULT];
- } else {
- /* No barrel-jack, zero out this power supply */
- pi = &bj_adapters[BJ_NONE];
- }
- /* This will result in a call to board_set_active_charge_port */
- charge_manager_update_charge(CHARGE_SUPPLIER_DEDICATED,
- DEDICATED_CHARGE_PORT, pi);
- bj_adp_connected = connected;
-}
-DECLARE_DEFERRED(adp_connect_deferred);
-
-/* IRQ for BJ plug/unplug. It shouldn't be called if BJ is the power source. */
-void adp_connect_interrupt(enum gpio_signal signal)
-{
- hook_call_deferred(&adp_connect_deferred_data, ADP_DEBOUNCE_MS * MSEC);
-}
-
int board_set_active_charge_port(int port)
{
const int active_port = charge_manager_get_active_charge_port();
@@ -275,8 +234,6 @@ int board_set_active_charge_port(int port)
return EC_ERROR_INVAL;
if (!chipset_in_state(CHIPSET_STATE_ANY_OFF)) {
- int bj_requested;
-
if (charge_manager_get_active_charge_port() != CHARGE_PORT_NONE)
/* Change is only permitted while the system is off */
return EC_ERROR_INVAL;
@@ -287,9 +244,8 @@ int board_set_active_charge_port(int port)
* reinitializing after sysjump). Reject requests that aren't
* in sync with our outputs.
*/
- bj_requested = port == CHARGE_PORT_BARRELJACK;
- if (bj_adp_connected != bj_requested)
- return EC_ERROR_INVAL;
+
+ /* TODO: add this part after two type-c function is finished. */
}
CPRINTUSB("New charger p%d", port);
@@ -318,25 +274,15 @@ static void board_charge_manager_init(void)
charge_manager_update_charge(j, i, NULL);
}
- port = gpio_get_level(GPIO_BJ_ADP_PRESENT) ? CHARGE_PORT_BARRELJACK :
- CHARGE_PORT_TYPEC0;
- CPRINTUSB("Power source is p%d (%s)", port,
- port == CHARGE_PORT_TYPEC0 ? "USB-C" : "BJ");
+ port = CHARGE_PORT_TYPEC0;
+ CPRINTUSB("Power source is p%d (USB-C)", port);
/* Initialize the power source supplier */
switch (port) {
case CHARGE_PORT_TYPEC0:
typec_set_input_current_limit(port, 3000, 5000);
break;
- case CHARGE_PORT_BARRELJACK:
- charge_manager_update_charge(
- CHARGE_SUPPLIER_DEDICATED, DEDICATED_CHARGE_PORT,
- &bj_adapters[BJ_ADP_RATING_DEFAULT]);
- break;
}
-
- /* Report charge state from the barrel jack. */
- adp_connect_deferred();
}
DECLARE_HOOK(HOOK_INIT, board_charge_manager_init,
HOOK_PRIO_INIT_CHARGE_MANAGER + 1);
diff --git a/board/boxy/board.h b/board/boxy/board.h
index c9f3989e11..5d7c7e99dd 100644
--- a/board/boxy/board.h
+++ b/board/boxy/board.h
@@ -36,8 +36,6 @@
#undef PD_MAX_POWER_MW
#define PD_MAX_POWER_MW 65000
#define CONFIG_USB_PD_VBUS_DETECT_GPIO
-/* ADC sensors could measure VBUS on this board, but components are DNS */
-#define CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT
/* Override macro for C0 only */
#define PORT_TO_HPD(port) (GPIO_USB_C0_DP_HPD)
@@ -133,7 +131,6 @@
enum charge_port {
CHARGE_PORT_TYPEC0,
- CHARGE_PORT_BARRELJACK,
};
enum usbc_port { USBC_PORT_C0 = 0, USBC_PORT_COUNT };
@@ -150,6 +147,7 @@ enum adc_channel {
ADC_VSNS_PP3300_A, /* ADC0 */
ADC_TEMP_SENSOR_1, /* ADC2 */
ADC_TEMP_SENSOR_2, /* ADC3 */
+ ADC_VBUS, /* ADC4 */
ADC_TEMP_SENSOR_3, /* ADC13 */
ADC_PPVAR_PWR_IN_IMON, /* ADC15 */
ADC_SNS_PPVAR_PWR_IN, /* ADC16 */
diff --git a/board/boxy/gpio.inc b/board/boxy/gpio.inc
index f1e49964ae..c21ff3e870 100644
--- a/board/boxy/gpio.inc
+++ b/board/boxy/gpio.inc
@@ -43,7 +43,6 @@ GPIO_INT(EC_WP_OD, PIN(A, 6), GPIO_INT_BOTH, switch_interrupt)
GPIO_INT(EC_RECOVERY_BTN_OD, PIN(K, 7), GPIO_INT_BOTH, button_interrupt)
/* Recovery button input from H1 */
GPIO_INT(H1_EC_RECOVERY_BTN_ODL, PIN(K, 4), GPIO_INT_BOTH, button_interrupt)
-GPIO_INT(BJ_ADP_PRESENT, PIN(A, 7), GPIO_INT_BOTH, adp_connect_interrupt)
GPIO_INT(USB_C0_FAULT_L, PIN(K, 0), GPIO_INT_FALLING, ppc_interrupt)
GPIO_INT(USB_C1_FAULT_L, PIN(K, 3), GPIO_INT_FALLING, ppc_interrupt)
@@ -151,18 +150,14 @@ ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), 0, MODULE_I2C, 0) /* I2C5 -
HDMI1_SRC_DDC */
/* ADC */
-ALTERNATE(PIN_MASK(I, BIT(2) | BIT(3)), 0, MODULE_ADC, 0) /* ADC2:
- TEMP_SENSOR_1,
- ADC3: TEMP_SENSOR_2
- */
-ALTERNATE(PIN_MASK(L, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC,
- 0) /* ADC13:
- TEMP_SENSOR_3,
- ADC15:
- ANALOG_PPVAR_PWR_IN_IMON,
- ADC16:
- SNS_PPVAR_PWR_IN
- */
+/* ADC2: TEMP_SENSOR_1, ADC3: TEMP_SENSOR_2, ADC4: VBUS */
+ALTERNATE(PIN_MASK(I, BIT(2) | BIT(3) | BIT(4)), 0, MODULE_ADC, 0)
+/*
+ * ADC13: TEMP_SENSOR_3
+ * ADC15: ANALOG_PPVAR_PWR_IN_IMON
+ * ADC16: SNS_PPVAR_PWR_IN
+ */
+ALTERNATE(PIN_MASK(L, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC, 0)
/* PWM */
ALTERNATE(PIN_MASK(A, BIT(1) | BIT(2) | BIT(3)), 0, MODULE_PWM,
diff --git a/board/brask/board.c b/board/brask/board.c
index be41092f0e..8bdb113ac5 100644
--- a/board/brask/board.c
+++ b/board/brask/board.c
@@ -6,7 +6,7 @@
#include "builtin/assert.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "common.h"
#include "compile_time_macros.h"
#include "console.h"
diff --git a/board/brya/charger.c b/board/brya/charger.c
index 4976abdea6..827152e115 100644
--- a/board/brya/charger.c
+++ b/board/brya/charger.c
@@ -4,7 +4,7 @@
*/
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/bugzzy/board.c b/board/bugzzy/board.c
index c3f62e8787..5102db15be 100644
--- a/board/bugzzy/board.c
+++ b/board/bugzzy/board.c
@@ -9,7 +9,7 @@
#include "button.h"
#include "cbi_fw_config.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "chipset.h"
#include "common.h"
diff --git a/board/burnet/led.c b/board/burnet/led.c
index 68c4c9e839..750b3a217d 100644
--- a/board/burnet/led.c
+++ b/board/burnet/led.c
@@ -129,7 +129,7 @@ static void led_set_battery(void)
if (!board_is_convertible()) {
if (chipset_in_state(CHIPSET_STATE_SUSPEND |
CHIPSET_STATE_STANDBY) &&
- charge_get_state() != PWR_STATE_CHARGE) {
+ led_pwr_get_state() != PWR_STATE_CHARGE) {
led_set_color_battery(power_ticks++ & 0x2 ? LED_WHITE :
LED_OFF);
return;
@@ -138,7 +138,7 @@ static void led_set_battery(void)
power_ticks = 0;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
led_set_color_battery(LED_AMBER);
break;
diff --git a/board/cappy2/board.c b/board/cappy2/board.c
index 99f9f1bf73..9525e9c1f2 100644
--- a/board/cappy2/board.c
+++ b/board/cappy2/board.c
@@ -9,7 +9,7 @@
#include "button.h"
#include "cbi_fw_config.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "driver/bc12/pi3usb9201.h"
#include "driver/charger/isl923x.h"
diff --git a/board/careena/led.c b/board/careena/led.c
index fda7503974..c0f111ac4d 100644
--- a/board/careena/led.c
+++ b/board/careena/led.c
@@ -93,7 +93,7 @@ static void led_set_battery(void)
/* override battery led for system suspend */
if (chipset_in_state(CHIPSET_STATE_SUSPEND | CHIPSET_STATE_STANDBY) &&
- charge_get_state() != PWR_STATE_CHARGE) {
+ led_pwr_get_state() != PWR_STATE_CHARGE) {
led_set_color_battery(power_ticks++ & 0x4 ? LED_WHITE :
LED_OFF);
return;
@@ -101,7 +101,7 @@ static void led_set_battery(void)
power_ticks = 0;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
led_set_color_battery(LED_AMBER);
break;
diff --git a/board/cherry/board.c b/board/cherry/board.c
index f8700404ed..8d3faaf621 100644
--- a/board/cherry/board.c
+++ b/board/cherry/board.c
@@ -5,7 +5,7 @@
/* Cherry board configuration */
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "common.h"
#include "console.h"
#include "driver/accel_bma422.h"
diff --git a/board/chronicler/board.c b/board/chronicler/board.c
index daec7df9c3..ca6ae5c392 100644
--- a/board/chronicler/board.c
+++ b/board/chronicler/board.c
@@ -9,7 +9,7 @@
#include "battery_smart.h"
#include "button.h"
#include "cbi_ec_fw_config.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "common.h"
#include "driver/sync.h"
#include "driver/tcpm/ps8xxx.h"
diff --git a/board/chronicler/led.c b/board/chronicler/led.c
index fd5308f09d..7566c7b633 100644
--- a/board/chronicler/led.c
+++ b/board/chronicler/led.c
@@ -140,7 +140,7 @@ static void led_set_battery(void)
* LEDs to indicate system suspend without charging state.
*/
if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
- charge_get_state() != PWR_STATE_CHARGE) {
+ led_pwr_get_state() != PWR_STATE_CHARGE) {
suspend_ticks++;
led_set_color_battery(
@@ -152,7 +152,7 @@ static void led_set_battery(void)
suspend_ticks = 0;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/coachz/led.c b/board/coachz/led.c
index 01873eae3e..61ecc46181 100644
--- a/board/coachz/led.c
+++ b/board/coachz/led.c
@@ -72,7 +72,7 @@ static void board_led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate amber on when charging. */
color = LED_AMBER;
diff --git a/board/constitution/board.c b/board/constitution/board.c
index deb00f6c2c..8a3e56032e 100644
--- a/board/constitution/board.c
+++ b/board/constitution/board.c
@@ -6,7 +6,7 @@
#include "builtin/assert.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "common.h"
#include "compile_time_macros.h"
#include "console.h"
diff --git a/board/coral/board.h b/board/coral/board.h
index 4b570db1e5..f5cc6bb706 100644
--- a/board/coral/board.h
+++ b/board/coral/board.h
@@ -49,7 +49,8 @@
#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
#define CONFIG_BATTERY_CUT_OFF
#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
-#define CONFIG_BATTERY_LEVEL_NEAR_FULL 94
+#undef CONFIG_BATT_HOST_FULL_FACTOR
+#define CONFIG_BATT_HOST_FULL_FACTOR 94
#define CONFIG_BATTERY_PRESENT_CUSTOM
#define CONFIG_BATTERY_SMART
diff --git a/board/coral/led.c b/board/coral/led.c
index b8515c14c7..22cbca4fa2 100644
--- a/board/coral/led.c
+++ b/board/coral/led.c
@@ -174,7 +174,7 @@ static enum led_states led_get_state(void)
int charge_lvl;
enum led_states new_state = LED_NUM_STATES;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Get percent charge */
charge_lvl = charge_get_percent();
diff --git a/board/corori/board.c b/board/corori/board.c
index 545765b0d7..0717b73750 100644
--- a/board/corori/board.c
+++ b/board/corori/board.c
@@ -10,7 +10,7 @@
#include "cbi_fw_config.h"
#include "cbi_ssfc.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "chipset.h"
#include "common.h"
diff --git a/board/corori/board.h b/board/corori/board.h
index 16628d4619..5db8be64cc 100644
--- a/board/corori/board.h
+++ b/board/corori/board.h
@@ -37,7 +37,8 @@
/* LED defines */
#define CONFIG_LED_COMMON
-#define CONFIG_BATTERY_LEVEL_NEAR_FULL 94
+#undef CONFIG_BATT_HOST_FULL_FACTOR
+#define CONFIG_BATT_HOST_FULL_FACTOR 94
#define GPIO_BAT_LED_AMBER GPIO_LED_Y_ODL
#define GPIO_PWR_LED_WHITE GPIO_LED_W_ODL
diff --git a/board/corori/led.c b/board/corori/led.c
index f47871a4ed..da32dfa7f8 100644
--- a/board/corori/led.c
+++ b/board/corori/led.c
@@ -118,7 +118,7 @@ static enum led_states led_get_state(void)
{
enum led_states new_state = LED_NUM_STATES;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
new_state = STATE_CHARGING;
break;
diff --git a/board/corori2/board.c b/board/corori2/board.c
index 7bfc7d2e10..909099c6f8 100644
--- a/board/corori2/board.c
+++ b/board/corori2/board.c
@@ -9,7 +9,7 @@
#include "button.h"
#include "cbi_fw_config.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "chipset.h"
#include "common.h"
diff --git a/board/cret/board.c b/board/cret/board.c
index 4439a30044..59edd8145a 100644
--- a/board/cret/board.c
+++ b/board/cret/board.c
@@ -9,7 +9,7 @@
#include "button.h"
#include "cbi_fw_config.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "chipset.h"
#include "common.h"
diff --git a/board/crota/charger.c b/board/crota/charger.c
index ce19b66194..7b3edd270d 100644
--- a/board/crota/charger.c
+++ b/board/crota/charger.c
@@ -4,7 +4,7 @@
*/
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/crota/led.c b/board/crota/led.c
index 4b4be6fe39..86fc187521 100644
--- a/board/crota/led.c
+++ b/board/crota/led.c
@@ -98,7 +98,7 @@ __override enum led_states board_led_get_state(enum led_states desired_state)
/* Make sure when battery is pre-charging, the LED will blinking.
* Otherwise it will wait 30 seconds then blinking.
*/
- if (charge_get_state() == PWR_STATE_IDLE) {
+ if (led_pwr_get_state() == PWR_STATE_IDLE) {
if (charge_get_flags() & CHARGE_FLAG_EXTERNAL_POWER)
desired_state = STATE_BATTERY_ERROR;
}
diff --git a/board/damu/board.h b/board/damu/board.h
index 857f5d2390..64aa8404ec 100644
--- a/board/damu/board.h
+++ b/board/damu/board.h
@@ -8,6 +8,9 @@
#ifndef __CROS_EC_BOARD_H
#define __CROS_EC_BOARD_H
+/* Save some flash space */
+#undef CONFIG_CHARGE_DEBUG
+
#define VARIANT_KUKUI_JACUZZI
#define VARIANT_KUKUI_BATTERY_SMART
#define VARIANT_KUKUI_CHARGER_ISL9238
diff --git a/board/dibbi/board.c b/board/dibbi/board.c
index 5b7e8dd7c5..200a53043c 100644
--- a/board/dibbi/board.c
+++ b/board/dibbi/board.c
@@ -9,7 +9,7 @@
#include "board.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "driver/ppc/syv682x_public.h"
#include "driver/tcpm/it83xx_pd.h"
diff --git a/board/dirinboz/led.c b/board/dirinboz/led.c
index b4063177f4..f50393003d 100644
--- a/board/dirinboz/led.c
+++ b/board/dirinboz/led.c
@@ -142,7 +142,7 @@ static void led_set_battery(void)
* system suspend with non-charging state.
*/
if (chipset_in_state(CHIPSET_STATE_SUSPEND | CHIPSET_STATE_STANDBY) &&
- charge_get_state() != PWR_STATE_CHARGE) {
+ led_pwr_get_state() != PWR_STATE_CHARGE) {
power_ticks++;
led_set_color_battery(RIGHT_PORT,
@@ -154,7 +154,7 @@ static void led_set_battery(void)
power_ticks = 0;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/dojo/board.c b/board/dojo/board.c
index ca85def38c..28788d4641 100644
--- a/board/dojo/board.c
+++ b/board/dojo/board.c
@@ -7,7 +7,7 @@
#include "cbi_fw_config.h"
#include "cbi_ssfc.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "common.h"
#include "console.h"
#include "cros_board_info.h"
diff --git a/board/dojo/led.c b/board/dojo/led.c
index 4b2b379a1b..f1af389f60 100644
--- a/board/dojo/led.c
+++ b/board/dojo/led.c
@@ -134,7 +134,7 @@ static void board_led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/dooly/board.c b/board/dooly/board.c
index d0711c9c12..306fc86ae3 100644
--- a/board/dooly/board.c
+++ b/board/dooly/board.c
@@ -9,7 +9,7 @@
#include "adc.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "chipset.h"
#include "common.h"
#include "core/cortex-m/cpu.h"
diff --git a/board/dratini/led.c b/board/dratini/led.c
index 035bd963d5..16c0699a8e 100644
--- a/board/dratini/led.c
+++ b/board/dratini/led.c
@@ -156,7 +156,7 @@ static void led_set_battery(void)
if (!board_is_convertible()) {
if (chipset_in_state(CHIPSET_STATE_SUSPEND |
CHIPSET_STATE_STANDBY) &&
- charge_get_state() != PWR_STATE_CHARGE) {
+ led_pwr_get_state() != PWR_STATE_CHARGE) {
power_ticks++;
led_set_color_battery(0, power_ticks & 0x4 ? LED_WHITE :
@@ -169,7 +169,7 @@ static void led_set_battery(void)
power_ticks = 0;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/drawcia/board.c b/board/drawcia/board.c
index aa0c23c585..78459b6ef5 100644
--- a/board/drawcia/board.c
+++ b/board/drawcia/board.c
@@ -10,7 +10,7 @@
#include "cbi_fw_config.h"
#include "cbi_ssfc.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "cros_board_info.h"
#include "driver/accel_bma2x2.h"
diff --git a/board/drawcia/led.c b/board/drawcia/led.c
index 0fee248506..f9b504d13f 100644
--- a/board/drawcia/led.c
+++ b/board/drawcia/led.c
@@ -124,7 +124,7 @@ static void led_set_battery(void)
*/
if (get_cbi_fw_config_tablet_mode() == TABLET_MODE_ABSENT) {
if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
- charge_get_state() != PWR_STATE_CHARGE) {
+ led_pwr_get_state() != PWR_STATE_CHARGE) {
led_set_color_battery(power_ticks++ & 0x2 ? LED_WHITE :
LED_OFF);
return;
@@ -133,7 +133,7 @@ static void led_set_battery(void)
power_ticks = 0;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
led_set_color_battery(LED_AMBER);
break;
diff --git a/board/drawcia_riscv/board.c b/board/drawcia_riscv/board.c
index 6cd76b17bd..d8d0189635 100644
--- a/board/drawcia_riscv/board.c
+++ b/board/drawcia_riscv/board.c
@@ -9,7 +9,7 @@
#include "button.h"
#include "cbi_fw_config.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "cros_board_info.h"
#include "driver/accel_bma2x2.h"
diff --git a/board/drawcia_riscv/led.c b/board/drawcia_riscv/led.c
index d72626b2a2..f53a376a33 100644
--- a/board/drawcia_riscv/led.c
+++ b/board/drawcia_riscv/led.c
@@ -124,7 +124,7 @@ static void led_set_battery(void)
*/
if (get_cbi_fw_config_tablet_mode() == TABLET_MODE_ABSENT) {
if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
- charge_get_state() != PWR_STATE_CHARGE) {
+ led_pwr_get_state() != PWR_STATE_CHARGE) {
led_set_color_battery(power_ticks++ & 0x2 ? LED_WHITE :
LED_OFF);
return;
@@ -133,7 +133,7 @@ static void led_set_battery(void)
power_ticks = 0;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
led_set_color_battery(LED_AMBER);
break;
diff --git a/board/driblee/board.c b/board/driblee/board.c
index fd03b64e03..739be95ce3 100644
--- a/board/driblee/board.c
+++ b/board/driblee/board.c
@@ -10,7 +10,7 @@
#include "cbi_fw_config.h"
#include "cbi_ssfc.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "chipset.h"
#include "common.h"
diff --git a/board/drobit/board.c b/board/drobit/board.c
index d51097f97d..ab4e98c887 100644
--- a/board/drobit/board.c
+++ b/board/drobit/board.c
@@ -7,7 +7,7 @@
#include "accelgyro.h"
#include "button.h"
#include "cbi_ec_fw_config.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "common.h"
#include "driver/bc12/pi3usb9201.h"
#include "driver/ppc/syv682x.h"
diff --git a/board/eldrid/board.c b/board/eldrid/board.c
index e43bc79b5b..c5a0bb437e 100644
--- a/board/eldrid/board.c
+++ b/board/eldrid/board.c
@@ -7,7 +7,7 @@
#include "accelgyro.h"
#include "button.h"
#include "cbi_ec_fw_config.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "common.h"
#include "driver/accel_bma2x2.h"
#include "driver/accelgyro_bmi160.h"
diff --git a/board/elemi/led.c b/board/elemi/led.c
index 810b8281db..8ba177a0db 100644
--- a/board/elemi/led.c
+++ b/board/elemi/led.c
@@ -140,7 +140,7 @@ static void led_set_battery(void)
* system suspend without charging state.
*/
if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
- charge_get_state() != PWR_STATE_CHARGE) {
+ led_pwr_get_state() != PWR_STATE_CHARGE) {
suspend_ticks++;
led_set_color_battery(
@@ -152,7 +152,7 @@ static void led_set_battery(void)
suspend_ticks = 0;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/elm/led.c b/board/elm/led.c
index 211d1b2bbf..06de348884 100644
--- a/board/elm/led.c
+++ b/board/elm/led.c
@@ -136,7 +136,7 @@ static void elm_led_set_battery(void)
0 :
(1000 * remaining_capacity) / full_charge_capacity;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
if (permillage < FULL_BATTERY_PERMILLAGE) {
bat_led_set(BAT_LED_BLUE, 0);
diff --git a/board/eve/board.h b/board/eve/board.h
index a5cade1cc8..f72fd9b523 100644
--- a/board/eve/board.h
+++ b/board/eve/board.h
@@ -86,7 +86,8 @@
#define CONFIG_BATTERY_CRITICAL_SHUTDOWN_CUT_OFF
#define CONFIG_BATTERY_CUT_OFF
#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_LEVEL_NEAR_FULL 94
+#undef CONFIG_BATT_HOST_FULL_FACTOR
+#define CONFIG_BATT_HOST_FULL_FACTOR 94
#define CONFIG_BATTERY_PRESENT_CUSTOM
#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
#define CONFIG_BATTERY_SMART
diff --git a/board/eve/led.c b/board/eve/led.c
index e3dd8c09c4..3a8acff556 100644
--- a/board/eve/led.c
+++ b/board/eve/led.c
@@ -486,7 +486,7 @@ static enum led_pattern led_get_double_tap_pattern(int percent_chg)
static void led_select_pattern(enum led_pattern *pattern_desired, int tap)
{
- enum charge_state chg_state = charge_get_state();
+ enum led_pwr_state chg_state = led_pwr_get_state();
int side;
int percent_chg;
enum led_pattern new_pattern;
diff --git a/board/ezkinil/board.c b/board/ezkinil/board.c
index 03d0727b70..d2124188ce 100644
--- a/board/ezkinil/board.c
+++ b/board/ezkinil/board.c
@@ -6,7 +6,7 @@
#include "adc.h"
#include "button.h"
#include "cbi_ssfc.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "cros_board_info.h"
#include "driver/accel_kionix.h"
#include "driver/accel_kx022.h"
diff --git a/board/felwinter/charger_isl9241.c b/board/felwinter/charger_isl9241.c
index ddb37cbbcb..b86d92965b 100644
--- a/board/felwinter/charger_isl9241.c
+++ b/board/felwinter/charger_isl9241.c
@@ -4,7 +4,7 @@
*/
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/gaelin/board.c b/board/gaelin/board.c
index a2d760b92a..3b87757351 100644
--- a/board/gaelin/board.c
+++ b/board/gaelin/board.c
@@ -6,7 +6,7 @@
#include "assert.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "common.h"
#include "compile_time_macros.h"
#include "console.h"
diff --git a/board/galtic/board.c b/board/galtic/board.c
index 68a36216fe..a05c9f470d 100644
--- a/board/galtic/board.c
+++ b/board/galtic/board.c
@@ -10,7 +10,7 @@
#include "cbi_fw_config.h"
#include "cbi_ssfc.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "driver/accel_bma2x2.h"
#include "driver/accel_kionix.h"
diff --git a/board/gelarshie/led.c b/board/gelarshie/led.c
index e8b4dbbd8e..4c84965c41 100644
--- a/board/gelarshie/led.c
+++ b/board/gelarshie/led.c
@@ -72,7 +72,7 @@ static void board_led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate amber on when charging. */
color = LED_AMBER;
diff --git a/board/gimble/board.c b/board/gimble/board.c
index 8b849f7613..0a04dc5714 100644
--- a/board/gimble/board.c
+++ b/board/gimble/board.c
@@ -6,7 +6,7 @@
#include "battery.h"
#include "button.h"
#include "charge_ramp.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/gimble/charger.c b/board/gimble/charger.c
index 4976abdea6..827152e115 100644
--- a/board/gimble/charger.c
+++ b/board/gimble/charger.c
@@ -4,7 +4,7 @@
*/
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/gladios/board.c b/board/gladios/board.c
index b0fad206c0..551c53f20f 100644
--- a/board/gladios/board.c
+++ b/board/gladios/board.c
@@ -6,7 +6,7 @@
#include "builtin/assert.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "common.h"
#include "compile_time_macros.h"
#include "console.h"
diff --git a/board/gooey/board.c b/board/gooey/board.c
index 6a9d07dbce..0160832c04 100644
--- a/board/gooey/board.c
+++ b/board/gooey/board.c
@@ -8,7 +8,7 @@
#include "adc_chip.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "driver/accel_lis2dw12.h"
#include "driver/accelgyro_lsm6dsm.h"
diff --git a/board/goroh/board.c b/board/goroh/board.c
index a9eaa35b92..d13c7cfb1b 100644
--- a/board/goroh/board.c
+++ b/board/goroh/board.c
@@ -7,7 +7,7 @@
#include "adc.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "chipset.h"
#include "common.h"
diff --git a/board/gumboz/led.c b/board/gumboz/led.c
index c90caeec12..a506684a92 100644
--- a/board/gumboz/led.c
+++ b/board/gumboz/led.c
@@ -163,7 +163,7 @@ static void led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/haboki/board.c b/board/haboki/board.c
index 2b5e852824..74cf39483b 100644
--- a/board/haboki/board.c
+++ b/board/haboki/board.c
@@ -9,7 +9,7 @@
#include "button.h"
#include "cbi_fw_config.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "cros_board_info.h"
#include "driver/accel_bma2x2.h"
diff --git a/board/haboki/led.c b/board/haboki/led.c
index c6e481e285..4acc6f708d 100644
--- a/board/haboki/led.c
+++ b/board/haboki/led.c
@@ -124,7 +124,7 @@ static void led_set_battery(void)
*/
if (get_cbi_fw_config_tablet_mode() == TABLET_MODE_ABSENT) {
if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
- charge_get_state() != PWR_STATE_CHARGE) {
+ led_pwr_get_state() != PWR_STATE_CHARGE) {
led_set_color_battery(power_ticks++ & 0x2 ? LED_WHITE :
LED_OFF);
return;
@@ -133,7 +133,7 @@ static void led_set_battery(void)
power_ticks = 0;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
led_set_color_battery(LED_AMBER);
break;
diff --git a/board/hades/board.c b/board/hades/board.c
index a8cd55e56c..91721d6b59 100644
--- a/board/hades/board.c
+++ b/board/hades/board.c
@@ -40,8 +40,8 @@ struct d_notify_policy d_notify_policies[] = {
[D_NOTIFY_1] = AC_ATLEAST_W(100),
[D_NOTIFY_2] = AC_ATLEAST_W(65),
[D_NOTIFY_3] = AC_DC,
- [D_NOTIFY_4] = DC_ATLEAST_SOC(20),
- [D_NOTIFY_5] = DC_ATLEAST_SOC(5),
+ [D_NOTIFY_4] = DC_ATMOST_SOC(20),
+ [D_NOTIFY_5] = DC_ATMOST_SOC(5),
};
BUILD_ASSERT(ARRAY_SIZE(d_notify_policies) == D_NOTIFY_COUNT);
diff --git a/board/hades/board.h b/board/hades/board.h
index 6b2af13935..31baee2038 100644
--- a/board/hades/board.h
+++ b/board/hades/board.h
@@ -99,6 +99,7 @@
#define GPIO_PCH_WAKE_L GPIO_EC_PCH_INT_ODL
#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_SEQ_EC_ALL_SYS_PG
#define GPIO_PG_EC_DSW_PWROK GPIO_SEQ_EC_DSW_PWROK
+#define GPIO_PCH_DSW_PWROK GPIO_PCH_PWROK
#define GPIO_PG_EC_RSMRST_ODL GPIO_SEQ_EC_RSMRST_ODL
#define GPIO_POWER_BUTTON_L GPIO_GSC_EC_PWR_BTN_ODL
#define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL
diff --git a/board/hades/charger_isl9241.c b/board/hades/charger_isl9241.c
index 4886191fcc..ad59c5f139 100644
--- a/board/hades/charger_isl9241.c
+++ b/board/hades/charger_isl9241.c
@@ -35,7 +35,6 @@
#include "charge_manager.h"
#include "charge_state.h"
-#include "charge_state_v2.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/hades/gpio.inc b/board/hades/gpio.inc
index 318a14906c..e0d490e5a7 100644
--- a/board/hades/gpio.inc
+++ b/board/hades/gpio.inc
@@ -8,13 +8,13 @@
#define MODULE_KB MODULE_KEYBOARD_SCAN
/* INTERRUPT GPIOs: */
+GPIO_INT(SEQ_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, intel_x86_pwrok_signal_interrupt)
GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
GPIO_INT(EC_PROCHOT_IN_L, PIN(A, 0), GPIO_INT_BOTH, throttle_ap_prochot_input_interrupt)
GPIO_INT(EC_WP_ODL, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
GPIO_INT(GSC_EC_PWR_BTN_ODL, PIN(0, 1), GPIO_INT_BOTH | GPIO_HIB_WAKE_LOW, power_button_interrupt)
GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_PULL_UP | GPIO_HIB_WAKE_HIGH, lid_interrupt)
GPIO_INT(SEQ_EC_ALL_SYS_PG, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt)
-GPIO_INT(SEQ_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt)
GPIO_INT(SEQ_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt)
GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt)
GPIO_INT(SLP_SUS_L, PIN(F, 1), GPIO_INT_BOTH, power_signal_interrupt)
diff --git a/board/hades/led.c b/board/hades/led.c
index 580c8e1679..c160baa5e8 100644
--- a/board/hades/led.c
+++ b/board/hades/led.c
@@ -120,7 +120,7 @@ static void led_set_battery(void)
battery_ticks++;
if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
- charge_get_state() != PWR_STATE_CHARGE) {
+ led_pwr_get_state() != PWR_STATE_CHARGE) {
suspend_ticks++;
led_set_color_battery(
@@ -131,7 +131,7 @@ static void led_set_battery(void)
return;
}
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/hammer/board.h b/board/hammer/board.h
index 5d7b912ff2..d5ab4699ac 100644
--- a/board/hammer/board.h
+++ b/board/hammer/board.h
@@ -313,6 +313,7 @@
/*
* Add rollback protection, and independent RW region protection.
*/
+#define CONFIG_LIBCRYPTOC
#define CONFIG_ROLLBACK
#define CONFIG_ROLLBACK_SECRET_SIZE 32
#define CONFIG_ROLLBACK_SECRET_LOCAL_ENTROPY_SIZE 32
diff --git a/board/hammer/variants.h b/board/hammer/variants.h
index f649f27982..12b955dc43 100644
--- a/board/hammer/variants.h
+++ b/board/hammer/variants.h
@@ -208,7 +208,7 @@
/* GMR sensor for tablet mode detection */
#if defined(BOARD_DON) || defined(BOARD_MASTERBALL) || \
defined(BOARD_MOONBALL) || defined(BOARD_WHISKERS) || \
- defined(BOARD_EEL)
+ defined(BOARD_EEL) || defined(BOARD_JEWEL)
#define CONFIG_GMR_TABLET_MODE
#endif
diff --git a/board/herobrine/led.c b/board/herobrine/led.c
index fb68e85deb..475604dd42 100644
--- a/board/herobrine/led.c
+++ b/board/herobrine/led.c
@@ -93,7 +93,7 @@ static void board_led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/homestar/led.c b/board/homestar/led.c
index f6b3cddf48..b1e819a92f 100644
--- a/board/homestar/led.c
+++ b/board/homestar/led.c
@@ -81,7 +81,7 @@ static void board_led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
case PWR_STATE_CHARGE_NEAR_FULL:
if (chipset_in_state(CHIPSET_STATE_ON |
@@ -91,7 +91,7 @@ static void board_led_set_battery(void)
/* battery capa <= 5%, Red */
color = LED_RED;
} else if (percent > BATTERY_LEVEL_CRITICAL &&
- percent < BATTERY_LEVEL_NEAR_FULL) {
+ percent < CONFIG_BATT_HOST_FULL_FACTOR) {
/* 5% < battery capa < 97%, Orange */
color = LED_AMBER;
} else {
diff --git a/board/hyperdebug/gpio.c b/board/hyperdebug/gpio.c
index 5bcabe226d..dbffa7fefb 100644
--- a/board/hyperdebug/gpio.c
+++ b/board/hyperdebug/gpio.c
@@ -28,6 +28,34 @@ const struct dac_t dac_channels[GPIO_COUNT] = {
};
/*
+ * GPIO structure for keeping extra flags such as GPIO_OPEN_DRAIN, to be applied
+ * whenever the pin is switched into "alternate" mode.
+ */
+struct gpio_alt_flags {
+ /* Port base address */
+ uint32_t port;
+
+ /* Bitmask on that port (multiple bits allowed) */
+ uint32_t mask;
+
+ /* Flags (GPIO_*; see above). */
+ uint32_t flags;
+};
+
+/*
+ * Construct the gpio_alt_flags array, this really is just a subset of the
+ * columns in the gpio_alt_funcs array in common/gpio.c (which is not accessible
+ * from here). This array is used by extra_alternate_flags().
+ */
+#define ALTERNATE(pinmask, function, module, flagz) \
+ { GPIO_##pinmask, .flags = (flagz) },
+
+static __const_data const struct gpio_alt_flags gpio_alt_flags[] = {
+#include "gpio.wrap"
+};
+#undef ALTERNATE
+
+/*
* A cyclic buffer is used to record events (edges) of one or more GPIO
* signals. Each event records the time since the previous event, and the
* signal that changed (the direction of change is not explicitly recorded).
@@ -284,6 +312,30 @@ static void stop_all_gpio_monitoring(void)
}
}
+/*
+ * Return GPIO_OPEN_DRAIN or any other special flags to apply when the given
+ * signal is in "alternate" mode.
+ */
+static uint32_t extra_alternate_flags(enum gpio_signal signal)
+{
+ const struct gpio_info *g = gpio_list + signal;
+ const struct gpio_alt_flags *af;
+
+ /* Find the first ALTERNATE() declaration for the given pin. */
+ for (af = gpio_alt_flags;
+ af < gpio_alt_flags + ARRAY_SIZE(gpio_alt_flags); af++) {
+ if (af->port != g->port)
+ continue;
+
+ if (af->mask & g->mask) {
+ return af->flags;
+ }
+ }
+
+ /* No ALTERNATE() declaration mention the given pin. */
+ return 0;
+}
+
/**
* Find a GPIO signal by name.
*
@@ -344,7 +396,7 @@ static int command_gpio_mode(int argc, const char **argv)
/* Disable digital output, when DAC is overriding. */
flags |= GPIO_INPUT;
} else if (strcasecmp(argv[2], "alternate") == 0)
- flags |= GPIO_ALTERNATE;
+ flags |= GPIO_ALTERNATE | extra_alternate_flags(gpio);
else
return EC_ERROR_PARAM2;
@@ -484,7 +536,7 @@ static int command_gpio_multiset(int argc, const char **argv)
/* Disable digital output, when DAC is overriding. */
flags |= GPIO_INPUT;
} else if (strcasecmp(argv[4], "alternate") == 0)
- flags |= GPIO_ALTERNATE;
+ flags |= GPIO_ALTERNATE | extra_alternate_flags(gpio);
else
return EC_ERROR_PARAM4;
}
@@ -686,6 +738,11 @@ static int command_gpio_monitoring_read(int argc, const char **argv)
gpio_list[gpios[i]].name);
return EC_ERROR_PARAM3 + i;
}
+ if (slot->signal_no != i) {
+ ccprintf("Error: Inconsistent order at %s\n",
+ gpio_list[gpios[i]].name);
+ return EC_ERROR_PARAM3 + i;
+ }
if (buf == NULL) {
buf = slot->buffer;
} else if (buf != slot->buffer) {
@@ -872,6 +929,9 @@ static int command_reinit(int argc, const char **argv)
if (flags & GPIO_DEFAULT)
continue;
+ if (flags & GPIO_ALTERNATE)
+ flags |= extra_alternate_flags(i);
+
/* Set up GPIO based on flags */
gpio_set_flags_by_mask(g->port, g->mask, flags);
}
diff --git a/board/hyperdebug/i2c.c b/board/hyperdebug/i2c.c
index 6687b47c38..46b46f9278 100644
--- a/board/hyperdebug/i2c.c
+++ b/board/hyperdebug/i2c.c
@@ -16,17 +16,20 @@ const struct i2c_port_t i2c_ports[] = {
.port = 0,
.kbps = 100,
.scl = GPIO_CN7_2,
- .sda = GPIO_CN7_4 },
+ .sda = GPIO_CN7_4,
+ .flags = I2C_PORT_FLAG_DYNAMIC_SPEED },
{ .name = "I2C2",
.port = 1,
.kbps = 100,
.scl = GPIO_CN9_19,
- .sda = GPIO_CN9_21 },
+ .sda = GPIO_CN9_21,
+ .flags = I2C_PORT_FLAG_DYNAMIC_SPEED },
{ .name = "I2C3",
.port = 2,
.kbps = 100,
.scl = GPIO_CN9_11,
- .sda = GPIO_CN9_9 },
+ .sda = GPIO_CN9_9,
+ .flags = I2C_PORT_FLAG_DYNAMIC_SPEED },
};
const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
@@ -59,7 +62,7 @@ static int find_i2c_by_name(const char *name)
static void print_i2c_info(int index)
{
- uint32_t bits_per_second = 100000;
+ uint32_t bits_per_second = 1000 * i2c_freq_to_khz(i2c_get_freq(index));
ccprintf(" %d %s %d bps\n", index, i2c_ports[index].name,
bits_per_second);
@@ -95,13 +98,52 @@ static int command_i2c_info(int argc, const char **argv)
return EC_SUCCESS;
}
+static int command_i2c_set_speed(int argc, const char **argv)
+{
+ int index;
+ uint32_t desired_speed;
+ char *e;
+ if (argc < 5)
+ return EC_ERROR_PARAM_COUNT;
+
+ index = find_i2c_by_name(argv[3]);
+ if (index < 0)
+ return EC_ERROR_PARAM3;
+
+ desired_speed = strtoi(argv[4], &e, 0);
+ if (*e)
+ return EC_ERROR_PARAM4;
+
+ if (desired_speed >= 1000000) {
+ i2c_set_freq(index, I2C_FREQ_1000KHZ);
+ } else if (desired_speed >= 400000) {
+ i2c_set_freq(index, I2C_FREQ_400KHZ);
+ } else {
+ i2c_set_freq(index, I2C_FREQ_100KHZ);
+ }
+ return EC_SUCCESS;
+}
+
+static int command_i2c_set(int argc, const char **argv)
+{
+ if (argc < 3)
+ return EC_ERROR_PARAM_COUNT;
+ if (!strcasecmp(argv[2], "speed"))
+ return command_i2c_set_speed(argc, argv);
+ return EC_ERROR_PARAM2;
+}
+
static int command_i2c(int argc, const char **argv)
{
if (argc < 2)
return EC_ERROR_PARAM_COUNT;
if (!strcasecmp(argv[1], "info"))
return command_i2c_info(argc, argv);
+ if (!strcasecmp(argv[1], "set"))
+ return command_i2c_set(argc, argv);
return EC_ERROR_PARAM1;
}
-DECLARE_CONSOLE_COMMAND_FLAGS(i2c, command_i2c, "info [PORT]",
+DECLARE_CONSOLE_COMMAND_FLAGS(i2c, command_i2c,
+ "info [PORT]"
+ "\nset speed PORT BPS",
"I2C bus manipulation", CMD_FLAG_RESTRICTED);
diff --git a/board/jinlon/led.c b/board/jinlon/led.c
index a77ee8ba62..43a936e0a2 100644
--- a/board/jinlon/led.c
+++ b/board/jinlon/led.c
@@ -148,7 +148,7 @@ static void led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/kakadu/led.c b/board/kakadu/led.c
index 26e1ea22bb..ba833e0e22 100644
--- a/board/kakadu/led.c
+++ b/board/kakadu/led.c
@@ -26,13 +26,13 @@ const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
static void kakadu_led_set_battery(void)
{
- enum charge_state chstate;
+ enum led_pwr_state chstate;
enum power_state powerstate;
static uint8_t prv_white, prv_amber;
static uint8_t time_cnt;
uint8_t br[EC_LED_COLOR_COUNT] = { 0 };
- chstate = charge_get_state();
+ chstate = led_pwr_get_state();
powerstate = power_get_state();
switch (chstate) {
diff --git a/board/kano/charger.c b/board/kano/charger.c
index ddb37cbbcb..b86d92965b 100644
--- a/board/kano/charger.c
+++ b/board/kano/charger.c
@@ -4,7 +4,7 @@
*/
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/kappa/led.c b/board/kappa/led.c
index d9ecb33da0..6fb3b830f8 100644
--- a/board/kappa/led.c
+++ b/board/kappa/led.c
@@ -87,7 +87,7 @@ static void led_set_battery(void)
/* override battery led for system suspend */
if (chipset_in_state(CHIPSET_STATE_SUSPEND | CHIPSET_STATE_STANDBY) &&
- charge_get_state() != PWR_STATE_CHARGE) {
+ led_pwr_get_state() != PWR_STATE_CHARGE) {
led_set_color_battery(power_ticks++ & 0x2 ? LED_WHITE :
LED_OFF);
return;
@@ -95,7 +95,7 @@ static void led_set_battery(void)
power_ticks = 0;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
led_set_color_battery(LED_AMBER);
break;
diff --git a/board/katsu/led.c b/board/katsu/led.c
index 3ce9466613..346c5caa19 100644
--- a/board/katsu/led.c
+++ b/board/katsu/led.c
@@ -26,13 +26,13 @@ const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
static void katsu_led_set_battery(void)
{
- enum charge_state chstate;
+ enum led_pwr_state chstate;
enum power_state powerstate;
static uint8_t prv_white, prv_amber;
static uint8_t time_cnt;
uint8_t br[EC_LED_COLOR_COUNT] = { 0 };
- chstate = charge_get_state();
+ chstate = led_pwr_get_state();
powerstate = power_get_state();
switch (chstate) {
diff --git a/board/kingoftown/led.c b/board/kingoftown/led.c
index 2bbb0de0af..add916cdea 100644
--- a/board/kingoftown/led.c
+++ b/board/kingoftown/led.c
@@ -106,7 +106,7 @@ static void board_led_set_battery(void)
* charging.
*/
if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
- charge_get_state() != PWR_STATE_CHARGE) {
+ led_pwr_get_state() != PWR_STATE_CHARGE) {
power_ticks++;
led_blink_cycle = power_ticks % (2 * TIMES_TICK_ONE_SEC);
@@ -121,7 +121,7 @@ static void board_led_set_battery(void)
power_ticks = 0;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/kinox/board.c b/board/kinox/board.c
index 5748e5b013..02d741ddc5 100644
--- a/board/kinox/board.c
+++ b/board/kinox/board.c
@@ -6,7 +6,7 @@
#include "builtin/assert.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "common.h"
#include "compile_time_macros.h"
#include "console.h"
diff --git a/board/kracko/board.c b/board/kracko/board.c
index 025ec5109c..2f69f43632 100644
--- a/board/kracko/board.c
+++ b/board/kracko/board.c
@@ -10,7 +10,7 @@
#include "cbi_fw_config.h"
#include "cbi_ssfc.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "cros_board_info.h"
#include "driver/accel_bma2x2.h"
diff --git a/board/kukui/led.c b/board/kukui/led.c
index 9cfdf855be..7529f831f9 100644
--- a/board/kukui/led.c
+++ b/board/kukui/led.c
@@ -15,7 +15,7 @@ const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED };
const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-static enum charge_state prv_chstate = PWR_STATE_INIT;
+static enum led_pwr_state prv_chstate = PWR_STATE_INIT;
#define LED_OFF MT6370_LED_ID_OFF
#define LED_RED MT6370_LED_ID1
@@ -29,11 +29,11 @@ static enum charge_state prv_chstate = PWR_STATE_INIT;
static void kukui_led_set_battery(void)
{
- enum charge_state chstate;
+ enum led_pwr_state chstate;
static uint8_t prv_r, prv_g, prv_b;
uint8_t br[EC_LED_COLOR_COUNT] = { 0 };
- chstate = charge_get_state();
+ chstate = led_pwr_get_state();
if (prv_chstate == chstate && chstate != PWR_STATE_DISCHARGE)
return;
diff --git a/board/kuldax/board.c b/board/kuldax/board.c
index 545ee3c23c..c5fb16c5e7 100644
--- a/board/kuldax/board.c
+++ b/board/kuldax/board.c
@@ -6,7 +6,7 @@
#include "builtin/assert.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "common.h"
#include "compile_time_macros.h"
#include "console.h"
diff --git a/board/lalala/board.c b/board/lalala/board.c
index ed8c5ae2e5..2d9c004f20 100644
--- a/board/lalala/board.c
+++ b/board/lalala/board.c
@@ -10,7 +10,7 @@
#include "cbi_fw_config.h"
#include "cbi_ssfc.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "chipset.h"
#include "common.h"
diff --git a/board/lantis/board.c b/board/lantis/board.c
index 92c030def1..600f141639 100644
--- a/board/lantis/board.c
+++ b/board/lantis/board.c
@@ -10,7 +10,7 @@
#include "cbi_fw_config.h"
#include "cbi_ssfc.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "cros_board_info.h"
#include "driver/accel_bma2x2.h"
diff --git a/board/lantis/led.c b/board/lantis/led.c
index 3b66ad6d6b..75242a60ba 100644
--- a/board/lantis/led.c
+++ b/board/lantis/led.c
@@ -175,7 +175,7 @@ static void led_set_battery(void)
*/
if (get_cbi_fw_config_tablet_mode() == TABLET_MODE_ABSENT) {
if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
- charge_get_state() != PWR_STATE_CHARGE) {
+ led_pwr_get_state() != PWR_STATE_CHARGE) {
power_ticks++;
led_set_color_battery(RIGHT_PORT, power_ticks & 0x2 ?
@@ -190,7 +190,7 @@ static void led_set_battery(void)
power_ticks = 0;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
set_active_port_color(LED_AMBER);
break;
diff --git a/board/lazor/led.c b/board/lazor/led.c
index cf1f68d77e..c550a96896 100644
--- a/board/lazor/led.c
+++ b/board/lazor/led.c
@@ -69,7 +69,7 @@ static void board_led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate amber on when charging. */
color = LED_AMBER;
diff --git a/board/lisbon/board.c b/board/lisbon/board.c
index b0fad206c0..551c53f20f 100644
--- a/board/lisbon/board.c
+++ b/board/lisbon/board.c
@@ -6,7 +6,7 @@
#include "builtin/assert.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "common.h"
#include "compile_time_macros.h"
#include "console.h"
diff --git a/board/madoo/board.c b/board/madoo/board.c
index a1cdb024f9..bb031c3acf 100644
--- a/board/madoo/board.c
+++ b/board/madoo/board.c
@@ -9,7 +9,7 @@
#include "button.h"
#include "cbi_fw_config.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "chipset.h"
#include "common.h"
diff --git a/board/madoo/led.c b/board/madoo/led.c
index 5d17acee6e..214a941da8 100644
--- a/board/madoo/led.c
+++ b/board/madoo/led.c
@@ -79,7 +79,7 @@ int battery_safety_check(void)
int rv;
/* ignore battery in error state because it has other behavior */
- if (charge_get_state() == PWR_STATE_ERROR)
+ if (led_pwr_get_state() == PWR_STATE_ERROR)
return false;
/* turn off LED due to a safety fault */
@@ -130,7 +130,7 @@ __override void led_set_color_battery(enum ec_led_colors color)
if (battery_safety_check()) {
gpio_set_level(GPIO_BAT_LED_AMBER_L, LED_OFF_LVL);
gpio_set_level(GPIO_EC_CHG_LED_R_Y, LED_OFF_LVL);
- } else if (charge_get_state() == PWR_STATE_ERROR &&
+ } else if (led_pwr_get_state() == PWR_STATE_ERROR &&
system_get_board_version() >= 3) {
gpio_set_level(GPIO_EC_CHG_LED_R_W, LED_OFF_LVL);
gpio_set_level(GPIO_EC_CHG_LED_R_Y, LED_ON_LVL);
diff --git a/board/magolor/board.c b/board/magolor/board.c
index af524d9bfa..7759a38a0c 100644
--- a/board/magolor/board.c
+++ b/board/magolor/board.c
@@ -10,7 +10,7 @@
#include "cbi_fw_config.h"
#include "cbi_ssfc.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "chipset.h"
#include "common.h"
diff --git a/board/marasov/charger.c b/board/marasov/charger.c
index c531286643..d78c345f94 100644
--- a/board/marasov/charger.c
+++ b/board/marasov/charger.c
@@ -4,7 +4,7 @@
*/
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/marzipan/led.c b/board/marzipan/led.c
index 0a6d8df959..cb55fdddae 100644
--- a/board/marzipan/led.c
+++ b/board/marzipan/led.c
@@ -69,7 +69,7 @@ static void board_led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate amber on when charging. */
color = LED_AMBER;
diff --git a/board/mchpevb1/led.c b/board/mchpevb1/led.c
index 8a5d85e97d..98a72c7c85 100644
--- a/board/mchpevb1/led.c
+++ b/board/mchpevb1/led.c
@@ -119,7 +119,7 @@ static void board_led_set_battery(void)
* Same as the chromeos spec
* Green/Amber for CHARGE_FLAG_FORCE_IDLE
*/
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
board_led_set_color_battery(LED_AMBER);
break;
diff --git a/board/metaknight/board.c b/board/metaknight/board.c
index cde7ed51ec..7675c7c8f5 100644
--- a/board/metaknight/board.c
+++ b/board/metaknight/board.c
@@ -10,7 +10,7 @@
#include "cbi_fw_config.h"
#include "cbi_ssfc.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "chipset.h"
#include "common.h"
diff --git a/board/mithrax/charger_isl9241.c b/board/mithrax/charger_isl9241.c
index c6ee062ab5..76e2712181 100644
--- a/board/mithrax/charger_isl9241.c
+++ b/board/mithrax/charger_isl9241.c
@@ -4,7 +4,7 @@
*/
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/moli/board.c b/board/moli/board.c
index e3a7bd0fa9..a8e4eddc9d 100644
--- a/board/moli/board.c
+++ b/board/moli/board.c
@@ -7,7 +7,7 @@
#include "builtin/assert.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "chipset.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/morphius/board.h b/board/morphius/board.h
index b430055930..ca3ecf4f03 100644
--- a/board/morphius/board.h
+++ b/board/morphius/board.h
@@ -23,7 +23,8 @@
#define CONFIG_ASSERT_CCD_MODE_ON_DTS_CONNECT
#undef CONFIG_LED_ONOFF_STATES
-#define CONFIG_BATTERY_LEVEL_NEAR_FULL 91
+#undef CONFIG_BATT_HOST_FULL_FACTOR
+#define CONFIG_BATT_HOST_FULL_FACTOR 91
#undef ZORK_PS8818_RX_INPUT_TERM
#define ZORK_PS8818_RX_INPUT_TERM PS8818_RX_INPUT_TERM_85_OHM
diff --git a/board/morphius/led.c b/board/morphius/led.c
index 23f715da02..89c2f01793 100644
--- a/board/morphius/led.c
+++ b/board/morphius/led.c
@@ -162,7 +162,7 @@ static void led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
led_set_color_battery(LED_AMBER);
diff --git a/board/mrbland/led.c b/board/mrbland/led.c
index fbc7bf3c19..d2ef61f5c4 100644
--- a/board/mrbland/led.c
+++ b/board/mrbland/led.c
@@ -100,7 +100,7 @@ static void board_led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
case PWR_STATE_CHARGE_NEAR_FULL:
if (chipset_in_state(CHIPSET_STATE_ON |
@@ -110,7 +110,7 @@ static void board_led_set_battery(void)
/* battery capa <= 5%, Red */
color = LED_RED;
} else if (percent > BATTERY_LEVEL_CRITICAL &&
- percent < BATTERY_LEVEL_NEAR_FULL) {
+ percent < CONFIG_BATT_HOST_FULL_FACTOR) {
/* 5% < battery capa < 97%, Orange */
color = LED_AMBER;
} else {
@@ -159,7 +159,7 @@ static void board_led_set_power(void)
power_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
case PWR_STATE_CHARGE_NEAR_FULL:
case PWR_STATE_DISCHARGE:
diff --git a/board/nami/led.c b/board/nami/led.c
index a92302b860..dda550cdf6 100644
--- a/board/nami/led.c
+++ b/board/nami/led.c
@@ -504,12 +504,12 @@ void config_leds(enum led_charge_state charge)
static void call_handler(void)
{
int soc;
- enum charge_state cs;
+ enum led_pwr_state cs;
if (!led_auto_control_is_enabled(EC_LED_ID_BATTERY_LED))
return;
- cs = charge_get_state();
+ cs = led_pwr_get_state();
soc = charge_get_display_charge();
if (soc < 0)
cs = PWR_STATE_ERROR;
diff --git a/board/nautilus/led.c b/board/nautilus/led.c
index 3fab136610..92e2dd6e8c 100644
--- a/board/nautilus/led.c
+++ b/board/nautilus/led.c
@@ -70,7 +70,7 @@ static void nautilus_led_set_power_battery(void)
{
static unsigned int power_ticks;
enum led_color cur_led_color = LED_RED;
- enum charge_state chg_state = charge_get_state();
+ enum led_pwr_state chg_state = led_pwr_get_state();
int charge_percent = charge_get_percent();
if (chipset_in_state(CHIPSET_STATE_ON)) {
@@ -91,7 +91,7 @@ static void nautilus_led_set_power_battery(void)
switch (chg_state) {
case PWR_STATE_DISCHARGE:
if ((charge_get_flags() & CHARGE_FLAG_EXTERNAL_POWER) &&
- charge_percent >= BATTERY_LEVEL_NEAR_FULL)
+ charge_percent >= CONFIG_BATT_HOST_FULL_FACTOR)
cur_led_color = LED_GREEN;
else
cur_led_color = LED_OFF;
diff --git a/board/nipperkin/led.c b/board/nipperkin/led.c
index 5390748af1..99f0c616fe 100644
--- a/board/nipperkin/led.c
+++ b/board/nipperkin/led.c
@@ -140,7 +140,7 @@ static void led_set_battery(void)
* system suspend with non-charging state.
*/
if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
- charge_get_state() != PWR_STATE_CHARGE) {
+ led_pwr_get_state() != PWR_STATE_CHARGE) {
power_ticks++;
led_set_color_battery(LED_RIGHT_PORT,
@@ -158,7 +158,7 @@ static void led_set_battery(void)
power_ticks = 0;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/nocturne/battery.c b/board/nocturne/battery.c
index bfb4b25467..4914f89b2e 100644
--- a/board/nocturne/battery.c
+++ b/board/nocturne/battery.c
@@ -8,7 +8,7 @@
#include "battery.h"
#include "battery_smart.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "chipset.h"
#include "common.h"
diff --git a/board/nocturne/board.c b/board/nocturne/board.c
index b566d43e41..de7671163b 100644
--- a/board/nocturne/board.c
+++ b/board/nocturne/board.c
@@ -9,7 +9,6 @@
#include "button.h"
#include "charge_manager.h"
#include "charge_state.h"
-#include "charge_state_v2.h"
#include "chipset.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/oak/led.c b/board/oak/led.c
index cbf951dec5..b8ae3be780 100644
--- a/board/oak/led.c
+++ b/board/oak/led.c
@@ -154,7 +154,7 @@ static void oak_led_set_battery(int board_version)
* - Battery discharging capacity<10%, red blink
* - Battery error: Red ON
*/
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
bat_led_set(BAT_LED_AMBER, 1);
break;
@@ -219,7 +219,7 @@ static void oak_led_set_battery(int board_version)
* situation: Orange in blinking mode (1s on, 1s off)
* Using battery or not connected to AC power: OFF
*/
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
bat_led_set(BAT_LED_ORANGE, 1);
break;
diff --git a/board/omnigul/charger.c b/board/omnigul/charger.c
index dc8fa76be3..b3ca8dc104 100644
--- a/board/omnigul/charger.c
+++ b/board/omnigul/charger.c
@@ -4,7 +4,7 @@
*/
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/omnigul/fw_config.c b/board/omnigul/fw_config.c
index 5ac34a56b5..34b460dad1 100644
--- a/board/omnigul/fw_config.c
+++ b/board/omnigul/fw_config.c
@@ -41,3 +41,8 @@ union omnigul_cbi_fw_config get_fw_config(void)
{
return fw_config;
}
+
+bool ec_cfg_has_tabletmode(void)
+{
+ return (fw_config.tab_mode == TABLETMODE_ENABLED);
+}
diff --git a/board/omnigul/fw_config.h b/board/omnigul/fw_config.h
index d30c09cb24..d0facef0da 100644
--- a/board/omnigul/fw_config.h
+++ b/board/omnigul/fw_config.h
@@ -53,4 +53,6 @@ union omnigul_cbi_fw_config {
*/
union omnigul_cbi_fw_config get_fw_config(void);
+bool ec_cfg_has_tabletmode(void);
+
#endif /* __BOARD_OMNIGUL_FW_CONFIG_H_ */
diff --git a/board/omnigul/sensors.c b/board/omnigul/sensors.c
index e203a194c4..a2d08bd045 100644
--- a/board/omnigul/sensors.c
+++ b/board/omnigul/sensors.c
@@ -8,9 +8,11 @@
#include "common.h"
#include "driver/accel_lis2dw12.h"
#include "driver/accelgyro_lsm6dso.h"
+#include "fw_config.h"
#include "gpio.h"
#include "hooks.h"
#include "motion_sense.h"
+#include "tablet_mode.h"
#include "temp_sensor.h"
#include "temp_sensor/thermistor.h"
#include "thermal.h"
@@ -134,10 +136,19 @@ const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
static void baseboard_sensors_init(void)
{
- /* Enable gpio interrupt for lid accel sensor */
- gpio_enable_interrupt(GPIO_EC_ACCEL_INT_R_L);
- /* Enable gpio interrupt for base accelgyro sensor */
- gpio_enable_interrupt(GPIO_EC_IMU_INT_R_L);
+ if (ec_cfg_has_tabletmode()) {
+ /* Enable gpio interrupt for lid accel sensor */
+ gpio_enable_interrupt(GPIO_EC_ACCEL_INT_R_L);
+ /* Enable gpio interrupt for base accelgyro sensor */
+ gpio_enable_interrupt(GPIO_EC_IMU_INT_R_L);
+ } else {
+ gmr_tablet_switch_disable();
+ /* Base accel is not stuffed, don't allow line to float */
+ gpio_set_flags(GPIO_EC_ACCEL_INT_R_L,
+ GPIO_INPUT | GPIO_PULL_DOWN);
+ gpio_set_flags(GPIO_EC_IMU_INT_R_L,
+ GPIO_INPUT | GPIO_PULL_DOWN);
+ }
}
DECLARE_HOOK(HOOK_INIT, baseboard_sensors_init, HOOK_PRIO_INIT_I2C + 1);
diff --git a/board/osiris/charger.c b/board/osiris/charger.c
index c6ee062ab5..76e2712181 100644
--- a/board/osiris/charger.c
+++ b/board/osiris/charger.c
@@ -4,7 +4,7 @@
*/
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/pazquel/led.c b/board/pazquel/led.c
index 180e9829f5..0b67b83878 100644
--- a/board/pazquel/led.c
+++ b/board/pazquel/led.c
@@ -68,7 +68,7 @@ static void board_led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate amber on when charging. */
color = LED_RED;
diff --git a/board/pirika/board.c b/board/pirika/board.c
index f153da2ce7..d1baae03f2 100644
--- a/board/pirika/board.c
+++ b/board/pirika/board.c
@@ -9,7 +9,7 @@
#include "button.h"
#include "cbi_fw_config.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "driver/accel_kionix.h"
#include "driver/accelgyro_lsm6dsm.h"
diff --git a/board/pompom/led.c b/board/pompom/led.c
index 31fccbf4e2..2668f05e0f 100644
--- a/board/pompom/led.c
+++ b/board/pompom/led.c
@@ -85,7 +85,7 @@ static void board_led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate amber on when charging. */
color = LED_AMBER;
diff --git a/board/poppy/led.c b/board/poppy/led.c
index f388dd0326..7f94a84147 100644
--- a/board/poppy/led.c
+++ b/board/poppy/led.c
@@ -96,7 +96,7 @@ static void board_led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/primus/board.c b/board/primus/board.c
index 2a8ff39ac7..f42e83c509 100644
--- a/board/primus/board.c
+++ b/board/primus/board.c
@@ -7,7 +7,7 @@
#include "button.h"
#include "charge_manager.h"
#include "charge_ramp.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/primus/board.h b/board/primus/board.h
index 7346acc2ab..3fb8b868c6 100644
--- a/board/primus/board.h
+++ b/board/primus/board.h
@@ -131,7 +131,8 @@
#define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
/* LED */
-#define CONFIG_BATTERY_LEVEL_NEAR_FULL 91
+#undef CONFIG_BATT_HOST_FULL_FACTOR
+#define CONFIG_BATT_HOST_FULL_FACTOR 91
/* Fan features */
#define CONFIG_CUSTOM_FAN_CONTROL
diff --git a/board/primus/charger.c b/board/primus/charger.c
index 4976abdea6..827152e115 100644
--- a/board/primus/charger.c
+++ b/board/primus/charger.c
@@ -4,7 +4,7 @@
*/
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/primus/led.c b/board/primus/led.c
index 269b497c4b..b25eade32c 100644
--- a/board/primus/led.c
+++ b/board/primus/led.c
@@ -69,7 +69,7 @@ static void led_set_color_battery(enum ec_led_colors color)
static void led_set_battery(void)
{
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
led_set_color_battery(EC_LED_COLOR_AMBER);
diff --git a/board/prism/board.h b/board/prism/board.h
index 42768de2e7..c4bf4de58e 100644
--- a/board/prism/board.h
+++ b/board/prism/board.h
@@ -184,6 +184,7 @@
/*
* Add rollback protection, and independent RW region protection.
*/
+#define CONFIG_LIBCRYPTOC
#define CONFIG_ROLLBACK
#define CONFIG_ROLLBACK_SECRET_SIZE 32
#define CONFIG_ROLLBACK_SECRET_LOCAL_ENTROPY_SIZE 32
diff --git a/board/puff/board.c b/board/puff/board.c
index ce2a59d8cb..7e5c2ad8e6 100644
--- a/board/puff/board.c
+++ b/board/puff/board.c
@@ -8,7 +8,7 @@
#include "adc.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "chipset.h"
#include "common.h"
#include "core/cortex-m/cpu.h"
diff --git a/board/quackingstick/led.c b/board/quackingstick/led.c
index ef3a858e2b..202a7e7847 100644
--- a/board/quackingstick/led.c
+++ b/board/quackingstick/led.c
@@ -72,7 +72,7 @@ static void board_led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate amber on when charging. */
color = LED_AMBER;
diff --git a/board/rammus/board.h b/board/rammus/board.h
index 096d419fe9..bfe8f75e53 100644
--- a/board/rammus/board.h
+++ b/board/rammus/board.h
@@ -75,7 +75,8 @@
#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
#define CONFIG_BATTERY_SMART
-#define CONFIG_BATTERY_LEVEL_NEAR_FULL 94
+#undef CONFIG_BATT_HOST_FULL_FACTOR
+#define CONFIG_BATT_HOST_FULL_FACTOR 94
/* Charger */
#define CONFIG_CHARGE_MANAGER
diff --git a/board/rammus/led.c b/board/rammus/led.c
index 5ae415a61a..e9b7edec7f 100644
--- a/board/rammus/led.c
+++ b/board/rammus/led.c
@@ -123,7 +123,7 @@ static void rammus_led_set_power(void)
static void rammus_led_set_battery(void)
{
- enum charge_state chg_state = charge_get_state();
+ enum led_pwr_state chg_state = led_pwr_get_state();
int charge_percent = charge_get_percent();
static unsigned int charge_ticks;
@@ -131,7 +131,7 @@ static void rammus_led_set_battery(void)
switch (chg_state) {
case PWR_STATE_DISCHARGE:
if ((charge_get_flags() & CHARGE_FLAG_EXTERNAL_POWER) &&
- charge_percent >= BATTERY_LEVEL_NEAR_FULL)
+ charge_percent >= CONFIG_BATT_HOST_FULL_FACTOR)
config_battery_led(LED_STATE_FULL);
else
config_battery_led(LED_STATE_DISCHARGE);
diff --git a/board/redrix/charger.c b/board/redrix/charger.c
index 4976abdea6..827152e115 100644
--- a/board/redrix/charger.c
+++ b/board/redrix/charger.c
@@ -4,7 +4,7 @@
*/
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/redrix/led.c b/board/redrix/led.c
index 0eae346948..194ba6cb7d 100644
--- a/board/redrix/led.c
+++ b/board/redrix/led.c
@@ -158,7 +158,7 @@ static void led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/reef/led.c b/board/reef/led.c
index 8bc52dbc75..adc9ab823f 100644
--- a/board/reef/led.c
+++ b/board/reef/led.c
@@ -95,7 +95,7 @@ static void led_set_battery(void)
static int battery_ticks;
static int suspend_ticks;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
led_set_color_battery(LED_AMBER);
break;
diff --git a/board/reef_it8320/led.c b/board/reef_it8320/led.c
index 630fdf336d..c150b237c4 100644
--- a/board/reef_it8320/led.c
+++ b/board/reef_it8320/led.c
@@ -96,7 +96,7 @@ static void led_set_battery(void)
static int battery_ticks;
static int suspend_ticks;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
led_set_color_battery(LED_AMBER);
break;
diff --git a/board/reef_mchp/led.c b/board/reef_mchp/led.c
index 96ea6bb958..37ec8493e7 100644
--- a/board/reef_mchp/led.c
+++ b/board/reef_mchp/led.c
@@ -96,7 +96,7 @@ static void led_set_battery(void)
static int battery_ticks;
static int suspend_ticks;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
led_set_color_battery(LED_AMBER);
break;
diff --git a/board/sasuke/board.c b/board/sasuke/board.c
index bc96165f4d..502fa60bd5 100644
--- a/board/sasuke/board.c
+++ b/board/sasuke/board.c
@@ -10,7 +10,7 @@
#include "cbi_fw_config.h"
#include "cbi_ssfc.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "chipset.h"
#include "common.h"
diff --git a/board/sasukette/board.c b/board/sasukette/board.c
index f5076382e6..7284d2d3c8 100644
--- a/board/sasukette/board.c
+++ b/board/sasukette/board.c
@@ -9,7 +9,7 @@
#include "button.h"
#include "cbi_fw_config.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "cros_board_info.h"
#include "driver/bc12/pi3usb9201.h"
diff --git a/board/scarlet/battery.c b/board/scarlet/battery.c
index 5d4412f66c..f38e1f7896 100644
--- a/board/scarlet/battery.c
+++ b/board/scarlet/battery.c
@@ -243,12 +243,12 @@ int charger_profile_override(struct charge_state_data *curr)
/*
* When the charger says it's done charging, even if fuel gauge says
- * SOC < BATTERY_LEVEL_NEAR_FULL, we'll overwrite SOC with
- * BATTERY_LEVEL_NEAR_FULL. So we can ensure both Chrome OS UI
+ * SOC < CONFIG_BATT_HOST_FULL_FACTOR, we'll overwrite SOC with
+ * CONFIG_BATT_HOST_FULL_FACTOR. So we can ensure both Chrome OS UI
* and battery LED indicate full charge.
*/
if (rt946x_is_charge_done()) {
- curr->batt.state_of_charge = MAX(BATTERY_LEVEL_NEAR_FULL,
+ curr->batt.state_of_charge = MAX(CONFIG_BATT_HOST_FULL_FACTOR,
curr->batt.state_of_charge);
/*
* This is a workaround for b:78792296. When AP is off and
diff --git a/board/scarlet/board.c b/board/scarlet/board.c
index 9c26757ba0..daa247b385 100644
--- a/board/scarlet/board.c
+++ b/board/scarlet/board.c
@@ -8,7 +8,6 @@
#include "button.h"
#include "charge_manager.h"
#include "charge_state.h"
-#include "charge_state_v2.h"
#include "charger.h"
#include "chipset.h"
#include "common.h"
diff --git a/board/scarlet/led.c b/board/scarlet/led.c
index 6f42f462cf..f4a3bae9f4 100644
--- a/board/scarlet/led.c
+++ b/board/scarlet/led.c
@@ -63,7 +63,7 @@ static void scarlet_led_set_battery(void)
battery_second++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
bat_led_set_color(LED_AMBER);
break;
@@ -74,7 +74,7 @@ static void scarlet_led_set_battery(void)
else if (charge_get_percent() < 10)
bat_led_set_color((battery_second & 3) ? LED_OFF :
LED_AMBER);
- else if (charge_get_percent() >= BATTERY_LEVEL_NEAR_FULL &&
+ else if (charge_get_percent() >= CONFIG_BATT_HOST_FULL_FACTOR &&
(chflags & CHARGE_FLAG_EXTERNAL_POWER))
bat_led_set_color(LED_GREEN);
else
diff --git a/board/shotzo/board.c b/board/shotzo/board.c
index ca90a54301..6ae6d8e55c 100644
--- a/board/shotzo/board.c
+++ b/board/shotzo/board.c
@@ -9,7 +9,7 @@
#include "button.h"
#include "cbi_fw_config.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "cros_board_info.h"
#include "driver/charger/sm5803.h"
diff --git a/board/spherion/board.c b/board/spherion/board.c
index 0170a8998e..b6df18b119 100644
--- a/board/spherion/board.c
+++ b/board/spherion/board.c
@@ -7,7 +7,7 @@
#include "adc.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "chipset.h"
#include "common.h"
diff --git a/board/storo/board.c b/board/storo/board.c
index 854838d844..d8f1b09ae1 100644
--- a/board/storo/board.c
+++ b/board/storo/board.c
@@ -10,7 +10,7 @@
#include "cbi_fw_config.h"
#include "cbi_ssfc.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "cros_board_info.h"
#include "driver/accel_bma2x2.h"
diff --git a/board/taeko/board.c b/board/taeko/board.c
index a654d4c76a..aaf7f215ff 100644
--- a/board/taeko/board.c
+++ b/board/taeko/board.c
@@ -7,7 +7,7 @@
#include "button.h"
#include "charge_manager.h"
#include "charge_ramp.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/taeko/charger.c b/board/taeko/charger.c
index 4976abdea6..827152e115 100644
--- a/board/taeko/charger.c
+++ b/board/taeko/charger.c
@@ -4,7 +4,7 @@
*/
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/taniks/board.c b/board/taniks/board.c
index 5657de1fe7..fdda313c9e 100644
--- a/board/taniks/board.c
+++ b/board/taniks/board.c
@@ -7,7 +7,7 @@
#include "button.h"
#include "charge_manager.h"
#include "charge_ramp.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/taniks/charger.c b/board/taniks/charger.c
index 4976abdea6..827152e115 100644
--- a/board/taniks/charger.c
+++ b/board/taniks/charger.c
@@ -4,7 +4,7 @@
*/
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/taranza/board.c b/board/taranza/board.c
index 3c9cc62e2b..2fdeebb57b 100644
--- a/board/taranza/board.c
+++ b/board/taranza/board.c
@@ -9,7 +9,7 @@
#include "board.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "driver/ppc/syv682x_public.h"
#include "driver/tcpm/it83xx_pd.h"
@@ -20,8 +20,6 @@
#include "intc.h"
#include "power.h"
#include "power_button.h"
-#include "pwm.h"
-#include "pwm_chip.h"
#include "switch.h"
#include "system.h"
#include "tablet_mode.h"
@@ -112,29 +110,6 @@ const int usb_port_enable[USB_PORT_COUNT] = {
GPIO_EN_USB_A3_VBUS, GPIO_EN_USB_A4_VBUS,
};
-/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
-const struct pwm_t pwm_channels[] = {
- [PWM_CH_LED_RED] = {
- .channel = 1,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- },
-
- [PWM_CH_LED_GREEN] = {
- .channel = 2,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- },
-
- [PWM_CH_LED_BLUE] = {
- .channel = 3,
- .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW,
- .freq_hz = 2400,
- }
-
-};
-BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
-
/* Thermistors */
const struct temp_sensor_t temp_sensors[] = {
[TEMP_SENSOR_1] = { .name = "Memory",
diff --git a/board/taranza/board.h b/board/taranza/board.h
index 9078e4a137..23453da79c 100644
--- a/board/taranza/board.h
+++ b/board/taranza/board.h
@@ -77,13 +77,6 @@
#undef CONFIG_BATTERY_REVIVE_DISCONNECT
#undef CONFIG_BATTERY_SMART
-/* LED */
-#define CONFIG_LED_PWM
-#define CONFIG_LED_PWM_COUNT 1
-
-/* PWM */
-#define CONFIG_PWM
-
/* Thermistors */
#define CONFIG_TEMP_SENSOR
#define CONFIG_THERMISTOR
@@ -137,13 +130,6 @@ enum charge_port {
enum usbc_port { USBC_PORT_C0 = 0, USBC_PORT_COUNT };
-enum pwm_channel {
- PWM_CH_LED_RED,
- PWM_CH_LED_GREEN,
- PWM_CH_LED_BLUE,
- PWM_CH_COUNT,
-};
-
/* ADC channels */
enum adc_channel {
ADC_VSNS_PP3300_A, /* ADC0 */
diff --git a/board/taranza/gpio.inc b/board/taranza/gpio.inc
index 7a9b1c3fdc..652c457f62 100644
--- a/board/taranza/gpio.inc
+++ b/board/taranza/gpio.inc
@@ -129,6 +129,9 @@ GPIO(ECH1_PACKET_MODE, PIN(C, 0), GPIO_OUT_LOW)
GPIO(EN_RS232_X, PIN(E, 6), GPIO_OUT_LOW)
GPIO(UART0_RX, PIN(B, 1), GPIO_OUT_LOW) /* UART_EC_TX_DBG_RX */
+/* LED */
+GPIO(LED_W_ODL, PIN(A, 2), GPIO_OUT_HIGH)
+
/* NC pins, enable internal pull-down to avoid floating state. */
GPIO(GPIOG0_NC, PIN(G, 0), GPIO_INPUT | GPIO_PULL_DOWN)
GPIO(GPIOG3_NC, PIN(G, 3), GPIO_INPUT | GPIO_PULL_DOWN)
@@ -142,6 +145,8 @@ GPIO(GPIOI4_NC, PIN(I, 4), GPIO_INPUT | GPIO_PULL_DOWN)
GPIO(GPIOJ6_NC, PIN(J, 6), GPIO_INPUT | GPIO_PULL_DOWN)
GPIO(GPIOK3_NC, PIN(K, 3), GPIO_INPUT | GPIO_PULL_DOWN)
GPIO(GPIOM6_NC, PIN(M, 6), GPIO_INPUT | GPIO_PULL_DOWN)
+GPIO(GPIOA1_NC, PIN(A, 1), GPIO_INPUT | GPIO_PULL_DOWN)
+GPIO(GPIOA3_NC, PIN(A, 3), GPIO_INPUT | GPIO_PULL_DOWN)
/* Alternate functions GPIO definitions */
/* UART */
@@ -172,8 +177,3 @@ ALTERNATE(PIN_MASK(L, BIT(0) | BIT(2) | BIT(3)), 0, MODULE_ADC,
ADC16:
SNS_PPVAR_PWR_IN
*/
-
-/* PWM */
-ALTERNATE(PIN_MASK(A, BIT(1) | BIT(2) | BIT(3)), 0, MODULE_PWM,
- 0) /* LED_[R,G,B]_ODL
- */
diff --git a/board/taranza/led.c b/board/taranza/led.c
index 31ab932829..4f41c3c6c1 100644
--- a/board/taranza/led.c
+++ b/board/taranza/led.c
@@ -3,78 +3,65 @@
* found in the LICENSE file.
*/
-/* Taranza specific PWM LED settings. */
+/* Taranza specific LED settings. */
-#include "common.h"
+#include "chipset.h"
#include "ec_commands.h"
-#include "led_pwm.h"
-#include "pwm.h"
-#include "util.h"
+#include "gpio.h"
+#include "hooks.h"
+#include "led_common.h"
+
+#define LED_ON_LVL 0
+#define LED_OFF_LVL 1
const enum ec_led_id supported_led_ids[] = {
EC_LED_ID_POWER_LED,
};
+
const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
-/* One physical LED with red, green, and blue. */
-struct pwm_led_color_map led_color_map[EC_LED_COLOR_COUNT] = {
- /* Red, Green, Blue */
- [EC_LED_COLOR_RED] = { 100, 0, 0 },
- [EC_LED_COLOR_GREEN] = { 0, 100, 0 },
- [EC_LED_COLOR_BLUE] = { 0, 0, 100 },
- [EC_LED_COLOR_YELLOW] = { 50, 50, 0 },
- [EC_LED_COLOR_WHITE] = { 50, 50, 50 },
- [EC_LED_COLOR_AMBER] = { 70, 30, 0 },
+enum led_color {
+ LED_OFF = 0,
+ LED_WHITE,
+ LED_COLOR_COUNT /* Number of colors, not a color itself */
};
-/* One logical LED with red, green, and blue channels. */
-struct pwm_led pwm_leds[CONFIG_LED_PWM_COUNT] = {
- {
- .ch0 = PWM_CH_LED_RED,
- .ch1 = PWM_CH_LED_GREEN,
- .ch2 = PWM_CH_LED_BLUE,
- .enable = &pwm_enable,
- .set_duty = &pwm_set_duty,
- },
-};
+static int led_set_color_power(enum led_color color)
+{
+ switch (color) {
+ case LED_WHITE:
+ gpio_set_level(GPIO_LED_W_ODL, LED_ON_LVL);
+ break;
+ case LED_OFF:
+ gpio_set_level(GPIO_LED_W_ODL, LED_OFF_LVL);
+ break;
+ default:
+ return EC_ERROR_UNKNOWN;
+ }
+ return EC_SUCCESS;
+}
void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
{
- memset(brightness_range, '\0',
- sizeof(*brightness_range) * EC_LED_COLOR_COUNT);
- brightness_range[EC_LED_COLOR_RED] = 100;
- brightness_range[EC_LED_COLOR_GREEN] = 100;
- brightness_range[EC_LED_COLOR_BLUE] = 100;
- brightness_range[EC_LED_COLOR_YELLOW] = 100;
- brightness_range[EC_LED_COLOR_WHITE] = 100;
- brightness_range[EC_LED_COLOR_AMBER] = 100;
+ brightness_range[EC_LED_COLOR_WHITE] = 1;
}
int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness)
{
- enum pwm_led_id pwm_id;
-
- /* Convert ec_led_id to pwm_led_id. */
- if (led_id == EC_LED_ID_POWER_LED)
- pwm_id = PWM_LED0;
+ if (brightness[EC_LED_COLOR_WHITE] != 0)
+ led_set_color_power(LED_WHITE);
else
- return EC_ERROR_UNKNOWN;
-
- if (brightness[EC_LED_COLOR_RED])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_RED);
- else if (brightness[EC_LED_COLOR_GREEN])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_GREEN);
- else if (brightness[EC_LED_COLOR_BLUE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_BLUE);
- else if (brightness[EC_LED_COLOR_YELLOW])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_YELLOW);
- else if (brightness[EC_LED_COLOR_WHITE])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_WHITE);
- else if (brightness[EC_LED_COLOR_AMBER])
- set_pwm_led_color(pwm_id, EC_LED_COLOR_AMBER);
- else
- /* Otherwise, the "color" is "off". */
- set_pwm_led_color(pwm_id, -1);
+ led_set_color_power(LED_OFF);
return EC_SUCCESS;
}
+
+/* Called by hook task every TICK */
+static void led_tick(void)
+{
+ if (chipset_in_state(CHIPSET_STATE_ON))
+ led_set_color_power(LED_WHITE);
+ else
+ led_set_color_power(LED_OFF);
+}
+DECLARE_HOOK(HOOK_TICK, led_tick, HOOK_PRIO_DEFAULT);
diff --git a/board/trogdor/led.c b/board/trogdor/led.c
index 3a7d8df108..4b9a8aa005 100644
--- a/board/trogdor/led.c
+++ b/board/trogdor/led.c
@@ -93,7 +93,7 @@ static void board_led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/vell/charger.c b/board/vell/charger.c
index 3f57ca11ed..59d8812993 100644
--- a/board/vell/charger.c
+++ b/board/vell/charger.c
@@ -4,7 +4,7 @@
*/
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/vell/led.c b/board/vell/led.c
index 2f44788bd5..22e8187364 100644
--- a/board/vell/led.c
+++ b/board/vell/led.c
@@ -155,7 +155,7 @@ static void led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
/* Always indicate when charging, even in suspend. */
set_active_port_color(LED_AMBER);
diff --git a/board/vilboz/board.c b/board/vilboz/board.c
index c14a2152ec..d759865fc7 100644
--- a/board/vilboz/board.c
+++ b/board/vilboz/board.c
@@ -5,7 +5,7 @@
#include "battery_smart.h"
#include "button.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "cros_board_info.h"
#include "driver/accel_lis2dw12.h"
#include "driver/accelgyro_lsm6dsm.h"
diff --git a/board/volmar/charger.c b/board/volmar/charger.c
index c6ee062ab5..76e2712181 100644
--- a/board/volmar/charger.c
+++ b/board/volmar/charger.c
@@ -4,7 +4,7 @@
*/
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "common.h"
#include "compile_time_macros.h"
diff --git a/board/waddledee/board.c b/board/waddledee/board.c
index 814e2e8921..229573eb42 100644
--- a/board/waddledee/board.c
+++ b/board/waddledee/board.c
@@ -8,7 +8,7 @@
#include "adc_chip.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "driver/accel_kionix.h"
#include "driver/accelgyro_lsm6dsm.h"
diff --git a/board/waddledoo/board.c b/board/waddledoo/board.c
index 7dc87f38da..80234defdf 100644
--- a/board/waddledoo/board.c
+++ b/board/waddledoo/board.c
@@ -9,7 +9,7 @@
#include "button.h"
#include "cbi_fw_config.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "chipset.h"
#include "common.h"
diff --git a/board/waddledoo2/board.c b/board/waddledoo2/board.c
index 7adb032f98..8a7a2b461d 100644
--- a/board/waddledoo2/board.c
+++ b/board/waddledoo2/board.c
@@ -10,7 +10,7 @@
#include "cbi_fw_config.h"
#include "cbi_ssfc.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "chipset.h"
#include "common.h"
diff --git a/board/wheelie/board.c b/board/wheelie/board.c
index a8c5859e9d..f2acbb4efa 100644
--- a/board/wheelie/board.c
+++ b/board/wheelie/board.c
@@ -8,7 +8,7 @@
#include "adc_chip.h"
#include "button.h"
#include "charge_manager.h"
-#include "charge_state_v2.h"
+#include "charge_state.h"
#include "charger.h"
#include "driver/accel_lis2dh.h"
#include "driver/accelgyro_lsm6dsm.h"
diff --git a/board/wormdingler/led.c b/board/wormdingler/led.c
index f6b3cddf48..b1e819a92f 100644
--- a/board/wormdingler/led.c
+++ b/board/wormdingler/led.c
@@ -81,7 +81,7 @@ static void board_led_set_battery(void)
battery_ticks++;
- switch (charge_get_state()) {
+ switch (led_pwr_get_state()) {
case PWR_STATE_CHARGE:
case PWR_STATE_CHARGE_NEAR_FULL:
if (chipset_in_state(CHIPSET_STATE_ON |
@@ -91,7 +91,7 @@ static void board_led_set_battery(void)
/* battery capa <= 5%, Red */
color = LED_RED;
} else if (percent > BATTERY_LEVEL_CRITICAL &&
- percent < BATTERY_LEVEL_NEAR_FULL) {
+ percent < CONFIG_BATT_HOST_FULL_FACTOR) {
/* 5% < battery capa < 97%, Orange */
color = LED_AMBER;
} else {