diff options
Diffstat (limited to 'zephyr/program/corsola')
-rw-r--r-- | zephyr/program/corsola/magikarp/project.overlay | 6 | ||||
-rw-r--r-- | zephyr/program/corsola/src/npcx_usbc.c | 30 | ||||
-rw-r--r-- | zephyr/program/corsola/src/usbc.c | 2 | ||||
-rw-r--r-- | zephyr/program/corsola/starmie/project.overlay | 4 | ||||
-rw-r--r-- | zephyr/program/corsola/tentacruel/project.overlay | 6 | ||||
-rw-r--r-- | zephyr/program/corsola/tentacruel/src/temp.c | 2 | ||||
-rw-r--r-- | zephyr/program/corsola/voltorb/project.conf | 1 | ||||
-rw-r--r-- | zephyr/program/corsola/voltorb/project.overlay | 15 |
8 files changed, 44 insertions, 22 deletions
diff --git a/zephyr/program/corsola/magikarp/project.overlay b/zephyr/program/corsola/magikarp/project.overlay index 3628f6770d..349e066f07 100644 --- a/zephyr/program/corsola/magikarp/project.overlay +++ b/zephyr/program/corsola/magikarp/project.overlay @@ -224,8 +224,7 @@ bat-power-state-charge { charge-state = "PWR_STATE_CHARGE"; /* Battery percent range (>= Empty, <= 94%) */ - batt-lvl = <BATTERY_LEVEL_EMPTY - (BATTERY_LEVEL_NEAR_FULL - 3)>; + batt-lvl = <BATTERY_LEVEL_EMPTY 94>; color-0 { led-color = <&color_battery_amber>; }; @@ -234,8 +233,7 @@ bat-power-state-charge-near-full { charge-state = "PWR_STATE_CHARGE"; /* Battery percent range (>= 95%, <= Full) */ - batt-lvl = <(BATTERY_LEVEL_NEAR_FULL - 2) - BATTERY_LEVEL_FULL>; + batt-lvl = <95 BATTERY_LEVEL_FULL>; color-0 { led-color = <&color_battery_white>; }; diff --git a/zephyr/program/corsola/src/npcx_usbc.c b/zephyr/program/corsola/src/npcx_usbc.c index 10a977696e..2e1d8d11c5 100644 --- a/zephyr/program/corsola/src/npcx_usbc.c +++ b/zephyr/program/corsola/src/npcx_usbc.c @@ -11,6 +11,7 @@ #endif #include "baseboard_usbc_config.h" +#include "battery.h" #include "console.h" #include "driver/ppc/nx20p348x.h" #include "driver/tcpm/anx7447.h" @@ -53,8 +54,10 @@ DECLARE_HOOK(HOOK_INIT, board_usb_mux_init, HOOK_PRIO_INIT_I2C + 1); void board_tcpc_init(void) { - /* Only reset TCPC if not sysjump */ - if (!system_jumped_late()) { + /* Reset TCPC if we only we have a battery connected, or the SINK + * gpio to the PPC might be reset and cause brown-out. + */ + if (!system_jumped_late() && battery_is_present() == BP_YES) { /* TODO(crosbug.com/p/61098): How long do we need to wait? */ board_reset_pd_mcu(); } @@ -84,7 +87,13 @@ __override int board_rt1718s_init(int port) { static bool gpio_initialized; - if (!system_jumped_late() && !gpio_initialized) { + /* Reset TCPC sink/source control when it's a power-on reset or has a + * battery. Do not alter the carried GPIO status or this might stop PPC + * sinking and brown-out the system when battery disconnected. + */ + if (!system_jumped_late() && !gpio_initialized && + (battery_is_present() == BP_YES || + (system_get_reset_flags() & EC_RESET_FLAG_POWER_ON))) { /* set GPIO 1~3 as push pull, as output, output low. */ rt1718s_gpio_set_flags(port, RT1718S_GPIO1, GPIO_OUT_LOW); rt1718s_gpio_set_flags(port, RT1718S_GPIO2, GPIO_OUT_LOW); @@ -94,11 +103,18 @@ __override int board_rt1718s_init(int port) /* gpio1 low, gpio2 output high when receiving frs signal */ RETURN_ERROR(rt1718s_update_bits8(port, RT1718S_GPIO1_VBUS_CTRL, - RT1718S_GPIO1_VBUS_CTRL_FRS_RX_VBUS, + RT1718S_GPIO_VBUS_CTRL_FRS_RX_VBUS, 0)); - RETURN_ERROR(rt1718s_update_bits8(port, RT1718S_GPIO2_VBUS_CTRL, - RT1718S_GPIO2_VBUS_CTRL_FRS_RX_VBUS, - 0xFF)); + /* GPIO1 EN_SNK high when received TCPCI SNK enabled command */ + RETURN_ERROR(rt1718s_update_bits8( + port, RT1718S_GPIO1_VBUS_CTRL, + RT1718S_GPIO_VBUS_CTRL_ENA_SNK_VBUS_GPIO, 0xFF)); + /* GPIO2 EN_SRC high when received TCPCI SRC enabled command */ + RETURN_ERROR(rt1718s_update_bits8( + port, RT1718S_GPIO2_VBUS_CTRL, + RT1718S_GPIO_VBUS_CTRL_FRS_RX_VBUS | + RT1718S_GPIO_VBUS_CTRL_ENA_SRC_VBUS_GPIO, + 0xFF)); /* Trigger GPIO 1/2 change when FRS signal received */ RETURN_ERROR(rt1718s_update_bits8( diff --git a/zephyr/program/corsola/src/usbc.c b/zephyr/program/corsola/src/usbc.c index 181b3df141..71c02ff54f 100644 --- a/zephyr/program/corsola/src/usbc.c +++ b/zephyr/program/corsola/src/usbc.c @@ -6,7 +6,7 @@ /* Corsola baseboard-specific USB-C configuration */ #include "baseboard_usbc_config.h" -#include "charge_state_v2.h" +#include "charge_state.h" #include "console.h" #include "ec_commands.h" #include "extpower.h" diff --git a/zephyr/program/corsola/starmie/project.overlay b/zephyr/program/corsola/starmie/project.overlay index d8c6a48631..2358026e2d 100644 --- a/zephyr/program/corsola/starmie/project.overlay +++ b/zephyr/program/corsola/starmie/project.overlay @@ -20,8 +20,8 @@ / { batteries { - default_battery: c235 { - compatible = "celxpert,c235-41", "battery-smart"; + default_battery: b300049 { + compatible = "celxpert,b300049", "battery-smart"; }; }; gpio-interrupts { diff --git a/zephyr/program/corsola/tentacruel/project.overlay b/zephyr/program/corsola/tentacruel/project.overlay index 79e8f4a05b..e23d3561e8 100644 --- a/zephyr/program/corsola/tentacruel/project.overlay +++ b/zephyr/program/corsola/tentacruel/project.overlay @@ -270,8 +270,7 @@ bat-power-state-charge { charge-state = "PWR_STATE_CHARGE"; /* Battery percent range (>= Empty, <= 94%) */ - batt-lvl = <BATTERY_LEVEL_EMPTY - (BATTERY_LEVEL_NEAR_FULL - 3)>; + batt-lvl = <BATTERY_LEVEL_EMPTY 94>; color-0 { led-color = <&color_battery_amber>; }; @@ -280,8 +279,7 @@ bat-power-state-charge-near-full { charge-state = "PWR_STATE_CHARGE"; /* Battery percent range (>= 95%, <= Full) */ - batt-lvl = <(BATTERY_LEVEL_NEAR_FULL - 2) - BATTERY_LEVEL_FULL>; + batt-lvl = <95 BATTERY_LEVEL_FULL>; color-0 { led-color = <&color_battery_white>; }; diff --git a/zephyr/program/corsola/tentacruel/src/temp.c b/zephyr/program/corsola/tentacruel/src/temp.c index 2e584640be..72fcc526bd 100644 --- a/zephyr/program/corsola/tentacruel/src/temp.c +++ b/zephyr/program/corsola/tentacruel/src/temp.c @@ -62,7 +62,7 @@ static void current_update(void) temp = average_tempature(); #ifndef CONFIG_TEST - if (charge_get_state() == PWR_STATE_DISCHARGE) { + if (led_pwr_get_state() == PWR_STATE_DISCHARGE) { current_level = 0; uptime = 0; dntime = 0; diff --git a/zephyr/program/corsola/voltorb/project.conf b/zephyr/program/corsola/voltorb/project.conf index 3cb4f46e06..d2693d0de8 100644 --- a/zephyr/program/corsola/voltorb/project.conf +++ b/zephyr/program/corsola/voltorb/project.conf @@ -41,6 +41,7 @@ CONFIG_PLATFORM_EC_EXTPOWER_DEBOUNCE_MS=800 # Battery config CONFIG_PLATFORM_EC_BATT_FULL_CHIPSET_OFF_INPUT_LIMIT_MV=15000 +CONFIG_PLATFORM_EC_SMART_BATTERY_OPTIONAL_MFG_FUNC=y # Remove debug options and features for FW QUAL CONFIG_PLATFORM_EC_SYSTEM_UNLOCKED=n diff --git a/zephyr/program/corsola/voltorb/project.overlay b/zephyr/program/corsola/voltorb/project.overlay index 7ae230a47e..e5c5df3ab7 100644 --- a/zephyr/program/corsola/voltorb/project.overlay +++ b/zephyr/program/corsola/voltorb/project.overlay @@ -81,17 +81,26 @@ compatible = "cros-ec,led-policy"; /* Voltorb LED bat charge */ - bat-power-state-charge { + bat-power-state-charge-lvl-1 { charge-state = "PWR_STATE_CHARGE"; /* Battery percent range (>= Empty, <= 96%) */ - batt-lvl = <BATTERY_LEVEL_EMPTY - (BATTERY_LEVEL_NEAR_FULL - 1)>; + batt-lvl = <BATTERY_LEVEL_EMPTY 96>; color-0 { led-color = <&color_amber>; }; }; + bat-power-state-charge-lvl-2 { + charge-state = "PWR_STATE_CHARGE"; + /* Battery percent range (>= 97, <= 100%) */ + batt-lvl = <97 100>; + + color-0 { + led-color = <&color_blue>; + }; + }; + /* Voltorb LED bat charge near full */ bat-power-state-charge-near-full { charge-state = "PWR_STATE_CHARGE_NEAR_FULL"; |