diff --git a/boards/fox/include/board.h b/boards/fox/include/board.h
index f489bcbf4a1469e14d9b2c28ed0447161efea8e0..29bef23df5f2aa3edd1075ae8814a286204f650e 100644
--- a/boards/fox/include/board.h
+++ b/boards/fox/include/board.h
@@ -52,10 +52,10 @@ extern "C" {
  * @{
  */
 #define AT86RF231_SPI       SPI_0
-#define AT86RF231_CS        GPIO(PORT_A,1)
-#define AT86RF231_INT       GPIO(PORT_C,2)
-#define AT86RF231_RESET     GPIO(PORT_C,1)
-#define AT86RF231_SLEEP     GPIO(PORT_A,0)
+#define AT86RF231_CS        GPIO_PIN(PORT_A,1)
+#define AT86RF231_INT       GPIO_PIN(PORT_C,2)
+#define AT86RF231_RESET     GPIO_PIN(PORT_C,1)
+#define AT86RF231_SLEEP     GPIO_PIN(PORT_A,0)
 /** @} */
 
 /**
@@ -72,8 +72,8 @@ extern "C" {
  */
 #define L3G4200D_I2C        I2C_0
 #define L3G4200D_ADDR       0x68
-#define L3G4200D_DRDY       GPIO(PORT_B,8)
-#define L3G4200D_INT        GPIO(PORT_B,11)
+#define L3G4200D_DRDY       GPIO_PIN(PORT_B,8)
+#define L3G4200D_INT        GPIO_PIN(PORT_B,11)
 /** @} */
 
 /**
@@ -83,9 +83,9 @@ extern "C" {
 #define LSM303DLHC_I2C      I2C_0
 #define LSM303DLHC_ACC_ADDR (25)
 #define LSM303DLHC_MAG_ADDR (30)
-#define LSM303DLHC_INT1     GPIO(PORT_B,9)
-#define LSM303DLHC_INT2     GPIO(PORT_B,5)
-#define LSM303DLHC_DRDY     GPIO(PORT_A,9)
+#define LSM303DLHC_INT1     GPIO_PIN(PORT_B,9)
+#define LSM303DLHC_INT2     GPIO_PIN(PORT_B,5)
+#define LSM303DLHC_DRDY     GPIO_PIN(PORT_A,9)
 /** @} */
 
 /**
@@ -94,10 +94,10 @@ extern "C" {
  */
 #define LED_RED_PORT        (GPIOB)
 #define LED_RED_PIN         (10)
-#define LED_RED_GPIO        GPIO(PORT_B,10)
+#define LED_RED_GPIO        GPIO_PIN(PORT_B,10)
 #define LED_GREEN_PORT      (GPIOB)
 #define LED_GREEN_PIN       (12)
-#define LED_GREEN_GPIO      GPIO(PORT_B,12)
+#define LED_GREEN_GPIO      GPIO_PIN(PORT_B,12)
 /** @} */
 
 /**
diff --git a/boards/fox/include/periph_conf.h b/boards/fox/include/periph_conf.h
index 6804cd279a68c02e37834f8d2a79857094b38df1..9ddabaefad42d179036365ec024d8414eb6953f2 100644
--- a/boards/fox/include/periph_conf.h
+++ b/boards/fox/include/periph_conf.h
@@ -94,8 +94,8 @@ extern "C" {
 #define UART_0_ISR          isr_usart2
 #define UART_0_BUS_FREQ     36000000
 /* UART 0 pin configuration */
-#define UART_0_RX_PIN       GPIO(PORT_A,3)
-#define UART_0_TX_PIN       GPIO(PORT_A,2)
+#define UART_0_RX_PIN       GPIO_PIN(PORT_A,3)
+#define UART_0_TX_PIN       GPIO_PIN(PORT_A,2)
 
 /* UART 1 device configuration */
 #define UART_1_DEV          USART1
@@ -104,8 +104,8 @@ extern "C" {
 #define UART_1_ISR          isr_usart1
 #define UART_1_BUS_FREQ     72000000
 /* UART 1 pin configuration */
-#define UART_1_RX_PIN       GPIO(PORT_A,10)
-#define UART_1_TX_PIN       GPIO(PORT_A,9)
+#define UART_1_RX_PIN       GPIO_PIN(PORT_A,10)
+#define UART_1_TX_PIN       GPIO_PIN(PORT_A,9)
 /** @} */
 
 /**
@@ -116,14 +116,14 @@ extern "C" {
 #define SPI_0_EN            1
 
 /* SPI 0 device configuration */
-#define SPI_0_DEV               SPI2
-#define SPI_0_CLKEN()           (RCC->APB1ENR |= RCC_APB1ENR_SPI2EN)
-#define SPI_0_CLKDIS()          (RCC->APB1ENR &= ~(RCC_APB1ENR_SPI2EN))
-#define SPI_0_BUS_DIV           0   /* 1 -> SPI runs with full CPU clock, 0 -> half CPU clock */
+#define SPI_0_DEV           SPI2
+#define SPI_0_CLKEN()       (RCC->APB1ENR |= RCC_APB1ENR_SPI2EN)
+#define SPI_0_CLKDIS()      (RCC->APB1ENR &= ~(RCC_APB1ENR_SPI2EN))
+#define SPI_0_BUS_DIV       0   /* 1 -> SPI runs with full CPU clock, 0 -> half CPU clock */
 /* SPI 0 pin configuration */
-#define SPI_0_CLK_PIN           GPIO(PORT_B,13)
-#define SPI_0_MOSI_PIN          GPIO(PORT_B,15)
-#define SPI_0_MISO_PIN          GPIO(PORT_B,14)
+#define SPI_0_CLK_PIN       GPIO_PIN(PORT_B,13)
+#define SPI_0_MOSI_PIN      GPIO_PIN(PORT_B,15)
+#define SPI_0_MISO_PIN      GPIO_PIN(PORT_B,14)
 /** @} */
 
 /**
@@ -159,8 +159,8 @@ extern "C" {
 #define I2C_0_ERR_IRQ       I2C1_ER_IRQn
 #define I2C_0_ERR_ISR       isr_i2c1_er
 /* I2C 0 pin configuration */
-#define I2C_0_SCL_PIN       GPIO(PORT_B,6)
-#define I2C_0_SDA_PIN       GPIO(PORT_B,7)
+#define I2C_0_SCL_PIN       GPIO_PIN(PORT_B,6)
+#define I2C_0_SDA_PIN       GPIO_PIN(PORT_B,7)
 /** @} */
 
 #ifdef __cplusplus
diff --git a/boards/iotlab-m3/include/board.h b/boards/iotlab-m3/include/board.h
index 43e946fbc21c8fe876305a38526e61ee0dcb0b35..36aeed2b7e3b01d01093757519ce58a24c138f47 100644
--- a/boards/iotlab-m3/include/board.h
+++ b/boards/iotlab-m3/include/board.h
@@ -57,10 +57,10 @@ extern "C" {
  * @{
  */
 #define AT86RF231_SPI       SPI_0
-#define AT86RF231_CS        GPIO(PORT_A,4)
-#define AT86RF231_INT       GPIO(PORT_C,4)
-#define AT86RF231_RESET     GPIO(PORT_C,1)
-#define AT86RF231_SLEEP     GPIO(PORT_A,2)
+#define AT86RF231_CS        GPIO_PIN(PORT_A,4)
+#define AT86RF231_INT       GPIO_PIN(PORT_C,4)
+#define AT86RF231_RESET     GPIO_PIN(PORT_C,1)
+#define AT86RF231_SLEEP     GPIO_PIN(PORT_A,2)
 #define AT86RF231_SPI_CLK   SPI_SPEED_5MHZ
 /** @} */
 
@@ -69,9 +69,9 @@ extern "C" {
  * @{
  */
 #define EXTFLASH_SPI        SPI_1
-#define EXTFLASH_CS         GPIO(PORT_A,11)
-#define EXTFLASH_WRITE      GPIO(PORT_C,6)
-#define EXTFLASH_HOLD       GPIO(PORT_C,9)
+#define EXTFLASH_CS         GPIO_PIN(PORT_A,11)
+#define EXTFLASH_WRITE      GPIO_PIN(PORT_C,6)
+#define EXTFLASH_HOLD       GPIO_PIN(PORT_C,9)
 /** @} */
 
 /**
@@ -96,8 +96,8 @@ extern "C" {
  */
 #define L3G4200D_I2C        I2C_0
 #define L3G4200D_ADDR       0x68
-#define L3G4200D_DRDY       GPIO(PORT_C,0)
-#define L3G4200D_INT        GPIO(PORT_C,5)
+#define L3G4200D_DRDY       GPIO_PIN(PORT_C,0)
+#define L3G4200D_INT        GPIO_PIN(PORT_C,5)
 /** @} */
 
 /**
@@ -107,9 +107,9 @@ extern "C" {
 #define LSM303DLHC_I2C      I2C_0
 #define LSM303DLHC_ACC_ADDR (0x19)
 #define LSM303DLHC_MAG_ADDR (0x1e)
-#define LSM303DLHC_INT1     GPIO(PORT_B,12)
-#define LSM303DLHC_INT2     GPIO(PORT_B,1)
-#define LSM303DLHC_DRDY     GPIO(PORT_B,2)
+#define LSM303DLHC_INT1     GPIO_PIN(PORT_B,12)
+#define LSM303DLHC_INT2     GPIO_PIN(PORT_B,1)
+#define LSM303DLHC_DRDY     GPIO_PIN(PORT_B,2)
 /** @} */
 
 /**
@@ -118,13 +118,13 @@ extern "C" {
  */
 #define LED_RED_PORT        (GPIOD)
 #define LED_RED_PIN         (2)
-#define LED_RED_GPIO        GPIO(PORT_D,2)
+#define LED_RED_GPIO        GPIO_PIN(PORT_D,2)
 #define LED_GREEN_PORT      (GPIOB)
 #define LED_GREEN_PIN       (5)
-#define LED_GREEN_GPIO      GPIO(PORT_B,5)
+#define LED_GREEN_GPIO      GPIO_PIN(PORT_B,5)
 #define LED_ORANGE_PORT     (GPIOC)
 #define LED_ORANGE_PIN      (10)
-#define LED_ORANGE_GPIO     GPIO(PORT_C,10)
+#define LED_ORANGE_GPIO     GPIO_PIN(PORT_C,10)
 /** @} */
 
 /**
diff --git a/boards/iotlab-m3/include/periph_conf.h b/boards/iotlab-m3/include/periph_conf.h
index cfd89054ec43b134b005d55d4225c420989e4ebf..fe841150cd7ebbd1921dcddcbc78dbd62fe2c323 100644
--- a/boards/iotlab-m3/include/periph_conf.h
+++ b/boards/iotlab-m3/include/periph_conf.h
@@ -95,8 +95,8 @@ extern "C" {
 #define UART_0_ISR          isr_usart1
 #define UART_0_BUS_FREQ     72000000
 /* UART 0 pin configuration */
-#define UART_0_RX_PIN       GPIO(PORT_A,10)
-#define UART_0_TX_PIN       GPIO(PORT_A,9)
+#define UART_0_RX_PIN       GPIO_PIN(PORT_A,10)
+#define UART_0_TX_PIN       GPIO_PIN(PORT_A,9)
 
 /* UART 1 device configuration */
 #define UART_1_DEV          USART2
@@ -105,8 +105,8 @@ extern "C" {
 #define UART_1_ISR          isr_usart2
 #define UART_1_BUS_FREQ     36000000
 /* UART 1 pin configuration */
-#define UART_1_RX_PIN       GPIO(PORT_A,3)
-#define UART_1_TX_PIN       GPIO(PORT_A,2)
+#define UART_1_RX_PIN       GPIO_PIN(PORT_A,3)
+#define UART_1_TX_PIN       GPIO_PIN(PORT_A,2)
 /** @} */
 
 /**
@@ -117,14 +117,14 @@ extern "C" {
 #define SPI_0_EN            1
 
 /* SPI 0 device configuration */
-#define SPI_0_DEV               SPI1
-#define SPI_0_CLKEN()           (RCC->APB2ENR |= RCC_APB2ENR_SPI1EN)
-#define SPI_0_CLKDIS()          (RCC->APB2ENR &= ~(RCC_APB2ENR_SPI1EN))
-#define SPI_0_BUS_DIV           1   /* 1 -> SPI runs with full CPU clock, 0 -> half CPU clock */
+#define SPI_0_DEV           SPI1
+#define SPI_0_CLKEN()       (RCC->APB2ENR |= RCC_APB2ENR_SPI1EN)
+#define SPI_0_CLKDIS()      (RCC->APB2ENR &= ~(RCC_APB2ENR_SPI1EN))
+#define SPI_0_BUS_DIV       1   /* 1 -> SPI runs with full CPU clock, 0 -> half CPU clock */
 /* SPI 0 pin configuration */
-#define SPI_0_CLK_PIN           GPIO(PORT_A,5)
-#define SPI_0_MOSI_PIN          GPIO(PORT_A,7)
-#define SPI_0_MISO_PIN          GPIO(PORT_A,6)
+#define SPI_0_CLK_PIN       GPIO_PIN(PORT_A,5)
+#define SPI_0_MOSI_PIN      GPIO_PIN(PORT_A,7)
+#define SPI_0_MISO_PIN      GPIO_PIN(PORT_A,6)
 /** @} */
 
 /**
@@ -160,8 +160,8 @@ extern "C" {
 #define I2C_0_ERR_IRQ       I2C1_ER_IRQn
 #define I2C_0_ERR_ISR       isr_i2c1_er
 /* I2C 0 pin configuration */
-#define I2C_0_SCL_PIN       GPIO(PORT_B,6)
-#define I2C_0_SDA_PIN       GPIO(PORT_B,7)
+#define I2C_0_SCL_PIN       GPIO_PIN(PORT_B,6)
+#define I2C_0_SDA_PIN       GPIO_PIN(PORT_B,7)
 /** @} */
 
 #ifdef __cplusplus
diff --git a/boards/limifrog-v1/include/board.h b/boards/limifrog-v1/include/board.h
index 7f5a19638c02b4de86d3924aa63f69f14469fbc1..b0fda42d076bf4cd711ad9dbf1b61fd2d267bb0a 100644
--- a/boards/limifrog-v1/include/board.h
+++ b/boards/limifrog-v1/include/board.h
@@ -49,9 +49,9 @@ extern "C" {
  * @name LED pin definitions
  * @{
  */
-#define LED_RED_PORT      (GPIOC)
-#define LED_RED_PIN       (3)
-#define LED_RED_GPIO GPIO(PORT_C,3)
+#define LED_RED_PORT        (GPIOC)
+#define LED_RED_PIN         (3)
+#define LED_RED_GPIO        GPIO_PIN(PORT_C,3)
 /** @} */
 
 /**
diff --git a/boards/msb-430/include/periph_conf.h b/boards/msb-430/include/periph_conf.h
index 8a94496653c92ac5ae92151888257d970a53c43d..7a1b35974707c61b12720858614186f79de85aa0 100644
--- a/boards/msb-430/include/periph_conf.h
+++ b/boards/msb-430/include/periph_conf.h
@@ -82,9 +82,9 @@ extern "C" {
 #define SPI_IE_TX_BIT       (1 << 7)
 #define SPI_ME              (SFR->ME1)
 #define SPI_ME_BIT          (1 << 6)
-#define SPI_PIN_MISO        GPIO(P5,2)
-#define SPI_PIN_MOSI        GPIO(P5,1)
-#define SPI_PIN_CLK         GPIO(P5,3)
+#define SPI_PIN_MISO        GPIO_PIN(P5,2)
+#define SPI_PIN_MOSI        GPIO_PIN(P5,1)
+#define SPI_PIN_CLK         GPIO_PIN(P5,3)
 /** @} */
 
 #ifdef __cplusplus
diff --git a/boards/msb-430h/include/periph_conf.h b/boards/msb-430h/include/periph_conf.h
index c323138611021693777dd3208d6bb76242db7eec..d1907a88b76cb0e5c5e7d4a7486a7e99f34db1f4 100644
--- a/boards/msb-430h/include/periph_conf.h
+++ b/boards/msb-430h/include/periph_conf.h
@@ -84,9 +84,9 @@ extern "C" {
 #define SPI_IE_TX_BIT       (1 << 7)
 #define SPI_ME              (SFR->ME1)
 #define SPI_ME_BIT          (1 << 6)
-#define SPI_PIN_MISO        GPIO(P3,2)
-#define SPI_PIN_MOSI        GPIO(P3,1)
-#define SPI_PIN_CLK         GPIO(P3,3)
+#define SPI_PIN_MISO        GPIO_PIN(P3,2)
+#define SPI_PIN_MOSI        GPIO_PIN(P3,1)
+#define SPI_PIN_CLK         GPIO_PIN(P3,3)
 /** @} */
 
 #ifdef __cplusplus
diff --git a/boards/msbiot/include/board.h b/boards/msbiot/include/board.h
index 7014a313bfdbc75a5c7088289f822717ccb1b885..9680863aba4ff1e2f6675f7b3d7328533bfb244e 100644
--- a/boards/msbiot/include/board.h
+++ b/boards/msbiot/include/board.h
@@ -40,10 +40,10 @@ extern "C" {
  * @{
  */
 #define CC110X_SPI          SPI_0
-#define CC110X_CS           GPIO(PORT_B, 12)
-#define CC110X_GDO0         GPIO(PORT_C, 4)
-#define CC110X_GDO1         GPIO(PORT_A, 6)
-#define CC110X_GDO2         GPIO(PORT_C, 5)
+#define CC110X_CS           GPIO_PIN(PORT_B, 12)
+#define CC110X_GDO0         GPIO_PIN(PORT_C, 4)
+#define CC110X_GDO1         GPIO_PIN(PORT_A, 6)
+#define CC110X_GDO2         GPIO_PIN(PORT_C, 5)
 /** @} */
 
 /**
diff --git a/boards/nucleo-l1/include/periph_conf.h b/boards/nucleo-l1/include/periph_conf.h
index aa18c55360f3a4a3ae294edcc0b32716faf4ff68..833a1c95d0025b142f3b85f0f4cd95cb6a2a9f71 100644
--- a/boards/nucleo-l1/include/periph_conf.h
+++ b/boards/nucleo-l1/include/periph_conf.h
@@ -72,8 +72,8 @@ static const timer_conf_t timer_config[] = {
 #define UART_0_ISR          isr_usart2
 #define UART_0_BUS_FREQ     32000000
 /* UART 0 pin configuration */
-#define UART_0_RX_PIN       GPIO(PORT_A, 3)
-#define UART_0_TX_PIN       GPIO(PORT_A, 2)
+#define UART_0_RX_PIN       GPIO_PIN(PORT_A, 3)
+#define UART_0_TX_PIN       GPIO_PIN(PORT_A, 2)
 #define UART_0_AF           GPIO_AF7
 
 /**
diff --git a/boards/saml21-xpro/board.c b/boards/saml21-xpro/board.c
index e20b6d35f278812cdcb2d8e419d800b2adf6999d..d01673d58857a475d8cccb7ed50a4a9e95797693 100644
--- a/boards/saml21-xpro/board.c
+++ b/boards/saml21-xpro/board.c
@@ -44,5 +44,5 @@ void board_init(void)
  */
 void led_init(void)
 {
-    gpio_init(GPIO(PB,10), GPIO_DIR_OUT, GPIO_NOPULL);
+    gpio_init(GPIO_PIN(PB,10), GPIO_DIR_OUT, GPIO_NOPULL);
 }
diff --git a/boards/samr21-xpro/include/board.h b/boards/samr21-xpro/include/board.h
index 866c51ca9c06dd3ad65a2cf67b4d2e08330c9711..fd24914c288bceddcfeadc0902a08ad5bf745638 100644
--- a/boards/samr21-xpro/include/board.h
+++ b/boards/samr21-xpro/include/board.h
@@ -45,23 +45,23 @@ extern "C" {
 * @name AT86RF233 configuration
 * @{
 */
-#define AT86RF233_SPI        (SPI_0)
-#define AT86RF233_CS         GPIO(PB, 31)
-#define AT86RF233_INT        GPIO(PB, 0)
-#define AT86RF233_RESET      GPIO(PB, 15)
-#define AT86RF233_SLEEP      GPIO(PA, 20)
-#define AT86RF233_SPI_CLK    (SPI_SPEED_1MHZ)
+#define AT86RF233_SPI       (SPI_0)
+#define AT86RF233_CS        GPIO_PIN(PB, 31)
+#define AT86RF233_INT       GPIO_PIN(PB, 0)
+#define AT86RF233_RESET     GPIO_PIN(PB, 15)
+#define AT86RF233_SLEEP     GPIO_PIN(PA, 20)
+#define AT86RF233_SPI_CLK   (SPI_SPEED_1MHZ)
 /** @}*/
 
 /**
 * @name AT86RF231 config
 * @{
 */
-#define AT86RF231_SPI      SPI_0
-#define AT86RF231_CS       GPIO(PB, 31)
-#define AT86RF231_INT      GPIO(PB, 0)
-#define AT86RF231_RESET    GPIO(PB, 15)
-#define AT86RF231_SLEEP    GPIO(PA, 20)
+#define AT86RF231_SPI       SPI_0
+#define AT86RF231_CS        GPIO_PIN(PB, 31)
+#define AT86RF231_INT       GPIO_PIN(PB, 0)
+#define AT86RF231_RESET     GPIO_PIN(PB, 15)
+#define AT86RF231_SLEEP     GPIO_PIN(PA, 20)
 
 #define AT86RF231_SPI_SPEED SPI_SPEED_1MHZ
 /** @} */
diff --git a/boards/samr21-xpro/include/periph_conf.h b/boards/samr21-xpro/include/periph_conf.h
index cbcebc211aed1648eb5926444f6368c2a0dde705..ed1f1ad2d616222286d3d833d67317879dd75746 100644
--- a/boards/samr21-xpro/include/periph_conf.h
+++ b/boards/samr21-xpro/include/periph_conf.h
@@ -111,8 +111,8 @@ extern "C" {
 /* UART device configuration */
 static const uart_conf_t uart_config[] = {
     /* device, RX pin, TX pin, mux */
-    {&SERCOM0->USART, GPIO(PA,5), GPIO(PA,4), GPIO_MUX_D},
-    {&SERCOM5->USART, GPIO(PA,23), GPIO(PA,22), GPIO_MUX_D},
+    {&SERCOM0->USART, GPIO_PIN(PA,5), GPIO_PIN(PA,4), GPIO_MUX_D},
+    {&SERCOM5->USART, GPIO_PIN(PA,23), GPIO_PIN(PA,22), GPIO_MUX_D},
 };
 
 /* interrupt function name mapping */
diff --git a/boards/spark-core/include/board.h b/boards/spark-core/include/board.h
index d0cfa1192b4fa04100e7b4e97bf98bc241bd2372..4e22c9bd035fc28e34ed5792c7bcb4042c36633f 100644
--- a/boards/spark-core/include/board.h
+++ b/boards/spark-core/include/board.h
@@ -81,16 +81,16 @@
 /**
  * @name User button configuration
  */
-#define BUTTON1             GPIO(PORT_B,2)
+#define BUTTON1             GPIO_PIN(PORT_B,2)
 
 /**
  * @name CC3000 pin configuration
  * @{
  */
 #define CC3000_SPI          SPI_0
-#define CC3000_CS           GPIO(PORT_B,12)
-#define CC3000_EN           GPIO(PORT_B,8)
-#define CC3000_INT          GPIO(PORT_B,11)
+#define CC3000_CS           GPIO_PIN(PORT_B,12)
+#define CC3000_EN           GPIO_PIN(PORT_B,8)
+#define CC3000_INT          GPIO_PIN(PORT_B,11)
 /** @} */
 
 /**
@@ -98,7 +98,7 @@
  * @{
  */
 #define EXTFLASH_SPI        SPI_0
-#define EXTFLASH            GPIO(PORT_B,9)
+#define EXTFLASH            GPIO_PIN(PORT_B,9)
 /** @} */
 
 /**
diff --git a/boards/spark-core/include/periph_conf.h b/boards/spark-core/include/periph_conf.h
index d1f4a101905c3a5cbec964165c3961b1649af9ac..0f1749c3a2694ce6511256f747d68f29c9263bc6 100644
--- a/boards/spark-core/include/periph_conf.h
+++ b/boards/spark-core/include/periph_conf.h
@@ -93,26 +93,26 @@
 #define UART_0_ISR          isr_usart2
 #define UART_0_BUS_FREQ     (CLOCK_CORECLOCK/2)
 /* UART 0 pin configuration */
-#define UART_0_RX_PIN       GPIO(PORT_A,3)
-#define UART_0_TX_PIN       GPIO(PORT_A,2)
+#define UART_0_RX_PIN       GPIO_PIN(PORT_A,3)
+#define UART_0_TX_PIN       GPIO_PIN(PORT_A,2)
 /** @} */
 
 /**
  * @brief SPI configuration
  * @{
  */
-#define SPI_NUMOF               (1U)
-#define SPI_0_EN                1
+#define SPI_NUMOF           (1U)
+#define SPI_0_EN            1
 
 /* SPI 0 device configuration */
-#define SPI_0_DEV               SPI1
-#define SPI_0_CLKEN()           (RCC->APB2ENR |= RCC_APB2ENR_SPI1EN)
-#define SPI_0_CLKDIS()          (RCC->APB2ENR &= ~(RCC_APB2ENR_SPI1EN))
-#define SPI_0_BUS_DIV           0   /* 1 -> SPI runs with full CPU clock, 0 -> half CPU clock */
+#define SPI_0_DEV           SPI1
+#define SPI_0_CLKEN()       (RCC->APB2ENR |= RCC_APB2ENR_SPI1EN)
+#define SPI_0_CLKDIS()      (RCC->APB2ENR &= ~(RCC_APB2ENR_SPI1EN))
+#define SPI_0_BUS_DIV       0   /* 1 -> SPI runs with full CPU clock, 0 -> half CPU clock */
 /* SPI 0 pin configuration */
-#define SPI_0_CLK_PIN           GPIO(PORT_B,15)
-#define SPI_0_MOSI_PIN          GPIO(PORT_B,17)
-#define SPI_0_MISO_PIN          GPIO(PORT_B,16)
+#define SPI_0_CLK_PIN       GPIO_PIN(PORT_B,15)
+#define SPI_0_MOSI_PIN      GPIO_PIN(PORT_B,17)
+#define SPI_0_MISO_PIN      GPIO_PIN(PORT_B,16)
 /** @} */
 
 #ifdef __cplusplus
diff --git a/boards/telosb/include/periph_conf.h b/boards/telosb/include/periph_conf.h
index 383daef3ca4792586079cd29eed943844587ec16..6d31dcf2d4eeef9390cbd29913487fef75fe3f3e 100644
--- a/boards/telosb/include/periph_conf.h
+++ b/boards/telosb/include/periph_conf.h
@@ -82,9 +82,9 @@ extern "C" {
 #define SPI_IE_TX_BIT       (1 << 7)
 #define SPI_ME              (SFR->ME1)
 #define SPI_ME_BIT          (1 << 6)
-#define SPI_PIN_MISO        GPIO(P3,2)
-#define SPI_PIN_MOSI        GPIO(P3,1)
-#define SPI_PIN_CLK         GPIO(P3,3)
+#define SPI_PIN_MISO        GPIO_PIN(P3,2)
+#define SPI_PIN_MOSI        GPIO_PIN(P3,1)
+#define SPI_PIN_CLK         GPIO_PIN(P3,3)
 /** @} */
 
 #ifdef __cplusplus
diff --git a/boards/wsn430-common/include/periph_conf.h b/boards/wsn430-common/include/periph_conf.h
index c08015f6861fc41e344079b2f2c6d4c6ce358789..b98538d683e07e4bd9f91a4aafb76271fbca1a56 100644
--- a/boards/wsn430-common/include/periph_conf.h
+++ b/boards/wsn430-common/include/periph_conf.h
@@ -82,9 +82,9 @@ extern "C" {
 #define SPI_IE_TX_BIT       (1 << 7)
 #define SPI_ME              (SFR->ME1)
 #define SPI_ME_BIT          (1 << 6)
-#define SPI_PIN_MISO        GPIO(P5,2)
-#define SPI_PIN_MOSI        GPIO(P5,1)
-#define SPI_PIN_CLK         GPIO(P5,3)
+#define SPI_PIN_MISO        GPIO_PIN(P5,2)
+#define SPI_PIN_MOSI        GPIO_PIN(P5,1)
+#define SPI_PIN_CLK         GPIO_PIN(P5,3)
 /** @} */
 
 
diff --git a/boards/z1/include/periph_conf.h b/boards/z1/include/periph_conf.h
index 4b9c85c4dfca78e57ed6fda367d290c92e8410b9..2c35c3ad37232af43a2b4730eca81d64bb047b87 100644
--- a/boards/z1/include/periph_conf.h
+++ b/boards/z1/include/periph_conf.h
@@ -81,9 +81,9 @@ extern "C" {
 #define SPI_IF              (SFR->IFG2)
 #define SPI_IE_RX_BIT       (1 << 2)
 #define SPI_IE_TX_BIT       (1 << 3)
-#define SPI_PIN_MISO        GPIO(P3,2)
-#define SPI_PIN_MOSI        GPIO(P3,1)
-#define SPI_PIN_CLK         GPIO(P3,3)
+#define SPI_PIN_MISO        GPIO_PIN(P3,2)
+#define SPI_PIN_MOSI        GPIO_PIN(P3,1)
+#define SPI_PIN_CLK         GPIO_PIN(P3,3)
 /** @} */
 
 #ifdef __cplusplus
diff --git a/cpu/atmega2560/include/periph_cpu.h b/cpu/atmega2560/include/periph_cpu.h
index 7d38894e90323d62b38671b587b8fa51c6b48c11..5d6cd4746feda7b823da0696e82368d5491dacbc 100644
--- a/cpu/atmega2560/include/periph_cpu.h
+++ b/cpu/atmega2560/include/periph_cpu.h
@@ -29,7 +29,7 @@ extern "C" {
 /**
  * @brief   Define a CPU specific GPIO pin generator macro
  */
-#define GPIO(x, y)          ((x << 4) | y)
+#define GPIO_PIN(x, y)          ((x << 4) | y)
 
 /**
  * @brief   Available ports on the ATmega2560 family
diff --git a/cpu/lpc2387/include/periph_cpu.h b/cpu/lpc2387/include/periph_cpu.h
index 8fccc27687ed8b5725dae9602f3861c2f6860902..b80cf392e4c884c05995cf43f4ed6c41e5ec8501 100644
--- a/cpu/lpc2387/include/periph_cpu.h
+++ b/cpu/lpc2387/include/periph_cpu.h
@@ -54,7 +54,7 @@ typedef struct {
 int gpio_init_mux(unsigned pin, unsigned mux);
 void gpio_init_states(void);
 
-#define GPIO(port, pin) (port*32 + pin)
+#define GPIO_PIN(port, pin) (port*32 + pin)
 
 #define HAVE_GPIO_PP_T
 typedef enum {
diff --git a/cpu/msp430fxyz/include/periph_cpu.h b/cpu/msp430fxyz/include/periph_cpu.h
index ca9fc040327ff781db784bcbfff5390f4fb2a8c8..c7050ca2d7df0e9592de4b5c013d07d6b563713a 100644
--- a/cpu/msp430fxyz/include/periph_cpu.h
+++ b/cpu/msp430fxyz/include/periph_cpu.h
@@ -43,7 +43,7 @@ typedef uint16_t gpio_t;
  * @brief   Mandatory function for defining a GPIO pins
  * @{
  */
-#define GPIO(x, y)          ((gpio_t)(((x & 0xff) << 8) | (1 << (y & 0xff))))
+#define GPIO_PIN(x, y)      ((gpio_t)(((x & 0xff) << 8) | (1 << (y & 0xff))))
 
 /**
  * @brief   Override direction values
diff --git a/cpu/nrf51/include/periph_cpu.h b/cpu/nrf51/include/periph_cpu.h
index 9bf7ebc31bacae4d0a85169a1830973eb5a5e550..2b3fffe910accb467f18a9712195805a1336ca22 100644
--- a/cpu/nrf51/include/periph_cpu.h
+++ b/cpu/nrf51/include/periph_cpu.h
@@ -54,7 +54,7 @@ typedef enum {
  *
  * The port definition is used (and zeroed) to suppress compiler warnings
  */
-#define GPIO(x,y)           ((x & 0) | y)
+#define GPIO_PIN(x,y)       ((x & 0) | y)
 
 #ifdef __cplusplus
 }
diff --git a/cpu/samd21/include/periph_cpu.h b/cpu/samd21/include/periph_cpu.h
index e357d1d0bbf63c03a599dd0dce8d2ff9153f70df..09b6cf6adc008c3ba8eb05bb7093463b90be14b1 100644
--- a/cpu/samd21/include/periph_cpu.h
+++ b/cpu/samd21/include/periph_cpu.h
@@ -42,7 +42,7 @@ typedef uint32_t gpio_t;
  * @brief   Mandatory function for defining a GPIO pins
  * @{
  */
-#define GPIO(x, y)          (((gpio_t)(&PORT->Group[x])) | y)
+#define GPIO_PIN(x, y)      (((gpio_t)(&PORT->Group[x])) | y)
 
 /**
  * @brief   Available ports on the SAMD21
diff --git a/cpu/saml21/include/periph_cpu.h b/cpu/saml21/include/periph_cpu.h
index 1c6dc5eae25a5e9ead08424881c6ecbc8aa70bc9..d6384ca65440c6a4925775b5edf3c9216aeb9acb 100644
--- a/cpu/saml21/include/periph_cpu.h
+++ b/cpu/saml21/include/periph_cpu.h
@@ -43,7 +43,7 @@ typedef uint32_t gpio_t;
  * @brief   Mandatory function for defining a GPIO pins
  * @{
  */
-#define GPIO(x, y)          (((gpio_t)(&PORT->Group[x])) | y)
+#define GPIO_PIN(x, y)      (((gpio_t)(&PORT->Group[x])) | y)
 
 /**
  * @brief   Available ports on the SAML21 for convenient access
diff --git a/cpu/saml21/periph/spi.c b/cpu/saml21/periph/spi.c
index c32e2f31296412275aa529978444fa7cd2f3a511..b2dbafbbfb904fb55a9a6266998f0af501cd5c93 100644
--- a/cpu/saml21/periph/spi.c
+++ b/cpu/saml21/periph/spi.c
@@ -72,7 +72,7 @@ typedef struct spi_saml21 {
 static const spi_saml21_t spi[] = {
 #if SPI_0_EN
     /* SPI device */   /* MCLK flag */        /* GLCK id */         /* SCLK */  /* MISO */  /* MOSI */ /* dipo+dopo */
-    { &(SERCOM0->SPI), MCLK_APBCMASK_SERCOM0, SERCOM0_GCLK_ID_CORE, { GPIO(PA,7), 3 }, { GPIO(PA,4), 3 }, { GPIO(PA,6), 3 }, 0, 1 }
+    { &(SERCOM0->SPI), MCLK_APBCMASK_SERCOM0, SERCOM0_GCLK_ID_CORE, { GPIO_PIN(PA,7), 3 }, { GPIO_PIN(PA,4), 3 }, { GPIO_PIN(PA,6), 3 }, 0, 1 }
 #endif
 };
 
diff --git a/cpu/stm32f1/include/periph_cpu.h b/cpu/stm32f1/include/periph_cpu.h
index f883b03b691bce35001700ab7d2c03fd3e2c832d..1a8e7e61517f820f369ddb126a5aef8688c792f4 100644
--- a/cpu/stm32f1/include/periph_cpu.h
+++ b/cpu/stm32f1/include/periph_cpu.h
@@ -42,7 +42,7 @@ typedef uint32_t gpio_t;
 /**
  * @brief   Define a CPU specific GPIO pin generator macro
  */
-#define GPIO(x, y)          ((GPIOA_BASE + (x << 10)) | y)
+#define GPIO_PIN(x, y)      ((GPIOA_BASE + (x << 10)) | y)
 
 /**
  * @brief   Override values for pull register configuration
diff --git a/cpu/stm32f3/include/periph_cpu.h b/cpu/stm32f3/include/periph_cpu.h
index 8e86ebac7c9dc202c959b60ab6b04e0a898c861b..0060c1f0e70ef0a91e637e733d6e9b3775a71ec0 100644
--- a/cpu/stm32f3/include/periph_cpu.h
+++ b/cpu/stm32f3/include/periph_cpu.h
@@ -42,7 +42,7 @@ typedef uint32_t gpio_t;
 /**
  * @brief   Define a CPU specific GPIO pin generator macro
  */
-#define GPIO(x, y)          ((GPIOA_BASE + (x << 10)) | y)
+#define GPIO_PIN(x, y)      ((GPIOA_BASE + (x << 10)) | y)
 
 /**
  * @brief   Available ports on the STM32F3 family
diff --git a/cpu/stm32f4/include/periph_cpu.h b/cpu/stm32f4/include/periph_cpu.h
index aead4e9a083b4e86f3f470b143b0a5da8e3399da..4131cef10a0ab86c83676fe9c98997ad95cb9fd8 100644
--- a/cpu/stm32f4/include/periph_cpu.h
+++ b/cpu/stm32f4/include/periph_cpu.h
@@ -42,7 +42,7 @@ typedef uint32_t gpio_t;
 /**
  * @brief   Define a CPU specific GPIO pin generator macro
  */
-#define GPIO(x, y)          ((GPIOA_BASE + (x << 10)) | y)
+#define GPIO_PIN(x, y)      ((GPIOA_BASE + (x << 10)) | y)
 
 /**
  * @brief   Available ports on the STM32F4 family
diff --git a/cpu/stm32l1/include/periph_cpu.h b/cpu/stm32l1/include/periph_cpu.h
index a5507a76e1ddc4f89f9491d61b5bbf0d106332be..a20ef4586e4156ce5b5553ef79f06a541467e4d0 100644
--- a/cpu/stm32l1/include/periph_cpu.h
+++ b/cpu/stm32l1/include/periph_cpu.h
@@ -43,7 +43,7 @@ typedef uint32_t gpio_t;
 /**
  * @brief   Define a CPU specific GPIO pin generator macro
  */
-#define GPIO(x, y)          ((GPIOA_BASE + (x << 10)) | y)
+#define GPIO_PIN(x, y)      ((GPIOA_BASE + (x << 10)) | y)
 
 /**
  * @brief   Available ports on the STM32L1 family
diff --git a/drivers/include/periph/gpio.h b/drivers/include/periph/gpio.h
index 187a6d0dc5873cd71f5e3fb112e33eaad439e67a..a805c9f22ef43f75e573c9ddde7ff738daa32137 100644
--- a/drivers/include/periph/gpio.h
+++ b/drivers/include/periph/gpio.h
@@ -30,8 +30,8 @@ extern "C" {
 /**
  * @brief   Default GPIO macro maps port-pin tuples to the pin value
  */
-#ifndef GPIO
-#define GPIO(x,y)       ((x & 0) | y)
+#ifndef GPIO_PIN
+#define GPIO_PIN(x,y)       ((x & 0) | y)
 #endif
 
 /**
diff --git a/tests/driver_adt7310/Makefile b/tests/driver_adt7310/Makefile
index 01af8e4771d0e90650eada7321144fc0dddd6452..ad673da932408d6c3ef49f25e28df48939986008 100644
--- a/tests/driver_adt7310/Makefile
+++ b/tests/driver_adt7310/Makefile
@@ -16,7 +16,7 @@ ifneq (,$(TEST_ADT7310_CS))
   CFLAGS += -DTEST_ADT7310_CS=$(TEST_ADT7310_CS)
 else
   # set arbitrary default
-  CFLAGS += -DTEST_ADT7310_CS=GPIO\(0,0\)
+  CFLAGS += -DTEST_ADT7310_CS=GPIO_PIN\(0,0\)
 endif
 
 include $(RIOTBASE)/Makefile.include
diff --git a/tests/driver_at86rf2xx/Makefile b/tests/driver_at86rf2xx/Makefile
index 1f375e39dbf26826f985280de7b9c41191b84bba..f7fd89e94c0e1dd21261a0531e8f42470b7f2e04 100644
--- a/tests/driver_at86rf2xx/Makefile
+++ b/tests/driver_at86rf2xx/Makefile
@@ -38,22 +38,22 @@ endif
 ifneq (,$(ATRF_CS))
   CFLAGS += -DATRF_CS=$(ATRF_CS)
 else
-  CFLAGS += -DATRF_CS=GPIO\(0,0\)           # set default
+  CFLAGS += -DATRF_CS=GPIO_PIN\(0,0\)           # set default
 endif
 ifneq (,$(ATRF_INT))
   CFLAGS += -DATRF_INT=$(ATRF_INT)
 else
-  CFLAGS += -DATRF_INT=GPIO\(0,1\)          # set default
+  CFLAGS += -DATRF_INT=GPIO_PIN\(0,1\)          # set default
 endif
 ifneq (,$(ATRF_SLEEP))
   CFLAGS += -DATRF_SLEEP=$(ATRF_SLEEP)
 else
-  CFLAGS += -DATRF_SLEEP=GPIO\(0,2\)        # set default
+  CFLAGS += -DATRF_SLEEP=GPIO_PIN\(0,2\)        # set default
 endif
 ifneq (,$(ATRF_RESET))
   CFLAGS += -DATRF_RESET=$(ATRF_RESET)
 else
-  CFLAGS += -DATRF_RESET=GPIO\(0,3\)        # set default
+  CFLAGS += -DATRF_RESET=GPIO_PIN\(0,3\)        # set default
 endif
 ifneq (,$(ATRF_SPI_SPEED))
   CFLAGS += -DATRF_SPI_SPEED=$(ATRF_SPI_SPEED)
diff --git a/tests/driver_dht/Makefile b/tests/driver_dht/Makefile
index 0d1ad55b36f5305fce885b84d10d79411fe86f34..f468b3d0bc06ebda563e9b04f7649b3025c9701e 100644
--- a/tests/driver_dht/Makefile
+++ b/tests/driver_dht/Makefile
@@ -5,7 +5,7 @@ FEATURES_REQUIRED = periph_gpio
 
 # define default pin mappings for some boards:
 ifneq (,$(filter stm32f4discovery,$(BOARD)))
-  export DHT_GPIO ?= GPIO\(4,3\)
+  export DHT_GPIO ?= GPIO_PIN\(4,3\)
 endif
 
 USEMODULE += dht
@@ -22,7 +22,7 @@ ifneq (,$(DHT_GPIO))
   CFLAGS += -DDHT_GPIO=$(DHT_GPIO)
 else
   # set random default
-  CFLAGS += -DDHT_GPIO=GPIO\(0,0\)
+  CFLAGS += -DDHT_GPIO=GPIO_PIN\(0,0\)
 endif
 
 include $(RIOTBASE)/Makefile.include
diff --git a/tests/driver_isl29125/Makefile b/tests/driver_isl29125/Makefile
index 812563e368eb16932065944f17ccd8908fb4a27c..f598fc9eb5c00015b1eebc0f45af4937788413a0 100644
--- a/tests/driver_isl29125/Makefile
+++ b/tests/driver_isl29125/Makefile
@@ -16,7 +16,7 @@ ifneq (,$(TEST_ISL29125_IRQ_PIN))
   CFLAGS += -DTEST_ISL29125_IRQ_PIN=$(TEST_ISL29125_IRQ_PIN)
 else
   # set random default
-  CFLAGS += -DTEST_ISL29125_IRQ_PIN=GPIO\(0,0\)
+  CFLAGS += -DTEST_ISL29125_IRQ_PIN=GPIO_PIN\(0,0\)
 endif
 
 include $(RIOTBASE)/Makefile.include
diff --git a/tests/driver_kw2xrf/Makefile b/tests/driver_kw2xrf/Makefile
index a49920547697fe68486585c4a1a69045318b7c7a..287388a95881ab34653bfddf01303393a85a58bf 100644
--- a/tests/driver_kw2xrf/Makefile
+++ b/tests/driver_kw2xrf/Makefile
@@ -37,12 +37,12 @@ endif
 ifneq (,$(KWRF_CS))
   CFLAGS += -DKWRF_CS=$(KWRF_CS)
 else
-  CFLAGS += -DKWRF_CS=GPIO\(0,0\)       # set default
+  CFLAGS += -DKWRF_CS=GPIO_PIN\(0,0\)       # set default
 endif
 ifneq (,$(KWRF_INT))
   CFLAGS += -DKWRF_INT=$(KWRF_INT)
 else
-  CFLAGS += -DKWRF_INT=GPIO\(0,1\)      # set default
+  CFLAGS += -DKWRF_INT=GPIO_PIN\(0,1\)      # set default
 endif
 ifneq (,$(KWRF_SPI_SPEED))
   CFLAGS += -DKWRF_SPI_SPEED=$(KWRF_SPI_SPEED)
diff --git a/tests/driver_l3g4200d/Makefile b/tests/driver_l3g4200d/Makefile
index 2af6d00e31d88b2b6eb777d23e3114b1a77a4f66..ec4d04db1b9ecf0fb7d0875495060289c20de48b 100644
--- a/tests/driver_l3g4200d/Makefile
+++ b/tests/driver_l3g4200d/Makefile
@@ -22,13 +22,13 @@ ifneq (,$(TEST_L3G4200D_INT))
   CFLAGS += -DTEST_L3G4200D_INT=$(TEST_L3G4200D_INT)
 else
   # set random default
-  CFLAGS += -DTEST_L3G4200D_INT=GPIO\(0,0\)
+  CFLAGS += -DTEST_L3G4200D_INT=GPIO_PIN\(0,0\)
 endif
 ifneq (,$(TEST_L3G4200D_DRDY))
   CFLAGS += -DTEST_L3G4200D_DRDY=$(TEST_L3G4200D_DRDY)
 else
   # set random default
-  CFLAGS += -DTEST_L3G4200D_DRDY=GPIO\(0,1\)
+  CFLAGS += -DTEST_L3G4200D_DRDY=GPIO_PIN\(0,1\)
 endif
 
 include $(RIOTBASE)/Makefile.include
diff --git a/tests/driver_lis3dh/Makefile b/tests/driver_lis3dh/Makefile
index 883ec9389cc6296bbd0b3954d56d06fc2672a1ee..21a82f2ff9562a26b3cdc473d9b04b7da8f9bbae 100644
--- a/tests/driver_lis3dh/Makefile
+++ b/tests/driver_lis3dh/Makefile
@@ -16,19 +16,19 @@ ifneq (,$(TEST_LIS3DH_CS))
   CFLAGS += -DTEST_LIS3DH_CS=$(TEST_LIS3DH_CS)
 else
   # set arbitrary default
-  CFLAGS += -DTEST_LIS3DH_CS=GPIO\(0,0\)
+  CFLAGS += -DTEST_LIS3DH_CS=GPIO_PIN\(0,0\)
 endif
 ifneq (,$(TEST_LIS3DH_INT1))
   CFLAGS += -DTEST_LIS3DH_INT1=$(TEST_LIS3DH_INT1)
 else
   # set arbitrary default
-  CFLAGS += -DTEST_LIS3DH_INT1=GPIO\(0,1\)
+  CFLAGS += -DTEST_LIS3DH_INT1=GPIO_PIN\(0,1\)
 endif
 ifneq (,$(TEST_LIS3DH_INT2))
   CFLAGS += -DTEST_LIS3DH_INT2=$(TEST_LIS3DH_INT2)
 else
   # set arbitrary default
-  CFLAGS += -DTEST_LIS3DH_INT2=GPIO\(0,2\)
+  CFLAGS += -DTEST_LIS3DH_INT2=GPIO_PIN\(0,2\)
 endif
 
 include $(RIOTBASE)/Makefile.include
diff --git a/tests/driver_lsm303dlhc/Makefile b/tests/driver_lsm303dlhc/Makefile
index 7dc5450e74bc0fe3c248d6170b77e9c8ee4c71b9..95791f7c91f60bc329b8c60b1d3e0e7c60e954ef 100644
--- a/tests/driver_lsm303dlhc/Makefile
+++ b/tests/driver_lsm303dlhc/Makefile
@@ -35,13 +35,13 @@ ifneq (,$(TEST_LSM303DLHC_ACC_PIN))
   CFLAGS += -DTEST_LSM303DLHC_ACC_PIN=$(TEST_LSM303DLHC_ACC_PIN)
 else
   # set random default
-  CFLAGS += -DTEST_LSM303DLHC_ACC_PIN=GPIO\(0,0\)
+  CFLAGS += -DTEST_LSM303DLHC_ACC_PIN=GPIO_PIN\(0,0\)
 endif
 ifneq (,$(TEST_LSM303DLHC_MAG_PIN))
   CFLAGS += -DTEST_LSM303DLHC_MAG_PIN=$(TEST_LSM303DLHC_MAG_PIN)
 else
   # set random default
-  CFLAGS += -DTEST_LSM303DLHC_MAG_PIN=GPIO\(0,1\)
+  CFLAGS += -DTEST_LSM303DLHC_MAG_PIN=GPIO_PIN\(0,1\)
 endif
 
 include $(RIOTBASE)/Makefile.include
diff --git a/tests/driver_nrf24l01p_lowlevel/Makefile b/tests/driver_nrf24l01p_lowlevel/Makefile
index d031f04cc22264a7ed31dd0c48886f6bfc4693ff..888d0aa355bb1fbd35ea8bda2d3ca63bee2626f4 100644
--- a/tests/driver_nrf24l01p_lowlevel/Makefile
+++ b/tests/driver_nrf24l01p_lowlevel/Makefile
@@ -10,9 +10,9 @@ USEMODULE += nrf24l01p
 FEATURES_REQUIRED = periph_spi
 
 SPI_PORT ?= SPI_0
-CE_PIN   ?= GPIO\(0,0\)
-CS_PIN   ?= GPIO\(0,1\)
-IRQ_PIN  ?= GPIO\(0,2\)
+CE_PIN   ?= GPIO_PIN\(0,0\)
+CS_PIN   ?= GPIO_PIN\(0,1\)
+IRQ_PIN  ?= GPIO_PIN\(0,2\)
 
 include $(RIOTBASE)/Makefile.include
 
diff --git a/tests/driver_nvram_spi/Makefile b/tests/driver_nvram_spi/Makefile
index 37213aa346e6f1a5307a48e6cc7290a865c70b1e..1d873d3f2919bece4680072b85b0e1b9c49398e6 100644
--- a/tests/driver_nvram_spi/Makefile
+++ b/tests/driver_nvram_spi/Makefile
@@ -16,7 +16,7 @@ ifneq (,$(TEST_NVRAM_SPI_CS))
   CFLAGS += -DTEST_NVRAM_SPI_CS=$(TEST_NVRAM_SPI_CS)
 else
   # set arbitrary default
-  CFLAGS += -DTEST_NVRAM_SPI_CS=GPIO\(0,0\)
+  CFLAGS += -DTEST_NVRAM_SPI_CS=GPIO_PIN\(0,0\)
 endif
 ifneq (,$(TEST_NVRAM_SPI_SIZE))
   CFLAGS += -DTEST_NVRAM_SPI_SIZE=$(TEST_NVRAM_SPI_SIZE)
diff --git a/tests/driver_pcd8544/Makefile b/tests/driver_pcd8544/Makefile
index e83de301f7c64a4ea300005ecc63ff3a9a55fca3..2461345881dcc70a6c00a145985b3cfa658eb00a 100644
--- a/tests/driver_pcd8544/Makefile
+++ b/tests/driver_pcd8544/Makefile
@@ -10,13 +10,13 @@ ifeq (,$(TEST_PCD8544_SPI))
   CFLAGS += -DTEST_PCD8544_SPI=SPI_0
 endif
 ifeq (,$(TEST_PCD8544_CS))
-  CFLAGS += -DTEST_PCD8544_CS=GPIO\(0,0\)
+  CFLAGS += -DTEST_PCD8544_CS=GPIO_PIN\(0,0\)
 endif
 ifeq (,$(TEST_PCD8544_RESET))
-  CFLAGS += -DTEST_PCD8544_RESET=GPIO\(0,1\)
+  CFLAGS += -DTEST_PCD8544_RESET=GPIO_PIN\(0,1\)
 endif
 ifeq (,$(TEST_PCD8544_MODE))
-  CFLAGS += -DTEST_PCD8544_MODE=GPIO\(0,2\)
+  CFLAGS += -DTEST_PCD8544_MODE=GPIO_PIN\(0,2\)
 endif
 
 include $(RIOTBASE)/Makefile.include
diff --git a/tests/driver_pir/Makefile b/tests/driver_pir/Makefile
index eb332e1d13d5d7c6689025b499b01f445facbff5..0187a02d12b5f01a707176c5617ceb2fb9e20bbb 100644
--- a/tests/driver_pir/Makefile
+++ b/tests/driver_pir/Makefile
@@ -5,10 +5,10 @@ FEATURES_REQUIRED = periph_gpio
 
 # Define default pin mappings for some boards:
 ifneq (,$(filter stm32f4discovery,$(BOARD)))
-  export PIR_GPIO ?= GPIO\(3,7\)
+  export PIR_GPIO ?= GPIO_PIN\(3,7\)
 endif
 ifneq (,$(filter arduino-due,$(BOARD)))
-  export PIR_GPIO ?= GPIO\(0,20\)
+  export PIR_GPIO ?= GPIO_PIN\(0,20\)
 endif
 
 USEMODULE += pir
@@ -18,7 +18,7 @@ ifneq (,$(PIR_GPIO))
   CFLAGS += -DPIR_GPIO=$(PIR_GPIO)
 else
   # set random default
-  CFLAGS += -DPIR_GPIO=GPIO\(0,0\)
+  CFLAGS += -DPIR_GPIO=GPIO_PIN\(0,0\)
 endif
 
 include $(RIOTBASE)/Makefile.include
diff --git a/tests/periph_gpio/main.c b/tests/periph_gpio/main.c
index 427b3ec3db366a63007ac93feef99b7d0d169c3d..fde10a49c86d8346a8018d85b6bd37e4112aa107 100644
--- a/tests/periph_gpio/main.c
+++ b/tests/periph_gpio/main.c
@@ -66,7 +66,7 @@ static int init_out(int argc, char **argv)
     else {
         pull = GPIO_NOPULL;
     }
-    if (gpio_init(GPIO(port, pin), GPIO_DIR_OUT, pull) < 0) {
+    if (gpio_init(GPIO_PIN(port, pin), GPIO_DIR_OUT, pull) < 0) {
         printf("Error while initializing  PORT_%i.%i as output\n", port, pin);
         return 1;
     }
@@ -97,7 +97,7 @@ static int init_in(int argc, char **argv)
     else {
         pull = GPIO_NOPULL;
     }
-    if (gpio_init(GPIO(port, pin), GPIO_DIR_IN, pull) < 0) {
+    if (gpio_init(GPIO_PIN(port, pin), GPIO_DIR_IN, pull) < 0) {
         printf("Error while initializing  PORT_%i.%02i as input\n", port, pin);
         return 1;
     }
@@ -146,7 +146,7 @@ static int init_int(int argc, char **argv)
     else {
         pull = GPIO_NOPULL;
     }
-    if (gpio_init_int(GPIO(port, pin), pull, flank, cb, (void *)pin) < 0) {
+    if (gpio_init_int(GPIO_PIN(port, pin), pull, flank, cb, (void *)pin) < 0) {
         printf("Error while initializing  PORT_%i.%02i as external interrupt\n",
                port, pin);
         return 1;
@@ -167,7 +167,7 @@ static int read(int argc, char **argv)
     }
     port = atoi(argv[1]);
     pin = atoi(argv[2]);
-    if (gpio_read(GPIO(port, pin))) {
+    if (gpio_read(GPIO_PIN(port, pin))) {
         printf("PORT_%i.%02i is HIGH\n", port, pin);
     }
     else {
@@ -187,7 +187,7 @@ static int set(int argc, char **argv)
     port = atoi(argv[1]);
     pin = atoi(argv[2]);
 
-    gpio_set(GPIO(port, pin));
+    gpio_set(GPIO_PIN(port, pin));
     return 0;
 }
 
@@ -201,7 +201,7 @@ static int clear(int argc, char **argv)
     }
     port = atoi(argv[1]);
     pin = atoi(argv[2]);
-    gpio_clear(GPIO(port, pin));
+    gpio_clear(GPIO_PIN(port, pin));
     return 0;
 }
 
@@ -215,7 +215,7 @@ static int toggle(int argc, char **argv)
     }
     port = atoi(argv[1]);
     pin = atoi(argv[2]);
-    gpio_toggle(GPIO(port, pin));
+    gpio_toggle(GPIO_PIN(port, pin));
     return 0;
 }
 
diff --git a/tests/periph_spi/main.c b/tests/periph_spi/main.c
index c04a20bdfa9390d7c08aa961a251f082d2947c38..772d6fbddb38f7f1c4c8e4f34fcefaed8dd610e2 100644
--- a/tests/periph_spi/main.c
+++ b/tests/periph_spi/main.c
@@ -87,7 +87,7 @@ int parse_spi_dev(int argc, char **argv)
     }
     port = atoi(argv[2]);
     pin = atoi(argv[3]);
-    spi_cs = GPIO(port,pin);
+    spi_cs = GPIO_PIN(port,pin);
     if (argc >= 5) {
         spi_mode = argv[4][0] - '0';
         if (spi_mode < 0 || spi_mode > 3) {