diff --git a/boards/acd52832/Kconfig b/boards/acd52832/Kconfig index 40aa6b809c..b68675992c 100644 --- a/boards/acd52832/Kconfig +++ b/boards/acd52832/Kconfig @@ -16,4 +16,6 @@ config BOARD_ACD52832 select HAS_PERIPH_SPI select HAS_PERIPH_UART -source "$(RIOTBOARD)/common/nrf52/Kconfig" + select HAVE_SAUL_GPIO + +source "$(RIOTBOARD)/common/nrf52xxxdk/Kconfig" diff --git a/boards/adafruit-clue/Kconfig b/boards/adafruit-clue/Kconfig index a92ae326da..5ea737ffc8 100644 --- a/boards/adafruit-clue/Kconfig +++ b/boards/adafruit-clue/Kconfig @@ -18,4 +18,11 @@ config BOARD_ADAFRUIT_CLUE select HAS_PERIPH_USBDEV select HAS_HIGHLEVEL_STDIO + select HAVE_APDS9960 + select HAVE_BMP280_I2C + select HAVE_ILI9341 + select HAVE_LIS3MDL + select HAVE_SAUL_GPIO + select HAVE_SHT3X + source "$(RIOTBOARD)/common/nrf52/Kconfig" diff --git a/boards/adafruit-clue/Makefile.features b/boards/adafruit-clue/Makefile.features index 1f4969f6d9..912b45773c 100644 --- a/boards/adafruit-clue/Makefile.features +++ b/boards/adafruit-clue/Makefile.features @@ -9,4 +9,10 @@ FEATURES_PROVIDED += periph_usbdev # Various other features (if any) FEATURES_PROVIDED += highlevel_stdio +# This configuration enables modules that are only available when using Kconfig +# module modelling +ifeq (1,$(TEST_KCONFIG)) + KCONFIG_ADD_CONFIG += $(RIOTBOARD)/common/nrf52/nrf52_bootloader.config +endif + include $(RIOTBOARD)/common/nrf52/Makefile.features diff --git a/boards/adafruit-itsybitsy-nrf52/Kconfig b/boards/adafruit-itsybitsy-nrf52/Kconfig index 24655e4205..15fbaf6a0e 100644 --- a/boards/adafruit-itsybitsy-nrf52/Kconfig +++ b/boards/adafruit-itsybitsy-nrf52/Kconfig @@ -18,4 +18,6 @@ config BOARD_ADAFRUIT_ITSYBITSY_NRF52 select HAS_PERIPH_USBDEV select HAS_HIGHLEVEL_STDIO + select HAVE_SAUL_GPIO + source "$(RIOTBOARD)/common/nrf52/Kconfig" diff --git a/boards/adafruit-itsybitsy-nrf52/Makefile.features b/boards/adafruit-itsybitsy-nrf52/Makefile.features index 1f4969f6d9..912b45773c 100644 --- a/boards/adafruit-itsybitsy-nrf52/Makefile.features +++ b/boards/adafruit-itsybitsy-nrf52/Makefile.features @@ -9,4 +9,10 @@ FEATURES_PROVIDED += periph_usbdev # Various other features (if any) FEATURES_PROVIDED += highlevel_stdio +# This configuration enables modules that are only available when using Kconfig +# module modelling +ifeq (1,$(TEST_KCONFIG)) + KCONFIG_ADD_CONFIG += $(RIOTBOARD)/common/nrf52/nrf52_bootloader.config +endif + include $(RIOTBOARD)/common/nrf52/Makefile.features diff --git a/boards/arduino-nano-33-ble/Kconfig b/boards/arduino-nano-33-ble/Kconfig index 0c943d1d7f..745540b6c3 100644 --- a/boards/arduino-nano-33-ble/Kconfig +++ b/boards/arduino-nano-33-ble/Kconfig @@ -18,4 +18,6 @@ config BOARD_ARDUINO_NANO_33_BLE select HAS_PERIPH_USBDEV select HAS_HIGHLEVEL_STDIO + select HAVE_SAUL_GPIO + source "$(RIOTBOARD)/common/nrf52/Kconfig" diff --git a/boards/arduino-nano-33-ble/Makefile.features b/boards/arduino-nano-33-ble/Makefile.features index 1f4969f6d9..912b45773c 100644 --- a/boards/arduino-nano-33-ble/Makefile.features +++ b/boards/arduino-nano-33-ble/Makefile.features @@ -9,4 +9,10 @@ FEATURES_PROVIDED += periph_usbdev # Various other features (if any) FEATURES_PROVIDED += highlevel_stdio +# This configuration enables modules that are only available when using Kconfig +# module modelling +ifeq (1,$(TEST_KCONFIG)) + KCONFIG_ADD_CONFIG += $(RIOTBOARD)/common/nrf52/nrf52_bootloader.config +endif + include $(RIOTBOARD)/common/nrf52/Makefile.features diff --git a/boards/common/e104-bt50xxa-tb/Kconfig b/boards/common/e104-bt50xxa-tb/Kconfig index 1e6a27d1da..75d3d6060f 100644 --- a/boards/common/e104-bt50xxa-tb/Kconfig +++ b/boards/common/e104-bt50xxa-tb/Kconfig @@ -11,4 +11,28 @@ config BOARD_COMMON_E104_BT50XXA_TB select HAS_PERIPH_SPI select HAS_PERIPH_UART + select HAVE_SAUL_GPIO + select MODULE_BOARDS_COMMON_E104_BT50XXA_TB if TEST_KCONFIG + +config MODULE_BOARDS_COMMON_E104_BT50XXA_TB + bool + depends on TEST_KCONFIG + help + common code of e104-bt50xxa-tb boards + +config MODULE_BOARD_SOFTWARE_RESET + bool "Enable softare reset button" + default y + depends on HAS_PERIPH_GPIO + depends on HAS_PERIPH_GPIO_IRQ + depends on HAS_PERIPH_PM + depends on TEST_KCONFIG + select MODULE_PERIPH_GPIO + select MODULE_PERIPH_GPIO_IRQ + select MODULE_PERIPH_PM + +choice NRF5X_RADIO_BACKEND + default MODULE_NRFMIN +endchoice + source "$(RIOTBOARD)/common/nrf52/Kconfig" diff --git a/boards/common/nrf52/nrf52_bootloader.config b/boards/common/nrf52/nrf52_bootloader.config new file mode 100644 index 0000000000..a3ee03b3ef --- /dev/null +++ b/boards/common/nrf52/nrf52_bootloader.config @@ -0,0 +1,4 @@ +CONFIG_MODULE_USBUS=y +CONFIG_MODULE_USBUS_CDC_ACM=y +CONFIG_MODULE_STDIO_CDC_ACM=y +CONFIG_MODULE_USB_BOARD_RESET=y diff --git a/boards/common/nrf52xxxdk/Kconfig b/boards/common/nrf52xxxdk/Kconfig index 49aeac424f..c839206247 100644 --- a/boards/common/nrf52xxxdk/Kconfig +++ b/boards/common/nrf52xxxdk/Kconfig @@ -15,8 +15,10 @@ config BOARDS_COMMON_NRF52XXXDK select HAVE_SAUL_GPIO -config MODULE_BOARDS_COMMON_NRF52XXDK +config MODULE_BOARDS_COMMON_NRF52XXXDK bool - default y + depends on TEST_KCONFIG + help + Common code for boards based on nrf52xxxdk. source "$(RIOTBOARD)/common/nrf52/Kconfig" diff --git a/boards/common/nrf52xxxdk/Makefile b/boards/common/nrf52xxxdk/Makefile index 518c048179..4928dac4e9 100644 --- a/boards/common/nrf52xxxdk/Makefile +++ b/boards/common/nrf52xxxdk/Makefile @@ -1,3 +1,3 @@ -MODULE = boards_common_nrf52xxdk +MODULE = boards_common_nrf52xxxdk include $(RIOTBASE)/Makefile.base diff --git a/boards/common/particle-mesh/Kconfig b/boards/common/particle-mesh/Kconfig index df143f6e53..55cda8499a 100644 --- a/boards/common/particle-mesh/Kconfig +++ b/boards/common/particle-mesh/Kconfig @@ -12,8 +12,20 @@ config BOARD_COMMON_PARTICLE_MESH select HAS_PERIPH_PWM select HAS_PERIPH_SPI select HAS_PERIPH_UART + select HAS_PERIPH_UART_HW_FC select HAS_PERIPH_USBDEV select HAS_HIGHLEVEL_STDIO select HAS_VDD_LC_FILTER_REG1 + select HAVE_SAUL_GPIO + select HAVE_SAUL_PWM + + select MODULE_BOARDS_COMMON_PARTICLE_MESH if TEST_KCONFIG + +config MODULE_BOARDS_COMMON_PARTICLE_MESH + bool + depends on TEST_KCONFIG + help + Common code for particle-mesh boards + source "$(RIOTBOARD)/common/nrf52/Kconfig" diff --git a/boards/common/particle-mesh/Makefile.dep b/boards/common/particle-mesh/Makefile.dep index caaa82c5cb..c5047b30c1 100644 --- a/boards/common/particle-mesh/Makefile.dep +++ b/boards/common/particle-mesh/Makefile.dep @@ -7,7 +7,6 @@ ifeq (1,$(PARTICLE_MONOFIRMWARE)) USEMODULE += usb_board_reset endif -include $(RIOTBOARD)/common/makefiles/stdio_cdc_acm.dep.mk - +include $(RIOTBOARD)/common/nrf52/bootloader_nrfutil.dep.mk # include common nrf52 dependencies include $(RIOTBOARD)/common/nrf52/Makefile.dep diff --git a/boards/common/particle-mesh/Makefile.features b/boards/common/particle-mesh/Makefile.features index 9ca1472a17..a52459e965 100644 --- a/boards/common/particle-mesh/Makefile.features +++ b/boards/common/particle-mesh/Makefile.features @@ -5,11 +5,17 @@ FEATURES_PROVIDED += periph_i2c FEATURES_PROVIDED += periph_pwm FEATURES_PROVIDED += periph_spi FEATURES_PROVIDED += periph_uart +FEATURES_PROVIDED += periph_uart_hw_fc FEATURES_PROVIDED += periph_usbdev FEATURES_PROVIDED += vdd_lc_filter_reg1 # Various other features (if any) - FEATURES_PROVIDED += highlevel_stdio +# This configuration enables modules that are only available when using Kconfig +# module modelling +ifeq (1,$(TEST_KCONFIG)) + KCONFIG_ADD_CONFIG += $(RIOTBOARD)/common/nrf52/nrf52_bootloader.config +endif + include $(RIOTBOARD)/common/nrf52/Makefile.features diff --git a/boards/dwm1001/Kconfig b/boards/dwm1001/Kconfig index fc9cc683cf..4c859616fb 100644 --- a/boards/dwm1001/Kconfig +++ b/boards/dwm1001/Kconfig @@ -16,6 +16,7 @@ config BOARD_DWM1001 select HAS_PERIPH_SPI select HAS_PERIPH_UART select HAS_VDD_LC_FILTER_REG1 - select HAVE_LIS2DH12 + + select HAVE_LIS2DH12_SPI source "$(RIOTBOARD)/common/nrf52/Kconfig" diff --git a/boards/dwm1001/Makefile.dep b/boards/dwm1001/Makefile.dep index 29588efc1f..492103bea9 100644 --- a/boards/dwm1001/Makefile.dep +++ b/boards/dwm1001/Makefile.dep @@ -1,5 +1,5 @@ ifneq (,$(filter saul_default,$(USEMODULE))) - USEMODULE += lis2dh12 + USEMODULE += lis2dh12_spi endif # include common nrf52 dependencies diff --git a/boards/feather-nrf52840/Kconfig b/boards/feather-nrf52840/Kconfig index b7511ae069..e2f22a10a0 100644 --- a/boards/feather-nrf52840/Kconfig +++ b/boards/feather-nrf52840/Kconfig @@ -18,4 +18,6 @@ config BOARD_FEATHER_NRF52840 select HAS_PERIPH_USBDEV select HAS_HIGHLEVEL_STDIO + select HAVE_SAUL_GPIO + source "$(RIOTBOARD)/common/nrf52/Kconfig" diff --git a/boards/feather-nrf52840/Makefile.features b/boards/feather-nrf52840/Makefile.features index 1f4969f6d9..912b45773c 100644 --- a/boards/feather-nrf52840/Makefile.features +++ b/boards/feather-nrf52840/Makefile.features @@ -9,4 +9,10 @@ FEATURES_PROVIDED += periph_usbdev # Various other features (if any) FEATURES_PROVIDED += highlevel_stdio +# This configuration enables modules that are only available when using Kconfig +# module modelling +ifeq (1,$(TEST_KCONFIG)) + KCONFIG_ADD_CONFIG += $(RIOTBOARD)/common/nrf52/nrf52_bootloader.config +endif + include $(RIOTBOARD)/common/nrf52/Makefile.features diff --git a/boards/microbit-v2/Kconfig b/boards/microbit-v2/Kconfig index 3dd82fe79c..5b6d68fe28 100644 --- a/boards/microbit-v2/Kconfig +++ b/boards/microbit-v2/Kconfig @@ -18,5 +18,7 @@ config BOARD_MICROBIT_V2 select HAS_PERIPH_UART select HAS_VDD_LC_FILTER_REG1 + select HAVE_SAUL_GPIO + source "$(RIOTBOARD)/common/microbit/Kconfig" source "$(RIOTBOARD)/common/nrf52/Kconfig" diff --git a/boards/nrf52832-mdk/Kconfig b/boards/nrf52832-mdk/Kconfig index b6f8b4558c..8fd7f4c228 100644 --- a/boards/nrf52832-mdk/Kconfig +++ b/boards/nrf52832-mdk/Kconfig @@ -16,4 +16,6 @@ config BOARD_NRF52832_MDK select HAS_PERIPH_UART select HAS_VDD_LC_FILTER_REG1 + select HAVE_SAUL_GPIO + source "$(RIOTBOARD)/common/nrf52/Kconfig" diff --git a/boards/nrf52840-mdk-dongle/Kconfig b/boards/nrf52840-mdk-dongle/Kconfig index 9f70b7ad03..e8eef0a2a5 100644 --- a/boards/nrf52840-mdk-dongle/Kconfig +++ b/boards/nrf52840-mdk-dongle/Kconfig @@ -17,4 +17,7 @@ config BOARD_NRF52840_MDK_DONGLE select HAS_PERIPH_USBDEV select HAS_HIGHLEVEL_STDIO + select HAVE_SAUL_GPIO + select HAVE_SAUL_PWM + source "$(RIOTBOARD)/common/nrf52/Kconfig" diff --git a/boards/nrf52840-mdk-dongle/Makefile.features b/boards/nrf52840-mdk-dongle/Makefile.features index bd678939fe..a4fe12567f 100644 --- a/boards/nrf52840-mdk-dongle/Makefile.features +++ b/boards/nrf52840-mdk-dongle/Makefile.features @@ -8,4 +8,10 @@ FEATURES_PROVIDED += periph_usbdev # Various other features (if any) FEATURES_PROVIDED += highlevel_stdio +# This configuration enables modules that are only available when using Kconfig +# module modelling +ifeq (1,$(TEST_KCONFIG)) + KCONFIG_ADD_CONFIG += $(RIOTBOARD)/common/nrf52/nrf52_bootloader.config +endif + include $(RIOTBOARD)/common/nrf52/Makefile.features diff --git a/boards/nrf52840-mdk/Kconfig b/boards/nrf52840-mdk/Kconfig index a33f3db185..38b88d9cd4 100644 --- a/boards/nrf52840-mdk/Kconfig +++ b/boards/nrf52840-mdk/Kconfig @@ -18,4 +18,6 @@ config BOARD_NRF52840_MDK select HAS_PERIPH_USBDEV select HAS_VDD_LC_FILTER_REG1 + select HAVE_SAUL_GPIO + source "$(RIOTBOARD)/common/nrf52/Kconfig" diff --git a/boards/nrf52840dk/Kconfig b/boards/nrf52840dk/Kconfig index 8a0d3a5d6d..a62270c422 100644 --- a/boards/nrf52840dk/Kconfig +++ b/boards/nrf52840dk/Kconfig @@ -17,4 +17,6 @@ config BOARD_NRF52840DK select HAS_VDD_LC_FILTER_REG0 select HAVE_MTD_SPI_NOR + select MODULE_BOARDS_COMMON_NRF52XXXDK if TEST_KCONFIG + source "$(RIOTBOARD)/common/nrf52xxxdk/Kconfig" diff --git a/boards/nrf52840dk/Makefile.dep b/boards/nrf52840dk/Makefile.dep index e81241f834..0eaff21511 100644 --- a/boards/nrf52840dk/Makefile.dep +++ b/boards/nrf52840dk/Makefile.dep @@ -1,4 +1,4 @@ -USEMODULE += boards_common_nrf52xxdk +USEMODULE += boards_common_nrf52xxxdk ifneq (,$(filter mtd,$(USEMODULE))) USEMODULE += mtd_spi_nor diff --git a/boards/nrf52840dongle/Kconfig b/boards/nrf52840dongle/Kconfig index 068de77552..69263b58f4 100644 --- a/boards/nrf52840dongle/Kconfig +++ b/boards/nrf52840dongle/Kconfig @@ -21,4 +21,8 @@ config BOARD_NRF52840DONGLE select HAS_VDD_LC_FILTER_REG0 select HAS_VDD_LC_FILTER_REG1 + select HAVE_SAUL_GPIO + select HAVE_SAUL_PWM + select HAVE_SAUL_NRF_VDDH + source "$(RIOTBOARD)/common/nrf52/Kconfig" diff --git a/boards/nrf52840dongle/Makefile.features b/boards/nrf52840dongle/Makefile.features index c50288397a..8f0f1f65a9 100644 --- a/boards/nrf52840dongle/Makefile.features +++ b/boards/nrf52840dongle/Makefile.features @@ -12,4 +12,10 @@ FEATURES_PROVIDED += vdd_lc_filter_reg1 # Various other features (if any) FEATURES_PROVIDED += highlevel_stdio +# This configuration enables modules that are only available when using Kconfig +# module modelling +ifeq (1,$(TEST_KCONFIG)) + KCONFIG_ADD_CONFIG += $(RIOTBOARD)/common/nrf52/nrf52_bootloader.config +endif + include $(RIOTBOARD)/common/nrf52/Makefile.features diff --git a/boards/nrf52dk/Kconfig b/boards/nrf52dk/Kconfig index 301b854987..5f01bd1a03 100644 --- a/boards/nrf52dk/Kconfig +++ b/boards/nrf52dk/Kconfig @@ -13,4 +13,6 @@ config BOARD_NRF52DK select BOARDS_COMMON_NRF52XXXDK select CPU_MODEL_NRF52832XXAA + select MODULE_BOARDS_COMMON_NRF52XXXDK if TEST_KCONFIG + source "$(RIOTBOARD)/common/nrf52xxxdk/Kconfig" diff --git a/boards/nrf52dk/Makefile.dep b/boards/nrf52dk/Makefile.dep index ba4cc9e45c..05ce9bea4a 100644 --- a/boards/nrf52dk/Makefile.dep +++ b/boards/nrf52dk/Makefile.dep @@ -1,3 +1,3 @@ -USEMODULE += boards_common_nrf52xxdk +USEMODULE += boards_common_nrf52xxxdk include $(RIOTBOARD)/common/nrf52xxxdk/Makefile.dep diff --git a/boards/particle-argon/Kconfig b/boards/particle-argon/Kconfig index 57d3365862..28729ede92 100644 --- a/boards/particle-argon/Kconfig +++ b/boards/particle-argon/Kconfig @@ -11,5 +11,6 @@ config BOARD_PARTICLE_ARGON bool default y select BOARD_COMMON_PARTICLE_MESH + select MODULE_PERIPH_UART_HW_FC if TEST_KCONFIG && HAS_PERIPH_UART_HW_FC && MODULE_PERIPH_UART source "$(RIOTBOARD)/common/particle-mesh/Kconfig" diff --git a/boards/particle-argon/Makefile.dep b/boards/particle-argon/Makefile.dep index a3fffa39cd..d3b2ac26ed 100644 --- a/boards/particle-argon/Makefile.dep +++ b/boards/particle-argon/Makefile.dep @@ -1,4 +1,6 @@ USEMODULE += boards_common_particle_mesh -USEMODULE += periph_uart_hw_fc +ifneq (,$(filter periph_uart,$(USEMODULE))) + FEATURES_REQUIRED += periph_uart_hw_fc +endif include $(RIOTBOARD)/common/particle-mesh/Makefile.dep diff --git a/boards/particle-boron/Kconfig b/boards/particle-boron/Kconfig index 5c11eb1a2d..842061223b 100644 --- a/boards/particle-boron/Kconfig +++ b/boards/particle-boron/Kconfig @@ -11,5 +11,6 @@ config BOARD_PARTICLE_BORON bool default y select BOARD_COMMON_PARTICLE_MESH + select MODULE_PERIPH_UART_HW_FC if TEST_KCONFIG && HAS_PERIPH_UART_HW_FC && MODULE_PERIPH_UART source "$(RIOTBOARD)/common/particle-mesh/Kconfig" diff --git a/boards/particle-boron/Makefile.dep b/boards/particle-boron/Makefile.dep index a3fffa39cd..d3b2ac26ed 100644 --- a/boards/particle-boron/Makefile.dep +++ b/boards/particle-boron/Makefile.dep @@ -1,4 +1,6 @@ USEMODULE += boards_common_particle_mesh -USEMODULE += periph_uart_hw_fc +ifneq (,$(filter periph_uart,$(USEMODULE))) + FEATURES_REQUIRED += periph_uart_hw_fc +endif include $(RIOTBOARD)/common/particle-mesh/Makefile.dep diff --git a/boards/pinetime/Kconfig b/boards/pinetime/Kconfig index b1beb29de2..a9a8ed1bce 100644 --- a/boards/pinetime/Kconfig +++ b/boards/pinetime/Kconfig @@ -16,4 +16,7 @@ config BOARD_PINETIME select HAS_PERIPH_SPI select HAS_VDD_LC_FILTER_REG1 + select HAVE_ILI9341 + select HAVE_MTD_SPI_NOR + source "$(RIOTBOARD)/common/nrf52/Kconfig" diff --git a/boards/pinetime/Makefile.features b/boards/pinetime/Makefile.features index 53578f9b44..8eb9b26f79 100644 --- a/boards/pinetime/Makefile.features +++ b/boards/pinetime/Makefile.features @@ -6,4 +6,10 @@ FEATURES_PROVIDED += periph_spi #FEATURES_PROVIDED += periph_uart FEATURES_PROVIDED += vdd_lc_filter_reg1 +# This configuration enables modules that are only available when using Kconfig +# module modelling +ifeq (1, $(TEST_KCONFIG)) + KCONFIG_ADD_CONFIG += $(BOARDDIR)/pinetime.config +endif + include $(RIOTBOARD)/common/nrf52/Makefile.features diff --git a/boards/pinetime/pinetime.config b/boards/pinetime/pinetime.config new file mode 100644 index 0000000000..9136c90eb6 --- /dev/null +++ b/boards/pinetime/pinetime.config @@ -0,0 +1 @@ +CONFIG_MODULE_STDIO_RTT=y diff --git a/boards/reel/Kconfig b/boards/reel/Kconfig index 66fd38cbdc..7b3717a93e 100644 --- a/boards/reel/Kconfig +++ b/boards/reel/Kconfig @@ -18,4 +18,7 @@ config BOARD_REEL select HAS_PERIPH_USBDEV select HAS_VDD_LC_FILTER_REG1 + select HAVE_MMA8X5X + select HAVE_SAUL_GPIO + source "$(RIOTBOARD)/common/nrf52/Kconfig" diff --git a/boards/ruuvitag/Kconfig b/boards/ruuvitag/Kconfig index 61521fe57d..afa6f452c7 100644 --- a/boards/ruuvitag/Kconfig +++ b/boards/ruuvitag/Kconfig @@ -16,4 +16,10 @@ config BOARD_RUUVITAG select HAS_PERIPH_UART select HAS_VDD_LC_FILTER_REG1 -source "$(RIOTBOARD)/common/nrf52/Kconfig" + select HAVE_SAUL_GPIO + select HAVE_BME280_SPI + select HAVE_LIS2DH12_SPI + + select MODULE_BOARDS_COMMON_NRF52XXXDK if TEST_KCONFIG + +source "$(RIOTBOARD)/common/nrf52xxxdk/Kconfig" diff --git a/boards/ruuvitag/Makefile.dep b/boards/ruuvitag/Makefile.dep index e7a2d0495b..1944a9ab7a 100644 --- a/boards/ruuvitag/Makefile.dep +++ b/boards/ruuvitag/Makefile.dep @@ -9,6 +9,6 @@ ifeq (,$(filter stdio_% slipdev_stdio,$(USEMODULE))) USEMODULE += stdio_rtt endif -USEMODULE += boards_common_nrf52xxdk +USEMODULE += boards_common_nrf52xxxdk include $(RIOTBOARD)/common/nrf52/Makefile.dep diff --git a/boards/ruuvitag/Makefile.features b/boards/ruuvitag/Makefile.features index 8c1feef43f..fc952501e3 100644 --- a/boards/ruuvitag/Makefile.features +++ b/boards/ruuvitag/Makefile.features @@ -5,4 +5,10 @@ FEATURES_PROVIDED += periph_spi FEATURES_PROVIDED += periph_uart FEATURES_PROVIDED += vdd_lc_filter_reg1 +# This configuration enables modules that are only available when using Kconfig +# module modelling +ifeq (1,$(TEST_KCONFIG)) + KCONFIG_ADD_CONFIG += $(BOARDDIR)/ruuvitag.config +endif + include $(RIOTBOARD)/common/nrf52/Makefile.features diff --git a/boards/ruuvitag/ruuvitag.config b/boards/ruuvitag/ruuvitag.config new file mode 100644 index 0000000000..9136c90eb6 --- /dev/null +++ b/boards/ruuvitag/ruuvitag.config @@ -0,0 +1 @@ +CONFIG_MODULE_STDIO_RTT=y diff --git a/boards/thingy52/Kconfig b/boards/thingy52/Kconfig index 54af2897df..47ffaa5e64 100644 --- a/boards/thingy52/Kconfig +++ b/boards/thingy52/Kconfig @@ -16,4 +16,8 @@ config BOARD_THINGY52 select HAS_PERIPH_UART select HAS_VDD_LC_FILTER_REG1 + select HAVE_LPS22HB + select HAVE_LIS2DH12_I2C + select HAVE_HTS221 + source "$(RIOTBOARD)/common/nrf52/Kconfig" diff --git a/boards/thingy52/Makefile.dep b/boards/thingy52/Makefile.dep index 5334f34002..a47e07b05e 100644 --- a/boards/thingy52/Makefile.dep +++ b/boards/thingy52/Makefile.dep @@ -1,5 +1,5 @@ ifneq (,$(filter saul_default,$(USEMODULE))) - USEMODULE += lis2dh12 + USEMODULE += lis2dh12_i2c USEMODULE += hts221 USEMODULE += lps22hb endif diff --git a/boards/thingy52/Makefile.features b/boards/thingy52/Makefile.features index 3ac7472acb..eb7d17ed44 100644 --- a/boards/thingy52/Makefile.features +++ b/boards/thingy52/Makefile.features @@ -5,4 +5,10 @@ FEATURES_PROVIDED += periph_i2c FEATURES_PROVIDED += periph_uart FEATURES_PROVIDED += vdd_lc_filter_reg1 +# This configuration enables modules that are only available when using Kconfig +# module modelling +ifeq (1, $(TEST_KCONFIG)) + KCONFIG_ADD_CONFIG += $(BOARDDIR)/thingy52.config +endif + include $(RIOTBOARD)/common/nrf52/Makefile.features diff --git a/boards/thingy52/thingy52.config b/boards/thingy52/thingy52.config new file mode 100644 index 0000000000..9136c90eb6 --- /dev/null +++ b/boards/thingy52/thingy52.config @@ -0,0 +1 @@ +CONFIG_MODULE_STDIO_RTT=y diff --git a/cpu/nrf52/periph/Kconfig b/cpu/nrf52/periph/Kconfig index 6905a0a163..520b0470ed 100644 --- a/cpu/nrf52/periph/Kconfig +++ b/cpu/nrf52/periph/Kconfig @@ -19,5 +19,12 @@ config MODULE_PERIPH_SPI config MODULE_SAUL_NRF_VDDH bool "Internal Voltage Sensor" depends on HAS_PERIPH_ADC + select MODULE_PERIPH_ADC endif # TEST_KCONFIG + +config HAVE_SAUL_NRF_VDDH + bool + select MODULE_SAUL_NRF_VDDH if MODULE_SAUL_DEFAULT + help + Indicates that internal voltage sensor is present. diff --git a/drivers/ads101x/Kconfig b/drivers/ads101x/Kconfig index 6e1e91a438..eb5a80192e 100644 --- a/drivers/ads101x/Kconfig +++ b/drivers/ads101x/Kconfig @@ -36,5 +36,10 @@ config ADS101X_I2C_ADDRESS ADS101X allows for upto 4 devices on Single Bus. The value depends on the state of ADDR Pin. Default value (0x48) corresponds to ADDR pin tied to GND. For more information refer I2C Address Selection in Datasheet. - endif # KCONFIG_USEMODULE_ADS101X + +config HAVE_ADS101X + bool + select MODULE_ADS101X if MODULE_SAUL_DEFAULT + help + Indicates that an ADS101X Analog-to-Digital converter is present. diff --git a/drivers/apds99xx/Kconfig b/drivers/apds99xx/Kconfig index a7020c8ff5..4f808f0e08 100644 --- a/drivers/apds99xx/Kconfig +++ b/drivers/apds99xx/Kconfig @@ -5,11 +5,12 @@ # directory for more details. # -choice - bool "APDS99XX proximity and ambient light sensor" +menuconfig MODULE_APDS99XX + bool + prompt "APDS99xx Broadcom Sensors" if !(MODULE_SAUL_DEFAULT && HAVE_APDS99XX) depends on HAS_PERIPH_I2C depends on TEST_KCONFIG - optional + select MODULE_PERIPH_I2C help The driver can be used with following Broadcom sensors: APDS9900, APDS9901, APDS9930, APDS9950, APDS9960. Select one model. @@ -24,36 +25,76 @@ choice interrupts can be used to retrieve data. In addition, threshold interrupts can be used and configured. +if MODULE_APDS99XX + +choice APDS99XX_VARIANT + bool "Model" + default MODULE_APDS9900 if HAVE_APDS9900 + default MODULE_APDS9901 if HAVE_APDS9901 + default MODULE_APDS9930 if HAVE_APDS9930 + default MODULE_APDS9950 if HAVE_APDS9950 + default MODULE_APDS9960 if HAVE_APDS9960 + help + The driver can be used with following Broadcom sensors: APDS9900, + APDS9901, APDS9930, APDS9950, APDS9960. Select one model. + config MODULE_APDS9900 bool "APDS9900" - select MODULE_APDS99XX config MODULE_APDS9901 bool "APDS9901" - select MODULE_APDS99XX config MODULE_APDS9930 bool "APDS9930" - select MODULE_APDS99XX config MODULE_APDS9950 bool "APDS9950" - select MODULE_APDS99XX config MODULE_APDS9960 bool "APDS9960" - select MODULE_APDS99XX endchoice -config MODULE_APDS99XX - bool - depends on HAS_PERIPH_I2C - depends on TEST_KCONFIG - select MODULE_PERIPH_I2C +endif # MODULE_APDS99XX config MODULE_APDS99XX_FULL bool "APDS99XX Full functionalities" depends on MODULE_APDS99XX depends on HAS_PERIPH_GPIO_IRQ select MODULE_PERIPH_GPIO_IRQ + +config HAVE_APDS99XX + bool + select MODULE_APDS99XX if MODULE_SAUL_DEFAULT + help + Indicates that a apds99xx sensor is present. + +config HAVE_APDS9900 + bool + select HAVE_APDS99XX + help + Indicates that a apds9900 sensor is present. + +config HAVE_APDS9901 + bool + select HAVE_APDS99XX + help + Indicates that a apds9901 sensor is present. + +config HAVE_APDS9930 + bool + select HAVE_APDS99XX + help + Indicates that a apds9930 sensor is present. + +config HAVE_APDS9950 + bool + select HAVE_APDS99XX + help + Indicates that a apds9950 sensor is present. + +config HAVE_APDS9960 + bool + select HAVE_APDS99XX + help + Indicates that a apds9960 sensor is present. diff --git a/drivers/bmx280/Kconfig b/drivers/bmx280/Kconfig index 1b45c8d2e0..9db3ead4d8 100644 --- a/drivers/bmx280/Kconfig +++ b/drivers/bmx280/Kconfig @@ -78,5 +78,6 @@ config HAVE_BMP280_SPI config HAVE_BMX280 bool + select MODULE_BMX280 if MODULE_SAUL_DEFAULT help Indicates that a bmx280 sensor is present. diff --git a/drivers/hts221/Kconfig b/drivers/hts221/Kconfig index ee797b3e45..c0d6f1bca3 100644 --- a/drivers/hts221/Kconfig +++ b/drivers/hts221/Kconfig @@ -10,3 +10,9 @@ config MODULE_HTS221 depends on HAS_PERIPH_I2C depends on TEST_KCONFIG select MODULE_PERIPH_I2C + +config HAVE_HTS221 + bool + select MODULE_HTS221 if MODULE_SAUL_DEFAULT + help + Indicates that a ST HTS221 sensor is present. diff --git a/drivers/lis2dh12/Kconfig b/drivers/lis2dh12/Kconfig index 75a2b5d382..28681964ae 100644 --- a/drivers/lis2dh12/Kconfig +++ b/drivers/lis2dh12/Kconfig @@ -5,20 +5,18 @@ # directory for more details. # -config HAVE_LIS2DH12 +config MODULE_LIS2DH12 bool - select MODULE_LIS2DH12 if MODULE_SAUL_DEFAULT - help - Indicates that a lisdh12 is present - -menuconfig MODULE_LIS2DH12 - bool "LIS2DH12 Accelerometer" + prompt "LIS2DH12 Accelerometer" if !(MODULE_SAUL_DEFAULT && HAVE_LIS2DH12) + default (MODULE_SAUL_DEFAULT && HAVE_LIS2DH12) depends on TEST_KCONFIG if MODULE_LIS2DH12 choice bool "Device interface" + default MODULE_LIS2DH12_I2C if HAVE_LIS2DH12_I2C + default MODULE_LIS2DH12_SPI if HAVE_LIS2DH12_SPI config MODULE_LIS2DH12_I2C bool "I2C" @@ -40,3 +38,21 @@ config MODULE_LIS2DH12_INT select MODULE_PERIPH_GPIO_IRQ endif # MODULE_LIS2DH12 + +config HAVE_LIS2DH12 + bool + select MODULE_LIS2DH12 if MODULE_SAUL_DEFAULT + help + Indicates that a LIS2DH12 Accelerometer is present. + +config HAVE_LIS2DH12_I2C + bool + select HAVE_LIS2DH12 + help + Indicates that a LIS2DH12 Accelerometer on the I2C bus is present. + +config HAVE_LIS2DH12_SPI + bool + select HAVE_LIS2DH12 + help + Indicates that a LIS2DH12 Accelerometer on the SPI bus is present. diff --git a/drivers/lis2dh12/Makefile.dep b/drivers/lis2dh12/Makefile.dep index e46c4a9cef..bfc44ede50 100644 --- a/drivers/lis2dh12/Makefile.dep +++ b/drivers/lis2dh12/Makefile.dep @@ -1,7 +1,9 @@ ifneq (,$(filter lis2dh12_spi,$(USEMODULE))) FEATURES_REQUIRED += periph_gpio FEATURES_REQUIRED += periph_spi -else +endif + +ifneq (,$(filter lis2dh12_i2c,$(USEMODULE))) FEATURES_REQUIRED += periph_i2c endif diff --git a/drivers/lis3mdl/Kconfig b/drivers/lis3mdl/Kconfig index de0cd496ba..5b0f8b0d71 100644 --- a/drivers/lis3mdl/Kconfig +++ b/drivers/lis3mdl/Kconfig @@ -11,3 +11,9 @@ config MODULE_LIS3MDL depends on TEST_KCONFIG select MODULE_PERIPH_I2C select MODULE_XTIMER + +config HAVE_LIS3MDL + bool + select MODULE_LIS3MDL if MODULE_SAUL_DEFAULT + help + Indicates that a lismdl sensor is present. diff --git a/drivers/lpsxxx/Kconfig b/drivers/lpsxxx/Kconfig index c5eaaf4164..9533442e27 100644 --- a/drivers/lpsxxx/Kconfig +++ b/drivers/lpsxxx/Kconfig @@ -6,38 +6,42 @@ # directory for more details. # -choice - bool "LPSXXX Pressure Sensors" - optional +menuconfig MODULE_LPSXXX + bool + prompt "LPSXXX Pressure Sensors" if !(MODULE_SAUL_DEFAULT && HAVE_LPSXXX) depends on HAS_PERIPH_I2C depends on TEST_KCONFIG + select MODULE_PERIPH_I2C + help + Device driver for the LPSXXX pressure sensor family + (LPS331AP/LPS25HB/LPS22HB/LPS22HH). Select a model. + +if MODULE_LPSXXX + +choice LPSXXX_VARIANT + bool "Model" + default MODULE_LPS331AP if HAVE_LPS331AP + default MODULE_LPS22HB if HAVE_LPS22HB + default MODULE_LPS22HH if HAVE_LPS22HH + default MODULE_LPS25HB if HAVE_LPS25HB help Device driver for the LPSXXX pressure sensor family (LPS331AP/LPS25HB/LPS22HB/LPS22HH). Select a model. config MODULE_LPS331AP bool "LPS331AP" - select MODULE_LPSXXX - config MODULE_LPS22HB bool "LPS22HB" - select MODULE_LPSXXX config MODULE_LPS22HH bool "LPS22HH" - select MODULE_LPSXXX config MODULE_LPS25HB bool "LPS25HB" - select MODULE_LPSXXX endchoice -config MODULE_LPSXXX - bool - depends on HAS_PERIPH_I2C - depends on TEST_KCONFIG - select MODULE_PERIPH_I2C +endif # MODULE_LPSXXX menuconfig KCONFIG_USEMODULE_LPSXXX bool "Configure LPSXXX driver" @@ -58,3 +62,31 @@ config LPSXXX_DEFAULT_ADDRESS datasheet. endif # KCONFIG_USEMODULE_LPSXXX + +config HAVE_LPSXXX + bool + select MODULE_LPSXXX if MODULE_SAUL_DEFAULT + +config HAVE_LPS331AP + bool + select HAVE_LPSXXX + help + Indicates that a LPS331AP sensor is present. + +config HAVE_LPS22HB + bool + select HAVE_LPSXXX + help + Indicates that a LPS22HB sensor is present. + +config HAVE_LPS22HH + bool + select HAVE_LPSXXX + help + Indicates that a LPS22HH sensor is present. + +config HAVE_LPS25HB + bool + select HAVE_LPSXXX + help + Indicates that a LPS25HB sensor is present. diff --git a/drivers/saul/Kconfig b/drivers/saul/Kconfig index d62d63a1c3..962ba9a649 100644 --- a/drivers/saul/Kconfig +++ b/drivers/saul/Kconfig @@ -24,13 +24,16 @@ config MODULE_SAUL_ADC bool "SAUL wrapper for direct access to analog pins" depends on HAS_PERIPH_ADC select MODULE_PERIPH_ADC - default y if HAVE_SAUL_ADC config MODULE_SAUL_GPIO bool "SAUL wrapper for direct access to GPIO pins" depends on HAS_PERIPH_GPIO select MODULE_PERIPH_GPIO - default y if HAVE_SAUL_GPIO + +config MODULE_SAUL_PWM + bool "SAUL wrapper PWM enabled GPIO pins" + depends on HAS_PERIPH_PWM + select MODULE_PERIPH_PWM config MODULE_SAUL_NRF_TEMPERATURE bool "SAUL wrapper for direct access to the temperature peripheral" @@ -50,10 +53,18 @@ endif # MODULE_SAUL config HAVE_SAUL_ADC bool + select MODULE_SAUL_ADC if MODULE_SAUL_DEFAULT help Indicates that configuration for ADC access via SAUL is available. config HAVE_SAUL_GPIO bool + select MODULE_SAUL_GPIO if MODULE_SAUL_DEFAULT help Indicates that configuration for GPIO access via SAUL is available. + +config HAVE_SAUL_PWM + bool + select MODULE_SAUL_PWM if MODULE_SAUL_DEFAULT + help + Indicates that configuration for PWM access via SAUL is available. diff --git a/drivers/sht3x/Kconfig b/drivers/sht3x/Kconfig index d83ca53ad2..c0713f900b 100644 --- a/drivers/sht3x/Kconfig +++ b/drivers/sht3x/Kconfig @@ -12,3 +12,9 @@ config MODULE_SHT3X select MODULE_PERIPH_I2C select MODULE_CHECKSUM select MODULE_XTIMER + +config HAVE_SHT3X + bool + select MODULE_SHT3X if MODULE_SAUL_DEFAULT + help + Indicates that a SHT30/SHT31/SHT35 sensor is present. diff --git a/sys/Kconfig.stdio b/sys/Kconfig.stdio index aa2610f29b..f031cb0f43 100644 --- a/sys/Kconfig.stdio +++ b/sys/Kconfig.stdio @@ -13,7 +13,12 @@ choice STDIO_IMPLEMENTATION default MODULE_STDIO_NATIVE if CPU_ARCH_NATIVE default MODULE_STDIO_UART -# TODO: Add MODULE_STDIO_RTT, and MODULE_STDIO_ETHOS +# TODO: add MODULE_STDIO_ETHOS + +config MODULE_STDIO_RTT + bool "JLink RTT" + select MODULE_ZTIMER + select MODULE_ZTIMER_MSEC config MODULE_SLIPDEV_STDIO bool "SLIP network device" diff --git a/tests/driver_apds99xx/app.config.test b/tests/driver_apds99xx/app.config.test index 1a82cd0183..ecf846cbdd 100644 --- a/tests/driver_apds99xx/app.config.test +++ b/tests/driver_apds99xx/app.config.test @@ -1,4 +1,5 @@ # this file enables modules defined in Kconfig. Do not use this file for # application configuration. This is only needed during migration. CONFIG_MODULE_APDS9960=y +CONFIG_MODULE_APDS99XX=y CONFIG_MODULE_XTIMER=y diff --git a/tests/driver_apds99xx_full/app.config.test b/tests/driver_apds99xx_full/app.config.test index 94056b8a5f..a04fd6c47a 100644 --- a/tests/driver_apds99xx_full/app.config.test +++ b/tests/driver_apds99xx_full/app.config.test @@ -1,5 +1,6 @@ # this file enables modules defined in Kconfig. Do not use this file for # application configuration. This is only needed during migration. CONFIG_MODULE_APDS9960=y +CONFIG_MODULE_APDS99XX=y CONFIG_MODULE_APDS99XX_FULL=y CONFIG_MODULE_CORE_THREAD_FLAGS=y diff --git a/tests/driver_lpsxxx/app.config.test b/tests/driver_lpsxxx/app.config.test index 6c29310b0a..a3ea731eaf 100644 --- a/tests/driver_lpsxxx/app.config.test +++ b/tests/driver_lpsxxx/app.config.test @@ -1,4 +1,5 @@ # this file enables modules defined in Kconfig. Do not use this file for # application configuration. This is only needed during migration. CONFIG_MODULE_LPS331AP=y +CONFIG_MODULE_LPSXXX=y CONFIG_MODULE_XTIMER=y diff --git a/tests/periph_qdec/boards_modded/nrf52840dk/Kconfig b/tests/periph_qdec/boards_modded/nrf52840dk/Kconfig index ae66d3bed9..787b866418 100644 --- a/tests/periph_qdec/boards_modded/nrf52840dk/Kconfig +++ b/tests/periph_qdec/boards_modded/nrf52840dk/Kconfig @@ -18,4 +18,6 @@ config BOARD_NRF52840DK select HAS_VDD_LC_FILTER_REG0 select HAVE_MTD_SPI_NOR + select MODULE_BOARDS_COMMON_NRF52XXXDK if TEST_KCONFIG + source "$(RIOTBOARD)/common/nrf52xxxdk/Kconfig"