summaryrefslogtreecommitdiff
path: root/chip
diff options
context:
space:
mode:
authorJosie Nordrum <JosieNordrum@google.com>2022-05-19 15:38:51 -0600
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-09-06 19:10:05 +0000
commit912d6736d5cbf18c9087a5df55526b38ddf2096e (patch)
treeb9bce093f98ee59bb60e1adf23ed29a1591751c8 /chip
parent6493af0aeb66c95fb3204ae68b46aa62ec85262f (diff)
downloadchrome-ec-912d6736d5cbf18c9087a5df55526b38ddf2096e.tar.gz
stm32f0.h: update number of channels per controller
Define only channels valid for each chip. Remove reference to channel 7 when setting callbacks for DMA channels 4+. BRANCH=None BUG=b:233240524 TEST=make buildall -j Signed-off-by: Josie Nordrum <JosieNordrum@google.com> Change-Id: I0258498cc075817b7ee59963482bc6a391853a90 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3656369 Reviewed-by: Bobby Casey <bobbycasey@google.com> Commit-Queue: Josie Nordrum <josienordrum@google.com> Reviewed-by: Craig Hesling <hesling@chromium.org> Tested-by: Josie Nordrum <josienordrum@google.com>
Diffstat (limited to 'chip')
-rw-r--r--chip/stm32/dma.c4
-rw-r--r--chip/stm32/registers-stm32f0.h15
2 files changed, 10 insertions, 9 deletions
diff --git a/chip/stm32/dma.c b/chip/stm32/dma.c
index a36e015ce9..a7536fe29a 100644
--- a/chip/stm32/dma.c
+++ b/chip/stm32/dma.c
@@ -360,9 +360,7 @@ DECLARE_IRQ(STM32_IRQ_DMA_CHANNEL_2_3, dma_event_interrupt_channel_2_3, 1);
static void dma_event_interrupt_channel_4_7(void)
{
int i;
- const unsigned int max_chan = MIN(STM32_DMAC_CH7, STM32_DMAC_COUNT);
-
- for (i = STM32_DMAC_CH4; i <= max_chan; i++) {
+ for (i = STM32_DMAC_CH4; i < STM32_DMAC_COUNT; i++) {
if (STM32_DMA1_REGS->isr & STM32_DMA_ISR_TCIF(i)) {
dma_clear_isr(i);
if (dma_irq[i].cb != NULL)
diff --git a/chip/stm32/registers-stm32f0.h b/chip/stm32/registers-stm32f0.h
index 867c1cc909..f81b663284 100644
--- a/chip/stm32/registers-stm32f0.h
+++ b/chip/stm32/registers-stm32f0.h
@@ -675,19 +675,19 @@ enum dma_channel {
STM32_DMAC_CH3 = 2,
STM32_DMAC_CH4 = 3,
STM32_DMAC_CH5 = 4,
+#if defined(CHIP_VARIANT_STM32F07X) || defined(CHIP_VARIANT_STM32F09X)
STM32_DMAC_CH6 = 5,
STM32_DMAC_CH7 = 6,
- /*
- * Skip CH8, it should belong to DMA engine 1.
- * Sharing code with STM32s that have 16 engines will be easier.
- */
+#endif
+/* STM32F09 has two DMAs with 7 & 5 channels, respectively */
+#ifdef CHIP_VARIANT_STM32F09X
STM32_DMAC_CH9 = 8,
STM32_DMAC_CH10 = 9,
STM32_DMAC_CH11 = 10,
STM32_DMAC_CH12 = 11,
STM32_DMAC_CH13 = 12,
STM32_DMAC_CH14 = 13,
-
+#endif
/* Channel functions */
STM32_DMAC_ADC = STM32_DMAC_CH1,
STM32_DMAC_SPI1_RX = STM32_DMAC_CH2,
@@ -715,7 +715,10 @@ enum dma_channel {
STM32_DMAC_COUNT = 5,
#endif
};
-
+/*
+ * TODO(b/233369173): This file was originally shared by many MCUs,
+ * 8 is assumed to be the max number of channels for all chips.
+ */
#define STM32_DMAC_PER_CTLR 8
/* Registers for a single channel of the DMA controller */