diff --git a/cpu/nrf51/include/cpu_conf.h b/cpu/nrf51/include/cpu_conf.h index c5177ecf03..ac874fe40d 100644 --- a/cpu/nrf51/include/cpu_conf.h +++ b/cpu/nrf51/include/cpu_conf.h @@ -57,6 +57,11 @@ extern "C" { #define FLASHPAGE_WRITE_BLOCK_ALIGNMENT (4U) /** @} */ +/** + * @brief nRF51 only has one GPIO block + */ +#define GPIO_COUNT (1U) + /** * @brief Due to RAM restrictions, we need to limit the default GNRC packet * buffer size on these CPUs 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));