diff --git a/src/main/drivers/dma.c b/src/main/drivers/dma.c
deleted file mode 100644
index 73f2626816..0000000000
--- a/src/main/drivers/dma.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * This file is part of Cleanflight and Betaflight.
- *
- * Cleanflight and Betaflight are free software. You can redistribute
- * this software and/or modify this software under the terms of the
- * GNU General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option)
- * any later version.
- *
- * Cleanflight and Betaflight are distributed in the hope that they
- * will be useful, but WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this software.
- *
- * If not, see .
- */
-
-#include
-#include
-#include
-
-#include "platform.h"
-
-#ifdef USE_DMA
-
-#include "drivers/nvic.h"
-#include "dma.h"
-
-/*
- * DMA descriptors.
- */
-dmaChannelDescriptor_t dmaDescriptors[DMA_LAST_HANDLER] = {
- DEFINE_DMA_CHANNEL(DMA1, 1, 0),
- DEFINE_DMA_CHANNEL(DMA1, 2, 4),
- DEFINE_DMA_CHANNEL(DMA1, 3, 8),
- DEFINE_DMA_CHANNEL(DMA1, 4, 12),
- DEFINE_DMA_CHANNEL(DMA1, 5, 16),
- DEFINE_DMA_CHANNEL(DMA1, 6, 20),
- DEFINE_DMA_CHANNEL(DMA1, 7, 24),
-};
-
-/*
- * DMA IRQ Handlers
- */
-
-DEFINE_DMA_IRQ_HANDLER(1, 1, DMA1_CH1_HANDLER)
-DEFINE_DMA_IRQ_HANDLER(1, 2, DMA1_CH2_HANDLER)
-DEFINE_DMA_IRQ_HANDLER(1, 3, DMA1_CH3_HANDLER)
-DEFINE_DMA_IRQ_HANDLER(1, 4, DMA1_CH4_HANDLER)
-DEFINE_DMA_IRQ_HANDLER(1, 5, DMA1_CH5_HANDLER)
-DEFINE_DMA_IRQ_HANDLER(1, 6, DMA1_CH6_HANDLER)
-DEFINE_DMA_IRQ_HANDLER(1, 7, DMA1_CH7_HANDLER)
-
-#define RETURN_TCIF_FLAG(s, d, n) if (s == DMA ## d ## _Channel ## n) return DMA ## d ## _FLAG_TC ## n
-
-uint32_t dmaFlag_IT_TCIF(const dmaResource_t *channel)
-{
- RETURN_TCIF_FLAG((DMA_ARCH_TYPE *)channel, 1, 1);
- RETURN_TCIF_FLAG((DMA_ARCH_TYPE *)channel, 1, 2);
- RETURN_TCIF_FLAG((DMA_ARCH_TYPE *)channel, 1, 3);
- RETURN_TCIF_FLAG((DMA_ARCH_TYPE *)channel, 1, 4);
- RETURN_TCIF_FLAG((DMA_ARCH_TYPE *)channel, 1, 5);
- RETURN_TCIF_FLAG((DMA_ARCH_TYPE *)channel, 1, 6);
- RETURN_TCIF_FLAG((DMA_ARCH_TYPE *)channel, 1, 7);
- RETURN_TCIF_FLAG((DMA_ARCH_TYPE *)channel, 2, 1);
- RETURN_TCIF_FLAG((DMA_ARCH_TYPE *)channel, 2, 2);
- RETURN_TCIF_FLAG((DMA_ARCH_TYPE *)channel, 2, 3);
- RETURN_TCIF_FLAG((DMA_ARCH_TYPE *)channel, 2, 4);
- RETURN_TCIF_FLAG((DMA_ARCH_TYPE *)channel, 2, 5);
- return 0;
-}
-
-#define DMA_RCC(x) ((x) == DMA1 ? RCC_AHBPeriph_DMA1 : RCC_AHBPeriph_DMA2)
-void dmaEnable(dmaIdentifier_e identifier)
-{
- const int index = DMA_IDENTIFIER_TO_INDEX(identifier);
-
- RCC_AHBPeriphClockCmd(DMA_RCC(dmaDescriptors[index].dma), ENABLE);
-}
-
-void dmaSetHandler(dmaIdentifier_e identifier, dmaCallbackHandlerFuncPtr callback, uint32_t priority, uint32_t userParam)
-{
- NVIC_InitTypeDef NVIC_InitStructure;
-
- const int index = DMA_IDENTIFIER_TO_INDEX(identifier);
- /* TODO: remove this - enforce the init */
- RCC_AHBPeriphClockCmd(DMA_RCC(dmaDescriptors[index].dma), ENABLE);
- dmaDescriptors[index].irqHandlerCallback = callback;
- dmaDescriptors[index].userParam = userParam;
- dmaDescriptors[index].completeFlag = dmaFlag_IT_TCIF(dmaDescriptors[index].ref);
-
- NVIC_InitStructure.NVIC_IRQChannel = dmaDescriptors[index].irqN;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = NVIC_PRIORITY_BASE(priority);
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = NVIC_PRIORITY_SUB(priority);
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
-}
-#endif