From 39a5d7c632ec25bcaaa6f296effe719bbc62a6ed Mon Sep 17 00:00:00 2001
From: Karl Palsson <karlp@tweak.net.au>
Date: Sun, 19 Sep 2021 21:56:37 +0000
Subject: stm32l1: initial support, incomplete

---
 platforms/stm32/index.yaml |   4 +
 platforms/stm32/l1.yaml    | 213 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 217 insertions(+)
 create mode 100644 platforms/stm32/l1.yaml

(limited to 'platforms/stm32')

diff --git a/platforms/stm32/index.yaml b/platforms/stm32/index.yaml
index 3670138..713b9c3 100644
--- a/platforms/stm32/index.yaml
+++ b/platforms/stm32/index.yaml
@@ -14,6 +14,10 @@
         family: f7
       -: !import f7.yaml
 
+    - match:
+        family: l1
+      -: !import l1.yaml
+
     - match:
         family: wb
       -: !import wb.yaml
diff --git a/platforms/stm32/l1.yaml b/platforms/stm32/l1.yaml
new file mode 100644
index 0000000..3225537
--- /dev/null
+++ b/platforms/stm32/l1.yaml
@@ -0,0 +1,213 @@
+# Careful, this doesn't handle old non-A suffix parts, nor does it handle L100!
+# careful, this doesn't handle some of ther bigger parts!
+- match:
+    mem: 6
+  mem:
+    flash:
+      size: 32k
+    ram:
+      size: 16k
+
+- match:
+    mem: 8
+  mem:
+    flash:
+      size: 64k
+    ram:
+      size: 32k
+
+- match:
+    mem: b
+  mem:
+    flash:
+      size: 128k
+    ram:
+      size: 32k
+
+- match:
+    mem: c
+  mem:
+    flash:
+      size: 256k
+    ram:
+      size: 32k
+
+- match:
+    mem: d
+  mem:
+    flash:
+      size: 384k
+    ram:
+      size: 80k
+
+
+- mem:
+    flash:
+      origin: 0x08000000
+    ram:
+      origin: 0x20000000
+    # TODO - eeprom?
+
+  periph:
+    stm32_dma:
+      DMA1:
+        type: v1
+        offset: 0x40026000
+      DMA2:
+        type: v1
+        offset: 0x40026400
+
+    stm32_gpio:
+      GPIOA:
+        offset: 0x40020000
+      GPIOB:
+        offset: 0x40020400
+      GPIOC:
+        offset: 0x40020800
+      GPIOD:
+        offset: 0x40020c00
+      GPIOE:
+        offset: 0x40021000
+      GPIOF:
+        offset: 0x40021800
+      GPIOG:
+        offset: 0x40021c00
+      GPIOH:
+        offset: 0x40021400
+
+    stm32_timer:
+      TIM2:
+        offset: 0x40000000
+      TIM3:
+        offset: 0x40000400
+      TIM4:
+        offset: 0x40000800
+      TIM5:
+        offset: 0x40000c00
+      TIM6:
+        offset: 0x40001000
+      TIM7:
+        offset: 0x40001400
+      TIM9:
+        offset: 0x40010800
+      TIM10:
+        offset: 0x40010c00
+      TIM11:
+        offset: 0x40011000
+
+    rcc:
+      RCC:
+        offset: 0x40023800
+        type: l1
+        bus:
+          AHB:
+            GPIOA: 0
+            GPIOB: 1
+            GPIOC: 2
+            GPIOD: 3
+            GPIOE: 4
+            GPIOH: 5
+            GPIOF: 6
+            GPIOG: 7
+            CRC: 12
+            FLITF: 15
+            DMA1: 24
+            DMA2: 25
+            AES: 27
+            FSMC: 30
+
+          APB1:
+            TIM2: 0
+            TIM3: 1
+            TIM4: 2
+            TIM5: 3
+            TIM6: 4
+            TIM7: 5
+            LCD: 9
+            WWDG: 11
+            SPI2: 14
+            SPI3: 15
+            USART2: 17
+            USART3: 18
+            UART4: 19
+            UART5: 20
+            I2C1: 21
+            I2C2: 22
+            USB: 23
+            PWR: 28
+            DAC1: 29
+            COMP: 31
+
+          APB2:
+            SYSCFG: 0
+            TIM9: 2
+            TIM10: 3
+            TIM11: 4
+            DC1: 9
+            SDIO: 11
+            SPI1: 12
+            USART1: 14
+
+  # Careful, this covers cat 1,2,3 devices, but has conflicts for cat 4,5,6!
+  interrupt:
+    irq:
+      0: WWDG
+      1: PVD
+      2: TAMP_STAMP
+      3: RTC_WKUP
+      4: FLASH
+      5: RCC
+      6: EXTI0
+      7: EXTI1
+      8: EXTI2
+      9: EXTI3
+      10: EXTI4
+      11: DMA1_CH1
+      12: DMA1_CH2
+      13: DMA1_CH3
+      14: DMA1_CH4
+      15: DMA1_CH5
+      16: DMA1_CH6
+      17: DMA1_CH7
+      18: ADC1
+      19: USB_HP
+      20: USB_LP
+      21: DAC
+      22: COMP_TSC
+      23: EXTI9_5
+      24: LCD
+      25: TIM9
+      26: TIM10
+      27: TIM11
+      28: TIM2
+      29: TIM3
+      30: TIM4
+      31: I2C1_EV
+      32: I2C1_ER
+      33: I2C2_EV
+      34: I2C2_ER
+      35: SPI1
+      36: SPI2
+      37: USART1
+      38: USART2
+      39: USART3
+      40: EXTI15_10
+      41: RTC_Alarm
+      42: USB_FS_WKUP
+      43: TIM6
+      44: TIM7
+      45: TIM5
+      46: SPI3
+      47: DMA2_CH1
+      48: DMA2_CH2
+      49: DMA2_CH3
+      50: DMA2_CH4
+      51: DMA2_CH5
+      52: AES
+      53: COMP_ACQ
+
+  define:
+    - STM32L1
+
+  meta:
+    cpu: cortex-m3
-- 
cgit v1.2.3