aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-stm32/Cargo.toml141
-rw-r--r--embassy-stm32/gen.py5
-rw-r--r--embassy-stm32/src/chip/mod.rs141
-rw-r--r--embassy-stm32/src/chip/stm32f405oe.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f405og.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f405rg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f405vg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f405zg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f407ie.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f407ig.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f407ve.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f407vg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f407ze.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f407zg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f410c8.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f410cb.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f410r8.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f410rb.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f410t8.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f410tb.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f412ce.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f412cg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f412re.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f412rg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f412ve.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f412vg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f412ze.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f412zg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f413cg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f413ch.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f413mg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f413mh.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f413rg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f413rh.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f413vg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f413vh.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f413zg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f413zh.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f415og.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f415rg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f415vg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f415zg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f417ie.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f417ig.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f417ve.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f417vg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f417ze.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f417zg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f423ch.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f423mh.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f423rh.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f423vh.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f423zh.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f427ag.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f427ai.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f427ig.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f427ii.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f427vg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f427vi.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f427zg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f427zi.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f429ag.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f429ai.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f429be.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f429bg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f429bi.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f429ie.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f429ig.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f429ii.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f429ne.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f429ng.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f429ni.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f429ve.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f429vg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f429vi.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f429ze.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f429zg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f429zi.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f437ai.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f437ig.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f437ii.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f437vg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f437vi.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f437zg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f437zi.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f439ai.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f439bg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f439bi.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f439ig.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f439ii.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f439ng.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f439ni.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f439vg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f439vi.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f439zg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f439zi.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f469ae.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f469ag.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f469ai.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f469be.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f469bg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f469bi.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f469ie.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f469ig.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f469ii.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f469ne.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f469ng.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f469ni.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f469ve.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f469vg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f469vi.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f469ze.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f469zg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f469zi.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f479ag.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f479ai.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f479bg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f479bi.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f479ig.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f479ii.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f479ng.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f479ni.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f479vg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f479vi.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f479zg.rs1
-rw-r--r--embassy-stm32/src/chip/stm32f479zi.rs1
-rw-r--r--embassy-stm32/src/chip/stm32l412c8.rs94
-rw-r--r--embassy-stm32/src/chip/stm32l412cb.rs94
-rw-r--r--embassy-stm32/src/chip/stm32l412k8.rs94
-rw-r--r--embassy-stm32/src/chip/stm32l412kb.rs94
-rw-r--r--embassy-stm32/src/chip/stm32l412r8.rs94
-rw-r--r--embassy-stm32/src/chip/stm32l412rb.rs94
-rw-r--r--embassy-stm32/src/chip/stm32l412t8.rs94
-rw-r--r--embassy-stm32/src/chip/stm32l412tb.rs94
-rw-r--r--embassy-stm32/src/chip/stm32l422cb.rs95
-rw-r--r--embassy-stm32/src/chip/stm32l422kb.rs94
-rw-r--r--embassy-stm32/src/chip/stm32l422rb.rs95
-rw-r--r--embassy-stm32/src/chip/stm32l422tb.rs94
-rw-r--r--embassy-stm32/src/chip/stm32l431cb.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l431cc.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l431kb.rs111
-rw-r--r--embassy-stm32/src/chip/stm32l431kc.rs111
-rw-r--r--embassy-stm32/src/chip/stm32l431rb.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l431rc.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l431vc.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l432kb.rs78
-rw-r--r--embassy-stm32/src/chip/stm32l432kc.rs78
-rw-r--r--embassy-stm32/src/chip/stm32l433cb.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l433cc.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l433rb.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l433rc.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l433vc.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l442kc.rs78
-rw-r--r--embassy-stm32/src/chip/stm32l443cc.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l443rc.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l443vc.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l451cc.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l451ce.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l451rc.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l451re.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l451vc.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l451ve.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l452cc.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l452ce.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l452rc.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l452re.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l452vc.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l452ve.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l462ce.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l462re.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l462ve.rs112
-rw-r--r--embassy-stm32/src/chip/stm32l471qe.rs146
-rw-r--r--embassy-stm32/src/chip/stm32l471qg.rs146
-rw-r--r--embassy-stm32/src/chip/stm32l471re.rs146
-rw-r--r--embassy-stm32/src/chip/stm32l471rg.rs146
-rw-r--r--embassy-stm32/src/chip/stm32l471ve.rs146
-rw-r--r--embassy-stm32/src/chip/stm32l471vg.rs146
-rw-r--r--embassy-stm32/src/chip/stm32l471ze.rs146
-rw-r--r--embassy-stm32/src/chip/stm32l471zg.rs146
-rw-r--r--embassy-stm32/src/chip/stm32l475rc.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l475re.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l475rg.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l475vc.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l475ve.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l475vg.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l476je.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l476jg.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l476me.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l476mg.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l476qe.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l476qg.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l476rc.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l476re.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l476rg.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l476vc.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l476ve.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l476vg.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l476ze.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l476zg.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l485jc.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l485je.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l486jg.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l486qg.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l486rg.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l486vg.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l486zg.rs147
-rw-r--r--embassy-stm32/src/chip/stm32l496ae.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l496ag.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l496qe.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l496qg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l496re.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l496rg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l496ve.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l496vg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l496wg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l496ze.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l496zg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4a6ag.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4a6qg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4a6rg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4a6vg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4a6zg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4p5ae.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4p5ag.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4p5ce.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4p5cg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4p5qe.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4p5qg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4p5re.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4p5rg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4p5ve.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4p5vg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4p5ze.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4p5zg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4q5ag.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4q5cg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4q5qg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4q5rg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4q5vg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4q5zg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4r5ag.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4r5ai.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4r5qg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4r5qi.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4r5vg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4r5vi.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4r5zg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4r5zi.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4r7ai.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4r7vi.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4r7zi.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4r9ag.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4r9ai.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4r9vg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4r9vi.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4r9zg.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4r9zi.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4s5ai.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4s5qi.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4s5vi.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4s5zi.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4s7ai.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4s7vi.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4s7zi.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4s9ai.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4s9vi.rs164
-rw-r--r--embassy-stm32/src/chip/stm32l4s9zi.rs164
-rw-r--r--embassy-stm32/src/lib.rs3
-rw-r--r--embassy-stm32/src/rng.rs54
m---------embassy-stm32/stm32-data0
270 files changed, 20329 insertions, 1 deletions
diff --git a/embassy-stm32/Cargo.toml b/embassy-stm32/Cargo.toml
index a60827eff..cfdec6f4d 100644
--- a/embassy-stm32/Cargo.toml
+++ b/embassy-stm32/Cargo.toml
@@ -174,4 +174,145 @@ stm32f479vg = []
174stm32f479vi = [] 174stm32f479vi = []
175stm32f479zg = [] 175stm32f479zg = []
176stm32f479zi = [] 176stm32f479zi = []
177stm32l412c8 = []
178stm32l412cb = []
179stm32l412k8 = []
180stm32l412kb = []
181stm32l412r8 = []
182stm32l412rb = []
183stm32l412t8 = []
184stm32l412tb = []
185stm32l422cb = []
186stm32l422kb = []
187stm32l422rb = []
188stm32l422tb = []
189stm32l431cb = []
190stm32l431cc = []
191stm32l431kb = []
192stm32l431kc = []
193stm32l431rb = []
194stm32l431rc = []
195stm32l431vc = []
196stm32l432kb = []
197stm32l432kc = []
198stm32l433cb = []
199stm32l433cc = []
200stm32l433rb = []
201stm32l433rc = []
202stm32l433vc = []
203stm32l442kc = []
204stm32l443cc = []
205stm32l443rc = []
206stm32l443vc = []
207stm32l451cc = []
208stm32l451ce = []
209stm32l451rc = []
210stm32l451re = []
211stm32l451vc = []
212stm32l451ve = []
213stm32l452cc = []
214stm32l452ce = []
215stm32l452rc = []
216stm32l452re = []
217stm32l452vc = []
218stm32l452ve = []
219stm32l462ce = []
220stm32l462re = []
221stm32l462ve = []
222stm32l471qe = []
223stm32l471qg = []
224stm32l471re = []
225stm32l471rg = []
226stm32l471ve = []
227stm32l471vg = []
228stm32l471ze = []
229stm32l471zg = []
230stm32l475rc = []
231stm32l475re = []
232stm32l475rg = []
233stm32l475vc = []
234stm32l475ve = []
235stm32l475vg = []
236stm32l476je = []
237stm32l476jg = []
238stm32l476me = []
239stm32l476mg = []
240stm32l476qe = []
241stm32l476qg = []
242stm32l476rc = []
243stm32l476re = []
244stm32l476rg = []
245stm32l476vc = []
246stm32l476ve = []
247stm32l476vg = []
248stm32l476ze = []
249stm32l476zg = []
250stm32l485jc = []
251stm32l485je = []
252stm32l486jg = []
253stm32l486qg = []
254stm32l486rg = []
255stm32l486vg = []
256stm32l486zg = []
257stm32l496ae = []
258stm32l496ag = []
259stm32l496qe = []
260stm32l496qg = []
261stm32l496re = []
262stm32l496rg = []
263stm32l496ve = []
264stm32l496vg = []
265stm32l496wg = []
266stm32l496ze = []
267stm32l496zg = []
268stm32l4a6ag = []
269stm32l4a6qg = []
270stm32l4a6rg = []
271stm32l4a6vg = []
272stm32l4a6zg = []
273stm32l4p5ae = []
274stm32l4p5ag = []
275stm32l4p5ce = []
276stm32l4p5cg = []
277stm32l4p5qe = []
278stm32l4p5qg = []
279stm32l4p5re = []
280stm32l4p5rg = []
281stm32l4p5ve = []
282stm32l4p5vg = []
283stm32l4p5ze = []
284stm32l4p5zg = []
285stm32l4q5ag = []
286stm32l4q5cg = []
287stm32l4q5qg = []
288stm32l4q5rg = []
289stm32l4q5vg = []
290stm32l4q5zg = []
291stm32l4r5ag = []
292stm32l4r5ai = []
293stm32l4r5qg = []
294stm32l4r5qi = []
295stm32l4r5vg = []
296stm32l4r5vi = []
297stm32l4r5zg = []
298stm32l4r5zi = []
299stm32l4r7ai = []
300stm32l4r7vi = []
301stm32l4r7zi = []
302stm32l4r9ag = []
303stm32l4r9ai = []
304stm32l4r9vg = []
305stm32l4r9vi = []
306stm32l4r9zg = []
307stm32l4r9zi = []
308stm32l4s5ai = []
309stm32l4s5qi = []
310stm32l4s5vi = []
311stm32l4s5zi = []
312stm32l4s7ai = []
313stm32l4s7vi = []
314stm32l4s7zi = []
315stm32l4s9ai = []
316stm32l4s9vi = []
317stm32l4s9zi = []
177# END GENERATED FEATURES 318# END GENERATED FEATURES
diff --git a/embassy-stm32/gen.py b/embassy-stm32/gen.py
index 980eecdc7..d1b8cd81a 100644
--- a/embassy-stm32/gen.py
+++ b/embassy-stm32/gen.py
@@ -14,7 +14,7 @@ os.chdir(dname)
14# ======= load chips 14# ======= load chips
15chips = {} 15chips = {}
16for f in sorted(glob('stm32-data/data/chips/*.yaml')): 16for f in sorted(glob('stm32-data/data/chips/*.yaml')):
17 if 'STM32F4' not in f: 17 if 'STM32F4' not in f and 'STM32L4' not in f:
18 continue 18 continue
19 with open(f, 'r') as f: 19 with open(f, 'r') as f:
20 chip = yaml.load(f, Loader=yaml.SafeLoader) 20 chip = yaml.load(f, Loader=yaml.SafeLoader)
@@ -105,6 +105,9 @@ for chip in chips.values():
105 if func := funcs.get(f'{name}_CK'): 105 if func := funcs.get(f'{name}_CK'):
106 impls.append(f'impl_usart_pin!({name}, CkPin, {pin}, {func});') 106 impls.append(f'impl_usart_pin!({name}, CkPin, {pin}, {func});')
107 107
108 if peri['block'] == 'rng_v1/RNG':
109 impls.append(f'impl_rng!(0x{peri["address"]:x});')
110
108 with open(f'src/chip/{chip["name"]}.rs', 'w') as f: 111 with open(f'src/chip/{chip["name"]}.rs', 'w') as f:
109 # TODO uart etc 112 # TODO uart etc
110 # TODO import the right GPIO AF map mod 113 # TODO import the right GPIO AF map mod
diff --git a/embassy-stm32/src/chip/mod.rs b/embassy-stm32/src/chip/mod.rs
index c3cf0502a..35fff08c0 100644
--- a/embassy-stm32/src/chip/mod.rs
+++ b/embassy-stm32/src/chip/mod.rs
@@ -147,5 +147,146 @@
147#[cfg_attr(feature = "stm32f479vi", path = "stm32f479vi.rs")] 147#[cfg_attr(feature = "stm32f479vi", path = "stm32f479vi.rs")]
148#[cfg_attr(feature = "stm32f479zg", path = "stm32f479zg.rs")] 148#[cfg_attr(feature = "stm32f479zg", path = "stm32f479zg.rs")]
149#[cfg_attr(feature = "stm32f479zi", path = "stm32f479zi.rs")] 149#[cfg_attr(feature = "stm32f479zi", path = "stm32f479zi.rs")]
150#[cfg_attr(feature = "stm32l412c8", path = "stm32l412c8.rs")]
151#[cfg_attr(feature = "stm32l412cb", path = "stm32l412cb.rs")]
152#[cfg_attr(feature = "stm32l412k8", path = "stm32l412k8.rs")]
153#[cfg_attr(feature = "stm32l412kb", path = "stm32l412kb.rs")]
154#[cfg_attr(feature = "stm32l412r8", path = "stm32l412r8.rs")]
155#[cfg_attr(feature = "stm32l412rb", path = "stm32l412rb.rs")]
156#[cfg_attr(feature = "stm32l412t8", path = "stm32l412t8.rs")]
157#[cfg_attr(feature = "stm32l412tb", path = "stm32l412tb.rs")]
158#[cfg_attr(feature = "stm32l422cb", path = "stm32l422cb.rs")]
159#[cfg_attr(feature = "stm32l422kb", path = "stm32l422kb.rs")]
160#[cfg_attr(feature = "stm32l422rb", path = "stm32l422rb.rs")]
161#[cfg_attr(feature = "stm32l422tb", path = "stm32l422tb.rs")]
162#[cfg_attr(feature = "stm32l431cb", path = "stm32l431cb.rs")]
163#[cfg_attr(feature = "stm32l431cc", path = "stm32l431cc.rs")]
164#[cfg_attr(feature = "stm32l431kb", path = "stm32l431kb.rs")]
165#[cfg_attr(feature = "stm32l431kc", path = "stm32l431kc.rs")]
166#[cfg_attr(feature = "stm32l431rb", path = "stm32l431rb.rs")]
167#[cfg_attr(feature = "stm32l431rc", path = "stm32l431rc.rs")]
168#[cfg_attr(feature = "stm32l431vc", path = "stm32l431vc.rs")]
169#[cfg_attr(feature = "stm32l432kb", path = "stm32l432kb.rs")]
170#[cfg_attr(feature = "stm32l432kc", path = "stm32l432kc.rs")]
171#[cfg_attr(feature = "stm32l433cb", path = "stm32l433cb.rs")]
172#[cfg_attr(feature = "stm32l433cc", path = "stm32l433cc.rs")]
173#[cfg_attr(feature = "stm32l433rb", path = "stm32l433rb.rs")]
174#[cfg_attr(feature = "stm32l433rc", path = "stm32l433rc.rs")]
175#[cfg_attr(feature = "stm32l433vc", path = "stm32l433vc.rs")]
176#[cfg_attr(feature = "stm32l442kc", path = "stm32l442kc.rs")]
177#[cfg_attr(feature = "stm32l443cc", path = "stm32l443cc.rs")]
178#[cfg_attr(feature = "stm32l443rc", path = "stm32l443rc.rs")]
179#[cfg_attr(feature = "stm32l443vc", path = "stm32l443vc.rs")]
180#[cfg_attr(feature = "stm32l451cc", path = "stm32l451cc.rs")]
181#[cfg_attr(feature = "stm32l451ce", path = "stm32l451ce.rs")]
182#[cfg_attr(feature = "stm32l451rc", path = "stm32l451rc.rs")]
183#[cfg_attr(feature = "stm32l451re", path = "stm32l451re.rs")]
184#[cfg_attr(feature = "stm32l451vc", path = "stm32l451vc.rs")]
185#[cfg_attr(feature = "stm32l451ve", path = "stm32l451ve.rs")]
186#[cfg_attr(feature = "stm32l452cc", path = "stm32l452cc.rs")]
187#[cfg_attr(feature = "stm32l452ce", path = "stm32l452ce.rs")]
188#[cfg_attr(feature = "stm32l452rc", path = "stm32l452rc.rs")]
189#[cfg_attr(feature = "stm32l452re", path = "stm32l452re.rs")]
190#[cfg_attr(feature = "stm32l452vc", path = "stm32l452vc.rs")]
191#[cfg_attr(feature = "stm32l452ve", path = "stm32l452ve.rs")]
192#[cfg_attr(feature = "stm32l462ce", path = "stm32l462ce.rs")]
193#[cfg_attr(feature = "stm32l462re", path = "stm32l462re.rs")]
194#[cfg_attr(feature = "stm32l462ve", path = "stm32l462ve.rs")]
195#[cfg_attr(feature = "stm32l471qe", path = "stm32l471qe.rs")]
196#[cfg_attr(feature = "stm32l471qg", path = "stm32l471qg.rs")]
197#[cfg_attr(feature = "stm32l471re", path = "stm32l471re.rs")]
198#[cfg_attr(feature = "stm32l471rg", path = "stm32l471rg.rs")]
199#[cfg_attr(feature = "stm32l471ve", path = "stm32l471ve.rs")]
200#[cfg_attr(feature = "stm32l471vg", path = "stm32l471vg.rs")]
201#[cfg_attr(feature = "stm32l471ze", path = "stm32l471ze.rs")]
202#[cfg_attr(feature = "stm32l471zg", path = "stm32l471zg.rs")]
203#[cfg_attr(feature = "stm32l475rc", path = "stm32l475rc.rs")]
204#[cfg_attr(feature = "stm32l475re", path = "stm32l475re.rs")]
205#[cfg_attr(feature = "stm32l475rg", path = "stm32l475rg.rs")]
206#[cfg_attr(feature = "stm32l475vc", path = "stm32l475vc.rs")]
207#[cfg_attr(feature = "stm32l475ve", path = "stm32l475ve.rs")]
208#[cfg_attr(feature = "stm32l475vg", path = "stm32l475vg.rs")]
209#[cfg_attr(feature = "stm32l476je", path = "stm32l476je.rs")]
210#[cfg_attr(feature = "stm32l476jg", path = "stm32l476jg.rs")]
211#[cfg_attr(feature = "stm32l476me", path = "stm32l476me.rs")]
212#[cfg_attr(feature = "stm32l476mg", path = "stm32l476mg.rs")]
213#[cfg_attr(feature = "stm32l476qe", path = "stm32l476qe.rs")]
214#[cfg_attr(feature = "stm32l476qg", path = "stm32l476qg.rs")]
215#[cfg_attr(feature = "stm32l476rc", path = "stm32l476rc.rs")]
216#[cfg_attr(feature = "stm32l476re", path = "stm32l476re.rs")]
217#[cfg_attr(feature = "stm32l476rg", path = "stm32l476rg.rs")]
218#[cfg_attr(feature = "stm32l476vc", path = "stm32l476vc.rs")]
219#[cfg_attr(feature = "stm32l476ve", path = "stm32l476ve.rs")]
220#[cfg_attr(feature = "stm32l476vg", path = "stm32l476vg.rs")]
221#[cfg_attr(feature = "stm32l476ze", path = "stm32l476ze.rs")]
222#[cfg_attr(feature = "stm32l476zg", path = "stm32l476zg.rs")]
223#[cfg_attr(feature = "stm32l485jc", path = "stm32l485jc.rs")]
224#[cfg_attr(feature = "stm32l485je", path = "stm32l485je.rs")]
225#[cfg_attr(feature = "stm32l486jg", path = "stm32l486jg.rs")]
226#[cfg_attr(feature = "stm32l486qg", path = "stm32l486qg.rs")]
227#[cfg_attr(feature = "stm32l486rg", path = "stm32l486rg.rs")]
228#[cfg_attr(feature = "stm32l486vg", path = "stm32l486vg.rs")]
229#[cfg_attr(feature = "stm32l486zg", path = "stm32l486zg.rs")]
230#[cfg_attr(feature = "stm32l496ae", path = "stm32l496ae.rs")]
231#[cfg_attr(feature = "stm32l496ag", path = "stm32l496ag.rs")]
232#[cfg_attr(feature = "stm32l496qe", path = "stm32l496qe.rs")]
233#[cfg_attr(feature = "stm32l496qg", path = "stm32l496qg.rs")]
234#[cfg_attr(feature = "stm32l496re", path = "stm32l496re.rs")]
235#[cfg_attr(feature = "stm32l496rg", path = "stm32l496rg.rs")]
236#[cfg_attr(feature = "stm32l496ve", path = "stm32l496ve.rs")]
237#[cfg_attr(feature = "stm32l496vg", path = "stm32l496vg.rs")]
238#[cfg_attr(feature = "stm32l496wg", path = "stm32l496wg.rs")]
239#[cfg_attr(feature = "stm32l496ze", path = "stm32l496ze.rs")]
240#[cfg_attr(feature = "stm32l496zg", path = "stm32l496zg.rs")]
241#[cfg_attr(feature = "stm32l4a6ag", path = "stm32l4a6ag.rs")]
242#[cfg_attr(feature = "stm32l4a6qg", path = "stm32l4a6qg.rs")]
243#[cfg_attr(feature = "stm32l4a6rg", path = "stm32l4a6rg.rs")]
244#[cfg_attr(feature = "stm32l4a6vg", path = "stm32l4a6vg.rs")]
245#[cfg_attr(feature = "stm32l4a6zg", path = "stm32l4a6zg.rs")]
246#[cfg_attr(feature = "stm32l4p5ae", path = "stm32l4p5ae.rs")]
247#[cfg_attr(feature = "stm32l4p5ag", path = "stm32l4p5ag.rs")]
248#[cfg_attr(feature = "stm32l4p5ce", path = "stm32l4p5ce.rs")]
249#[cfg_attr(feature = "stm32l4p5cg", path = "stm32l4p5cg.rs")]
250#[cfg_attr(feature = "stm32l4p5qe", path = "stm32l4p5qe.rs")]
251#[cfg_attr(feature = "stm32l4p5qg", path = "stm32l4p5qg.rs")]
252#[cfg_attr(feature = "stm32l4p5re", path = "stm32l4p5re.rs")]
253#[cfg_attr(feature = "stm32l4p5rg", path = "stm32l4p5rg.rs")]
254#[cfg_attr(feature = "stm32l4p5ve", path = "stm32l4p5ve.rs")]
255#[cfg_attr(feature = "stm32l4p5vg", path = "stm32l4p5vg.rs")]
256#[cfg_attr(feature = "stm32l4p5ze", path = "stm32l4p5ze.rs")]
257#[cfg_attr(feature = "stm32l4p5zg", path = "stm32l4p5zg.rs")]
258#[cfg_attr(feature = "stm32l4q5ag", path = "stm32l4q5ag.rs")]
259#[cfg_attr(feature = "stm32l4q5cg", path = "stm32l4q5cg.rs")]
260#[cfg_attr(feature = "stm32l4q5qg", path = "stm32l4q5qg.rs")]
261#[cfg_attr(feature = "stm32l4q5rg", path = "stm32l4q5rg.rs")]
262#[cfg_attr(feature = "stm32l4q5vg", path = "stm32l4q5vg.rs")]
263#[cfg_attr(feature = "stm32l4q5zg", path = "stm32l4q5zg.rs")]
264#[cfg_attr(feature = "stm32l4r5ag", path = "stm32l4r5ag.rs")]
265#[cfg_attr(feature = "stm32l4r5ai", path = "stm32l4r5ai.rs")]
266#[cfg_attr(feature = "stm32l4r5qg", path = "stm32l4r5qg.rs")]
267#[cfg_attr(feature = "stm32l4r5qi", path = "stm32l4r5qi.rs")]
268#[cfg_attr(feature = "stm32l4r5vg", path = "stm32l4r5vg.rs")]
269#[cfg_attr(feature = "stm32l4r5vi", path = "stm32l4r5vi.rs")]
270#[cfg_attr(feature = "stm32l4r5zg", path = "stm32l4r5zg.rs")]
271#[cfg_attr(feature = "stm32l4r5zi", path = "stm32l4r5zi.rs")]
272#[cfg_attr(feature = "stm32l4r7ai", path = "stm32l4r7ai.rs")]
273#[cfg_attr(feature = "stm32l4r7vi", path = "stm32l4r7vi.rs")]
274#[cfg_attr(feature = "stm32l4r7zi", path = "stm32l4r7zi.rs")]
275#[cfg_attr(feature = "stm32l4r9ag", path = "stm32l4r9ag.rs")]
276#[cfg_attr(feature = "stm32l4r9ai", path = "stm32l4r9ai.rs")]
277#[cfg_attr(feature = "stm32l4r9vg", path = "stm32l4r9vg.rs")]
278#[cfg_attr(feature = "stm32l4r9vi", path = "stm32l4r9vi.rs")]
279#[cfg_attr(feature = "stm32l4r9zg", path = "stm32l4r9zg.rs")]
280#[cfg_attr(feature = "stm32l4r9zi", path = "stm32l4r9zi.rs")]
281#[cfg_attr(feature = "stm32l4s5ai", path = "stm32l4s5ai.rs")]
282#[cfg_attr(feature = "stm32l4s5qi", path = "stm32l4s5qi.rs")]
283#[cfg_attr(feature = "stm32l4s5vi", path = "stm32l4s5vi.rs")]
284#[cfg_attr(feature = "stm32l4s5zi", path = "stm32l4s5zi.rs")]
285#[cfg_attr(feature = "stm32l4s7ai", path = "stm32l4s7ai.rs")]
286#[cfg_attr(feature = "stm32l4s7vi", path = "stm32l4s7vi.rs")]
287#[cfg_attr(feature = "stm32l4s7zi", path = "stm32l4s7zi.rs")]
288#[cfg_attr(feature = "stm32l4s9ai", path = "stm32l4s9ai.rs")]
289#[cfg_attr(feature = "stm32l4s9vi", path = "stm32l4s9vi.rs")]
290#[cfg_attr(feature = "stm32l4s9zi", path = "stm32l4s9zi.rs")]
150mod chip; 291mod chip;
151pub use chip::*; 292pub use chip::*;
diff --git a/embassy-stm32/src/chip/stm32f405oe.rs b/embassy-stm32/src/chip/stm32f405oe.rs
index a4a3ba27b..706b2af17 100644
--- a/embassy-stm32/src/chip/stm32f405oe.rs
+++ b/embassy-stm32/src/chip/stm32f405oe.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f405og.rs b/embassy-stm32/src/chip/stm32f405og.rs
index a4a3ba27b..706b2af17 100644
--- a/embassy-stm32/src/chip/stm32f405og.rs
+++ b/embassy-stm32/src/chip/stm32f405og.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f405rg.rs b/embassy-stm32/src/chip/stm32f405rg.rs
index a4a3ba27b..706b2af17 100644
--- a/embassy-stm32/src/chip/stm32f405rg.rs
+++ b/embassy-stm32/src/chip/stm32f405rg.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f405vg.rs b/embassy-stm32/src/chip/stm32f405vg.rs
index a4a3ba27b..706b2af17 100644
--- a/embassy-stm32/src/chip/stm32f405vg.rs
+++ b/embassy-stm32/src/chip/stm32f405vg.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f405zg.rs b/embassy-stm32/src/chip/stm32f405zg.rs
index a4a3ba27b..706b2af17 100644
--- a/embassy-stm32/src/chip/stm32f405zg.rs
+++ b/embassy-stm32/src/chip/stm32f405zg.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f407ie.rs b/embassy-stm32/src/chip/stm32f407ie.rs
index 814448ea0..48db7fa2e 100644
--- a/embassy-stm32/src/chip/stm32f407ie.rs
+++ b/embassy-stm32/src/chip/stm32f407ie.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f407ig.rs b/embassy-stm32/src/chip/stm32f407ig.rs
index 814448ea0..48db7fa2e 100644
--- a/embassy-stm32/src/chip/stm32f407ig.rs
+++ b/embassy-stm32/src/chip/stm32f407ig.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f407ve.rs b/embassy-stm32/src/chip/stm32f407ve.rs
index 814448ea0..48db7fa2e 100644
--- a/embassy-stm32/src/chip/stm32f407ve.rs
+++ b/embassy-stm32/src/chip/stm32f407ve.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f407vg.rs b/embassy-stm32/src/chip/stm32f407vg.rs
index 814448ea0..48db7fa2e 100644
--- a/embassy-stm32/src/chip/stm32f407vg.rs
+++ b/embassy-stm32/src/chip/stm32f407vg.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f407ze.rs b/embassy-stm32/src/chip/stm32f407ze.rs
index 814448ea0..48db7fa2e 100644
--- a/embassy-stm32/src/chip/stm32f407ze.rs
+++ b/embassy-stm32/src/chip/stm32f407ze.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f407zg.rs b/embassy-stm32/src/chip/stm32f407zg.rs
index 814448ea0..48db7fa2e 100644
--- a/embassy-stm32/src/chip/stm32f407zg.rs
+++ b/embassy-stm32/src/chip/stm32f407zg.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f410c8.rs b/embassy-stm32/src/chip/stm32f410c8.rs
index ab6ffbc4e..400fd889e 100644
--- a/embassy-stm32/src/chip/stm32f410c8.rs
+++ b/embassy-stm32/src/chip/stm32f410c8.rs
@@ -74,6 +74,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
74impl_gpio_pin!(PH13, 7, 13, EXTI13); 74impl_gpio_pin!(PH13, 7, 13, EXTI13);
75impl_gpio_pin!(PH14, 7, 14, EXTI14); 75impl_gpio_pin!(PH14, 7, 14, EXTI14);
76impl_gpio_pin!(PH15, 7, 15, EXTI15); 76impl_gpio_pin!(PH15, 7, 15, EXTI15);
77impl_rng!(0x40080000);
77impl_usart!(USART1, 0x40011000); 78impl_usart!(USART1, 0x40011000);
78impl_usart_pin!(USART1, RxPin, PA10, 7); 79impl_usart_pin!(USART1, RxPin, PA10, 7);
79impl_usart_pin!(USART1, CtsPin, PA11, 7); 80impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f410cb.rs b/embassy-stm32/src/chip/stm32f410cb.rs
index ab6ffbc4e..400fd889e 100644
--- a/embassy-stm32/src/chip/stm32f410cb.rs
+++ b/embassy-stm32/src/chip/stm32f410cb.rs
@@ -74,6 +74,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
74impl_gpio_pin!(PH13, 7, 13, EXTI13); 74impl_gpio_pin!(PH13, 7, 13, EXTI13);
75impl_gpio_pin!(PH14, 7, 14, EXTI14); 75impl_gpio_pin!(PH14, 7, 14, EXTI14);
76impl_gpio_pin!(PH15, 7, 15, EXTI15); 76impl_gpio_pin!(PH15, 7, 15, EXTI15);
77impl_rng!(0x40080000);
77impl_usart!(USART1, 0x40011000); 78impl_usart!(USART1, 0x40011000);
78impl_usart_pin!(USART1, RxPin, PA10, 7); 79impl_usart_pin!(USART1, RxPin, PA10, 7);
79impl_usart_pin!(USART1, CtsPin, PA11, 7); 80impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f410r8.rs b/embassy-stm32/src/chip/stm32f410r8.rs
index ab6ffbc4e..400fd889e 100644
--- a/embassy-stm32/src/chip/stm32f410r8.rs
+++ b/embassy-stm32/src/chip/stm32f410r8.rs
@@ -74,6 +74,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
74impl_gpio_pin!(PH13, 7, 13, EXTI13); 74impl_gpio_pin!(PH13, 7, 13, EXTI13);
75impl_gpio_pin!(PH14, 7, 14, EXTI14); 75impl_gpio_pin!(PH14, 7, 14, EXTI14);
76impl_gpio_pin!(PH15, 7, 15, EXTI15); 76impl_gpio_pin!(PH15, 7, 15, EXTI15);
77impl_rng!(0x40080000);
77impl_usart!(USART1, 0x40011000); 78impl_usart!(USART1, 0x40011000);
78impl_usart_pin!(USART1, RxPin, PA10, 7); 79impl_usart_pin!(USART1, RxPin, PA10, 7);
79impl_usart_pin!(USART1, CtsPin, PA11, 7); 80impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f410rb.rs b/embassy-stm32/src/chip/stm32f410rb.rs
index ab6ffbc4e..400fd889e 100644
--- a/embassy-stm32/src/chip/stm32f410rb.rs
+++ b/embassy-stm32/src/chip/stm32f410rb.rs
@@ -74,6 +74,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
74impl_gpio_pin!(PH13, 7, 13, EXTI13); 74impl_gpio_pin!(PH13, 7, 13, EXTI13);
75impl_gpio_pin!(PH14, 7, 14, EXTI14); 75impl_gpio_pin!(PH14, 7, 14, EXTI14);
76impl_gpio_pin!(PH15, 7, 15, EXTI15); 76impl_gpio_pin!(PH15, 7, 15, EXTI15);
77impl_rng!(0x40080000);
77impl_usart!(USART1, 0x40011000); 78impl_usart!(USART1, 0x40011000);
78impl_usart_pin!(USART1, RxPin, PA10, 7); 79impl_usart_pin!(USART1, RxPin, PA10, 7);
79impl_usart_pin!(USART1, CtsPin, PA11, 7); 80impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f410t8.rs b/embassy-stm32/src/chip/stm32f410t8.rs
index d7e117fa6..ec19c6d31 100644
--- a/embassy-stm32/src/chip/stm32f410t8.rs
+++ b/embassy-stm32/src/chip/stm32f410t8.rs
@@ -74,6 +74,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
74impl_gpio_pin!(PH13, 7, 13, EXTI13); 74impl_gpio_pin!(PH13, 7, 13, EXTI13);
75impl_gpio_pin!(PH14, 7, 14, EXTI14); 75impl_gpio_pin!(PH14, 7, 14, EXTI14);
76impl_gpio_pin!(PH15, 7, 15, EXTI15); 76impl_gpio_pin!(PH15, 7, 15, EXTI15);
77impl_rng!(0x40080000);
77impl_usart!(USART1, 0x40011000); 78impl_usart!(USART1, 0x40011000);
78impl_usart_pin!(USART1, RxPin, PA10, 7); 79impl_usart_pin!(USART1, RxPin, PA10, 7);
79impl_usart_pin!(USART1, CtsPin, PA11, 7); 80impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f410tb.rs b/embassy-stm32/src/chip/stm32f410tb.rs
index d7e117fa6..ec19c6d31 100644
--- a/embassy-stm32/src/chip/stm32f410tb.rs
+++ b/embassy-stm32/src/chip/stm32f410tb.rs
@@ -74,6 +74,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
74impl_gpio_pin!(PH13, 7, 13, EXTI13); 74impl_gpio_pin!(PH13, 7, 13, EXTI13);
75impl_gpio_pin!(PH14, 7, 14, EXTI14); 75impl_gpio_pin!(PH14, 7, 14, EXTI14);
76impl_gpio_pin!(PH15, 7, 15, EXTI15); 76impl_gpio_pin!(PH15, 7, 15, EXTI15);
77impl_rng!(0x40080000);
77impl_usart!(USART1, 0x40011000); 78impl_usart!(USART1, 0x40011000);
78impl_usart_pin!(USART1, RxPin, PA10, 7); 79impl_usart_pin!(USART1, RxPin, PA10, 7);
79impl_usart_pin!(USART1, CtsPin, PA11, 7); 80impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f412ce.rs b/embassy-stm32/src/chip/stm32f412ce.rs
index d67df4587..f21945526 100644
--- a/embassy-stm32/src/chip/stm32f412ce.rs
+++ b/embassy-stm32/src/chip/stm32f412ce.rs
@@ -75,6 +75,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
75impl_gpio_pin!(PH13, 7, 13, EXTI13); 75impl_gpio_pin!(PH13, 7, 13, EXTI13);
76impl_gpio_pin!(PH14, 7, 14, EXTI14); 76impl_gpio_pin!(PH14, 7, 14, EXTI14);
77impl_gpio_pin!(PH15, 7, 15, EXTI15); 77impl_gpio_pin!(PH15, 7, 15, EXTI15);
78impl_rng!(0x50060800);
78impl_usart!(USART1, 0x40011000); 79impl_usart!(USART1, 0x40011000);
79impl_usart_pin!(USART1, RxPin, PA10, 7); 80impl_usart_pin!(USART1, RxPin, PA10, 7);
80impl_usart_pin!(USART1, CtsPin, PA11, 7); 81impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f412cg.rs b/embassy-stm32/src/chip/stm32f412cg.rs
index d67df4587..f21945526 100644
--- a/embassy-stm32/src/chip/stm32f412cg.rs
+++ b/embassy-stm32/src/chip/stm32f412cg.rs
@@ -75,6 +75,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
75impl_gpio_pin!(PH13, 7, 13, EXTI13); 75impl_gpio_pin!(PH13, 7, 13, EXTI13);
76impl_gpio_pin!(PH14, 7, 14, EXTI14); 76impl_gpio_pin!(PH14, 7, 14, EXTI14);
77impl_gpio_pin!(PH15, 7, 15, EXTI15); 77impl_gpio_pin!(PH15, 7, 15, EXTI15);
78impl_rng!(0x50060800);
78impl_usart!(USART1, 0x40011000); 79impl_usart!(USART1, 0x40011000);
79impl_usart_pin!(USART1, RxPin, PA10, 7); 80impl_usart_pin!(USART1, RxPin, PA10, 7);
80impl_usart_pin!(USART1, CtsPin, PA11, 7); 81impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f412re.rs b/embassy-stm32/src/chip/stm32f412re.rs
index cd7fcf4df..60dafe056 100644
--- a/embassy-stm32/src/chip/stm32f412re.rs
+++ b/embassy-stm32/src/chip/stm32f412re.rs
@@ -92,6 +92,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
92impl_gpio_pin!(PH13, 7, 13, EXTI13); 92impl_gpio_pin!(PH13, 7, 13, EXTI13);
93impl_gpio_pin!(PH14, 7, 14, EXTI14); 93impl_gpio_pin!(PH14, 7, 14, EXTI14);
94impl_gpio_pin!(PH15, 7, 15, EXTI15); 94impl_gpio_pin!(PH15, 7, 15, EXTI15);
95impl_rng!(0x50060800);
95impl_usart!(USART1, 0x40011000); 96impl_usart!(USART1, 0x40011000);
96impl_usart_pin!(USART1, RxPin, PA10, 7); 97impl_usart_pin!(USART1, RxPin, PA10, 7);
97impl_usart_pin!(USART1, CtsPin, PA11, 7); 98impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f412rg.rs b/embassy-stm32/src/chip/stm32f412rg.rs
index cd7fcf4df..60dafe056 100644
--- a/embassy-stm32/src/chip/stm32f412rg.rs
+++ b/embassy-stm32/src/chip/stm32f412rg.rs
@@ -92,6 +92,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
92impl_gpio_pin!(PH13, 7, 13, EXTI13); 92impl_gpio_pin!(PH13, 7, 13, EXTI13);
93impl_gpio_pin!(PH14, 7, 14, EXTI14); 93impl_gpio_pin!(PH14, 7, 14, EXTI14);
94impl_gpio_pin!(PH15, 7, 15, EXTI15); 94impl_gpio_pin!(PH15, 7, 15, EXTI15);
95impl_rng!(0x50060800);
95impl_usart!(USART1, 0x40011000); 96impl_usart!(USART1, 0x40011000);
96impl_usart_pin!(USART1, RxPin, PA10, 7); 97impl_usart_pin!(USART1, RxPin, PA10, 7);
97impl_usart_pin!(USART1, CtsPin, PA11, 7); 98impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f412ve.rs b/embassy-stm32/src/chip/stm32f412ve.rs
index ce727bb9e..c405a0410 100644
--- a/embassy-stm32/src/chip/stm32f412ve.rs
+++ b/embassy-stm32/src/chip/stm32f412ve.rs
@@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13); 143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14); 144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15); 145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
146impl_usart!(USART1, 0x40011000); 147impl_usart!(USART1, 0x40011000);
147impl_usart_pin!(USART1, RxPin, PA10, 7); 148impl_usart_pin!(USART1, RxPin, PA10, 7);
148impl_usart_pin!(USART1, CtsPin, PA11, 7); 149impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f412vg.rs b/embassy-stm32/src/chip/stm32f412vg.rs
index ce727bb9e..c405a0410 100644
--- a/embassy-stm32/src/chip/stm32f412vg.rs
+++ b/embassy-stm32/src/chip/stm32f412vg.rs
@@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13); 143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14); 144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15); 145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
146impl_usart!(USART1, 0x40011000); 147impl_usart!(USART1, 0x40011000);
147impl_usart_pin!(USART1, RxPin, PA10, 7); 148impl_usart_pin!(USART1, RxPin, PA10, 7);
148impl_usart_pin!(USART1, CtsPin, PA11, 7); 149impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f412ze.rs b/embassy-stm32/src/chip/stm32f412ze.rs
index ce727bb9e..c405a0410 100644
--- a/embassy-stm32/src/chip/stm32f412ze.rs
+++ b/embassy-stm32/src/chip/stm32f412ze.rs
@@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13); 143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14); 144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15); 145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
146impl_usart!(USART1, 0x40011000); 147impl_usart!(USART1, 0x40011000);
147impl_usart_pin!(USART1, RxPin, PA10, 7); 148impl_usart_pin!(USART1, RxPin, PA10, 7);
148impl_usart_pin!(USART1, CtsPin, PA11, 7); 149impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f412zg.rs b/embassy-stm32/src/chip/stm32f412zg.rs
index ce727bb9e..c405a0410 100644
--- a/embassy-stm32/src/chip/stm32f412zg.rs
+++ b/embassy-stm32/src/chip/stm32f412zg.rs
@@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13); 143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14); 144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15); 145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
146impl_usart!(USART1, 0x40011000); 147impl_usart!(USART1, 0x40011000);
147impl_usart_pin!(USART1, RxPin, PA10, 7); 148impl_usart_pin!(USART1, RxPin, PA10, 7);
148impl_usart_pin!(USART1, CtsPin, PA11, 7); 149impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f413cg.rs b/embassy-stm32/src/chip/stm32f413cg.rs
index 71ac97e65..557723e94 100644
--- a/embassy-stm32/src/chip/stm32f413cg.rs
+++ b/embassy-stm32/src/chip/stm32f413cg.rs
@@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13); 143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14); 144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15); 145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
146impl_usart!(USART1, 0x40011000); 147impl_usart!(USART1, 0x40011000);
147impl_usart_pin!(USART1, RxPin, PA10, 7); 148impl_usart_pin!(USART1, RxPin, PA10, 7);
148impl_usart_pin!(USART1, CtsPin, PA11, 7); 149impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f413ch.rs b/embassy-stm32/src/chip/stm32f413ch.rs
index 71ac97e65..557723e94 100644
--- a/embassy-stm32/src/chip/stm32f413ch.rs
+++ b/embassy-stm32/src/chip/stm32f413ch.rs
@@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13); 143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14); 144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15); 145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
146impl_usart!(USART1, 0x40011000); 147impl_usart!(USART1, 0x40011000);
147impl_usart_pin!(USART1, RxPin, PA10, 7); 148impl_usart_pin!(USART1, RxPin, PA10, 7);
148impl_usart_pin!(USART1, CtsPin, PA11, 7); 149impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f413mg.rs b/embassy-stm32/src/chip/stm32f413mg.rs
index 20e1d6087..009e1e872 100644
--- a/embassy-stm32/src/chip/stm32f413mg.rs
+++ b/embassy-stm32/src/chip/stm32f413mg.rs
@@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13); 143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14); 144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15); 145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
146impl_usart!(USART1, 0x40011000); 147impl_usart!(USART1, 0x40011000);
147impl_usart_pin!(USART1, RxPin, PA10, 7); 148impl_usart_pin!(USART1, RxPin, PA10, 7);
148impl_usart_pin!(USART1, CtsPin, PA11, 7); 149impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f413mh.rs b/embassy-stm32/src/chip/stm32f413mh.rs
index 20e1d6087..009e1e872 100644
--- a/embassy-stm32/src/chip/stm32f413mh.rs
+++ b/embassy-stm32/src/chip/stm32f413mh.rs
@@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13); 143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14); 144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15); 145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
146impl_usart!(USART1, 0x40011000); 147impl_usart!(USART1, 0x40011000);
147impl_usart_pin!(USART1, RxPin, PA10, 7); 148impl_usart_pin!(USART1, RxPin, PA10, 7);
148impl_usart_pin!(USART1, CtsPin, PA11, 7); 149impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f413rg.rs b/embassy-stm32/src/chip/stm32f413rg.rs
index 20e1d6087..009e1e872 100644
--- a/embassy-stm32/src/chip/stm32f413rg.rs
+++ b/embassy-stm32/src/chip/stm32f413rg.rs
@@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13); 143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14); 144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15); 145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
146impl_usart!(USART1, 0x40011000); 147impl_usart!(USART1, 0x40011000);
147impl_usart_pin!(USART1, RxPin, PA10, 7); 148impl_usart_pin!(USART1, RxPin, PA10, 7);
148impl_usart_pin!(USART1, CtsPin, PA11, 7); 149impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f413rh.rs b/embassy-stm32/src/chip/stm32f413rh.rs
index 20e1d6087..009e1e872 100644
--- a/embassy-stm32/src/chip/stm32f413rh.rs
+++ b/embassy-stm32/src/chip/stm32f413rh.rs
@@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13); 143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14); 144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15); 145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
146impl_usart!(USART1, 0x40011000); 147impl_usart!(USART1, 0x40011000);
147impl_usart_pin!(USART1, RxPin, PA10, 7); 148impl_usart_pin!(USART1, RxPin, PA10, 7);
148impl_usart_pin!(USART1, CtsPin, PA11, 7); 149impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f413vg.rs b/embassy-stm32/src/chip/stm32f413vg.rs
index 33997b9f9..1212322ec 100644
--- a/embassy-stm32/src/chip/stm32f413vg.rs
+++ b/embassy-stm32/src/chip/stm32f413vg.rs
@@ -144,6 +144,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13); 144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14); 145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15); 146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
147impl_usart!(USART1, 0x40011000); 148impl_usart!(USART1, 0x40011000);
148impl_usart_pin!(USART1, RxPin, PA10, 7); 149impl_usart_pin!(USART1, RxPin, PA10, 7);
149impl_usart_pin!(USART1, CtsPin, PA11, 7); 150impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f413vh.rs b/embassy-stm32/src/chip/stm32f413vh.rs
index 33997b9f9..1212322ec 100644
--- a/embassy-stm32/src/chip/stm32f413vh.rs
+++ b/embassy-stm32/src/chip/stm32f413vh.rs
@@ -144,6 +144,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13); 144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14); 145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15); 146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
147impl_usart!(USART1, 0x40011000); 148impl_usart!(USART1, 0x40011000);
148impl_usart_pin!(USART1, RxPin, PA10, 7); 149impl_usart_pin!(USART1, RxPin, PA10, 7);
149impl_usart_pin!(USART1, CtsPin, PA11, 7); 150impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f413zg.rs b/embassy-stm32/src/chip/stm32f413zg.rs
index 33997b9f9..1212322ec 100644
--- a/embassy-stm32/src/chip/stm32f413zg.rs
+++ b/embassy-stm32/src/chip/stm32f413zg.rs
@@ -144,6 +144,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13); 144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14); 145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15); 146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
147impl_usart!(USART1, 0x40011000); 148impl_usart!(USART1, 0x40011000);
148impl_usart_pin!(USART1, RxPin, PA10, 7); 149impl_usart_pin!(USART1, RxPin, PA10, 7);
149impl_usart_pin!(USART1, CtsPin, PA11, 7); 150impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f413zh.rs b/embassy-stm32/src/chip/stm32f413zh.rs
index 33997b9f9..1212322ec 100644
--- a/embassy-stm32/src/chip/stm32f413zh.rs
+++ b/embassy-stm32/src/chip/stm32f413zh.rs
@@ -144,6 +144,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13); 144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14); 145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15); 146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
147impl_usart!(USART1, 0x40011000); 148impl_usart!(USART1, 0x40011000);
148impl_usart_pin!(USART1, RxPin, PA10, 7); 149impl_usart_pin!(USART1, RxPin, PA10, 7);
149impl_usart_pin!(USART1, CtsPin, PA11, 7); 150impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f415og.rs b/embassy-stm32/src/chip/stm32f415og.rs
index 68aa43301..919e2a646 100644
--- a/embassy-stm32/src/chip/stm32f415og.rs
+++ b/embassy-stm32/src/chip/stm32f415og.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f415rg.rs b/embassy-stm32/src/chip/stm32f415rg.rs
index 68aa43301..919e2a646 100644
--- a/embassy-stm32/src/chip/stm32f415rg.rs
+++ b/embassy-stm32/src/chip/stm32f415rg.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f415vg.rs b/embassy-stm32/src/chip/stm32f415vg.rs
index 68aa43301..919e2a646 100644
--- a/embassy-stm32/src/chip/stm32f415vg.rs
+++ b/embassy-stm32/src/chip/stm32f415vg.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f415zg.rs b/embassy-stm32/src/chip/stm32f415zg.rs
index 68aa43301..919e2a646 100644
--- a/embassy-stm32/src/chip/stm32f415zg.rs
+++ b/embassy-stm32/src/chip/stm32f415zg.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f417ie.rs b/embassy-stm32/src/chip/stm32f417ie.rs
index b4f967c1c..56d3778cc 100644
--- a/embassy-stm32/src/chip/stm32f417ie.rs
+++ b/embassy-stm32/src/chip/stm32f417ie.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f417ig.rs b/embassy-stm32/src/chip/stm32f417ig.rs
index b4f967c1c..56d3778cc 100644
--- a/embassy-stm32/src/chip/stm32f417ig.rs
+++ b/embassy-stm32/src/chip/stm32f417ig.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f417ve.rs b/embassy-stm32/src/chip/stm32f417ve.rs
index b4f967c1c..56d3778cc 100644
--- a/embassy-stm32/src/chip/stm32f417ve.rs
+++ b/embassy-stm32/src/chip/stm32f417ve.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f417vg.rs b/embassy-stm32/src/chip/stm32f417vg.rs
index b4f967c1c..56d3778cc 100644
--- a/embassy-stm32/src/chip/stm32f417vg.rs
+++ b/embassy-stm32/src/chip/stm32f417vg.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f417ze.rs b/embassy-stm32/src/chip/stm32f417ze.rs
index b4f967c1c..56d3778cc 100644
--- a/embassy-stm32/src/chip/stm32f417ze.rs
+++ b/embassy-stm32/src/chip/stm32f417ze.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f417zg.rs b/embassy-stm32/src/chip/stm32f417zg.rs
index b4f967c1c..56d3778cc 100644
--- a/embassy-stm32/src/chip/stm32f417zg.rs
+++ b/embassy-stm32/src/chip/stm32f417zg.rs
@@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12);
160impl_gpio_pin!(PI13, 8, 13, EXTI13); 160impl_gpio_pin!(PI13, 8, 13, EXTI13);
161impl_gpio_pin!(PI14, 8, 14, EXTI14); 161impl_gpio_pin!(PI14, 8, 14, EXTI14);
162impl_gpio_pin!(PI15, 8, 15, EXTI15); 162impl_gpio_pin!(PI15, 8, 15, EXTI15);
163impl_rng!(0x50060800);
163impl_usart!(USART1, 0x40011000); 164impl_usart!(USART1, 0x40011000);
164impl_usart_pin!(USART1, RxPin, PA10, 7); 165impl_usart_pin!(USART1, RxPin, PA10, 7);
165impl_usart_pin!(USART1, CtsPin, PA11, 7); 166impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f423ch.rs b/embassy-stm32/src/chip/stm32f423ch.rs
index ec61ef353..4b4d17e07 100644
--- a/embassy-stm32/src/chip/stm32f423ch.rs
+++ b/embassy-stm32/src/chip/stm32f423ch.rs
@@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13); 143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14); 144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15); 145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
146impl_usart!(USART1, 0x40011000); 147impl_usart!(USART1, 0x40011000);
147impl_usart_pin!(USART1, RxPin, PA10, 7); 148impl_usart_pin!(USART1, RxPin, PA10, 7);
148impl_usart_pin!(USART1, CtsPin, PA11, 7); 149impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f423mh.rs b/embassy-stm32/src/chip/stm32f423mh.rs
index c52e01a3c..2da87958d 100644
--- a/embassy-stm32/src/chip/stm32f423mh.rs
+++ b/embassy-stm32/src/chip/stm32f423mh.rs
@@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13); 143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14); 144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15); 145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
146impl_usart!(USART1, 0x40011000); 147impl_usart!(USART1, 0x40011000);
147impl_usart_pin!(USART1, RxPin, PA10, 7); 148impl_usart_pin!(USART1, RxPin, PA10, 7);
148impl_usart_pin!(USART1, CtsPin, PA11, 7); 149impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f423rh.rs b/embassy-stm32/src/chip/stm32f423rh.rs
index c52e01a3c..2da87958d 100644
--- a/embassy-stm32/src/chip/stm32f423rh.rs
+++ b/embassy-stm32/src/chip/stm32f423rh.rs
@@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13); 143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14); 144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15); 145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
146impl_usart!(USART1, 0x40011000); 147impl_usart!(USART1, 0x40011000);
147impl_usart_pin!(USART1, RxPin, PA10, 7); 148impl_usart_pin!(USART1, RxPin, PA10, 7);
148impl_usart_pin!(USART1, CtsPin, PA11, 7); 149impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f423vh.rs b/embassy-stm32/src/chip/stm32f423vh.rs
index 4428a4475..bbe4c0566 100644
--- a/embassy-stm32/src/chip/stm32f423vh.rs
+++ b/embassy-stm32/src/chip/stm32f423vh.rs
@@ -144,6 +144,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13); 144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14); 145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15); 146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
147impl_usart!(USART1, 0x40011000); 148impl_usart!(USART1, 0x40011000);
148impl_usart_pin!(USART1, RxPin, PA10, 7); 149impl_usart_pin!(USART1, RxPin, PA10, 7);
149impl_usart_pin!(USART1, CtsPin, PA11, 7); 150impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f423zh.rs b/embassy-stm32/src/chip/stm32f423zh.rs
index 4428a4475..bbe4c0566 100644
--- a/embassy-stm32/src/chip/stm32f423zh.rs
+++ b/embassy-stm32/src/chip/stm32f423zh.rs
@@ -144,6 +144,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13); 144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14); 145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15); 146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
147impl_usart!(USART1, 0x40011000); 148impl_usart!(USART1, 0x40011000);
148impl_usart_pin!(USART1, RxPin, PA10, 7); 149impl_usart_pin!(USART1, RxPin, PA10, 7);
149impl_usart_pin!(USART1, CtsPin, PA11, 7); 150impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f427ag.rs b/embassy-stm32/src/chip/stm32f427ag.rs
index 9080dd10e..2511085a2 100644
--- a/embassy-stm32/src/chip/stm32f427ag.rs
+++ b/embassy-stm32/src/chip/stm32f427ag.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f427ai.rs b/embassy-stm32/src/chip/stm32f427ai.rs
index 9080dd10e..2511085a2 100644
--- a/embassy-stm32/src/chip/stm32f427ai.rs
+++ b/embassy-stm32/src/chip/stm32f427ai.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f427ig.rs b/embassy-stm32/src/chip/stm32f427ig.rs
index b0b4b283a..9eebdc8ed 100644
--- a/embassy-stm32/src/chip/stm32f427ig.rs
+++ b/embassy-stm32/src/chip/stm32f427ig.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f427ii.rs b/embassy-stm32/src/chip/stm32f427ii.rs
index b0b4b283a..9eebdc8ed 100644
--- a/embassy-stm32/src/chip/stm32f427ii.rs
+++ b/embassy-stm32/src/chip/stm32f427ii.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f427vg.rs b/embassy-stm32/src/chip/stm32f427vg.rs
index 98f5fe2bd..42dd8deee 100644
--- a/embassy-stm32/src/chip/stm32f427vg.rs
+++ b/embassy-stm32/src/chip/stm32f427vg.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f427vi.rs b/embassy-stm32/src/chip/stm32f427vi.rs
index 98f5fe2bd..42dd8deee 100644
--- a/embassy-stm32/src/chip/stm32f427vi.rs
+++ b/embassy-stm32/src/chip/stm32f427vi.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f427zg.rs b/embassy-stm32/src/chip/stm32f427zg.rs
index b0b4b283a..9eebdc8ed 100644
--- a/embassy-stm32/src/chip/stm32f427zg.rs
+++ b/embassy-stm32/src/chip/stm32f427zg.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f427zi.rs b/embassy-stm32/src/chip/stm32f427zi.rs
index b0b4b283a..9eebdc8ed 100644
--- a/embassy-stm32/src/chip/stm32f427zi.rs
+++ b/embassy-stm32/src/chip/stm32f427zi.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f429ag.rs b/embassy-stm32/src/chip/stm32f429ag.rs
index 5cdefdefa..0cd1fabb4 100644
--- a/embassy-stm32/src/chip/stm32f429ag.rs
+++ b/embassy-stm32/src/chip/stm32f429ag.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f429ai.rs b/embassy-stm32/src/chip/stm32f429ai.rs
index 5cdefdefa..0cd1fabb4 100644
--- a/embassy-stm32/src/chip/stm32f429ai.rs
+++ b/embassy-stm32/src/chip/stm32f429ai.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f429be.rs b/embassy-stm32/src/chip/stm32f429be.rs
index 3f63fbc48..5a7ac0a65 100644
--- a/embassy-stm32/src/chip/stm32f429be.rs
+++ b/embassy-stm32/src/chip/stm32f429be.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f429bg.rs b/embassy-stm32/src/chip/stm32f429bg.rs
index 3f63fbc48..5a7ac0a65 100644
--- a/embassy-stm32/src/chip/stm32f429bg.rs
+++ b/embassy-stm32/src/chip/stm32f429bg.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f429bi.rs b/embassy-stm32/src/chip/stm32f429bi.rs
index 3f63fbc48..5a7ac0a65 100644
--- a/embassy-stm32/src/chip/stm32f429bi.rs
+++ b/embassy-stm32/src/chip/stm32f429bi.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f429ie.rs b/embassy-stm32/src/chip/stm32f429ie.rs
index 3f63fbc48..5a7ac0a65 100644
--- a/embassy-stm32/src/chip/stm32f429ie.rs
+++ b/embassy-stm32/src/chip/stm32f429ie.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f429ig.rs b/embassy-stm32/src/chip/stm32f429ig.rs
index 3f63fbc48..5a7ac0a65 100644
--- a/embassy-stm32/src/chip/stm32f429ig.rs
+++ b/embassy-stm32/src/chip/stm32f429ig.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f429ii.rs b/embassy-stm32/src/chip/stm32f429ii.rs
index 3f63fbc48..5a7ac0a65 100644
--- a/embassy-stm32/src/chip/stm32f429ii.rs
+++ b/embassy-stm32/src/chip/stm32f429ii.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f429ne.rs b/embassy-stm32/src/chip/stm32f429ne.rs
index 3f63fbc48..5a7ac0a65 100644
--- a/embassy-stm32/src/chip/stm32f429ne.rs
+++ b/embassy-stm32/src/chip/stm32f429ne.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f429ng.rs b/embassy-stm32/src/chip/stm32f429ng.rs
index 3f63fbc48..5a7ac0a65 100644
--- a/embassy-stm32/src/chip/stm32f429ng.rs
+++ b/embassy-stm32/src/chip/stm32f429ng.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f429ni.rs b/embassy-stm32/src/chip/stm32f429ni.rs
index 3f63fbc48..5a7ac0a65 100644
--- a/embassy-stm32/src/chip/stm32f429ni.rs
+++ b/embassy-stm32/src/chip/stm32f429ni.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f429ve.rs b/embassy-stm32/src/chip/stm32f429ve.rs
index 1b224d36c..1a9a3eed3 100644
--- a/embassy-stm32/src/chip/stm32f429ve.rs
+++ b/embassy-stm32/src/chip/stm32f429ve.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f429vg.rs b/embassy-stm32/src/chip/stm32f429vg.rs
index 1b224d36c..1a9a3eed3 100644
--- a/embassy-stm32/src/chip/stm32f429vg.rs
+++ b/embassy-stm32/src/chip/stm32f429vg.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f429vi.rs b/embassy-stm32/src/chip/stm32f429vi.rs
index 1b224d36c..1a9a3eed3 100644
--- a/embassy-stm32/src/chip/stm32f429vi.rs
+++ b/embassy-stm32/src/chip/stm32f429vi.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f429ze.rs b/embassy-stm32/src/chip/stm32f429ze.rs
index 3f63fbc48..5a7ac0a65 100644
--- a/embassy-stm32/src/chip/stm32f429ze.rs
+++ b/embassy-stm32/src/chip/stm32f429ze.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f429zg.rs b/embassy-stm32/src/chip/stm32f429zg.rs
index 3f63fbc48..5a7ac0a65 100644
--- a/embassy-stm32/src/chip/stm32f429zg.rs
+++ b/embassy-stm32/src/chip/stm32f429zg.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f429zi.rs b/embassy-stm32/src/chip/stm32f429zi.rs
index 3f63fbc48..5a7ac0a65 100644
--- a/embassy-stm32/src/chip/stm32f429zi.rs
+++ b/embassy-stm32/src/chip/stm32f429zi.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f437ai.rs b/embassy-stm32/src/chip/stm32f437ai.rs
index af873cbf7..6960fb246 100644
--- a/embassy-stm32/src/chip/stm32f437ai.rs
+++ b/embassy-stm32/src/chip/stm32f437ai.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f437ig.rs b/embassy-stm32/src/chip/stm32f437ig.rs
index 5218ef78d..309b14e03 100644
--- a/embassy-stm32/src/chip/stm32f437ig.rs
+++ b/embassy-stm32/src/chip/stm32f437ig.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f437ii.rs b/embassy-stm32/src/chip/stm32f437ii.rs
index 5218ef78d..309b14e03 100644
--- a/embassy-stm32/src/chip/stm32f437ii.rs
+++ b/embassy-stm32/src/chip/stm32f437ii.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f437vg.rs b/embassy-stm32/src/chip/stm32f437vg.rs
index 38f98719d..d6b808755 100644
--- a/embassy-stm32/src/chip/stm32f437vg.rs
+++ b/embassy-stm32/src/chip/stm32f437vg.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f437vi.rs b/embassy-stm32/src/chip/stm32f437vi.rs
index 38f98719d..d6b808755 100644
--- a/embassy-stm32/src/chip/stm32f437vi.rs
+++ b/embassy-stm32/src/chip/stm32f437vi.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f437zg.rs b/embassy-stm32/src/chip/stm32f437zg.rs
index 5218ef78d..309b14e03 100644
--- a/embassy-stm32/src/chip/stm32f437zg.rs
+++ b/embassy-stm32/src/chip/stm32f437zg.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f437zi.rs b/embassy-stm32/src/chip/stm32f437zi.rs
index 5218ef78d..309b14e03 100644
--- a/embassy-stm32/src/chip/stm32f437zi.rs
+++ b/embassy-stm32/src/chip/stm32f437zi.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f439ai.rs b/embassy-stm32/src/chip/stm32f439ai.rs
index 63337a98d..16621b677 100644
--- a/embassy-stm32/src/chip/stm32f439ai.rs
+++ b/embassy-stm32/src/chip/stm32f439ai.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f439bg.rs b/embassy-stm32/src/chip/stm32f439bg.rs
index 0407ef12f..d384f3dac 100644
--- a/embassy-stm32/src/chip/stm32f439bg.rs
+++ b/embassy-stm32/src/chip/stm32f439bg.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f439bi.rs b/embassy-stm32/src/chip/stm32f439bi.rs
index 0407ef12f..d384f3dac 100644
--- a/embassy-stm32/src/chip/stm32f439bi.rs
+++ b/embassy-stm32/src/chip/stm32f439bi.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f439ig.rs b/embassy-stm32/src/chip/stm32f439ig.rs
index 0407ef12f..d384f3dac 100644
--- a/embassy-stm32/src/chip/stm32f439ig.rs
+++ b/embassy-stm32/src/chip/stm32f439ig.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f439ii.rs b/embassy-stm32/src/chip/stm32f439ii.rs
index 0407ef12f..d384f3dac 100644
--- a/embassy-stm32/src/chip/stm32f439ii.rs
+++ b/embassy-stm32/src/chip/stm32f439ii.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f439ng.rs b/embassy-stm32/src/chip/stm32f439ng.rs
index 0407ef12f..d384f3dac 100644
--- a/embassy-stm32/src/chip/stm32f439ng.rs
+++ b/embassy-stm32/src/chip/stm32f439ng.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f439ni.rs b/embassy-stm32/src/chip/stm32f439ni.rs
index 0407ef12f..d384f3dac 100644
--- a/embassy-stm32/src/chip/stm32f439ni.rs
+++ b/embassy-stm32/src/chip/stm32f439ni.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f439vg.rs b/embassy-stm32/src/chip/stm32f439vg.rs
index 2512b8ee9..604ae003a 100644
--- a/embassy-stm32/src/chip/stm32f439vg.rs
+++ b/embassy-stm32/src/chip/stm32f439vg.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f439vi.rs b/embassy-stm32/src/chip/stm32f439vi.rs
index 2512b8ee9..604ae003a 100644
--- a/embassy-stm32/src/chip/stm32f439vi.rs
+++ b/embassy-stm32/src/chip/stm32f439vi.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f439zg.rs b/embassy-stm32/src/chip/stm32f439zg.rs
index 0407ef12f..d384f3dac 100644
--- a/embassy-stm32/src/chip/stm32f439zg.rs
+++ b/embassy-stm32/src/chip/stm32f439zg.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f439zi.rs b/embassy-stm32/src/chip/stm32f439zi.rs
index 0407ef12f..d384f3dac 100644
--- a/embassy-stm32/src/chip/stm32f439zi.rs
+++ b/embassy-stm32/src/chip/stm32f439zi.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f469ae.rs b/embassy-stm32/src/chip/stm32f469ae.rs
index aa97a30a0..338320983 100644
--- a/embassy-stm32/src/chip/stm32f469ae.rs
+++ b/embassy-stm32/src/chip/stm32f469ae.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f469ag.rs b/embassy-stm32/src/chip/stm32f469ag.rs
index aa97a30a0..338320983 100644
--- a/embassy-stm32/src/chip/stm32f469ag.rs
+++ b/embassy-stm32/src/chip/stm32f469ag.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f469ai.rs b/embassy-stm32/src/chip/stm32f469ai.rs
index aa97a30a0..338320983 100644
--- a/embassy-stm32/src/chip/stm32f469ai.rs
+++ b/embassy-stm32/src/chip/stm32f469ai.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f469be.rs b/embassy-stm32/src/chip/stm32f469be.rs
index 4a8bd043a..734840614 100644
--- a/embassy-stm32/src/chip/stm32f469be.rs
+++ b/embassy-stm32/src/chip/stm32f469be.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f469bg.rs b/embassy-stm32/src/chip/stm32f469bg.rs
index 4a8bd043a..734840614 100644
--- a/embassy-stm32/src/chip/stm32f469bg.rs
+++ b/embassy-stm32/src/chip/stm32f469bg.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f469bi.rs b/embassy-stm32/src/chip/stm32f469bi.rs
index 4a8bd043a..734840614 100644
--- a/embassy-stm32/src/chip/stm32f469bi.rs
+++ b/embassy-stm32/src/chip/stm32f469bi.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f469ie.rs b/embassy-stm32/src/chip/stm32f469ie.rs
index 4a8bd043a..734840614 100644
--- a/embassy-stm32/src/chip/stm32f469ie.rs
+++ b/embassy-stm32/src/chip/stm32f469ie.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f469ig.rs b/embassy-stm32/src/chip/stm32f469ig.rs
index 4a8bd043a..734840614 100644
--- a/embassy-stm32/src/chip/stm32f469ig.rs
+++ b/embassy-stm32/src/chip/stm32f469ig.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f469ii.rs b/embassy-stm32/src/chip/stm32f469ii.rs
index 4a8bd043a..734840614 100644
--- a/embassy-stm32/src/chip/stm32f469ii.rs
+++ b/embassy-stm32/src/chip/stm32f469ii.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f469ne.rs b/embassy-stm32/src/chip/stm32f469ne.rs
index 4a8bd043a..734840614 100644
--- a/embassy-stm32/src/chip/stm32f469ne.rs
+++ b/embassy-stm32/src/chip/stm32f469ne.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f469ng.rs b/embassy-stm32/src/chip/stm32f469ng.rs
index 4a8bd043a..734840614 100644
--- a/embassy-stm32/src/chip/stm32f469ng.rs
+++ b/embassy-stm32/src/chip/stm32f469ng.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f469ni.rs b/embassy-stm32/src/chip/stm32f469ni.rs
index 4a8bd043a..734840614 100644
--- a/embassy-stm32/src/chip/stm32f469ni.rs
+++ b/embassy-stm32/src/chip/stm32f469ni.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f469ve.rs b/embassy-stm32/src/chip/stm32f469ve.rs
index 0b4d3e4aa..f11c35a08 100644
--- a/embassy-stm32/src/chip/stm32f469ve.rs
+++ b/embassy-stm32/src/chip/stm32f469ve.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f469vg.rs b/embassy-stm32/src/chip/stm32f469vg.rs
index 0b4d3e4aa..f11c35a08 100644
--- a/embassy-stm32/src/chip/stm32f469vg.rs
+++ b/embassy-stm32/src/chip/stm32f469vg.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f469vi.rs b/embassy-stm32/src/chip/stm32f469vi.rs
index 0b4d3e4aa..f11c35a08 100644
--- a/embassy-stm32/src/chip/stm32f469vi.rs
+++ b/embassy-stm32/src/chip/stm32f469vi.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f469ze.rs b/embassy-stm32/src/chip/stm32f469ze.rs
index 4d29c786b..8c8d412b8 100644
--- a/embassy-stm32/src/chip/stm32f469ze.rs
+++ b/embassy-stm32/src/chip/stm32f469ze.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f469zg.rs b/embassy-stm32/src/chip/stm32f469zg.rs
index 4d29c786b..8c8d412b8 100644
--- a/embassy-stm32/src/chip/stm32f469zg.rs
+++ b/embassy-stm32/src/chip/stm32f469zg.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f469zi.rs b/embassy-stm32/src/chip/stm32f469zi.rs
index 4d29c786b..8c8d412b8 100644
--- a/embassy-stm32/src/chip/stm32f469zi.rs
+++ b/embassy-stm32/src/chip/stm32f469zi.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f479ag.rs b/embassy-stm32/src/chip/stm32f479ag.rs
index 822202a91..89b9e5382 100644
--- a/embassy-stm32/src/chip/stm32f479ag.rs
+++ b/embassy-stm32/src/chip/stm32f479ag.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f479ai.rs b/embassy-stm32/src/chip/stm32f479ai.rs
index 822202a91..89b9e5382 100644
--- a/embassy-stm32/src/chip/stm32f479ai.rs
+++ b/embassy-stm32/src/chip/stm32f479ai.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f479bg.rs b/embassy-stm32/src/chip/stm32f479bg.rs
index 6382e7eaf..55b7542b2 100644
--- a/embassy-stm32/src/chip/stm32f479bg.rs
+++ b/embassy-stm32/src/chip/stm32f479bg.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f479bi.rs b/embassy-stm32/src/chip/stm32f479bi.rs
index 6382e7eaf..55b7542b2 100644
--- a/embassy-stm32/src/chip/stm32f479bi.rs
+++ b/embassy-stm32/src/chip/stm32f479bi.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f479ig.rs b/embassy-stm32/src/chip/stm32f479ig.rs
index 6382e7eaf..55b7542b2 100644
--- a/embassy-stm32/src/chip/stm32f479ig.rs
+++ b/embassy-stm32/src/chip/stm32f479ig.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f479ii.rs b/embassy-stm32/src/chip/stm32f479ii.rs
index 6382e7eaf..55b7542b2 100644
--- a/embassy-stm32/src/chip/stm32f479ii.rs
+++ b/embassy-stm32/src/chip/stm32f479ii.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f479ng.rs b/embassy-stm32/src/chip/stm32f479ng.rs
index 6382e7eaf..55b7542b2 100644
--- a/embassy-stm32/src/chip/stm32f479ng.rs
+++ b/embassy-stm32/src/chip/stm32f479ng.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f479ni.rs b/embassy-stm32/src/chip/stm32f479ni.rs
index 6382e7eaf..55b7542b2 100644
--- a/embassy-stm32/src/chip/stm32f479ni.rs
+++ b/embassy-stm32/src/chip/stm32f479ni.rs
@@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
195impl_gpio_pin!(PK13, 10, 13, EXTI13); 195impl_gpio_pin!(PK13, 10, 13, EXTI13);
196impl_gpio_pin!(PK14, 10, 14, EXTI14); 196impl_gpio_pin!(PK14, 10, 14, EXTI14);
197impl_gpio_pin!(PK15, 10, 15, EXTI15); 197impl_gpio_pin!(PK15, 10, 15, EXTI15);
198impl_rng!(0x50060800);
198impl_usart!(USART1, 0x40011000); 199impl_usart!(USART1, 0x40011000);
199impl_usart_pin!(USART1, RxPin, PA10, 7); 200impl_usart_pin!(USART1, RxPin, PA10, 7);
200impl_usart_pin!(USART1, CtsPin, PA11, 7); 201impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f479vg.rs b/embassy-stm32/src/chip/stm32f479vg.rs
index a5b4713de..365bd1ed9 100644
--- a/embassy-stm32/src/chip/stm32f479vg.rs
+++ b/embassy-stm32/src/chip/stm32f479vg.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f479vi.rs b/embassy-stm32/src/chip/stm32f479vi.rs
index a5b4713de..365bd1ed9 100644
--- a/embassy-stm32/src/chip/stm32f479vi.rs
+++ b/embassy-stm32/src/chip/stm32f479vi.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f479zg.rs b/embassy-stm32/src/chip/stm32f479zg.rs
index bcf63a60e..2bebe947d 100644
--- a/embassy-stm32/src/chip/stm32f479zg.rs
+++ b/embassy-stm32/src/chip/stm32f479zg.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32f479zi.rs b/embassy-stm32/src/chip/stm32f479zi.rs
index bcf63a60e..2bebe947d 100644
--- a/embassy-stm32/src/chip/stm32f479zi.rs
+++ b/embassy-stm32/src/chip/stm32f479zi.rs
@@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12);
194impl_gpio_pin!(PK13, 10, 13, EXTI13); 194impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197impl_rng!(0x50060800);
197impl_usart!(USART1, 0x40011000); 198impl_usart!(USART1, 0x40011000);
198impl_usart_pin!(USART1, RxPin, PA10, 7); 199impl_usart_pin!(USART1, RxPin, PA10, 7);
199impl_usart_pin!(USART1, CtsPin, PA11, 7); 200impl_usart_pin!(USART1, CtsPin, PA11, 7);
diff --git a/embassy-stm32/src/chip/stm32l412c8.rs b/embassy-stm32/src/chip/stm32l412c8.rs
new file mode 100644
index 000000000..c20a8a60a
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l412c8.rs
@@ -0,0 +1,94 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9,
5 PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10,
6 PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11,
7 PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12,
8 PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
9 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC,
10 SPI1, SPI2, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USART3, USB, WWDG
11);
12pub const GPIO_BASE: usize = 0x48000000;
13pub const GPIO_STRIDE: usize = 0x400;
14impl_gpio_pin!(PA0, 0, 0, EXTI0);
15impl_gpio_pin!(PA1, 0, 1, EXTI1);
16impl_gpio_pin!(PA2, 0, 2, EXTI2);
17impl_gpio_pin!(PA3, 0, 3, EXTI3);
18impl_gpio_pin!(PA4, 0, 4, EXTI4);
19impl_gpio_pin!(PA5, 0, 5, EXTI5);
20impl_gpio_pin!(PA6, 0, 6, EXTI6);
21impl_gpio_pin!(PA7, 0, 7, EXTI7);
22impl_gpio_pin!(PA8, 0, 8, EXTI8);
23impl_gpio_pin!(PA9, 0, 9, EXTI9);
24impl_gpio_pin!(PA10, 0, 10, EXTI10);
25impl_gpio_pin!(PA11, 0, 11, EXTI11);
26impl_gpio_pin!(PA12, 0, 12, EXTI12);
27impl_gpio_pin!(PA13, 0, 13, EXTI13);
28impl_gpio_pin!(PA14, 0, 14, EXTI14);
29impl_gpio_pin!(PA15, 0, 15, EXTI15);
30impl_gpio_pin!(PB0, 1, 0, EXTI0);
31impl_gpio_pin!(PB1, 1, 1, EXTI1);
32impl_gpio_pin!(PB2, 1, 2, EXTI2);
33impl_gpio_pin!(PB3, 1, 3, EXTI3);
34impl_gpio_pin!(PB4, 1, 4, EXTI4);
35impl_gpio_pin!(PB5, 1, 5, EXTI5);
36impl_gpio_pin!(PB6, 1, 6, EXTI6);
37impl_gpio_pin!(PB7, 1, 7, EXTI7);
38impl_gpio_pin!(PB8, 1, 8, EXTI8);
39impl_gpio_pin!(PB9, 1, 9, EXTI9);
40impl_gpio_pin!(PB10, 1, 10, EXTI10);
41impl_gpio_pin!(PB11, 1, 11, EXTI11);
42impl_gpio_pin!(PB12, 1, 12, EXTI12);
43impl_gpio_pin!(PB13, 1, 13, EXTI13);
44impl_gpio_pin!(PB14, 1, 14, EXTI14);
45impl_gpio_pin!(PB15, 1, 15, EXTI15);
46impl_gpio_pin!(PC0, 2, 0, EXTI0);
47impl_gpio_pin!(PC1, 2, 1, EXTI1);
48impl_gpio_pin!(PC2, 2, 2, EXTI2);
49impl_gpio_pin!(PC3, 2, 3, EXTI3);
50impl_gpio_pin!(PC4, 2, 4, EXTI4);
51impl_gpio_pin!(PC5, 2, 5, EXTI5);
52impl_gpio_pin!(PC6, 2, 6, EXTI6);
53impl_gpio_pin!(PC7, 2, 7, EXTI7);
54impl_gpio_pin!(PC8, 2, 8, EXTI8);
55impl_gpio_pin!(PC9, 2, 9, EXTI9);
56impl_gpio_pin!(PC10, 2, 10, EXTI10);
57impl_gpio_pin!(PC11, 2, 11, EXTI11);
58impl_gpio_pin!(PC12, 2, 12, EXTI12);
59impl_gpio_pin!(PC13, 2, 13, EXTI13);
60impl_gpio_pin!(PC14, 2, 14, EXTI14);
61impl_gpio_pin!(PC15, 2, 15, EXTI15);
62impl_gpio_pin!(PD0, 3, 0, EXTI0);
63impl_gpio_pin!(PD1, 3, 1, EXTI1);
64impl_gpio_pin!(PD2, 3, 2, EXTI2);
65impl_gpio_pin!(PD3, 3, 3, EXTI3);
66impl_gpio_pin!(PD4, 3, 4, EXTI4);
67impl_gpio_pin!(PD5, 3, 5, EXTI5);
68impl_gpio_pin!(PD6, 3, 6, EXTI6);
69impl_gpio_pin!(PD7, 3, 7, EXTI7);
70impl_gpio_pin!(PD8, 3, 8, EXTI8);
71impl_gpio_pin!(PD9, 3, 9, EXTI9);
72impl_gpio_pin!(PD10, 3, 10, EXTI10);
73impl_gpio_pin!(PD11, 3, 11, EXTI11);
74impl_gpio_pin!(PD12, 3, 12, EXTI12);
75impl_gpio_pin!(PD13, 3, 13, EXTI13);
76impl_gpio_pin!(PD14, 3, 14, EXTI14);
77impl_gpio_pin!(PD15, 3, 15, EXTI15);
78impl_gpio_pin!(PH0, 7, 0, EXTI0);
79impl_gpio_pin!(PH1, 7, 1, EXTI1);
80impl_gpio_pin!(PH2, 7, 2, EXTI2);
81impl_gpio_pin!(PH3, 7, 3, EXTI3);
82impl_gpio_pin!(PH4, 7, 4, EXTI4);
83impl_gpio_pin!(PH5, 7, 5, EXTI5);
84impl_gpio_pin!(PH6, 7, 6, EXTI6);
85impl_gpio_pin!(PH7, 7, 7, EXTI7);
86impl_gpio_pin!(PH8, 7, 8, EXTI8);
87impl_gpio_pin!(PH9, 7, 9, EXTI9);
88impl_gpio_pin!(PH10, 7, 10, EXTI10);
89impl_gpio_pin!(PH11, 7, 11, EXTI11);
90impl_gpio_pin!(PH12, 7, 12, EXTI12);
91impl_gpio_pin!(PH13, 7, 13, EXTI13);
92impl_gpio_pin!(PH14, 7, 14, EXTI14);
93impl_gpio_pin!(PH15, 7, 15, EXTI15);
94impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l412cb.rs b/embassy-stm32/src/chip/stm32l412cb.rs
new file mode 100644
index 000000000..c20a8a60a
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l412cb.rs
@@ -0,0 +1,94 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9,
5 PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10,
6 PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11,
7 PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12,
8 PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
9 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC,
10 SPI1, SPI2, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USART3, USB, WWDG
11);
12pub const GPIO_BASE: usize = 0x48000000;
13pub const GPIO_STRIDE: usize = 0x400;
14impl_gpio_pin!(PA0, 0, 0, EXTI0);
15impl_gpio_pin!(PA1, 0, 1, EXTI1);
16impl_gpio_pin!(PA2, 0, 2, EXTI2);
17impl_gpio_pin!(PA3, 0, 3, EXTI3);
18impl_gpio_pin!(PA4, 0, 4, EXTI4);
19impl_gpio_pin!(PA5, 0, 5, EXTI5);
20impl_gpio_pin!(PA6, 0, 6, EXTI6);
21impl_gpio_pin!(PA7, 0, 7, EXTI7);
22impl_gpio_pin!(PA8, 0, 8, EXTI8);
23impl_gpio_pin!(PA9, 0, 9, EXTI9);
24impl_gpio_pin!(PA10, 0, 10, EXTI10);
25impl_gpio_pin!(PA11, 0, 11, EXTI11);
26impl_gpio_pin!(PA12, 0, 12, EXTI12);
27impl_gpio_pin!(PA13, 0, 13, EXTI13);
28impl_gpio_pin!(PA14, 0, 14, EXTI14);
29impl_gpio_pin!(PA15, 0, 15, EXTI15);
30impl_gpio_pin!(PB0, 1, 0, EXTI0);
31impl_gpio_pin!(PB1, 1, 1, EXTI1);
32impl_gpio_pin!(PB2, 1, 2, EXTI2);
33impl_gpio_pin!(PB3, 1, 3, EXTI3);
34impl_gpio_pin!(PB4, 1, 4, EXTI4);
35impl_gpio_pin!(PB5, 1, 5, EXTI5);
36impl_gpio_pin!(PB6, 1, 6, EXTI6);
37impl_gpio_pin!(PB7, 1, 7, EXTI7);
38impl_gpio_pin!(PB8, 1, 8, EXTI8);
39impl_gpio_pin!(PB9, 1, 9, EXTI9);
40impl_gpio_pin!(PB10, 1, 10, EXTI10);
41impl_gpio_pin!(PB11, 1, 11, EXTI11);
42impl_gpio_pin!(PB12, 1, 12, EXTI12);
43impl_gpio_pin!(PB13, 1, 13, EXTI13);
44impl_gpio_pin!(PB14, 1, 14, EXTI14);
45impl_gpio_pin!(PB15, 1, 15, EXTI15);
46impl_gpio_pin!(PC0, 2, 0, EXTI0);
47impl_gpio_pin!(PC1, 2, 1, EXTI1);
48impl_gpio_pin!(PC2, 2, 2, EXTI2);
49impl_gpio_pin!(PC3, 2, 3, EXTI3);
50impl_gpio_pin!(PC4, 2, 4, EXTI4);
51impl_gpio_pin!(PC5, 2, 5, EXTI5);
52impl_gpio_pin!(PC6, 2, 6, EXTI6);
53impl_gpio_pin!(PC7, 2, 7, EXTI7);
54impl_gpio_pin!(PC8, 2, 8, EXTI8);
55impl_gpio_pin!(PC9, 2, 9, EXTI9);
56impl_gpio_pin!(PC10, 2, 10, EXTI10);
57impl_gpio_pin!(PC11, 2, 11, EXTI11);
58impl_gpio_pin!(PC12, 2, 12, EXTI12);
59impl_gpio_pin!(PC13, 2, 13, EXTI13);
60impl_gpio_pin!(PC14, 2, 14, EXTI14);
61impl_gpio_pin!(PC15, 2, 15, EXTI15);
62impl_gpio_pin!(PD0, 3, 0, EXTI0);
63impl_gpio_pin!(PD1, 3, 1, EXTI1);
64impl_gpio_pin!(PD2, 3, 2, EXTI2);
65impl_gpio_pin!(PD3, 3, 3, EXTI3);
66impl_gpio_pin!(PD4, 3, 4, EXTI4);
67impl_gpio_pin!(PD5, 3, 5, EXTI5);
68impl_gpio_pin!(PD6, 3, 6, EXTI6);
69impl_gpio_pin!(PD7, 3, 7, EXTI7);
70impl_gpio_pin!(PD8, 3, 8, EXTI8);
71impl_gpio_pin!(PD9, 3, 9, EXTI9);
72impl_gpio_pin!(PD10, 3, 10, EXTI10);
73impl_gpio_pin!(PD11, 3, 11, EXTI11);
74impl_gpio_pin!(PD12, 3, 12, EXTI12);
75impl_gpio_pin!(PD13, 3, 13, EXTI13);
76impl_gpio_pin!(PD14, 3, 14, EXTI14);
77impl_gpio_pin!(PD15, 3, 15, EXTI15);
78impl_gpio_pin!(PH0, 7, 0, EXTI0);
79impl_gpio_pin!(PH1, 7, 1, EXTI1);
80impl_gpio_pin!(PH2, 7, 2, EXTI2);
81impl_gpio_pin!(PH3, 7, 3, EXTI3);
82impl_gpio_pin!(PH4, 7, 4, EXTI4);
83impl_gpio_pin!(PH5, 7, 5, EXTI5);
84impl_gpio_pin!(PH6, 7, 6, EXTI6);
85impl_gpio_pin!(PH7, 7, 7, EXTI7);
86impl_gpio_pin!(PH8, 7, 8, EXTI8);
87impl_gpio_pin!(PH9, 7, 9, EXTI9);
88impl_gpio_pin!(PH10, 7, 10, EXTI10);
89impl_gpio_pin!(PH11, 7, 11, EXTI11);
90impl_gpio_pin!(PH12, 7, 12, EXTI12);
91impl_gpio_pin!(PH13, 7, 13, EXTI13);
92impl_gpio_pin!(PH14, 7, 14, EXTI14);
93impl_gpio_pin!(PH15, 7, 15, EXTI15);
94impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l412k8.rs b/embassy-stm32/src/chip/stm32l412k8.rs
new file mode 100644
index 000000000..c12d91a6a
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l412k8.rs
@@ -0,0 +1,94 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9,
5 PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10,
6 PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11,
7 PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12,
8 PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
9 PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, SPI1,
10 SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USB, WWDG
11);
12pub const GPIO_BASE: usize = 0x48000000;
13pub const GPIO_STRIDE: usize = 0x400;
14impl_gpio_pin!(PA0, 0, 0, EXTI0);
15impl_gpio_pin!(PA1, 0, 1, EXTI1);
16impl_gpio_pin!(PA2, 0, 2, EXTI2);
17impl_gpio_pin!(PA3, 0, 3, EXTI3);
18impl_gpio_pin!(PA4, 0, 4, EXTI4);
19impl_gpio_pin!(PA5, 0, 5, EXTI5);
20impl_gpio_pin!(PA6, 0, 6, EXTI6);
21impl_gpio_pin!(PA7, 0, 7, EXTI7);
22impl_gpio_pin!(PA8, 0, 8, EXTI8);
23impl_gpio_pin!(PA9, 0, 9, EXTI9);
24impl_gpio_pin!(PA10, 0, 10, EXTI10);
25impl_gpio_pin!(PA11, 0, 11, EXTI11);
26impl_gpio_pin!(PA12, 0, 12, EXTI12);
27impl_gpio_pin!(PA13, 0, 13, EXTI13);
28impl_gpio_pin!(PA14, 0, 14, EXTI14);
29impl_gpio_pin!(PA15, 0, 15, EXTI15);
30impl_gpio_pin!(PB0, 1, 0, EXTI0);
31impl_gpio_pin!(PB1, 1, 1, EXTI1);
32impl_gpio_pin!(PB2, 1, 2, EXTI2);
33impl_gpio_pin!(PB3, 1, 3, EXTI3);
34impl_gpio_pin!(PB4, 1, 4, EXTI4);
35impl_gpio_pin!(PB5, 1, 5, EXTI5);
36impl_gpio_pin!(PB6, 1, 6, EXTI6);
37impl_gpio_pin!(PB7, 1, 7, EXTI7);
38impl_gpio_pin!(PB8, 1, 8, EXTI8);
39impl_gpio_pin!(PB9, 1, 9, EXTI9);
40impl_gpio_pin!(PB10, 1, 10, EXTI10);
41impl_gpio_pin!(PB11, 1, 11, EXTI11);
42impl_gpio_pin!(PB12, 1, 12, EXTI12);
43impl_gpio_pin!(PB13, 1, 13, EXTI13);
44impl_gpio_pin!(PB14, 1, 14, EXTI14);
45impl_gpio_pin!(PB15, 1, 15, EXTI15);
46impl_gpio_pin!(PC0, 2, 0, EXTI0);
47impl_gpio_pin!(PC1, 2, 1, EXTI1);
48impl_gpio_pin!(PC2, 2, 2, EXTI2);
49impl_gpio_pin!(PC3, 2, 3, EXTI3);
50impl_gpio_pin!(PC4, 2, 4, EXTI4);
51impl_gpio_pin!(PC5, 2, 5, EXTI5);
52impl_gpio_pin!(PC6, 2, 6, EXTI6);
53impl_gpio_pin!(PC7, 2, 7, EXTI7);
54impl_gpio_pin!(PC8, 2, 8, EXTI8);
55impl_gpio_pin!(PC9, 2, 9, EXTI9);
56impl_gpio_pin!(PC10, 2, 10, EXTI10);
57impl_gpio_pin!(PC11, 2, 11, EXTI11);
58impl_gpio_pin!(PC12, 2, 12, EXTI12);
59impl_gpio_pin!(PC13, 2, 13, EXTI13);
60impl_gpio_pin!(PC14, 2, 14, EXTI14);
61impl_gpio_pin!(PC15, 2, 15, EXTI15);
62impl_gpio_pin!(PD0, 3, 0, EXTI0);
63impl_gpio_pin!(PD1, 3, 1, EXTI1);
64impl_gpio_pin!(PD2, 3, 2, EXTI2);
65impl_gpio_pin!(PD3, 3, 3, EXTI3);
66impl_gpio_pin!(PD4, 3, 4, EXTI4);
67impl_gpio_pin!(PD5, 3, 5, EXTI5);
68impl_gpio_pin!(PD6, 3, 6, EXTI6);
69impl_gpio_pin!(PD7, 3, 7, EXTI7);
70impl_gpio_pin!(PD8, 3, 8, EXTI8);
71impl_gpio_pin!(PD9, 3, 9, EXTI9);
72impl_gpio_pin!(PD10, 3, 10, EXTI10);
73impl_gpio_pin!(PD11, 3, 11, EXTI11);
74impl_gpio_pin!(PD12, 3, 12, EXTI12);
75impl_gpio_pin!(PD13, 3, 13, EXTI13);
76impl_gpio_pin!(PD14, 3, 14, EXTI14);
77impl_gpio_pin!(PD15, 3, 15, EXTI15);
78impl_gpio_pin!(PH0, 7, 0, EXTI0);
79impl_gpio_pin!(PH1, 7, 1, EXTI1);
80impl_gpio_pin!(PH2, 7, 2, EXTI2);
81impl_gpio_pin!(PH3, 7, 3, EXTI3);
82impl_gpio_pin!(PH4, 7, 4, EXTI4);
83impl_gpio_pin!(PH5, 7, 5, EXTI5);
84impl_gpio_pin!(PH6, 7, 6, EXTI6);
85impl_gpio_pin!(PH7, 7, 7, EXTI7);
86impl_gpio_pin!(PH8, 7, 8, EXTI8);
87impl_gpio_pin!(PH9, 7, 9, EXTI9);
88impl_gpio_pin!(PH10, 7, 10, EXTI10);
89impl_gpio_pin!(PH11, 7, 11, EXTI11);
90impl_gpio_pin!(PH12, 7, 12, EXTI12);
91impl_gpio_pin!(PH13, 7, 13, EXTI13);
92impl_gpio_pin!(PH14, 7, 14, EXTI14);
93impl_gpio_pin!(PH15, 7, 15, EXTI15);
94impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l412kb.rs b/embassy-stm32/src/chip/stm32l412kb.rs
new file mode 100644
index 000000000..c12d91a6a
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l412kb.rs
@@ -0,0 +1,94 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9,
5 PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10,
6 PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11,
7 PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12,
8 PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
9 PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, SPI1,
10 SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USB, WWDG
11);
12pub const GPIO_BASE: usize = 0x48000000;
13pub const GPIO_STRIDE: usize = 0x400;
14impl_gpio_pin!(PA0, 0, 0, EXTI0);
15impl_gpio_pin!(PA1, 0, 1, EXTI1);
16impl_gpio_pin!(PA2, 0, 2, EXTI2);
17impl_gpio_pin!(PA3, 0, 3, EXTI3);
18impl_gpio_pin!(PA4, 0, 4, EXTI4);
19impl_gpio_pin!(PA5, 0, 5, EXTI5);
20impl_gpio_pin!(PA6, 0, 6, EXTI6);
21impl_gpio_pin!(PA7, 0, 7, EXTI7);
22impl_gpio_pin!(PA8, 0, 8, EXTI8);
23impl_gpio_pin!(PA9, 0, 9, EXTI9);
24impl_gpio_pin!(PA10, 0, 10, EXTI10);
25impl_gpio_pin!(PA11, 0, 11, EXTI11);
26impl_gpio_pin!(PA12, 0, 12, EXTI12);
27impl_gpio_pin!(PA13, 0, 13, EXTI13);
28impl_gpio_pin!(PA14, 0, 14, EXTI14);
29impl_gpio_pin!(PA15, 0, 15, EXTI15);
30impl_gpio_pin!(PB0, 1, 0, EXTI0);
31impl_gpio_pin!(PB1, 1, 1, EXTI1);
32impl_gpio_pin!(PB2, 1, 2, EXTI2);
33impl_gpio_pin!(PB3, 1, 3, EXTI3);
34impl_gpio_pin!(PB4, 1, 4, EXTI4);
35impl_gpio_pin!(PB5, 1, 5, EXTI5);
36impl_gpio_pin!(PB6, 1, 6, EXTI6);
37impl_gpio_pin!(PB7, 1, 7, EXTI7);
38impl_gpio_pin!(PB8, 1, 8, EXTI8);
39impl_gpio_pin!(PB9, 1, 9, EXTI9);
40impl_gpio_pin!(PB10, 1, 10, EXTI10);
41impl_gpio_pin!(PB11, 1, 11, EXTI11);
42impl_gpio_pin!(PB12, 1, 12, EXTI12);
43impl_gpio_pin!(PB13, 1, 13, EXTI13);
44impl_gpio_pin!(PB14, 1, 14, EXTI14);
45impl_gpio_pin!(PB15, 1, 15, EXTI15);
46impl_gpio_pin!(PC0, 2, 0, EXTI0);
47impl_gpio_pin!(PC1, 2, 1, EXTI1);
48impl_gpio_pin!(PC2, 2, 2, EXTI2);
49impl_gpio_pin!(PC3, 2, 3, EXTI3);
50impl_gpio_pin!(PC4, 2, 4, EXTI4);
51impl_gpio_pin!(PC5, 2, 5, EXTI5);
52impl_gpio_pin!(PC6, 2, 6, EXTI6);
53impl_gpio_pin!(PC7, 2, 7, EXTI7);
54impl_gpio_pin!(PC8, 2, 8, EXTI8);
55impl_gpio_pin!(PC9, 2, 9, EXTI9);
56impl_gpio_pin!(PC10, 2, 10, EXTI10);
57impl_gpio_pin!(PC11, 2, 11, EXTI11);
58impl_gpio_pin!(PC12, 2, 12, EXTI12);
59impl_gpio_pin!(PC13, 2, 13, EXTI13);
60impl_gpio_pin!(PC14, 2, 14, EXTI14);
61impl_gpio_pin!(PC15, 2, 15, EXTI15);
62impl_gpio_pin!(PD0, 3, 0, EXTI0);
63impl_gpio_pin!(PD1, 3, 1, EXTI1);
64impl_gpio_pin!(PD2, 3, 2, EXTI2);
65impl_gpio_pin!(PD3, 3, 3, EXTI3);
66impl_gpio_pin!(PD4, 3, 4, EXTI4);
67impl_gpio_pin!(PD5, 3, 5, EXTI5);
68impl_gpio_pin!(PD6, 3, 6, EXTI6);
69impl_gpio_pin!(PD7, 3, 7, EXTI7);
70impl_gpio_pin!(PD8, 3, 8, EXTI8);
71impl_gpio_pin!(PD9, 3, 9, EXTI9);
72impl_gpio_pin!(PD10, 3, 10, EXTI10);
73impl_gpio_pin!(PD11, 3, 11, EXTI11);
74impl_gpio_pin!(PD12, 3, 12, EXTI12);
75impl_gpio_pin!(PD13, 3, 13, EXTI13);
76impl_gpio_pin!(PD14, 3, 14, EXTI14);
77impl_gpio_pin!(PD15, 3, 15, EXTI15);
78impl_gpio_pin!(PH0, 7, 0, EXTI0);
79impl_gpio_pin!(PH1, 7, 1, EXTI1);
80impl_gpio_pin!(PH2, 7, 2, EXTI2);
81impl_gpio_pin!(PH3, 7, 3, EXTI3);
82impl_gpio_pin!(PH4, 7, 4, EXTI4);
83impl_gpio_pin!(PH5, 7, 5, EXTI5);
84impl_gpio_pin!(PH6, 7, 6, EXTI6);
85impl_gpio_pin!(PH7, 7, 7, EXTI7);
86impl_gpio_pin!(PH8, 7, 8, EXTI8);
87impl_gpio_pin!(PH9, 7, 9, EXTI9);
88impl_gpio_pin!(PH10, 7, 10, EXTI10);
89impl_gpio_pin!(PH11, 7, 11, EXTI11);
90impl_gpio_pin!(PH12, 7, 12, EXTI12);
91impl_gpio_pin!(PH13, 7, 13, EXTI13);
92impl_gpio_pin!(PH14, 7, 14, EXTI14);
93impl_gpio_pin!(PH15, 7, 15, EXTI15);
94impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l412r8.rs b/embassy-stm32/src/chip/stm32l412r8.rs
new file mode 100644
index 000000000..c20a8a60a
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l412r8.rs
@@ -0,0 +1,94 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9,
5 PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10,
6 PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11,
7 PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12,
8 PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
9 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC,
10 SPI1, SPI2, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USART3, USB, WWDG
11);
12pub const GPIO_BASE: usize = 0x48000000;
13pub const GPIO_STRIDE: usize = 0x400;
14impl_gpio_pin!(PA0, 0, 0, EXTI0);
15impl_gpio_pin!(PA1, 0, 1, EXTI1);
16impl_gpio_pin!(PA2, 0, 2, EXTI2);
17impl_gpio_pin!(PA3, 0, 3, EXTI3);
18impl_gpio_pin!(PA4, 0, 4, EXTI4);
19impl_gpio_pin!(PA5, 0, 5, EXTI5);
20impl_gpio_pin!(PA6, 0, 6, EXTI6);
21impl_gpio_pin!(PA7, 0, 7, EXTI7);
22impl_gpio_pin!(PA8, 0, 8, EXTI8);
23impl_gpio_pin!(PA9, 0, 9, EXTI9);
24impl_gpio_pin!(PA10, 0, 10, EXTI10);
25impl_gpio_pin!(PA11, 0, 11, EXTI11);
26impl_gpio_pin!(PA12, 0, 12, EXTI12);
27impl_gpio_pin!(PA13, 0, 13, EXTI13);
28impl_gpio_pin!(PA14, 0, 14, EXTI14);
29impl_gpio_pin!(PA15, 0, 15, EXTI15);
30impl_gpio_pin!(PB0, 1, 0, EXTI0);
31impl_gpio_pin!(PB1, 1, 1, EXTI1);
32impl_gpio_pin!(PB2, 1, 2, EXTI2);
33impl_gpio_pin!(PB3, 1, 3, EXTI3);
34impl_gpio_pin!(PB4, 1, 4, EXTI4);
35impl_gpio_pin!(PB5, 1, 5, EXTI5);
36impl_gpio_pin!(PB6, 1, 6, EXTI6);
37impl_gpio_pin!(PB7, 1, 7, EXTI7);
38impl_gpio_pin!(PB8, 1, 8, EXTI8);
39impl_gpio_pin!(PB9, 1, 9, EXTI9);
40impl_gpio_pin!(PB10, 1, 10, EXTI10);
41impl_gpio_pin!(PB11, 1, 11, EXTI11);
42impl_gpio_pin!(PB12, 1, 12, EXTI12);
43impl_gpio_pin!(PB13, 1, 13, EXTI13);
44impl_gpio_pin!(PB14, 1, 14, EXTI14);
45impl_gpio_pin!(PB15, 1, 15, EXTI15);
46impl_gpio_pin!(PC0, 2, 0, EXTI0);
47impl_gpio_pin!(PC1, 2, 1, EXTI1);
48impl_gpio_pin!(PC2, 2, 2, EXTI2);
49impl_gpio_pin!(PC3, 2, 3, EXTI3);
50impl_gpio_pin!(PC4, 2, 4, EXTI4);
51impl_gpio_pin!(PC5, 2, 5, EXTI5);
52impl_gpio_pin!(PC6, 2, 6, EXTI6);
53impl_gpio_pin!(PC7, 2, 7, EXTI7);
54impl_gpio_pin!(PC8, 2, 8, EXTI8);
55impl_gpio_pin!(PC9, 2, 9, EXTI9);
56impl_gpio_pin!(PC10, 2, 10, EXTI10);
57impl_gpio_pin!(PC11, 2, 11, EXTI11);
58impl_gpio_pin!(PC12, 2, 12, EXTI12);
59impl_gpio_pin!(PC13, 2, 13, EXTI13);
60impl_gpio_pin!(PC14, 2, 14, EXTI14);
61impl_gpio_pin!(PC15, 2, 15, EXTI15);
62impl_gpio_pin!(PD0, 3, 0, EXTI0);
63impl_gpio_pin!(PD1, 3, 1, EXTI1);
64impl_gpio_pin!(PD2, 3, 2, EXTI2);
65impl_gpio_pin!(PD3, 3, 3, EXTI3);
66impl_gpio_pin!(PD4, 3, 4, EXTI4);
67impl_gpio_pin!(PD5, 3, 5, EXTI5);
68impl_gpio_pin!(PD6, 3, 6, EXTI6);
69impl_gpio_pin!(PD7, 3, 7, EXTI7);
70impl_gpio_pin!(PD8, 3, 8, EXTI8);
71impl_gpio_pin!(PD9, 3, 9, EXTI9);
72impl_gpio_pin!(PD10, 3, 10, EXTI10);
73impl_gpio_pin!(PD11, 3, 11, EXTI11);
74impl_gpio_pin!(PD12, 3, 12, EXTI12);
75impl_gpio_pin!(PD13, 3, 13, EXTI13);
76impl_gpio_pin!(PD14, 3, 14, EXTI14);
77impl_gpio_pin!(PD15, 3, 15, EXTI15);
78impl_gpio_pin!(PH0, 7, 0, EXTI0);
79impl_gpio_pin!(PH1, 7, 1, EXTI1);
80impl_gpio_pin!(PH2, 7, 2, EXTI2);
81impl_gpio_pin!(PH3, 7, 3, EXTI3);
82impl_gpio_pin!(PH4, 7, 4, EXTI4);
83impl_gpio_pin!(PH5, 7, 5, EXTI5);
84impl_gpio_pin!(PH6, 7, 6, EXTI6);
85impl_gpio_pin!(PH7, 7, 7, EXTI7);
86impl_gpio_pin!(PH8, 7, 8, EXTI8);
87impl_gpio_pin!(PH9, 7, 9, EXTI9);
88impl_gpio_pin!(PH10, 7, 10, EXTI10);
89impl_gpio_pin!(PH11, 7, 11, EXTI11);
90impl_gpio_pin!(PH12, 7, 12, EXTI12);
91impl_gpio_pin!(PH13, 7, 13, EXTI13);
92impl_gpio_pin!(PH14, 7, 14, EXTI14);
93impl_gpio_pin!(PH15, 7, 15, EXTI15);
94impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l412rb.rs b/embassy-stm32/src/chip/stm32l412rb.rs
new file mode 100644
index 000000000..c20a8a60a
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l412rb.rs
@@ -0,0 +1,94 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9,
5 PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10,
6 PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11,
7 PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12,
8 PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
9 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC,
10 SPI1, SPI2, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USART3, USB, WWDG
11);
12pub const GPIO_BASE: usize = 0x48000000;
13pub const GPIO_STRIDE: usize = 0x400;
14impl_gpio_pin!(PA0, 0, 0, EXTI0);
15impl_gpio_pin!(PA1, 0, 1, EXTI1);
16impl_gpio_pin!(PA2, 0, 2, EXTI2);
17impl_gpio_pin!(PA3, 0, 3, EXTI3);
18impl_gpio_pin!(PA4, 0, 4, EXTI4);
19impl_gpio_pin!(PA5, 0, 5, EXTI5);
20impl_gpio_pin!(PA6, 0, 6, EXTI6);
21impl_gpio_pin!(PA7, 0, 7, EXTI7);
22impl_gpio_pin!(PA8, 0, 8, EXTI8);
23impl_gpio_pin!(PA9, 0, 9, EXTI9);
24impl_gpio_pin!(PA10, 0, 10, EXTI10);
25impl_gpio_pin!(PA11, 0, 11, EXTI11);
26impl_gpio_pin!(PA12, 0, 12, EXTI12);
27impl_gpio_pin!(PA13, 0, 13, EXTI13);
28impl_gpio_pin!(PA14, 0, 14, EXTI14);
29impl_gpio_pin!(PA15, 0, 15, EXTI15);
30impl_gpio_pin!(PB0, 1, 0, EXTI0);
31impl_gpio_pin!(PB1, 1, 1, EXTI1);
32impl_gpio_pin!(PB2, 1, 2, EXTI2);
33impl_gpio_pin!(PB3, 1, 3, EXTI3);
34impl_gpio_pin!(PB4, 1, 4, EXTI4);
35impl_gpio_pin!(PB5, 1, 5, EXTI5);
36impl_gpio_pin!(PB6, 1, 6, EXTI6);
37impl_gpio_pin!(PB7, 1, 7, EXTI7);
38impl_gpio_pin!(PB8, 1, 8, EXTI8);
39impl_gpio_pin!(PB9, 1, 9, EXTI9);
40impl_gpio_pin!(PB10, 1, 10, EXTI10);
41impl_gpio_pin!(PB11, 1, 11, EXTI11);
42impl_gpio_pin!(PB12, 1, 12, EXTI12);
43impl_gpio_pin!(PB13, 1, 13, EXTI13);
44impl_gpio_pin!(PB14, 1, 14, EXTI14);
45impl_gpio_pin!(PB15, 1, 15, EXTI15);
46impl_gpio_pin!(PC0, 2, 0, EXTI0);
47impl_gpio_pin!(PC1, 2, 1, EXTI1);
48impl_gpio_pin!(PC2, 2, 2, EXTI2);
49impl_gpio_pin!(PC3, 2, 3, EXTI3);
50impl_gpio_pin!(PC4, 2, 4, EXTI4);
51impl_gpio_pin!(PC5, 2, 5, EXTI5);
52impl_gpio_pin!(PC6, 2, 6, EXTI6);
53impl_gpio_pin!(PC7, 2, 7, EXTI7);
54impl_gpio_pin!(PC8, 2, 8, EXTI8);
55impl_gpio_pin!(PC9, 2, 9, EXTI9);
56impl_gpio_pin!(PC10, 2, 10, EXTI10);
57impl_gpio_pin!(PC11, 2, 11, EXTI11);
58impl_gpio_pin!(PC12, 2, 12, EXTI12);
59impl_gpio_pin!(PC13, 2, 13, EXTI13);
60impl_gpio_pin!(PC14, 2, 14, EXTI14);
61impl_gpio_pin!(PC15, 2, 15, EXTI15);
62impl_gpio_pin!(PD0, 3, 0, EXTI0);
63impl_gpio_pin!(PD1, 3, 1, EXTI1);
64impl_gpio_pin!(PD2, 3, 2, EXTI2);
65impl_gpio_pin!(PD3, 3, 3, EXTI3);
66impl_gpio_pin!(PD4, 3, 4, EXTI4);
67impl_gpio_pin!(PD5, 3, 5, EXTI5);
68impl_gpio_pin!(PD6, 3, 6, EXTI6);
69impl_gpio_pin!(PD7, 3, 7, EXTI7);
70impl_gpio_pin!(PD8, 3, 8, EXTI8);
71impl_gpio_pin!(PD9, 3, 9, EXTI9);
72impl_gpio_pin!(PD10, 3, 10, EXTI10);
73impl_gpio_pin!(PD11, 3, 11, EXTI11);
74impl_gpio_pin!(PD12, 3, 12, EXTI12);
75impl_gpio_pin!(PD13, 3, 13, EXTI13);
76impl_gpio_pin!(PD14, 3, 14, EXTI14);
77impl_gpio_pin!(PD15, 3, 15, EXTI15);
78impl_gpio_pin!(PH0, 7, 0, EXTI0);
79impl_gpio_pin!(PH1, 7, 1, EXTI1);
80impl_gpio_pin!(PH2, 7, 2, EXTI2);
81impl_gpio_pin!(PH3, 7, 3, EXTI3);
82impl_gpio_pin!(PH4, 7, 4, EXTI4);
83impl_gpio_pin!(PH5, 7, 5, EXTI5);
84impl_gpio_pin!(PH6, 7, 6, EXTI6);
85impl_gpio_pin!(PH7, 7, 7, EXTI7);
86impl_gpio_pin!(PH8, 7, 8, EXTI8);
87impl_gpio_pin!(PH9, 7, 9, EXTI9);
88impl_gpio_pin!(PH10, 7, 10, EXTI10);
89impl_gpio_pin!(PH11, 7, 11, EXTI11);
90impl_gpio_pin!(PH12, 7, 12, EXTI12);
91impl_gpio_pin!(PH13, 7, 13, EXTI13);
92impl_gpio_pin!(PH14, 7, 14, EXTI14);
93impl_gpio_pin!(PH15, 7, 15, EXTI15);
94impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l412t8.rs b/embassy-stm32/src/chip/stm32l412t8.rs
new file mode 100644
index 000000000..c12d91a6a
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l412t8.rs
@@ -0,0 +1,94 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9,
5 PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10,
6 PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11,
7 PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12,
8 PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
9 PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, SPI1,
10 SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USB, WWDG
11);
12pub const GPIO_BASE: usize = 0x48000000;
13pub const GPIO_STRIDE: usize = 0x400;
14impl_gpio_pin!(PA0, 0, 0, EXTI0);
15impl_gpio_pin!(PA1, 0, 1, EXTI1);
16impl_gpio_pin!(PA2, 0, 2, EXTI2);
17impl_gpio_pin!(PA3, 0, 3, EXTI3);
18impl_gpio_pin!(PA4, 0, 4, EXTI4);
19impl_gpio_pin!(PA5, 0, 5, EXTI5);
20impl_gpio_pin!(PA6, 0, 6, EXTI6);
21impl_gpio_pin!(PA7, 0, 7, EXTI7);
22impl_gpio_pin!(PA8, 0, 8, EXTI8);
23impl_gpio_pin!(PA9, 0, 9, EXTI9);
24impl_gpio_pin!(PA10, 0, 10, EXTI10);
25impl_gpio_pin!(PA11, 0, 11, EXTI11);
26impl_gpio_pin!(PA12, 0, 12, EXTI12);
27impl_gpio_pin!(PA13, 0, 13, EXTI13);
28impl_gpio_pin!(PA14, 0, 14, EXTI14);
29impl_gpio_pin!(PA15, 0, 15, EXTI15);
30impl_gpio_pin!(PB0, 1, 0, EXTI0);
31impl_gpio_pin!(PB1, 1, 1, EXTI1);
32impl_gpio_pin!(PB2, 1, 2, EXTI2);
33impl_gpio_pin!(PB3, 1, 3, EXTI3);
34impl_gpio_pin!(PB4, 1, 4, EXTI4);
35impl_gpio_pin!(PB5, 1, 5, EXTI5);
36impl_gpio_pin!(PB6, 1, 6, EXTI6);
37impl_gpio_pin!(PB7, 1, 7, EXTI7);
38impl_gpio_pin!(PB8, 1, 8, EXTI8);
39impl_gpio_pin!(PB9, 1, 9, EXTI9);
40impl_gpio_pin!(PB10, 1, 10, EXTI10);
41impl_gpio_pin!(PB11, 1, 11, EXTI11);
42impl_gpio_pin!(PB12, 1, 12, EXTI12);
43impl_gpio_pin!(PB13, 1, 13, EXTI13);
44impl_gpio_pin!(PB14, 1, 14, EXTI14);
45impl_gpio_pin!(PB15, 1, 15, EXTI15);
46impl_gpio_pin!(PC0, 2, 0, EXTI0);
47impl_gpio_pin!(PC1, 2, 1, EXTI1);
48impl_gpio_pin!(PC2, 2, 2, EXTI2);
49impl_gpio_pin!(PC3, 2, 3, EXTI3);
50impl_gpio_pin!(PC4, 2, 4, EXTI4);
51impl_gpio_pin!(PC5, 2, 5, EXTI5);
52impl_gpio_pin!(PC6, 2, 6, EXTI6);
53impl_gpio_pin!(PC7, 2, 7, EXTI7);
54impl_gpio_pin!(PC8, 2, 8, EXTI8);
55impl_gpio_pin!(PC9, 2, 9, EXTI9);
56impl_gpio_pin!(PC10, 2, 10, EXTI10);
57impl_gpio_pin!(PC11, 2, 11, EXTI11);
58impl_gpio_pin!(PC12, 2, 12, EXTI12);
59impl_gpio_pin!(PC13, 2, 13, EXTI13);
60impl_gpio_pin!(PC14, 2, 14, EXTI14);
61impl_gpio_pin!(PC15, 2, 15, EXTI15);
62impl_gpio_pin!(PD0, 3, 0, EXTI0);
63impl_gpio_pin!(PD1, 3, 1, EXTI1);
64impl_gpio_pin!(PD2, 3, 2, EXTI2);
65impl_gpio_pin!(PD3, 3, 3, EXTI3);
66impl_gpio_pin!(PD4, 3, 4, EXTI4);
67impl_gpio_pin!(PD5, 3, 5, EXTI5);
68impl_gpio_pin!(PD6, 3, 6, EXTI6);
69impl_gpio_pin!(PD7, 3, 7, EXTI7);
70impl_gpio_pin!(PD8, 3, 8, EXTI8);
71impl_gpio_pin!(PD9, 3, 9, EXTI9);
72impl_gpio_pin!(PD10, 3, 10, EXTI10);
73impl_gpio_pin!(PD11, 3, 11, EXTI11);
74impl_gpio_pin!(PD12, 3, 12, EXTI12);
75impl_gpio_pin!(PD13, 3, 13, EXTI13);
76impl_gpio_pin!(PD14, 3, 14, EXTI14);
77impl_gpio_pin!(PD15, 3, 15, EXTI15);
78impl_gpio_pin!(PH0, 7, 0, EXTI0);
79impl_gpio_pin!(PH1, 7, 1, EXTI1);
80impl_gpio_pin!(PH2, 7, 2, EXTI2);
81impl_gpio_pin!(PH3, 7, 3, EXTI3);
82impl_gpio_pin!(PH4, 7, 4, EXTI4);
83impl_gpio_pin!(PH5, 7, 5, EXTI5);
84impl_gpio_pin!(PH6, 7, 6, EXTI6);
85impl_gpio_pin!(PH7, 7, 7, EXTI7);
86impl_gpio_pin!(PH8, 7, 8, EXTI8);
87impl_gpio_pin!(PH9, 7, 9, EXTI9);
88impl_gpio_pin!(PH10, 7, 10, EXTI10);
89impl_gpio_pin!(PH11, 7, 11, EXTI11);
90impl_gpio_pin!(PH12, 7, 12, EXTI12);
91impl_gpio_pin!(PH13, 7, 13, EXTI13);
92impl_gpio_pin!(PH14, 7, 14, EXTI14);
93impl_gpio_pin!(PH15, 7, 15, EXTI15);
94impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l412tb.rs b/embassy-stm32/src/chip/stm32l412tb.rs
new file mode 100644
index 000000000..c12d91a6a
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l412tb.rs
@@ -0,0 +1,94 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9,
5 PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10,
6 PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11,
7 PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12,
8 PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
9 PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, SPI1,
10 SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USB, WWDG
11);
12pub const GPIO_BASE: usize = 0x48000000;
13pub const GPIO_STRIDE: usize = 0x400;
14impl_gpio_pin!(PA0, 0, 0, EXTI0);
15impl_gpio_pin!(PA1, 0, 1, EXTI1);
16impl_gpio_pin!(PA2, 0, 2, EXTI2);
17impl_gpio_pin!(PA3, 0, 3, EXTI3);
18impl_gpio_pin!(PA4, 0, 4, EXTI4);
19impl_gpio_pin!(PA5, 0, 5, EXTI5);
20impl_gpio_pin!(PA6, 0, 6, EXTI6);
21impl_gpio_pin!(PA7, 0, 7, EXTI7);
22impl_gpio_pin!(PA8, 0, 8, EXTI8);
23impl_gpio_pin!(PA9, 0, 9, EXTI9);
24impl_gpio_pin!(PA10, 0, 10, EXTI10);
25impl_gpio_pin!(PA11, 0, 11, EXTI11);
26impl_gpio_pin!(PA12, 0, 12, EXTI12);
27impl_gpio_pin!(PA13, 0, 13, EXTI13);
28impl_gpio_pin!(PA14, 0, 14, EXTI14);
29impl_gpio_pin!(PA15, 0, 15, EXTI15);
30impl_gpio_pin!(PB0, 1, 0, EXTI0);
31impl_gpio_pin!(PB1, 1, 1, EXTI1);
32impl_gpio_pin!(PB2, 1, 2, EXTI2);
33impl_gpio_pin!(PB3, 1, 3, EXTI3);
34impl_gpio_pin!(PB4, 1, 4, EXTI4);
35impl_gpio_pin!(PB5, 1, 5, EXTI5);
36impl_gpio_pin!(PB6, 1, 6, EXTI6);
37impl_gpio_pin!(PB7, 1, 7, EXTI7);
38impl_gpio_pin!(PB8, 1, 8, EXTI8);
39impl_gpio_pin!(PB9, 1, 9, EXTI9);
40impl_gpio_pin!(PB10, 1, 10, EXTI10);
41impl_gpio_pin!(PB11, 1, 11, EXTI11);
42impl_gpio_pin!(PB12, 1, 12, EXTI12);
43impl_gpio_pin!(PB13, 1, 13, EXTI13);
44impl_gpio_pin!(PB14, 1, 14, EXTI14);
45impl_gpio_pin!(PB15, 1, 15, EXTI15);
46impl_gpio_pin!(PC0, 2, 0, EXTI0);
47impl_gpio_pin!(PC1, 2, 1, EXTI1);
48impl_gpio_pin!(PC2, 2, 2, EXTI2);
49impl_gpio_pin!(PC3, 2, 3, EXTI3);
50impl_gpio_pin!(PC4, 2, 4, EXTI4);
51impl_gpio_pin!(PC5, 2, 5, EXTI5);
52impl_gpio_pin!(PC6, 2, 6, EXTI6);
53impl_gpio_pin!(PC7, 2, 7, EXTI7);
54impl_gpio_pin!(PC8, 2, 8, EXTI8);
55impl_gpio_pin!(PC9, 2, 9, EXTI9);
56impl_gpio_pin!(PC10, 2, 10, EXTI10);
57impl_gpio_pin!(PC11, 2, 11, EXTI11);
58impl_gpio_pin!(PC12, 2, 12, EXTI12);
59impl_gpio_pin!(PC13, 2, 13, EXTI13);
60impl_gpio_pin!(PC14, 2, 14, EXTI14);
61impl_gpio_pin!(PC15, 2, 15, EXTI15);
62impl_gpio_pin!(PD0, 3, 0, EXTI0);
63impl_gpio_pin!(PD1, 3, 1, EXTI1);
64impl_gpio_pin!(PD2, 3, 2, EXTI2);
65impl_gpio_pin!(PD3, 3, 3, EXTI3);
66impl_gpio_pin!(PD4, 3, 4, EXTI4);
67impl_gpio_pin!(PD5, 3, 5, EXTI5);
68impl_gpio_pin!(PD6, 3, 6, EXTI6);
69impl_gpio_pin!(PD7, 3, 7, EXTI7);
70impl_gpio_pin!(PD8, 3, 8, EXTI8);
71impl_gpio_pin!(PD9, 3, 9, EXTI9);
72impl_gpio_pin!(PD10, 3, 10, EXTI10);
73impl_gpio_pin!(PD11, 3, 11, EXTI11);
74impl_gpio_pin!(PD12, 3, 12, EXTI12);
75impl_gpio_pin!(PD13, 3, 13, EXTI13);
76impl_gpio_pin!(PD14, 3, 14, EXTI14);
77impl_gpio_pin!(PD15, 3, 15, EXTI15);
78impl_gpio_pin!(PH0, 7, 0, EXTI0);
79impl_gpio_pin!(PH1, 7, 1, EXTI1);
80impl_gpio_pin!(PH2, 7, 2, EXTI2);
81impl_gpio_pin!(PH3, 7, 3, EXTI3);
82impl_gpio_pin!(PH4, 7, 4, EXTI4);
83impl_gpio_pin!(PH5, 7, 5, EXTI5);
84impl_gpio_pin!(PH6, 7, 6, EXTI6);
85impl_gpio_pin!(PH7, 7, 7, EXTI7);
86impl_gpio_pin!(PH8, 7, 8, EXTI8);
87impl_gpio_pin!(PH9, 7, 9, EXTI9);
88impl_gpio_pin!(PH10, 7, 10, EXTI10);
89impl_gpio_pin!(PH11, 7, 11, EXTI11);
90impl_gpio_pin!(PH12, 7, 12, EXTI12);
91impl_gpio_pin!(PH13, 7, 13, EXTI13);
92impl_gpio_pin!(PH14, 7, 14, EXTI14);
93impl_gpio_pin!(PH15, 7, 15, EXTI15);
94impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l422cb.rs b/embassy-stm32/src/chip/stm32l422cb.rs
new file mode 100644
index 000000000..f3734f940
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l422cb.rs
@@ -0,0 +1,95 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8,
5 PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
9 PH13, PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
10 RTC, SPI1, SPI2, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USART3, USB,
11 WWDG
12);
13pub const GPIO_BASE: usize = 0x48000000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PH0, 7, 0, EXTI0);
80impl_gpio_pin!(PH1, 7, 1, EXTI1);
81impl_gpio_pin!(PH2, 7, 2, EXTI2);
82impl_gpio_pin!(PH3, 7, 3, EXTI3);
83impl_gpio_pin!(PH4, 7, 4, EXTI4);
84impl_gpio_pin!(PH5, 7, 5, EXTI5);
85impl_gpio_pin!(PH6, 7, 6, EXTI6);
86impl_gpio_pin!(PH7, 7, 7, EXTI7);
87impl_gpio_pin!(PH8, 7, 8, EXTI8);
88impl_gpio_pin!(PH9, 7, 9, EXTI9);
89impl_gpio_pin!(PH10, 7, 10, EXTI10);
90impl_gpio_pin!(PH11, 7, 11, EXTI11);
91impl_gpio_pin!(PH12, 7, 12, EXTI12);
92impl_gpio_pin!(PH13, 7, 13, EXTI13);
93impl_gpio_pin!(PH14, 7, 14, EXTI14);
94impl_gpio_pin!(PH15, 7, 15, EXTI15);
95impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l422kb.rs b/embassy-stm32/src/chip/stm32l422kb.rs
new file mode 100644
index 000000000..634db7aaf
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l422kb.rs
@@ -0,0 +1,94 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8,
5 PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
9 PH13, PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC,
10 SPI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USB, WWDG
11);
12pub const GPIO_BASE: usize = 0x48000000;
13pub const GPIO_STRIDE: usize = 0x400;
14impl_gpio_pin!(PA0, 0, 0, EXTI0);
15impl_gpio_pin!(PA1, 0, 1, EXTI1);
16impl_gpio_pin!(PA2, 0, 2, EXTI2);
17impl_gpio_pin!(PA3, 0, 3, EXTI3);
18impl_gpio_pin!(PA4, 0, 4, EXTI4);
19impl_gpio_pin!(PA5, 0, 5, EXTI5);
20impl_gpio_pin!(PA6, 0, 6, EXTI6);
21impl_gpio_pin!(PA7, 0, 7, EXTI7);
22impl_gpio_pin!(PA8, 0, 8, EXTI8);
23impl_gpio_pin!(PA9, 0, 9, EXTI9);
24impl_gpio_pin!(PA10, 0, 10, EXTI10);
25impl_gpio_pin!(PA11, 0, 11, EXTI11);
26impl_gpio_pin!(PA12, 0, 12, EXTI12);
27impl_gpio_pin!(PA13, 0, 13, EXTI13);
28impl_gpio_pin!(PA14, 0, 14, EXTI14);
29impl_gpio_pin!(PA15, 0, 15, EXTI15);
30impl_gpio_pin!(PB0, 1, 0, EXTI0);
31impl_gpio_pin!(PB1, 1, 1, EXTI1);
32impl_gpio_pin!(PB2, 1, 2, EXTI2);
33impl_gpio_pin!(PB3, 1, 3, EXTI3);
34impl_gpio_pin!(PB4, 1, 4, EXTI4);
35impl_gpio_pin!(PB5, 1, 5, EXTI5);
36impl_gpio_pin!(PB6, 1, 6, EXTI6);
37impl_gpio_pin!(PB7, 1, 7, EXTI7);
38impl_gpio_pin!(PB8, 1, 8, EXTI8);
39impl_gpio_pin!(PB9, 1, 9, EXTI9);
40impl_gpio_pin!(PB10, 1, 10, EXTI10);
41impl_gpio_pin!(PB11, 1, 11, EXTI11);
42impl_gpio_pin!(PB12, 1, 12, EXTI12);
43impl_gpio_pin!(PB13, 1, 13, EXTI13);
44impl_gpio_pin!(PB14, 1, 14, EXTI14);
45impl_gpio_pin!(PB15, 1, 15, EXTI15);
46impl_gpio_pin!(PC0, 2, 0, EXTI0);
47impl_gpio_pin!(PC1, 2, 1, EXTI1);
48impl_gpio_pin!(PC2, 2, 2, EXTI2);
49impl_gpio_pin!(PC3, 2, 3, EXTI3);
50impl_gpio_pin!(PC4, 2, 4, EXTI4);
51impl_gpio_pin!(PC5, 2, 5, EXTI5);
52impl_gpio_pin!(PC6, 2, 6, EXTI6);
53impl_gpio_pin!(PC7, 2, 7, EXTI7);
54impl_gpio_pin!(PC8, 2, 8, EXTI8);
55impl_gpio_pin!(PC9, 2, 9, EXTI9);
56impl_gpio_pin!(PC10, 2, 10, EXTI10);
57impl_gpio_pin!(PC11, 2, 11, EXTI11);
58impl_gpio_pin!(PC12, 2, 12, EXTI12);
59impl_gpio_pin!(PC13, 2, 13, EXTI13);
60impl_gpio_pin!(PC14, 2, 14, EXTI14);
61impl_gpio_pin!(PC15, 2, 15, EXTI15);
62impl_gpio_pin!(PD0, 3, 0, EXTI0);
63impl_gpio_pin!(PD1, 3, 1, EXTI1);
64impl_gpio_pin!(PD2, 3, 2, EXTI2);
65impl_gpio_pin!(PD3, 3, 3, EXTI3);
66impl_gpio_pin!(PD4, 3, 4, EXTI4);
67impl_gpio_pin!(PD5, 3, 5, EXTI5);
68impl_gpio_pin!(PD6, 3, 6, EXTI6);
69impl_gpio_pin!(PD7, 3, 7, EXTI7);
70impl_gpio_pin!(PD8, 3, 8, EXTI8);
71impl_gpio_pin!(PD9, 3, 9, EXTI9);
72impl_gpio_pin!(PD10, 3, 10, EXTI10);
73impl_gpio_pin!(PD11, 3, 11, EXTI11);
74impl_gpio_pin!(PD12, 3, 12, EXTI12);
75impl_gpio_pin!(PD13, 3, 13, EXTI13);
76impl_gpio_pin!(PD14, 3, 14, EXTI14);
77impl_gpio_pin!(PD15, 3, 15, EXTI15);
78impl_gpio_pin!(PH0, 7, 0, EXTI0);
79impl_gpio_pin!(PH1, 7, 1, EXTI1);
80impl_gpio_pin!(PH2, 7, 2, EXTI2);
81impl_gpio_pin!(PH3, 7, 3, EXTI3);
82impl_gpio_pin!(PH4, 7, 4, EXTI4);
83impl_gpio_pin!(PH5, 7, 5, EXTI5);
84impl_gpio_pin!(PH6, 7, 6, EXTI6);
85impl_gpio_pin!(PH7, 7, 7, EXTI7);
86impl_gpio_pin!(PH8, 7, 8, EXTI8);
87impl_gpio_pin!(PH9, 7, 9, EXTI9);
88impl_gpio_pin!(PH10, 7, 10, EXTI10);
89impl_gpio_pin!(PH11, 7, 11, EXTI11);
90impl_gpio_pin!(PH12, 7, 12, EXTI12);
91impl_gpio_pin!(PH13, 7, 13, EXTI13);
92impl_gpio_pin!(PH14, 7, 14, EXTI14);
93impl_gpio_pin!(PH15, 7, 15, EXTI15);
94impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l422rb.rs b/embassy-stm32/src/chip/stm32l422rb.rs
new file mode 100644
index 000000000..f3734f940
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l422rb.rs
@@ -0,0 +1,95 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8,
5 PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
9 PH13, PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
10 RTC, SPI1, SPI2, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USART3, USB,
11 WWDG
12);
13pub const GPIO_BASE: usize = 0x48000000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PH0, 7, 0, EXTI0);
80impl_gpio_pin!(PH1, 7, 1, EXTI1);
81impl_gpio_pin!(PH2, 7, 2, EXTI2);
82impl_gpio_pin!(PH3, 7, 3, EXTI3);
83impl_gpio_pin!(PH4, 7, 4, EXTI4);
84impl_gpio_pin!(PH5, 7, 5, EXTI5);
85impl_gpio_pin!(PH6, 7, 6, EXTI6);
86impl_gpio_pin!(PH7, 7, 7, EXTI7);
87impl_gpio_pin!(PH8, 7, 8, EXTI8);
88impl_gpio_pin!(PH9, 7, 9, EXTI9);
89impl_gpio_pin!(PH10, 7, 10, EXTI10);
90impl_gpio_pin!(PH11, 7, 11, EXTI11);
91impl_gpio_pin!(PH12, 7, 12, EXTI12);
92impl_gpio_pin!(PH13, 7, 13, EXTI13);
93impl_gpio_pin!(PH14, 7, 14, EXTI14);
94impl_gpio_pin!(PH15, 7, 15, EXTI15);
95impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l422tb.rs b/embassy-stm32/src/chip/stm32l422tb.rs
new file mode 100644
index 000000000..634db7aaf
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l422tb.rs
@@ -0,0 +1,94 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8,
5 PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
9 PH13, PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC,
10 SPI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USB, WWDG
11);
12pub const GPIO_BASE: usize = 0x48000000;
13pub const GPIO_STRIDE: usize = 0x400;
14impl_gpio_pin!(PA0, 0, 0, EXTI0);
15impl_gpio_pin!(PA1, 0, 1, EXTI1);
16impl_gpio_pin!(PA2, 0, 2, EXTI2);
17impl_gpio_pin!(PA3, 0, 3, EXTI3);
18impl_gpio_pin!(PA4, 0, 4, EXTI4);
19impl_gpio_pin!(PA5, 0, 5, EXTI5);
20impl_gpio_pin!(PA6, 0, 6, EXTI6);
21impl_gpio_pin!(PA7, 0, 7, EXTI7);
22impl_gpio_pin!(PA8, 0, 8, EXTI8);
23impl_gpio_pin!(PA9, 0, 9, EXTI9);
24impl_gpio_pin!(PA10, 0, 10, EXTI10);
25impl_gpio_pin!(PA11, 0, 11, EXTI11);
26impl_gpio_pin!(PA12, 0, 12, EXTI12);
27impl_gpio_pin!(PA13, 0, 13, EXTI13);
28impl_gpio_pin!(PA14, 0, 14, EXTI14);
29impl_gpio_pin!(PA15, 0, 15, EXTI15);
30impl_gpio_pin!(PB0, 1, 0, EXTI0);
31impl_gpio_pin!(PB1, 1, 1, EXTI1);
32impl_gpio_pin!(PB2, 1, 2, EXTI2);
33impl_gpio_pin!(PB3, 1, 3, EXTI3);
34impl_gpio_pin!(PB4, 1, 4, EXTI4);
35impl_gpio_pin!(PB5, 1, 5, EXTI5);
36impl_gpio_pin!(PB6, 1, 6, EXTI6);
37impl_gpio_pin!(PB7, 1, 7, EXTI7);
38impl_gpio_pin!(PB8, 1, 8, EXTI8);
39impl_gpio_pin!(PB9, 1, 9, EXTI9);
40impl_gpio_pin!(PB10, 1, 10, EXTI10);
41impl_gpio_pin!(PB11, 1, 11, EXTI11);
42impl_gpio_pin!(PB12, 1, 12, EXTI12);
43impl_gpio_pin!(PB13, 1, 13, EXTI13);
44impl_gpio_pin!(PB14, 1, 14, EXTI14);
45impl_gpio_pin!(PB15, 1, 15, EXTI15);
46impl_gpio_pin!(PC0, 2, 0, EXTI0);
47impl_gpio_pin!(PC1, 2, 1, EXTI1);
48impl_gpio_pin!(PC2, 2, 2, EXTI2);
49impl_gpio_pin!(PC3, 2, 3, EXTI3);
50impl_gpio_pin!(PC4, 2, 4, EXTI4);
51impl_gpio_pin!(PC5, 2, 5, EXTI5);
52impl_gpio_pin!(PC6, 2, 6, EXTI6);
53impl_gpio_pin!(PC7, 2, 7, EXTI7);
54impl_gpio_pin!(PC8, 2, 8, EXTI8);
55impl_gpio_pin!(PC9, 2, 9, EXTI9);
56impl_gpio_pin!(PC10, 2, 10, EXTI10);
57impl_gpio_pin!(PC11, 2, 11, EXTI11);
58impl_gpio_pin!(PC12, 2, 12, EXTI12);
59impl_gpio_pin!(PC13, 2, 13, EXTI13);
60impl_gpio_pin!(PC14, 2, 14, EXTI14);
61impl_gpio_pin!(PC15, 2, 15, EXTI15);
62impl_gpio_pin!(PD0, 3, 0, EXTI0);
63impl_gpio_pin!(PD1, 3, 1, EXTI1);
64impl_gpio_pin!(PD2, 3, 2, EXTI2);
65impl_gpio_pin!(PD3, 3, 3, EXTI3);
66impl_gpio_pin!(PD4, 3, 4, EXTI4);
67impl_gpio_pin!(PD5, 3, 5, EXTI5);
68impl_gpio_pin!(PD6, 3, 6, EXTI6);
69impl_gpio_pin!(PD7, 3, 7, EXTI7);
70impl_gpio_pin!(PD8, 3, 8, EXTI8);
71impl_gpio_pin!(PD9, 3, 9, EXTI9);
72impl_gpio_pin!(PD10, 3, 10, EXTI10);
73impl_gpio_pin!(PD11, 3, 11, EXTI11);
74impl_gpio_pin!(PD12, 3, 12, EXTI12);
75impl_gpio_pin!(PD13, 3, 13, EXTI13);
76impl_gpio_pin!(PD14, 3, 14, EXTI14);
77impl_gpio_pin!(PD15, 3, 15, EXTI15);
78impl_gpio_pin!(PH0, 7, 0, EXTI0);
79impl_gpio_pin!(PH1, 7, 1, EXTI1);
80impl_gpio_pin!(PH2, 7, 2, EXTI2);
81impl_gpio_pin!(PH3, 7, 3, EXTI3);
82impl_gpio_pin!(PH4, 7, 4, EXTI4);
83impl_gpio_pin!(PH5, 7, 5, EXTI5);
84impl_gpio_pin!(PH6, 7, 6, EXTI6);
85impl_gpio_pin!(PH7, 7, 7, EXTI7);
86impl_gpio_pin!(PH8, 7, 8, EXTI8);
87impl_gpio_pin!(PH9, 7, 9, EXTI9);
88impl_gpio_pin!(PH10, 7, 10, EXTI10);
89impl_gpio_pin!(PH11, 7, 11, EXTI11);
90impl_gpio_pin!(PH12, 7, 12, EXTI12);
91impl_gpio_pin!(PH13, 7, 13, EXTI13);
92impl_gpio_pin!(PH14, 7, 14, EXTI14);
93impl_gpio_pin!(PH15, 7, 15, EXTI15);
94impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l431cb.rs b/embassy-stm32/src/chip/stm32l431cb.rs
new file mode 100644
index 000000000..fb418c2ab
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l431cb.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC,
11 SAI1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, USART1,
12 USART2, USART3, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l431cc.rs b/embassy-stm32/src/chip/stm32l431cc.rs
new file mode 100644
index 000000000..fb418c2ab
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l431cc.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC,
11 SAI1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, USART1,
12 USART2, USART3, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l431kb.rs b/embassy-stm32/src/chip/stm32l431kb.rs
new file mode 100644
index 000000000..3959d4989
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l431kb.rs
@@ -0,0 +1,111 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, SAI1,
11 SPI1, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, USART1, USART2, WWDG
12);
13pub const GPIO_BASE: usize = 0x48000000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
111impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l431kc.rs b/embassy-stm32/src/chip/stm32l431kc.rs
new file mode 100644
index 000000000..3959d4989
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l431kc.rs
@@ -0,0 +1,111 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, SAI1,
11 SPI1, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, USART1, USART2, WWDG
12);
13pub const GPIO_BASE: usize = 0x48000000;
14pub const GPIO_STRIDE: usize = 0x400;
15impl_gpio_pin!(PA0, 0, 0, EXTI0);
16impl_gpio_pin!(PA1, 0, 1, EXTI1);
17impl_gpio_pin!(PA2, 0, 2, EXTI2);
18impl_gpio_pin!(PA3, 0, 3, EXTI3);
19impl_gpio_pin!(PA4, 0, 4, EXTI4);
20impl_gpio_pin!(PA5, 0, 5, EXTI5);
21impl_gpio_pin!(PA6, 0, 6, EXTI6);
22impl_gpio_pin!(PA7, 0, 7, EXTI7);
23impl_gpio_pin!(PA8, 0, 8, EXTI8);
24impl_gpio_pin!(PA9, 0, 9, EXTI9);
25impl_gpio_pin!(PA10, 0, 10, EXTI10);
26impl_gpio_pin!(PA11, 0, 11, EXTI11);
27impl_gpio_pin!(PA12, 0, 12, EXTI12);
28impl_gpio_pin!(PA13, 0, 13, EXTI13);
29impl_gpio_pin!(PA14, 0, 14, EXTI14);
30impl_gpio_pin!(PA15, 0, 15, EXTI15);
31impl_gpio_pin!(PB0, 1, 0, EXTI0);
32impl_gpio_pin!(PB1, 1, 1, EXTI1);
33impl_gpio_pin!(PB2, 1, 2, EXTI2);
34impl_gpio_pin!(PB3, 1, 3, EXTI3);
35impl_gpio_pin!(PB4, 1, 4, EXTI4);
36impl_gpio_pin!(PB5, 1, 5, EXTI5);
37impl_gpio_pin!(PB6, 1, 6, EXTI6);
38impl_gpio_pin!(PB7, 1, 7, EXTI7);
39impl_gpio_pin!(PB8, 1, 8, EXTI8);
40impl_gpio_pin!(PB9, 1, 9, EXTI9);
41impl_gpio_pin!(PB10, 1, 10, EXTI10);
42impl_gpio_pin!(PB11, 1, 11, EXTI11);
43impl_gpio_pin!(PB12, 1, 12, EXTI12);
44impl_gpio_pin!(PB13, 1, 13, EXTI13);
45impl_gpio_pin!(PB14, 1, 14, EXTI14);
46impl_gpio_pin!(PB15, 1, 15, EXTI15);
47impl_gpio_pin!(PC0, 2, 0, EXTI0);
48impl_gpio_pin!(PC1, 2, 1, EXTI1);
49impl_gpio_pin!(PC2, 2, 2, EXTI2);
50impl_gpio_pin!(PC3, 2, 3, EXTI3);
51impl_gpio_pin!(PC4, 2, 4, EXTI4);
52impl_gpio_pin!(PC5, 2, 5, EXTI5);
53impl_gpio_pin!(PC6, 2, 6, EXTI6);
54impl_gpio_pin!(PC7, 2, 7, EXTI7);
55impl_gpio_pin!(PC8, 2, 8, EXTI8);
56impl_gpio_pin!(PC9, 2, 9, EXTI9);
57impl_gpio_pin!(PC10, 2, 10, EXTI10);
58impl_gpio_pin!(PC11, 2, 11, EXTI11);
59impl_gpio_pin!(PC12, 2, 12, EXTI12);
60impl_gpio_pin!(PC13, 2, 13, EXTI13);
61impl_gpio_pin!(PC14, 2, 14, EXTI14);
62impl_gpio_pin!(PC15, 2, 15, EXTI15);
63impl_gpio_pin!(PD0, 3, 0, EXTI0);
64impl_gpio_pin!(PD1, 3, 1, EXTI1);
65impl_gpio_pin!(PD2, 3, 2, EXTI2);
66impl_gpio_pin!(PD3, 3, 3, EXTI3);
67impl_gpio_pin!(PD4, 3, 4, EXTI4);
68impl_gpio_pin!(PD5, 3, 5, EXTI5);
69impl_gpio_pin!(PD6, 3, 6, EXTI6);
70impl_gpio_pin!(PD7, 3, 7, EXTI7);
71impl_gpio_pin!(PD8, 3, 8, EXTI8);
72impl_gpio_pin!(PD9, 3, 9, EXTI9);
73impl_gpio_pin!(PD10, 3, 10, EXTI10);
74impl_gpio_pin!(PD11, 3, 11, EXTI11);
75impl_gpio_pin!(PD12, 3, 12, EXTI12);
76impl_gpio_pin!(PD13, 3, 13, EXTI13);
77impl_gpio_pin!(PD14, 3, 14, EXTI14);
78impl_gpio_pin!(PD15, 3, 15, EXTI15);
79impl_gpio_pin!(PE0, 4, 0, EXTI0);
80impl_gpio_pin!(PE1, 4, 1, EXTI1);
81impl_gpio_pin!(PE2, 4, 2, EXTI2);
82impl_gpio_pin!(PE3, 4, 3, EXTI3);
83impl_gpio_pin!(PE4, 4, 4, EXTI4);
84impl_gpio_pin!(PE5, 4, 5, EXTI5);
85impl_gpio_pin!(PE6, 4, 6, EXTI6);
86impl_gpio_pin!(PE7, 4, 7, EXTI7);
87impl_gpio_pin!(PE8, 4, 8, EXTI8);
88impl_gpio_pin!(PE9, 4, 9, EXTI9);
89impl_gpio_pin!(PE10, 4, 10, EXTI10);
90impl_gpio_pin!(PE11, 4, 11, EXTI11);
91impl_gpio_pin!(PE12, 4, 12, EXTI12);
92impl_gpio_pin!(PE13, 4, 13, EXTI13);
93impl_gpio_pin!(PE14, 4, 14, EXTI14);
94impl_gpio_pin!(PE15, 4, 15, EXTI15);
95impl_gpio_pin!(PH0, 7, 0, EXTI0);
96impl_gpio_pin!(PH1, 7, 1, EXTI1);
97impl_gpio_pin!(PH2, 7, 2, EXTI2);
98impl_gpio_pin!(PH3, 7, 3, EXTI3);
99impl_gpio_pin!(PH4, 7, 4, EXTI4);
100impl_gpio_pin!(PH5, 7, 5, EXTI5);
101impl_gpio_pin!(PH6, 7, 6, EXTI6);
102impl_gpio_pin!(PH7, 7, 7, EXTI7);
103impl_gpio_pin!(PH8, 7, 8, EXTI8);
104impl_gpio_pin!(PH9, 7, 9, EXTI9);
105impl_gpio_pin!(PH10, 7, 10, EXTI10);
106impl_gpio_pin!(PH11, 7, 11, EXTI11);
107impl_gpio_pin!(PH12, 7, 12, EXTI12);
108impl_gpio_pin!(PH13, 7, 13, EXTI13);
109impl_gpio_pin!(PH14, 7, 14, EXTI14);
110impl_gpio_pin!(PH15, 7, 15, EXTI15);
111impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l431rb.rs b/embassy-stm32/src/chip/stm32l431rb.rs
new file mode 100644
index 000000000..9c26d500d
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l431rb.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC,
11 SAI1, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC,
12 USART1, USART2, USART3, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l431rc.rs b/embassy-stm32/src/chip/stm32l431rc.rs
new file mode 100644
index 000000000..9c26d500d
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l431rc.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC,
11 SAI1, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC,
12 USART1, USART2, USART3, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l431vc.rs b/embassy-stm32/src/chip/stm32l431vc.rs
new file mode 100644
index 000000000..9c26d500d
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l431vc.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC,
11 SAI1, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC,
12 USART1, USART2, USART3, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l432kb.rs b/embassy-stm32/src/chip/stm32l432kb.rs
new file mode 100644
index 000000000..36b8571c1
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l432kb.rs
@@ -0,0 +1,78 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
8 PH12, PH13, PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
9 RTC, SAI1, SPI1, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, USART1,
10 USART2, USB, WWDG
11);
12pub const GPIO_BASE: usize = 0x48000000;
13pub const GPIO_STRIDE: usize = 0x400;
14impl_gpio_pin!(PA0, 0, 0, EXTI0);
15impl_gpio_pin!(PA1, 0, 1, EXTI1);
16impl_gpio_pin!(PA2, 0, 2, EXTI2);
17impl_gpio_pin!(PA3, 0, 3, EXTI3);
18impl_gpio_pin!(PA4, 0, 4, EXTI4);
19impl_gpio_pin!(PA5, 0, 5, EXTI5);
20impl_gpio_pin!(PA6, 0, 6, EXTI6);
21impl_gpio_pin!(PA7, 0, 7, EXTI7);
22impl_gpio_pin!(PA8, 0, 8, EXTI8);
23impl_gpio_pin!(PA9, 0, 9, EXTI9);
24impl_gpio_pin!(PA10, 0, 10, EXTI10);
25impl_gpio_pin!(PA11, 0, 11, EXTI11);
26impl_gpio_pin!(PA12, 0, 12, EXTI12);
27impl_gpio_pin!(PA13, 0, 13, EXTI13);
28impl_gpio_pin!(PA14, 0, 14, EXTI14);
29impl_gpio_pin!(PA15, 0, 15, EXTI15);
30impl_gpio_pin!(PB0, 1, 0, EXTI0);
31impl_gpio_pin!(PB1, 1, 1, EXTI1);
32impl_gpio_pin!(PB2, 1, 2, EXTI2);
33impl_gpio_pin!(PB3, 1, 3, EXTI3);
34impl_gpio_pin!(PB4, 1, 4, EXTI4);
35impl_gpio_pin!(PB5, 1, 5, EXTI5);
36impl_gpio_pin!(PB6, 1, 6, EXTI6);
37impl_gpio_pin!(PB7, 1, 7, EXTI7);
38impl_gpio_pin!(PB8, 1, 8, EXTI8);
39impl_gpio_pin!(PB9, 1, 9, EXTI9);
40impl_gpio_pin!(PB10, 1, 10, EXTI10);
41impl_gpio_pin!(PB11, 1, 11, EXTI11);
42impl_gpio_pin!(PB12, 1, 12, EXTI12);
43impl_gpio_pin!(PB13, 1, 13, EXTI13);
44impl_gpio_pin!(PB14, 1, 14, EXTI14);
45impl_gpio_pin!(PB15, 1, 15, EXTI15);
46impl_gpio_pin!(PC0, 2, 0, EXTI0);
47impl_gpio_pin!(PC1, 2, 1, EXTI1);
48impl_gpio_pin!(PC2, 2, 2, EXTI2);
49impl_gpio_pin!(PC3, 2, 3, EXTI3);
50impl_gpio_pin!(PC4, 2, 4, EXTI4);
51impl_gpio_pin!(PC5, 2, 5, EXTI5);
52impl_gpio_pin!(PC6, 2, 6, EXTI6);
53impl_gpio_pin!(PC7, 2, 7, EXTI7);
54impl_gpio_pin!(PC8, 2, 8, EXTI8);
55impl_gpio_pin!(PC9, 2, 9, EXTI9);
56impl_gpio_pin!(PC10, 2, 10, EXTI10);
57impl_gpio_pin!(PC11, 2, 11, EXTI11);
58impl_gpio_pin!(PC12, 2, 12, EXTI12);
59impl_gpio_pin!(PC13, 2, 13, EXTI13);
60impl_gpio_pin!(PC14, 2, 14, EXTI14);
61impl_gpio_pin!(PC15, 2, 15, EXTI15);
62impl_gpio_pin!(PH0, 7, 0, EXTI0);
63impl_gpio_pin!(PH1, 7, 1, EXTI1);
64impl_gpio_pin!(PH2, 7, 2, EXTI2);
65impl_gpio_pin!(PH3, 7, 3, EXTI3);
66impl_gpio_pin!(PH4, 7, 4, EXTI4);
67impl_gpio_pin!(PH5, 7, 5, EXTI5);
68impl_gpio_pin!(PH6, 7, 6, EXTI6);
69impl_gpio_pin!(PH7, 7, 7, EXTI7);
70impl_gpio_pin!(PH8, 7, 8, EXTI8);
71impl_gpio_pin!(PH9, 7, 9, EXTI9);
72impl_gpio_pin!(PH10, 7, 10, EXTI10);
73impl_gpio_pin!(PH11, 7, 11, EXTI11);
74impl_gpio_pin!(PH12, 7, 12, EXTI12);
75impl_gpio_pin!(PH13, 7, 13, EXTI13);
76impl_gpio_pin!(PH14, 7, 14, EXTI14);
77impl_gpio_pin!(PH15, 7, 15, EXTI15);
78impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l432kc.rs b/embassy-stm32/src/chip/stm32l432kc.rs
new file mode 100644
index 000000000..36b8571c1
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l432kc.rs
@@ -0,0 +1,78 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
8 PH12, PH13, PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
9 RTC, SAI1, SPI1, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, USART1,
10 USART2, USB, WWDG
11);
12pub const GPIO_BASE: usize = 0x48000000;
13pub const GPIO_STRIDE: usize = 0x400;
14impl_gpio_pin!(PA0, 0, 0, EXTI0);
15impl_gpio_pin!(PA1, 0, 1, EXTI1);
16impl_gpio_pin!(PA2, 0, 2, EXTI2);
17impl_gpio_pin!(PA3, 0, 3, EXTI3);
18impl_gpio_pin!(PA4, 0, 4, EXTI4);
19impl_gpio_pin!(PA5, 0, 5, EXTI5);
20impl_gpio_pin!(PA6, 0, 6, EXTI6);
21impl_gpio_pin!(PA7, 0, 7, EXTI7);
22impl_gpio_pin!(PA8, 0, 8, EXTI8);
23impl_gpio_pin!(PA9, 0, 9, EXTI9);
24impl_gpio_pin!(PA10, 0, 10, EXTI10);
25impl_gpio_pin!(PA11, 0, 11, EXTI11);
26impl_gpio_pin!(PA12, 0, 12, EXTI12);
27impl_gpio_pin!(PA13, 0, 13, EXTI13);
28impl_gpio_pin!(PA14, 0, 14, EXTI14);
29impl_gpio_pin!(PA15, 0, 15, EXTI15);
30impl_gpio_pin!(PB0, 1, 0, EXTI0);
31impl_gpio_pin!(PB1, 1, 1, EXTI1);
32impl_gpio_pin!(PB2, 1, 2, EXTI2);
33impl_gpio_pin!(PB3, 1, 3, EXTI3);
34impl_gpio_pin!(PB4, 1, 4, EXTI4);
35impl_gpio_pin!(PB5, 1, 5, EXTI5);
36impl_gpio_pin!(PB6, 1, 6, EXTI6);
37impl_gpio_pin!(PB7, 1, 7, EXTI7);
38impl_gpio_pin!(PB8, 1, 8, EXTI8);
39impl_gpio_pin!(PB9, 1, 9, EXTI9);
40impl_gpio_pin!(PB10, 1, 10, EXTI10);
41impl_gpio_pin!(PB11, 1, 11, EXTI11);
42impl_gpio_pin!(PB12, 1, 12, EXTI12);
43impl_gpio_pin!(PB13, 1, 13, EXTI13);
44impl_gpio_pin!(PB14, 1, 14, EXTI14);
45impl_gpio_pin!(PB15, 1, 15, EXTI15);
46impl_gpio_pin!(PC0, 2, 0, EXTI0);
47impl_gpio_pin!(PC1, 2, 1, EXTI1);
48impl_gpio_pin!(PC2, 2, 2, EXTI2);
49impl_gpio_pin!(PC3, 2, 3, EXTI3);
50impl_gpio_pin!(PC4, 2, 4, EXTI4);
51impl_gpio_pin!(PC5, 2, 5, EXTI5);
52impl_gpio_pin!(PC6, 2, 6, EXTI6);
53impl_gpio_pin!(PC7, 2, 7, EXTI7);
54impl_gpio_pin!(PC8, 2, 8, EXTI8);
55impl_gpio_pin!(PC9, 2, 9, EXTI9);
56impl_gpio_pin!(PC10, 2, 10, EXTI10);
57impl_gpio_pin!(PC11, 2, 11, EXTI11);
58impl_gpio_pin!(PC12, 2, 12, EXTI12);
59impl_gpio_pin!(PC13, 2, 13, EXTI13);
60impl_gpio_pin!(PC14, 2, 14, EXTI14);
61impl_gpio_pin!(PC15, 2, 15, EXTI15);
62impl_gpio_pin!(PH0, 7, 0, EXTI0);
63impl_gpio_pin!(PH1, 7, 1, EXTI1);
64impl_gpio_pin!(PH2, 7, 2, EXTI2);
65impl_gpio_pin!(PH3, 7, 3, EXTI3);
66impl_gpio_pin!(PH4, 7, 4, EXTI4);
67impl_gpio_pin!(PH5, 7, 5, EXTI5);
68impl_gpio_pin!(PH6, 7, 6, EXTI6);
69impl_gpio_pin!(PH7, 7, 7, EXTI7);
70impl_gpio_pin!(PH8, 7, 8, EXTI8);
71impl_gpio_pin!(PH9, 7, 9, EXTI9);
72impl_gpio_pin!(PH10, 7, 10, EXTI10);
73impl_gpio_pin!(PH11, 7, 11, EXTI11);
74impl_gpio_pin!(PH12, 7, 12, EXTI12);
75impl_gpio_pin!(PH13, 7, 13, EXTI13);
76impl_gpio_pin!(PH14, 7, 14, EXTI14);
77impl_gpio_pin!(PH15, 7, 15, EXTI15);
78impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l433cb.rs b/embassy-stm32/src/chip/stm32l433cb.rs
new file mode 100644
index 000000000..80e01da59
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l433cb.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
11 RTC, SAI1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, USART1,
12 USART2, USART3, USB, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l433cc.rs b/embassy-stm32/src/chip/stm32l433cc.rs
new file mode 100644
index 000000000..80e01da59
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l433cc.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
11 RTC, SAI1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, USART1,
12 USART2, USART3, USB, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l433rb.rs b/embassy-stm32/src/chip/stm32l433rb.rs
new file mode 100644
index 000000000..a61a3c53e
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l433rb.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
11 RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC,
12 USART1, USART2, USART3, USB, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l433rc.rs b/embassy-stm32/src/chip/stm32l433rc.rs
new file mode 100644
index 000000000..a61a3c53e
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l433rc.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
11 RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC,
12 USART1, USART2, USART3, USB, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l433vc.rs b/embassy-stm32/src/chip/stm32l433vc.rs
new file mode 100644
index 000000000..a61a3c53e
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l433vc.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
11 RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC,
12 USART1, USART2, USART3, USB, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l442kc.rs b/embassy-stm32/src/chip/stm32l442kc.rs
new file mode 100644
index 000000000..331d152f3
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l442kc.rs
@@ -0,0 +1,78 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6,
5 PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8,
6 PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10,
8 PH11, PH12, PH13, PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC,
9 RNG, RTC, SAI1, SPI1, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, USART1,
10 USART2, USB, WWDG
11);
12pub const GPIO_BASE: usize = 0x48000000;
13pub const GPIO_STRIDE: usize = 0x400;
14impl_gpio_pin!(PA0, 0, 0, EXTI0);
15impl_gpio_pin!(PA1, 0, 1, EXTI1);
16impl_gpio_pin!(PA2, 0, 2, EXTI2);
17impl_gpio_pin!(PA3, 0, 3, EXTI3);
18impl_gpio_pin!(PA4, 0, 4, EXTI4);
19impl_gpio_pin!(PA5, 0, 5, EXTI5);
20impl_gpio_pin!(PA6, 0, 6, EXTI6);
21impl_gpio_pin!(PA7, 0, 7, EXTI7);
22impl_gpio_pin!(PA8, 0, 8, EXTI8);
23impl_gpio_pin!(PA9, 0, 9, EXTI9);
24impl_gpio_pin!(PA10, 0, 10, EXTI10);
25impl_gpio_pin!(PA11, 0, 11, EXTI11);
26impl_gpio_pin!(PA12, 0, 12, EXTI12);
27impl_gpio_pin!(PA13, 0, 13, EXTI13);
28impl_gpio_pin!(PA14, 0, 14, EXTI14);
29impl_gpio_pin!(PA15, 0, 15, EXTI15);
30impl_gpio_pin!(PB0, 1, 0, EXTI0);
31impl_gpio_pin!(PB1, 1, 1, EXTI1);
32impl_gpio_pin!(PB2, 1, 2, EXTI2);
33impl_gpio_pin!(PB3, 1, 3, EXTI3);
34impl_gpio_pin!(PB4, 1, 4, EXTI4);
35impl_gpio_pin!(PB5, 1, 5, EXTI5);
36impl_gpio_pin!(PB6, 1, 6, EXTI6);
37impl_gpio_pin!(PB7, 1, 7, EXTI7);
38impl_gpio_pin!(PB8, 1, 8, EXTI8);
39impl_gpio_pin!(PB9, 1, 9, EXTI9);
40impl_gpio_pin!(PB10, 1, 10, EXTI10);
41impl_gpio_pin!(PB11, 1, 11, EXTI11);
42impl_gpio_pin!(PB12, 1, 12, EXTI12);
43impl_gpio_pin!(PB13, 1, 13, EXTI13);
44impl_gpio_pin!(PB14, 1, 14, EXTI14);
45impl_gpio_pin!(PB15, 1, 15, EXTI15);
46impl_gpio_pin!(PC0, 2, 0, EXTI0);
47impl_gpio_pin!(PC1, 2, 1, EXTI1);
48impl_gpio_pin!(PC2, 2, 2, EXTI2);
49impl_gpio_pin!(PC3, 2, 3, EXTI3);
50impl_gpio_pin!(PC4, 2, 4, EXTI4);
51impl_gpio_pin!(PC5, 2, 5, EXTI5);
52impl_gpio_pin!(PC6, 2, 6, EXTI6);
53impl_gpio_pin!(PC7, 2, 7, EXTI7);
54impl_gpio_pin!(PC8, 2, 8, EXTI8);
55impl_gpio_pin!(PC9, 2, 9, EXTI9);
56impl_gpio_pin!(PC10, 2, 10, EXTI10);
57impl_gpio_pin!(PC11, 2, 11, EXTI11);
58impl_gpio_pin!(PC12, 2, 12, EXTI12);
59impl_gpio_pin!(PC13, 2, 13, EXTI13);
60impl_gpio_pin!(PC14, 2, 14, EXTI14);
61impl_gpio_pin!(PC15, 2, 15, EXTI15);
62impl_gpio_pin!(PH0, 7, 0, EXTI0);
63impl_gpio_pin!(PH1, 7, 1, EXTI1);
64impl_gpio_pin!(PH2, 7, 2, EXTI2);
65impl_gpio_pin!(PH3, 7, 3, EXTI3);
66impl_gpio_pin!(PH4, 7, 4, EXTI4);
67impl_gpio_pin!(PH5, 7, 5, EXTI5);
68impl_gpio_pin!(PH6, 7, 6, EXTI6);
69impl_gpio_pin!(PH7, 7, 7, EXTI7);
70impl_gpio_pin!(PH8, 7, 8, EXTI8);
71impl_gpio_pin!(PH9, 7, 9, EXTI9);
72impl_gpio_pin!(PH10, 7, 10, EXTI10);
73impl_gpio_pin!(PH11, 7, 11, EXTI11);
74impl_gpio_pin!(PH12, 7, 12, EXTI12);
75impl_gpio_pin!(PH13, 7, 13, EXTI13);
76impl_gpio_pin!(PH14, 7, 14, EXTI14);
77impl_gpio_pin!(PH15, 7, 15, EXTI15);
78impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l443cc.rs b/embassy-stm32/src/chip/stm32l443cc.rs
new file mode 100644
index 000000000..10d538aef
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l443cc.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6,
5 PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8,
6 PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
10 PH13, PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC,
11 RNG, RTC, SAI1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC,
12 USART1, USART2, USART3, USB, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l443rc.rs b/embassy-stm32/src/chip/stm32l443rc.rs
new file mode 100644
index 000000000..4842bf0f6
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l443rc.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6,
5 PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8,
6 PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
10 PH13, PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC,
11 RNG, RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7,
12 TSC, USART1, USART2, USART3, USB, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l443vc.rs b/embassy-stm32/src/chip/stm32l443vc.rs
new file mode 100644
index 000000000..4842bf0f6
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l443vc.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6,
5 PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8,
6 PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
10 PH13, PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC,
11 RNG, RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7,
12 TSC, USART1, USART2, USART3, USB, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l451cc.rs b/embassy-stm32/src/chip/stm32l451cc.rs
new file mode 100644
index 000000000..59132f492
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l451cc.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
11 RTC, SAI1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4, USART1,
12 USART2, USART3, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l451ce.rs b/embassy-stm32/src/chip/stm32l451ce.rs
new file mode 100644
index 000000000..59132f492
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l451ce.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
11 RTC, SAI1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4, USART1,
12 USART2, USART3, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l451rc.rs b/embassy-stm32/src/chip/stm32l451rc.rs
new file mode 100644
index 000000000..af1f601c7
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l451rc.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
11 RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4,
12 USART1, USART2, USART3, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l451re.rs b/embassy-stm32/src/chip/stm32l451re.rs
new file mode 100644
index 000000000..af1f601c7
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l451re.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
11 RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4,
12 USART1, USART2, USART3, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l451vc.rs b/embassy-stm32/src/chip/stm32l451vc.rs
new file mode 100644
index 000000000..af1f601c7
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l451vc.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
11 RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4,
12 USART1, USART2, USART3, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l451ve.rs b/embassy-stm32/src/chip/stm32l451ve.rs
new file mode 100644
index 000000000..af1f601c7
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l451ve.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
11 RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4,
12 USART1, USART2, USART3, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l452cc.rs b/embassy-stm32/src/chip/stm32l452cc.rs
new file mode 100644
index 000000000..9c348ae47
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l452cc.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
11 RTC, SAI1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4, USART1,
12 USART2, USART3, USB, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l452ce.rs b/embassy-stm32/src/chip/stm32l452ce.rs
new file mode 100644
index 000000000..9c348ae47
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l452ce.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
11 RTC, SAI1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4, USART1,
12 USART2, USART3, USB, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l452rc.rs b/embassy-stm32/src/chip/stm32l452rc.rs
new file mode 100644
index 000000000..5b23cead2
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l452rc.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
11 RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4,
12 USART1, USART2, USART3, USB, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l452re.rs b/embassy-stm32/src/chip/stm32l452re.rs
new file mode 100644
index 000000000..5b23cead2
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l452re.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
11 RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4,
12 USART1, USART2, USART3, USB, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l452vc.rs b/embassy-stm32/src/chip/stm32l452vc.rs
new file mode 100644
index 000000000..5b23cead2
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l452vc.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
11 RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4,
12 USART1, USART2, USART3, USB, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l452ve.rs b/embassy-stm32/src/chip/stm32l452ve.rs
new file mode 100644
index 000000000..5b23cead2
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l452ve.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7,
5 PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9,
6 PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10,
7 PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11,
8 PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12,
9 PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
10 PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG,
11 RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4,
12 USART1, USART2, USART3, USB, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l462ce.rs b/embassy-stm32/src/chip/stm32l462ce.rs
new file mode 100644
index 000000000..2b8be5423
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l462ce.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6,
5 PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8,
6 PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
10 PH13, PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC,
11 RNG, RTC, SAI1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4,
12 USART1, USART2, USART3, USB, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l462re.rs b/embassy-stm32/src/chip/stm32l462re.rs
new file mode 100644
index 000000000..40dbb9a04
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l462re.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6,
5 PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8,
6 PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
10 PH13, PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC,
11 RNG, RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC,
12 UART4, USART1, USART2, USART3, USB, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l462ve.rs b/embassy-stm32/src/chip/stm32l462ve.rs
new file mode 100644
index 000000000..40dbb9a04
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l462ve.rs
@@ -0,0 +1,112 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6,
5 PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8,
6 PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9,
7 PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10,
8 PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11,
9 PE12, PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
10 PH13, PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC,
11 RNG, RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC,
12 UART4, USART1, USART2, USART3, USB, WWDG
13);
14pub const GPIO_BASE: usize = 0x48000000;
15pub const GPIO_STRIDE: usize = 0x400;
16impl_gpio_pin!(PA0, 0, 0, EXTI0);
17impl_gpio_pin!(PA1, 0, 1, EXTI1);
18impl_gpio_pin!(PA2, 0, 2, EXTI2);
19impl_gpio_pin!(PA3, 0, 3, EXTI3);
20impl_gpio_pin!(PA4, 0, 4, EXTI4);
21impl_gpio_pin!(PA5, 0, 5, EXTI5);
22impl_gpio_pin!(PA6, 0, 6, EXTI6);
23impl_gpio_pin!(PA7, 0, 7, EXTI7);
24impl_gpio_pin!(PA8, 0, 8, EXTI8);
25impl_gpio_pin!(PA9, 0, 9, EXTI9);
26impl_gpio_pin!(PA10, 0, 10, EXTI10);
27impl_gpio_pin!(PA11, 0, 11, EXTI11);
28impl_gpio_pin!(PA12, 0, 12, EXTI12);
29impl_gpio_pin!(PA13, 0, 13, EXTI13);
30impl_gpio_pin!(PA14, 0, 14, EXTI14);
31impl_gpio_pin!(PA15, 0, 15, EXTI15);
32impl_gpio_pin!(PB0, 1, 0, EXTI0);
33impl_gpio_pin!(PB1, 1, 1, EXTI1);
34impl_gpio_pin!(PB2, 1, 2, EXTI2);
35impl_gpio_pin!(PB3, 1, 3, EXTI3);
36impl_gpio_pin!(PB4, 1, 4, EXTI4);
37impl_gpio_pin!(PB5, 1, 5, EXTI5);
38impl_gpio_pin!(PB6, 1, 6, EXTI6);
39impl_gpio_pin!(PB7, 1, 7, EXTI7);
40impl_gpio_pin!(PB8, 1, 8, EXTI8);
41impl_gpio_pin!(PB9, 1, 9, EXTI9);
42impl_gpio_pin!(PB10, 1, 10, EXTI10);
43impl_gpio_pin!(PB11, 1, 11, EXTI11);
44impl_gpio_pin!(PB12, 1, 12, EXTI12);
45impl_gpio_pin!(PB13, 1, 13, EXTI13);
46impl_gpio_pin!(PB14, 1, 14, EXTI14);
47impl_gpio_pin!(PB15, 1, 15, EXTI15);
48impl_gpio_pin!(PC0, 2, 0, EXTI0);
49impl_gpio_pin!(PC1, 2, 1, EXTI1);
50impl_gpio_pin!(PC2, 2, 2, EXTI2);
51impl_gpio_pin!(PC3, 2, 3, EXTI3);
52impl_gpio_pin!(PC4, 2, 4, EXTI4);
53impl_gpio_pin!(PC5, 2, 5, EXTI5);
54impl_gpio_pin!(PC6, 2, 6, EXTI6);
55impl_gpio_pin!(PC7, 2, 7, EXTI7);
56impl_gpio_pin!(PC8, 2, 8, EXTI8);
57impl_gpio_pin!(PC9, 2, 9, EXTI9);
58impl_gpio_pin!(PC10, 2, 10, EXTI10);
59impl_gpio_pin!(PC11, 2, 11, EXTI11);
60impl_gpio_pin!(PC12, 2, 12, EXTI12);
61impl_gpio_pin!(PC13, 2, 13, EXTI13);
62impl_gpio_pin!(PC14, 2, 14, EXTI14);
63impl_gpio_pin!(PC15, 2, 15, EXTI15);
64impl_gpio_pin!(PD0, 3, 0, EXTI0);
65impl_gpio_pin!(PD1, 3, 1, EXTI1);
66impl_gpio_pin!(PD2, 3, 2, EXTI2);
67impl_gpio_pin!(PD3, 3, 3, EXTI3);
68impl_gpio_pin!(PD4, 3, 4, EXTI4);
69impl_gpio_pin!(PD5, 3, 5, EXTI5);
70impl_gpio_pin!(PD6, 3, 6, EXTI6);
71impl_gpio_pin!(PD7, 3, 7, EXTI7);
72impl_gpio_pin!(PD8, 3, 8, EXTI8);
73impl_gpio_pin!(PD9, 3, 9, EXTI9);
74impl_gpio_pin!(PD10, 3, 10, EXTI10);
75impl_gpio_pin!(PD11, 3, 11, EXTI11);
76impl_gpio_pin!(PD12, 3, 12, EXTI12);
77impl_gpio_pin!(PD13, 3, 13, EXTI13);
78impl_gpio_pin!(PD14, 3, 14, EXTI14);
79impl_gpio_pin!(PD15, 3, 15, EXTI15);
80impl_gpio_pin!(PE0, 4, 0, EXTI0);
81impl_gpio_pin!(PE1, 4, 1, EXTI1);
82impl_gpio_pin!(PE2, 4, 2, EXTI2);
83impl_gpio_pin!(PE3, 4, 3, EXTI3);
84impl_gpio_pin!(PE4, 4, 4, EXTI4);
85impl_gpio_pin!(PE5, 4, 5, EXTI5);
86impl_gpio_pin!(PE6, 4, 6, EXTI6);
87impl_gpio_pin!(PE7, 4, 7, EXTI7);
88impl_gpio_pin!(PE8, 4, 8, EXTI8);
89impl_gpio_pin!(PE9, 4, 9, EXTI9);
90impl_gpio_pin!(PE10, 4, 10, EXTI10);
91impl_gpio_pin!(PE11, 4, 11, EXTI11);
92impl_gpio_pin!(PE12, 4, 12, EXTI12);
93impl_gpio_pin!(PE13, 4, 13, EXTI13);
94impl_gpio_pin!(PE14, 4, 14, EXTI14);
95impl_gpio_pin!(PE15, 4, 15, EXTI15);
96impl_gpio_pin!(PH0, 7, 0, EXTI0);
97impl_gpio_pin!(PH1, 7, 1, EXTI1);
98impl_gpio_pin!(PH2, 7, 2, EXTI2);
99impl_gpio_pin!(PH3, 7, 3, EXTI3);
100impl_gpio_pin!(PH4, 7, 4, EXTI4);
101impl_gpio_pin!(PH5, 7, 5, EXTI5);
102impl_gpio_pin!(PH6, 7, 6, EXTI6);
103impl_gpio_pin!(PH7, 7, 7, EXTI7);
104impl_gpio_pin!(PH8, 7, 8, EXTI8);
105impl_gpio_pin!(PH9, 7, 9, EXTI9);
106impl_gpio_pin!(PH10, 7, 10, EXTI10);
107impl_gpio_pin!(PH11, 7, 11, EXTI11);
108impl_gpio_pin!(PH12, 7, 12, EXTI12);
109impl_gpio_pin!(PH13, 7, 13, EXTI13);
110impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l471qe.rs b/embassy-stm32/src/chip/stm32l471qe.rs
new file mode 100644
index 000000000..937127de9
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l471qe.rs
@@ -0,0 +1,146 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG,
13 RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2,
14 TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, WWDG
15);
16pub const GPIO_BASE: usize = 0x48000000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l471qg.rs b/embassy-stm32/src/chip/stm32l471qg.rs
new file mode 100644
index 000000000..937127de9
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l471qg.rs
@@ -0,0 +1,146 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG,
13 RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2,
14 TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, WWDG
15);
16pub const GPIO_BASE: usize = 0x48000000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l471re.rs b/embassy-stm32/src/chip/stm32l471re.rs
new file mode 100644
index 000000000..937127de9
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l471re.rs
@@ -0,0 +1,146 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG,
13 RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2,
14 TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, WWDG
15);
16pub const GPIO_BASE: usize = 0x48000000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l471rg.rs b/embassy-stm32/src/chip/stm32l471rg.rs
new file mode 100644
index 000000000..937127de9
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l471rg.rs
@@ -0,0 +1,146 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG,
13 RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2,
14 TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, WWDG
15);
16pub const GPIO_BASE: usize = 0x48000000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l471ve.rs b/embassy-stm32/src/chip/stm32l471ve.rs
new file mode 100644
index 000000000..937127de9
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l471ve.rs
@@ -0,0 +1,146 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG,
13 RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2,
14 TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, WWDG
15);
16pub const GPIO_BASE: usize = 0x48000000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l471vg.rs b/embassy-stm32/src/chip/stm32l471vg.rs
new file mode 100644
index 000000000..937127de9
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l471vg.rs
@@ -0,0 +1,146 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG,
13 RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2,
14 TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, WWDG
15);
16pub const GPIO_BASE: usize = 0x48000000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l471ze.rs b/embassy-stm32/src/chip/stm32l471ze.rs
new file mode 100644
index 000000000..937127de9
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l471ze.rs
@@ -0,0 +1,146 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG,
13 RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2,
14 TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, WWDG
15);
16pub const GPIO_BASE: usize = 0x48000000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l471zg.rs b/embassy-stm32/src/chip/stm32l471zg.rs
new file mode 100644
index 000000000..937127de9
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l471zg.rs
@@ -0,0 +1,146 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG,
13 RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2,
14 TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, WWDG
15);
16pub const GPIO_BASE: usize = 0x48000000;
17pub const GPIO_STRIDE: usize = 0x400;
18impl_gpio_pin!(PA0, 0, 0, EXTI0);
19impl_gpio_pin!(PA1, 0, 1, EXTI1);
20impl_gpio_pin!(PA2, 0, 2, EXTI2);
21impl_gpio_pin!(PA3, 0, 3, EXTI3);
22impl_gpio_pin!(PA4, 0, 4, EXTI4);
23impl_gpio_pin!(PA5, 0, 5, EXTI5);
24impl_gpio_pin!(PA6, 0, 6, EXTI6);
25impl_gpio_pin!(PA7, 0, 7, EXTI7);
26impl_gpio_pin!(PA8, 0, 8, EXTI8);
27impl_gpio_pin!(PA9, 0, 9, EXTI9);
28impl_gpio_pin!(PA10, 0, 10, EXTI10);
29impl_gpio_pin!(PA11, 0, 11, EXTI11);
30impl_gpio_pin!(PA12, 0, 12, EXTI12);
31impl_gpio_pin!(PA13, 0, 13, EXTI13);
32impl_gpio_pin!(PA14, 0, 14, EXTI14);
33impl_gpio_pin!(PA15, 0, 15, EXTI15);
34impl_gpio_pin!(PB0, 1, 0, EXTI0);
35impl_gpio_pin!(PB1, 1, 1, EXTI1);
36impl_gpio_pin!(PB2, 1, 2, EXTI2);
37impl_gpio_pin!(PB3, 1, 3, EXTI3);
38impl_gpio_pin!(PB4, 1, 4, EXTI4);
39impl_gpio_pin!(PB5, 1, 5, EXTI5);
40impl_gpio_pin!(PB6, 1, 6, EXTI6);
41impl_gpio_pin!(PB7, 1, 7, EXTI7);
42impl_gpio_pin!(PB8, 1, 8, EXTI8);
43impl_gpio_pin!(PB9, 1, 9, EXTI9);
44impl_gpio_pin!(PB10, 1, 10, EXTI10);
45impl_gpio_pin!(PB11, 1, 11, EXTI11);
46impl_gpio_pin!(PB12, 1, 12, EXTI12);
47impl_gpio_pin!(PB13, 1, 13, EXTI13);
48impl_gpio_pin!(PB14, 1, 14, EXTI14);
49impl_gpio_pin!(PB15, 1, 15, EXTI15);
50impl_gpio_pin!(PC0, 2, 0, EXTI0);
51impl_gpio_pin!(PC1, 2, 1, EXTI1);
52impl_gpio_pin!(PC2, 2, 2, EXTI2);
53impl_gpio_pin!(PC3, 2, 3, EXTI3);
54impl_gpio_pin!(PC4, 2, 4, EXTI4);
55impl_gpio_pin!(PC5, 2, 5, EXTI5);
56impl_gpio_pin!(PC6, 2, 6, EXTI6);
57impl_gpio_pin!(PC7, 2, 7, EXTI7);
58impl_gpio_pin!(PC8, 2, 8, EXTI8);
59impl_gpio_pin!(PC9, 2, 9, EXTI9);
60impl_gpio_pin!(PC10, 2, 10, EXTI10);
61impl_gpio_pin!(PC11, 2, 11, EXTI11);
62impl_gpio_pin!(PC12, 2, 12, EXTI12);
63impl_gpio_pin!(PC13, 2, 13, EXTI13);
64impl_gpio_pin!(PC14, 2, 14, EXTI14);
65impl_gpio_pin!(PC15, 2, 15, EXTI15);
66impl_gpio_pin!(PD0, 3, 0, EXTI0);
67impl_gpio_pin!(PD1, 3, 1, EXTI1);
68impl_gpio_pin!(PD2, 3, 2, EXTI2);
69impl_gpio_pin!(PD3, 3, 3, EXTI3);
70impl_gpio_pin!(PD4, 3, 4, EXTI4);
71impl_gpio_pin!(PD5, 3, 5, EXTI5);
72impl_gpio_pin!(PD6, 3, 6, EXTI6);
73impl_gpio_pin!(PD7, 3, 7, EXTI7);
74impl_gpio_pin!(PD8, 3, 8, EXTI8);
75impl_gpio_pin!(PD9, 3, 9, EXTI9);
76impl_gpio_pin!(PD10, 3, 10, EXTI10);
77impl_gpio_pin!(PD11, 3, 11, EXTI11);
78impl_gpio_pin!(PD12, 3, 12, EXTI12);
79impl_gpio_pin!(PD13, 3, 13, EXTI13);
80impl_gpio_pin!(PD14, 3, 14, EXTI14);
81impl_gpio_pin!(PD15, 3, 15, EXTI15);
82impl_gpio_pin!(PE0, 4, 0, EXTI0);
83impl_gpio_pin!(PE1, 4, 1, EXTI1);
84impl_gpio_pin!(PE2, 4, 2, EXTI2);
85impl_gpio_pin!(PE3, 4, 3, EXTI3);
86impl_gpio_pin!(PE4, 4, 4, EXTI4);
87impl_gpio_pin!(PE5, 4, 5, EXTI5);
88impl_gpio_pin!(PE6, 4, 6, EXTI6);
89impl_gpio_pin!(PE7, 4, 7, EXTI7);
90impl_gpio_pin!(PE8, 4, 8, EXTI8);
91impl_gpio_pin!(PE9, 4, 9, EXTI9);
92impl_gpio_pin!(PE10, 4, 10, EXTI10);
93impl_gpio_pin!(PE11, 4, 11, EXTI11);
94impl_gpio_pin!(PE12, 4, 12, EXTI12);
95impl_gpio_pin!(PE13, 4, 13, EXTI13);
96impl_gpio_pin!(PE14, 4, 14, EXTI14);
97impl_gpio_pin!(PE15, 4, 15, EXTI15);
98impl_gpio_pin!(PF0, 5, 0, EXTI0);
99impl_gpio_pin!(PF1, 5, 1, EXTI1);
100impl_gpio_pin!(PF2, 5, 2, EXTI2);
101impl_gpio_pin!(PF3, 5, 3, EXTI3);
102impl_gpio_pin!(PF4, 5, 4, EXTI4);
103impl_gpio_pin!(PF5, 5, 5, EXTI5);
104impl_gpio_pin!(PF6, 5, 6, EXTI6);
105impl_gpio_pin!(PF7, 5, 7, EXTI7);
106impl_gpio_pin!(PF8, 5, 8, EXTI8);
107impl_gpio_pin!(PF9, 5, 9, EXTI9);
108impl_gpio_pin!(PF10, 5, 10, EXTI10);
109impl_gpio_pin!(PF11, 5, 11, EXTI11);
110impl_gpio_pin!(PF12, 5, 12, EXTI12);
111impl_gpio_pin!(PF13, 5, 13, EXTI13);
112impl_gpio_pin!(PF14, 5, 14, EXTI14);
113impl_gpio_pin!(PF15, 5, 15, EXTI15);
114impl_gpio_pin!(PG0, 6, 0, EXTI0);
115impl_gpio_pin!(PG1, 6, 1, EXTI1);
116impl_gpio_pin!(PG2, 6, 2, EXTI2);
117impl_gpio_pin!(PG3, 6, 3, EXTI3);
118impl_gpio_pin!(PG4, 6, 4, EXTI4);
119impl_gpio_pin!(PG5, 6, 5, EXTI5);
120impl_gpio_pin!(PG6, 6, 6, EXTI6);
121impl_gpio_pin!(PG7, 6, 7, EXTI7);
122impl_gpio_pin!(PG8, 6, 8, EXTI8);
123impl_gpio_pin!(PG9, 6, 9, EXTI9);
124impl_gpio_pin!(PG10, 6, 10, EXTI10);
125impl_gpio_pin!(PG11, 6, 11, EXTI11);
126impl_gpio_pin!(PG12, 6, 12, EXTI12);
127impl_gpio_pin!(PG13, 6, 13, EXTI13);
128impl_gpio_pin!(PG14, 6, 14, EXTI14);
129impl_gpio_pin!(PG15, 6, 15, EXTI15);
130impl_gpio_pin!(PH0, 7, 0, EXTI0);
131impl_gpio_pin!(PH1, 7, 1, EXTI1);
132impl_gpio_pin!(PH2, 7, 2, EXTI2);
133impl_gpio_pin!(PH3, 7, 3, EXTI3);
134impl_gpio_pin!(PH4, 7, 4, EXTI4);
135impl_gpio_pin!(PH5, 7, 5, EXTI5);
136impl_gpio_pin!(PH6, 7, 6, EXTI6);
137impl_gpio_pin!(PH7, 7, 7, EXTI7);
138impl_gpio_pin!(PH8, 7, 8, EXTI8);
139impl_gpio_pin!(PH9, 7, 9, EXTI9);
140impl_gpio_pin!(PH10, 7, 10, EXTI10);
141impl_gpio_pin!(PH11, 7, 11, EXTI11);
142impl_gpio_pin!(PH12, 7, 12, EXTI12);
143impl_gpio_pin!(PH13, 7, 13, EXTI13);
144impl_gpio_pin!(PH14, 7, 14, EXTI14);
145impl_gpio_pin!(PH15, 7, 15, EXTI15);
146impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l475rc.rs b/embassy-stm32/src/chip/stm32l475rc.rs
new file mode 100644
index 000000000..774df143c
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l475rc.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG,
13 RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2,
14 TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, USB_OTG_FS,
15 WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l475re.rs b/embassy-stm32/src/chip/stm32l475re.rs
new file mode 100644
index 000000000..774df143c
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l475re.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG,
13 RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2,
14 TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, USB_OTG_FS,
15 WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l475rg.rs b/embassy-stm32/src/chip/stm32l475rg.rs
new file mode 100644
index 000000000..774df143c
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l475rg.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG,
13 RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2,
14 TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, USB_OTG_FS,
15 WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l475vc.rs b/embassy-stm32/src/chip/stm32l475vc.rs
new file mode 100644
index 000000000..774df143c
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l475vc.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG,
13 RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2,
14 TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, USB_OTG_FS,
15 WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l475ve.rs b/embassy-stm32/src/chip/stm32l475ve.rs
new file mode 100644
index 000000000..774df143c
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l475ve.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG,
13 RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2,
14 TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, USB_OTG_FS,
15 WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l475vg.rs b/embassy-stm32/src/chip/stm32l475vg.rs
new file mode 100644
index 000000000..774df143c
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l475vg.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG,
13 RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2,
14 TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, USB_OTG_FS,
15 WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l476je.rs b/embassy-stm32/src/chip/stm32l476je.rs
new file mode 100644
index 000000000..ce07466a5
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l476je.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l476jg.rs b/embassy-stm32/src/chip/stm32l476jg.rs
new file mode 100644
index 000000000..ce07466a5
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l476jg.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l476me.rs b/embassy-stm32/src/chip/stm32l476me.rs
new file mode 100644
index 000000000..ce07466a5
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l476me.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l476mg.rs b/embassy-stm32/src/chip/stm32l476mg.rs
new file mode 100644
index 000000000..ce07466a5
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l476mg.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l476qe.rs b/embassy-stm32/src/chip/stm32l476qe.rs
new file mode 100644
index 000000000..ce07466a5
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l476qe.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l476qg.rs b/embassy-stm32/src/chip/stm32l476qg.rs
new file mode 100644
index 000000000..ce07466a5
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l476qg.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l476rc.rs b/embassy-stm32/src/chip/stm32l476rc.rs
new file mode 100644
index 000000000..ce07466a5
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l476rc.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l476re.rs b/embassy-stm32/src/chip/stm32l476re.rs
new file mode 100644
index 000000000..ce07466a5
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l476re.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l476rg.rs b/embassy-stm32/src/chip/stm32l476rg.rs
new file mode 100644
index 000000000..ce07466a5
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l476rg.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l476vc.rs b/embassy-stm32/src/chip/stm32l476vc.rs
new file mode 100644
index 000000000..ce07466a5
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l476vc.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l476ve.rs b/embassy-stm32/src/chip/stm32l476ve.rs
new file mode 100644
index 000000000..ce07466a5
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l476ve.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l476vg.rs b/embassy-stm32/src/chip/stm32l476vg.rs
new file mode 100644
index 000000000..ce07466a5
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l476vg.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l476ze.rs b/embassy-stm32/src/chip/stm32l476ze.rs
new file mode 100644
index 000000000..ce07466a5
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l476ze.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l476zg.rs b/embassy-stm32/src/chip/stm32l476zg.rs
new file mode 100644
index 000000000..ce07466a5
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l476zg.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l485jc.rs b/embassy-stm32/src/chip/stm32l485jc.rs
new file mode 100644
index 000000000..77b2e512c
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l485jc.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG,
13 RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2,
14 TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, USB_OTG_FS,
15 WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l485je.rs b/embassy-stm32/src/chip/stm32l485je.rs
new file mode 100644
index 000000000..77b2e512c
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l485je.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG,
13 RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2,
14 TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, USB_OTG_FS,
15 WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l486jg.rs b/embassy-stm32/src/chip/stm32l486jg.rs
new file mode 100644
index 000000000..e6b55967e
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l486jg.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l486qg.rs b/embassy-stm32/src/chip/stm32l486qg.rs
new file mode 100644
index 000000000..e6b55967e
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l486qg.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l486rg.rs b/embassy-stm32/src/chip/stm32l486rg.rs
new file mode 100644
index 000000000..e6b55967e
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l486rg.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l486vg.rs b/embassy-stm32/src/chip/stm32l486vg.rs
new file mode 100644
index 000000000..e6b55967e
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l486vg.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l486zg.rs b/embassy-stm32/src/chip/stm32l486zg.rs
new file mode 100644
index 000000000..e6b55967e
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l486zg.rs
@@ -0,0 +1,147 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC,
13 RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17,
14 TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3,
15 USB_OTG_FS, WWDG
16);
17pub const GPIO_BASE: usize = 0x48000000;
18pub const GPIO_STRIDE: usize = 0x400;
19impl_gpio_pin!(PA0, 0, 0, EXTI0);
20impl_gpio_pin!(PA1, 0, 1, EXTI1);
21impl_gpio_pin!(PA2, 0, 2, EXTI2);
22impl_gpio_pin!(PA3, 0, 3, EXTI3);
23impl_gpio_pin!(PA4, 0, 4, EXTI4);
24impl_gpio_pin!(PA5, 0, 5, EXTI5);
25impl_gpio_pin!(PA6, 0, 6, EXTI6);
26impl_gpio_pin!(PA7, 0, 7, EXTI7);
27impl_gpio_pin!(PA8, 0, 8, EXTI8);
28impl_gpio_pin!(PA9, 0, 9, EXTI9);
29impl_gpio_pin!(PA10, 0, 10, EXTI10);
30impl_gpio_pin!(PA11, 0, 11, EXTI11);
31impl_gpio_pin!(PA12, 0, 12, EXTI12);
32impl_gpio_pin!(PA13, 0, 13, EXTI13);
33impl_gpio_pin!(PA14, 0, 14, EXTI14);
34impl_gpio_pin!(PA15, 0, 15, EXTI15);
35impl_gpio_pin!(PB0, 1, 0, EXTI0);
36impl_gpio_pin!(PB1, 1, 1, EXTI1);
37impl_gpio_pin!(PB2, 1, 2, EXTI2);
38impl_gpio_pin!(PB3, 1, 3, EXTI3);
39impl_gpio_pin!(PB4, 1, 4, EXTI4);
40impl_gpio_pin!(PB5, 1, 5, EXTI5);
41impl_gpio_pin!(PB6, 1, 6, EXTI6);
42impl_gpio_pin!(PB7, 1, 7, EXTI7);
43impl_gpio_pin!(PB8, 1, 8, EXTI8);
44impl_gpio_pin!(PB9, 1, 9, EXTI9);
45impl_gpio_pin!(PB10, 1, 10, EXTI10);
46impl_gpio_pin!(PB11, 1, 11, EXTI11);
47impl_gpio_pin!(PB12, 1, 12, EXTI12);
48impl_gpio_pin!(PB13, 1, 13, EXTI13);
49impl_gpio_pin!(PB14, 1, 14, EXTI14);
50impl_gpio_pin!(PB15, 1, 15, EXTI15);
51impl_gpio_pin!(PC0, 2, 0, EXTI0);
52impl_gpio_pin!(PC1, 2, 1, EXTI1);
53impl_gpio_pin!(PC2, 2, 2, EXTI2);
54impl_gpio_pin!(PC3, 2, 3, EXTI3);
55impl_gpio_pin!(PC4, 2, 4, EXTI4);
56impl_gpio_pin!(PC5, 2, 5, EXTI5);
57impl_gpio_pin!(PC6, 2, 6, EXTI6);
58impl_gpio_pin!(PC7, 2, 7, EXTI7);
59impl_gpio_pin!(PC8, 2, 8, EXTI8);
60impl_gpio_pin!(PC9, 2, 9, EXTI9);
61impl_gpio_pin!(PC10, 2, 10, EXTI10);
62impl_gpio_pin!(PC11, 2, 11, EXTI11);
63impl_gpio_pin!(PC12, 2, 12, EXTI12);
64impl_gpio_pin!(PC13, 2, 13, EXTI13);
65impl_gpio_pin!(PC14, 2, 14, EXTI14);
66impl_gpio_pin!(PC15, 2, 15, EXTI15);
67impl_gpio_pin!(PD0, 3, 0, EXTI0);
68impl_gpio_pin!(PD1, 3, 1, EXTI1);
69impl_gpio_pin!(PD2, 3, 2, EXTI2);
70impl_gpio_pin!(PD3, 3, 3, EXTI3);
71impl_gpio_pin!(PD4, 3, 4, EXTI4);
72impl_gpio_pin!(PD5, 3, 5, EXTI5);
73impl_gpio_pin!(PD6, 3, 6, EXTI6);
74impl_gpio_pin!(PD7, 3, 7, EXTI7);
75impl_gpio_pin!(PD8, 3, 8, EXTI8);
76impl_gpio_pin!(PD9, 3, 9, EXTI9);
77impl_gpio_pin!(PD10, 3, 10, EXTI10);
78impl_gpio_pin!(PD11, 3, 11, EXTI11);
79impl_gpio_pin!(PD12, 3, 12, EXTI12);
80impl_gpio_pin!(PD13, 3, 13, EXTI13);
81impl_gpio_pin!(PD14, 3, 14, EXTI14);
82impl_gpio_pin!(PD15, 3, 15, EXTI15);
83impl_gpio_pin!(PE0, 4, 0, EXTI0);
84impl_gpio_pin!(PE1, 4, 1, EXTI1);
85impl_gpio_pin!(PE2, 4, 2, EXTI2);
86impl_gpio_pin!(PE3, 4, 3, EXTI3);
87impl_gpio_pin!(PE4, 4, 4, EXTI4);
88impl_gpio_pin!(PE5, 4, 5, EXTI5);
89impl_gpio_pin!(PE6, 4, 6, EXTI6);
90impl_gpio_pin!(PE7, 4, 7, EXTI7);
91impl_gpio_pin!(PE8, 4, 8, EXTI8);
92impl_gpio_pin!(PE9, 4, 9, EXTI9);
93impl_gpio_pin!(PE10, 4, 10, EXTI10);
94impl_gpio_pin!(PE11, 4, 11, EXTI11);
95impl_gpio_pin!(PE12, 4, 12, EXTI12);
96impl_gpio_pin!(PE13, 4, 13, EXTI13);
97impl_gpio_pin!(PE14, 4, 14, EXTI14);
98impl_gpio_pin!(PE15, 4, 15, EXTI15);
99impl_gpio_pin!(PF0, 5, 0, EXTI0);
100impl_gpio_pin!(PF1, 5, 1, EXTI1);
101impl_gpio_pin!(PF2, 5, 2, EXTI2);
102impl_gpio_pin!(PF3, 5, 3, EXTI3);
103impl_gpio_pin!(PF4, 5, 4, EXTI4);
104impl_gpio_pin!(PF5, 5, 5, EXTI5);
105impl_gpio_pin!(PF6, 5, 6, EXTI6);
106impl_gpio_pin!(PF7, 5, 7, EXTI7);
107impl_gpio_pin!(PF8, 5, 8, EXTI8);
108impl_gpio_pin!(PF9, 5, 9, EXTI9);
109impl_gpio_pin!(PF10, 5, 10, EXTI10);
110impl_gpio_pin!(PF11, 5, 11, EXTI11);
111impl_gpio_pin!(PF12, 5, 12, EXTI12);
112impl_gpio_pin!(PF13, 5, 13, EXTI13);
113impl_gpio_pin!(PF14, 5, 14, EXTI14);
114impl_gpio_pin!(PF15, 5, 15, EXTI15);
115impl_gpio_pin!(PG0, 6, 0, EXTI0);
116impl_gpio_pin!(PG1, 6, 1, EXTI1);
117impl_gpio_pin!(PG2, 6, 2, EXTI2);
118impl_gpio_pin!(PG3, 6, 3, EXTI3);
119impl_gpio_pin!(PG4, 6, 4, EXTI4);
120impl_gpio_pin!(PG5, 6, 5, EXTI5);
121impl_gpio_pin!(PG6, 6, 6, EXTI6);
122impl_gpio_pin!(PG7, 6, 7, EXTI7);
123impl_gpio_pin!(PG8, 6, 8, EXTI8);
124impl_gpio_pin!(PG9, 6, 9, EXTI9);
125impl_gpio_pin!(PG10, 6, 10, EXTI10);
126impl_gpio_pin!(PG11, 6, 11, EXTI11);
127impl_gpio_pin!(PG12, 6, 12, EXTI12);
128impl_gpio_pin!(PG13, 6, 13, EXTI13);
129impl_gpio_pin!(PG14, 6, 14, EXTI14);
130impl_gpio_pin!(PG15, 6, 15, EXTI15);
131impl_gpio_pin!(PH0, 7, 0, EXTI0);
132impl_gpio_pin!(PH1, 7, 1, EXTI1);
133impl_gpio_pin!(PH2, 7, 2, EXTI2);
134impl_gpio_pin!(PH3, 7, 3, EXTI3);
135impl_gpio_pin!(PH4, 7, 4, EXTI4);
136impl_gpio_pin!(PH5, 7, 5, EXTI5);
137impl_gpio_pin!(PH6, 7, 6, EXTI6);
138impl_gpio_pin!(PH7, 7, 7, EXTI7);
139impl_gpio_pin!(PH8, 7, 8, EXTI8);
140impl_gpio_pin!(PH9, 7, 9, EXTI9);
141impl_gpio_pin!(PH10, 7, 10, EXTI10);
142impl_gpio_pin!(PH11, 7, 11, EXTI11);
143impl_gpio_pin!(PH12, 7, 12, EXTI12);
144impl_gpio_pin!(PH13, 7, 13, EXTI13);
145impl_gpio_pin!(PH14, 7, 14, EXTI14);
146impl_gpio_pin!(PH15, 7, 15, EXTI15);
147impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l496ae.rs b/embassy-stm32/src/chip/stm32l496ae.rs
new file mode 100644
index 000000000..5200ecd80
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l496ae.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0,
5 PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2,
6 PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4,
7 PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6,
8 PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8,
9 PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9,
10 PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10,
11 PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
12 PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12,
13 PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2,
14 QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l496ag.rs b/embassy-stm32/src/chip/stm32l496ag.rs
new file mode 100644
index 000000000..5200ecd80
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l496ag.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0,
5 PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2,
6 PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4,
7 PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6,
8 PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8,
9 PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9,
10 PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10,
11 PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
12 PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12,
13 PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2,
14 QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l496qe.rs b/embassy-stm32/src/chip/stm32l496qe.rs
new file mode 100644
index 000000000..5200ecd80
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l496qe.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0,
5 PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2,
6 PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4,
7 PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6,
8 PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8,
9 PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9,
10 PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10,
11 PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
12 PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12,
13 PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2,
14 QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l496qg.rs b/embassy-stm32/src/chip/stm32l496qg.rs
new file mode 100644
index 000000000..5200ecd80
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l496qg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0,
5 PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2,
6 PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4,
7 PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6,
8 PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8,
9 PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9,
10 PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10,
11 PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
12 PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12,
13 PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2,
14 QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l496re.rs b/embassy-stm32/src/chip/stm32l496re.rs
new file mode 100644
index 000000000..5200ecd80
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l496re.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0,
5 PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2,
6 PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4,
7 PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6,
8 PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8,
9 PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9,
10 PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10,
11 PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
12 PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12,
13 PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2,
14 QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l496rg.rs b/embassy-stm32/src/chip/stm32l496rg.rs
new file mode 100644
index 000000000..5200ecd80
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l496rg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0,
5 PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2,
6 PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4,
7 PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6,
8 PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8,
9 PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9,
10 PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10,
11 PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
12 PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12,
13 PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2,
14 QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l496ve.rs b/embassy-stm32/src/chip/stm32l496ve.rs
new file mode 100644
index 000000000..5200ecd80
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l496ve.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0,
5 PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2,
6 PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4,
7 PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6,
8 PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8,
9 PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9,
10 PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10,
11 PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
12 PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12,
13 PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2,
14 QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l496vg.rs b/embassy-stm32/src/chip/stm32l496vg.rs
new file mode 100644
index 000000000..5200ecd80
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l496vg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0,
5 PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2,
6 PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4,
7 PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6,
8 PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8,
9 PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9,
10 PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10,
11 PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
12 PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12,
13 PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2,
14 QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l496wg.rs b/embassy-stm32/src/chip/stm32l496wg.rs
new file mode 100644
index 000000000..5200ecd80
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l496wg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0,
5 PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2,
6 PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4,
7 PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6,
8 PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8,
9 PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9,
10 PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10,
11 PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
12 PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12,
13 PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2,
14 QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l496ze.rs b/embassy-stm32/src/chip/stm32l496ze.rs
new file mode 100644
index 000000000..5200ecd80
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l496ze.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0,
5 PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2,
6 PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4,
7 PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6,
8 PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8,
9 PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9,
10 PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10,
11 PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
12 PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12,
13 PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2,
14 QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l496zg.rs b/embassy-stm32/src/chip/stm32l496zg.rs
new file mode 100644
index 000000000..5200ecd80
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l496zg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0,
5 PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2,
6 PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4,
7 PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6,
8 PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8,
9 PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9,
10 PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10,
11 PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
12 PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12,
13 PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2,
14 QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4a6ag.rs b/embassy-stm32/src/chip/stm32l4a6ag.rs
new file mode 100644
index 000000000..d758caee1
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4a6ag.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D,
5 PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1,
6 PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3,
7 PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5,
8 PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7,
9 PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9,
10 PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10,
11 PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
12 PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12,
13 PI13, PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1,
14 OPAMP2, QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4a6qg.rs b/embassy-stm32/src/chip/stm32l4a6qg.rs
new file mode 100644
index 000000000..d758caee1
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4a6qg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D,
5 PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1,
6 PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3,
7 PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5,
8 PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7,
9 PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9,
10 PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10,
11 PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
12 PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12,
13 PI13, PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1,
14 OPAMP2, QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4a6rg.rs b/embassy-stm32/src/chip/stm32l4a6rg.rs
new file mode 100644
index 000000000..d758caee1
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4a6rg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D,
5 PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1,
6 PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3,
7 PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5,
8 PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7,
9 PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9,
10 PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10,
11 PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
12 PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12,
13 PI13, PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1,
14 OPAMP2, QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4a6vg.rs b/embassy-stm32/src/chip/stm32l4a6vg.rs
new file mode 100644
index 000000000..d758caee1
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4a6vg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D,
5 PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1,
6 PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3,
7 PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5,
8 PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7,
9 PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9,
10 PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10,
11 PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
12 PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12,
13 PI13, PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1,
14 OPAMP2, QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4a6zg.rs b/embassy-stm32/src/chip/stm32l4a6zg.rs
new file mode 100644
index 000000000..d758caee1
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4a6zg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D,
5 PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1,
6 PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3,
7 PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5,
8 PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7,
9 PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9,
10 PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10,
11 PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11,
12 PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12,
13 PI13, PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1,
14 OPAMP2, QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4p5ae.rs b/embassy-stm32/src/chip/stm32l4p5ae.rs
new file mode 100644
index 000000000..6d2a25917
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4p5ae.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3,
15 SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5,
16 USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4p5ag.rs b/embassy-stm32/src/chip/stm32l4p5ag.rs
new file mode 100644
index 000000000..6d2a25917
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4p5ag.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3,
15 SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5,
16 USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4p5ce.rs b/embassy-stm32/src/chip/stm32l4p5ce.rs
new file mode 100644
index 000000000..f0ddb6b8d
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4p5ce.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DMA2D, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC2, SPI1, SPI2, SPI3, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4p5cg.rs b/embassy-stm32/src/chip/stm32l4p5cg.rs
new file mode 100644
index 000000000..f0ddb6b8d
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4p5cg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DMA2D, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC2, SPI1, SPI2, SPI3, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4p5qe.rs b/embassy-stm32/src/chip/stm32l4p5qe.rs
new file mode 100644
index 000000000..6d2a25917
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4p5qe.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3,
15 SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5,
16 USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4p5qg.rs b/embassy-stm32/src/chip/stm32l4p5qg.rs
new file mode 100644
index 000000000..6d2a25917
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4p5qg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3,
15 SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5,
16 USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4p5re.rs b/embassy-stm32/src/chip/stm32l4p5re.rs
new file mode 100644
index 000000000..2c9823ee8
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4p5re.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3,
15 SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4,
16 USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4p5rg.rs b/embassy-stm32/src/chip/stm32l4p5rg.rs
new file mode 100644
index 000000000..2c9823ee8
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4p5rg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3,
15 SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4,
16 USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4p5ve.rs b/embassy-stm32/src/chip/stm32l4p5ve.rs
new file mode 100644
index 000000000..6d2a25917
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4p5ve.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3,
15 SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5,
16 USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4p5vg.rs b/embassy-stm32/src/chip/stm32l4p5vg.rs
new file mode 100644
index 000000000..6d2a25917
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4p5vg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3,
15 SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5,
16 USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4p5ze.rs b/embassy-stm32/src/chip/stm32l4p5ze.rs
new file mode 100644
index 000000000..6d2a25917
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4p5ze.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3,
15 SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5,
16 USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4p5zg.rs b/embassy-stm32/src/chip/stm32l4p5zg.rs
new file mode 100644
index 000000000..6d2a25917
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4p5zg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3,
15 SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5,
16 USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4q5ag.rs b/embassy-stm32/src/chip/stm32l4q5ag.rs
new file mode 100644
index 000000000..295c68f1c
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4q5ag.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1,
14 OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, PKA, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1,
15 SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC,
16 UART4, UART5, USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4q5cg.rs b/embassy-stm32/src/chip/stm32l4q5cg.rs
new file mode 100644
index 000000000..1ae248437
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4q5cg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, CAN1, COMP1, COMP2, DAC1, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, PKA, RCC, RNG, RTC, SAI1, SAI2, SDMMC2, SPI1, SPI2, SPI3, SYSCFG,
15 TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4q5qg.rs b/embassy-stm32/src/chip/stm32l4q5qg.rs
new file mode 100644
index 000000000..295c68f1c
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4q5qg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1,
14 OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, PKA, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1,
15 SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC,
16 UART4, UART5, USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4q5rg.rs b/embassy-stm32/src/chip/stm32l4q5rg.rs
new file mode 100644
index 000000000..716f8233b
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4q5rg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1,
14 OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, PKA, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1,
15 SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC,
16 UART4, USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4q5vg.rs b/embassy-stm32/src/chip/stm32l4q5vg.rs
new file mode 100644
index 000000000..295c68f1c
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4q5vg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1,
14 OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, PKA, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1,
15 SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC,
16 UART4, UART5, USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4q5zg.rs b/embassy-stm32/src/chip/stm32l4q5zg.rs
new file mode 100644
index 000000000..295c68f1c
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4q5zg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1,
14 OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, PKA, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1,
15 SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC,
16 UART4, UART5, USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4r5ag.rs b/embassy-stm32/src/chip/stm32l4r5ag.rs
new file mode 100644
index 000000000..d8b9445b9
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4r5ag.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, OCTOSPIM,
14 OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4r5ai.rs b/embassy-stm32/src/chip/stm32l4r5ai.rs
new file mode 100644
index 000000000..d8b9445b9
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4r5ai.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, OCTOSPIM,
14 OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4r5qg.rs b/embassy-stm32/src/chip/stm32l4r5qg.rs
new file mode 100644
index 000000000..d8b9445b9
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4r5qg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, OCTOSPIM,
14 OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4r5qi.rs b/embassy-stm32/src/chip/stm32l4r5qi.rs
new file mode 100644
index 000000000..d8b9445b9
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4r5qi.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, OCTOSPIM,
14 OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4r5vg.rs b/embassy-stm32/src/chip/stm32l4r5vg.rs
new file mode 100644
index 000000000..d8b9445b9
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4r5vg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, OCTOSPIM,
14 OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4r5vi.rs b/embassy-stm32/src/chip/stm32l4r5vi.rs
new file mode 100644
index 000000000..d8b9445b9
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4r5vi.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, OCTOSPIM,
14 OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4r5zg.rs b/embassy-stm32/src/chip/stm32l4r5zg.rs
new file mode 100644
index 000000000..d8b9445b9
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4r5zg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, OCTOSPIM,
14 OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4r5zi.rs b/embassy-stm32/src/chip/stm32l4r5zi.rs
new file mode 100644
index 000000000..d8b9445b9
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4r5zi.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, PA4,
5 PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6,
6 PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8,
7 PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, OCTOSPIM,
14 OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15,
15 TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2,
16 USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4r7ai.rs b/embassy-stm32/src/chip/stm32l4r7ai.rs
new file mode 100644
index 000000000..d0f3be660
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4r7ai.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4r7vi.rs b/embassy-stm32/src/chip/stm32l4r7vi.rs
new file mode 100644
index 000000000..d0f3be660
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4r7vi.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4r7zi.rs b/embassy-stm32/src/chip/stm32l4r7zi.rs
new file mode 100644
index 000000000..d0f3be660
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4r7zi.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4r9ag.rs b/embassy-stm32/src/chip/stm32l4r9ag.rs
new file mode 100644
index 000000000..d0f3be660
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4r9ag.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4r9ai.rs b/embassy-stm32/src/chip/stm32l4r9ai.rs
new file mode 100644
index 000000000..d0f3be660
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4r9ai.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4r9vg.rs b/embassy-stm32/src/chip/stm32l4r9vg.rs
new file mode 100644
index 000000000..d0f3be660
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4r9vg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4r9vi.rs b/embassy-stm32/src/chip/stm32l4r9vi.rs
new file mode 100644
index 000000000..d0f3be660
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4r9vi.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4r9zg.rs b/embassy-stm32/src/chip/stm32l4r9zg.rs
new file mode 100644
index 000000000..d0f3be660
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4r9zg.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4r9zi.rs b/embassy-stm32/src/chip/stm32l4r9zi.rs
new file mode 100644
index 000000000..d0f3be660
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4r9zi.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, PA2,
5 PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4,
6 PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6,
7 PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8,
8 PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4s5ai.rs b/embassy-stm32/src/chip/stm32l4s5ai.rs
new file mode 100644
index 000000000..88d4b7bc6
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4s5ai.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4s5qi.rs b/embassy-stm32/src/chip/stm32l4s5qi.rs
new file mode 100644
index 000000000..88d4b7bc6
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4s5qi.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4s5vi.rs b/embassy-stm32/src/chip/stm32l4s5vi.rs
new file mode 100644
index 000000000..88d4b7bc6
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4s5vi.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4s5zi.rs b/embassy-stm32/src/chip/stm32l4s5zi.rs
new file mode 100644
index 000000000..88d4b7bc6
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4s5zi.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3,
5 PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5,
6 PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7,
7 PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9,
8 PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10,
9 PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11,
10 PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12,
11 PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13,
12 PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14,
13 PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2,
14 OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1,
15 TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1,
16 USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4s7ai.rs b/embassy-stm32/src/chip/stm32l4s7ai.rs
new file mode 100644
index 000000000..bae375145
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4s7ai.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1,
14 OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3,
15 SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5,
16 USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4s7vi.rs b/embassy-stm32/src/chip/stm32l4s7vi.rs
new file mode 100644
index 000000000..bae375145
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4s7vi.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1,
14 OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3,
15 SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5,
16 USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4s7zi.rs b/embassy-stm32/src/chip/stm32l4s7zi.rs
new file mode 100644
index 000000000..bae375145
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4s7zi.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1,
14 OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3,
15 SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5,
16 USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4s9ai.rs b/embassy-stm32/src/chip/stm32l4s9ai.rs
new file mode 100644
index 000000000..bae375145
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4s9ai.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1,
14 OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3,
15 SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5,
16 USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4s9vi.rs b/embassy-stm32/src/chip/stm32l4s9vi.rs
new file mode 100644
index 000000000..bae375145
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4s9vi.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1,
14 OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3,
15 SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5,
16 USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/chip/stm32l4s9zi.rs b/embassy-stm32/src/chip/stm32l4s9zi.rs
new file mode 100644
index 000000000..bae375145
--- /dev/null
+++ b/embassy-stm32/src/chip/stm32l4s9zi.rs
@@ -0,0 +1,164 @@
1use embassy_extras::peripherals;
2peripherals!(
3 EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12,
4 EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1,
5 PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3,
6 PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5,
7 PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7,
8 PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9,
9 PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10,
10 PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11,
11 PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12,
12 PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13,
13 PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1,
14 OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3,
15 SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5,
16 USART1, USART2, USART3, USB_OTG_FS, WWDG
17);
18pub const GPIO_BASE: usize = 0x48000000;
19pub const GPIO_STRIDE: usize = 0x400;
20impl_gpio_pin!(PA0, 0, 0, EXTI0);
21impl_gpio_pin!(PA1, 0, 1, EXTI1);
22impl_gpio_pin!(PA2, 0, 2, EXTI2);
23impl_gpio_pin!(PA3, 0, 3, EXTI3);
24impl_gpio_pin!(PA4, 0, 4, EXTI4);
25impl_gpio_pin!(PA5, 0, 5, EXTI5);
26impl_gpio_pin!(PA6, 0, 6, EXTI6);
27impl_gpio_pin!(PA7, 0, 7, EXTI7);
28impl_gpio_pin!(PA8, 0, 8, EXTI8);
29impl_gpio_pin!(PA9, 0, 9, EXTI9);
30impl_gpio_pin!(PA10, 0, 10, EXTI10);
31impl_gpio_pin!(PA11, 0, 11, EXTI11);
32impl_gpio_pin!(PA12, 0, 12, EXTI12);
33impl_gpio_pin!(PA13, 0, 13, EXTI13);
34impl_gpio_pin!(PA14, 0, 14, EXTI14);
35impl_gpio_pin!(PA15, 0, 15, EXTI15);
36impl_gpio_pin!(PB0, 1, 0, EXTI0);
37impl_gpio_pin!(PB1, 1, 1, EXTI1);
38impl_gpio_pin!(PB2, 1, 2, EXTI2);
39impl_gpio_pin!(PB3, 1, 3, EXTI3);
40impl_gpio_pin!(PB4, 1, 4, EXTI4);
41impl_gpio_pin!(PB5, 1, 5, EXTI5);
42impl_gpio_pin!(PB6, 1, 6, EXTI6);
43impl_gpio_pin!(PB7, 1, 7, EXTI7);
44impl_gpio_pin!(PB8, 1, 8, EXTI8);
45impl_gpio_pin!(PB9, 1, 9, EXTI9);
46impl_gpio_pin!(PB10, 1, 10, EXTI10);
47impl_gpio_pin!(PB11, 1, 11, EXTI11);
48impl_gpio_pin!(PB12, 1, 12, EXTI12);
49impl_gpio_pin!(PB13, 1, 13, EXTI13);
50impl_gpio_pin!(PB14, 1, 14, EXTI14);
51impl_gpio_pin!(PB15, 1, 15, EXTI15);
52impl_gpio_pin!(PC0, 2, 0, EXTI0);
53impl_gpio_pin!(PC1, 2, 1, EXTI1);
54impl_gpio_pin!(PC2, 2, 2, EXTI2);
55impl_gpio_pin!(PC3, 2, 3, EXTI3);
56impl_gpio_pin!(PC4, 2, 4, EXTI4);
57impl_gpio_pin!(PC5, 2, 5, EXTI5);
58impl_gpio_pin!(PC6, 2, 6, EXTI6);
59impl_gpio_pin!(PC7, 2, 7, EXTI7);
60impl_gpio_pin!(PC8, 2, 8, EXTI8);
61impl_gpio_pin!(PC9, 2, 9, EXTI9);
62impl_gpio_pin!(PC10, 2, 10, EXTI10);
63impl_gpio_pin!(PC11, 2, 11, EXTI11);
64impl_gpio_pin!(PC12, 2, 12, EXTI12);
65impl_gpio_pin!(PC13, 2, 13, EXTI13);
66impl_gpio_pin!(PC14, 2, 14, EXTI14);
67impl_gpio_pin!(PC15, 2, 15, EXTI15);
68impl_gpio_pin!(PD0, 3, 0, EXTI0);
69impl_gpio_pin!(PD1, 3, 1, EXTI1);
70impl_gpio_pin!(PD2, 3, 2, EXTI2);
71impl_gpio_pin!(PD3, 3, 3, EXTI3);
72impl_gpio_pin!(PD4, 3, 4, EXTI4);
73impl_gpio_pin!(PD5, 3, 5, EXTI5);
74impl_gpio_pin!(PD6, 3, 6, EXTI6);
75impl_gpio_pin!(PD7, 3, 7, EXTI7);
76impl_gpio_pin!(PD8, 3, 8, EXTI8);
77impl_gpio_pin!(PD9, 3, 9, EXTI9);
78impl_gpio_pin!(PD10, 3, 10, EXTI10);
79impl_gpio_pin!(PD11, 3, 11, EXTI11);
80impl_gpio_pin!(PD12, 3, 12, EXTI12);
81impl_gpio_pin!(PD13, 3, 13, EXTI13);
82impl_gpio_pin!(PD14, 3, 14, EXTI14);
83impl_gpio_pin!(PD15, 3, 15, EXTI15);
84impl_gpio_pin!(PE0, 4, 0, EXTI0);
85impl_gpio_pin!(PE1, 4, 1, EXTI1);
86impl_gpio_pin!(PE2, 4, 2, EXTI2);
87impl_gpio_pin!(PE3, 4, 3, EXTI3);
88impl_gpio_pin!(PE4, 4, 4, EXTI4);
89impl_gpio_pin!(PE5, 4, 5, EXTI5);
90impl_gpio_pin!(PE6, 4, 6, EXTI6);
91impl_gpio_pin!(PE7, 4, 7, EXTI7);
92impl_gpio_pin!(PE8, 4, 8, EXTI8);
93impl_gpio_pin!(PE9, 4, 9, EXTI9);
94impl_gpio_pin!(PE10, 4, 10, EXTI10);
95impl_gpio_pin!(PE11, 4, 11, EXTI11);
96impl_gpio_pin!(PE12, 4, 12, EXTI12);
97impl_gpio_pin!(PE13, 4, 13, EXTI13);
98impl_gpio_pin!(PE14, 4, 14, EXTI14);
99impl_gpio_pin!(PE15, 4, 15, EXTI15);
100impl_gpio_pin!(PF0, 5, 0, EXTI0);
101impl_gpio_pin!(PF1, 5, 1, EXTI1);
102impl_gpio_pin!(PF2, 5, 2, EXTI2);
103impl_gpio_pin!(PF3, 5, 3, EXTI3);
104impl_gpio_pin!(PF4, 5, 4, EXTI4);
105impl_gpio_pin!(PF5, 5, 5, EXTI5);
106impl_gpio_pin!(PF6, 5, 6, EXTI6);
107impl_gpio_pin!(PF7, 5, 7, EXTI7);
108impl_gpio_pin!(PF8, 5, 8, EXTI8);
109impl_gpio_pin!(PF9, 5, 9, EXTI9);
110impl_gpio_pin!(PF10, 5, 10, EXTI10);
111impl_gpio_pin!(PF11, 5, 11, EXTI11);
112impl_gpio_pin!(PF12, 5, 12, EXTI12);
113impl_gpio_pin!(PF13, 5, 13, EXTI13);
114impl_gpio_pin!(PF14, 5, 14, EXTI14);
115impl_gpio_pin!(PF15, 5, 15, EXTI15);
116impl_gpio_pin!(PG0, 6, 0, EXTI0);
117impl_gpio_pin!(PG1, 6, 1, EXTI1);
118impl_gpio_pin!(PG2, 6, 2, EXTI2);
119impl_gpio_pin!(PG3, 6, 3, EXTI3);
120impl_gpio_pin!(PG4, 6, 4, EXTI4);
121impl_gpio_pin!(PG5, 6, 5, EXTI5);
122impl_gpio_pin!(PG6, 6, 6, EXTI6);
123impl_gpio_pin!(PG7, 6, 7, EXTI7);
124impl_gpio_pin!(PG8, 6, 8, EXTI8);
125impl_gpio_pin!(PG9, 6, 9, EXTI9);
126impl_gpio_pin!(PG10, 6, 10, EXTI10);
127impl_gpio_pin!(PG11, 6, 11, EXTI11);
128impl_gpio_pin!(PG12, 6, 12, EXTI12);
129impl_gpio_pin!(PG13, 6, 13, EXTI13);
130impl_gpio_pin!(PG14, 6, 14, EXTI14);
131impl_gpio_pin!(PG15, 6, 15, EXTI15);
132impl_gpio_pin!(PH0, 7, 0, EXTI0);
133impl_gpio_pin!(PH1, 7, 1, EXTI1);
134impl_gpio_pin!(PH2, 7, 2, EXTI2);
135impl_gpio_pin!(PH3, 7, 3, EXTI3);
136impl_gpio_pin!(PH4, 7, 4, EXTI4);
137impl_gpio_pin!(PH5, 7, 5, EXTI5);
138impl_gpio_pin!(PH6, 7, 6, EXTI6);
139impl_gpio_pin!(PH7, 7, 7, EXTI7);
140impl_gpio_pin!(PH8, 7, 8, EXTI8);
141impl_gpio_pin!(PH9, 7, 9, EXTI9);
142impl_gpio_pin!(PH10, 7, 10, EXTI10);
143impl_gpio_pin!(PH11, 7, 11, EXTI11);
144impl_gpio_pin!(PH12, 7, 12, EXTI12);
145impl_gpio_pin!(PH13, 7, 13, EXTI13);
146impl_gpio_pin!(PH14, 7, 14, EXTI14);
147impl_gpio_pin!(PH15, 7, 15, EXTI15);
148impl_gpio_pin!(PI0, 8, 0, EXTI0);
149impl_gpio_pin!(PI1, 8, 1, EXTI1);
150impl_gpio_pin!(PI2, 8, 2, EXTI2);
151impl_gpio_pin!(PI3, 8, 3, EXTI3);
152impl_gpio_pin!(PI4, 8, 4, EXTI4);
153impl_gpio_pin!(PI5, 8, 5, EXTI5);
154impl_gpio_pin!(PI6, 8, 6, EXTI6);
155impl_gpio_pin!(PI7, 8, 7, EXTI7);
156impl_gpio_pin!(PI8, 8, 8, EXTI8);
157impl_gpio_pin!(PI9, 8, 9, EXTI9);
158impl_gpio_pin!(PI10, 8, 10, EXTI10);
159impl_gpio_pin!(PI11, 8, 11, EXTI11);
160impl_gpio_pin!(PI12, 8, 12, EXTI12);
161impl_gpio_pin!(PI13, 8, 13, EXTI13);
162impl_gpio_pin!(PI14, 8, 14, EXTI14);
163impl_gpio_pin!(PI15, 8, 15, EXTI15);
164impl_rng!(0x50060800);
diff --git a/embassy-stm32/src/lib.rs b/embassy-stm32/src/lib.rs
index 909d3466f..6d34a616d 100644
--- a/embassy-stm32/src/lib.rs
+++ b/embassy-stm32/src/lib.rs
@@ -20,6 +20,9 @@ pub mod gpio;
20#[macro_use] 20#[macro_use]
21pub mod usart; 21pub mod usart;
22 22
23#[macro_use]
24pub mod rng;
25
23// This must go LAST so that it sees the `impl_foo!` macros 26// This must go LAST so that it sees the `impl_foo!` macros
24mod chip; 27mod chip;
25pub use chip::{peripherals, Peripherals}; 28pub use chip::{peripherals, Peripherals};
diff --git a/embassy-stm32/src/rng.rs b/embassy-stm32/src/rng.rs
new file mode 100644
index 000000000..a618bd093
--- /dev/null
+++ b/embassy-stm32/src/rng.rs
@@ -0,0 +1,54 @@
1use crate::pac::rng_v1::{regs, Rng};
2use crate::peripherals;
3use embassy::util::Unborrow;
4use embassy_extras::unborrow;
5
6pub struct Random<T: Instance> {
7 inner: T,
8}
9
10impl<T: Instance> Random<T> {
11 pub fn new(inner: impl Unborrow<Target=T>) -> Self {
12 unborrow!(inner);
13 Self {
14 inner,
15 }
16 }
17}
18
19use embassy::traits::rng::Rng as RngTrait;
20use core::future::Future;
21use core::marker::PhantomData;
22
23impl<T:Instance> RngTrait for Random<T> {
24 type Error = ();
25 type RngFuture<'a> where Self: 'a = impl Future<Output=Result<(), Self::Error>>;
26
27 fn fill<'a>(&'a mut self, dest: &'a mut [u8]) -> Self::RngFuture<'a> {
28 async move {
29 Ok(())
30 }
31 }
32}
33
34pub(crate) mod sealed {
35 use super::*;
36
37 pub trait Instance {
38 fn regs(&self) -> Rng;
39 }
40}
41
42pub trait Instance: sealed::Instance {}
43
44macro_rules! impl_rng {
45 ($addr:expr) => {
46 impl crate::rng::sealed::Instance for peripherals::RNG {
47 fn regs(&self) -> crate::pac::rng_v1::Rng {
48 crate::pac::rng_v1::Rng($addr as _)
49 }
50 }
51
52 impl crate::rng::Instance for peripherals::RNG {}
53 }
54} \ No newline at end of file
diff --git a/embassy-stm32/stm32-data b/embassy-stm32/stm32-data
Subproject 581f642c79c3c1a87f07ab88bb5bdececcb1240 Subproject fa22ba0f886b548e6041db5e198f7ff84758192