diff options
author | YH Lin <yueherngl@google.com> | 2023-05-11 20:47:00 +0000 |
---|---|---|
committer | YH Lin <yueherngl@google.com> | 2023-05-11 20:47:00 +0000 |
commit | 8641442366bd7c2c133e302a57f904dfac3c896b (patch) | |
tree | d0dca100ca02a89210decc54b7124d26bb75ef6a /board | |
parent | e79a9dab1721c3d7da1475f3f802c4ea871a48ec (diff) | |
parent | 5df400b0377c9e1b5bb6cfc53ba7dfedde91f944 (diff) | |
download | chrome-ec-8641442366bd7c2c133e302a57f904dfac3c896b.tar.gz |
Merge remote-tracking branch cros/main into firmware-brya-14505.B-main
Generated by: util/update_release_branch.py --baseboard brya --relevant_paths_file
baseboard/brya/relevant-paths.txt firmware-brya-14505.B-main
Relevant changes:
git log --oneline e79a9dab17..5df400b037 -- baseboard/brya board/agah
board/anahera board/banshee board/brya board/crota board/felwinter
board/gimble board/hades board/kano board/marasov board/mithrax
board/omnigul board/osiris board/primus board/redrix board/taeko
board/taniks board/vell board/volmar driver/bc12/pi3usb9201_public.*
driver/charger/bq25710.* driver/ppc/nx20p348x.*
driver/ppc/syv682x_public.* driver/retimer/bb_retimer_public.*
driver/tcpm/nct38xx.* driver/tcpm/ps8xxx_public.* driver/tcpm/tcpci.*
include/power/alderlake* include/intel_x86.h power/alderlake*
power/intel_x86.c util/getversion.sh
76d2b9b1e4 battery: Deprecate CONFIG_BATTERY_LEVEL_NEAR_FULL
3d5b996f73 Hades: Fast forward DSW_PWROK to PCH_PWROK
56af450c1a Agah: Fast forward DSW_PWROK to PCH_PWROK
b729eab7c7 charger: Move charger_state_v2.h into charge_state.h
47acf64182 charger: Rename charge_get_state() to led_pwr_get_state()
632c7c935a power/x86: Add dedicated interrupt handler for pwrok
0fff3a0bd4 omnigul: Add condition use Accel and Gyro by FWCONFIG.
7540daff3f driver/tcpm/nct38xx: Remove write to RO register
3f279f30d4 GPU: Rename DC_ATLEAST_SOC to DC_ATMOST_SOC
BRANCH=None
BUG=b:218332694 b:216485035 b:280818345 b:280351196 b:280001153
BUG=b:279918234
TEST=`emerge-[brya,hades,draco] chromeos-ec`
Force-Relevant-Builds: all
Change-Id: I19f2f6c5573d8c748ac63b488a808f10de352b1d
Signed-off-by: YH Lin <yueherngl@google.com>
Diffstat (limited to 'board')
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 { |