summaryrefslogtreecommitdiff
path: root/app/drivers
diff options
context:
space:
mode:
authorNick <nick.win999@gmail.com>2020-10-26 16:01:57 -0500
committerNick <nick.win999@gmail.com>2020-10-26 16:01:57 -0500
commita0087311038e9b21c2a45499e669d1300af16f83 (patch)
treebe02b819a1c2784d3ce963da818ce42c919df402 /app/drivers
parent63007fb6c136b8475894a6315f12eabeea952ca4 (diff)
Implement Kconfig and enhance error checks
Diffstat (limited to 'app/drivers')
-rw-r--r--app/drivers/zephyr/CMakeLists.txt2
-rw-r--r--app/drivers/zephyr/Kconfig6
-rw-r--r--app/drivers/zephyr/battery_voltage_divider.c11
3 files changed, 11 insertions, 8 deletions
diff --git a/app/drivers/zephyr/CMakeLists.txt b/app/drivers/zephyr/CMakeLists.txt
index 0b1d18f..fc43fb8 100644
--- a/app/drivers/zephyr/CMakeLists.txt
+++ b/app/drivers/zephyr/CMakeLists.txt
@@ -5,9 +5,9 @@ if(CONFIG_ZMK_KSCAN_GPIO_DRIVER)
zephyr_library_sources(
kscan_gpio_matrix.c
kscan_gpio_direct.c
- battery_voltage_divider.c
)
zephyr_library_sources_ifdef(CONFIG_EC11 ec11.c)
zephyr_library_sources_ifdef(CONFIG_EC11_TRIGGER ec11_trigger.c)
+ zephyr_library_sources_ifdef(CONFIG_ZMK_BATTERY_VOLTAGE_DIVIDER battery_voltage_divider.c)
endif()
diff --git a/app/drivers/zephyr/Kconfig b/app/drivers/zephyr/Kconfig
index 0534cab..6b177fb 100644
--- a/app/drivers/zephyr/Kconfig
+++ b/app/drivers/zephyr/Kconfig
@@ -21,6 +21,12 @@ config ZMK_KSCAN_INIT_PRIORITY
help
Keyboard scan device driver initialization priority.
+config ZMK_BATTERY_VOLTAGE_DIVIDER
+ bool "ZMK battery voltage divider"
+ select ADC
+ help
+ Enable ZMK battery voltage divider driver for battery monitoring.
+
menuconfig EC11
bool "EC11 Incremental Encoder Sensor"
depends on GPIO
diff --git a/app/drivers/zephyr/battery_voltage_divider.c b/app/drivers/zephyr/battery_voltage_divider.c
index 09a353a..37ac024 100644
--- a/app/drivers/zephyr/battery_voltage_divider.c
+++ b/app/drivers/zephyr/battery_voltage_divider.c
@@ -14,8 +14,6 @@
LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
-#if DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT)
-
struct io_channel_config {
const char *label;
uint8_t channel;
@@ -102,10 +100,11 @@ static int bvd_sample_fetch(struct device *dev, enum sensor_channel chan) {
// Disable power GPIO if present
if (drv_data->gpio) {
- rc = gpio_pin_set(drv_data->gpio, drv_cfg->power_gpios.pin, 0);
+ int rc2 = gpio_pin_set(drv_data->gpio, drv_cfg->power_gpios.pin, 0);
- if (rc != 0) {
- LOG_DBG("Failed to disable ADC power GPIO: %d", rc);
+ if (rc2 != 0) {
+ LOG_DBG("Failed to disable ADC power GPIO: %d", rc2);
+ return rc2;
}
}
@@ -214,5 +213,3 @@ static const struct bvd_config bvd_cfg = {
DEVICE_AND_API_INIT(bvd_dev, DT_INST_LABEL(0), &bvd_init, &bvd_data, &bvd_cfg, POST_KERNEL,
CONFIG_SENSOR_INIT_PRIORITY, &bvd_api);
-
-#endif /* DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT) */