diff --git a/boards/nucleo-l152re/Makefile.dep b/boards/nucleo-l152re/Makefile.dep
index 729485827299c1a63e12514b30d4943aeea41c0d..a7e11adb3cd8c6b91303c4ec2a8d7891afe8c266 100644
--- a/boards/nucleo-l152re/Makefile.dep
+++ b/boards/nucleo-l152re/Makefile.dep
@@ -1 +1,3 @@
+FEATURES_REQUIRED += periph_dma
+
 include $(RIOTBOARD)/common/nucleo/Makefile.dep
diff --git a/boards/nucleo-l152re/Makefile.features b/boards/nucleo-l152re/Makefile.features
index 8a47023499b559ca8f84290aee3b0685f81392c7..4b2f75949d4579ad574e8c1eb1431e2d02aadee0 100644
--- a/boards/nucleo-l152re/Makefile.features
+++ b/boards/nucleo-l152re/Makefile.features
@@ -1,6 +1,7 @@
 # Put defined MCU peripherals here (in alphabetical order)
 FEATURES_PROVIDED += periph_adc
 FEATURES_PROVIDED += periph_dac
+FEATURES_PROVIDED += periph_dma
 FEATURES_PROVIDED += periph_i2c
 FEATURES_PROVIDED += periph_pwm
 FEATURES_PROVIDED += periph_rtc
diff --git a/boards/nucleo-l152re/include/periph_conf.h b/boards/nucleo-l152re/include/periph_conf.h
index 307ac2d59a7582cf97b352a1989ba33ad7136058..68729981fbfa781def3d2bf9e605e510b4cdf0dd 100644
--- a/boards/nucleo-l152re/include/periph_conf.h
+++ b/boards/nucleo-l152re/include/periph_conf.h
@@ -62,6 +62,27 @@ extern "C" {
 #define CLOCK_APB1          (CLOCK_CORECLOCK / 1)
 /** @} */
 
+/**
+ * @name    DMA streams configuration
+ * @{
+ */
+#ifdef MODULE_PERIPH_DMA
+static const dma_conf_t dma_config[] = {
+    { .stream = 1 },    /* DMA1 Channel 2 - SPI1_RX / USART3_TX */
+    { .stream = 2 },    /* DMA1 Channel 3 - SPI1_TX */
+    { .stream = 6 },    /* DMA1 Channel 7 - USART2_TX */
+    { .stream = 4 },    /* DMA1 Channel 4 - USART1_TX */
+};
+
+#define DMA_0_ISR  isr_dma1_ch2
+#define DMA_1_ISR  isr_dma1_ch3
+#define DMA_2_ISR  isr_dma1_ch7
+#define DMA_3_ISR  isr_dma1_ch4
+
+#define DMA_NUMOF           (sizeof(dma_config) / sizeof(dma_config[0]))
+#endif
+/** @} */
+
 /**
  * @name   Timer configuration
  * @{
@@ -101,7 +122,11 @@ static const uart_conf_t uart_config[] = {
         .rx_af    = GPIO_AF7,
         .tx_af    = GPIO_AF7,
         .bus      = APB1,
-        .irqn     = USART2_IRQn
+        .irqn     = USART2_IRQn,
+#ifdef MODULE_PERIPH_DMA
+        .dma        = 2,
+        .dma_chan   = 2
+#endif
     },
     {
         .dev      = USART1,
@@ -111,7 +136,11 @@ static const uart_conf_t uart_config[] = {
         .rx_af    = GPIO_AF7,
         .tx_af    = GPIO_AF7,
         .bus      = APB2,
-        .irqn     = USART1_IRQn
+        .irqn     = USART1_IRQn,
+#ifdef MODULE_PERIPH_DMA
+        .dma        = 3,
+        .dma_chan   = 2
+#endif
     },
     {
         .dev      = USART3,
@@ -121,7 +150,11 @@ static const uart_conf_t uart_config[] = {
         .rx_af    = GPIO_AF7,
         .tx_af    = GPIO_AF7,
         .bus      = APB1,
-        .irqn     = USART3_IRQn
+        .irqn     = USART3_IRQn,
+#ifdef MODULE_PERIPH_DMA
+        .dma        = 0,
+        .dma_chan   = 2
+#endif
     },
 };
 
@@ -195,7 +228,13 @@ static const spi_conf_t spi_config[] = {
         .cs_pin   = GPIO_UNDEF,
         .af       = GPIO_AF5,
         .rccmask  = RCC_APB2ENR_SPI1EN,
-        .apbbus   = APB2
+        .apbbus   = APB2,
+#ifdef MODULE_PERIPH_DMA
+        .tx_dma   = 1,
+        .tx_dma_chan = 1,
+        .rx_dma   = 0,
+        .rx_dma_chan = 1,
+#endif
     }
 };