Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cpu/avr8: model kconfig #16929

Merged
merged 26 commits into from
Nov 23, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
b534f26
cpu/avr8_common: model Kconfig
leandrolanzieri Sep 30, 2021
b8e2e3c
cpu/atmega_common: model Kconfig
leandrolanzieri Sep 30, 2021
a37f59b
cpu/atxmega: model Kconfig
leandrolanzieri Sep 30, 2021
659d3f9
cpu: model atmega-based CPUs Kconfig
leandrolanzieri Sep 30, 2021
45b6116
sys/cxx_ctor_guards: model Kconfig
leandrolanzieri Sep 30, 2021
3854db3
sys/stdio/kconfig: associate symbol to implementation
leandrolanzieri Sep 30, 2021
39ebbfd
makefile.include: add RIOTKCONFIG
leandrolanzieri Nov 3, 2021
5383278
sys/{x,z}timer: add file to use ztimer when xtimer is present
leandrolanzieri Nov 2, 2021
e5164ca
boards/common/{atmega,atxmega,arduino-atmega}: model Kconfig
leandrolanzieri Sep 30, 2021
f684ecf
boards: model avr-based boards Kconfig
leandrolanzieri Sep 30, 2021
347fb25
drivers/at24mac: add Kconfig feature
leandrolanzieri Sep 30, 2021
7c56300
drivers/bmx280: refactor Kconfig model
leandrolanzieri Sep 30, 2021
e678919
drivers/at24mac/Kconfig: enable as EUI provider when present
leandrolanzieri Oct 1, 2021
0a19e58
driver/at30tse75x/Kconfig: enable as default sensor when present
leandrolanzieri Oct 1, 2021
3fc6d42
.murdock: add subset of avr-boards for Kconfig test
leandrolanzieri Oct 1, 2021
8456814
cpu/atmega_common: move PCINT documentation from boards
leandrolanzieri Oct 4, 2021
92b7e5e
cpu/atxmega: fix dependency
leandrolanzieri Nov 1, 2021
e525e23
drivers/dfplayer: add no_strerror option to Kconfig
leandrolanzieri Nov 11, 2021
3bdbd67
tests/driver_ili9341: add NO_RIOT_IMAGE option to Kconfig
leandrolanzieri Nov 11, 2021
7036388
drivers/periph_common: add RTC ms module to Kconfig
leandrolanzieri Nov 11, 2021
584052e
pkg/libfixmath: add compile options to Kconfig
leandrolanzieri Nov 12, 2021
6769101
sys/arduino: add pseudomodule for the arduino_pwm feature
leandrolanzieri Nov 12, 2021
37b0e30
pkg/qdsa: use pseudomodules to select implementation
leandrolanzieri Nov 12, 2021
27a62ef
sys/arduino/kconfig: do not imply arduino_pwm
leandrolanzieri Nov 12, 2021
5abe003
pkg/nanocbor/kconfig: remove architecture dependency
leandrolanzieri Nov 18, 2021
43c567a
sys/shell/commands/sc_dfplayer: make cppcheck happy
leandrolanzieri Nov 19, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .murdock
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,19 @@
: ${TEST_BOARDS_LLVM_COMPILE:=""}

