diff options
author | Keith Short <keithshort@chromium.org> | 2020-12-06 11:42:54 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-12-14 22:39:12 +0000 |
commit | 6dc2111008af964fa1521b1259d3da45cb7dbe73 (patch) | |
tree | 06fa03d985ab4a800a7d593360cb38aac6424d92 /zephyr | |
parent | 5f0df61bad38377fbaf98b081bd4d88560507aeb (diff) | |
download | chrome-ec-6dc2111008af964fa1521b1259d3da45cb7dbe73.tar.gz |
Reland "zephyr: Add battery and smart battery options"
This is a reland of ac4f512e60af42efe693e6955c110a7908090e56
Original change's description:
> zephyr: Add battery and smart battery options
>
> Shim in battery and smart battery support.
>
> BUG=b:175248556
> BRANCH=none
> TEST=boot on volteer, run 'battery' command.
> TEST=run 'ninja menuconfig' and check KConfig help text.
> 20-12-10 20:08:12.778 battery
> 20-12-10 20:08:13.509 Status: 0x02c0 DCHG INIT RC
> 20-12-10 20:08:13.529 Param flags:00000003
> 20-12-10 20:08:13.541 Temp: 0x0b63 = %.1d K (%.1d C)
> 20-12-10 20:08:13.541 V: 0x2a1e = 10782 mV
> 20-12-10 20:08:13.541 V-desired: 0x3390 = 13200 mV
> 20-12-10 20:08:13.541 I: 0x0000 = 0 mA
> 20-12-10 20:08:13.550 I-desired: 0x0a19 = 2585 mA
> 20-12-10 20:08:13.550 Charging: Allowed
> 20-12-10 20:08:13.550 Charge: 0 %
> 20-12-10 20:08:13.550 Manuf: LG
> 20-12-10 20:08:13.555 Device: AC17A8
> 20-12-10 20:08:13.573 Chem: LIO
> 20-12-10 20:08:13.573 Serial: 0xb754
> 20-12-10 20:08:13.573 V-design: 0x2d1e = 11550 mV
> 20-12-10 20:08:13.573 Mode: 0x6001
> 20-12-10 20:08:13.573 Abs charge:0 %
> 20-12-10 20:08:13.573 Remaining: 0 mAh
> 20-12-10 20:08:13.577 Cap-full: 4932 mAh (4833 mAh with 98 % compensation)
> 20-12-10 20:08:13.585 Design: 5360 mAh
> 20-12-10 20:08:13.594 Time-full: 0h:0
> 20-12-10 20:08:13.594 Empty: 0h:0
>
> Change-Id: Ie782e75ee4027ab2a5c6a0ae7f4ad81e9c360711
> Signed-off-by: Simon Glass <sjg@chromium.org>
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2575199
Bug: b:175248556
TEST=make buildall, which fails with:
/opt/coreboot-sdk/lib/gcc/nds32le-elf/8.3.0/../../../../nds32le-elf/bin/ld: __flash_dma_size < IT83XX_ILM_BLOCK_SIZE
BRANCH=none
Change-Id: I318fb13ba91485cd7d876b2294f20d748f47e0fd
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2585931
Tested-by: Simon Glass <sjg@chromium.org>
Auto-Submit: Simon Glass <sjg@chromium.org>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Commit-Queue: Jack Rosenthal <jrosenth@chromium.org>
Diffstat (limited to 'zephyr')
-rw-r--r-- | zephyr/CMakeLists.txt | 4 | ||||
-rw-r--r-- | zephyr/Kconfig | 1 | ||||
-rw-r--r-- | zephyr/Kconfig.battery | 54 | ||||
-rw-r--r-- | zephyr/shim/include/config_chip.h | 20 |
4 files changed, 79 insertions, 0 deletions
diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index 1e3ac54d2b..79efbdf6b5 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -43,6 +43,10 @@ zephyr_sources_ifdef(CONFIG_PLATFORM_EC "${PLATFORM_EC}/common/base32.c" # Now include files that depend on or relate to other CONFIG options, sorted by # CONFIG +zephyr_sources_ifdef(CONFIG_PLATFORM_EC_BATTERY "${PLATFORM_EC}/common/battery.c") +zephyr_sources_ifdef(CONFIG_PLATFORM_EC_BATTERY_SMART + "${PLATFORM_EC}/driver/battery/smart.c") + zephyr_sources_ifdef(CONFIG_PLATFORM_EC_CBI "${PLATFORM_EC}/common/cbi.c") zephyr_sources_ifdef(CONFIG_PLATFORM_EC_POWERSEQ "${PLATFORM_EC}/common/chipset.c") diff --git a/zephyr/Kconfig b/zephyr/Kconfig index fcb7df19c9..8e533f7718 100644 --- a/zephyr/Kconfig +++ b/zephyr/Kconfig @@ -12,6 +12,7 @@ menuconfig PLATFORM_EC if PLATFORM_EC +rsource "Kconfig.battery" rsource "Kconfig.powerseq" rsource "Kconfig.tasks" diff --git a/zephyr/Kconfig.battery b/zephyr/Kconfig.battery new file mode 100644 index 0000000000..916f731d20 --- /dev/null +++ b/zephyr/Kconfig.battery @@ -0,0 +1,54 @@ +# Copyright 2020 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. + +config PLATFORM_EC_BATTERY + bool "Support batteries" + help + Enables battery support on the board. Requires selection of a battery + and a charger IC. + + If using I2C batteries, you must define I2C_PORT_BATTERY in your + board's i2c_map.h file so that the EC code will know which I2C + port the battery is on. + +if PLATFORM_EC_BATTERY + +choice "Battery select" + prompt "Select the battery to use" + help + Select the battery used on the board. If you are ensure, select the + smart battery option. + +config PLATFORM_EC_BATTERY_SMART + bool "Support a smart battery" + depends on PLATFORM_EC_I2C + help + Many batteries support the Smart Battery Specification and therefore + have common registers which can be accessed to control and monitor + the battery. + + See here for the spec: http://sbs-forum.org/specs/sbdat110.pdf + +endchoice + +choice "Charger select" + prompt "Select the charger to use" + help + Select the battery charger IC used on the board. Only one charger may + be selected. + +config PLATFORM_EC_CHARGER_ISL9241 + bool "Use the ISL9241 charger" + depends on PLATFORM_EC_I2C + help + Enables a driver for the ISL9241 VCD Battery Charger. This is a + digitally-configurable, buck-boost battery charger that can support + both Narrow Voltage Direct Charging (NVDC) and Hybrid Power Buck Boost + (HPBB/Bypass) charging and switch between the modes under firmware + control. It supports an input voltage range of 3.9-23.4V and output + of 3.9-18.3V. It provides an I2C interace for configuration. + +endchoice + +endif # PLATFORM_EC_BATTERY diff --git a/zephyr/shim/include/config_chip.h b/zephyr/shim/include/config_chip.h index 4759e6373e..61ddefedaf 100644 --- a/zephyr/shim/include/config_chip.h +++ b/zephyr/shim/include/config_chip.h @@ -26,6 +26,26 @@ #define CONFIG_CHIPSET_TIGERLAKE #endif +/* Battery configuration */ +#undef CONFIG_BATTERY +#undef CONFIG_BATTERY_FUEL_GAUGE +#ifdef CONFIG_PLATFORM_EC_BATTERY +#define CONFIG_BATTERY +#define CONFIG_BATTERY_FUEL_GAUGE +#endif + +#undef CONFIG_CHARGER_ISL9241 +#ifdef CONFIG_PLATFORM_EC_CHARGER_ISL9241 +#define CONFIG_CHARGER_ISL9241 +/* Hardware based charge ramp is broken in the ISL9241 (b/169350714) */ +#define CONFIG_CHARGE_RAMP_SW +#endif + +#undef CONFIG_BATTERY_SMART +#ifdef CONFIG_PLATFORM_EC_BATTERY_SMART +#define CONFIG_BATTERY_SMART +#endif + /* eSPI configuration */ #ifdef CONFIG_PLATFORM_EC_ESPI |