Changed the zmk,battery-voltage-divider and zmk,battery-nrf-vddh drivers to support only SENSOR_CHAN_VOLTAGE, and changed the default battery fetch mode to ZMK_BATTERY_REPORTING_FETCH_MODE_LITHIUM_VOLTAGE. This allowed for removing the copy of lithium_ion_mv_to_pct() from the driver code, leaving only the version in battery.c. Custom boards/shields that use a fuel gauge driver instead of a voltage sensor, will need the following added to their Kconfig.defconfig: choice ZMK_BATTERY_REPORTING_FETCH_MODE default ZMK_BATTERY_REPORTING_FETCH_MODE_STATE_OF_CHARGE endchoice Alternatively, add the following to the _defconfig file: ZMK_BATTERY_REPORTING_FETCH_MODE_STATE_OF_CHARGE=y
25 lines
548 B
C
25 lines
548 B
C
/*
|
|
* Copyright (c) 2021 The ZMK Contributors
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*/
|
|
|
|
#include <errno.h>
|
|
#include <zephyr/drivers/sensor.h>
|
|
|
|
#include "battery_common.h"
|
|
|
|
int battery_channel_get(const struct battery_value *value, enum sensor_channel chan,
|
|
struct sensor_value *val_out) {
|
|
switch (chan) {
|
|
case SENSOR_CHAN_VOLTAGE:
|
|
val_out->val1 = value->millivolts / 1000;
|
|
val_out->val2 = (value->millivolts % 1000) * 1000U;
|
|
break;
|
|
|
|
default:
|
|
return -ENOTSUP;
|
|
}
|
|
|
|
return 0;
|
|
}
|