diff --git a/drivers/Kconfig.net b/drivers/Kconfig.net index 047c918f3919..973d928b9216 100644 --- a/drivers/Kconfig.net +++ b/drivers/Kconfig.net @@ -23,4 +23,5 @@ rsource "hdc1000/Kconfig" rsource "mag3110/Kconfig" rsource "mma8x5x/Kconfig" rsource "opt3001/Kconfig" +rsource "sps30/Kconfig" endmenu # Sensor Device Drivers diff --git a/drivers/include/sps30.h b/drivers/include/sps30.h index f9ca3a6cc21f..6519a0718b70 100644 --- a/drivers/include/sps30.h +++ b/drivers/include/sps30.h @@ -144,8 +144,8 @@ typedef enum { * suboptimal wiring. * */ -#ifndef SPS30_ERROR_RETRY -#define SPS30_ERROR_RETRY (500U) +#ifndef CONFIG_SPS30_ERROR_RETRY +#define CONFIG_SPS30_ERROR_RETRY (500U) #endif /** @} */ diff --git a/drivers/sps30/Kconfig b/drivers/sps30/Kconfig new file mode 100644 index 000000000000..332d97a691b8 --- /dev/null +++ b/drivers/sps30/Kconfig @@ -0,0 +1,24 @@ +# Copyright (c) 2020 Freie Universitaet Berlin +# +# This file is subject to the terms and conditions of the GNU Lesser +# General Public License v2.1. See the file LICENSE in the top level +# directory for more details. +# +menuconfig KCONFIG_MODULE_SPS30 + bool "Configure SPS30 driver" + depends on MODULE_SPS30 + help + Configure the SPS30 driver using Kconfig. + +if KCONFIG_MODULE_SPS30 + +config SPS30_ERROR_RETRY + int "Maximum number of error retries" + default 500 + help + Maximum number of automatic retries on communication errors. + Change this to 0 if more fine-grained feedback is required. + The value may be increased if the device is connected over + suboptimal wiring. + +endif # KCONFIG_MODULE_SPS30 diff --git a/drivers/sps30/sps30.c b/drivers/sps30/sps30.c index f5432ee85ea9..edb8975c4cb8 100644 --- a/drivers/sps30/sps30.c +++ b/drivers/sps30/sps30.c @@ -142,7 +142,7 @@ static int _rx_tx_data(const sps30_t *dev, uint16_t ptr_addr, uint8_t *data, size_t len, bool read) { int res = 0; - unsigned retr = SPS30_ERROR_RETRY; + unsigned retr = CONFIG_SPS30_ERROR_RETRY; if (i2c_acquire(dev->p.i2c_dev) != 0) { LOG_ERROR("could not acquire I2C bus %d\n", dev->p.i2c_dev);