From f1f80c00981736edefba04ca31741b7f1bed0e2a Mon Sep 17 00:00:00 2001 From: smlng <s@mlng.net> Date: Tue, 20 Jun 2017 10:11:27 +0200 Subject: [PATCH] drivers/adcxx1c: use pseudomodules for device variants --- drivers/Makefile.dep | 3 ++- drivers/adcxx1c/include/adcxx1c_params.h | 2 +- drivers/include/adcxx1c.h | 14 ++++++++++++++ makefiles/pseudomodules.inc.mk | 5 +++++ tests/driver_adcxx1c/Makefile | 2 +- 5 files changed, 23 insertions(+), 3 deletions(-) diff --git a/drivers/Makefile.dep b/drivers/Makefile.dep index d8cf634064..223b435d7d 100644 --- a/drivers/Makefile.dep +++ b/drivers/Makefile.dep @@ -240,7 +240,8 @@ ifneq (,$(filter lsm6dsl,$(USEMODULE))) USEMODULE += xtimer endif -ifneq (,$(filter adcxx1c,$(USEMODULE))) +ifneq (,$(filter adc%1c,$(USEMODULE))) FEATURES_REQUIRED += periph_gpio FEATURES_REQUIRED += periph_i2c + USEMODULE += adcxx1c endif diff --git a/drivers/adcxx1c/include/adcxx1c_params.h b/drivers/adcxx1c/include/adcxx1c_params.h index 6f8b6d83a3..f8abc80451 100644 --- a/drivers/adcxx1c/include/adcxx1c_params.h +++ b/drivers/adcxx1c/include/adcxx1c_params.h @@ -38,7 +38,7 @@ extern "C" { #define ADCXX1C_PARAM_ADDR (ADCXX1C_I2C_ADDRESS) #endif #ifndef ADCXX1C_PARAM_BITS -#define ADCXX1C_PARAM_BITS (ADCXX1C_RES_8BITS) +#define ADCXX1C_PARAM_BITS (ADCXX1C_RES_DEFAULT) #endif #ifndef ADCXX1C_PARAM_CYCLE #define ADCXX1C_PARAM_CYCLE (ADCXX1C_CYCLE_DISABLED) diff --git a/drivers/include/adcxx1c.h b/drivers/include/adcxx1c.h index c9fd9c2494..f176dd4c68 100644 --- a/drivers/include/adcxx1c.h +++ b/drivers/include/adcxx1c.h @@ -41,6 +41,20 @@ enum { ADCXX1C_RES_12BITS = 12, /**< 12 bits resolution (ADC121C family) */ }; +/** + * @brief ADC default resolution for device variants + */ +#if defined(MODULE_ADC081C) +#define ADCXX1C_RES_DEFAULT ADCXX1C_RES_8BITS +#elif defined(MODULE_ADC101C) +#define ADCXX1C_RES_DEFAULT ADCXX1C_RES_10BITS +#elif defined(MODULE_ADC121C) +#define ADCXX1C_RES_DEFAULT ADCXX1C_RES_12BITS +#else +#define ADCXX1C_RES_DEFAULT (-1) +#error "ADCXX1C: Failed to select resolution: unknown ADCXX1C device variant!" +#endif + /** * @brief Conversion interval configuration value */ diff --git a/makefiles/pseudomodules.inc.mk b/makefiles/pseudomodules.inc.mk index 29cad6e389..617783e81d 100644 --- a/makefiles/pseudomodules.inc.mk +++ b/makefiles/pseudomodules.inc.mk @@ -64,5 +64,10 @@ PSEUDOMODULES += at86rf21% PSEUDOMODULES += bmp280 PSEUDOMODULES += bme280 +# variants of TI ADCXX1C +PSEUDOMODULES += adc081c +PSEUDOMODULES += adc101c +PSEUDOMODULES += adc121c + # add all pseudo random number generator variants as pseudomodules PSEUDOMODULES += prng_% diff --git a/tests/driver_adcxx1c/Makefile b/tests/driver_adcxx1c/Makefile index f9aa117608..363449986c 100644 --- a/tests/driver_adcxx1c/Makefile +++ b/tests/driver_adcxx1c/Makefile @@ -3,7 +3,7 @@ include ../Makefile.tests_common FEATURES_REQUIRED = periph_i2c -USEMODULE += adcxx1c +USEMODULE += adc081c USEMODULE += xtimer # set alert parameters in case they are undefined -- GitLab