From 14d986d25d2cbd821a43b0273681a92e17e1f266 Mon Sep 17 00:00:00 2001 From: Leandro Lanzieri Date: Wed, 8 Dec 2021 11:40:06 +0100 Subject: [PATCH 01/10] drivers: add Kconfig hardware feature to various drivers - fxos8700 - hdc1000 - pir - pulse_counter --- drivers/fxos8700/Kconfig | 2 +- drivers/hdc1000/Kconfig | 2 +- drivers/pir/Kconfig | 6 ++++++ drivers/pulse_counter/Kconfig | 6 ++++++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/fxos8700/Kconfig b/drivers/fxos8700/Kconfig index 5f2aae68ed..21d6375db6 100644 --- a/drivers/fxos8700/Kconfig +++ b/drivers/fxos8700/Kconfig @@ -17,7 +17,7 @@ config HAVE_FXOS8700 bool select MODULE_FXOS8700 if MODULE_SAUL_DEFAULT help - Indicates that an fxos8700 accelerometer/magnetometer is present. + Indicates that a FXOS8700 accelerometer/magnetometer is present. menuconfig KCONFIG_USEMODULE_FXOS8700 bool "Configure FXOS8700 driver" diff --git a/drivers/hdc1000/Kconfig b/drivers/hdc1000/Kconfig index 185f6b3316..7bf0c19a41 100644 --- a/drivers/hdc1000/Kconfig +++ b/drivers/hdc1000/Kconfig @@ -16,7 +16,7 @@ config HAVE_HDC1000 bool select MODULE_HDC1000 if MODULE_SAUL_DEFAULT help - Indicates that an hdc1000 humidity and temperature sensor is present. + Indicates that a HDC1000 humidity and temperature sensor is present. menuconfig KCONFIG_USEMODULE_HDC1000 bool "Configure HDC1000 driver" diff --git a/drivers/pir/Kconfig b/drivers/pir/Kconfig index fa7868fe47..fd43da5e80 100644 --- a/drivers/pir/Kconfig +++ b/drivers/pir/Kconfig @@ -13,3 +13,9 @@ config MODULE_PIR select MODULE_PERIPH_GPIO select MODULE_PERIPH_GPIO_IRQ select MODULE_XTIMER + +config HAVE_PIR + bool + select MODULE_PIR if MODULE_SAUL_DEFAULT + help + Indicates that a pir motion sensor is present. diff --git a/drivers/pulse_counter/Kconfig b/drivers/pulse_counter/Kconfig index 27f0422809..0209580088 100644 --- a/drivers/pulse_counter/Kconfig +++ b/drivers/pulse_counter/Kconfig @@ -12,3 +12,9 @@ config MODULE_PULSE_COUNTER depends on TEST_KCONFIG select MODULE_PERIPH_GPIO select MODULE_PERIPH_GPIO_IRQ + +config HAVE_PULSE_COUNTER + bool + select MODULE_PULSE_COUNTER if MODULE_SAUL_DEFAULT + help + Indicates that a pulse counter is present. From d249fc5ba76626c1dbb52f1ee33eb2c129edc468 Mon Sep 17 00:00:00 2001 From: Leandro Lanzieri Date: Wed, 8 Dec 2021 11:41:19 +0100 Subject: [PATCH 02/10] boards/common/samdx1-arduino-bootloader: model Kconfig --- boards/common/samdx1-arduino-bootloader/Kconfig | 1 + .../samdx1-arduino-bootloader/samdx1-arduino-bootloader.config | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 boards/common/samdx1-arduino-bootloader/samdx1-arduino-bootloader.config diff --git a/boards/common/samdx1-arduino-bootloader/Kconfig b/boards/common/samdx1-arduino-bootloader/Kconfig index 15eee855cf..154f1cf6f8 100644 --- a/boards/common/samdx1-arduino-bootloader/Kconfig +++ b/boards/common/samdx1-arduino-bootloader/Kconfig @@ -7,6 +7,7 @@ config MODULE_BOARDS_COMMON_SAMDX1-ARDUINO-BOOTLOADER bool default y if MODULE_STDIO_CDC_ACM + imply MODULE_USB_BOARD_RESET depends on TEST_KCONFIG help Common code of samdx1 boards with an arduino bootloader diff --git a/boards/common/samdx1-arduino-bootloader/samdx1-arduino-bootloader.config b/boards/common/samdx1-arduino-bootloader/samdx1-arduino-bootloader.config new file mode 100644 index 0000000000..7699f35a5c --- /dev/null +++ b/boards/common/samdx1-arduino-bootloader/samdx1-arduino-bootloader.config @@ -0,0 +1,3 @@ +CONFIG_MODULE_USBUS=y +CONFIG_MODULE_USBUS_CDC_ACM=y +CONFIG_MODULE_STDIO_CDC_ACM=y From 7fe6eba806fdf0bc04360e6cd2882be076f007f9 Mon Sep 17 00:00:00 2001 From: Leandro Lanzieri Date: Wed, 8 Dec 2021 11:41:40 +0100 Subject: [PATCH 03/10] boards/common/arduino-mkr: model Kconfig --- boards/common/arduino-mkr/Kconfig | 10 ++++++++++ boards/common/arduino-mkr/Makefile.features | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/boards/common/arduino-mkr/Kconfig b/boards/common/arduino-mkr/Kconfig index e9f9185348..5a4d2df3cb 100644 --- a/boards/common/arduino-mkr/Kconfig +++ b/boards/common/arduino-mkr/Kconfig @@ -19,3 +19,13 @@ config BOARD_COMMON_ARDUINO_MKR select HAS_ARDUINO select HAS_ARDUINO_PWM select HAS_HIGHLEVEL_STDIO + + select HAVE_SAUL_GPIO + +config MODULE_BOARDS_COMMON_ARDUINO-MKR + bool + depends on TEST_KCONFIG + help + Common code for arduino-mkr type of boards. + +source "$(RIOTBOARD)/common/samdx1-arduino-bootloader/Kconfig" diff --git a/boards/common/arduino-mkr/Makefile.features b/boards/common/arduino-mkr/Makefile.features index 9888bd0a69..d5fcd38821 100644 --- a/boards/common/arduino-mkr/Makefile.features +++ b/boards/common/arduino-mkr/Makefile.features @@ -17,3 +17,9 @@ FEATURES_PROVIDED += periph_usbdev FEATURES_PROVIDED += arduino FEATURES_PROVIDED += arduino_pwm 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/samdx1-arduino-bootloader/samdx1-arduino-bootloader.config +endif From ea0039f7a06048dc14b6980d170cc3293ee58d29 Mon Sep 17 00:00:00 2001 From: Leandro Lanzieri Date: Wed, 8 Dec 2021 11:42:02 +0100 Subject: [PATCH 04/10] boards/common/arduino-zero: model Kconfig --- boards/common/arduino-zero/Kconfig | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/boards/common/arduino-zero/Kconfig b/boards/common/arduino-zero/Kconfig index 18e871bf7c..6392e0373c 100644 --- a/boards/common/arduino-zero/Kconfig +++ b/boards/common/arduino-zero/Kconfig @@ -18,3 +18,12 @@ config BOARD_COMMON_ARDUINO_ZERO select HAS_PERIPH_USBDEV select HAS_ARDUINO select HAS_ARDUINO_PWM + + select HAVE_SAUL_GPIO + +config MODULE_BOARDS_COMMON_ARDUINO_ZERO + bool + depends on TEST_KCONFIG + default y + help + Common code for arduino-zero type of boards. From 6ecbfe99f7344268503bb044f2dc80e1596e37e9 Mon Sep 17 00:00:00 2001 From: Leandro Lanzieri Date: Wed, 8 Dec 2021 11:42:21 +0100 Subject: [PATCH 05/10] boards/common/sodaq: model Kconfig --- boards/common/sodaq/Kconfig | 10 ++++++++++ boards/common/sodaq/Makefile.features | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/boards/common/sodaq/Kconfig b/boards/common/sodaq/Kconfig index 5199c476e7..bab0e89688 100644 --- a/boards/common/sodaq/Kconfig +++ b/boards/common/sodaq/Kconfig @@ -16,3 +16,13 @@ config BOARD_COMMON_SODAQ select HAS_PERIPH_USBDEV select HAS_ARDUINO select HAS_HIGHLEVEL_STDIO + + select HAVE_SAUL_GPIO + +config MODULE_BOARDS_COMMON_SODAQ + bool + depends on TEST_KCONFIG + help + Common code for Sodaq boards. + +source "$(RIOTBOARD)/common/samdx1-arduino-bootloader/Kconfig" diff --git a/boards/common/sodaq/Makefile.features b/boards/common/sodaq/Makefile.features index 4f6613e8d7..b4d487327d 100644 --- a/boards/common/sodaq/Makefile.features +++ b/boards/common/sodaq/Makefile.features @@ -13,3 +13,9 @@ FEATURES_PROVIDED += periph_usbdev # Various other features (if any) FEATURES_PROVIDED += arduino 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/samdx1-arduino-bootloader/samdx1-arduino-bootloader.config +endif From 8e7691e34d95c7f1e38357ad0359912c4f3777c7 Mon Sep 17 00:00:00 2001 From: Leandro Lanzieri Date: Wed, 8 Dec 2021 11:42:42 +0100 Subject: [PATCH 06/10] boards/samd21-based: model Kconfig --- boards/adafruit-itsybitsy-m4/Makefile.features | 2 +- boards/adafruit-itsybitsy-m4/adafruit-itsybitsy-m4.config | 4 ---- boards/arduino-mkr1000/Kconfig | 1 + boards/arduino-mkrfox1200/Kconfig | 1 + boards/arduino-mkrwan1300/Kconfig | 1 + boards/arduino-mkrzero/Kconfig | 1 + boards/arduino-nano-33-iot/Kconfig | 4 ++++ boards/arduino-nano-33-iot/Makefile.features | 6 ++++++ boards/feather-m0-lora/Kconfig | 4 ++++ boards/feather-m0-wifi/Kconfig | 4 ++++ boards/feather-m0/Kconfig | 4 ++++ boards/feather-m0/Makefile.features | 6 ++++++ boards/hamilton/Kconfig | 7 +++++++ boards/hamilton/Makefile.features | 6 ++++++ boards/hamilton/hamilton.config | 1 + boards/samd20-xpro/Kconfig | 2 ++ boards/samd21-xpro/Kconfig | 2 ++ boards/seeeduino_xiao/Kconfig | 4 ++++ boards/seeeduino_xiao/Makefile.features | 6 ++++++ boards/sensebox_samd21/Kconfig | 4 ++++ boards/sensebox_samd21/Makefile.features | 6 ++++++ boards/serpente/Kconfig | 5 +++++ boards/serpente/Makefile.features | 6 ++++++ boards/sodaq-autonomo/Kconfig | 1 + boards/sodaq-explorer/Kconfig | 1 + boards/wemos-zero/Kconfig | 1 + boards/wemos-zero/Makefile.features | 6 ++++++ 27 files changed, 91 insertions(+), 5 deletions(-) delete mode 100644 boards/adafruit-itsybitsy-m4/adafruit-itsybitsy-m4.config create mode 100644 boards/hamilton/hamilton.config diff --git a/boards/adafruit-itsybitsy-m4/Makefile.features b/boards/adafruit-itsybitsy-m4/Makefile.features index 057787eafb..ee75dabcbb 100644 --- a/boards/adafruit-itsybitsy-m4/Makefile.features +++ b/boards/adafruit-itsybitsy-m4/Makefile.features @@ -17,5 +17,5 @@ FEATURES_PROVIDED += periph_usbdev # This configuration enables modules that are only available when using Kconfig # module modelling ifeq (1, $(TEST_KCONFIG)) - KCONFIG_BOARD_CONFIG += $(BOARDDIR)/adafruit-itsybitsy-m4.config + KCONFIG_ADD_CONFIG += $(RIOTBOARD)/common/samdx1-arduino-bootloader/samdx1-arduino-bootloader.config endif diff --git a/boards/adafruit-itsybitsy-m4/adafruit-itsybitsy-m4.config b/boards/adafruit-itsybitsy-m4/adafruit-itsybitsy-m4.config deleted file mode 100644 index a3ee03b3ef..0000000000 --- a/boards/adafruit-itsybitsy-m4/adafruit-itsybitsy-m4.config +++ /dev/null @@ -1,4 +0,0 @@ -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/arduino-mkr1000/Kconfig b/boards/arduino-mkr1000/Kconfig index 4fb4b38a4d..749bb66ceb 100644 --- a/boards/arduino-mkr1000/Kconfig +++ b/boards/arduino-mkr1000/Kconfig @@ -11,5 +11,6 @@ config BOARD_ARDUINO_MKR1000 bool default y select BOARD_COMMON_ARDUINO_MKR + select MODULE_BOARDS_COMMON_ARDUINO-MKR if TEST_KCONFIG source "$(RIOTBOARD)/common/arduino-mkr/Kconfig" diff --git a/boards/arduino-mkrfox1200/Kconfig b/boards/arduino-mkrfox1200/Kconfig index 2c6d4af1dc..60feef0b05 100644 --- a/boards/arduino-mkrfox1200/Kconfig +++ b/boards/arduino-mkrfox1200/Kconfig @@ -11,5 +11,6 @@ config BOARD_ARDUINO_MKRFOX1200 bool default y select BOARD_COMMON_ARDUINO_MKR + select MODULE_BOARDS_COMMON_ARDUINO-MKR if TEST_KCONFIG source "$(RIOTBOARD)/common/arduino-mkr/Kconfig" diff --git a/boards/arduino-mkrwan1300/Kconfig b/boards/arduino-mkrwan1300/Kconfig index f9ea375ca8..19a1e3a58e 100644 --- a/boards/arduino-mkrwan1300/Kconfig +++ b/boards/arduino-mkrwan1300/Kconfig @@ -11,5 +11,6 @@ config BOARD_ARDUINO_MKRWAN1300 bool default y select BOARD_COMMON_ARDUINO_MKR + select MODULE_BOARDS_COMMON_ARDUINO-MKR if TEST_KCONFIG source "$(RIOTBOARD)/common/arduino-mkr/Kconfig" diff --git a/boards/arduino-mkrzero/Kconfig b/boards/arduino-mkrzero/Kconfig index 9b8abe36c0..5bec9fd481 100644 --- a/boards/arduino-mkrzero/Kconfig +++ b/boards/arduino-mkrzero/Kconfig @@ -11,5 +11,6 @@ config BOARD_ARDUINO_MKRZERO bool default y select BOARD_COMMON_ARDUINO_MKR + select MODULE_BOARDS_COMMON_ARDUINO-MKR if TEST_KCONFIG source "$(RIOTBOARD)/common/arduino-mkr/Kconfig" diff --git a/boards/arduino-nano-33-iot/Kconfig b/boards/arduino-nano-33-iot/Kconfig index 99ca1a5c31..71078bf1e0 100644 --- a/boards/arduino-nano-33-iot/Kconfig +++ b/boards/arduino-nano-33-iot/Kconfig @@ -21,3 +21,7 @@ config BOARD_ARDUINO_NANO_33_IOT select HAS_PERIPH_UART select HAS_PERIPH_USBDEV select HAS_HIGHLEVEL_STDIO + + select HAVE_SAUL_GPIO + +source "$(RIOTBOARD)/common/samdx1-arduino-bootloader/Kconfig" diff --git a/boards/arduino-nano-33-iot/Makefile.features b/boards/arduino-nano-33-iot/Makefile.features index c43f111ff1..514af71c57 100644 --- a/boards/arduino-nano-33-iot/Makefile.features +++ b/boards/arduino-nano-33-iot/Makefile.features @@ -14,3 +14,9 @@ FEATURES_PROVIDED += periph_usbdev # Put other features for this board (in alphabetical order) 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/samdx1-arduino-bootloader/samdx1-arduino-bootloader.config +endif diff --git a/boards/feather-m0-lora/Kconfig b/boards/feather-m0-lora/Kconfig index 9792f83790..95e83e8f2a 100644 --- a/boards/feather-m0-lora/Kconfig +++ b/boards/feather-m0-lora/Kconfig @@ -21,3 +21,7 @@ config BOARD_FEATHER_M0_LORA select HAS_PERIPH_UART select HAS_PERIPH_USBDEV select HAS_HIGHLEVEL_STDIO + + select HAVE_SAUL_GPIO + +source "$(RIOTBOARD)/common/samdx1-arduino-bootloader/Kconfig" diff --git a/boards/feather-m0-wifi/Kconfig b/boards/feather-m0-wifi/Kconfig index ba275b78a4..d7f3da2aa9 100644 --- a/boards/feather-m0-wifi/Kconfig +++ b/boards/feather-m0-wifi/Kconfig @@ -21,3 +21,7 @@ config BOARD_FEATHER_M0_WIFI select HAS_PERIPH_UART select HAS_PERIPH_USBDEV select HAS_HIGHLEVEL_STDIO + + select HAVE_SAUL_GPIO + +source "$(RIOTBOARD)/common/samdx1-arduino-bootloader/Kconfig" diff --git a/boards/feather-m0/Kconfig b/boards/feather-m0/Kconfig index cded0d326b..0f8ae3ecb4 100644 --- a/boards/feather-m0/Kconfig +++ b/boards/feather-m0/Kconfig @@ -21,3 +21,7 @@ config BOARD_FEATHER_M0 select HAS_PERIPH_UART select HAS_PERIPH_USBDEV select HAS_HIGHLEVEL_STDIO + + select HAVE_SAUL_GPIO + +source "$(RIOTBOARD)/common/samdx1-arduino-bootloader/Kconfig" diff --git a/boards/feather-m0/Makefile.features b/boards/feather-m0/Makefile.features index c43f111ff1..514af71c57 100644 --- a/boards/feather-m0/Makefile.features +++ b/boards/feather-m0/Makefile.features @@ -14,3 +14,9 @@ FEATURES_PROVIDED += periph_usbdev # Put other features for this board (in alphabetical order) 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/samdx1-arduino-bootloader/samdx1-arduino-bootloader.config +endif diff --git a/boards/hamilton/Kconfig b/boards/hamilton/Kconfig index 23cfa3c2cf..d141df4bc5 100644 --- a/boards/hamilton/Kconfig +++ b/boards/hamilton/Kconfig @@ -20,3 +20,10 @@ config BOARD_HAMILTON select HAS_PERIPH_RTT select HAS_PERIPH_SPI select HAS_PERIPH_TIMER + + select HAVE_FXOS8700 + select HAVE_HDC1000 + select HAVE_PIR + select HAVE_PULSE_COUNTER + select HAVE_SAUL_GPIO + select HAVE_TMP006 diff --git a/boards/hamilton/Makefile.features b/boards/hamilton/Makefile.features index d22e086b51..37ff3dfe0b 100644 --- a/boards/hamilton/Makefile.features +++ b/boards/hamilton/Makefile.features @@ -10,3 +10,9 @@ FEATURES_PROVIDED += periph_rtc FEATURES_PROVIDED += periph_rtt FEATURES_PROVIDED += periph_spi FEATURES_PROVIDED += periph_timer + +# This configuration enables modules that are only available when using Kconfig +# module modelling +ifeq (1, $(TEST_KCONFIG)) + KCONFIG_ADD_CONFIG += $(BOARDDIR)/hamilton.config +endif diff --git a/boards/hamilton/hamilton.config b/boards/hamilton/hamilton.config new file mode 100644 index 0000000000..9136c90eb6 --- /dev/null +++ b/boards/hamilton/hamilton.config @@ -0,0 +1 @@ +CONFIG_MODULE_STDIO_RTT=y diff --git a/boards/samd20-xpro/Kconfig b/boards/samd20-xpro/Kconfig index dd2f7cfa9b..3188ccca97 100644 --- a/boards/samd20-xpro/Kconfig +++ b/boards/samd20-xpro/Kconfig @@ -20,3 +20,5 @@ config BOARD_SAMD20_XPRO select HAS_PERIPH_SPI select HAS_PERIPH_TIMER select HAS_PERIPH_UART + + select HAVE_SAUL_GPIO diff --git a/boards/samd21-xpro/Kconfig b/boards/samd21-xpro/Kconfig index 50b500e2c1..7ea7509cb1 100644 --- a/boards/samd21-xpro/Kconfig +++ b/boards/samd21-xpro/Kconfig @@ -21,3 +21,5 @@ config BOARD_SAMD21_XPRO select HAS_PERIPH_TIMER select HAS_PERIPH_UART select HAS_PERIPH_USBDEV + + select HAVE_SAUL_GPIO diff --git a/boards/seeeduino_xiao/Kconfig b/boards/seeeduino_xiao/Kconfig index 9b66a45884..1cd76e60db 100644 --- a/boards/seeeduino_xiao/Kconfig +++ b/boards/seeeduino_xiao/Kconfig @@ -20,3 +20,7 @@ config BOARD_SEEEDUINO_XIAO select HAS_PERIPH_TIMER select HAS_PERIPH_UART select HAS_PERIPH_USBDEV + + select HAVE_SAUL_GPIO + +source "$(RIOTBOARD)/common/samdx1-arduino-bootloader/Kconfig" diff --git a/boards/seeeduino_xiao/Makefile.features b/boards/seeeduino_xiao/Makefile.features index 0cc841b65b..bc86e9670f 100644 --- a/boards/seeeduino_xiao/Makefile.features +++ b/boards/seeeduino_xiao/Makefile.features @@ -11,3 +11,9 @@ FEATURES_PROVIDED += periph_spi FEATURES_PROVIDED += periph_timer FEATURES_PROVIDED += periph_uart FEATURES_PROVIDED += periph_usbdev + +# This configuration enables modules that are only available when using Kconfig +# module modelling +ifeq (1, $(TEST_KCONFIG)) + KCONFIG_ADD_CONFIG += $(RIOTBOARD)/common/samdx1-arduino-bootloader/samdx1-arduino-bootloader.config +endif diff --git a/boards/sensebox_samd21/Kconfig b/boards/sensebox_samd21/Kconfig index 2f08f34387..d5965d20c2 100644 --- a/boards/sensebox_samd21/Kconfig +++ b/boards/sensebox_samd21/Kconfig @@ -20,3 +20,7 @@ config BOARD_SENSEBOX_SAMD21 select HAS_PERIPH_UART select HAS_PERIPH_USBDEV select HAS_HIGHLEVEL_STDIO + + select HAVE_SAUL_GPIO + +source "$(RIOTBOARD)/common/samdx1-arduino-bootloader/Kconfig" diff --git a/boards/sensebox_samd21/Makefile.features b/boards/sensebox_samd21/Makefile.features index 6eae3247bb..1d1fab2539 100644 --- a/boards/sensebox_samd21/Makefile.features +++ b/boards/sensebox_samd21/Makefile.features @@ -13,3 +13,9 @@ FEATURES_PROVIDED += periph_usbdev # Put other features for this board (in alphabetical order) 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/samdx1-arduino-bootloader/samdx1-arduino-bootloader.config +endif diff --git a/boards/serpente/Kconfig b/boards/serpente/Kconfig index bec12c8bdf..feed6f10f1 100644 --- a/boards/serpente/Kconfig +++ b/boards/serpente/Kconfig @@ -21,3 +21,8 @@ config BOARD_SERPENTE select HAS_PERIPH_TIMER select HAS_PERIPH_UART select HAS_PERIPH_USBDEV + + select HAVE_MTD_SPI_NOR + select HAVE_SAUL_PWM + +source "$(RIOTBOARD)/common/samdx1-arduino-bootloader/Kconfig" diff --git a/boards/serpente/Makefile.features b/boards/serpente/Makefile.features index ec13b2408e..11c23db01a 100644 --- a/boards/serpente/Makefile.features +++ b/boards/serpente/Makefile.features @@ -12,3 +12,9 @@ FEATURES_PROVIDED += periph_spi FEATURES_PROVIDED += periph_timer FEATURES_PROVIDED += periph_uart FEATURES_PROVIDED += periph_usbdev + +# This configuration enables modules that are only available when using Kconfig +# module modelling +ifeq (1, $(TEST_KCONFIG)) + KCONFIG_ADD_CONFIG += $(RIOTBOARD)/common/samdx1-arduino-bootloader/samdx1-arduino-bootloader.config +endif diff --git a/boards/sodaq-autonomo/Kconfig b/boards/sodaq-autonomo/Kconfig index cd5b660d74..dde48350c2 100644 --- a/boards/sodaq-autonomo/Kconfig +++ b/boards/sodaq-autonomo/Kconfig @@ -14,5 +14,6 @@ config BOARD_SODAQ_AUTONOMO select CPU_MODEL_SAMD21J18A select HAS_PERIPH_PWM select HAS_ARDUINO_PWM + select MODULE_BOARDS_COMMON_SODAQ if TEST_KCONFIG source "$(RIOTBOARD)/common/sodaq/Kconfig" diff --git a/boards/sodaq-explorer/Kconfig b/boards/sodaq-explorer/Kconfig index c84861b62d..1beb5546ed 100644 --- a/boards/sodaq-explorer/Kconfig +++ b/boards/sodaq-explorer/Kconfig @@ -12,5 +12,6 @@ config BOARD_SODAQ_EXPLORER default y select BOARD_COMMON_SODAQ select CPU_MODEL_SAMD21J18A + select MODULE_BOARDS_COMMON_SODAQ if TEST_KCONFIG source "$(RIOTBOARD)/common/sodaq/Kconfig" diff --git a/boards/wemos-zero/Kconfig b/boards/wemos-zero/Kconfig index 82ccc05f9f..fa9bf5fb6a 100644 --- a/boards/wemos-zero/Kconfig +++ b/boards/wemos-zero/Kconfig @@ -15,3 +15,4 @@ config BOARD_WEMOS_ZERO select HAS_HIGHLEVEL_STDIO source "$(RIOTBOARD)/common/arduino-zero/Kconfig" +source "$(RIOTBOARD)/common/samdx1-arduino-bootloader/Kconfig" diff --git a/boards/wemos-zero/Makefile.features b/boards/wemos-zero/Makefile.features index 2dbb57c787..d3731ea2e9 100644 --- a/boards/wemos-zero/Makefile.features +++ b/boards/wemos-zero/Makefile.features @@ -1,3 +1,9 @@ include $(RIOTBOARD)/common/arduino-zero/Makefile.features 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/samdx1-arduino-bootloader/samdx1-arduino-bootloader.config +endif From 359fdda249a9cc5731c801c31ce39a12a0baa45d Mon Sep 17 00:00:00 2001 From: Leandro Lanzieri Date: Wed, 8 Dec 2021 11:44:09 +0100 Subject: [PATCH 07/10] .murdock: add subset of samd21 boards to test Kconfig --- .murdock | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.murdock b/.murdock index 012bddb649..1d5781a24f 100755 --- a/.murdock +++ b/.murdock @@ -17,6 +17,7 @@ adafruit-itsybitsy-m4 arduino-due arduino-leonardo +arduino-mkrzero arduino-mega2560 arduino-nano atxmega-a1-xplained @@ -32,6 +33,7 @@ derfmega128 dwm1001 esp32-heltec-lora32-v2 esp8266-esp-12x +hamilton hifive1 mbed_lpc1768 mega-xplained From 8bcd7e53e80a118004524bf15ba143a114c6d854 Mon Sep 17 00:00:00 2001 From: Leandro Lanzieri Date: Thu, 9 Dec 2021 15:41:45 +0100 Subject: [PATCH 08/10] sys/arduino/kconfig: use periph_uart --- sys/arduino/Kconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/arduino/Kconfig b/sys/arduino/Kconfig index 7424271280..b277840975 100644 --- a/sys/arduino/Kconfig +++ b/sys/arduino/Kconfig @@ -15,9 +15,11 @@ menuconfig MODULE_ARDUINO imply MODULE_PERIPH_SPI depends on HAS_ARDUINO depends on HAS_PERIPH_GPIO + depends on HAS_PERIPH_UART depends on HAS_CPP depends on TEST_KCONFIG select MODULE_PERIPH_GPIO + select MODULE_PERIPH_UART select MODULE_CPP select MODULE_ARDUINO_SKETCHES select MODULE_FMT From 1dd3b38e6c367d475801801f31cc5165fdf845b6 Mon Sep 17 00:00:00 2001 From: Leandro Lanzieri Date: Thu, 9 Dec 2021 15:45:32 +0100 Subject: [PATCH 09/10] tests/periph_rtc/kconfig: do not use rtt on ztimer --- tests/periph_rtc/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/periph_rtc/Kconfig b/tests/periph_rtc/Kconfig index 28f35f69f8..aed0dbc6fe 100644 --- a/tests/periph_rtc/Kconfig +++ b/tests/periph_rtc/Kconfig @@ -10,3 +10,4 @@ config APPLICATION default y imply MODULE_PERIPH_RTC_MEM imply MODULE_PERIPH_RTC_MS + imply MODULE_ZTIMER_NO_PERIPH_RTT From 600acb756cf18a57ad88b4dd93e8fe9247f151be Mon Sep 17 00:00:00 2001 From: Francisco Molina Date: Tue, 14 Dec 2021 23:45:54 +0100 Subject: [PATCH 10/10] tests/periph_pm: select ztimer_no_periph_rtt for sam0 boards For sam0 there is a conflict between rtt and rtc, make resolves this based on feature conflicts and the feature to be included depends on dependency resolution. Kconfig can't rely on order of inclusion therefore ztimer_no_periph_rtt is implied to aboid ztimer_msec selecting rtt (its the case for BOARDs using stdio_rtt --- tests/periph_pm/Kconfig | 1 + tests/periph_pm/Makefile.board.dep | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 tests/periph_pm/Makefile.board.dep diff --git a/tests/periph_pm/Kconfig b/tests/periph_pm/Kconfig index 021a1e6040..7a0f8866e2 100644 --- a/tests/periph_pm/Kconfig +++ b/tests/periph_pm/Kconfig @@ -11,4 +11,5 @@ config APPLICATION imply MODULE_PERIPH_RTC imply MODULE_PERIPH_GPIO imply MODULE_PERIPH_GPIO_IRQ + imply MODULE_ZTIMER_NO_PERIPH_RTT if CPU_COMMON_SAM0 depends on TEST_KCONFIG diff --git a/tests/periph_pm/Makefile.board.dep b/tests/periph_pm/Makefile.board.dep new file mode 100644 index 0000000000..8427e579d4 --- /dev/null +++ b/tests/periph_pm/Makefile.board.dep @@ -0,0 +1,8 @@ +# For sam0 rtt conflicts with rtc, make will select only rtc because of +# order of inclusion, but to resolve in the same way as Kconfig this also +# selects ztimer_no_periph_rtt to select the same modules in Kconfig and make +ifneq (,$(filter-out sam3,$(filter sam%,$(CPU)))) + ifneq (,$(filter ztimer%,$(USEMODULE))) + USEMODULE += ztimer_no_periph_rtt + endif +endif