summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2020-12-30 11:33:37 -0700
committerCommit Bot <commit-bot@chromium.org>2021-01-15 03:56:24 +0000
commit7fea9e0ac0d83a1bd2612c3519e9f4076d8730a4 (patch)
tree47d1cb462e8c5b43249e16d14f4a57568baef0e5
parent89b09293fa47ecd2f5e90e01818f46e569a87f27 (diff)
downloadchrome-ec-7fea9e0ac0d83a1bd2612c3519e9f4076d8730a4.tar.gz
volteer: Use the EC version of battery_presence.c
At present we have copied this file into zephyr-chrome. This is not ideal since changes in that file will not be reflected in Zephyr. Bring the file into the build directly and remove the local copy. To do this, create two new helper variables: PLATFORM_EC_BOARD - points to the EC board directory PLATFORM_EC_BASEBOARD - pointers to the baseboard directory It may be possible to move these to the EC side at some point so that we don't need them to be in each board's CMakeLists.txt Add both the board and baseboard directories to the include list, since they sometimes need to include each others headers. BUG=b:175434113 BRANCH=none TEST=build on volteer, which fails Signed-off-by: Simon Glass <sjg@chromium.org> Change-Id: I8ebd52fe3a9428e2f70220b6944d9dbe56b41aa2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/zephyr-chrome/+/2607397 Reviewed-by: Keith Short <keithshort@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2630169 Tested-by: Jack Rosenthal <jrosenth@chromium.org> Commit-Queue: Jack Rosenthal <jrosenth@chromium.org>
-rw-r--r--zephyr/projects/volteer/CMakeLists.txt17
-rw-r--r--zephyr/projects/volteer/src/battery_presence.c89
2 files changed, 15 insertions, 91 deletions
diff --git a/zephyr/projects/volteer/CMakeLists.txt b/zephyr/projects/volteer/CMakeLists.txt
index b477118445..cc07dbc13f 100644
--- a/zephyr/projects/volteer/CMakeLists.txt
+++ b/zephyr/projects/volteer/CMakeLists.txt
@@ -19,10 +19,23 @@ list(APPEND
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(volteer)
+set(PLATFORM_EC_BOARD "${PLATFORM_EC}/board/volteer" CACHE PATH
+ "Path to the platform/ec board directory")
+set(PLATFORM_EC_BASEBOARD "${PLATFORM_EC}/baseboard/volteer" CACHE PATH
+ "Path to the platform/ec baseboard directory")
+
# Include board specific header files
-zephyr_include_directories(include)
+zephyr_include_directories(
+ include
+ ${PLATFORM_EC_BASEBOARD}
+ ${PLATFORM_EC_BOARD})
+
+# Include selected EC source for the baseboard
+target_sources(app PRIVATE "${PLATFORM_EC_BASEBOARD}/battery_presence.c")
+
+# Local sources to make things build. These are being removed as we are able
+# to build the EC source instead.
target_sources(app PRIVATE "src/battery.c")
-target_sources(app PRIVATE "src/battery_presence.c")
target_sources(app PRIVATE "src/pwrok_signals.c")
target_sources(app PRIVATE "src/usbc_config.c")
target_sources(app PRIVATE "src/usb_pd_policy.c")
diff --git a/zephyr/projects/volteer/src/battery_presence.c b/zephyr/projects/volteer/src/battery_presence.c
deleted file mode 100644
index 4953d7a49e..0000000000
--- a/zephyr/projects/volteer/src/battery_presence.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- *
- * Common battery presence checking for Volteer family.
- * Each board should implement board_battery_info[] to define the specific
- * battery packs supported.
- */
-#include <stdbool.h>
-
-#include "battery.h"
-#include "battery_smart.h"
-#include "gpio.h"
-
-static enum battery_present batt_pres_prev = BP_NOT_SURE;
-
-enum battery_present battery_hw_present(void)
-{
- /* The GPIO is low when the battery is physically present */
- return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES;
-}
-
-static bool battery_init(void)
-{
- int batt_status;
-
- return battery_status(&batt_status) ? 0 :
- !!(batt_status & STATUS_INITIALIZED);
-}
-
-__overridable bool board_battery_is_initialized(void)
-{
- /*
- * Set default to return true
- */
- return true;
-}
-
-/*
- * Physical detection of battery.
- */
-static enum battery_present battery_check_present_status(void)
-{
- enum battery_present batt_pres;
- bool batt_initialization_state;
-
- /* Get the physical hardware status */
- batt_pres = battery_hw_present();
-
- /*
- * If the battery is not physically connected, then no need to perform
- * any more checks.
- */
- if (batt_pres != BP_YES)
- return batt_pres;
-
- /*
- * If the battery is present now and was present last time we checked,
- * return early.
- */
- if (batt_pres == batt_pres_prev)
- return batt_pres;
-
- /*
- * Check battery initialization. If the battery is not initialized,
- * then return BP_NOT_SURE. Battery could be in ship
- * mode and might require pre-charge current to wake it up. BP_NO is not
- * returned here because charger state machine will not provide
- * pre-charge current assuming that battery is not present.
- */
- batt_initialization_state = board_battery_is_initialized();
- if (!batt_initialization_state)
- return BP_NOT_SURE;
- /*
- * Ensure that battery is:
- * 1. Not in cutoff
- * 2. Initialized
- */
- if (battery_is_cut_off() || !battery_init())
- batt_pres = BP_NO;
-
- return batt_pres;
-}
-
-enum battery_present battery_is_present(void)
-{
- batt_pres_prev = battery_check_present_status();
- return batt_pres_prev;
-}