diff --git a/boards/atmega328p-xplained-mini/Kconfig b/boards/atmega328p-xplained-mini/Kconfig index ca8ba2ab14..7142eef135 100644 --- a/boards/atmega328p-xplained-mini/Kconfig +++ b/boards/atmega328p-xplained-mini/Kconfig @@ -1,5 +1,5 @@ # Copyright (c) 2020 HAW Hamburg -# Copyright (c) 2021 Gerson Fernando Budke +# Copyright (c) 2021-2023 Gerson Fernando Budke # # 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 @@ -21,7 +21,9 @@ config BOARD_ATMEGA328P_XPLAINED_MINI select HAS_PERIPH_SPI select HAS_PERIPH_TIMER select HAS_PERIPH_UART - # Various other features (if any) + + select HAVE_SAUL_GPIO select MODULE_BOARDS_COMMON_ATMEGA if TEST_KCONFIG + select MODULE_ATMEGA_PCINT0 if TEST_KCONFIG source "$(RIOTBOARD)/common/atmega/Kconfig" diff --git a/boards/atmega328p-xplained-mini/Makefile.dep b/boards/atmega328p-xplained-mini/Makefile.dep index 3d1c295b9b..a1b7040e40 100644 --- a/boards/atmega328p-xplained-mini/Makefile.dep +++ b/boards/atmega328p-xplained-mini/Makefile.dep @@ -1 +1,6 @@ USEMODULE += boards_common_atmega +USEMODULE += atmega_pcint0 + +ifneq (,$(filter saul_default,$(USEMODULE))) + USEMODULE += saul_gpio +endif diff --git a/boards/atmega328p-xplained-mini/include/board.h b/boards/atmega328p-xplained-mini/include/board.h index 9ae5b246a2..1848fd0c16 100644 --- a/boards/atmega328p-xplained-mini/include/board.h +++ b/boards/atmega328p-xplained-mini/include/board.h @@ -2,7 +2,7 @@ * Copyright (C) 2014 Freie Universität Berlin, Hinnerk van Bruinehsen * 2016 Laurent Navet * 2019 Otto-von-Guericke-Universität Magdeburg - * 2021 Gerson Fernando Budke + * 2021-2123 Gerson Fernando Budke * * 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 @@ -55,6 +55,27 @@ extern "C" { #define XTIMER_BACKOFF (40) /** @} */ +/** + * @name Macros for controlling the on-board LED + * @{ + */ +#define LED0_PIN GPIO_PIN(PORT_B, 5) +#define LED0_MODE GPIO_OUT +#define LED0_ENABLE_PORT DDRB |= LED0_PIN +#define LED0_ON PORTB |= LED0_PIN +#define LED0_OFF PORTB &= ~LED0_PIN +#define LED0_TOGGLE PORTB ^= LED0_PIN +/** @} */ + +/** + * @name Button pin configuration + * @{ + */ +#define BTN0_PIN GPIO_PIN(PORT_B, 7) +#define BTN0_MODE GPIO_IN_PU +#define BTN0_INT_FLANK GPIO_FALLING +/** @} */ + #ifdef __cplusplus } #endif diff --git a/boards/atmega328p-xplained-mini/include/gpio_params.h b/boards/atmega328p-xplained-mini/include/gpio_params.h new file mode 100644 index 0000000000..f2dedc9b1d --- /dev/null +++ b/boards/atmega328p-xplained-mini/include/gpio_params.h @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2023 Gerson Fernando Budke + * + * 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. + */ + +/** + * @ingroup boards_atmega328p_xplained_mini + * @{ + * + * @file + * @brief Configuration of SAUL mapped GPIO pins + * + * @author Gerson Fernando Budke + */ + +#ifndef GPIO_PARAMS_H +#define GPIO_PARAMS_H + +#include "board.h" +#include "saul/periph.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief GPIO configuration + */ +static const saul_gpio_params_t saul_gpio_params[] = +{ + { + .name = "BTN0 (SW0)", + .pin = BTN0_PIN, + .mode = BTN0_MODE, + .flags = SAUL_GPIO_INVERTED, + }, + { + .name = "LED0 (Yellow)", + .pin = LED0_PIN, + .mode = LED0_MODE, + .flags = (SAUL_GPIO_INIT_CLEAR), + }, +}; + +#ifdef __cplusplus +} +#endif + +#endif /* GPIO_PARAMS_H */ +/** @} */