: ${TEST_KCONFIG_BOARDS_AVAILABLE:="
arduino-leonardo
arduino-mega2560
arduino-nano
atxmega-a1-xplained
atxmega-a3bu-xplained
avr-rss2
cc1352-launchpad
cc2650-launchpad
derfmega128
dwm1001
hifive1
mbed_lpc1768
mega-xplained
native
nrf52840dk
nucleo-f072rb
Expand All @@ -34,6 +42,7 @@ seeedstudio-gd32
slstk3400a
sltb001a
slwstk6220a
waspmote-pro
"}

: ${TEST_KCONFIG_ENFORCE_APP_GROUPS:="
Expand Down
1 change: 1 addition & 0 deletions Makefile.include
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ RIOTCPU ?= $(RIOTBASE)/cpu
RIOTBOARD ?= $(RIOTBASE)/boards
EXTERNAL_BOARD_DIRS ?=
RIOTMAKE ?= $(RIOTBASE)/makefiles
RIOTKCONFIG ?= $(RIOTBASE)/kconfigs
RIOTPKG ?= $(RIOTBASE)/pkg
RIOTTOOLS ?= $(RIOTBASE)/dist/tools
RIOTPROJECT ?= $(shell git rev-parse --show-toplevel 2>/dev/null || pwd)
Expand Down
1 change: 1 addition & 0 deletions boards/arduino-duemilanove/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ config BOARD_ARDUINO_DUEMILANOVE
default y
select BOARD_COMMON_ARDUINO_ATMEGA
select CPU_MODEL_ATMEGA328P
select MODULE_BOARDS_COMMON_ARDUINO-ATMEGA if TEST_KCONFIG

config BOARD
default "arduino-duemilanove" if BOARD_ARDUINO_DUEMILANOVE
Expand Down
1 change: 1 addition & 0 deletions boards/arduino-leonardo/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@ config BOARD_ARDUINO_LEONARDO
default y
select BOARD_COMMON_ARDUINO_ATMEGA
select CPU_MODEL_ATMEGA32U4
select MODULE_BOARDS_COMMON_ARDUINO-ATMEGA if TEST_KCONFIG

source "$(RIOTBOARD)/common/arduino-atmega/Kconfig"
1 change: 1 addition & 0 deletions boards/arduino-mega2560/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@ config BOARD_ARDUINO_MEGA2560
default y
select CPU_MODEL_ATMEGA2560
select BOARD_COMMON_ARDUINO_ATMEGA
select MODULE_BOARDS_COMMON_ARDUINO-ATMEGA if TEST_KCONFIG

source "$(RIOTBOARD)/common/arduino-atmega/Kconfig"
1 change: 1 addition & 0 deletions boards/arduino-nano/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ config BOARD_ARDUINO_NANO
default y
select BOARD_COMMON_ARDUINO_ATMEGA
select CPU_MODEL_ATMEGA328P
select MODULE_BOARDS_COMMON_ARDUINO-ATMEGA if TEST_KCONFIG

config BOARD
default "arduino-nano" if BOARD_ARDUINO_NANO
Expand Down
1 change: 1 addition & 0 deletions boards/arduino-uno/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ config BOARD_ARDUINO_UNO
default y
select CPU_MODEL_ATMEGA328P
select BOARD_COMMON_ARDUINO_ATMEGA
select MODULE_BOARDS_COMMON_ARDUINO-ATMEGA if TEST_KCONFIG

config BOARD
default "arduino-uno" if BOARD_ARDUINO_UNO
Expand Down
4 changes: 4 additions & 0 deletions boards/atmega1284p/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,7 @@ config BOARD_ATMEGA1284P
select HAS_PERIPH_SPI
select HAS_PERIPH_TIMER
select HAS_PERIPH_UART

select MODULE_BOARDS_COMMON_ATMEGA if TEST_KCONFIG

source "$(RIOTBOARD)/common/atmega/Kconfig"
6 changes: 6 additions & 0 deletions boards/atmega256rfr2-xpro/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,9 @@ config BOARD_ATMEGA256RFR2_XPRO
select HAS_PERIPH_SPI
select HAS_PERIPH_TIMER
select HAS_PERIPH_UART

select HAVE_SAUL_GPIO
select HAVE_AT30TSE75X
select MODULE_BOARDS_COMMON_ATMEGA if TEST_KCONFIG

source "$(RIOTBOARD)/common/atmega/Kconfig"
3 changes: 3 additions & 0 deletions boards/atmega328p-xplained-mini/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,6 @@ config BOARD_ATMEGA328P_XPLAINED_MINI
select HAS_PERIPH_TIMER
select HAS_PERIPH_UART
# Various other features (if any)
select MODULE_BOARDS_COMMON_ATMEGA if TEST_KCONFIG

source "$(RIOTBOARD)/common/atmega/Kconfig"
3 changes: 3 additions & 0 deletions boards/atmega328p/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,6 @@ config BOARD_ATMEGA328P
select HAS_PERIPH_TIMER
select HAS_PERIPH_UART
# Various other features (if any)
select MODULE_BOARDS_COMMON_ATMEGA if TEST_KCONFIG

source "$(RIOTBOARD)/common/atmega/Kconfig"
3 changes: 3 additions & 0 deletions boards/atxmega-a1-xplained/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ config BOARD_ATXMEGA_A1_XPLAINED
select HAS_PERIPH_UART

select HAVE_SAUL_GPIO
select MODULE_BOARDS_COMMON_ATXMEGA if TEST_KCONFIG

source "$(RIOTBOARD)/common/atxmega/Kconfig"
3 changes: 3 additions & 0 deletions boards/atxmega-a1u-xpro/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ config BOARD_ATXMEGA_A1U_XPRO
select HAS_PERIPH_UART

select HAVE_SAUL_GPIO
select MODULE_BOARDS_COMMON_ATXMEGA if TEST_KCONFIG

source "$(RIOTBOARD)/common/atxmega/Kconfig"
3 changes: 3 additions & 0 deletions boards/atxmega-a3bu-xplained/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ config BOARD_ATXMEGA_A3BU_XPLAINED
select HAS_PERIPH_UART

select HAVE_SAUL_GPIO
select MODULE_BOARDS_COMMON_ATXMEGA if TEST_KCONFIG

source "$(RIOTBOARD)/common/atxmega/Kconfig"
9 changes: 9 additions & 0 deletions boards/avr-rss2/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,12 @@ config BOARD_AVR_RSS2
select HAS_PERIPH_SPI
select HAS_PERIPH_TIMER
select HAS_PERIPH_UART

select MODULE_BOARDS_COMMON_ATMEGA if TEST_KCONFIG
select MODULE_ATMEGA_PCINT0 if TEST_KCONFIG
select HAVE_SAUL_GPIO
select HAVE_BME280_I2C
select HAVE_AT24MAC


source "$(RIOTBOARD)/common/atmega/Kconfig"
11 changes: 11 additions & 0 deletions boards/common/arduino-atmega/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,14 @@ config BOARD_COMMON_ARDUINO_ATMEGA
# Various other features (if any)
select HAS_ARDUINO
select HAS_ARDUINO_PWM

select HAVE_SAUL_GPIO

config MODULE_BOARDS_COMMON_ARDUINO-ATMEGA
bool
depends on TEST_KCONFIG
select MODULE_BOARDS_COMMON_ATMEGA
help
Common code of Arduino ATmega boards.

source "$(RIOTBOARD)/common/atmega/Kconfig"
12 changes: 12 additions & 0 deletions boards/common/atmega/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# 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_BOARDS_COMMON_ATMEGA
bool
depends on TEST_KCONFIG
help
Common code of ATmega boards.
20 changes: 4 additions & 16 deletions boards/common/atmega/doc.txt
Original file line number Diff line number Diff line change
@@ -1,17 +1,5 @@
/**
@defgroup boards_common_atmega ATmega common
@ingroup boards
@brief Shared files and configuration for ATmega-based boards

### Pin Change Interrupts

Pin Change Interrupts (PCINTs) can be enabled using pseudo modules. To provide
a low-memory overhead implementation, the PCINTs are grouped into **banks**.
Each banks corresponds to one PCINT on the ATmega (PCINT0, ..., PCINT3).

To enable only a specific bank, simply add `USEMODULE += atmega_pcintN` to your
Makefile. To enable all interrupts you can use `USEMODULE += atmega_pcint`.

In case you want to add a new CPU, simply provide an `atmega_pcint.h` with your
CPU and adapt your Makefile.dep and Makefile.features files.
*/
* @defgroup boards_common_atmega ATmega common
* @ingroup boards
* @brief Shared files and configuration for ATmega-based boards
*/
12 changes: 12 additions & 0 deletions boards/common/atxmega/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# 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_BOARDS_COMMON_ATXMEGA
bool
depends on TEST_KCONFIG
help
Common ATXmega boards code.
4 changes: 4 additions & 0 deletions boards/derfmega128/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,7 @@ config BOARD_DERFMEGA128
select HAS_PERIPH_SPI
select HAS_PERIPH_TIMER
select HAS_PERIPH_UART

select MODULE_BOARDS_COMMON_ATMEGA if TEST_KCONFIG

source "$(RIOTBOARD)/common/atmega/Kconfig"
5 changes: 5 additions & 0 deletions boards/derfmega256/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,8 @@ config BOARD_DERFMEGA256
select HAS_PERIPH_SPI
select HAS_PERIPH_TIMER
select HAS_PERIPH_UART

select MODULE_BOARDS_COMMON_ATMEGA if TEST_KCONFIG
select MODULE_PERIPH_EEPROM if MODULE_EUI_PROVIDER && HAS_PERIPH_EEPROM

source "$(RIOTBOARD)/common/atmega/Kconfig"
6 changes: 6 additions & 0 deletions boards/mega-xplained/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,9 @@ config BOARD_MEGA_XPLAINED
select HAS_PERIPH_SPI
select HAS_PERIPH_TIMER
select HAS_PERIPH_UART

select MODULE_BOARDS_COMMON_ATMEGA if TEST_KCONFIG
select HAVE_SAUL_ADC
select HAVE_SAUL_GPIO

source "$(RIOTBOARD)/common/atmega/Kconfig"
4 changes: 4 additions & 0 deletions boards/microduino-corerf/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,7 @@ config BOARD_MICRODUINO_CORERF
select HAS_PERIPH_SPI
select HAS_PERIPH_TIMER
select HAS_PERIPH_UART

select MODULE_BOARDS_COMMON_ATMEGA if TEST_KCONFIG

source "$(RIOTBOARD)/common/atmega/Kconfig"
2 changes: 2 additions & 0 deletions boards/waspmote-pro/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,5 @@ config BOARD_WASPMOTE_PRO
select HAS_PERIPH_TIMER
select HAS_PERIPH_UART
select HAS_ARDUINO

source "$(RIOTKCONFIG)/Kconfig.ztimer_only"
6 changes: 6 additions & 0 deletions boards/zigduino/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,9 @@ config BOARD_ZIGDUINO
select HAS_PERIPH_SPI
select HAS_PERIPH_TIMER
select HAS_PERIPH_UART

select MODULE_BOARDS_COMMON_ATMEGA if TEST_KCONFIG
select HAVE_SAUL_ADC
select HAVE_SAUL_GPIO

source "$(RIOTBOARD)/common/atmega/Kconfig"
30 changes: 9 additions & 21 deletions cpu/atmega_common/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -37,29 +37,17 @@ config CPU_FAM_ATMEGA128
config CPU_FAM
default "atmega128" if CPU_FAM_ATMEGA128

## Declaration of specific features
config HAS_ATMEGA_PCINT0
bool
help
Indicates that the Pin Change Interrupt bank 0 is present.

config HAS_ATMEGA_PCINT1
bool
help
Indicates that the Pin Change Interrupt bank 1 is present.

config HAS_ATMEGA_PCINT2
bool
help
Indicates that the Pin Change Interrupt bank 2 is present.

config HAS_ATMEGA_PCINT3
bool
help
Indicates that the Pin Change Interrupt bank 3 is present.

config ERROR_MODULES_CONFLICT
default "On ATmega, the RTC and RTT use to the same hardware timer." if MODULE_PERIPH_RTC && MODULE_PERIPH_RTT
depends on CPU_COMMON_ATMEGA

config MODULE_ATMEGA_COMMON
bool
depends on CPU_COMMON_ATMEGA
depends on TEST_KCONFIG
default y
help
ATmega common code.

rsource "periph/Kconfig"
source "$(RIOTCPU)/avr8_common/Kconfig"
12 changes: 12 additions & 0 deletions cpu/atmega_common/doc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,16 @@
* @defgroup cpu_atmega_common Atmel ATmega CPU: common files
* @brief AVR Atmega specific code
* @ingroup cpu
*
* ### Pin Change Interrupts
*
* Pin Change Interrupts (PCINTs) can be enabled using pseudo modules. To provide
* a low-memory overhead implementation, the PCINTs are grouped into **banks**.
* Each banks corresponds to one PCINT on the ATmega (PCINT0, ..., PCINT3).
*
* To enable only a specific bank, simply add `USEMODULE += atmega_pcintN` to your
* Makefile. To enable all interrupts you can use `USEMODULE += atmega_pcint`.
*
* In case you want to add a new CPU, simply provide an `atmega_pcint.h` with your
* CPU and adapt your Makefile.dep and Makefile.features files.
*/
71 changes: 71 additions & 0 deletions cpu/atmega_common/periph/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# 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 && CPU_COMMON_ATMEGA

config MODULE_ATMEGA_COMMON_PERIPH
bool
default y
help
Common ATmega peripheral drivers.

config MODULE_ATMEGA_PCINT
bool
depends on HAS_ATMEGA_PCINT0 || HAS_ATMEGA_PCINT1 || HAS_ATMEGA_PCINT2 || HAS_ATMEGA_PCINT3
help
Say y to enable all the present Pin Change Interrupt banks.

config MODULE_ATMEGA_PCINT0
bool
depends on HAS_ATMEGA_PCINT0
default MODULE_ATMEGA_PCINT
maribu marked this conversation as resolved.
Show resolved Hide resolved
help
Say y to enable PIC bank 0.

config MODULE_ATMEGA_PCINT1
bool
depends on HAS_ATMEGA_PCINT1
default MODULE_ATMEGA_PCINT
help
Say y to enable PIC bank 1.

config MODULE_ATMEGA_PCINT2
bool
depends on HAS_ATMEGA_PCINT2
default MODULE_ATMEGA_PCINT
help
Say y to enable PIC bank 2.

config MODULE_ATMEGA_PCINT3
bool
depends on HAS_ATMEGA_PCINT3
default MODULE_ATMEGA_PCINT
help
Say y to enable PIC bank 3.

endif # TEST_KCONFIG && CPU_COMMON_ATMEGA

## Declaration of specific features
config HAS_ATMEGA_PCINT0
bool
help
Indicates that the Pin Change Interrupt bank 0 is present.

config HAS_ATMEGA_PCINT1
bool
help
Indicates that the Pin Change Interrupt bank 1 is present.

config HAS_ATMEGA_PCINT2
bool
help
Indicates that the Pin Change Interrupt bank 2 is present.

config HAS_ATMEGA_PCINT3
bool
help
Indicates that the Pin Change Interrupt bank 3 is present.
7 changes: 2 additions & 5 deletions cpu/atxmega/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,11 @@ source "$(RIOTCPU)/atxmega/Kconfig.XMEGAE"
config HAS_CPU_ATXMEGA
bool

config HAS_ATXMEGA_EBI
bool
help
Indicates that the External Bus Interface is present.

config HAS_PERIPH_NVM
bool
help
Indicates that the Non Volatile Memory controller is present.

rsource "ebi/Kconfig"
rsource "periph/Kconfig"
source "$(RIOTCPU)/avr8_common/Kconfig"
Loading