diff --git a/tests/driver_pn532/Makefile b/tests/driver_pn532/Makefile
index a3d1995b8bd132bde9b06bba8fc2b2d226287829..5411dd627d63af734d1b379f64778dddc0232576 100644
--- a/tests/driver_pn532/Makefile
+++ b/tests/driver_pn532/Makefile
@@ -11,11 +11,26 @@ TEST_PN532_I2C ?= I2C_DEV\(0\)
 TEST_PN532_RESET ?= GPIO_PIN\(0,0\)
 TEST_PN532_IRQ ?= GPIO_PIN\(0,1\)
 
+# alternative SPI configuration
+TEST_PN532_SPI ?= SPI_DEV\(0\)
+TEST_PN532_NSS ?= GPIO_PIN\(0,2\)
+
 # export parameters
 CFLAGS += -DTEST_PN532_I2C=$(TEST_PN532_I2C)
 CFLAGS += -DTEST_PN532_RESET=$(TEST_PN532_RESET)
 CFLAGS += -DTEST_PN532_IRQ=$(TEST_PN532_IRQ)
-CFLAGS += -DPN532_SUPPORT_I2C
+CFLAGS += -DTEST_PN532_SPI=$(TEST_PN532_SPI)
+CFLAGS += -DTEST_PN532_NSS=$(TEST_PN532_NSS)
+
+# select if you want to build the SPI or the I2C version of the driver:
+# set PN532_MODE to `i2c` or to `spi`
+PN532_MODE ?= i2c
+ifeq ($(PN532_MODE),i2c)
+  CFLAGS += -DPN532_SUPPORT_I2C
+endif
+ifeq ($(PN532_MODE),spi)
+  CFLAGS += -DPN532_SUPPORT_SPI
+endif
 
 CFLAGS += -I$(CURDIR)
 
diff --git a/tests/driver_pn532/main.c b/tests/driver_pn532/main.c
index 4ca9862a76fa0cc1ad527124b4a1499493abdd26..3b501dd815cd01dcb15d49225c1522dcb79f53cc 100644
--- a/tests/driver_pn532/main.c
+++ b/tests/driver_pn532/main.c
@@ -44,8 +44,13 @@ int main(void)
     static nfc_iso14443a_t card;
     static pn532_t pn532;
     unsigned len;
+    int ret;
 
-    int ret = pn532_init_i2c(&pn532, &pn532_conf[0]);
+#if defined(PN532_SUPPORT_I2C)
+    ret = pn532_init_i2c(&pn532, &pn532_conf[0]);
+#elif defined(PN532_SUPPORT_SPI)
+    ret = pn532_init_spi(&pn532, &pn532_conf[0]);
+#endif
 
     if (ret != 0) {
         LOG_INFO("init error %d\n", ret);
diff --git a/tests/driver_pn532/pn532_params.h b/tests/driver_pn532/pn532_params.h
index 590a1683c35517d51967322d775a86306fee7edf..dea2cab7de65fa84281553ad9429f37c0437c0ff 100644
--- a/tests/driver_pn532/pn532_params.h
+++ b/tests/driver_pn532/pn532_params.h
@@ -25,9 +25,16 @@ extern "C" {
 
 static const pn532_params_t pn532_conf[] = {
     {
+#if defined(PN532_SUPPORT_I2C)
         .i2c = TEST_PN532_I2C,
+#elif defined(PN532_SUPPORT_SPI)
+        .spi = TEST_PN532_SPI,
+#endif
         .reset = TEST_PN532_RESET,
         .irq = TEST_PN532_IRQ,
+#if defined(PN532_SUPPORT_SPI)
+        .nss   = TEST_PN532_NSS
+#endif
     },
 };