From eb89482a7565cf9eecac33fd711c63ea9933e770 Mon Sep 17 00:00:00 2001 From: Benjamin Valentin Date: Sun, 14 Feb 2021 00:30:25 +0100 Subject: [PATCH] cpu/nrf5x_common: make GPIO_PIN macro model independent We can use the `GPIO_COUNT` vendor macro to check if there is more than one GPIO port on nRF52. This is the case for nRF52840 and nRF52833. --- cpu/nrf5x_common/include/periph_cpu_common.h | 2 +- cpu/nrf5x_common/periph/gpio.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cpu/nrf5x_common/include/periph_cpu_common.h b/cpu/nrf5x_common/include/periph_cpu_common.h index 38db22ec80..eaa303981a 100644 --- a/cpu/nrf5x_common/include/periph_cpu_common.h +++ b/cpu/nrf5x_common/include/periph_cpu_common.h @@ -46,7 +46,7 @@ extern "C" { * * The port definition is used (and zeroed) to suppress compiler warnings */ -#if !defined(CPU_MODEL_NRF52832XXAA) && !defined(CPU_FAM_NRF51) +#if GPIO_COUNT > 1 #define GPIO_PIN(x,y) ((x << 5) | y) #else #define GPIO_PIN(x,y) ((x & 0) | y) diff --git a/cpu/nrf5x_common/periph/gpio.c b/cpu/nrf5x_common/periph/gpio.c index a838854a18..f8262dad5c 100644 --- a/cpu/nrf5x_common/periph/gpio.c +++ b/cpu/nrf5x_common/periph/gpio.c @@ -86,7 +86,7 @@ static inline NRF_GPIO_Type *port(gpio_t pin) */ static inline int pin_num(gpio_t pin) { -#if !defined(CPU_MODEL_NRF52832XXAA) && !defined(CPU_FAM_NRF51) +#if GPIO_COUNT > 1 return (pin & PIN_MASK); #else return (int)pin; @@ -184,7 +184,7 @@ int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank, /* configure the GPIOTE channel: set even mode, pin and active flank */ NRF_GPIOTE->CONFIG[_pin_index] = (GPIOTE_CONFIG_MODE_Event | (pin_num(pin) << GPIOTE_CONFIG_PSEL_Pos) | -#if !defined(CPU_MODEL_NRF52832XXAA) && !defined(CPU_FAM_NRF51) +#if GPIO_COUNT > 1 ((pin & PORT_BIT) << 8) | #endif (flank << GPIOTE_CONFIG_POLARITY_Pos));