diff --git a/stmhal/make-stmconst.py b/stmhal/make-stmconst.py
index 03051c557e569b47f6272e842bd3780f5efd8257..38f7a05754c3769cc71a34f18a32dfd8637e8171 100644
--- a/stmhal/make-stmconst.py
+++ b/stmhal/make-stmconst.py
@@ -29,8 +29,8 @@ class Lexer:
     regexs = (
         ('#define hex', re.compile(r'#define +(?P<id>[A-Z0-9_]+) +\(\(uint32_t\)(?P<hex>0x[0-9A-F]+)\)($| +/\*)')),
         ('#define X', re.compile(r'#define +(?P<id>[A-Z0-9_]+) +(?P<id2>[A-Z0-9_]+)($| +/\*)')),
-        ('#define X+hex', re.compile(r'#define +(?P<id>[A-Z0-9_]+) +\((?P<id2>[A-Z0-9_]+) \+ (?P<hex>0x[0-9A-F]+)\)($| +/\*)')),
-        ('#define typedef', re.compile(r'#define +(?P<id>[A-Z0-9_]+) +\(\([A-Za-z0-9_]+_TypeDef \*\) (?P<id2>[A-Z0-9_]+)\)($| +/\*)')),
+        ('#define X+hex', re.compile(r'#define +(?P<id>[A-Za-z0-9_]+) +\((?P<id2>[A-Z0-9_]+) \+ (?P<hex>0x[0-9A-F]+)\)($| +/\*)')),
+        ('#define typedef', re.compile(r'#define +(?P<id>[A-Z0-9_]+(ext)?) +\(\([A-Za-z0-9_]+_TypeDef \*\) (?P<id2>[A-Za-z0-9_]+)\)($| +/\*)')),
         ('typedef struct', re.compile(r'typedef struct$')),
         ('{', re.compile(r'{$')),
         ('}', re.compile(r'}$')),
diff --git a/stmhal/modstmconst.gen.c b/stmhal/modstmconst.gen.c
index 3f2180ebc743c702453842698575eeccba16feb1..fced5cf1a53a1ed1dcfc0474e210d77d70b3f8a2 100644
--- a/stmhal/modstmconst.gen.c
+++ b/stmhal/modstmconst.gen.c
@@ -12,8 +12,10 @@
 { MP_OBJ_NEW_QSTR(MP_QSTR_RTC), MP_OBJ_NEW_SMALL_INT(0x40002800) },
 { MP_OBJ_NEW_QSTR(MP_QSTR_WWDG), MP_OBJ_NEW_SMALL_INT(0x40002c00) },
 { MP_OBJ_NEW_QSTR(MP_QSTR_IWDG), MP_OBJ_NEW_SMALL_INT(0x40003000) },
+{ MP_OBJ_NEW_QSTR(MP_QSTR_I2S2EXT), MP_OBJ_NEW_SMALL_INT(0x40003400) },
 { MP_OBJ_NEW_QSTR(MP_QSTR_SPI2), MP_OBJ_NEW_SMALL_INT(0x40003800) },
 { MP_OBJ_NEW_QSTR(MP_QSTR_SPI3), MP_OBJ_NEW_SMALL_INT(0x40003c00) },
+{ MP_OBJ_NEW_QSTR(MP_QSTR_I2S3EXT), MP_OBJ_NEW_SMALL_INT(0x40004000) },
 { MP_OBJ_NEW_QSTR(MP_QSTR_USART2), MP_OBJ_NEW_SMALL_INT(0x40004400) },
 { MP_OBJ_NEW_QSTR(MP_QSTR_USART3), MP_OBJ_NEW_SMALL_INT(0x40004800) },
 { MP_OBJ_NEW_QSTR(MP_QSTR_UART4), MP_OBJ_NEW_SMALL_INT(0x40004c00) },
diff --git a/stmhal/qstrdefsport.h b/stmhal/qstrdefsport.h
index 62d9d191e19f62563020cc15e968786f151f8d4c..0fbf07a1eecdfbb5a5bc85b796d4f9ab4dab31bb 100644
--- a/stmhal/qstrdefsport.h
+++ b/stmhal/qstrdefsport.h
@@ -565,6 +565,8 @@ Q(I2C_OAR2)
 Q(I2C_SR1)
 Q(I2C_SR2)
 Q(I2C_TRISE)
+Q(I2S2EXT)
+Q(I2S3EXT)
 Q(IWDG)
 Q(IWDG_KR)
 Q(IWDG_PR)