diff --git a/drivers/Makefile.dep b/drivers/Makefile.dep index d8cf634064b952d6dfe42b68a0645d039bcabe0e..223b435d7d5a8d7774fbd9caba6493b587a16a8f 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 6f8b6d83a3a76267346fe4f6c18e4762a6f0e123..f8abc80451ac9d94b11184b0ef3e0e09a1d5aea1 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 c9fd9c2494a457c07cbc9752d0e17704a7d1e532..f176dd4c685126a152f2206974f2edf6d8568ad8 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 29cad6e3898875d95923341a902a1eccaddffe78..617783e81d844c7313a08b63fd5faa5c075fd60f 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 f9aa117608cdbf4d859a059e65c82d6af1dd9cc0..363449986c374d76fc6bdaac58df7670bd2b97f8 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