diff --git a/.murdock b/.murdock index ff0634c9bc..8850dc12a1 100755 --- a/.murdock +++ b/.murdock @@ -26,6 +26,7 @@ hifive1 mbed_lpc1768 mega-xplained microbit +mulle native nrf52840dk nrf9160dk diff --git a/boards/common/kw41z/Kconfig b/boards/common/kw41z/Kconfig index 73426d6a36..db004741be 100644 --- a/boards/common/kw41z/Kconfig +++ b/boards/common/kw41z/Kconfig @@ -14,3 +14,11 @@ config BOARD_COMMON_KW41Z select HAS_PERIPH_TIMER select HAS_PERIPH_UART select HAS_RIOTBOOT + + select HAVE_SAUL_ADC + select HAVE_SAUL_GPIO + +config MODULE_BOARDS_COMMON_KW41Z + bool + help + Common code for kw41z-based boards. diff --git a/boards/frdm-k22f/Kconfig b/boards/frdm-k22f/Kconfig index a72b56cb97..25714161b8 100644 --- a/boards/frdm-k22f/Kconfig +++ b/boards/frdm-k22f/Kconfig @@ -19,3 +19,6 @@ config BOARD_FRDM_K22F select HAS_PERIPH_SPI select HAS_PERIPH_TIMER select HAS_PERIPH_UART + + select HAVE_SAUL_ADC + select HAVE_SAUL_GPIO diff --git a/boards/frdm-k64f/Kconfig b/boards/frdm-k64f/Kconfig index d1e0c28ce3..f3352e365d 100644 --- a/boards/frdm-k64f/Kconfig +++ b/boards/frdm-k64f/Kconfig @@ -20,3 +20,5 @@ config BOARD_FRDM_K64F select HAS_PERIPH_TIMER select HAS_PERIPH_UART select HAS_RIOTBOOT + + select HAVE_SAUL_ADC diff --git a/boards/frdm-kl43z/Kconfig b/boards/frdm-kl43z/Kconfig index c30a6a2250..2a327b1094 100644 --- a/boards/frdm-kl43z/Kconfig +++ b/boards/frdm-kl43z/Kconfig @@ -17,3 +17,8 @@ config BOARD_FRDM_KL43Z select HAS_PERIPH_RTT select HAS_PERIPH_TIMER select HAS_PERIPH_UART + + select HAVE_MAG3110 + select HAVE_MMA8X5X + select HAVE_SAUL_ADC + select HAVE_SAUL_GPIO diff --git a/boards/frdm-kw41z/Kconfig b/boards/frdm-kw41z/Kconfig index c9206a17b1..d07b4adb6c 100644 --- a/boards/frdm-kw41z/Kconfig +++ b/boards/frdm-kw41z/Kconfig @@ -14,4 +14,7 @@ config BOARD_FRDM_KW41Z select HAS_PERIPH_SPI select BOARD_COMMON_KW41Z + select MODULE_BOARDS_COMMON_KW41Z if TEST_KCONFIG + select HAVE_FXOS8700 + source "$(RIOTBOARD)/common/kw41z/Kconfig" diff --git a/boards/mulle/Kconfig b/boards/mulle/Kconfig index ea7e536aad..f099e84439 100644 --- a/boards/mulle/Kconfig +++ b/boards/mulle/Kconfig @@ -20,3 +20,7 @@ config BOARD_MULLE select HAS_PERIPH_SPI select HAS_PERIPH_TIMER select HAS_PERIPH_UART + + select HAVE_LIS3DH + select HAVE_SAUL_ADC + select HAVE_SAUL_GPIO diff --git a/boards/mulle/Makefile.features b/boards/mulle/Makefile.features index 2898318971..ba8aa8fa3d 100644 --- a/boards/mulle/Makefile.features +++ b/boards/mulle/Makefile.features @@ -18,3 +18,9 @@ FEATURES_PROVIDED += periph_rtt FEATURES_PROVIDED += periph_spi FEATURES_PROVIDED += periph_timer FEATURES_PROVIDED += periph_uart + +# This configuration enables modules that are only available when using Kconfig +# module modelling +ifeq (1, $(TEST_KCONFIG)) + KCONFIG_ADD_CONFIG += $(BOARDDIR)/mulle.config +endif diff --git a/boards/mulle/mulle.config b/boards/mulle/mulle.config new file mode 100644 index 0000000000..5cc3399222 --- /dev/null +++ b/boards/mulle/mulle.config @@ -0,0 +1,10 @@ +# The Mulle uses NVRAM to store persistent variables, such as boot count. +CONFIG_MODULE_NVRAM=y +CONFIG_MODULE_NVRAM_SPI=y +CONFIG_MODULE_VFS=y +CONFIG_MODULE_DEVFS=y +CONFIG_MODULE_MTD=y +CONFIG_MODULE_MTD_SPI_NOR=y + +# Mulle always uses the RTT for the oscillator +CONFIG_MODULE_PERIPH_RTT=y diff --git a/boards/openlabs-kw41z-mini-256kib/Kconfig b/boards/openlabs-kw41z-mini-256kib/Kconfig index 2a4b09a547..29f8a7b2cc 100644 --- a/boards/openlabs-kw41z-mini-256kib/Kconfig +++ b/boards/openlabs-kw41z-mini-256kib/Kconfig @@ -20,3 +20,6 @@ config BOARD_OPENLABS_KW41Z_MINI_256KIB select HAS_PERIPH_TIMER select HAS_PERIPH_UART select HAS_RIOTBOOT + + select HAVE_SAUL_ADC + select HAVE_SAUL_GPIO diff --git a/boards/openlabs-kw41z-mini/Kconfig b/boards/openlabs-kw41z-mini/Kconfig index 25a2cb0e16..384eab1714 100644 --- a/boards/openlabs-kw41z-mini/Kconfig +++ b/boards/openlabs-kw41z-mini/Kconfig @@ -20,3 +20,6 @@ config BOARD_OPENLABS_KW41Z_MINI select HAS_PERIPH_TIMER select HAS_PERIPH_UART select HAS_RIOTBOOT + + select HAVE_SAUL_ADC + select HAVE_SAUL_GPIO diff --git a/boards/pba-d-01-kw2x/Kconfig b/boards/pba-d-01-kw2x/Kconfig index 1190752761..af97b54914 100644 --- a/boards/pba-d-01-kw2x/Kconfig +++ b/boards/pba-d-01-kw2x/Kconfig @@ -19,3 +19,11 @@ config BOARD_PBA_D_01_KW2X select HAS_PERIPH_TIMER select HAS_PERIPH_UART select HAS_RIOTBOOT + + select HAVE_SAUL_GPIO + select HAVE_HDC1000 + select HAVE_MAG3110 + select HAVE_MMA8X5X + select HAVE_MPL3115A2 + select HAVE_TCS37727 + select HAVE_TMP006 diff --git a/boards/phynode-kw41z/Kconfig b/boards/phynode-kw41z/Kconfig index 3c810cdbe1..a19ee94ecb 100644 --- a/boards/phynode-kw41z/Kconfig +++ b/boards/phynode-kw41z/Kconfig @@ -14,4 +14,8 @@ config BOARD_PHYNODE_KW41Z select HAS_PERIPH_I2C select HAS_PERIPH_SPI + select HAVE_CCS811 + select HAVE_MMA8X5X + select HAVE_TCS37727 + source "$(RIOTBOARD)/common/kw41z/Kconfig" diff --git a/boards/usb-kw41z/Kconfig b/boards/usb-kw41z/Kconfig index 9b1fcf4833..2a42370ff5 100644 --- a/boards/usb-kw41z/Kconfig +++ b/boards/usb-kw41z/Kconfig @@ -12,5 +12,6 @@ config BOARD_USB_KW41Z default y select BOARD_COMMON_KW41Z select HAS_PERIPH_SPI + select MODULE_BOARDS_COMMON_KW41Z if TEST_KCONFIG source "$(RIOTBOARD)/common/kw41z/Kconfig" diff --git a/cpu/kinetis/Kconfig b/cpu/kinetis/Kconfig index 85cfac3622..0a867907fc 100644 --- a/cpu/kinetis/Kconfig +++ b/cpu/kinetis/Kconfig @@ -12,6 +12,15 @@ config CPU_COMMON_KINETIS select HAS_PERIPH_GPIO_IRQ select HAS_PERIPH_PM + # enable kinetis periph drivers if available + imply MODULE_PERIPH_ICS + imply MODULE_PERIPH_MCG + imply MODULE_PERIPH_MCG_LITE + imply MODULE_PERIPH_WDOG + + select MODULE_CORE_THREAD_FLAGS if MODULE_PERIPH_I2C + select MODULE_PERIPH_TIMER if MODULE_PERIPH_RTT && HAS_PERIPH_TIMER + config CPU_FAM_EA bool select CPU_COMMON_KINETIS @@ -162,3 +171,5 @@ config CPU default "kinetis" if CPU_COMMON_KINETIS source "$(RIOTCPU)/cortexm_common/Kconfig" + +rsource "periph/Kconfig" diff --git a/cpu/kinetis/Makefile.features b/cpu/kinetis/Makefile.features index 33484b682f..c8735849a5 100644 --- a/cpu/kinetis/Makefile.features +++ b/cpu/kinetis/Makefile.features @@ -33,3 +33,9 @@ else endif include $(RIOTCPU)/cortexm_common/Makefile.features + +# This configuration enables modules that are only available when using Kconfig +# module modelling +ifeq (1, $(TEST_KCONFIG)) + KCONFIG_ADD_CONFIG += $(RIOTCPU)/kinetis/kinetis.config +endif diff --git a/cpu/kinetis/kinetis.config b/cpu/kinetis/kinetis.config new file mode 100644 index 0000000000..811b1f3712 --- /dev/null +++ b/cpu/kinetis/kinetis.config @@ -0,0 +1 @@ +CONFIG_MODULE_PM_LAYERED=y diff --git a/cpu/kinetis/periph/Kconfig b/cpu/kinetis/periph/Kconfig new file mode 100644 index 0000000000..cc80e1f9b1 --- /dev/null +++ b/cpu/kinetis/periph/Kconfig @@ -0,0 +1,33 @@ +# Copyright (c) 2021 HAW Hamburg +# +# 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. +# + +if TEST_KCONFIG + +config MODULE_PERIPH_WDOG + bool + help + Low-level WDOG driver. + +config MODULE_PERIPH_ICS + bool + depends on HAS_PERIPH_ICS + help + Kinetis internal clock source controller. + +config MODULE_PERIPH_MCG + bool + depends on HAS_PERIPH_MCG + help + Kinetis Multipurpose Clock Generator. + +config MODULE_PERIPH_MCG_LITE + bool + depends on HAS_PERIPH_MCG_LITE + help + Kinetis Multipurpose Clock Generator (Lite version). + +endif # TEST_KCONFIG diff --git a/drivers/fxos8700/Kconfig b/drivers/fxos8700/Kconfig index 5711572836..5f2aae68ed 100644 --- a/drivers/fxos8700/Kconfig +++ b/drivers/fxos8700/Kconfig @@ -13,6 +13,12 @@ config MODULE_FXOS8700 select MODULE_PERIPH_I2C select MODULE_XTIMER +config HAVE_FXOS8700 + bool + select MODULE_FXOS8700 if MODULE_SAUL_DEFAULT + help + Indicates that an fxos8700 accelerometer/magnetometer is present. + menuconfig KCONFIG_USEMODULE_FXOS8700 bool "Configure FXOS8700 driver" depends on USEMODULE_FXOS8700 diff --git a/drivers/hdc1000/Kconfig b/drivers/hdc1000/Kconfig index 236cabd086..185f6b3316 100644 --- a/drivers/hdc1000/Kconfig +++ b/drivers/hdc1000/Kconfig @@ -12,6 +12,12 @@ config MODULE_HDC1000 select MODULE_PERIPH_I2C select MODULE_XTIMER +config HAVE_HDC1000 + bool + select MODULE_HDC1000 if MODULE_SAUL_DEFAULT + help + Indicates that an hdc1000 humidity and temperature sensor is present. + menuconfig KCONFIG_USEMODULE_HDC1000 bool "Configure HDC1000 driver" depends on USEMODULE_HDC1000 diff --git a/drivers/lis3dh/Kconfig b/drivers/lis3dh/Kconfig index 749b39329b..2a95669df4 100644 --- a/drivers/lis3dh/Kconfig +++ b/drivers/lis3dh/Kconfig @@ -12,3 +12,9 @@ config MODULE_LIS3DH depends on TEST_KCONFIG select MODULE_PERIPH_GPIO select MODULE_PERIPH_SPI + +config HAVE_LIS3DH + bool + select MODULE_LIS3DH if MODULE_SAUL_DEFAULT + help + Indicates that a lis3dh accelerometer is present. diff --git a/drivers/mag3110/Kconfig b/drivers/mag3110/Kconfig index 484cf3b0e5..18ea141949 100644 --- a/drivers/mag3110/Kconfig +++ b/drivers/mag3110/Kconfig @@ -12,6 +12,12 @@ config MODULE_MAG3110 depends on TEST_KCONFIG select MODULE_PERIPH_I2C +config HAVE_MAG3110 + bool + select MODULE_MAG3110 if MODULE_SAUL_DEFAULT + help + Indicates that a mag3110 magnetometer is present. + menuconfig KCONFIG_USEMODULE_MAG3110 bool "Configure MAG3110 driver" depends on USEMODULE_MAG3110 diff --git a/drivers/mma8x5x/Kconfig b/drivers/mma8x5x/Kconfig index 2fd273523a..bcae9ef059 100644 --- a/drivers/mma8x5x/Kconfig +++ b/drivers/mma8x5x/Kconfig @@ -12,6 +12,12 @@ config MODULE_MMA8X5X depends on TEST_KCONFIG select MODULE_PERIPH_I2C +config HAVE_MMA8X5X + bool + select MODULE_MMA8X5X if MODULE_SAUL_DEFAULT + help + Indicates that an mma8x5x accelerometer is present. + menuconfig KCONFIG_USEMODULE_MMA8X5X bool "Configure MMA8X5X driver" depends on USEMODULE_MMA8X5X diff --git a/drivers/mpl3115a2/Kconfig b/drivers/mpl3115a2/Kconfig index 6424d7d60d..54a40040bc 100644 --- a/drivers/mpl3115a2/Kconfig +++ b/drivers/mpl3115a2/Kconfig @@ -10,3 +10,9 @@ config MODULE_MPL3115A2 depends on HAS_PERIPH_I2C depends on TEST_KCONFIG select MODULE_PERIPH_I2C + +config HAVE_MPL3115A2 + bool + select MODULE_MPL3115A2 if MODULE_SAUL_DEFAULT + help + Indicates that an mpl3115a2 pressure sensor is present. diff --git a/drivers/tcs37727/Kconfig b/drivers/tcs37727/Kconfig index 70e699d331..1bb61774d3 100644 --- a/drivers/tcs37727/Kconfig +++ b/drivers/tcs37727/Kconfig @@ -12,6 +12,12 @@ config MODULE_TCS37727 depends on TEST_KCONFIG select MODULE_PERIPH_I2C +config HAVE_TCS37727 + bool + select MODULE_TCS37727 if MODULE_SAUL_DEFAULT + help + Indicates that a tcs37727 rgb light sensor is present. + menuconfig KCONFIG_USEMODULE_TCS37727 bool "Configure TCS37727 driver" depends on USEMODULE_TCS37727 diff --git a/drivers/tmp00x/Kconfig b/drivers/tmp00x/Kconfig index 6f24023d4a..55905238b0 100644 --- a/drivers/tmp00x/Kconfig +++ b/drivers/tmp00x/Kconfig @@ -6,30 +6,45 @@ # directory for more details. # -if TEST_KCONFIG - -choice - bool "TMP006/TMP007 Infrared Thermopile sensors" - optional - depends on HAS_PERIPH_I2C - -config MODULE_TMP006 - bool "TMP006" - select MODULE_TMP00X - -config MODULE_TMP007 - bool "TMP007" - select MODULE_TMP00X - -endchoice - -config MODULE_TMP00X +menuconfig MODULE_TMP00X bool + prompt "TMP006/TMP007 Infrared Thermopile sensors" if !(HAVE_TMP00X && MODULE_SAUL_DEFAULT) + default y if (HAVE_TMP00X && MODULE_SAUL_DEFAULT) + depends on TEST_KCONFIG depends on HAS_PERIPH_I2C select MODULE_PERIPH_I2C select MODULE_XTIMER -endif # TEST_KCONFIG +choice + bool "Sensor variant" + default MODULE_TMP006 if HAVE_TMP006 + default MODULE_TMP007 if HAVE_TMP007 + depends on MODULE_TMP00X + +config MODULE_TMP006 + bool "TMP006" + +config MODULE_TMP007 + bool "TMP007" + +endchoice + +config HAVE_TMP006 + bool + select HAVE_TMP00X + help + Indicates that a tmp006 infrared sensor is present. + +config HAVE_TMP007 + bool + select HAVE_TMP00X + help + Indicates that a tmp007 infrared sensor is present. + +config HAVE_TMP00X + bool + help + Indicates that a tmp00x infrared sensor is present. menuconfig KCONFIG_USEMODULE_TMP00X bool "Configure TMP00X driver" diff --git a/makefiles/features_modules.inc.mk b/makefiles/features_modules.inc.mk index 0860a797f9..14b0c72705 100644 --- a/makefiles/features_modules.inc.mk +++ b/makefiles/features_modules.inc.mk @@ -17,6 +17,8 @@ ifneq (,$(filter periph_init, $(USEMODULE))) periph_flexcomm \ periph_gpio_mux \ periph_rtc_ms \ + periph_mcg \ + periph_wdog \ periph_rtc_rtt \ periph_clic \ periph_coretimer \ diff --git a/sys/Kconfig b/sys/Kconfig index 7e95f913ef..24e208eabe 100644 --- a/sys/Kconfig +++ b/sys/Kconfig @@ -28,6 +28,7 @@ rsource "event/Kconfig" rsource "fido2/Kconfig" rsource "fmt/Kconfig" rsource "frac/Kconfig" +rsource "fs/Kconfig" rsource "hashes/Kconfig" rsource "iolist/Kconfig" rsource "isrpipe/Kconfig" diff --git a/sys/fs/Kconfig b/sys/fs/Kconfig new file mode 100644 index 0000000000..f8c58f6b77 --- /dev/null +++ b/sys/fs/Kconfig @@ -0,0 +1,9 @@ +# Copyright (c) 2021 HAW Hamburg +# +# 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. +# + +rsource "constfs/Kconfig" +rsource "devfs/Kconfig" diff --git a/sys/fs/constfs/Kconfig b/sys/fs/constfs/Kconfig new file mode 100644 index 0000000000..546c6388d5 --- /dev/null +++ b/sys/fs/constfs/Kconfig @@ -0,0 +1,11 @@ +# Copyright (c) 2021 HAW Hamburg +# +# 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. +# + +config MODULE_CONSTFS + bool "ConstFS support" + help + ConstFS static file system. diff --git a/sys/fs/devfs/Kconfig b/sys/fs/devfs/Kconfig new file mode 100644 index 0000000000..ae980c8135 --- /dev/null +++ b/sys/fs/devfs/Kconfig @@ -0,0 +1,32 @@ +# Copyright (c) 2021 HAW Hamburg +# +# 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 MODULE_DEVFS + bool "DevFS support" + depends on MODULE_VFS + help + This file system implementation allows devices to register file names + for easier access to device drivers from shell commands etc. The idea is + similar to the /dev directory on Unix. + +if MODULE_DEVFS + +config MODULE_DEVFS_HWRNG + bool "Add HWRNG device" + depends on HAS_PERIPH_HWRNG + select MODULE_PERIPH_HWRNG + help + Adds the hardware random number generator (HWRNG) as a device + (/dev/hwrng). + +config MODULE_DEVFS_RANDOM + bool "Add random device" + select MODULE_RANDOM + help + Adds a device to generate random (/dev/urandom). + +endif # MODULE_DEVFS diff --git a/tests/driver_tmp00x/app.config.test b/tests/driver_tmp00x/app.config.test index c80016ae6b..d5334f04be 100644 --- a/tests/driver_tmp00x/app.config.test +++ b/tests/driver_tmp00x/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_TMP00X=y CONFIG_MODULE_TMP006=y CONFIG_MODULE_XTIMER=y