Merge pull request #16005 from benpicco/cpu/nrf52_gpio_count
cpu/nrf5x_common: make GPIO_PIN macro model independent
This commit is contained in:
commit
bcb23da368
@ -57,6 +57,11 @@ extern "C" {
|
|||||||
#define FLASHPAGE_WRITE_BLOCK_ALIGNMENT (4U)
|
#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
|
* @brief Due to RAM restrictions, we need to limit the default GNRC packet
|
||||||
* buffer size on these CPUs
|
* buffer size on these CPUs
|
||||||
|
|||||||
@ -46,7 +46,7 @@ extern "C" {
|
|||||||
*
|
*
|
||||||
* The port definition is used (and zeroed) to suppress compiler warnings
|
* 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)
|
#define GPIO_PIN(x,y) ((x << 5) | y)
|
||||||
#else
|
#else
|
||||||
#define GPIO_PIN(x,y) ((x & 0) | y)
|
#define GPIO_PIN(x,y) ((x & 0) | y)
|
||||||
|
|||||||
@ -86,7 +86,7 @@ static inline NRF_GPIO_Type *port(gpio_t pin)
|
|||||||
*/
|
*/
|
||||||
static inline int pin_num(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);
|
return (pin & PIN_MASK);
|
||||||
#else
|
#else
|
||||||
return (int)pin;
|
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 */
|
/* configure the GPIOTE channel: set even mode, pin and active flank */
|
||||||
NRF_GPIOTE->CONFIG[_pin_index] = (GPIOTE_CONFIG_MODE_Event |
|
NRF_GPIOTE->CONFIG[_pin_index] = (GPIOTE_CONFIG_MODE_Event |
|
||||||
(pin_num(pin) << GPIOTE_CONFIG_PSEL_Pos) |
|
(pin_num(pin) << GPIOTE_CONFIG_PSEL_Pos) |
|
||||||
#if !defined(CPU_MODEL_NRF52832XXAA) && !defined(CPU_FAM_NRF51)
|
#if GPIO_COUNT > 1
|
||||||
((pin & PORT_BIT) << 8) |
|
((pin & PORT_BIT) << 8) |
|
||||||
#endif
|
#endif
|
||||||
(flank << GPIOTE_CONFIG_POLARITY_Pos));
|
(flank << GPIOTE_CONFIG_POLARITY_Pos));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user