aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThales Fragoso <[email protected]>2021-05-22 22:27:49 -0300
committerThales Fragoso <[email protected]>2021-05-22 22:27:49 -0300
commit7c06518c52fd5fd793650abd7e2f1a82baf537b8 (patch)
tree714d87134fa22f4987f05db30d18f853cf0d4293
parent706992aef9851cdf6ebd701f9ee640c652e65132 (diff)
Update generated files
-rw-r--r--embassy-stm32/src/pac/regs.rs36528
-rw-r--r--embassy-stm32/src/pac/stm32f401cb.rs16
-rw-r--r--embassy-stm32/src/pac/stm32f401cc.rs16
-rw-r--r--embassy-stm32/src/pac/stm32f401cd.rs16
-rw-r--r--embassy-stm32/src/pac/stm32f401ce.rs16
-rw-r--r--embassy-stm32/src/pac/stm32f401rb.rs16
-rw-r--r--embassy-stm32/src/pac/stm32f401rc.rs16
-rw-r--r--embassy-stm32/src/pac/stm32f401rd.rs16
-rw-r--r--embassy-stm32/src/pac/stm32f401re.rs16
-rw-r--r--embassy-stm32/src/pac/stm32f401vb.rs16
-rw-r--r--embassy-stm32/src/pac/stm32f401vc.rs16
-rw-r--r--embassy-stm32/src/pac/stm32f401vd.rs16
-rw-r--r--embassy-stm32/src/pac/stm32f401ve.rs16
-rw-r--r--embassy-stm32/src/pac/stm32f405oe.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f405og.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f405rg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f405vg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f405zg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f407ie.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f407ig.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f407ve.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f407vg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f407ze.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f407zg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f410c8.rs10
-rw-r--r--embassy-stm32/src/pac/stm32f410cb.rs10
-rw-r--r--embassy-stm32/src/pac/stm32f410r8.rs10
-rw-r--r--embassy-stm32/src/pac/stm32f410rb.rs10
-rw-r--r--embassy-stm32/src/pac/stm32f410t8.rs10
-rw-r--r--embassy-stm32/src/pac/stm32f410tb.rs10
-rw-r--r--embassy-stm32/src/pac/stm32f411cc.rs16
-rw-r--r--embassy-stm32/src/pac/stm32f411ce.rs16
-rw-r--r--embassy-stm32/src/pac/stm32f411rc.rs16
-rw-r--r--embassy-stm32/src/pac/stm32f411re.rs16
-rw-r--r--embassy-stm32/src/pac/stm32f411vc.rs16
-rw-r--r--embassy-stm32/src/pac/stm32f411ve.rs16
-rw-r--r--embassy-stm32/src/pac/stm32f412ce.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f412cg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f412re.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f412rg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f412ve.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f412vg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f412ze.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f412zg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f413cg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f413ch.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f413mg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f413mh.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f413rg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f413rh.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f413vg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f413vh.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f413zg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f413zh.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f415og.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f415rg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f415vg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f415zg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f417ie.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f417ig.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f417ve.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f417vg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f417ze.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f417zg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f423ch.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f423mh.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f423rh.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f423vh.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f423zh.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f427ag.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f427ai.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f427ig.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f427ii.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f427vg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f427vi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f427zg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f427zi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f429ag.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f429ai.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f429be.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f429bg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f429bi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f429ie.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f429ig.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f429ii.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f429ne.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f429ng.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f429ni.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f429ve.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f429vg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f429vi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f429ze.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f429zg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f429zi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f437ai.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f437ig.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f437ii.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f437vg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f437vi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f437zg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f437zi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f439ai.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f439bg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f439bi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f439ig.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f439ii.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f439ng.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f439ni.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f439vg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f439vi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f439zg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f439zi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f446mc.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f446me.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f446rc.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f446re.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f446vc.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f446ve.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f446zc.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f446ze.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f469ae.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f469ag.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f469ai.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f469be.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f469bg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f469bi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f469ie.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f469ig.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f469ii.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f469ne.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f469ng.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f469ni.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f469ve.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f469vg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f469vi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f469ze.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f469zg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f469zi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f479ag.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f479ai.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f479bg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f479bi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f479ig.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f479ii.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f479ng.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f479ni.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f479vg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f479vi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f479zg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32f479zi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h723ve.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h723vg.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h723ze.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h723zg.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h725ae.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h725ag.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h725ie.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h725ig.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h725re.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h725rg.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h725ve.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h725vg.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h725ze.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h725zg.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h730ab.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h730ib.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h730vb.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h730zb.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h733vg.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h733zg.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h735ag.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h735ig.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h735rg.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h735vg.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h735zg.rs32
-rw-r--r--embassy-stm32/src/pac/stm32h742ag.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h742ai.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h742bg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h742bi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h742ig.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h742ii.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h742vg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h742vi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h742xg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h742xi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h742zg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h742zi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h743ag.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h743ai.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h743bg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h743bi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h743ig.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h743ii.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h743vg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h743vi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h743xg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h743xi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h743zg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h743zi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h745bg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h745bi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h745ig.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h745ii.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h745xg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h745xi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h745zg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h745zi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h747ag.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h747ai.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h747bg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h747bi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h747ig.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h747ii.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h747xg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h747xi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h747zi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h750ib.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h750vb.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h750xb.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h750zb.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h753ai.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h753bi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h753ii.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h753vi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h753xi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h753zi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h755bi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h755ii.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h755xi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h755zi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h757ai.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h757bi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h757ii.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h757xi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h757zi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7a3ag.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7a3ai.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7a3ig.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7a3ii.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7a3lg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7a3li.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7a3ng.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7a3ni.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7a3qi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7a3rg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7a3ri.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7a3vg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7a3vi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7a3zg.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7a3zi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7b0ab.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7b0ib.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7b0rb.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7b0vb.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7b0zb.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7b3ai.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7b3ii.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7b3li.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7b3ni.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7b3qi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7b3ri.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7b3vi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32h7b3zi.rs28
-rw-r--r--embassy-stm32/src/pac/stm32l010c6.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l010f4.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l010k4.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l010k8.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l010r8.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l010rb.rs6
-rw-r--r--embassy-stm32/src/pac/stm32l011d3.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l011d4.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l011e3.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l011e4.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l011f3.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l011f4.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l011g3.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l011g4.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l011k3.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l011k4.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l021d4.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l021f4.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l021g4.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l021k4.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l031c4.rs6
-rw-r--r--embassy-stm32/src/pac/stm32l031c6.rs6
-rw-r--r--embassy-stm32/src/pac/stm32l031e4.rs6
-rw-r--r--embassy-stm32/src/pac/stm32l031e6.rs6
-rw-r--r--embassy-stm32/src/pac/stm32l031f4.rs6
-rw-r--r--embassy-stm32/src/pac/stm32l031f6.rs6
-rw-r--r--embassy-stm32/src/pac/stm32l031g4.rs6
-rw-r--r--embassy-stm32/src/pac/stm32l031g6.rs6
-rw-r--r--embassy-stm32/src/pac/stm32l031k4.rs6
-rw-r--r--embassy-stm32/src/pac/stm32l031k6.rs6
-rw-r--r--embassy-stm32/src/pac/stm32l041c4.rs6
-rw-r--r--embassy-stm32/src/pac/stm32l041c6.rs6
-rw-r--r--embassy-stm32/src/pac/stm32l041e6.rs6
-rw-r--r--embassy-stm32/src/pac/stm32l041f6.rs6
-rw-r--r--embassy-stm32/src/pac/stm32l041g6.rs6
-rw-r--r--embassy-stm32/src/pac/stm32l041k6.rs6
-rw-r--r--embassy-stm32/src/pac/stm32l051c6.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l051c8.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l051k6.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l051k8.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l051r6.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l051r8.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l051t6.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l051t8.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l052c6.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l052c8.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l052k6.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l052k8.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l052r6.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l052r8.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l052t6.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l052t8.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l053c6.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l053c8.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l053r6.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l053r8.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l062c8.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l062k8.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l063c8.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l063r8.rs8
-rw-r--r--embassy-stm32/src/pac/stm32l071c8.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l071cb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l071cz.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l071k8.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l071kb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l071kz.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l071rb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l071rz.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l071v8.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l071vb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l071vz.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l072cb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l072cz.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l072kb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l072kz.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l072rb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l072rz.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l072v8.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l072vb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l072vz.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l073cb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l073cz.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l073rb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l073rz.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l073v8.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l073vb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l073vz.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l081cb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l081cz.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l081kz.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l082cz.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l082kb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l082kz.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l083cb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l083cz.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l083rb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l083rz.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l083v8.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l083vb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l083vz.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l412c8.rs10
-rw-r--r--embassy-stm32/src/pac/stm32l412cb.rs10
-rw-r--r--embassy-stm32/src/pac/stm32l412k8.rs10
-rw-r--r--embassy-stm32/src/pac/stm32l412kb.rs10
-rw-r--r--embassy-stm32/src/pac/stm32l412r8.rs10
-rw-r--r--embassy-stm32/src/pac/stm32l412rb.rs10
-rw-r--r--embassy-stm32/src/pac/stm32l412t8.rs10
-rw-r--r--embassy-stm32/src/pac/stm32l412tb.rs10
-rw-r--r--embassy-stm32/src/pac/stm32l422cb.rs10
-rw-r--r--embassy-stm32/src/pac/stm32l422kb.rs10
-rw-r--r--embassy-stm32/src/pac/stm32l422rb.rs10
-rw-r--r--embassy-stm32/src/pac/stm32l422tb.rs10
-rw-r--r--embassy-stm32/src/pac/stm32l431cb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l431cc.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l431kb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l431kc.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l431rb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l431rc.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l431vc.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l432kb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l432kc.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l433cb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l433cc.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l433rb.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l433rc.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l433vc.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l442kc.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l443cc.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l443rc.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l443vc.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l451cc.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l451ce.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l451rc.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l451re.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l451vc.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l451ve.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l452cc.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l452ce.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l452rc.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l452re.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l452vc.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l452ve.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l462ce.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l462re.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l462ve.rs12
-rw-r--r--embassy-stm32/src/pac/stm32l471qe.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l471qg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l471re.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l471rg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l471ve.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l471vg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l471ze.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l471zg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l475rc.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l475re.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l475rg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l475vc.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l475ve.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l475vg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l476je.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l476jg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l476me.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l476mg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l476qe.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l476qg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l476rc.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l476re.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l476rg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l476vc.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l476ve.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l476vg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l476ze.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l476zg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l485jc.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l485je.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l486jg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l486qg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l486rg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l486vg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l486zg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l496ae.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l496ag.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l496qe.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l496qg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l496re.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l496rg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l496ve.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l496vg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l496wg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l496ze.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l496zg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4a6ag.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4a6qg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4a6rg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4a6vg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4a6zg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4p5ae.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4p5ag.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4p5ce.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4p5cg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4p5qe.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4p5qg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4p5re.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4p5rg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4p5ve.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4p5vg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4p5ze.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4p5zg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4q5ag.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4q5cg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4q5qg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4q5rg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4q5vg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4q5zg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4r5ag.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4r5ai.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4r5qg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4r5qi.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4r5vg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4r5vi.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4r5zg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4r5zi.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4r7ai.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4r7vi.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4r7zi.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4r9ag.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4r9ai.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4r9vg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4r9vi.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4r9zg.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4r9zi.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4s5ai.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4s5qi.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4s5vi.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4s5zi.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4s7ai.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4s7vi.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4s7zi.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4s9ai.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4s9vi.rs22
-rw-r--r--embassy-stm32/src/pac/stm32l4s9zi.rs22
504 files changed, 23559 insertions, 23559 deletions
diff --git a/embassy-stm32/src/pac/regs.rs b/embassy-stm32/src/pac/regs.rs
index 7b24a5d0a..db2ba6f8a 100644
--- a/embassy-stm32/src/pac/regs.rs
+++ b/embassy-stm32/src/pac/regs.rs
@@ -1,2976 +1,2124 @@
1#![no_std] 1#![no_std]
2#![doc = "Peripheral access API (generated using svd2rust v0.17.0 (22741fa 2021-04-20))"] 2#![doc = "Peripheral access API (generated using svd2rust v0.17.0 (22741fa 2021-04-20))"]
3pub mod gpio_v2 { 3pub mod rcc_l0 {
4 use crate::generic::*; 4 use crate::generic::*;
5 #[doc = "General-purpose I/Os"] 5 #[doc = "Reset and clock control"]
6 #[derive(Copy, Clone)] 6 #[derive(Copy, Clone)]
7 pub struct Gpio(pub *mut u8); 7 pub struct Rcc(pub *mut u8);
8 unsafe impl Send for Gpio {} 8 unsafe impl Send for Rcc {}
9 unsafe impl Sync for Gpio {} 9 unsafe impl Sync for Rcc {}
10 impl Gpio { 10 impl Rcc {
11 #[doc = "GPIO port mode register"] 11 #[doc = "Clock control register"]
12 pub fn moder(self) -> Reg<regs::Moder, RW> { 12 pub fn cr(self) -> Reg<regs::Cr, RW> {
13 unsafe { Reg::from_ptr(self.0.add(0usize)) } 13 unsafe { Reg::from_ptr(self.0.add(0usize)) }
14 } 14 }
15 #[doc = "GPIO port output type register"] 15 #[doc = "Internal clock sources calibration register"]
16 pub fn otyper(self) -> Reg<regs::Otyper, RW> { 16 pub fn icscr(self) -> Reg<regs::Icscr, RW> {
17 unsafe { Reg::from_ptr(self.0.add(4usize)) } 17 unsafe { Reg::from_ptr(self.0.add(4usize)) }
18 } 18 }
19 #[doc = "GPIO port output speed register"] 19 #[doc = "Clock recovery RC register"]
20 pub fn ospeedr(self) -> Reg<regs::Ospeedr, RW> { 20 pub fn crrcr(self) -> Reg<regs::Crrcr, RW> {
21 unsafe { Reg::from_ptr(self.0.add(8usize)) } 21 unsafe { Reg::from_ptr(self.0.add(8usize)) }
22 } 22 }
23 #[doc = "GPIO port pull-up/pull-down register"] 23 #[doc = "Clock configuration register"]
24 pub fn pupdr(self) -> Reg<regs::Pupdr, RW> { 24 pub fn cfgr(self) -> Reg<regs::Cfgr, RW> {
25 unsafe { Reg::from_ptr(self.0.add(12usize)) } 25 unsafe { Reg::from_ptr(self.0.add(12usize)) }
26 } 26 }
27 #[doc = "GPIO port input data register"] 27 #[doc = "Clock interrupt enable register"]
28 pub fn idr(self) -> Reg<regs::Idr, R> { 28 pub fn cier(self) -> Reg<regs::Cier, R> {
29 unsafe { Reg::from_ptr(self.0.add(16usize)) } 29 unsafe { Reg::from_ptr(self.0.add(16usize)) }
30 } 30 }
31 #[doc = "GPIO port output data register"] 31 #[doc = "Clock interrupt flag register"]
32 pub fn odr(self) -> Reg<regs::Odr, RW> { 32 pub fn cifr(self) -> Reg<regs::Cifr, R> {
33 unsafe { Reg::from_ptr(self.0.add(20usize)) } 33 unsafe { Reg::from_ptr(self.0.add(20usize)) }
34 } 34 }
35 #[doc = "GPIO port bit set/reset register"] 35 #[doc = "Clock interrupt clear register"]
36 pub fn bsrr(self) -> Reg<regs::Bsrr, W> { 36 pub fn cicr(self) -> Reg<regs::Cicr, R> {
37 unsafe { Reg::from_ptr(self.0.add(24usize)) } 37 unsafe { Reg::from_ptr(self.0.add(24usize)) }
38 } 38 }
39 #[doc = "GPIO port configuration lock register"] 39 #[doc = "GPIO reset register"]
40 pub fn lckr(self) -> Reg<regs::Lckr, RW> { 40 pub fn ioprstr(self) -> Reg<regs::Ioprstr, RW> {
41 unsafe { Reg::from_ptr(self.0.add(28usize)) } 41 unsafe { Reg::from_ptr(self.0.add(28usize)) }
42 } 42 }
43 #[doc = "GPIO alternate function register (low, high)"] 43 #[doc = "AHB peripheral reset register"]
44 pub fn afr(self, n: usize) -> Reg<regs::Afr, RW> { 44 pub fn ahbrstr(self) -> Reg<regs::Ahbrstr, RW> {
45 assert!(n < 2usize); 45 unsafe { Reg::from_ptr(self.0.add(32usize)) }
46 unsafe { Reg::from_ptr(self.0.add(32usize + n * 4usize)) }
47 } 46 }
48 } 47 #[doc = "APB2 peripheral reset register"]
49 pub mod regs { 48 pub fn apb2rstr(self) -> Reg<regs::Apb2rstr, RW> {
50 use crate::generic::*; 49 unsafe { Reg::from_ptr(self.0.add(36usize)) }
51 #[doc = "GPIO port output data register"]
52 #[repr(transparent)]
53 #[derive(Copy, Clone, Eq, PartialEq)]
54 pub struct Odr(pub u32);
55 impl Odr {
56 #[doc = "Port output data (y = 0..15)"]
57 pub fn odr(&self, n: usize) -> super::vals::Odr {
58 assert!(n < 16usize);
59 let offs = 0usize + n * 1usize;
60 let val = (self.0 >> offs) & 0x01;
61 super::vals::Odr(val as u8)
62 }
63 #[doc = "Port output data (y = 0..15)"]
64 pub fn set_odr(&mut self, n: usize, val: super::vals::Odr) {
65 assert!(n < 16usize);
66 let offs = 0usize + n * 1usize;
67 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
68 }
69 } 50 }
70 impl Default for Odr { 51 #[doc = "APB1 peripheral reset register"]
71 fn default() -> Odr { 52 pub fn apb1rstr(self) -> Reg<regs::Apb1rstr, RW> {
72 Odr(0) 53 unsafe { Reg::from_ptr(self.0.add(40usize)) }
73 }
74 } 54 }
75 #[doc = "GPIO port bit set/reset register"] 55 #[doc = "GPIO clock enable register"]
76 #[repr(transparent)] 56 pub fn iopenr(self) -> Reg<regs::Iopenr, RW> {
77 #[derive(Copy, Clone, Eq, PartialEq)] 57 unsafe { Reg::from_ptr(self.0.add(44usize)) }
78 pub struct Bsrr(pub u32);
79 impl Bsrr {
80 #[doc = "Port x set bit y (y= 0..15)"]
81 pub fn bs(&self, n: usize) -> bool {
82 assert!(n < 16usize);
83 let offs = 0usize + n * 1usize;
84 let val = (self.0 >> offs) & 0x01;
85 val != 0
86 }
87 #[doc = "Port x set bit y (y= 0..15)"]
88 pub fn set_bs(&mut self, n: usize, val: bool) {
89 assert!(n < 16usize);
90 let offs = 0usize + n * 1usize;
91 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
92 }
93 #[doc = "Port x set bit y (y= 0..15)"]
94 pub fn br(&self, n: usize) -> bool {
95 assert!(n < 16usize);
96 let offs = 16usize + n * 1usize;
97 let val = (self.0 >> offs) & 0x01;
98 val != 0
99 }
100 #[doc = "Port x set bit y (y= 0..15)"]
101 pub fn set_br(&mut self, n: usize, val: bool) {
102 assert!(n < 16usize);
103 let offs = 16usize + n * 1usize;
104 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
105 }
106 } 58 }
107 impl Default for Bsrr { 59 #[doc = "AHB peripheral clock enable register"]
108 fn default() -> Bsrr { 60 pub fn ahbenr(self) -> Reg<regs::Ahbenr, RW> {
109 Bsrr(0) 61 unsafe { Reg::from_ptr(self.0.add(48usize)) }
110 }
111 } 62 }
112 #[doc = "GPIO port configuration lock register"] 63 #[doc = "APB2 peripheral clock enable register"]
113 #[repr(transparent)] 64 pub fn apb2enr(self) -> Reg<regs::Apb2enr, RW> {
114 #[derive(Copy, Clone, Eq, PartialEq)] 65 unsafe { Reg::from_ptr(self.0.add(52usize)) }
115 pub struct Lckr(pub u32);
116 impl Lckr {
117 #[doc = "Port x lock bit y (y= 0..15)"]
118 pub fn lck(&self, n: usize) -> super::vals::Lck {
119 assert!(n < 16usize);
120 let offs = 0usize + n * 1usize;
121 let val = (self.0 >> offs) & 0x01;
122 super::vals::Lck(val as u8)
123 }
124 #[doc = "Port x lock bit y (y= 0..15)"]
125 pub fn set_lck(&mut self, n: usize, val: super::vals::Lck) {
126 assert!(n < 16usize);
127 let offs = 0usize + n * 1usize;
128 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
129 }
130 #[doc = "Port x lock bit y (y= 0..15)"]
131 pub const fn lckk(&self) -> super::vals::Lckk {
132 let val = (self.0 >> 16usize) & 0x01;
133 super::vals::Lckk(val as u8)
134 }
135 #[doc = "Port x lock bit y (y= 0..15)"]
136 pub fn set_lckk(&mut self, val: super::vals::Lckk) {
137 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
138 }
139 } 66 }
140 impl Default for Lckr { 67 #[doc = "APB1 peripheral clock enable register"]
141 fn default() -> Lckr { 68 pub fn apb1enr(self) -> Reg<regs::Apb1enr, RW> {
142 Lckr(0) 69 unsafe { Reg::from_ptr(self.0.add(56usize)) }
143 }
144 } 70 }
145 #[doc = "GPIO port output type register"] 71 #[doc = "GPIO clock enable in sleep mode register"]
146 #[repr(transparent)] 72 pub fn iopsmen(self) -> Reg<regs::Iopsmen, RW> {
147 #[derive(Copy, Clone, Eq, PartialEq)] 73 unsafe { Reg::from_ptr(self.0.add(60usize)) }
148 pub struct Otyper(pub u32);
149 impl Otyper {
150 #[doc = "Port x configuration bits (y = 0..15)"]
151 pub fn ot(&self, n: usize) -> super::vals::Ot {
152 assert!(n < 16usize);
153 let offs = 0usize + n * 1usize;
154 let val = (self.0 >> offs) & 0x01;
155 super::vals::Ot(val as u8)
156 }
157 #[doc = "Port x configuration bits (y = 0..15)"]
158 pub fn set_ot(&mut self, n: usize, val: super::vals::Ot) {
159 assert!(n < 16usize);
160 let offs = 0usize + n * 1usize;
161 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
162 }
163 } 74 }
164 impl Default for Otyper { 75 #[doc = "AHB peripheral clock enable in sleep mode register"]
165 fn default() -> Otyper { 76 pub fn ahbsmenr(self) -> Reg<regs::Ahbsmenr, RW> {
166 Otyper(0) 77 unsafe { Reg::from_ptr(self.0.add(64usize)) }
167 }
168 } 78 }
169 #[doc = "GPIO port input data register"] 79 #[doc = "APB2 peripheral clock enable in sleep mode register"]
170 #[repr(transparent)] 80 pub fn apb2smenr(self) -> Reg<regs::Apb2smenr, RW> {
171 #[derive(Copy, Clone, Eq, PartialEq)] 81 unsafe { Reg::from_ptr(self.0.add(68usize)) }
172 pub struct Idr(pub u32);
173 impl Idr {
174 #[doc = "Port input data (y = 0..15)"]
175 pub fn idr(&self, n: usize) -> super::vals::Idr {
176 assert!(n < 16usize);
177 let offs = 0usize + n * 1usize;
178 let val = (self.0 >> offs) & 0x01;
179 super::vals::Idr(val as u8)
180 }
181 #[doc = "Port input data (y = 0..15)"]
182 pub fn set_idr(&mut self, n: usize, val: super::vals::Idr) {
183 assert!(n < 16usize);
184 let offs = 0usize + n * 1usize;
185 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
186 }
187 } 82 }
188 impl Default for Idr { 83 #[doc = "APB1 peripheral clock enable in sleep mode register"]
189 fn default() -> Idr { 84 pub fn apb1smenr(self) -> Reg<regs::Apb1smenr, RW> {
190 Idr(0) 85 unsafe { Reg::from_ptr(self.0.add(72usize)) }
191 }
192 } 86 }
193 #[doc = "GPIO port mode register"] 87 #[doc = "Clock configuration register"]
194 #[repr(transparent)] 88 pub fn ccipr(self) -> Reg<regs::Ccipr, RW> {
195 #[derive(Copy, Clone, Eq, PartialEq)] 89 unsafe { Reg::from_ptr(self.0.add(76usize)) }
196 pub struct Moder(pub u32);
197 impl Moder {
198 #[doc = "Port x configuration bits (y = 0..15)"]
199 pub fn moder(&self, n: usize) -> super::vals::Moder {
200 assert!(n < 16usize);
201 let offs = 0usize + n * 2usize;
202 let val = (self.0 >> offs) & 0x03;
203 super::vals::Moder(val as u8)
204 }
205 #[doc = "Port x configuration bits (y = 0..15)"]
206 pub fn set_moder(&mut self, n: usize, val: super::vals::Moder) {
207 assert!(n < 16usize);
208 let offs = 0usize + n * 2usize;
209 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
210 }
211 } 90 }
212 impl Default for Moder { 91 #[doc = "Control and status register"]
213 fn default() -> Moder { 92 pub fn csr(self) -> Reg<regs::Csr, RW> {
214 Moder(0) 93 unsafe { Reg::from_ptr(self.0.add(80usize)) }
215 }
216 } 94 }
217 #[doc = "GPIO alternate function register"] 95 }
96 pub mod regs {
97 use crate::generic::*;
98 #[doc = "APB1 peripheral clock enable register"]
218 #[repr(transparent)] 99 #[repr(transparent)]
219 #[derive(Copy, Clone, Eq, PartialEq)] 100 #[derive(Copy, Clone, Eq, PartialEq)]
220 pub struct Afr(pub u32); 101 pub struct Apb1enr(pub u32);
221 impl Afr { 102 impl Apb1enr {
222 #[doc = "Alternate function selection for port x bit y (y = 0..15)"] 103 #[doc = "Timer2 clock enable bit"]
223 pub fn afr(&self, n: usize) -> super::vals::Afr { 104 pub const fn tim2en(&self) -> super::vals::Lptimen {
224 assert!(n < 8usize); 105 let val = (self.0 >> 0usize) & 0x01;
225 let offs = 0usize + n * 4usize; 106 super::vals::Lptimen(val as u8)
226 let val = (self.0 >> offs) & 0x0f;
227 super::vals::Afr(val as u8)
228 }
229 #[doc = "Alternate function selection for port x bit y (y = 0..15)"]
230 pub fn set_afr(&mut self, n: usize, val: super::vals::Afr) {
231 assert!(n < 8usize);
232 let offs = 0usize + n * 4usize;
233 self.0 = (self.0 & !(0x0f << offs)) | (((val.0 as u32) & 0x0f) << offs);
234 } 107 }
235 } 108 #[doc = "Timer2 clock enable bit"]
236 impl Default for Afr { 109 pub fn set_tim2en(&mut self, val: super::vals::Lptimen) {
237 fn default() -> Afr { 110 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
238 Afr(0)
239 } 111 }
240 } 112 #[doc = "Timer3 clock enable bit"]
241 #[doc = "GPIO port output speed register"] 113 pub const fn tim3en(&self) -> super::vals::Lptimen {
242 #[repr(transparent)] 114 let val = (self.0 >> 1usize) & 0x01;
243 #[derive(Copy, Clone, Eq, PartialEq)] 115 super::vals::Lptimen(val as u8)
244 pub struct Ospeedr(pub u32);
245 impl Ospeedr {
246 #[doc = "Port x configuration bits (y = 0..15)"]
247 pub fn ospeedr(&self, n: usize) -> super::vals::Ospeedr {
248 assert!(n < 16usize);
249 let offs = 0usize + n * 2usize;
250 let val = (self.0 >> offs) & 0x03;
251 super::vals::Ospeedr(val as u8)
252 } 116 }
253 #[doc = "Port x configuration bits (y = 0..15)"] 117 #[doc = "Timer3 clock enable bit"]
254 pub fn set_ospeedr(&mut self, n: usize, val: super::vals::Ospeedr) { 118 pub fn set_tim3en(&mut self, val: super::vals::Lptimen) {
255 assert!(n < 16usize); 119 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
256 let offs = 0usize + n * 2usize;
257 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
258 } 120 }
259 } 121 #[doc = "Timer 6 clock enable bit"]
260 impl Default for Ospeedr { 122 pub const fn tim6en(&self) -> super::vals::Lptimen {
261 fn default() -> Ospeedr { 123 let val = (self.0 >> 4usize) & 0x01;
262 Ospeedr(0) 124 super::vals::Lptimen(val as u8)
263 } 125 }
264 } 126 #[doc = "Timer 6 clock enable bit"]
265 #[doc = "GPIO port pull-up/pull-down register"] 127 pub fn set_tim6en(&mut self, val: super::vals::Lptimen) {
266 #[repr(transparent)] 128 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
267 #[derive(Copy, Clone, Eq, PartialEq)]
268 pub struct Pupdr(pub u32);
269 impl Pupdr {
270 #[doc = "Port x configuration bits (y = 0..15)"]
271 pub fn pupdr(&self, n: usize) -> super::vals::Pupdr {
272 assert!(n < 16usize);
273 let offs = 0usize + n * 2usize;
274 let val = (self.0 >> offs) & 0x03;
275 super::vals::Pupdr(val as u8)
276 } 129 }
277 #[doc = "Port x configuration bits (y = 0..15)"] 130 #[doc = "Timer 7 clock enable bit"]
278 pub fn set_pupdr(&mut self, n: usize, val: super::vals::Pupdr) { 131 pub const fn tim7en(&self) -> super::vals::Lptimen {
279 assert!(n < 16usize); 132 let val = (self.0 >> 5usize) & 0x01;
280 let offs = 0usize + n * 2usize; 133 super::vals::Lptimen(val as u8)
281 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
282 } 134 }
283 } 135 #[doc = "Timer 7 clock enable bit"]
284 impl Default for Pupdr { 136 pub fn set_tim7en(&mut self, val: super::vals::Lptimen) {
285 fn default() -> Pupdr { 137 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
286 Pupdr(0)
287 } 138 }
288 } 139 #[doc = "Window watchdog clock enable bit"]
289 } 140 pub const fn wwdgen(&self) -> super::vals::Lptimen {
290 pub mod vals { 141 let val = (self.0 >> 11usize) & 0x01;
291 use crate::generic::*; 142 super::vals::Lptimen(val as u8)
292 #[repr(transparent)]
293 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
294 pub struct Lckk(pub u8);
295 impl Lckk {
296 #[doc = "Port configuration lock key not active"]
297 pub const NOTACTIVE: Self = Self(0);
298 #[doc = "Port configuration lock key active"]
299 pub const ACTIVE: Self = Self(0x01);
300 }
301 #[repr(transparent)]
302 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
303 pub struct Afr(pub u8);
304 impl Afr {
305 #[doc = "AF0"]
306 pub const AF0: Self = Self(0);
307 #[doc = "AF1"]
308 pub const AF1: Self = Self(0x01);
309 #[doc = "AF2"]
310 pub const AF2: Self = Self(0x02);
311 #[doc = "AF3"]
312 pub const AF3: Self = Self(0x03);
313 #[doc = "AF4"]
314 pub const AF4: Self = Self(0x04);
315 #[doc = "AF5"]
316 pub const AF5: Self = Self(0x05);
317 #[doc = "AF6"]
318 pub const AF6: Self = Self(0x06);
319 #[doc = "AF7"]
320 pub const AF7: Self = Self(0x07);
321 #[doc = "AF8"]
322 pub const AF8: Self = Self(0x08);
323 #[doc = "AF9"]
324 pub const AF9: Self = Self(0x09);
325 #[doc = "AF10"]
326 pub const AF10: Self = Self(0x0a);
327 #[doc = "AF11"]
328 pub const AF11: Self = Self(0x0b);
329 #[doc = "AF12"]
330 pub const AF12: Self = Self(0x0c);
331 #[doc = "AF13"]
332 pub const AF13: Self = Self(0x0d);
333 #[doc = "AF14"]
334 pub const AF14: Self = Self(0x0e);
335 #[doc = "AF15"]
336 pub const AF15: Self = Self(0x0f);
337 }
338 #[repr(transparent)]
339 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
340 pub struct Pupdr(pub u8);
341 impl Pupdr {
342 #[doc = "No pull-up, pull-down"]
343 pub const FLOATING: Self = Self(0);
344 #[doc = "Pull-up"]
345 pub const PULLUP: Self = Self(0x01);
346 #[doc = "Pull-down"]
347 pub const PULLDOWN: Self = Self(0x02);
348 }
349 #[repr(transparent)]
350 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
351 pub struct Lck(pub u8);
352 impl Lck {
353 #[doc = "Port configuration not locked"]
354 pub const UNLOCKED: Self = Self(0);
355 #[doc = "Port configuration locked"]
356 pub const LOCKED: Self = Self(0x01);
357 }
358 #[repr(transparent)]
359 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
360 pub struct Bsw(pub u8);
361 impl Bsw {
362 #[doc = "Sets the corresponding ODRx bit"]
363 pub const SET: Self = Self(0x01);
364 }
365 #[repr(transparent)]
366 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
367 pub struct Ospeedr(pub u8);
368 impl Ospeedr {
369 #[doc = "Low speed"]
370 pub const LOWSPEED: Self = Self(0);
371 #[doc = "Medium speed"]
372 pub const MEDIUMSPEED: Self = Self(0x01);
373 #[doc = "High speed"]
374 pub const HIGHSPEED: Self = Self(0x02);
375 #[doc = "Very high speed"]
376 pub const VERYHIGHSPEED: Self = Self(0x03);
377 }
378 #[repr(transparent)]
379 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
380 pub struct Brw(pub u8);
381 impl Brw {
382 #[doc = "Resets the corresponding ODRx bit"]
383 pub const RESET: Self = Self(0x01);
384 }
385 #[repr(transparent)]
386 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
387 pub struct Moder(pub u8);
388 impl Moder {
389 #[doc = "Input mode (reset state)"]
390 pub const INPUT: Self = Self(0);
391 #[doc = "General purpose output mode"]
392 pub const OUTPUT: Self = Self(0x01);
393 #[doc = "Alternate function mode"]
394 pub const ALTERNATE: Self = Self(0x02);
395 #[doc = "Analog mode"]
396 pub const ANALOG: Self = Self(0x03);
397 }
398 #[repr(transparent)]
399 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
400 pub struct Odr(pub u8);
401 impl Odr {
402 #[doc = "Set output to logic low"]
403 pub const LOW: Self = Self(0);
404 #[doc = "Set output to logic high"]
405 pub const HIGH: Self = Self(0x01);
406 }
407 #[repr(transparent)]
408 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
409 pub struct Idr(pub u8);
410 impl Idr {
411 #[doc = "Input is logic low"]
412 pub const LOW: Self = Self(0);
413 #[doc = "Input is logic high"]
414 pub const HIGH: Self = Self(0x01);
415 }
416 #[repr(transparent)]
417 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
418 pub struct Ot(pub u8);
419 impl Ot {
420 #[doc = "Output push-pull (reset state)"]
421 pub const PUSHPULL: Self = Self(0);
422 #[doc = "Output open-drain"]
423 pub const OPENDRAIN: Self = Self(0x01);
424 }
425 }
426}
427pub mod syscfg_l4 {
428 use crate::generic::*;
429 #[doc = "System configuration controller"]
430 #[derive(Copy, Clone)]
431 pub struct Syscfg(pub *mut u8);
432 unsafe impl Send for Syscfg {}
433 unsafe impl Sync for Syscfg {}
434 impl Syscfg {
435 #[doc = "memory remap register"]
436 pub fn memrmp(self) -> Reg<regs::Memrmp, RW> {
437 unsafe { Reg::from_ptr(self.0.add(0usize)) }
438 }
439 #[doc = "configuration register 1"]
440 pub fn cfgr1(self) -> Reg<regs::Cfgr1, RW> {
441 unsafe { Reg::from_ptr(self.0.add(4usize)) }
442 }
443 #[doc = "external interrupt configuration register 1"]
444 pub fn exticr(self, n: usize) -> Reg<regs::Exticr, RW> {
445 assert!(n < 4usize);
446 unsafe { Reg::from_ptr(self.0.add(8usize + n * 4usize)) }
447 }
448 #[doc = "SCSR"]
449 pub fn scsr(self) -> Reg<regs::Scsr, RW> {
450 unsafe { Reg::from_ptr(self.0.add(24usize)) }
451 }
452 #[doc = "CFGR2"]
453 pub fn cfgr2(self) -> Reg<regs::Cfgr2, RW> {
454 unsafe { Reg::from_ptr(self.0.add(28usize)) }
455 }
456 #[doc = "SWPR"]
457 pub fn swpr(self) -> Reg<regs::Swpr, W> {
458 unsafe { Reg::from_ptr(self.0.add(32usize)) }
459 }
460 #[doc = "SKR"]
461 pub fn skr(self) -> Reg<regs::Skr, W> {
462 unsafe { Reg::from_ptr(self.0.add(36usize)) }
463 }
464 }
465 pub mod regs {
466 use crate::generic::*;
467 #[doc = "SWPR"]
468 #[repr(transparent)]
469 #[derive(Copy, Clone, Eq, PartialEq)]
470 pub struct Swpr(pub u32);
471 impl Swpr {
472 #[doc = "SRAWM2 write protection."]
473 pub fn pwp(&self, n: usize) -> bool {
474 assert!(n < 32usize);
475 let offs = 0usize + n * 1usize;
476 let val = (self.0 >> offs) & 0x01;
477 val != 0
478 } 143 }
479 #[doc = "SRAWM2 write protection."] 144 #[doc = "Window watchdog clock enable bit"]
480 pub fn set_pwp(&mut self, n: usize, val: bool) { 145 pub fn set_wwdgen(&mut self, val: super::vals::Lptimen) {
481 assert!(n < 32usize); 146 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
482 let offs = 0usize + n * 1usize;
483 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
484 } 147 }
485 } 148 #[doc = "SPI2 clock enable bit"]
486 impl Default for Swpr { 149 pub const fn spi2en(&self) -> super::vals::Lptimen {
487 fn default() -> Swpr { 150 let val = (self.0 >> 14usize) & 0x01;
488 Swpr(0) 151 super::vals::Lptimen(val as u8)
489 } 152 }
490 } 153 #[doc = "SPI2 clock enable bit"]
491 #[doc = "external interrupt configuration register 4"] 154 pub fn set_spi2en(&mut self, val: super::vals::Lptimen) {
492 #[repr(transparent)] 155 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
493 #[derive(Copy, Clone, Eq, PartialEq)]
494 pub struct Exticr(pub u32);
495 impl Exticr {
496 #[doc = "EXTI12 configuration bits"]
497 pub fn exti(&self, n: usize) -> u8 {
498 assert!(n < 4usize);
499 let offs = 0usize + n * 4usize;
500 let val = (self.0 >> offs) & 0x0f;
501 val as u8
502 } 156 }
503 #[doc = "EXTI12 configuration bits"] 157 #[doc = "UART2 clock enable bit"]
504 pub fn set_exti(&mut self, n: usize, val: u8) { 158 pub const fn usart2en(&self) -> super::vals::Lptimen {
505 assert!(n < 4usize); 159 let val = (self.0 >> 17usize) & 0x01;
506 let offs = 0usize + n * 4usize; 160 super::vals::Lptimen(val as u8)
507 self.0 = (self.0 & !(0x0f << offs)) | (((val as u32) & 0x0f) << offs);
508 } 161 }
509 } 162 #[doc = "UART2 clock enable bit"]
510 impl Default for Exticr { 163 pub fn set_usart2en(&mut self, val: super::vals::Lptimen) {
511 fn default() -> Exticr { 164 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize);
512 Exticr(0)
513 } 165 }
514 } 166 #[doc = "LPUART1 clock enable bit"]
515 #[doc = "memory remap register"] 167 pub const fn lpuart1en(&self) -> super::vals::Lptimen {
516 #[repr(transparent)] 168 let val = (self.0 >> 18usize) & 0x01;
517 #[derive(Copy, Clone, Eq, PartialEq)] 169 super::vals::Lptimen(val as u8)
518 pub struct Memrmp(pub u32);
519 impl Memrmp {
520 #[doc = "Memory mapping selection"]
521 pub const fn mem_mode(&self) -> u8 {
522 let val = (self.0 >> 0usize) & 0x07;
523 val as u8
524 } 170 }
525 #[doc = "Memory mapping selection"] 171 #[doc = "LPUART1 clock enable bit"]
526 pub fn set_mem_mode(&mut self, val: u8) { 172 pub fn set_lpuart1en(&mut self, val: super::vals::Lptimen) {
527 self.0 = (self.0 & !(0x07 << 0usize)) | (((val as u32) & 0x07) << 0usize); 173 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
528 } 174 }
529 #[doc = "QUADSPI memory mapping swap"] 175 #[doc = "USART4 clock enable bit"]
530 pub const fn qfs(&self) -> bool { 176 pub const fn usart4en(&self) -> super::vals::Lptimen {
531 let val = (self.0 >> 3usize) & 0x01; 177 let val = (self.0 >> 19usize) & 0x01;
532 val != 0 178 super::vals::Lptimen(val as u8)
533 } 179 }
534 #[doc = "QUADSPI memory mapping swap"] 180 #[doc = "USART4 clock enable bit"]
535 pub fn set_qfs(&mut self, val: bool) { 181 pub fn set_usart4en(&mut self, val: super::vals::Lptimen) {
536 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize); 182 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
537 } 183 }
538 #[doc = "Flash Bank mode selection"] 184 #[doc = "USART5 clock enable bit"]
539 pub const fn fb_mode(&self) -> bool { 185 pub const fn usart5en(&self) -> super::vals::Lptimen {
540 let val = (self.0 >> 8usize) & 0x01; 186 let val = (self.0 >> 20usize) & 0x01;
541 val != 0 187 super::vals::Lptimen(val as u8)
542 } 188 }
543 #[doc = "Flash Bank mode selection"] 189 #[doc = "USART5 clock enable bit"]
544 pub fn set_fb_mode(&mut self, val: bool) { 190 pub fn set_usart5en(&mut self, val: super::vals::Lptimen) {
545 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 191 self.0 = (self.0 & !(0x01 << 20usize)) | (((val.0 as u32) & 0x01) << 20usize);
546 } 192 }
547 } 193 #[doc = "I2C1 clock enable bit"]
548 impl Default for Memrmp { 194 pub const fn i2c1en(&self) -> super::vals::Lptimen {
549 fn default() -> Memrmp { 195 let val = (self.0 >> 21usize) & 0x01;
550 Memrmp(0) 196 super::vals::Lptimen(val as u8)
551 } 197 }
552 } 198 #[doc = "I2C1 clock enable bit"]
553 #[doc = "CFGR2"] 199 pub fn set_i2c1en(&mut self, val: super::vals::Lptimen) {
554 #[repr(transparent)] 200 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize);
555 #[derive(Copy, Clone, Eq, PartialEq)]
556 pub struct Cfgr2(pub u32);
557 impl Cfgr2 {
558 #[doc = "Cortex LOCKUP (Hardfault) output enable bit"]
559 pub const fn cll(&self) -> bool {
560 let val = (self.0 >> 0usize) & 0x01;
561 val != 0
562 } 201 }
563 #[doc = "Cortex LOCKUP (Hardfault) output enable bit"] 202 #[doc = "I2C2 clock enable bit"]
564 pub fn set_cll(&mut self, val: bool) { 203 pub const fn i2c2en(&self) -> super::vals::Lptimen {
565 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 204 let val = (self.0 >> 22usize) & 0x01;
205 super::vals::Lptimen(val as u8)
566 } 206 }
567 #[doc = "SRAM2 parity lock bit"] 207 #[doc = "I2C2 clock enable bit"]
568 pub const fn spl(&self) -> bool { 208 pub fn set_i2c2en(&mut self, val: super::vals::Lptimen) {
569 let val = (self.0 >> 1usize) & 0x01; 209 self.0 = (self.0 & !(0x01 << 22usize)) | (((val.0 as u32) & 0x01) << 22usize);
570 val != 0
571 } 210 }
572 #[doc = "SRAM2 parity lock bit"] 211 #[doc = "USB clock enable bit"]
573 pub fn set_spl(&mut self, val: bool) { 212 pub const fn usben(&self) -> super::vals::Lptimen {
574 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 213 let val = (self.0 >> 23usize) & 0x01;
214 super::vals::Lptimen(val as u8)
575 } 215 }
576 #[doc = "PVD lock enable bit"] 216 #[doc = "USB clock enable bit"]
577 pub const fn pvdl(&self) -> bool { 217 pub fn set_usben(&mut self, val: super::vals::Lptimen) {
578 let val = (self.0 >> 2usize) & 0x01; 218 self.0 = (self.0 & !(0x01 << 23usize)) | (((val.0 as u32) & 0x01) << 23usize);
579 val != 0
580 } 219 }
581 #[doc = "PVD lock enable bit"] 220 #[doc = "Clock recovery system clock enable bit"]
582 pub fn set_pvdl(&mut self, val: bool) { 221 pub const fn crsen(&self) -> super::vals::Lptimen {
583 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 222 let val = (self.0 >> 27usize) & 0x01;
223 super::vals::Lptimen(val as u8)
584 } 224 }
585 #[doc = "ECC Lock"] 225 #[doc = "Clock recovery system clock enable bit"]
586 pub const fn eccl(&self) -> bool { 226 pub fn set_crsen(&mut self, val: super::vals::Lptimen) {
587 let val = (self.0 >> 3usize) & 0x01; 227 self.0 = (self.0 & !(0x01 << 27usize)) | (((val.0 as u32) & 0x01) << 27usize);
588 val != 0
589 } 228 }
590 #[doc = "ECC Lock"] 229 #[doc = "Power interface clock enable bit"]
591 pub fn set_eccl(&mut self, val: bool) { 230 pub const fn pwren(&self) -> super::vals::Lptimen {
592 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize); 231 let val = (self.0 >> 28usize) & 0x01;
232 super::vals::Lptimen(val as u8)
593 } 233 }
594 #[doc = "SRAM2 parity error flag"] 234 #[doc = "Power interface clock enable bit"]
595 pub const fn spf(&self) -> bool { 235 pub fn set_pwren(&mut self, val: super::vals::Lptimen) {
596 let val = (self.0 >> 8usize) & 0x01; 236 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
597 val != 0
598 } 237 }
599 #[doc = "SRAM2 parity error flag"] 238 #[doc = "DAC interface clock enable bit"]
600 pub fn set_spf(&mut self, val: bool) { 239 pub const fn dacen(&self) -> super::vals::Lptimen {
601 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 240 let val = (self.0 >> 29usize) & 0x01;
241 super::vals::Lptimen(val as u8)
602 } 242 }
603 } 243 #[doc = "DAC interface clock enable bit"]
604 impl Default for Cfgr2 { 244 pub fn set_dacen(&mut self, val: super::vals::Lptimen) {
605 fn default() -> Cfgr2 { 245 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize);
606 Cfgr2(0)
607 } 246 }
608 } 247 #[doc = "I2C3 clock enable bit"]
609 #[doc = "SCSR"] 248 pub const fn i2c3en(&self) -> super::vals::Lptimen {
610 #[repr(transparent)] 249 let val = (self.0 >> 30usize) & 0x01;
611 #[derive(Copy, Clone, Eq, PartialEq)] 250 super::vals::Lptimen(val as u8)
612 pub struct Scsr(pub u32);
613 impl Scsr {
614 #[doc = "SRAM2 Erase"]
615 pub const fn sram2er(&self) -> bool {
616 let val = (self.0 >> 0usize) & 0x01;
617 val != 0
618 } 251 }
619 #[doc = "SRAM2 Erase"] 252 #[doc = "I2C3 clock enable bit"]
620 pub fn set_sram2er(&mut self, val: bool) { 253 pub fn set_i2c3en(&mut self, val: super::vals::Lptimen) {
621 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 254 self.0 = (self.0 & !(0x01 << 30usize)) | (((val.0 as u32) & 0x01) << 30usize);
622 } 255 }
623 #[doc = "SRAM2 busy by erase operation"] 256 #[doc = "Low power timer clock enable bit"]
624 pub const fn sram2bsy(&self) -> bool { 257 pub const fn lptim1en(&self) -> super::vals::Lptimen {
625 let val = (self.0 >> 1usize) & 0x01; 258 let val = (self.0 >> 31usize) & 0x01;
626 val != 0 259 super::vals::Lptimen(val as u8)
627 } 260 }
628 #[doc = "SRAM2 busy by erase operation"] 261 #[doc = "Low power timer clock enable bit"]
629 pub fn set_sram2bsy(&mut self, val: bool) { 262 pub fn set_lptim1en(&mut self, val: super::vals::Lptimen) {
630 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 263 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize);
631 } 264 }
632 } 265 }
633 impl Default for Scsr { 266 impl Default for Apb1enr {
634 fn default() -> Scsr { 267 fn default() -> Apb1enr {
635 Scsr(0) 268 Apb1enr(0)
636 } 269 }
637 } 270 }
638 #[doc = "configuration register 1"] 271 #[doc = "Clock interrupt flag register"]
639 #[repr(transparent)] 272 #[repr(transparent)]
640 #[derive(Copy, Clone, Eq, PartialEq)] 273 #[derive(Copy, Clone, Eq, PartialEq)]
641 pub struct Cfgr1(pub u32); 274 pub struct Cifr(pub u32);
642 impl Cfgr1 { 275 impl Cifr {
643 #[doc = "Firewall disable"] 276 #[doc = "LSI ready interrupt flag"]
644 pub const fn fwdis(&self) -> bool { 277 pub const fn lsirdyf(&self) -> bool {
645 let val = (self.0 >> 0usize) & 0x01; 278 let val = (self.0 >> 0usize) & 0x01;
646 val != 0 279 val != 0
647 } 280 }
648 #[doc = "Firewall disable"] 281 #[doc = "LSI ready interrupt flag"]
649 pub fn set_fwdis(&mut self, val: bool) { 282 pub fn set_lsirdyf(&mut self, val: bool) {
650 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 283 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
651 } 284 }
652 #[doc = "I/O analog switch voltage booster enable"] 285 #[doc = "LSE ready interrupt flag"]
653 pub const fn boosten(&self) -> bool { 286 pub const fn lserdyf(&self) -> bool {
654 let val = (self.0 >> 8usize) & 0x01; 287 let val = (self.0 >> 1usize) & 0x01;
655 val != 0
656 }
657 #[doc = "I/O analog switch voltage booster enable"]
658 pub fn set_boosten(&mut self, val: bool) {
659 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
660 }
661 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB6"]
662 pub const fn i2c_pb6_fmp(&self) -> bool {
663 let val = (self.0 >> 16usize) & 0x01;
664 val != 0 288 val != 0
665 } 289 }
666 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB6"] 290 #[doc = "LSE ready interrupt flag"]
667 pub fn set_i2c_pb6_fmp(&mut self, val: bool) { 291 pub fn set_lserdyf(&mut self, val: bool) {
668 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 292 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
669 } 293 }
670 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB7"] 294 #[doc = "HSI16 ready interrupt flag"]
671 pub const fn i2c_pb7_fmp(&self) -> bool { 295 pub const fn hsi16rdyf(&self) -> bool {
672 let val = (self.0 >> 17usize) & 0x01; 296 let val = (self.0 >> 2usize) & 0x01;
673 val != 0 297 val != 0
674 } 298 }
675 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB7"] 299 #[doc = "HSI16 ready interrupt flag"]
676 pub fn set_i2c_pb7_fmp(&mut self, val: bool) { 300 pub fn set_hsi16rdyf(&mut self, val: bool) {
677 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize); 301 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
678 } 302 }
679 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB8"] 303 #[doc = "HSE ready interrupt flag"]
680 pub const fn i2c_pb8_fmp(&self) -> bool { 304 pub const fn hserdyf(&self) -> bool {
681 let val = (self.0 >> 18usize) & 0x01; 305 let val = (self.0 >> 3usize) & 0x01;
682 val != 0 306 val != 0
683 } 307 }
684 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB8"] 308 #[doc = "HSE ready interrupt flag"]
685 pub fn set_i2c_pb8_fmp(&mut self, val: bool) { 309 pub fn set_hserdyf(&mut self, val: bool) {
686 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize); 310 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
687 } 311 }
688 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB9"] 312 #[doc = "PLL ready interrupt flag"]
689 pub const fn i2c_pb9_fmp(&self) -> bool { 313 pub const fn pllrdyf(&self) -> bool {
690 let val = (self.0 >> 19usize) & 0x01; 314 let val = (self.0 >> 4usize) & 0x01;
691 val != 0 315 val != 0
692 } 316 }
693 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB9"] 317 #[doc = "PLL ready interrupt flag"]
694 pub fn set_i2c_pb9_fmp(&mut self, val: bool) { 318 pub fn set_pllrdyf(&mut self, val: bool) {
695 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize); 319 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
696 } 320 }
697 #[doc = "I2C1 Fast-mode Plus driving capability activation"] 321 #[doc = "MSI ready interrupt flag"]
698 pub const fn i2c1_fmp(&self) -> bool { 322 pub const fn msirdyf(&self) -> bool {
699 let val = (self.0 >> 20usize) & 0x01; 323 let val = (self.0 >> 5usize) & 0x01;
700 val != 0 324 val != 0
701 } 325 }
702 #[doc = "I2C1 Fast-mode Plus driving capability activation"] 326 #[doc = "MSI ready interrupt flag"]
703 pub fn set_i2c1_fmp(&mut self, val: bool) { 327 pub fn set_msirdyf(&mut self, val: bool) {
704 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize); 328 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
705 } 329 }
706 #[doc = "I2C2 Fast-mode Plus driving capability activation"] 330 #[doc = "HSI48 ready interrupt flag"]
707 pub const fn i2c2_fmp(&self) -> bool { 331 pub const fn hsi48rdyf(&self) -> bool {
708 let val = (self.0 >> 21usize) & 0x01; 332 let val = (self.0 >> 6usize) & 0x01;
709 val != 0 333 val != 0
710 } 334 }
711 #[doc = "I2C2 Fast-mode Plus driving capability activation"] 335 #[doc = "HSI48 ready interrupt flag"]
712 pub fn set_i2c2_fmp(&mut self, val: bool) { 336 pub fn set_hsi48rdyf(&mut self, val: bool) {
713 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize); 337 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
714 } 338 }
715 #[doc = "I2C3 Fast-mode Plus driving capability activation"] 339 #[doc = "LSE Clock Security System Interrupt flag"]
716 pub const fn i2c3_fmp(&self) -> bool { 340 pub const fn csslsef(&self) -> super::vals::Csslsef {
717 let val = (self.0 >> 22usize) & 0x01; 341 let val = (self.0 >> 7usize) & 0x01;
718 val != 0 342 super::vals::Csslsef(val as u8)
719 } 343 }
720 #[doc = "I2C3 Fast-mode Plus driving capability activation"] 344 #[doc = "LSE Clock Security System Interrupt flag"]
721 pub fn set_i2c3_fmp(&mut self, val: bool) { 345 pub fn set_csslsef(&mut self, val: super::vals::Csslsef) {
722 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize); 346 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
723 } 347 }
724 #[doc = "Floating Point Unit interrupts enable bits"] 348 #[doc = "Clock Security System Interrupt flag"]
725 pub const fn fpu_ie(&self) -> u8 { 349 pub const fn csshsef(&self) -> super::vals::Csshsef {
726 let val = (self.0 >> 26usize) & 0x3f; 350 let val = (self.0 >> 8usize) & 0x01;
727 val as u8 351 super::vals::Csshsef(val as u8)
728 } 352 }
729 #[doc = "Floating Point Unit interrupts enable bits"] 353 #[doc = "Clock Security System Interrupt flag"]
730 pub fn set_fpu_ie(&mut self, val: u8) { 354 pub fn set_csshsef(&mut self, val: super::vals::Csshsef) {
731 self.0 = (self.0 & !(0x3f << 26usize)) | (((val as u32) & 0x3f) << 26usize); 355 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
732 } 356 }
733 } 357 }
734 impl Default for Cfgr1 { 358 impl Default for Cifr {
735 fn default() -> Cfgr1 { 359 fn default() -> Cifr {
736 Cfgr1(0) 360 Cifr(0)
737 } 361 }
738 } 362 }
739 #[doc = "SKR"] 363 #[doc = "Internal clock sources calibration register"]
740 #[repr(transparent)] 364 #[repr(transparent)]
741 #[derive(Copy, Clone, Eq, PartialEq)] 365 #[derive(Copy, Clone, Eq, PartialEq)]
742 pub struct Skr(pub u32); 366 pub struct Icscr(pub u32);
743 impl Skr { 367 impl Icscr {
744 #[doc = "SRAM2 write protection key for software erase"] 368 #[doc = "nternal high speed clock calibration"]
745 pub const fn key(&self) -> u8 { 369 pub const fn hsi16cal(&self) -> u8 {
746 let val = (self.0 >> 0usize) & 0xff; 370 let val = (self.0 >> 0usize) & 0xff;
747 val as u8 371 val as u8
748 } 372 }
749 #[doc = "SRAM2 write protection key for software erase"] 373 #[doc = "nternal high speed clock calibration"]
750 pub fn set_key(&mut self, val: u8) { 374 pub fn set_hsi16cal(&mut self, val: u8) {
751 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize); 375 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
752 } 376 }
753 } 377 #[doc = "High speed internal clock trimming"]
754 impl Default for Skr { 378 pub const fn hsi16trim(&self) -> u8 {
755 fn default() -> Skr { 379 let val = (self.0 >> 8usize) & 0x1f;
756 Skr(0)
757 }
758 }
759 }
760}
761pub mod pwr_h7 {
762 use crate::generic::*;
763 #[doc = "PWR"]
764 #[derive(Copy, Clone)]
765 pub struct Pwr(pub *mut u8);
766 unsafe impl Send for Pwr {}
767 unsafe impl Sync for Pwr {}
768 impl Pwr {
769 #[doc = "PWR control register 1"]
770 pub fn cr1(self) -> Reg<regs::Cr1, RW> {
771 unsafe { Reg::from_ptr(self.0.add(0usize)) }
772 }
773 #[doc = "PWR control status register 1"]
774 pub fn csr1(self) -> Reg<regs::Csr1, R> {
775 unsafe { Reg::from_ptr(self.0.add(4usize)) }
776 }
777 #[doc = "This register is not reset by wakeup from Standby mode, RESET signal and VDD POR. It is only reset by VSW POR and VSWRST reset. This register shall not be accessed when VSWRST bit in RCC_BDCR register resets the VSW domain.After reset, PWR_CR2 register is write-protected. Prior to modifying its content, the DBP bit in PWR_CR1 register must be set to disable the write protection."]
778 pub fn cr2(self) -> Reg<regs::Cr2, RW> {
779 unsafe { Reg::from_ptr(self.0.add(8usize)) }
780 }
781 #[doc = "Reset only by POR only, not reset by wakeup from Standby mode and RESET pad. The lower byte of this register is written once after POR and shall be written before changing VOS level or ck_sys clock frequency. No limitation applies to the upper bytes.Programming data corresponding to an invalid combination of SDLEVEL, SDEXTHP, SDEN, LDOEN and BYPASS bits (see Table9) will be ignored: data will not be written, the written-once mechanism will lock the register and any further write access will be ignored. The default supply configuration will be kept and the ACTVOSRDY bit in PWR control status register 1 (PWR_CSR1) will go on indicating invalid voltage levels. The system shall be power cycled before writing a new value."]
782 pub fn cr3(self) -> Reg<regs::Cr3, RW> {
783 unsafe { Reg::from_ptr(self.0.add(12usize)) }
784 }
785 #[doc = "This register allows controlling CPU1 power."]
786 pub fn cpucr(self) -> Reg<regs::Cpucr, RW> {
787 unsafe { Reg::from_ptr(self.0.add(16usize)) }
788 }
789 #[doc = "This register allows controlling D3 domain power.Following reset VOSRDY will be read 1 by software"]
790 pub fn d3cr(self) -> Reg<regs::D3cr, RW> {
791 unsafe { Reg::from_ptr(self.0.add(24usize)) }
792 }
793 #[doc = "reset only by system reset, not reset by wakeup from Standby mode5 wait states are required when writing this register (when clearing a WKUPF bit in PWR_WKUPFR, the AHB write access will complete after the WKUPF has been cleared)."]
794 pub fn wkupcr(self) -> Reg<regs::Wkupcr, RW> {
795 unsafe { Reg::from_ptr(self.0.add(32usize)) }
796 }
797 #[doc = "reset only by system reset, not reset by wakeup from Standby mode"]
798 pub fn wkupfr(self) -> Reg<regs::Wkupfr, RW> {
799 unsafe { Reg::from_ptr(self.0.add(36usize)) }
800 }
801 #[doc = "Reset only by system reset, not reset by wakeup from Standby mode"]
802 pub fn wkupepr(self) -> Reg<regs::Wkupepr, RW> {
803 unsafe { Reg::from_ptr(self.0.add(40usize)) }
804 }
805 }
806 pub mod regs {
807 use crate::generic::*;
808 #[doc = "reset only by system reset, not reset by wakeup from Standby mode5 wait states are required when writing this register (when clearing a WKUPF bit in PWR_WKUPFR, the AHB write access will complete after the WKUPF has been cleared)."]
809 #[repr(transparent)]
810 #[derive(Copy, Clone, Eq, PartialEq)]
811 pub struct Wkupcr(pub u32);
812 impl Wkupcr {
813 #[doc = "Clear Wakeup pin flag for WKUP. These bits are always read as 0."]
814 pub const fn wkupc(&self) -> u8 {
815 let val = (self.0 >> 0usize) & 0x3f;
816 val as u8 380 val as u8
817 } 381 }
818 #[doc = "Clear Wakeup pin flag for WKUP. These bits are always read as 0."] 382 #[doc = "High speed internal clock trimming"]
819 pub fn set_wkupc(&mut self, val: u8) { 383 pub fn set_hsi16trim(&mut self, val: u8) {
820 self.0 = (self.0 & !(0x3f << 0usize)) | (((val as u32) & 0x3f) << 0usize); 384 self.0 = (self.0 & !(0x1f << 8usize)) | (((val as u32) & 0x1f) << 8usize);
821 }
822 }
823 impl Default for Wkupcr {
824 fn default() -> Wkupcr {
825 Wkupcr(0)
826 }
827 }
828 #[doc = "PWR control status register 1"]
829 #[repr(transparent)]
830 #[derive(Copy, Clone, Eq, PartialEq)]
831 pub struct Csr1(pub u32);
832 impl Csr1 {
833 #[doc = "Programmable voltage detect output This bit is set and cleared by hardware. It is valid only if the PVD has been enabled by the PVDE bit. Note: since the PVD is disabled in Standby mode, this bit is equal to 0 after Standby or reset until the PVDE bit is set."]
834 pub const fn pvdo(&self) -> bool {
835 let val = (self.0 >> 4usize) & 0x01;
836 val != 0
837 }
838 #[doc = "Programmable voltage detect output This bit is set and cleared by hardware. It is valid only if the PVD has been enabled by the PVDE bit. Note: since the PVD is disabled in Standby mode, this bit is equal to 0 after Standby or reset until the PVDE bit is set."]
839 pub fn set_pvdo(&mut self, val: bool) {
840 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
841 } 385 }
842 #[doc = "Voltage levels ready bit for currently used VOS and SDLEVEL This bit is set to 1 by hardware when the voltage regulator and the SD converter are both disabled and Bypass mode is selected in PWR control register 3 (PWR_CR3)."] 386 #[doc = "MSI clock ranges"]
843 pub const fn actvosrdy(&self) -> bool { 387 pub const fn msirange(&self) -> super::vals::Msirange {
844 let val = (self.0 >> 13usize) & 0x01; 388 let val = (self.0 >> 13usize) & 0x07;
845 val != 0 389 super::vals::Msirange(val as u8)
846 } 390 }
847 #[doc = "Voltage levels ready bit for currently used VOS and SDLEVEL This bit is set to 1 by hardware when the voltage regulator and the SD converter are both disabled and Bypass mode is selected in PWR control register 3 (PWR_CR3)."] 391 #[doc = "MSI clock ranges"]
848 pub fn set_actvosrdy(&mut self, val: bool) { 392 pub fn set_msirange(&mut self, val: super::vals::Msirange) {
849 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize); 393 self.0 = (self.0 & !(0x07 << 13usize)) | (((val.0 as u32) & 0x07) << 13usize);
850 } 394 }
851 #[doc = "VOS currently applied for VCORE voltage scaling selection. These bits reflect the last VOS value applied to the PMU."] 395 #[doc = "MSI clock calibration"]
852 pub const fn actvos(&self) -> u8 { 396 pub const fn msical(&self) -> u8 {
853 let val = (self.0 >> 14usize) & 0x03; 397 let val = (self.0 >> 16usize) & 0xff;
854 val as u8 398 val as u8
855 } 399 }
856 #[doc = "VOS currently applied for VCORE voltage scaling selection. These bits reflect the last VOS value applied to the PMU."] 400 #[doc = "MSI clock calibration"]
857 pub fn set_actvos(&mut self, val: u8) { 401 pub fn set_msical(&mut self, val: u8) {
858 self.0 = (self.0 & !(0x03 << 14usize)) | (((val as u32) & 0x03) << 14usize); 402 self.0 = (self.0 & !(0xff << 16usize)) | (((val as u32) & 0xff) << 16usize);
859 }
860 #[doc = "Analog voltage detector output on VDDA This bit is set and cleared by hardware. It is valid only if AVD on VDDA is enabled by the AVDEN bit. Note: Since the AVD is disabled in Standby mode, this bit is equal to 0 after Standby or reset until the AVDEN bit is set."]
861 pub const fn avdo(&self) -> bool {
862 let val = (self.0 >> 16usize) & 0x01;
863 val != 0
864 }
865 #[doc = "Analog voltage detector output on VDDA This bit is set and cleared by hardware. It is valid only if AVD on VDDA is enabled by the AVDEN bit. Note: Since the AVD is disabled in Standby mode, this bit is equal to 0 after Standby or reset until the AVDEN bit is set."]
866 pub fn set_avdo(&mut self, val: bool) {
867 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
868 }
869 }
870 impl Default for Csr1 {
871 fn default() -> Csr1 {
872 Csr1(0)
873 }
874 }
875 #[doc = "This register allows controlling D3 domain power.Following reset VOSRDY will be read 1 by software"]
876 #[repr(transparent)]
877 #[derive(Copy, Clone, Eq, PartialEq)]
878 pub struct D3cr(pub u32);
879 impl D3cr {
880 #[doc = "VOS Ready bit for VCORE voltage scaling output selection. This bit is set to 1 by hardware when Bypass mode is selected in PWR control register 3 (PWR_CR3)."]
881 pub const fn vosrdy(&self) -> bool {
882 let val = (self.0 >> 13usize) & 0x01;
883 val != 0
884 }
885 #[doc = "VOS Ready bit for VCORE voltage scaling output selection. This bit is set to 1 by hardware when Bypass mode is selected in PWR control register 3 (PWR_CR3)."]
886 pub fn set_vosrdy(&mut self, val: bool) {
887 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
888 } 403 }
889 #[doc = "Voltage scaling selection according to performance These bits control the VCORE voltage level and allow to obtains the best trade-off between power consumption and performance: When increasing the performance, the voltage scaling shall be changed before increasing the system frequency. When decreasing performance, the system frequency shall first be decreased before changing the voltage scaling."] 404 #[doc = "MSI clock trimming"]
890 pub const fn vos(&self) -> u8 { 405 pub const fn msitrim(&self) -> u8 {
891 let val = (self.0 >> 14usize) & 0x03; 406 let val = (self.0 >> 24usize) & 0xff;
892 val as u8 407 val as u8
893 } 408 }
894 #[doc = "Voltage scaling selection according to performance These bits control the VCORE voltage level and allow to obtains the best trade-off between power consumption and performance: When increasing the performance, the voltage scaling shall be changed before increasing the system frequency. When decreasing performance, the system frequency shall first be decreased before changing the voltage scaling."] 409 #[doc = "MSI clock trimming"]
895 pub fn set_vos(&mut self, val: u8) { 410 pub fn set_msitrim(&mut self, val: u8) {
896 self.0 = (self.0 & !(0x03 << 14usize)) | (((val as u32) & 0x03) << 14usize); 411 self.0 = (self.0 & !(0xff << 24usize)) | (((val as u32) & 0xff) << 24usize);
897 } 412 }
898 } 413 }
899 impl Default for D3cr { 414 impl Default for Icscr {
900 fn default() -> D3cr { 415 fn default() -> Icscr {
901 D3cr(0) 416 Icscr(0)
902 } 417 }
903 } 418 }
904 #[doc = "Reset only by system reset, not reset by wakeup from Standby mode"] 419 #[doc = "APB2 peripheral clock enable register"]
905 #[repr(transparent)] 420 #[repr(transparent)]
906 #[derive(Copy, Clone, Eq, PartialEq)] 421 #[derive(Copy, Clone, Eq, PartialEq)]
907 pub struct Wkupepr(pub u32); 422 pub struct Apb2enr(pub u32);
908 impl Wkupepr { 423 impl Apb2enr {
909 #[doc = "Enable Wakeup Pin WKUPn+1 Each bit is set and cleared by software. Note: An additional wakeup event is detected if WKUPn+1 pin is enabled (by setting the WKUPENn+1 bit) when WKUPn+1 pin level is already high when WKUPPn+1 selects rising edge, or low when WKUPPn+1 selects falling edge."] 424 #[doc = "System configuration controller clock enable bit"]
910 pub fn wkupen(&self, n: usize) -> bool { 425 pub const fn syscfgen(&self) -> super::vals::Dbgen {
911 assert!(n < 6usize); 426 let val = (self.0 >> 0usize) & 0x01;
912 let offs = 0usize + n * 1usize; 427 super::vals::Dbgen(val as u8)
913 let val = (self.0 >> offs) & 0x01;
914 val != 0
915 }
916 #[doc = "Enable Wakeup Pin WKUPn+1 Each bit is set and cleared by software. Note: An additional wakeup event is detected if WKUPn+1 pin is enabled (by setting the WKUPENn+1 bit) when WKUPn+1 pin level is already high when WKUPPn+1 selects rising edge, or low when WKUPPn+1 selects falling edge."]
917 pub fn set_wkupen(&mut self, n: usize, val: bool) {
918 assert!(n < 6usize);
919 let offs = 0usize + n * 1usize;
920 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
921 }
922 #[doc = "Wakeup pin polarity bit for WKUPn-7 These bits define the polarity used for event detection on WKUPn-7 external wakeup pin."]
923 pub fn wkupp(&self, n: usize) -> bool {
924 assert!(n < 6usize);
925 let offs = 8usize + n * 1usize;
926 let val = (self.0 >> offs) & 0x01;
927 val != 0
928 }
929 #[doc = "Wakeup pin polarity bit for WKUPn-7 These bits define the polarity used for event detection on WKUPn-7 external wakeup pin."]
930 pub fn set_wkupp(&mut self, n: usize, val: bool) {
931 assert!(n < 6usize);
932 let offs = 8usize + n * 1usize;
933 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
934 } 428 }
935 #[doc = "Wakeup pin pull configuration"] 429 #[doc = "System configuration controller clock enable bit"]
936 pub fn wkuppupd(&self, n: usize) -> u8 { 430 pub fn set_syscfgen(&mut self, val: super::vals::Dbgen) {
937 assert!(n < 6usize); 431 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
938 let offs = 16usize + n * 2usize;
939 let val = (self.0 >> offs) & 0x03;
940 val as u8
941 } 432 }
942 #[doc = "Wakeup pin pull configuration"] 433 #[doc = "TIM21 timer clock enable bit"]
943 pub fn set_wkuppupd(&mut self, n: usize, val: u8) { 434 pub const fn tim21en(&self) -> super::vals::Dbgen {
944 assert!(n < 6usize); 435 let val = (self.0 >> 2usize) & 0x01;
945 let offs = 16usize + n * 2usize; 436 super::vals::Dbgen(val as u8)
946 self.0 = (self.0 & !(0x03 << offs)) | (((val as u32) & 0x03) << offs);
947 } 437 }
948 } 438 #[doc = "TIM21 timer clock enable bit"]
949 impl Default for Wkupepr { 439 pub fn set_tim21en(&mut self, val: super::vals::Dbgen) {
950 fn default() -> Wkupepr { 440 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
951 Wkupepr(0)
952 } 441 }
953 } 442 #[doc = "TIM22 timer clock enable bit"]
954 #[doc = "This register is not reset by wakeup from Standby mode, RESET signal and VDD POR. It is only reset by VSW POR and VSWRST reset. This register shall not be accessed when VSWRST bit in RCC_BDCR register resets the VSW domain.After reset, PWR_CR2 register is write-protected. Prior to modifying its content, the DBP bit in PWR_CR1 register must be set to disable the write protection."] 443 pub const fn tim22en(&self) -> super::vals::Dbgen {
955 #[repr(transparent)] 444 let val = (self.0 >> 5usize) & 0x01;
956 #[derive(Copy, Clone, Eq, PartialEq)] 445 super::vals::Dbgen(val as u8)
957 pub struct Cr2(pub u32);
958 impl Cr2 {
959 #[doc = "Backup regulator enable When set, the Backup regulator (used to maintain the backup RAM content in Standby and VBAT modes) is enabled. If BREN is reset, the backup regulator is switched off. The backup RAM can still be used in Run and Stop modes. However, its content will be lost in Standby and VBAT modes. If BREN is set, the application must wait till the Backup Regulator Ready flag (BRRDY) is set to indicate that the data written into the SRAM will be maintained in Standby and VBAT modes."]
960 pub const fn bren(&self) -> bool {
961 let val = (self.0 >> 0usize) & 0x01;
962 val != 0
963 } 446 }
964 #[doc = "Backup regulator enable When set, the Backup regulator (used to maintain the backup RAM content in Standby and VBAT modes) is enabled. If BREN is reset, the backup regulator is switched off. The backup RAM can still be used in Run and Stop modes. However, its content will be lost in Standby and VBAT modes. If BREN is set, the application must wait till the Backup Regulator Ready flag (BRRDY) is set to indicate that the data written into the SRAM will be maintained in Standby and VBAT modes."] 447 #[doc = "TIM22 timer clock enable bit"]
965 pub fn set_bren(&mut self, val: bool) { 448 pub fn set_tim22en(&mut self, val: super::vals::Dbgen) {
966 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 449 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
967 } 450 }
968 #[doc = "VBAT and temperature monitoring enable When set, the VBAT supply and temperature monitoring is enabled."] 451 #[doc = "MiFaRe Firewall clock enable bit"]
969 pub const fn monen(&self) -> bool { 452 pub const fn mifien(&self) -> super::vals::Dbgen {
970 let val = (self.0 >> 4usize) & 0x01; 453 let val = (self.0 >> 7usize) & 0x01;
971 val != 0 454 super::vals::Dbgen(val as u8)
972 } 455 }
973 #[doc = "VBAT and temperature monitoring enable When set, the VBAT supply and temperature monitoring is enabled."] 456 #[doc = "MiFaRe Firewall clock enable bit"]
974 pub fn set_monen(&mut self, val: bool) { 457 pub fn set_mifien(&mut self, val: super::vals::Dbgen) {
975 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 458 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
976 } 459 }
977 #[doc = "Backup regulator ready This bit is set by hardware to indicate that the Backup regulator is ready."] 460 #[doc = "ADC clock enable bit"]
978 pub const fn brrdy(&self) -> bool { 461 pub const fn adcen(&self) -> super::vals::Dbgen {
979 let val = (self.0 >> 16usize) & 0x01; 462 let val = (self.0 >> 9usize) & 0x01;
980 val != 0 463 super::vals::Dbgen(val as u8)
981 } 464 }
982 #[doc = "Backup regulator ready This bit is set by hardware to indicate that the Backup regulator is ready."] 465 #[doc = "ADC clock enable bit"]
983 pub fn set_brrdy(&mut self, val: bool) { 466 pub fn set_adcen(&mut self, val: super::vals::Dbgen) {
984 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 467 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
985 } 468 }
986 #[doc = "VBAT level monitoring versus low threshold"] 469 #[doc = "SPI1 clock enable bit"]
987 pub const fn vbatl(&self) -> bool { 470 pub const fn spi1en(&self) -> super::vals::Dbgen {
988 let val = (self.0 >> 20usize) & 0x01; 471 let val = (self.0 >> 12usize) & 0x01;
989 val != 0 472 super::vals::Dbgen(val as u8)
990 } 473 }
991 #[doc = "VBAT level monitoring versus low threshold"] 474 #[doc = "SPI1 clock enable bit"]
992 pub fn set_vbatl(&mut self, val: bool) { 475 pub fn set_spi1en(&mut self, val: super::vals::Dbgen) {
993 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize); 476 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
994 } 477 }
995 #[doc = "VBAT level monitoring versus high threshold"] 478 #[doc = "USART1 clock enable bit"]
996 pub const fn vbath(&self) -> bool { 479 pub const fn usart1en(&self) -> super::vals::Dbgen {
997 let val = (self.0 >> 21usize) & 0x01; 480 let val = (self.0 >> 14usize) & 0x01;
998 val != 0 481 super::vals::Dbgen(val as u8)
999 } 482 }
1000 #[doc = "VBAT level monitoring versus high threshold"] 483 #[doc = "USART1 clock enable bit"]
1001 pub fn set_vbath(&mut self, val: bool) { 484 pub fn set_usart1en(&mut self, val: super::vals::Dbgen) {
1002 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize); 485 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
1003 } 486 }
1004 #[doc = "Temperature level monitoring versus low threshold"] 487 #[doc = "DBG clock enable bit"]
1005 pub const fn templ(&self) -> bool { 488 pub const fn dbgen(&self) -> super::vals::Dbgen {
1006 let val = (self.0 >> 22usize) & 0x01; 489 let val = (self.0 >> 22usize) & 0x01;
1007 val != 0 490 super::vals::Dbgen(val as u8)
1008 }
1009 #[doc = "Temperature level monitoring versus low threshold"]
1010 pub fn set_templ(&mut self, val: bool) {
1011 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
1012 }
1013 #[doc = "Temperature level monitoring versus high threshold"]
1014 pub const fn temph(&self) -> bool {
1015 let val = (self.0 >> 23usize) & 0x01;
1016 val != 0
1017 } 491 }
1018 #[doc = "Temperature level monitoring versus high threshold"] 492 #[doc = "DBG clock enable bit"]
1019 pub fn set_temph(&mut self, val: bool) { 493 pub fn set_dbgen(&mut self, val: super::vals::Dbgen) {
1020 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize); 494 self.0 = (self.0 & !(0x01 << 22usize)) | (((val.0 as u32) & 0x01) << 22usize);
1021 } 495 }
1022 } 496 }
1023 impl Default for Cr2 { 497 impl Default for Apb2enr {
1024 fn default() -> Cr2 { 498 fn default() -> Apb2enr {
1025 Cr2(0) 499 Apb2enr(0)
1026 } 500 }
1027 } 501 }
1028 #[doc = "Reset only by POR only, not reset by wakeup from Standby mode and RESET pad. The lower byte of this register is written once after POR and shall be written before changing VOS level or ck_sys clock frequency. No limitation applies to the upper bytes.Programming data corresponding to an invalid combination of SDLEVEL, SDEXTHP, SDEN, LDOEN and BYPASS bits (see Table9) will be ignored: data will not be written, the written-once mechanism will lock the register and any further write access will be ignored. The default supply configuration will be kept and the ACTVOSRDY bit in PWR control status register 1 (PWR_CSR1) will go on indicating invalid voltage levels. The system shall be power cycled before writing a new value."] 502 #[doc = "APB2 peripheral reset register"]
1029 #[repr(transparent)] 503 #[repr(transparent)]
1030 #[derive(Copy, Clone, Eq, PartialEq)] 504 #[derive(Copy, Clone, Eq, PartialEq)]
1031 pub struct Cr3(pub u32); 505 pub struct Apb2rstr(pub u32);
1032 impl Cr3 { 506 impl Apb2rstr {
1033 #[doc = "Power management unit bypass"] 507 #[doc = "System configuration controller reset"]
1034 pub const fn bypass(&self) -> bool { 508 pub const fn syscfgrst(&self) -> bool {
1035 let val = (self.0 >> 0usize) & 0x01; 509 let val = (self.0 >> 0usize) & 0x01;
1036 val != 0 510 val != 0
1037 } 511 }
1038 #[doc = "Power management unit bypass"] 512 #[doc = "System configuration controller reset"]
1039 pub fn set_bypass(&mut self, val: bool) { 513 pub fn set_syscfgrst(&mut self, val: bool) {
1040 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 514 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
1041 } 515 }
1042 #[doc = "Low drop-out regulator enable"] 516 #[doc = "TIM21 timer reset"]
1043 pub const fn ldoen(&self) -> bool { 517 pub const fn tim21rst(&self) -> bool {
1044 let val = (self.0 >> 1usize) & 0x01;
1045 val != 0
1046 }
1047 #[doc = "Low drop-out regulator enable"]
1048 pub fn set_ldoen(&mut self, val: bool) {
1049 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
1050 }
1051 #[doc = "SD converter Enable"]
1052 pub const fn scuen(&self) -> bool {
1053 let val = (self.0 >> 2usize) & 0x01; 518 let val = (self.0 >> 2usize) & 0x01;
1054 val != 0 519 val != 0
1055 } 520 }
1056 #[doc = "SD converter Enable"] 521 #[doc = "TIM21 timer reset"]
1057 pub fn set_scuen(&mut self, val: bool) { 522 pub fn set_tim21rst(&mut self, val: bool) {
1058 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 523 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
1059 } 524 }
1060 #[doc = "VBAT charging enable"] 525 #[doc = "TIM22 timer reset"]
1061 pub const fn vbe(&self) -> bool { 526 pub const fn tim22rst(&self) -> bool {
1062 let val = (self.0 >> 8usize) & 0x01; 527 let val = (self.0 >> 5usize) & 0x01;
1063 val != 0 528 val != 0
1064 } 529 }
1065 #[doc = "VBAT charging enable"] 530 #[doc = "TIM22 timer reset"]
1066 pub fn set_vbe(&mut self, val: bool) { 531 pub fn set_tim22rst(&mut self, val: bool) {
1067 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 532 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
1068 } 533 }
1069 #[doc = "VBAT charging resistor selection"] 534 #[doc = "ADC interface reset"]
1070 pub const fn vbrs(&self) -> bool { 535 pub const fn adcrst(&self) -> bool {
1071 let val = (self.0 >> 9usize) & 0x01; 536 let val = (self.0 >> 9usize) & 0x01;
1072 val != 0 537 val != 0
1073 } 538 }
1074 #[doc = "VBAT charging resistor selection"] 539 #[doc = "ADC interface reset"]
1075 pub fn set_vbrs(&mut self, val: bool) { 540 pub fn set_adcrst(&mut self, val: bool) {
1076 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 541 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
1077 } 542 }
1078 #[doc = "VDD33USB voltage level detector enable."] 543 #[doc = "SPI 1 reset"]
1079 pub const fn usb33den(&self) -> bool { 544 pub const fn spi1rst(&self) -> bool {
1080 let val = (self.0 >> 24usize) & 0x01; 545 let val = (self.0 >> 12usize) & 0x01;
1081 val != 0 546 val != 0
1082 } 547 }
1083 #[doc = "VDD33USB voltage level detector enable."] 548 #[doc = "SPI 1 reset"]
1084 pub fn set_usb33den(&mut self, val: bool) { 549 pub fn set_spi1rst(&mut self, val: bool) {
1085 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize); 550 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
1086 } 551 }
1087 #[doc = "USB regulator enable."] 552 #[doc = "USART1 reset"]
1088 pub const fn usbregen(&self) -> bool { 553 pub const fn usart1rst(&self) -> bool {
1089 let val = (self.0 >> 25usize) & 0x01; 554 let val = (self.0 >> 14usize) & 0x01;
1090 val != 0 555 val != 0
1091 } 556 }
1092 #[doc = "USB regulator enable."] 557 #[doc = "USART1 reset"]
1093 pub fn set_usbregen(&mut self, val: bool) { 558 pub fn set_usart1rst(&mut self, val: bool) {
1094 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize); 559 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
1095 } 560 }
1096 #[doc = "USB supply ready."] 561 #[doc = "DBG reset"]
1097 pub const fn usb33rdy(&self) -> bool { 562 pub const fn dbgrst(&self) -> bool {
1098 let val = (self.0 >> 26usize) & 0x01; 563 let val = (self.0 >> 22usize) & 0x01;
1099 val != 0 564 val != 0
1100 } 565 }
1101 #[doc = "USB supply ready."] 566 #[doc = "DBG reset"]
1102 pub fn set_usb33rdy(&mut self, val: bool) { 567 pub fn set_dbgrst(&mut self, val: bool) {
1103 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize); 568 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
1104 } 569 }
1105 } 570 }
1106 impl Default for Cr3 { 571 impl Default for Apb2rstr {
1107 fn default() -> Cr3 { 572 fn default() -> Apb2rstr {
1108 Cr3(0) 573 Apb2rstr(0)
1109 } 574 }
1110 } 575 }
1111 #[doc = "reset only by system reset, not reset by wakeup from Standby mode"] 576 #[doc = "Clock configuration register"]
1112 #[repr(transparent)] 577 #[repr(transparent)]
1113 #[derive(Copy, Clone, Eq, PartialEq)] 578 #[derive(Copy, Clone, Eq, PartialEq)]
1114 pub struct Wkupfr(pub u32); 579 pub struct Cfgr(pub u32);
1115 impl Wkupfr { 580 impl Cfgr {
1116 #[doc = "Wakeup pin WKUPF flag. This bit is set by hardware and cleared only by a Reset pin or by setting the WKUPCn+1 bit in the PWR wakeup clear register (PWR_WKUPCR)."] 581 #[doc = "System clock switch"]
1117 pub fn wkupf(&self, n: usize) -> bool { 582 pub const fn sw(&self) -> super::vals::Sw {
1118 assert!(n < 6usize); 583 let val = (self.0 >> 0usize) & 0x03;
1119 let offs = 0usize + n * 1usize; 584 super::vals::Sw(val as u8)
1120 let val = (self.0 >> offs) & 0x01;
1121 val != 0
1122 } 585 }
1123 #[doc = "Wakeup pin WKUPF flag. This bit is set by hardware and cleared only by a Reset pin or by setting the WKUPCn+1 bit in the PWR wakeup clear register (PWR_WKUPCR)."] 586 #[doc = "System clock switch"]
1124 pub fn set_wkupf(&mut self, n: usize, val: bool) { 587 pub fn set_sw(&mut self, val: super::vals::Sw) {
1125 assert!(n < 6usize); 588 self.0 = (self.0 & !(0x03 << 0usize)) | (((val.0 as u32) & 0x03) << 0usize);
1126 let offs = 0usize + n * 1usize;
1127 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
1128 } 589 }
1129 } 590 #[doc = "System clock switch status"]
1130 impl Default for Wkupfr { 591 pub const fn sws(&self) -> super::vals::Sws {
1131 fn default() -> Wkupfr { 592 let val = (self.0 >> 2usize) & 0x03;
1132 Wkupfr(0) 593 super::vals::Sws(val as u8)
1133 } 594 }
1134 } 595 #[doc = "System clock switch status"]
1135 #[doc = "PWR control register 1"] 596 pub fn set_sws(&mut self, val: super::vals::Sws) {
1136 #[repr(transparent)] 597 self.0 = (self.0 & !(0x03 << 2usize)) | (((val.0 as u32) & 0x03) << 2usize);
1137 #[derive(Copy, Clone, Eq, PartialEq)]
1138 pub struct Cr1(pub u32);
1139 impl Cr1 {
1140 #[doc = "Low-power Deepsleep with SVOS3 (SVOS4 and SVOS5 always use low-power, regardless of the setting of this bit)"]
1141 pub const fn lpds(&self) -> bool {
1142 let val = (self.0 >> 0usize) & 0x01;
1143 val != 0
1144 } 598 }
1145 #[doc = "Low-power Deepsleep with SVOS3 (SVOS4 and SVOS5 always use low-power, regardless of the setting of this bit)"] 599 #[doc = "AHB prescaler"]
1146 pub fn set_lpds(&mut self, val: bool) { 600 pub const fn hpre(&self) -> super::vals::Hpre {
1147 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 601 let val = (self.0 >> 4usize) & 0x0f;
602 super::vals::Hpre(val as u8)
1148 } 603 }
1149 #[doc = "Programmable voltage detector enable"] 604 #[doc = "AHB prescaler"]
1150 pub const fn pvde(&self) -> bool { 605 pub fn set_hpre(&mut self, val: super::vals::Hpre) {
1151 let val = (self.0 >> 4usize) & 0x01; 606 self.0 = (self.0 & !(0x0f << 4usize)) | (((val.0 as u32) & 0x0f) << 4usize);
1152 val != 0
1153 } 607 }
1154 #[doc = "Programmable voltage detector enable"] 608 #[doc = "APB low-speed prescaler (APB1)"]
1155 pub fn set_pvde(&mut self, val: bool) { 609 pub fn ppre(&self, n: usize) -> super::vals::Ppre {
1156 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 610 assert!(n < 2usize);
611 let offs = 8usize + n * 3usize;
612 let val = (self.0 >> offs) & 0x07;
613 super::vals::Ppre(val as u8)
1157 } 614 }
1158 #[doc = "Programmable voltage detector level selection These bits select the voltage threshold detected by the PVD. Note: Refer to Section Electrical characteristics of the product datasheet for more details."] 615 #[doc = "APB low-speed prescaler (APB1)"]
1159 pub const fn pls(&self) -> u8 { 616 pub fn set_ppre(&mut self, n: usize, val: super::vals::Ppre) {
1160 let val = (self.0 >> 5usize) & 0x07; 617 assert!(n < 2usize);
1161 val as u8 618 let offs = 8usize + n * 3usize;
619 self.0 = (self.0 & !(0x07 << offs)) | (((val.0 as u32) & 0x07) << offs);
1162 } 620 }
1163 #[doc = "Programmable voltage detector level selection These bits select the voltage threshold detected by the PVD. Note: Refer to Section Electrical characteristics of the product datasheet for more details."] 621 #[doc = "Wake-up from stop clock selection"]
1164 pub fn set_pls(&mut self, val: u8) { 622 pub const fn stopwuck(&self) -> super::vals::Stopwuck {
1165 self.0 = (self.0 & !(0x07 << 5usize)) | (((val as u32) & 0x07) << 5usize); 623 let val = (self.0 >> 15usize) & 0x01;
624 super::vals::Stopwuck(val as u8)
1166 } 625 }
1167 #[doc = "Disable backup domain write protection In reset state, the RCC_BDCR register, the RTC registers (including the backup registers), BREN and MOEN bits in PWR_CR2 register, are protected against parasitic write access. This bit must be set to enable write access to these registers."] 626 #[doc = "Wake-up from stop clock selection"]
1168 pub const fn dbp(&self) -> bool { 627 pub fn set_stopwuck(&mut self, val: super::vals::Stopwuck) {
1169 let val = (self.0 >> 8usize) & 0x01; 628 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
1170 val != 0
1171 } 629 }
1172 #[doc = "Disable backup domain write protection In reset state, the RCC_BDCR register, the RTC registers (including the backup registers), BREN and MOEN bits in PWR_CR2 register, are protected against parasitic write access. This bit must be set to enable write access to these registers."] 630 #[doc = "PLL entry clock source"]
1173 pub fn set_dbp(&mut self, val: bool) { 631 pub const fn pllsrc(&self) -> super::vals::Pllsrc {
1174 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 632 let val = (self.0 >> 16usize) & 0x01;
633 super::vals::Pllsrc(val as u8)
1175 } 634 }
1176 #[doc = "Flash low-power mode in DStop mode This bit allows to obtain the best trade-off between low-power consumption and restart time when exiting from DStop mode. When it is set, the Flash memory enters low-power mode when D1 domain is in DStop mode."] 635 #[doc = "PLL entry clock source"]
1177 pub const fn flps(&self) -> bool { 636 pub fn set_pllsrc(&mut self, val: super::vals::Pllsrc) {
1178 let val = (self.0 >> 9usize) & 0x01; 637 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
1179 val != 0
1180 } 638 }
1181 #[doc = "Flash low-power mode in DStop mode This bit allows to obtain the best trade-off between low-power consumption and restart time when exiting from DStop mode. When it is set, the Flash memory enters low-power mode when D1 domain is in DStop mode."] 639 #[doc = "PLL multiplication factor"]
1182 pub fn set_flps(&mut self, val: bool) { 640 pub const fn pllmul(&self) -> super::vals::Pllmul {
1183 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 641 let val = (self.0 >> 18usize) & 0x0f;
642 super::vals::Pllmul(val as u8)
1184 } 643 }
1185 #[doc = "System Stop mode voltage scaling selection These bits control the VCORE voltage level in system Stop mode, to obtain the best trade-off between power consumption and performance."] 644 #[doc = "PLL multiplication factor"]
1186 pub const fn svos(&self) -> u8 { 645 pub fn set_pllmul(&mut self, val: super::vals::Pllmul) {
1187 let val = (self.0 >> 14usize) & 0x03; 646 self.0 = (self.0 & !(0x0f << 18usize)) | (((val.0 as u32) & 0x0f) << 18usize);
1188 val as u8
1189 } 647 }
1190 #[doc = "System Stop mode voltage scaling selection These bits control the VCORE voltage level in system Stop mode, to obtain the best trade-off between power consumption and performance."] 648 #[doc = "PLL output division"]
1191 pub fn set_svos(&mut self, val: u8) { 649 pub const fn plldiv(&self) -> super::vals::Plldiv {
1192 self.0 = (self.0 & !(0x03 << 14usize)) | (((val as u32) & 0x03) << 14usize); 650 let val = (self.0 >> 22usize) & 0x03;
651 super::vals::Plldiv(val as u8)
1193 } 652 }
1194 #[doc = "Peripheral voltage monitor on VDDA enable"] 653 #[doc = "PLL output division"]
1195 pub const fn avden(&self) -> bool { 654 pub fn set_plldiv(&mut self, val: super::vals::Plldiv) {
1196 let val = (self.0 >> 16usize) & 0x01; 655 self.0 = (self.0 & !(0x03 << 22usize)) | (((val.0 as u32) & 0x03) << 22usize);
1197 val != 0
1198 } 656 }
1199 #[doc = "Peripheral voltage monitor on VDDA enable"] 657 #[doc = "Microcontroller clock output selection"]
1200 pub fn set_avden(&mut self, val: bool) { 658 pub const fn mcosel(&self) -> super::vals::Mcosel {
1201 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 659 let val = (self.0 >> 24usize) & 0x0f;
660 super::vals::Mcosel(val as u8)
1202 } 661 }
1203 #[doc = "Analog voltage detector level selection These bits select the voltage threshold detected by the AVD."] 662 #[doc = "Microcontroller clock output selection"]
1204 pub const fn als(&self) -> u8 { 663 pub fn set_mcosel(&mut self, val: super::vals::Mcosel) {
1205 let val = (self.0 >> 17usize) & 0x03; 664 self.0 = (self.0 & !(0x0f << 24usize)) | (((val.0 as u32) & 0x0f) << 24usize);
1206 val as u8
1207 } 665 }
1208 #[doc = "Analog voltage detector level selection These bits select the voltage threshold detected by the AVD."] 666 #[doc = "Microcontroller clock output prescaler"]
1209 pub fn set_als(&mut self, val: u8) { 667 pub const fn mcopre(&self) -> super::vals::Mcopre {
1210 self.0 = (self.0 & !(0x03 << 17usize)) | (((val as u32) & 0x03) << 17usize); 668 let val = (self.0 >> 28usize) & 0x07;
669 super::vals::Mcopre(val as u8)
670 }
671 #[doc = "Microcontroller clock output prescaler"]
672 pub fn set_mcopre(&mut self, val: super::vals::Mcopre) {
673 self.0 = (self.0 & !(0x07 << 28usize)) | (((val.0 as u32) & 0x07) << 28usize);
1211 } 674 }
1212 } 675 }
1213 impl Default for Cr1 { 676 impl Default for Cfgr {
1214 fn default() -> Cr1 { 677 fn default() -> Cfgr {
1215 Cr1(0) 678 Cfgr(0)
1216 } 679 }
1217 } 680 }
1218 #[doc = "This register allows controlling CPU1 power."] 681 #[doc = "APB1 peripheral reset register"]
1219 #[repr(transparent)] 682 #[repr(transparent)]
1220 #[derive(Copy, Clone, Eq, PartialEq)] 683 #[derive(Copy, Clone, Eq, PartialEq)]
1221 pub struct Cpucr(pub u32); 684 pub struct Apb1rstr(pub u32);
1222 impl Cpucr { 685 impl Apb1rstr {
1223 #[doc = "D1 domain Power Down Deepsleep selection. This bit allows CPU1 to define the Deepsleep mode for D1 domain."] 686 #[doc = "Timer2 reset"]
1224 pub const fn pdds_d1(&self) -> bool { 687 pub const fn tim2rst(&self) -> bool {
1225 let val = (self.0 >> 0usize) & 0x01; 688 let val = (self.0 >> 0usize) & 0x01;
1226 val != 0 689 val != 0
1227 } 690 }
1228 #[doc = "D1 domain Power Down Deepsleep selection. This bit allows CPU1 to define the Deepsleep mode for D1 domain."] 691 #[doc = "Timer2 reset"]
1229 pub fn set_pdds_d1(&mut self, val: bool) { 692 pub fn set_tim2rst(&mut self, val: bool) {
1230 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 693 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
1231 } 694 }
1232 #[doc = "D2 domain Power Down Deepsleep. This bit allows CPU1 to define the Deepsleep mode for D2 domain."] 695 #[doc = "Timer3 reset"]
1233 pub const fn pdds_d2(&self) -> bool { 696 pub const fn tim3rst(&self) -> bool {
1234 let val = (self.0 >> 1usize) & 0x01; 697 let val = (self.0 >> 1usize) & 0x01;
1235 val != 0 698 val != 0
1236 } 699 }
1237 #[doc = "D2 domain Power Down Deepsleep. This bit allows CPU1 to define the Deepsleep mode for D2 domain."] 700 #[doc = "Timer3 reset"]
1238 pub fn set_pdds_d2(&mut self, val: bool) { 701 pub fn set_tim3rst(&mut self, val: bool) {
1239 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 702 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
1240 } 703 }
1241 #[doc = "System D3 domain Power Down Deepsleep. This bit allows CPU1 to define the Deepsleep mode for System D3 domain."] 704 #[doc = "Timer 6 reset"]
1242 pub const fn pdds_d3(&self) -> bool { 705 pub const fn tim6rst(&self) -> bool {
1243 let val = (self.0 >> 2usize) & 0x01; 706 let val = (self.0 >> 4usize) & 0x01;
1244 val != 0 707 val != 0
1245 } 708 }
1246 #[doc = "System D3 domain Power Down Deepsleep. This bit allows CPU1 to define the Deepsleep mode for System D3 domain."] 709 #[doc = "Timer 6 reset"]
1247 pub fn set_pdds_d3(&mut self, val: bool) { 710 pub fn set_tim6rst(&mut self, val: bool) {
1248 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 711 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
1249 } 712 }
1250 #[doc = "STOP flag This bit is set by hardware and cleared only by any reset or by setting the CPU1 CSSF bit."] 713 #[doc = "Timer 7 reset"]
1251 pub const fn stopf(&self) -> bool { 714 pub const fn tim7rst(&self) -> bool {
1252 let val = (self.0 >> 5usize) & 0x01; 715 let val = (self.0 >> 5usize) & 0x01;
1253 val != 0 716 val != 0
1254 } 717 }
1255 #[doc = "STOP flag This bit is set by hardware and cleared only by any reset or by setting the CPU1 CSSF bit."] 718 #[doc = "Timer 7 reset"]
1256 pub fn set_stopf(&mut self, val: bool) { 719 pub fn set_tim7rst(&mut self, val: bool) {
1257 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 720 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
1258 } 721 }
1259 #[doc = "System Standby flag This bit is set by hardware and cleared only by a POR (Power-on Reset) or by setting the CPU1 CSSF bit"] 722 #[doc = "Window watchdog reset"]
1260 pub const fn sbf(&self) -> bool { 723 pub const fn wwdrst(&self) -> bool {
1261 let val = (self.0 >> 6usize) & 0x01; 724 let val = (self.0 >> 11usize) & 0x01;
1262 val != 0 725 val != 0
1263 } 726 }
1264 #[doc = "System Standby flag This bit is set by hardware and cleared only by a POR (Power-on Reset) or by setting the CPU1 CSSF bit"] 727 #[doc = "Window watchdog reset"]
1265 pub fn set_sbf(&mut self, val: bool) { 728 pub fn set_wwdrst(&mut self, val: bool) {
1266 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 729 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
1267 } 730 }
1268 #[doc = "D1 domain DStandby flag This bit is set by hardware and cleared by any system reset or by setting the CPU1 CSSF bit. Once set, this bit can be cleared only when the D1 domain is no longer in DStandby mode."] 731 #[doc = "SPI2 reset"]
1269 pub const fn sbf_d1(&self) -> bool { 732 pub const fn spi2rst(&self) -> bool {
1270 let val = (self.0 >> 7usize) & 0x01; 733 let val = (self.0 >> 14usize) & 0x01;
1271 val != 0 734 val != 0
1272 } 735 }
1273 #[doc = "D1 domain DStandby flag This bit is set by hardware and cleared by any system reset or by setting the CPU1 CSSF bit. Once set, this bit can be cleared only when the D1 domain is no longer in DStandby mode."] 736 #[doc = "SPI2 reset"]
1274 pub fn set_sbf_d1(&mut self, val: bool) { 737 pub fn set_spi2rst(&mut self, val: bool) {
1275 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 738 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
1276 } 739 }
1277 #[doc = "D2 domain DStandby flag This bit is set by hardware and cleared by any system reset or by setting the CPU1 CSSF bit. Once set, this bit can be cleared only when the D2 domain is no longer in DStandby mode."] 740 #[doc = "UART2 reset"]
1278 pub const fn sbf_d2(&self) -> bool { 741 pub const fn lpuart12rst(&self) -> bool {
1279 let val = (self.0 >> 8usize) & 0x01; 742 let val = (self.0 >> 17usize) & 0x01;
1280 val != 0 743 val != 0
1281 } 744 }
1282 #[doc = "D2 domain DStandby flag This bit is set by hardware and cleared by any system reset or by setting the CPU1 CSSF bit. Once set, this bit can be cleared only when the D2 domain is no longer in DStandby mode."] 745 #[doc = "UART2 reset"]
1283 pub fn set_sbf_d2(&mut self, val: bool) { 746 pub fn set_lpuart12rst(&mut self, val: bool) {
1284 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 747 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
1285 } 748 }
1286 #[doc = "Clear D1 domain CPU1 Standby, Stop and HOLD flags (always read as 0) This bit is cleared to 0 by hardware."] 749 #[doc = "LPUART1 reset"]
1287 pub const fn cssf(&self) -> bool { 750 pub const fn lpuart1rst(&self) -> bool {
1288 let val = (self.0 >> 9usize) & 0x01; 751 let val = (self.0 >> 18usize) & 0x01;
1289 val != 0 752 val != 0
1290 } 753 }
1291 #[doc = "Clear D1 domain CPU1 Standby, Stop and HOLD flags (always read as 0) This bit is cleared to 0 by hardware."] 754 #[doc = "LPUART1 reset"]
1292 pub fn set_cssf(&mut self, val: bool) { 755 pub fn set_lpuart1rst(&mut self, val: bool) {
1293 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 756 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize);
1294 } 757 }
1295 #[doc = "Keep system D3 domain in Run mode regardless of the CPU sub-systems modes"] 758 #[doc = "USART4 reset"]
1296 pub const fn run_d3(&self) -> bool { 759 pub const fn usart4rst(&self) -> bool {
1297 let val = (self.0 >> 11usize) & 0x01; 760 let val = (self.0 >> 19usize) & 0x01;
1298 val != 0 761 val != 0
1299 } 762 }
1300 #[doc = "Keep system D3 domain in Run mode regardless of the CPU sub-systems modes"] 763 #[doc = "USART4 reset"]
1301 pub fn set_run_d3(&mut self, val: bool) { 764 pub fn set_usart4rst(&mut self, val: bool) {
1302 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize); 765 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize);
1303 }
1304 }
1305 impl Default for Cpucr {
1306 fn default() -> Cpucr {
1307 Cpucr(0)
1308 }
1309 }
1310 }
1311}
1312pub mod i2c_v2 {
1313 use crate::generic::*;
1314 #[doc = "Inter-integrated circuit"]
1315 #[derive(Copy, Clone)]
1316 pub struct I2c(pub *mut u8);
1317 unsafe impl Send for I2c {}
1318 unsafe impl Sync for I2c {}
1319 impl I2c {
1320 #[doc = "Control register 1"]
1321 pub fn cr1(self) -> Reg<regs::Cr1, RW> {
1322 unsafe { Reg::from_ptr(self.0.add(0usize)) }
1323 }
1324 #[doc = "Control register 2"]
1325 pub fn cr2(self) -> Reg<regs::Cr2, RW> {
1326 unsafe { Reg::from_ptr(self.0.add(4usize)) }
1327 }
1328 #[doc = "Own address register 1"]
1329 pub fn oar1(self) -> Reg<regs::Oar1, RW> {
1330 unsafe { Reg::from_ptr(self.0.add(8usize)) }
1331 }
1332 #[doc = "Own address register 2"]
1333 pub fn oar2(self) -> Reg<regs::Oar2, RW> {
1334 unsafe { Reg::from_ptr(self.0.add(12usize)) }
1335 }
1336 #[doc = "Timing register"]
1337 pub fn timingr(self) -> Reg<regs::Timingr, RW> {
1338 unsafe { Reg::from_ptr(self.0.add(16usize)) }
1339 }
1340 #[doc = "Status register 1"]
1341 pub fn timeoutr(self) -> Reg<regs::Timeoutr, RW> {
1342 unsafe { Reg::from_ptr(self.0.add(20usize)) }
1343 }
1344 #[doc = "Interrupt and Status register"]
1345 pub fn isr(self) -> Reg<regs::Isr, RW> {
1346 unsafe { Reg::from_ptr(self.0.add(24usize)) }
1347 }
1348 #[doc = "Interrupt clear register"]
1349 pub fn icr(self) -> Reg<regs::Icr, W> {
1350 unsafe { Reg::from_ptr(self.0.add(28usize)) }
1351 }
1352 #[doc = "PEC register"]
1353 pub fn pecr(self) -> Reg<regs::Pecr, R> {
1354 unsafe { Reg::from_ptr(self.0.add(32usize)) }
1355 }
1356 #[doc = "Receive data register"]
1357 pub fn rxdr(self) -> Reg<regs::Rxdr, R> {
1358 unsafe { Reg::from_ptr(self.0.add(36usize)) }
1359 }
1360 #[doc = "Transmit data register"]
1361 pub fn txdr(self) -> Reg<regs::Txdr, RW> {
1362 unsafe { Reg::from_ptr(self.0.add(40usize)) }
1363 }
1364 }
1365 pub mod vals {
1366 use crate::generic::*;
1367 #[repr(transparent)]
1368 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
1369 pub struct RdWrn(pub u8);
1370 impl RdWrn {
1371 #[doc = "Master requests a write transfer"]
1372 pub const WRITE: Self = Self(0);
1373 #[doc = "Master requests a read transfer"]
1374 pub const READ: Self = Self(0x01);
1375 }
1376 #[repr(transparent)]
1377 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
1378 pub struct Pecerr(pub u8);
1379 impl Pecerr {
1380 #[doc = "Received PEC does match with PEC register"]
1381 pub const MATCH: Self = Self(0);
1382 #[doc = "Received PEC does not match with PEC register"]
1383 pub const NOMATCH: Self = Self(0x01);
1384 }
1385 #[repr(transparent)]
1386 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
1387 pub struct Oamsk(pub u8);
1388 impl Oamsk {
1389 #[doc = "No mask"]
1390 pub const NOMASK: Self = Self(0);
1391 #[doc = "OA2[1]
1392is masked and don’t care. Only OA2[7:2]
1393are compared"]
1394 pub const MASK1: Self = Self(0x01);
1395 #[doc = "OA2[2:1]
1396are masked and don’t care. Only OA2[7:3]
1397are compared"]
1398 pub const MASK2: Self = Self(0x02);
1399 #[doc = "OA2[3:1]
1400are masked and don’t care. Only OA2[7:4]
1401are compared"]
1402 pub const MASK3: Self = Self(0x03);
1403 #[doc = "OA2[4:1]
1404are masked and don’t care. Only OA2[7:5]
1405are compared"]
1406 pub const MASK4: Self = Self(0x04);
1407 #[doc = "OA2[5:1]
1408are masked and don’t care. Only OA2[7:6]
1409are compared"]
1410 pub const MASK5: Self = Self(0x05);
1411 #[doc = "OA2[6:1]
1412are masked and don’t care. Only OA2[7]
1413is compared."]
1414 pub const MASK6: Self = Self(0x06);
1415 #[doc = "OA2[7:1]
1416are masked and don’t care. No comparison is done, and all (except reserved) 7-bit received addresses are acknowledged"]
1417 pub const MASK7: Self = Self(0x07);
1418 }
1419 #[repr(transparent)]
1420 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
1421 pub struct Dnf(pub u8);
1422 impl Dnf {
1423 #[doc = "Digital filter disabled"]
1424 pub const NOFILTER: Self = Self(0);
1425 #[doc = "Digital filter enabled and filtering capability up to 1 tI2CCLK"]
1426 pub const FILTER1: Self = Self(0x01);
1427 #[doc = "Digital filter enabled and filtering capability up to 2 tI2CCLK"]
1428 pub const FILTER2: Self = Self(0x02);
1429 #[doc = "Digital filter enabled and filtering capability up to 3 tI2CCLK"]
1430 pub const FILTER3: Self = Self(0x03);
1431 #[doc = "Digital filter enabled and filtering capability up to 4 tI2CCLK"]
1432 pub const FILTER4: Self = Self(0x04);
1433 #[doc = "Digital filter enabled and filtering capability up to 5 tI2CCLK"]
1434 pub const FILTER5: Self = Self(0x05);
1435 #[doc = "Digital filter enabled and filtering capability up to 6 tI2CCLK"]
1436 pub const FILTER6: Self = Self(0x06);
1437 #[doc = "Digital filter enabled and filtering capability up to 7 tI2CCLK"]
1438 pub const FILTER7: Self = Self(0x07);
1439 #[doc = "Digital filter enabled and filtering capability up to 8 tI2CCLK"]
1440 pub const FILTER8: Self = Self(0x08);
1441 #[doc = "Digital filter enabled and filtering capability up to 9 tI2CCLK"]
1442 pub const FILTER9: Self = Self(0x09);
1443 #[doc = "Digital filter enabled and filtering capability up to 10 tI2CCLK"]
1444 pub const FILTER10: Self = Self(0x0a);
1445 #[doc = "Digital filter enabled and filtering capability up to 11 tI2CCLK"]
1446 pub const FILTER11: Self = Self(0x0b);
1447 #[doc = "Digital filter enabled and filtering capability up to 12 tI2CCLK"]
1448 pub const FILTER12: Self = Self(0x0c);
1449 #[doc = "Digital filter enabled and filtering capability up to 13 tI2CCLK"]
1450 pub const FILTER13: Self = Self(0x0d);
1451 #[doc = "Digital filter enabled and filtering capability up to 14 tI2CCLK"]
1452 pub const FILTER14: Self = Self(0x0e);
1453 #[doc = "Digital filter enabled and filtering capability up to 15 tI2CCLK"]
1454 pub const FILTER15: Self = Self(0x0f);
1455 }
1456 #[repr(transparent)]
1457 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
1458 pub struct Dir(pub u8);
1459 impl Dir {
1460 #[doc = "Write transfer, slave enters receiver mode"]
1461 pub const WRITE: Self = Self(0);
1462 #[doc = "Read transfer, slave enters transmitter mode"]
1463 pub const READ: Self = Self(0x01);
1464 }
1465 #[repr(transparent)]
1466 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
1467 pub struct Headr(pub u8);
1468 impl Headr {
1469 #[doc = "The master sends the complete 10 bit slave address read sequence"]
1470 pub const COMPLETE: Self = Self(0);
1471 #[doc = "The master only sends the 1st 7 bits of the 10 bit address, followed by Read direction"]
1472 pub const PARTIAL: Self = Self(0x01);
1473 }
1474 #[repr(transparent)]
1475 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
1476 pub struct Pecbyte(pub u8);
1477 impl Pecbyte {
1478 #[doc = "No PEC transfer"]
1479 pub const NOPEC: Self = Self(0);
1480 #[doc = "PEC transmission/reception is requested"]
1481 pub const PEC: Self = Self(0x01);
1482 }
1483 #[repr(transparent)]
1484 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
1485 pub struct Oamode(pub u8);
1486 impl Oamode {
1487 #[doc = "Own address 1 is a 7-bit address"]
1488 pub const BIT7: Self = Self(0);
1489 #[doc = "Own address 1 is a 10-bit address"]
1490 pub const BIT10: Self = Self(0x01);
1491 }
1492 #[repr(transparent)]
1493 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
1494 pub struct Stop(pub u8);
1495 impl Stop {
1496 #[doc = "No Stop generation"]
1497 pub const NOSTOP: Self = Self(0);
1498 #[doc = "Stop generation after current byte transfer"]
1499 pub const STOP: Self = Self(0x01);
1500 }
1501 #[repr(transparent)]
1502 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
1503 pub struct Autoend(pub u8);
1504 impl Autoend {
1505 #[doc = "Software end mode: TC flag is set when NBYTES data are transferred, stretching SCL low"]
1506 pub const SOFTWARE: Self = Self(0);
1507 #[doc = "Automatic end mode: a STOP condition is automatically sent when NBYTES data are transferred"]
1508 pub const AUTOMATIC: Self = Self(0x01);
1509 }
1510 #[repr(transparent)]
1511 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
1512 pub struct Add(pub u8);
1513 impl Add {
1514 #[doc = "The master operates in 7-bit addressing mode"]
1515 pub const BIT7: Self = Self(0);
1516 #[doc = "The master operates in 10-bit addressing mode"]
1517 pub const BIT10: Self = Self(0x01);
1518 }
1519 #[repr(transparent)]
1520 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
1521 pub struct Reload(pub u8);
1522 impl Reload {
1523 #[doc = "The transfer is completed after the NBYTES data transfer (STOP or RESTART will follow)"]
1524 pub const COMPLETED: Self = Self(0);
1525 #[doc = "The transfer is not completed after the NBYTES data transfer (NBYTES will be reloaded)"]
1526 pub const NOTCOMPLETED: Self = Self(0x01);
1527 }
1528 #[repr(transparent)]
1529 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
1530 pub struct Nack(pub u8);
1531 impl Nack {
1532 #[doc = "an ACK is sent after current received byte"]
1533 pub const ACK: Self = Self(0);
1534 #[doc = "a NACK is sent after current received byte"]
1535 pub const NACK: Self = Self(0x01);
1536 }
1537 #[repr(transparent)]
1538 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
1539 pub struct Start(pub u8);
1540 impl Start {
1541 #[doc = "No Start generation"]
1542 pub const NOSTART: Self = Self(0);
1543 #[doc = "Restart/Start generation"]
1544 pub const START: Self = Self(0x01);
1545 }
1546 }
1547 pub mod regs {
1548 use crate::generic::*;
1549 #[doc = "Own address register 2"]
1550 #[repr(transparent)]
1551 #[derive(Copy, Clone, Eq, PartialEq)]
1552 pub struct Oar2(pub u32);
1553 impl Oar2 {
1554 #[doc = "Interface address"]
1555 pub const fn oa2(&self) -> u8 {
1556 let val = (self.0 >> 1usize) & 0x7f;
1557 val as u8
1558 }
1559 #[doc = "Interface address"]
1560 pub fn set_oa2(&mut self, val: u8) {
1561 self.0 = (self.0 & !(0x7f << 1usize)) | (((val as u32) & 0x7f) << 1usize);
1562 }
1563 #[doc = "Own Address 2 masks"]
1564 pub const fn oa2msk(&self) -> super::vals::Oamsk {
1565 let val = (self.0 >> 8usize) & 0x07;
1566 super::vals::Oamsk(val as u8)
1567 }
1568 #[doc = "Own Address 2 masks"]
1569 pub fn set_oa2msk(&mut self, val: super::vals::Oamsk) {
1570 self.0 = (self.0 & !(0x07 << 8usize)) | (((val.0 as u32) & 0x07) << 8usize);
1571 } 766 }
1572 #[doc = "Own Address 2 enable"] 767 #[doc = "USART5 reset"]
1573 pub const fn oa2en(&self) -> bool { 768 pub const fn usart5rst(&self) -> bool {
1574 let val = (self.0 >> 15usize) & 0x01; 769 let val = (self.0 >> 20usize) & 0x01;
1575 val != 0 770 val != 0
1576 } 771 }
1577 #[doc = "Own Address 2 enable"] 772 #[doc = "USART5 reset"]
1578 pub fn set_oa2en(&mut self, val: bool) { 773 pub fn set_usart5rst(&mut self, val: bool) {
1579 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize); 774 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize);
1580 }
1581 }
1582 impl Default for Oar2 {
1583 fn default() -> Oar2 {
1584 Oar2(0)
1585 } 775 }
1586 } 776 #[doc = "I2C1 reset"]
1587 #[doc = "Control register 1"] 777 pub const fn i2c1rst(&self) -> bool {
1588 #[repr(transparent)] 778 let val = (self.0 >> 21usize) & 0x01;
1589 #[derive(Copy, Clone, Eq, PartialEq)]
1590 pub struct Cr1(pub u32);
1591 impl Cr1 {
1592 #[doc = "Peripheral enable"]
1593 pub const fn pe(&self) -> bool {
1594 let val = (self.0 >> 0usize) & 0x01;
1595 val != 0 779 val != 0
1596 } 780 }
1597 #[doc = "Peripheral enable"] 781 #[doc = "I2C1 reset"]
1598 pub fn set_pe(&mut self, val: bool) { 782 pub fn set_i2c1rst(&mut self, val: bool) {
1599 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 783 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
1600 } 784 }
1601 #[doc = "TX Interrupt enable"] 785 #[doc = "I2C2 reset"]
1602 pub const fn txie(&self) -> bool { 786 pub const fn i2c2rst(&self) -> bool {
1603 let val = (self.0 >> 1usize) & 0x01; 787 let val = (self.0 >> 22usize) & 0x01;
1604 val != 0 788 val != 0
1605 } 789 }
1606 #[doc = "TX Interrupt enable"] 790 #[doc = "I2C2 reset"]
1607 pub fn set_txie(&mut self, val: bool) { 791 pub fn set_i2c2rst(&mut self, val: bool) {
1608 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 792 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
1609 } 793 }
1610 #[doc = "RX Interrupt enable"] 794 #[doc = "USB reset"]
1611 pub const fn rxie(&self) -> bool { 795 pub const fn usbrst(&self) -> bool {
1612 let val = (self.0 >> 2usize) & 0x01; 796 let val = (self.0 >> 23usize) & 0x01;
1613 val != 0 797 val != 0
1614 } 798 }
1615 #[doc = "RX Interrupt enable"] 799 #[doc = "USB reset"]
1616 pub fn set_rxie(&mut self, val: bool) { 800 pub fn set_usbrst(&mut self, val: bool) {
1617 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 801 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
1618 } 802 }
1619 #[doc = "Address match interrupt enable (slave only)"] 803 #[doc = "Clock recovery system reset"]
1620 pub const fn addrie(&self) -> bool { 804 pub const fn crsrst(&self) -> bool {
1621 let val = (self.0 >> 3usize) & 0x01; 805 let val = (self.0 >> 27usize) & 0x01;
1622 val != 0 806 val != 0
1623 } 807 }
1624 #[doc = "Address match interrupt enable (slave only)"] 808 #[doc = "Clock recovery system reset"]
1625 pub fn set_addrie(&mut self, val: bool) { 809 pub fn set_crsrst(&mut self, val: bool) {
1626 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize); 810 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize);
1627 } 811 }
1628 #[doc = "Not acknowledge received interrupt enable"] 812 #[doc = "Power interface reset"]
1629 pub const fn nackie(&self) -> bool { 813 pub const fn pwrrst(&self) -> bool {
1630 let val = (self.0 >> 4usize) & 0x01; 814 let val = (self.0 >> 28usize) & 0x01;
1631 val != 0 815 val != 0
1632 } 816 }
1633 #[doc = "Not acknowledge received interrupt enable"] 817 #[doc = "Power interface reset"]
1634 pub fn set_nackie(&mut self, val: bool) { 818 pub fn set_pwrrst(&mut self, val: bool) {
1635 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 819 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize);
1636 } 820 }
1637 #[doc = "STOP detection Interrupt enable"] 821 #[doc = "DAC interface reset"]
1638 pub const fn stopie(&self) -> bool { 822 pub const fn dacrst(&self) -> bool {
1639 let val = (self.0 >> 5usize) & 0x01; 823 let val = (self.0 >> 29usize) & 0x01;
1640 val != 0 824 val != 0
1641 } 825 }
1642 #[doc = "STOP detection Interrupt enable"] 826 #[doc = "DAC interface reset"]
1643 pub fn set_stopie(&mut self, val: bool) { 827 pub fn set_dacrst(&mut self, val: bool) {
1644 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 828 self.0 = (self.0 & !(0x01 << 29usize)) | (((val as u32) & 0x01) << 29usize);
1645 } 829 }
1646 #[doc = "Transfer Complete interrupt enable"] 830 #[doc = "I2C3 reset"]
1647 pub const fn tcie(&self) -> bool { 831 pub const fn i2c3rst(&self) -> bool {
1648 let val = (self.0 >> 6usize) & 0x01; 832 let val = (self.0 >> 30usize) & 0x01;
1649 val != 0 833 val != 0
1650 } 834 }
1651 #[doc = "Transfer Complete interrupt enable"] 835 #[doc = "I2C3 reset"]
1652 pub fn set_tcie(&mut self, val: bool) { 836 pub fn set_i2c3rst(&mut self, val: bool) {
1653 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 837 self.0 = (self.0 & !(0x01 << 30usize)) | (((val as u32) & 0x01) << 30usize);
1654 } 838 }
1655 #[doc = "Error interrupts enable"] 839 #[doc = "Low power timer reset"]
1656 pub const fn errie(&self) -> bool { 840 pub const fn lptim1rst(&self) -> bool {
1657 let val = (self.0 >> 7usize) & 0x01; 841 let val = (self.0 >> 31usize) & 0x01;
1658 val != 0 842 val != 0
1659 } 843 }
1660 #[doc = "Error interrupts enable"] 844 #[doc = "Low power timer reset"]
1661 pub fn set_errie(&mut self, val: bool) { 845 pub fn set_lptim1rst(&mut self, val: bool) {
1662 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 846 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize);
1663 }
1664 #[doc = "Digital noise filter"]
1665 pub const fn dnf(&self) -> super::vals::Dnf {
1666 let val = (self.0 >> 8usize) & 0x0f;
1667 super::vals::Dnf(val as u8)
1668 } 847 }
1669 #[doc = "Digital noise filter"] 848 }
1670 pub fn set_dnf(&mut self, val: super::vals::Dnf) { 849 impl Default for Apb1rstr {
1671 self.0 = (self.0 & !(0x0f << 8usize)) | (((val.0 as u32) & 0x0f) << 8usize); 850 fn default() -> Apb1rstr {
851 Apb1rstr(0)
1672 } 852 }
1673 #[doc = "Analog noise filter OFF"] 853 }
1674 pub const fn anfoff(&self) -> bool { 854 #[doc = "GPIO clock enable register"]
1675 let val = (self.0 >> 12usize) & 0x01; 855 #[repr(transparent)]
1676 val != 0 856 #[derive(Copy, Clone, Eq, PartialEq)]
857 pub struct Iopenr(pub u32);
858 impl Iopenr {
859 #[doc = "IO port A clock enable bit"]
860 pub const fn iopaen(&self) -> super::vals::Iophen {
861 let val = (self.0 >> 0usize) & 0x01;
862 super::vals::Iophen(val as u8)
1677 } 863 }
1678 #[doc = "Analog noise filter OFF"] 864 #[doc = "IO port A clock enable bit"]
1679 pub fn set_anfoff(&mut self, val: bool) { 865 pub fn set_iopaen(&mut self, val: super::vals::Iophen) {
1680 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize); 866 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
1681 } 867 }
1682 #[doc = "DMA transmission requests enable"] 868 #[doc = "IO port B clock enable bit"]
1683 pub const fn txdmaen(&self) -> bool { 869 pub const fn iopben(&self) -> super::vals::Iophen {
1684 let val = (self.0 >> 14usize) & 0x01; 870 let val = (self.0 >> 1usize) & 0x01;
1685 val != 0 871 super::vals::Iophen(val as u8)
1686 } 872 }
1687 #[doc = "DMA transmission requests enable"] 873 #[doc = "IO port B clock enable bit"]
1688 pub fn set_txdmaen(&mut self, val: bool) { 874 pub fn set_iopben(&mut self, val: super::vals::Iophen) {
1689 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize); 875 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
1690 } 876 }
1691 #[doc = "DMA reception requests enable"] 877 #[doc = "IO port A clock enable bit"]
1692 pub const fn rxdmaen(&self) -> bool { 878 pub const fn iopcen(&self) -> super::vals::Iophen {
1693 let val = (self.0 >> 15usize) & 0x01; 879 let val = (self.0 >> 2usize) & 0x01;
1694 val != 0 880 super::vals::Iophen(val as u8)
1695 } 881 }
1696 #[doc = "DMA reception requests enable"] 882 #[doc = "IO port A clock enable bit"]
1697 pub fn set_rxdmaen(&mut self, val: bool) { 883 pub fn set_iopcen(&mut self, val: super::vals::Iophen) {
1698 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize); 884 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
1699 } 885 }
1700 #[doc = "Slave byte control"] 886 #[doc = "I/O port D clock enable bit"]
1701 pub const fn sbc(&self) -> bool { 887 pub const fn iopden(&self) -> super::vals::Iophen {
1702 let val = (self.0 >> 16usize) & 0x01; 888 let val = (self.0 >> 3usize) & 0x01;
1703 val != 0 889 super::vals::Iophen(val as u8)
1704 } 890 }
1705 #[doc = "Slave byte control"] 891 #[doc = "I/O port D clock enable bit"]
1706 pub fn set_sbc(&mut self, val: bool) { 892 pub fn set_iopden(&mut self, val: super::vals::Iophen) {
1707 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 893 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
1708 } 894 }
1709 #[doc = "Clock stretching disable"] 895 #[doc = "I/O port E clock enable bit"]
1710 pub const fn nostretch(&self) -> bool { 896 pub const fn iopeen(&self) -> super::vals::Iophen {
1711 let val = (self.0 >> 17usize) & 0x01; 897 let val = (self.0 >> 4usize) & 0x01;
1712 val != 0 898 super::vals::Iophen(val as u8)
1713 } 899 }
1714 #[doc = "Clock stretching disable"] 900 #[doc = "I/O port E clock enable bit"]
1715 pub fn set_nostretch(&mut self, val: bool) { 901 pub fn set_iopeen(&mut self, val: super::vals::Iophen) {
1716 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize); 902 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
1717 } 903 }
1718 #[doc = "General call enable"] 904 #[doc = "I/O port H clock enable bit"]
1719 pub const fn gcen(&self) -> bool { 905 pub const fn iophen(&self) -> super::vals::Iophen {
1720 let val = (self.0 >> 19usize) & 0x01; 906 let val = (self.0 >> 7usize) & 0x01;
1721 val != 0 907 super::vals::Iophen(val as u8)
1722 } 908 }
1723 #[doc = "General call enable"] 909 #[doc = "I/O port H clock enable bit"]
1724 pub fn set_gcen(&mut self, val: bool) { 910 pub fn set_iophen(&mut self, val: super::vals::Iophen) {
1725 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize); 911 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
1726 } 912 }
1727 #[doc = "SMBus Host address enable"] 913 }
1728 pub const fn smbhen(&self) -> bool { 914 impl Default for Iopenr {
1729 let val = (self.0 >> 20usize) & 0x01; 915 fn default() -> Iopenr {
1730 val != 0 916 Iopenr(0)
1731 } 917 }
1732 #[doc = "SMBus Host address enable"] 918 }
1733 pub fn set_smbhen(&mut self, val: bool) { 919 #[doc = "Clock configuration register"]
1734 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize); 920 #[repr(transparent)]
921 #[derive(Copy, Clone, Eq, PartialEq)]
922 pub struct Ccipr(pub u32);
923 impl Ccipr {
924 #[doc = "USART1 clock source selection bits"]
925 pub const fn usart1sel(&self) -> super::vals::Lpuartsel {
926 let val = (self.0 >> 0usize) & 0x03;
927 super::vals::Lpuartsel(val as u8)
1735 } 928 }
1736 #[doc = "SMBus Device Default address enable"] 929 #[doc = "USART1 clock source selection bits"]
1737 pub const fn smbden(&self) -> bool { 930 pub fn set_usart1sel(&mut self, val: super::vals::Lpuartsel) {
1738 let val = (self.0 >> 21usize) & 0x01; 931 self.0 = (self.0 & !(0x03 << 0usize)) | (((val.0 as u32) & 0x03) << 0usize);
1739 val != 0
1740 } 932 }
1741 #[doc = "SMBus Device Default address enable"] 933 #[doc = "USART2 clock source selection bits"]
1742 pub fn set_smbden(&mut self, val: bool) { 934 pub const fn usart2sel(&self) -> super::vals::Lpuartsel {
1743 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize); 935 let val = (self.0 >> 2usize) & 0x03;
936 super::vals::Lpuartsel(val as u8)
1744 } 937 }
1745 #[doc = "SMBUS alert enable"] 938 #[doc = "USART2 clock source selection bits"]
1746 pub const fn alerten(&self) -> bool { 939 pub fn set_usart2sel(&mut self, val: super::vals::Lpuartsel) {
1747 let val = (self.0 >> 22usize) & 0x01; 940 self.0 = (self.0 & !(0x03 << 2usize)) | (((val.0 as u32) & 0x03) << 2usize);
1748 val != 0
1749 } 941 }
1750 #[doc = "SMBUS alert enable"] 942 #[doc = "LPUART1 clock source selection bits"]
1751 pub fn set_alerten(&mut self, val: bool) { 943 pub const fn lpuart1sel(&self) -> super::vals::Lpuartsel {
1752 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize); 944 let val = (self.0 >> 10usize) & 0x03;
945 super::vals::Lpuartsel(val as u8)
1753 } 946 }
1754 #[doc = "PEC enable"] 947 #[doc = "LPUART1 clock source selection bits"]
1755 pub const fn pecen(&self) -> bool { 948 pub fn set_lpuart1sel(&mut self, val: super::vals::Lpuartsel) {
1756 let val = (self.0 >> 23usize) & 0x01; 949 self.0 = (self.0 & !(0x03 << 10usize)) | (((val.0 as u32) & 0x03) << 10usize);
1757 val != 0
1758 } 950 }
1759 #[doc = "PEC enable"] 951 #[doc = "I2C1 clock source selection bits"]
1760 pub fn set_pecen(&mut self, val: bool) { 952 pub const fn i2c1sel(&self) -> super::vals::Icsel {
1761 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize); 953 let val = (self.0 >> 12usize) & 0x03;
954 super::vals::Icsel(val as u8)
1762 } 955 }
1763 } 956 #[doc = "I2C1 clock source selection bits"]
1764 impl Default for Cr1 { 957 pub fn set_i2c1sel(&mut self, val: super::vals::Icsel) {
1765 fn default() -> Cr1 { 958 self.0 = (self.0 & !(0x03 << 12usize)) | (((val.0 as u32) & 0x03) << 12usize);
1766 Cr1(0)
1767 } 959 }
1768 } 960 #[doc = "I2C3 clock source selection bits"]
1769 #[doc = "Own address register 1"] 961 pub const fn i2c3sel(&self) -> super::vals::Icsel {
1770 #[repr(transparent)] 962 let val = (self.0 >> 16usize) & 0x03;
1771 #[derive(Copy, Clone, Eq, PartialEq)] 963 super::vals::Icsel(val as u8)
1772 pub struct Oar1(pub u32);
1773 impl Oar1 {
1774 #[doc = "Interface address"]
1775 pub const fn oa1(&self) -> u16 {
1776 let val = (self.0 >> 0usize) & 0x03ff;
1777 val as u16
1778 } 964 }
1779 #[doc = "Interface address"] 965 #[doc = "I2C3 clock source selection bits"]
1780 pub fn set_oa1(&mut self, val: u16) { 966 pub fn set_i2c3sel(&mut self, val: super::vals::Icsel) {
1781 self.0 = (self.0 & !(0x03ff << 0usize)) | (((val as u32) & 0x03ff) << 0usize); 967 self.0 = (self.0 & !(0x03 << 16usize)) | (((val.0 as u32) & 0x03) << 16usize);
1782 } 968 }
1783 #[doc = "Own Address 1 10-bit mode"] 969 #[doc = "Low Power Timer clock source selection bits"]
1784 pub const fn oa1mode(&self) -> super::vals::Oamode { 970 pub const fn lptim1sel(&self) -> super::vals::Lptimsel {
1785 let val = (self.0 >> 10usize) & 0x01; 971 let val = (self.0 >> 18usize) & 0x03;
1786 super::vals::Oamode(val as u8) 972 super::vals::Lptimsel(val as u8)
1787 } 973 }
1788 #[doc = "Own Address 1 10-bit mode"] 974 #[doc = "Low Power Timer clock source selection bits"]
1789 pub fn set_oa1mode(&mut self, val: super::vals::Oamode) { 975 pub fn set_lptim1sel(&mut self, val: super::vals::Lptimsel) {
1790 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize); 976 self.0 = (self.0 & !(0x03 << 18usize)) | (((val.0 as u32) & 0x03) << 18usize);
1791 } 977 }
1792 #[doc = "Own Address 1 enable"] 978 #[doc = "48 MHz HSI48 clock source selection bit"]
1793 pub const fn oa1en(&self) -> bool { 979 pub const fn hsi48msel(&self) -> bool {
1794 let val = (self.0 >> 15usize) & 0x01; 980 let val = (self.0 >> 26usize) & 0x01;
1795 val != 0 981 val != 0
1796 } 982 }
1797 #[doc = "Own Address 1 enable"] 983 #[doc = "48 MHz HSI48 clock source selection bit"]
1798 pub fn set_oa1en(&mut self, val: bool) { 984 pub fn set_hsi48msel(&mut self, val: bool) {
1799 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize); 985 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
1800 } 986 }
1801 } 987 }
1802 impl Default for Oar1 { 988 impl Default for Ccipr {
1803 fn default() -> Oar1 { 989 fn default() -> Ccipr {
1804 Oar1(0) 990 Ccipr(0)
1805 } 991 }
1806 } 992 }
1807 #[doc = "PEC register"] 993 #[doc = "AHB peripheral clock enable register"]
1808 #[repr(transparent)] 994 #[repr(transparent)]
1809 #[derive(Copy, Clone, Eq, PartialEq)] 995 #[derive(Copy, Clone, Eq, PartialEq)]
1810 pub struct Pecr(pub u32); 996 pub struct Ahbenr(pub u32);
1811 impl Pecr { 997 impl Ahbenr {
1812 #[doc = "Packet error checking register"] 998 #[doc = "DMA clock enable bit"]
1813 pub const fn pec(&self) -> u8 { 999 pub const fn dmaen(&self) -> super::vals::Crypen {
1814 let val = (self.0 >> 0usize) & 0xff; 1000 let val = (self.0 >> 0usize) & 0x01;
1815 val as u8 1001 super::vals::Crypen(val as u8)
1816 }
1817 #[doc = "Packet error checking register"]
1818 pub fn set_pec(&mut self, val: u8) {
1819 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
1820 } 1002 }
1821 } 1003 #[doc = "DMA clock enable bit"]
1822 impl Default for Pecr { 1004 pub fn set_dmaen(&mut self, val: super::vals::Crypen) {
1823 fn default() -> Pecr { 1005 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
1824 Pecr(0)
1825 } 1006 }
1826 } 1007 #[doc = "NVM interface clock enable bit"]
1827 #[doc = "Status register 1"] 1008 pub const fn mifen(&self) -> super::vals::Crypen {
1828 #[repr(transparent)] 1009 let val = (self.0 >> 8usize) & 0x01;
1829 #[derive(Copy, Clone, Eq, PartialEq)] 1010 super::vals::Crypen(val as u8)
1830 pub struct Timeoutr(pub u32);
1831 impl Timeoutr {
1832 #[doc = "Bus timeout A"]
1833 pub const fn timeouta(&self) -> u16 {
1834 let val = (self.0 >> 0usize) & 0x0fff;
1835 val as u16
1836 } 1011 }
1837 #[doc = "Bus timeout A"] 1012 #[doc = "NVM interface clock enable bit"]
1838 pub fn set_timeouta(&mut self, val: u16) { 1013 pub fn set_mifen(&mut self, val: super::vals::Crypen) {
1839 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize); 1014 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
1840 } 1015 }
1841 #[doc = "Idle clock timeout detection"] 1016 #[doc = "CRC clock enable bit"]
1842 pub const fn tidle(&self) -> bool { 1017 pub const fn crcen(&self) -> super::vals::Crypen {
1843 let val = (self.0 >> 12usize) & 0x01; 1018 let val = (self.0 >> 12usize) & 0x01;
1844 val != 0 1019 super::vals::Crypen(val as u8)
1845 } 1020 }
1846 #[doc = "Idle clock timeout detection"] 1021 #[doc = "CRC clock enable bit"]
1847 pub fn set_tidle(&mut self, val: bool) { 1022 pub fn set_crcen(&mut self, val: super::vals::Crypen) {
1848 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize); 1023 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
1849 } 1024 }
1850 #[doc = "Clock timeout enable"] 1025 #[doc = "Touch Sensing clock enable bit"]
1851 pub const fn timouten(&self) -> bool { 1026 pub const fn touchen(&self) -> super::vals::Crypen {
1852 let val = (self.0 >> 15usize) & 0x01; 1027 let val = (self.0 >> 16usize) & 0x01;
1853 val != 0 1028 super::vals::Crypen(val as u8)
1854 } 1029 }
1855 #[doc = "Clock timeout enable"] 1030 #[doc = "Touch Sensing clock enable bit"]
1856 pub fn set_timouten(&mut self, val: bool) { 1031 pub fn set_touchen(&mut self, val: super::vals::Crypen) {
1857 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize); 1032 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
1858 } 1033 }
1859 #[doc = "Bus timeout B"] 1034 #[doc = "Random Number Generator clock enable bit"]
1860 pub const fn timeoutb(&self) -> u16 { 1035 pub const fn rngen(&self) -> super::vals::Crypen {
1861 let val = (self.0 >> 16usize) & 0x0fff; 1036 let val = (self.0 >> 20usize) & 0x01;
1862 val as u16 1037 super::vals::Crypen(val as u8)
1863 } 1038 }
1864 #[doc = "Bus timeout B"] 1039 #[doc = "Random Number Generator clock enable bit"]
1865 pub fn set_timeoutb(&mut self, val: u16) { 1040 pub fn set_rngen(&mut self, val: super::vals::Crypen) {
1866 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize); 1041 self.0 = (self.0 & !(0x01 << 20usize)) | (((val.0 as u32) & 0x01) << 20usize);
1867 } 1042 }
1868 #[doc = "Extended clock timeout enable"] 1043 #[doc = "Crypto clock enable bit"]
1869 pub const fn texten(&self) -> bool { 1044 pub const fn crypen(&self) -> super::vals::Crypen {
1870 let val = (self.0 >> 31usize) & 0x01; 1045 let val = (self.0 >> 24usize) & 0x01;
1871 val != 0 1046 super::vals::Crypen(val as u8)
1872 } 1047 }
1873 #[doc = "Extended clock timeout enable"] 1048 #[doc = "Crypto clock enable bit"]
1874 pub fn set_texten(&mut self, val: bool) { 1049 pub fn set_crypen(&mut self, val: super::vals::Crypen) {
1875 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize); 1050 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
1876 } 1051 }
1877 } 1052 }
1878 impl Default for Timeoutr { 1053 impl Default for Ahbenr {
1879 fn default() -> Timeoutr { 1054 fn default() -> Ahbenr {
1880 Timeoutr(0) 1055 Ahbenr(0)
1881 } 1056 }
1882 } 1057 }
1883 #[doc = "Control register 2"] 1058 #[doc = "Control and status register"]
1884 #[repr(transparent)] 1059 #[repr(transparent)]
1885 #[derive(Copy, Clone, Eq, PartialEq)] 1060 #[derive(Copy, Clone, Eq, PartialEq)]
1886 pub struct Cr2(pub u32); 1061 pub struct Csr(pub u32);
1887 impl Cr2 { 1062 impl Csr {
1888 #[doc = "Slave address bit (master mode)"] 1063 #[doc = "Internal low-speed oscillator enable"]
1889 pub const fn sadd(&self) -> u16 { 1064 pub const fn lsion(&self) -> super::vals::Csslseon {
1890 let val = (self.0 >> 0usize) & 0x03ff; 1065 let val = (self.0 >> 0usize) & 0x01;
1891 val as u16 1066 super::vals::Csslseon(val as u8)
1892 } 1067 }
1893 #[doc = "Slave address bit (master mode)"] 1068 #[doc = "Internal low-speed oscillator enable"]
1894 pub fn set_sadd(&mut self, val: u16) { 1069 pub fn set_lsion(&mut self, val: super::vals::Csslseon) {
1895 self.0 = (self.0 & !(0x03ff << 0usize)) | (((val as u32) & 0x03ff) << 0usize); 1070 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
1896 } 1071 }
1897 #[doc = "Transfer direction (master mode)"] 1072 #[doc = "Internal low-speed oscillator ready bit"]
1898 pub const fn rd_wrn(&self) -> super::vals::RdWrn { 1073 pub const fn lsirdy(&self) -> super::vals::Lserdy {
1899 let val = (self.0 >> 10usize) & 0x01; 1074 let val = (self.0 >> 1usize) & 0x01;
1900 super::vals::RdWrn(val as u8) 1075 super::vals::Lserdy(val as u8)
1901 } 1076 }
1902 #[doc = "Transfer direction (master mode)"] 1077 #[doc = "Internal low-speed oscillator ready bit"]
1903 pub fn set_rd_wrn(&mut self, val: super::vals::RdWrn) { 1078 pub fn set_lsirdy(&mut self, val: super::vals::Lserdy) {
1904 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize); 1079 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
1905 } 1080 }
1906 #[doc = "10-bit addressing mode (master mode)"] 1081 #[doc = "External low-speed oscillator enable bit"]
1907 pub const fn add10(&self) -> super::vals::Add { 1082 pub const fn lseon(&self) -> super::vals::Csslseon {
1908 let val = (self.0 >> 11usize) & 0x01; 1083 let val = (self.0 >> 8usize) & 0x01;
1909 super::vals::Add(val as u8) 1084 super::vals::Csslseon(val as u8)
1910 } 1085 }
1911 #[doc = "10-bit addressing mode (master mode)"] 1086 #[doc = "External low-speed oscillator enable bit"]
1912 pub fn set_add10(&mut self, val: super::vals::Add) { 1087 pub fn set_lseon(&mut self, val: super::vals::Csslseon) {
1913 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize); 1088 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
1914 } 1089 }
1915 #[doc = "10-bit address header only read direction (master receiver mode)"] 1090 #[doc = "External low-speed oscillator ready bit"]
1916 pub const fn head10r(&self) -> super::vals::Headr { 1091 pub const fn lserdy(&self) -> super::vals::Lserdy {
1917 let val = (self.0 >> 12usize) & 0x01; 1092 let val = (self.0 >> 9usize) & 0x01;
1918 super::vals::Headr(val as u8) 1093 super::vals::Lserdy(val as u8)
1919 } 1094 }
1920 #[doc = "10-bit address header only read direction (master receiver mode)"] 1095 #[doc = "External low-speed oscillator ready bit"]
1921 pub fn set_head10r(&mut self, val: super::vals::Headr) { 1096 pub fn set_lserdy(&mut self, val: super::vals::Lserdy) {
1922 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize); 1097 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
1923 } 1098 }
1924 #[doc = "Start generation"] 1099 #[doc = "External low-speed oscillator bypass bit"]
1925 pub const fn start(&self) -> super::vals::Start { 1100 pub const fn lsebyp(&self) -> super::vals::Lsebyp {
1101 let val = (self.0 >> 10usize) & 0x01;
1102 super::vals::Lsebyp(val as u8)
1103 }
1104 #[doc = "External low-speed oscillator bypass bit"]
1105 pub fn set_lsebyp(&mut self, val: super::vals::Lsebyp) {
1106 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
1107 }
1108 #[doc = "LSEDRV"]
1109 pub const fn lsedrv(&self) -> super::vals::Lsedrv {
1110 let val = (self.0 >> 11usize) & 0x03;
1111 super::vals::Lsedrv(val as u8)
1112 }
1113 #[doc = "LSEDRV"]
1114 pub fn set_lsedrv(&mut self, val: super::vals::Lsedrv) {
1115 self.0 = (self.0 & !(0x03 << 11usize)) | (((val.0 as u32) & 0x03) << 11usize);
1116 }
1117 #[doc = "CSSLSEON"]
1118 pub const fn csslseon(&self) -> super::vals::Csslseon {
1926 let val = (self.0 >> 13usize) & 0x01; 1119 let val = (self.0 >> 13usize) & 0x01;
1927 super::vals::Start(val as u8) 1120 super::vals::Csslseon(val as u8)
1928 } 1121 }
1929 #[doc = "Start generation"] 1122 #[doc = "CSSLSEON"]
1930 pub fn set_start(&mut self, val: super::vals::Start) { 1123 pub fn set_csslseon(&mut self, val: super::vals::Csslseon) {
1931 self.0 = (self.0 & !(0x01 << 13usize)) | (((val.0 as u32) & 0x01) << 13usize); 1124 self.0 = (self.0 & !(0x01 << 13usize)) | (((val.0 as u32) & 0x01) << 13usize);
1932 } 1125 }
1933 #[doc = "Stop generation (master mode)"] 1126 #[doc = "CSS on LSE failure detection flag"]
1934 pub const fn stop(&self) -> super::vals::Stop { 1127 pub const fn csslsed(&self) -> super::vals::Csslsed {
1935 let val = (self.0 >> 14usize) & 0x01; 1128 let val = (self.0 >> 14usize) & 0x01;
1936 super::vals::Stop(val as u8) 1129 super::vals::Csslsed(val as u8)
1937 } 1130 }
1938 #[doc = "Stop generation (master mode)"] 1131 #[doc = "CSS on LSE failure detection flag"]
1939 pub fn set_stop(&mut self, val: super::vals::Stop) { 1132 pub fn set_csslsed(&mut self, val: super::vals::Csslsed) {
1940 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 1133 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
1941 } 1134 }
1942 #[doc = "NACK generation (slave mode)"] 1135 #[doc = "RTC and LCD clock source selection bits"]
1943 pub const fn nack(&self) -> super::vals::Nack { 1136 pub const fn rtcsel(&self) -> super::vals::Rtcsel {
1944 let val = (self.0 >> 15usize) & 0x01; 1137 let val = (self.0 >> 16usize) & 0x03;
1945 super::vals::Nack(val as u8) 1138 super::vals::Rtcsel(val as u8)
1946 } 1139 }
1947 #[doc = "NACK generation (slave mode)"] 1140 #[doc = "RTC and LCD clock source selection bits"]
1948 pub fn set_nack(&mut self, val: super::vals::Nack) { 1141 pub fn set_rtcsel(&mut self, val: super::vals::Rtcsel) {
1949 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize); 1142 self.0 = (self.0 & !(0x03 << 16usize)) | (((val.0 as u32) & 0x03) << 16usize);
1950 } 1143 }
1951 #[doc = "Number of bytes"] 1144 #[doc = "RTC clock enable bit"]
1952 pub const fn nbytes(&self) -> u8 { 1145 pub const fn rtcen(&self) -> super::vals::Rtcen {
1953 let val = (self.0 >> 16usize) & 0xff; 1146 let val = (self.0 >> 18usize) & 0x01;
1954 val as u8 1147 super::vals::Rtcen(val as u8)
1955 } 1148 }
1956 #[doc = "Number of bytes"] 1149 #[doc = "RTC clock enable bit"]
1957 pub fn set_nbytes(&mut self, val: u8) { 1150 pub fn set_rtcen(&mut self, val: super::vals::Rtcen) {
1958 self.0 = (self.0 & !(0xff << 16usize)) | (((val as u32) & 0xff) << 16usize); 1151 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
1959 } 1152 }
1960 #[doc = "NBYTES reload mode"] 1153 #[doc = "RTC software reset bit"]
1961 pub const fn reload(&self) -> super::vals::Reload { 1154 pub const fn rtcrst(&self) -> bool {
1155 let val = (self.0 >> 19usize) & 0x01;
1156 val != 0
1157 }
1158 #[doc = "RTC software reset bit"]
1159 pub fn set_rtcrst(&mut self, val: bool) {
1160 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize);
1161 }
1162 #[doc = "Remove reset flag"]
1163 pub const fn rmvf(&self) -> bool {
1962 let val = (self.0 >> 24usize) & 0x01; 1164 let val = (self.0 >> 24usize) & 0x01;
1963 super::vals::Reload(val as u8) 1165 val != 0
1964 } 1166 }
1965 #[doc = "NBYTES reload mode"] 1167 #[doc = "Remove reset flag"]
1966 pub fn set_reload(&mut self, val: super::vals::Reload) { 1168 pub fn set_rmvf(&mut self, val: bool) {
1967 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize); 1169 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize);
1968 } 1170 }
1969 #[doc = "Automatic end mode (master mode)"] 1171 #[doc = "OBLRSTF"]
1970 pub const fn autoend(&self) -> super::vals::Autoend { 1172 pub const fn oblrstf(&self) -> bool {
1971 let val = (self.0 >> 25usize) & 0x01; 1173 let val = (self.0 >> 25usize) & 0x01;
1972 super::vals::Autoend(val as u8) 1174 val != 0
1973 } 1175 }
1974 #[doc = "Automatic end mode (master mode)"] 1176 #[doc = "OBLRSTF"]
1975 pub fn set_autoend(&mut self, val: super::vals::Autoend) { 1177 pub fn set_oblrstf(&mut self, val: bool) {
1976 self.0 = (self.0 & !(0x01 << 25usize)) | (((val.0 as u32) & 0x01) << 25usize); 1178 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize);
1977 } 1179 }
1978 #[doc = "Packet error checking byte"] 1180 #[doc = "PIN reset flag"]
1979 pub const fn pecbyte(&self) -> super::vals::Pecbyte { 1181 pub const fn pinrstf(&self) -> bool {
1980 let val = (self.0 >> 26usize) & 0x01; 1182 let val = (self.0 >> 26usize) & 0x01;
1981 super::vals::Pecbyte(val as u8) 1183 val != 0
1982 } 1184 }
1983 #[doc = "Packet error checking byte"] 1185 #[doc = "PIN reset flag"]
1984 pub fn set_pecbyte(&mut self, val: super::vals::Pecbyte) { 1186 pub fn set_pinrstf(&mut self, val: bool) {
1985 self.0 = (self.0 & !(0x01 << 26usize)) | (((val.0 as u32) & 0x01) << 26usize); 1187 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
1986 } 1188 }
1987 } 1189 #[doc = "POR/PDR reset flag"]
1988 impl Default for Cr2 { 1190 pub const fn porrstf(&self) -> bool {
1989 fn default() -> Cr2 { 1191 let val = (self.0 >> 27usize) & 0x01;
1990 Cr2(0) 1192 val != 0
1991 } 1193 }
1992 } 1194 #[doc = "POR/PDR reset flag"]
1993 #[doc = "Transmit data register"] 1195 pub fn set_porrstf(&mut self, val: bool) {
1994 #[repr(transparent)] 1196 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize);
1995 #[derive(Copy, Clone, Eq, PartialEq)]
1996 pub struct Txdr(pub u32);
1997 impl Txdr {
1998 #[doc = "8-bit transmit data"]
1999 pub const fn txdata(&self) -> u8 {
2000 let val = (self.0 >> 0usize) & 0xff;
2001 val as u8
2002 } 1197 }
2003 #[doc = "8-bit transmit data"] 1198 #[doc = "Software reset flag"]
2004 pub fn set_txdata(&mut self, val: u8) { 1199 pub const fn sftrstf(&self) -> bool {
2005 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize); 1200 let val = (self.0 >> 28usize) & 0x01;
1201 val != 0
1202 }
1203 #[doc = "Software reset flag"]
1204 pub fn set_sftrstf(&mut self, val: bool) {
1205 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize);
1206 }
1207 #[doc = "Independent watchdog reset flag"]
1208 pub const fn iwdgrstf(&self) -> bool {
1209 let val = (self.0 >> 29usize) & 0x01;
1210 val != 0
1211 }
1212 #[doc = "Independent watchdog reset flag"]
1213 pub fn set_iwdgrstf(&mut self, val: bool) {
1214 self.0 = (self.0 & !(0x01 << 29usize)) | (((val as u32) & 0x01) << 29usize);
1215 }
1216 #[doc = "Window watchdog reset flag"]
1217 pub const fn wwdgrstf(&self) -> bool {
1218 let val = (self.0 >> 30usize) & 0x01;
1219 val != 0
1220 }
1221 #[doc = "Window watchdog reset flag"]
1222 pub fn set_wwdgrstf(&mut self, val: bool) {
1223 self.0 = (self.0 & !(0x01 << 30usize)) | (((val as u32) & 0x01) << 30usize);
1224 }
1225 #[doc = "Low-power reset flag"]
1226 pub const fn lpwrrstf(&self) -> bool {
1227 let val = (self.0 >> 31usize) & 0x01;
1228 val != 0
1229 }
1230 #[doc = "Low-power reset flag"]
1231 pub fn set_lpwrrstf(&mut self, val: bool) {
1232 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize);
2006 } 1233 }
2007 } 1234 }
2008 impl Default for Txdr { 1235 impl Default for Csr {
2009 fn default() -> Txdr { 1236 fn default() -> Csr {
2010 Txdr(0) 1237 Csr(0)
2011 } 1238 }
2012 } 1239 }
2013 #[doc = "Interrupt and Status register"] 1240 #[doc = "Clock control register"]
2014 #[repr(transparent)] 1241 #[repr(transparent)]
2015 #[derive(Copy, Clone, Eq, PartialEq)] 1242 #[derive(Copy, Clone, Eq, PartialEq)]
2016 pub struct Isr(pub u32); 1243 pub struct Cr(pub u32);
2017 impl Isr { 1244 impl Cr {
2018 #[doc = "Transmit data register empty (transmitters)"] 1245 #[doc = "16 MHz high-speed internal clock enable"]
2019 pub const fn txe(&self) -> bool { 1246 pub const fn hsi16on(&self) -> super::vals::Pllon {
2020 let val = (self.0 >> 0usize) & 0x01; 1247 let val = (self.0 >> 0usize) & 0x01;
2021 val != 0 1248 super::vals::Pllon(val as u8)
2022 } 1249 }
2023 #[doc = "Transmit data register empty (transmitters)"] 1250 #[doc = "16 MHz high-speed internal clock enable"]
2024 pub fn set_txe(&mut self, val: bool) { 1251 pub fn set_hsi16on(&mut self, val: super::vals::Pllon) {
2025 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 1252 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
2026 } 1253 }
2027 #[doc = "Transmit interrupt status (transmitters)"] 1254 #[doc = "High-speed internal clock enable bit for some IP kernels"]
2028 pub const fn txis(&self) -> bool { 1255 pub const fn hsi16keron(&self) -> super::vals::Pllon {
2029 let val = (self.0 >> 1usize) & 0x01; 1256 let val = (self.0 >> 1usize) & 0x01;
2030 val != 0 1257 super::vals::Pllon(val as u8)
2031 } 1258 }
2032 #[doc = "Transmit interrupt status (transmitters)"] 1259 #[doc = "High-speed internal clock enable bit for some IP kernels"]
2033 pub fn set_txis(&mut self, val: bool) { 1260 pub fn set_hsi16keron(&mut self, val: super::vals::Pllon) {
2034 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 1261 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
2035 } 1262 }
2036 #[doc = "Receive data register not empty (receivers)"] 1263 #[doc = "Internal high-speed clock ready flag"]
2037 pub const fn rxne(&self) -> bool { 1264 pub const fn hsi16rdyf(&self) -> bool {
2038 let val = (self.0 >> 2usize) & 0x01; 1265 let val = (self.0 >> 2usize) & 0x01;
2039 val != 0 1266 val != 0
2040 } 1267 }
2041 #[doc = "Receive data register not empty (receivers)"] 1268 #[doc = "Internal high-speed clock ready flag"]
2042 pub fn set_rxne(&mut self, val: bool) { 1269 pub fn set_hsi16rdyf(&mut self, val: bool) {
2043 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 1270 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
2044 } 1271 }
2045 #[doc = "Address matched (slave mode)"] 1272 #[doc = "HSI16DIVEN"]
2046 pub const fn addr(&self) -> bool { 1273 pub const fn hsi16diven(&self) -> super::vals::Hsidiven {
2047 let val = (self.0 >> 3usize) & 0x01; 1274 let val = (self.0 >> 3usize) & 0x01;
2048 val != 0 1275 super::vals::Hsidiven(val as u8)
2049 } 1276 }
2050 #[doc = "Address matched (slave mode)"] 1277 #[doc = "HSI16DIVEN"]
2051 pub fn set_addr(&mut self, val: bool) { 1278 pub fn set_hsi16diven(&mut self, val: super::vals::Hsidiven) {
2052 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize); 1279 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
2053 } 1280 }
2054 #[doc = "Not acknowledge received flag"] 1281 #[doc = "HSI16DIVF"]
2055 pub const fn nackf(&self) -> bool { 1282 pub const fn hsi16divf(&self) -> bool {
2056 let val = (self.0 >> 4usize) & 0x01; 1283 let val = (self.0 >> 4usize) & 0x01;
2057 val != 0 1284 val != 0
2058 } 1285 }
2059 #[doc = "Not acknowledge received flag"] 1286 #[doc = "HSI16DIVF"]
2060 pub fn set_nackf(&mut self, val: bool) { 1287 pub fn set_hsi16divf(&mut self, val: bool) {
2061 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 1288 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
2062 } 1289 }
2063 #[doc = "Stop detection flag"] 1290 #[doc = "16 MHz high-speed internal clock output enable"]
2064 pub const fn stopf(&self) -> bool { 1291 pub const fn hsi16outen(&self) -> super::vals::Hsiouten {
2065 let val = (self.0 >> 5usize) & 0x01; 1292 let val = (self.0 >> 5usize) & 0x01;
2066 val != 0 1293 super::vals::Hsiouten(val as u8)
2067 }
2068 #[doc = "Stop detection flag"]
2069 pub fn set_stopf(&mut self, val: bool) {
2070 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
2071 }
2072 #[doc = "Transfer Complete (master mode)"]
2073 pub const fn tc(&self) -> bool {
2074 let val = (self.0 >> 6usize) & 0x01;
2075 val != 0
2076 }
2077 #[doc = "Transfer Complete (master mode)"]
2078 pub fn set_tc(&mut self, val: bool) {
2079 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
2080 }
2081 #[doc = "Transfer Complete Reload"]
2082 pub const fn tcr(&self) -> bool {
2083 let val = (self.0 >> 7usize) & 0x01;
2084 val != 0
2085 } 1294 }
2086 #[doc = "Transfer Complete Reload"] 1295 #[doc = "16 MHz high-speed internal clock output enable"]
2087 pub fn set_tcr(&mut self, val: bool) { 1296 pub fn set_hsi16outen(&mut self, val: super::vals::Hsiouten) {
2088 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 1297 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
2089 } 1298 }
2090 #[doc = "Bus error"] 1299 #[doc = "MSI clock enable bit"]
2091 pub const fn berr(&self) -> bool { 1300 pub const fn msion(&self) -> super::vals::Pllon {
2092 let val = (self.0 >> 8usize) & 0x01; 1301 let val = (self.0 >> 8usize) & 0x01;
2093 val != 0 1302 super::vals::Pllon(val as u8)
2094 } 1303 }
2095 #[doc = "Bus error"] 1304 #[doc = "MSI clock enable bit"]
2096 pub fn set_berr(&mut self, val: bool) { 1305 pub fn set_msion(&mut self, val: super::vals::Pllon) {
2097 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 1306 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
2098 } 1307 }
2099 #[doc = "Arbitration lost"] 1308 #[doc = "MSI clock ready flag"]
2100 pub const fn arlo(&self) -> bool { 1309 pub const fn msirdy(&self) -> bool {
2101 let val = (self.0 >> 9usize) & 0x01; 1310 let val = (self.0 >> 9usize) & 0x01;
2102 val != 0 1311 val != 0
2103 } 1312 }
2104 #[doc = "Arbitration lost"] 1313 #[doc = "MSI clock ready flag"]
2105 pub fn set_arlo(&mut self, val: bool) { 1314 pub fn set_msirdy(&mut self, val: bool) {
2106 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 1315 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
2107 } 1316 }
2108 #[doc = "Overrun/Underrun (slave mode)"] 1317 #[doc = "HSE clock enable bit"]
2109 pub const fn ovr(&self) -> bool { 1318 pub const fn hseon(&self) -> super::vals::Pllon {
2110 let val = (self.0 >> 10usize) & 0x01; 1319 let val = (self.0 >> 16usize) & 0x01;
2111 val != 0 1320 super::vals::Pllon(val as u8)
2112 } 1321 }
2113 #[doc = "Overrun/Underrun (slave mode)"] 1322 #[doc = "HSE clock enable bit"]
2114 pub fn set_ovr(&mut self, val: bool) { 1323 pub fn set_hseon(&mut self, val: super::vals::Pllon) {
2115 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize); 1324 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
2116 } 1325 }
2117 #[doc = "PEC Error in reception"] 1326 #[doc = "HSE clock ready flag"]
2118 pub const fn pecerr(&self) -> super::vals::Pecerr { 1327 pub const fn hserdy(&self) -> bool {
2119 let val = (self.0 >> 11usize) & 0x01; 1328 let val = (self.0 >> 17usize) & 0x01;
2120 super::vals::Pecerr(val as u8) 1329 val != 0
2121 } 1330 }
2122 #[doc = "PEC Error in reception"] 1331 #[doc = "HSE clock ready flag"]
2123 pub fn set_pecerr(&mut self, val: super::vals::Pecerr) { 1332 pub fn set_hserdy(&mut self, val: bool) {
2124 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize); 1333 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
2125 } 1334 }
2126 #[doc = "Timeout or t_low detection flag"] 1335 #[doc = "HSE clock bypass bit"]
2127 pub const fn timeout(&self) -> bool { 1336 pub const fn hsebyp(&self) -> super::vals::Hsebyp {
2128 let val = (self.0 >> 12usize) & 0x01; 1337 let val = (self.0 >> 18usize) & 0x01;
2129 val != 0 1338 super::vals::Hsebyp(val as u8)
2130 } 1339 }
2131 #[doc = "Timeout or t_low detection flag"] 1340 #[doc = "HSE clock bypass bit"]
2132 pub fn set_timeout(&mut self, val: bool) { 1341 pub fn set_hsebyp(&mut self, val: super::vals::Hsebyp) {
2133 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize); 1342 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
2134 } 1343 }
2135 #[doc = "SMBus alert"] 1344 #[doc = "Clock security system on HSE enable bit"]
2136 pub const fn alert(&self) -> bool { 1345 pub const fn csshseon(&self) -> super::vals::Pllon {
2137 let val = (self.0 >> 13usize) & 0x01; 1346 let val = (self.0 >> 19usize) & 0x01;
2138 val != 0 1347 super::vals::Pllon(val as u8)
2139 } 1348 }
2140 #[doc = "SMBus alert"] 1349 #[doc = "Clock security system on HSE enable bit"]
2141 pub fn set_alert(&mut self, val: bool) { 1350 pub fn set_csshseon(&mut self, val: super::vals::Pllon) {
2142 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize); 1351 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
2143 } 1352 }
2144 #[doc = "Bus busy"] 1353 #[doc = "TC/LCD prescaler"]
2145 pub const fn busy(&self) -> bool { 1354 pub const fn rtcpre(&self) -> super::vals::Rtcpre {
2146 let val = (self.0 >> 15usize) & 0x01; 1355 let val = (self.0 >> 20usize) & 0x03;
2147 val != 0 1356 super::vals::Rtcpre(val as u8)
2148 } 1357 }
2149 #[doc = "Bus busy"] 1358 #[doc = "TC/LCD prescaler"]
2150 pub fn set_busy(&mut self, val: bool) { 1359 pub fn set_rtcpre(&mut self, val: super::vals::Rtcpre) {
2151 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize); 1360 self.0 = (self.0 & !(0x03 << 20usize)) | (((val.0 as u32) & 0x03) << 20usize);
2152 } 1361 }
2153 #[doc = "Transfer direction (Slave mode)"] 1362 #[doc = "PLL enable bit"]
2154 pub const fn dir(&self) -> super::vals::Dir { 1363 pub const fn pllon(&self) -> super::vals::Pllon {
2155 let val = (self.0 >> 16usize) & 0x01; 1364 let val = (self.0 >> 24usize) & 0x01;
2156 super::vals::Dir(val as u8) 1365 super::vals::Pllon(val as u8)
2157 } 1366 }
2158 #[doc = "Transfer direction (Slave mode)"] 1367 #[doc = "PLL enable bit"]
2159 pub fn set_dir(&mut self, val: super::vals::Dir) { 1368 pub fn set_pllon(&mut self, val: super::vals::Pllon) {
2160 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize); 1369 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
2161 } 1370 }
2162 #[doc = "Address match code (Slave mode)"] 1371 #[doc = "PLL clock ready flag"]
2163 pub const fn addcode(&self) -> u8 { 1372 pub const fn pllrdy(&self) -> bool {
2164 let val = (self.0 >> 17usize) & 0x7f; 1373 let val = (self.0 >> 25usize) & 0x01;
2165 val as u8 1374 val != 0
2166 } 1375 }
2167 #[doc = "Address match code (Slave mode)"] 1376 #[doc = "PLL clock ready flag"]
2168 pub fn set_addcode(&mut self, val: u8) { 1377 pub fn set_pllrdy(&mut self, val: bool) {
2169 self.0 = (self.0 & !(0x7f << 17usize)) | (((val as u32) & 0x7f) << 17usize); 1378 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize);
2170 } 1379 }
2171 } 1380 }
2172 impl Default for Isr { 1381 impl Default for Cr {
2173 fn default() -> Isr { 1382 fn default() -> Cr {
2174 Isr(0) 1383 Cr(0)
2175 } 1384 }
2176 } 1385 }
2177 #[doc = "Interrupt clear register"] 1386 #[doc = "GPIO reset register"]
2178 #[repr(transparent)] 1387 #[repr(transparent)]
2179 #[derive(Copy, Clone, Eq, PartialEq)] 1388 #[derive(Copy, Clone, Eq, PartialEq)]
2180 pub struct Icr(pub u32); 1389 pub struct Ioprstr(pub u32);
2181 impl Icr { 1390 impl Ioprstr {
2182 #[doc = "Address Matched flag clear"] 1391 #[doc = "I/O port A reset"]
2183 pub const fn addrcf(&self) -> bool { 1392 pub const fn ioparst(&self) -> super::vals::Iophrst {
2184 let val = (self.0 >> 3usize) & 0x01; 1393 let val = (self.0 >> 0usize) & 0x01;
2185 val != 0 1394 super::vals::Iophrst(val as u8)
2186 } 1395 }
2187 #[doc = "Address Matched flag clear"] 1396 #[doc = "I/O port A reset"]
2188 pub fn set_addrcf(&mut self, val: bool) { 1397 pub fn set_ioparst(&mut self, val: super::vals::Iophrst) {
2189 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize); 1398 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
2190 } 1399 }
2191 #[doc = "Not Acknowledge flag clear"] 1400 #[doc = "I/O port B reset"]
2192 pub const fn nackcf(&self) -> bool { 1401 pub const fn iopbrst(&self) -> super::vals::Iophrst {
2193 let val = (self.0 >> 4usize) & 0x01; 1402 let val = (self.0 >> 1usize) & 0x01;
2194 val != 0 1403 super::vals::Iophrst(val as u8)
2195 } 1404 }
2196 #[doc = "Not Acknowledge flag clear"] 1405 #[doc = "I/O port B reset"]
2197 pub fn set_nackcf(&mut self, val: bool) { 1406 pub fn set_iopbrst(&mut self, val: super::vals::Iophrst) {
2198 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 1407 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
2199 } 1408 }
2200 #[doc = "Stop detection flag clear"] 1409 #[doc = "I/O port A reset"]
2201 pub const fn stopcf(&self) -> bool { 1410 pub const fn iopcrst(&self) -> super::vals::Iophrst {
2202 let val = (self.0 >> 5usize) & 0x01; 1411 let val = (self.0 >> 2usize) & 0x01;
2203 val != 0 1412 super::vals::Iophrst(val as u8)
2204 } 1413 }
2205 #[doc = "Stop detection flag clear"] 1414 #[doc = "I/O port A reset"]
2206 pub fn set_stopcf(&mut self, val: bool) { 1415 pub fn set_iopcrst(&mut self, val: super::vals::Iophrst) {
2207 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 1416 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
2208 } 1417 }
2209 #[doc = "Bus error flag clear"] 1418 #[doc = "I/O port D reset"]
2210 pub const fn berrcf(&self) -> bool { 1419 pub const fn iopdrst(&self) -> super::vals::Iophrst {
2211 let val = (self.0 >> 8usize) & 0x01; 1420 let val = (self.0 >> 3usize) & 0x01;
2212 val != 0 1421 super::vals::Iophrst(val as u8)
2213 } 1422 }
2214 #[doc = "Bus error flag clear"] 1423 #[doc = "I/O port D reset"]
2215 pub fn set_berrcf(&mut self, val: bool) { 1424 pub fn set_iopdrst(&mut self, val: super::vals::Iophrst) {
2216 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 1425 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
2217 } 1426 }
2218 #[doc = "Arbitration lost flag clear"] 1427 #[doc = "I/O port E reset"]
2219 pub const fn arlocf(&self) -> bool { 1428 pub const fn ioperst(&self) -> super::vals::Iophrst {
2220 let val = (self.0 >> 9usize) & 0x01; 1429 let val = (self.0 >> 4usize) & 0x01;
2221 val != 0 1430 super::vals::Iophrst(val as u8)
2222 } 1431 }
2223 #[doc = "Arbitration lost flag clear"] 1432 #[doc = "I/O port E reset"]
2224 pub fn set_arlocf(&mut self, val: bool) { 1433 pub fn set_ioperst(&mut self, val: super::vals::Iophrst) {
2225 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 1434 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
2226 } 1435 }
2227 #[doc = "Overrun/Underrun flag clear"] 1436 #[doc = "I/O port H reset"]
2228 pub const fn ovrcf(&self) -> bool { 1437 pub const fn iophrst(&self) -> super::vals::Iophrst {
2229 let val = (self.0 >> 10usize) & 0x01; 1438 let val = (self.0 >> 7usize) & 0x01;
2230 val != 0 1439 super::vals::Iophrst(val as u8)
2231 } 1440 }
2232 #[doc = "Overrun/Underrun flag clear"] 1441 #[doc = "I/O port H reset"]
2233 pub fn set_ovrcf(&mut self, val: bool) { 1442 pub fn set_iophrst(&mut self, val: super::vals::Iophrst) {
2234 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize); 1443 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
2235 } 1444 }
2236 #[doc = "PEC Error flag clear"] 1445 }
2237 pub const fn peccf(&self) -> bool { 1446 impl Default for Ioprstr {
2238 let val = (self.0 >> 11usize) & 0x01; 1447 fn default() -> Ioprstr {
2239 val != 0 1448 Ioprstr(0)
2240 } 1449 }
2241 #[doc = "PEC Error flag clear"] 1450 }
2242 pub fn set_peccf(&mut self, val: bool) { 1451 #[doc = "GPIO clock enable in sleep mode register"]
2243 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize); 1452 #[repr(transparent)]
1453 #[derive(Copy, Clone, Eq, PartialEq)]
1454 pub struct Iopsmen(pub u32);
1455 impl Iopsmen {
1456 #[doc = "IOPASMEN"]
1457 pub const fn iopasmen(&self) -> super::vals::Iophsmen {
1458 let val = (self.0 >> 0usize) & 0x01;
1459 super::vals::Iophsmen(val as u8)
2244 } 1460 }
2245 #[doc = "Timeout detection flag clear"] 1461 #[doc = "IOPASMEN"]
2246 pub const fn timoutcf(&self) -> bool { 1462 pub fn set_iopasmen(&mut self, val: super::vals::Iophsmen) {
2247 let val = (self.0 >> 12usize) & 0x01; 1463 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
2248 val != 0
2249 } 1464 }
2250 #[doc = "Timeout detection flag clear"] 1465 #[doc = "IOPBSMEN"]
2251 pub fn set_timoutcf(&mut self, val: bool) { 1466 pub const fn iopbsmen(&self) -> super::vals::Iophsmen {
2252 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize); 1467 let val = (self.0 >> 1usize) & 0x01;
1468 super::vals::Iophsmen(val as u8)
2253 } 1469 }
2254 #[doc = "Alert flag clear"] 1470 #[doc = "IOPBSMEN"]
2255 pub const fn alertcf(&self) -> bool { 1471 pub fn set_iopbsmen(&mut self, val: super::vals::Iophsmen) {
2256 let val = (self.0 >> 13usize) & 0x01; 1472 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
2257 val != 0
2258 } 1473 }
2259 #[doc = "Alert flag clear"] 1474 #[doc = "IOPCSMEN"]
2260 pub fn set_alertcf(&mut self, val: bool) { 1475 pub const fn iopcsmen(&self) -> super::vals::Iophsmen {
2261 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize); 1476 let val = (self.0 >> 2usize) & 0x01;
1477 super::vals::Iophsmen(val as u8)
2262 } 1478 }
2263 } 1479 #[doc = "IOPCSMEN"]
2264 impl Default for Icr { 1480 pub fn set_iopcsmen(&mut self, val: super::vals::Iophsmen) {
2265 fn default() -> Icr { 1481 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
2266 Icr(0)
2267 } 1482 }
2268 } 1483 #[doc = "IOPDSMEN"]
2269 #[doc = "Receive data register"] 1484 pub const fn iopdsmen(&self) -> super::vals::Iophsmen {
2270 #[repr(transparent)] 1485 let val = (self.0 >> 3usize) & 0x01;
2271 #[derive(Copy, Clone, Eq, PartialEq)] 1486 super::vals::Iophsmen(val as u8)
2272 pub struct Rxdr(pub u32);
2273 impl Rxdr {
2274 #[doc = "8-bit receive data"]
2275 pub const fn rxdata(&self) -> u8 {
2276 let val = (self.0 >> 0usize) & 0xff;
2277 val as u8
2278 } 1487 }
2279 #[doc = "8-bit receive data"] 1488 #[doc = "IOPDSMEN"]
2280 pub fn set_rxdata(&mut self, val: u8) { 1489 pub fn set_iopdsmen(&mut self, val: super::vals::Iophsmen) {
2281 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize); 1490 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
1491 }
1492 #[doc = "Port E clock enable during Sleep mode bit"]
1493 pub const fn iopesmen(&self) -> super::vals::Iophsmen {
1494 let val = (self.0 >> 4usize) & 0x01;
1495 super::vals::Iophsmen(val as u8)
1496 }
1497 #[doc = "Port E clock enable during Sleep mode bit"]
1498 pub fn set_iopesmen(&mut self, val: super::vals::Iophsmen) {
1499 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
1500 }
1501 #[doc = "IOPHSMEN"]
1502 pub const fn iophsmen(&self) -> super::vals::Iophsmen {
1503 let val = (self.0 >> 7usize) & 0x01;
1504 super::vals::Iophsmen(val as u8)
1505 }
1506 #[doc = "IOPHSMEN"]
1507 pub fn set_iophsmen(&mut self, val: super::vals::Iophsmen) {
1508 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
2282 } 1509 }
2283 } 1510 }
2284 impl Default for Rxdr { 1511 impl Default for Iopsmen {
2285 fn default() -> Rxdr { 1512 fn default() -> Iopsmen {
2286 Rxdr(0) 1513 Iopsmen(0)
2287 } 1514 }
2288 } 1515 }
2289 #[doc = "Timing register"] 1516 #[doc = "APB2 peripheral clock enable in sleep mode register"]
2290 #[repr(transparent)] 1517 #[repr(transparent)]
2291 #[derive(Copy, Clone, Eq, PartialEq)] 1518 #[derive(Copy, Clone, Eq, PartialEq)]
2292 pub struct Timingr(pub u32); 1519 pub struct Apb2smenr(pub u32);
2293 impl Timingr { 1520 impl Apb2smenr {
2294 #[doc = "SCL low period (master mode)"] 1521 #[doc = "System configuration controller clock enable during sleep mode bit"]
2295 pub const fn scll(&self) -> u8 { 1522 pub const fn syscfgsmen(&self) -> super::vals::Dbgsmen {
2296 let val = (self.0 >> 0usize) & 0xff; 1523 let val = (self.0 >> 0usize) & 0x01;
2297 val as u8 1524 super::vals::Dbgsmen(val as u8)
2298 } 1525 }
2299 #[doc = "SCL low period (master mode)"] 1526 #[doc = "System configuration controller clock enable during sleep mode bit"]
2300 pub fn set_scll(&mut self, val: u8) { 1527 pub fn set_syscfgsmen(&mut self, val: super::vals::Dbgsmen) {
2301 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize); 1528 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
2302 } 1529 }
2303 #[doc = "SCL high period (master mode)"] 1530 #[doc = "TIM21 timer clock enable during sleep mode bit"]
2304 pub const fn sclh(&self) -> u8 { 1531 pub const fn tim21smen(&self) -> super::vals::Dbgsmen {
2305 let val = (self.0 >> 8usize) & 0xff; 1532 let val = (self.0 >> 2usize) & 0x01;
2306 val as u8 1533 super::vals::Dbgsmen(val as u8)
2307 } 1534 }
2308 #[doc = "SCL high period (master mode)"] 1535 #[doc = "TIM21 timer clock enable during sleep mode bit"]
2309 pub fn set_sclh(&mut self, val: u8) { 1536 pub fn set_tim21smen(&mut self, val: super::vals::Dbgsmen) {
2310 self.0 = (self.0 & !(0xff << 8usize)) | (((val as u32) & 0xff) << 8usize); 1537 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
2311 } 1538 }
2312 #[doc = "Data hold time"] 1539 #[doc = "TIM22 timer clock enable during sleep mode bit"]
2313 pub const fn sdadel(&self) -> u8 { 1540 pub const fn tim22smen(&self) -> super::vals::Dbgsmen {
2314 let val = (self.0 >> 16usize) & 0x0f; 1541 let val = (self.0 >> 5usize) & 0x01;
2315 val as u8 1542 super::vals::Dbgsmen(val as u8)
2316 } 1543 }
2317 #[doc = "Data hold time"] 1544 #[doc = "TIM22 timer clock enable during sleep mode bit"]
2318 pub fn set_sdadel(&mut self, val: u8) { 1545 pub fn set_tim22smen(&mut self, val: super::vals::Dbgsmen) {
2319 self.0 = (self.0 & !(0x0f << 16usize)) | (((val as u32) & 0x0f) << 16usize); 1546 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
2320 } 1547 }
2321 #[doc = "Data setup time"] 1548 #[doc = "ADC clock enable during sleep mode bit"]
2322 pub const fn scldel(&self) -> u8 { 1549 pub const fn adcsmen(&self) -> super::vals::Dbgsmen {
2323 let val = (self.0 >> 20usize) & 0x0f; 1550 let val = (self.0 >> 9usize) & 0x01;
2324 val as u8 1551 super::vals::Dbgsmen(val as u8)
2325 } 1552 }
2326 #[doc = "Data setup time"] 1553 #[doc = "ADC clock enable during sleep mode bit"]
2327 pub fn set_scldel(&mut self, val: u8) { 1554 pub fn set_adcsmen(&mut self, val: super::vals::Dbgsmen) {
2328 self.0 = (self.0 & !(0x0f << 20usize)) | (((val as u32) & 0x0f) << 20usize); 1555 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
2329 } 1556 }
2330 #[doc = "Timing prescaler"] 1557 #[doc = "SPI1 clock enable during sleep mode bit"]
2331 pub const fn presc(&self) -> u8 { 1558 pub const fn spi1smen(&self) -> super::vals::Dbgsmen {
2332 let val = (self.0 >> 28usize) & 0x0f; 1559 let val = (self.0 >> 12usize) & 0x01;
2333 val as u8 1560 super::vals::Dbgsmen(val as u8)
2334 } 1561 }
2335 #[doc = "Timing prescaler"] 1562 #[doc = "SPI1 clock enable during sleep mode bit"]
2336 pub fn set_presc(&mut self, val: u8) { 1563 pub fn set_spi1smen(&mut self, val: super::vals::Dbgsmen) {
2337 self.0 = (self.0 & !(0x0f << 28usize)) | (((val as u32) & 0x0f) << 28usize); 1564 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
2338 } 1565 }
2339 } 1566 #[doc = "USART1 clock enable during sleep mode bit"]
2340 impl Default for Timingr { 1567 pub const fn usart1smen(&self) -> super::vals::Dbgsmen {
2341 fn default() -> Timingr { 1568 let val = (self.0 >> 14usize) & 0x01;
2342 Timingr(0) 1569 super::vals::Dbgsmen(val as u8)
2343 } 1570 }
2344 } 1571 #[doc = "USART1 clock enable during sleep mode bit"]
2345 } 1572 pub fn set_usart1smen(&mut self, val: super::vals::Dbgsmen) {
2346} 1573 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
2347pub mod exti_v1 {
2348 use crate::generic::*;
2349 #[doc = "External interrupt/event controller"]
2350 #[derive(Copy, Clone)]
2351 pub struct Exti(pub *mut u8);
2352 unsafe impl Send for Exti {}
2353 unsafe impl Sync for Exti {}
2354 impl Exti {
2355 #[doc = "Interrupt mask register (EXTI_IMR)"]
2356 pub fn imr(self) -> Reg<regs::Imr, RW> {
2357 unsafe { Reg::from_ptr(self.0.add(0usize)) }
2358 }
2359 #[doc = "Event mask register (EXTI_EMR)"]
2360 pub fn emr(self) -> Reg<regs::Emr, RW> {
2361 unsafe { Reg::from_ptr(self.0.add(4usize)) }
2362 }
2363 #[doc = "Rising Trigger selection register (EXTI_RTSR)"]
2364 pub fn rtsr(self) -> Reg<regs::Rtsr, RW> {
2365 unsafe { Reg::from_ptr(self.0.add(8usize)) }
2366 }
2367 #[doc = "Falling Trigger selection register (EXTI_FTSR)"]
2368 pub fn ftsr(self) -> Reg<regs::Ftsr, RW> {
2369 unsafe { Reg::from_ptr(self.0.add(12usize)) }
2370 }
2371 #[doc = "Software interrupt event register (EXTI_SWIER)"]
2372 pub fn swier(self) -> Reg<regs::Swier, RW> {
2373 unsafe { Reg::from_ptr(self.0.add(16usize)) }
2374 }
2375 #[doc = "Pending register (EXTI_PR)"]
2376 pub fn pr(self) -> Reg<regs::Pr, RW> {
2377 unsafe { Reg::from_ptr(self.0.add(20usize)) }
2378 }
2379 }
2380 pub mod regs {
2381 use crate::generic::*;
2382 #[doc = "Software interrupt event register (EXTI_SWIER)"]
2383 #[repr(transparent)]
2384 #[derive(Copy, Clone, Eq, PartialEq)]
2385 pub struct Swier(pub u32);
2386 impl Swier {
2387 #[doc = "Software Interrupt on line 0"]
2388 pub fn swier(&self, n: usize) -> bool {
2389 assert!(n < 23usize);
2390 let offs = 0usize + n * 1usize;
2391 let val = (self.0 >> offs) & 0x01;
2392 val != 0
2393 } 1574 }
2394 #[doc = "Software Interrupt on line 0"] 1575 #[doc = "DBG clock enable during sleep mode bit"]
2395 pub fn set_swier(&mut self, n: usize, val: bool) { 1576 pub const fn dbgsmen(&self) -> super::vals::Dbgsmen {
2396 assert!(n < 23usize); 1577 let val = (self.0 >> 22usize) & 0x01;
2397 let offs = 0usize + n * 1usize; 1578 super::vals::Dbgsmen(val as u8)
2398 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs); 1579 }
1580 #[doc = "DBG clock enable during sleep mode bit"]
1581 pub fn set_dbgsmen(&mut self, val: super::vals::Dbgsmen) {
1582 self.0 = (self.0 & !(0x01 << 22usize)) | (((val.0 as u32) & 0x01) << 22usize);
2399 } 1583 }
2400 } 1584 }
2401 impl Default for Swier { 1585 impl Default for Apb2smenr {
2402 fn default() -> Swier { 1586 fn default() -> Apb2smenr {
2403 Swier(0) 1587 Apb2smenr(0)
2404 } 1588 }
2405 } 1589 }
2406 #[doc = "Rising Trigger selection register (EXTI_RTSR)"] 1590 #[doc = "AHB peripheral clock enable in sleep mode register"]
2407 #[repr(transparent)] 1591 #[repr(transparent)]
2408 #[derive(Copy, Clone, Eq, PartialEq)] 1592 #[derive(Copy, Clone, Eq, PartialEq)]
2409 pub struct Rtsr(pub u32); 1593 pub struct Ahbsmenr(pub u32);
2410 impl Rtsr { 1594 impl Ahbsmenr {
2411 #[doc = "Rising trigger event configuration of line 0"] 1595 #[doc = "DMA clock enable during sleep mode bit"]
2412 pub fn tr(&self, n: usize) -> super::vals::Tr { 1596 pub const fn dmasmen(&self) -> super::vals::Dmasmen {
2413 assert!(n < 23usize); 1597 let val = (self.0 >> 0usize) & 0x01;
2414 let offs = 0usize + n * 1usize; 1598 super::vals::Dmasmen(val as u8)
2415 let val = (self.0 >> offs) & 0x01;
2416 super::vals::Tr(val as u8)
2417 }
2418 #[doc = "Rising trigger event configuration of line 0"]
2419 pub fn set_tr(&mut self, n: usize, val: super::vals::Tr) {
2420 assert!(n < 23usize);
2421 let offs = 0usize + n * 1usize;
2422 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
2423 } 1599 }
2424 } 1600 #[doc = "DMA clock enable during sleep mode bit"]
2425 impl Default for Rtsr { 1601 pub fn set_dmasmen(&mut self, val: super::vals::Dmasmen) {
2426 fn default() -> Rtsr { 1602 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
2427 Rtsr(0)
2428 } 1603 }
2429 } 1604 #[doc = "NVM interface clock enable during sleep mode bit"]
2430 #[doc = "Falling Trigger selection register (EXTI_FTSR)"] 1605 pub const fn mifsmen(&self) -> super::vals::Mifsmen {
2431 #[repr(transparent)] 1606 let val = (self.0 >> 8usize) & 0x01;
2432 #[derive(Copy, Clone, Eq, PartialEq)] 1607 super::vals::Mifsmen(val as u8)
2433 pub struct Ftsr(pub u32);
2434 impl Ftsr {
2435 #[doc = "Falling trigger event configuration of line 0"]
2436 pub fn tr(&self, n: usize) -> super::vals::Tr {
2437 assert!(n < 23usize);
2438 let offs = 0usize + n * 1usize;
2439 let val = (self.0 >> offs) & 0x01;
2440 super::vals::Tr(val as u8)
2441 } 1608 }
2442 #[doc = "Falling trigger event configuration of line 0"] 1609 #[doc = "NVM interface clock enable during sleep mode bit"]
2443 pub fn set_tr(&mut self, n: usize, val: super::vals::Tr) { 1610 pub fn set_mifsmen(&mut self, val: super::vals::Mifsmen) {
2444 assert!(n < 23usize); 1611 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
2445 let offs = 0usize + n * 1usize;
2446 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
2447 } 1612 }
2448 } 1613 #[doc = "SRAM interface clock enable during sleep mode bit"]
2449 impl Default for Ftsr { 1614 pub const fn sramsmen(&self) -> super::vals::Sramsmen {
2450 fn default() -> Ftsr { 1615 let val = (self.0 >> 9usize) & 0x01;
2451 Ftsr(0) 1616 super::vals::Sramsmen(val as u8)
2452 } 1617 }
2453 } 1618 #[doc = "SRAM interface clock enable during sleep mode bit"]
2454 #[doc = "Interrupt mask register (EXTI_IMR)"] 1619 pub fn set_sramsmen(&mut self, val: super::vals::Sramsmen) {
2455 #[repr(transparent)] 1620 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
2456 #[derive(Copy, Clone, Eq, PartialEq)]
2457 pub struct Imr(pub u32);
2458 impl Imr {
2459 #[doc = "Interrupt Mask on line 0"]
2460 pub fn mr(&self, n: usize) -> super::vals::Mr {
2461 assert!(n < 23usize);
2462 let offs = 0usize + n * 1usize;
2463 let val = (self.0 >> offs) & 0x01;
2464 super::vals::Mr(val as u8)
2465 } 1621 }
2466 #[doc = "Interrupt Mask on line 0"] 1622 #[doc = "CRC clock enable during sleep mode bit"]
2467 pub fn set_mr(&mut self, n: usize, val: super::vals::Mr) { 1623 pub const fn crcsmen(&self) -> super::vals::Crcsmen {
2468 assert!(n < 23usize); 1624 let val = (self.0 >> 12usize) & 0x01;
2469 let offs = 0usize + n * 1usize; 1625 super::vals::Crcsmen(val as u8)
2470 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
2471 } 1626 }
2472 } 1627 #[doc = "CRC clock enable during sleep mode bit"]
2473 impl Default for Imr { 1628 pub fn set_crcsmen(&mut self, val: super::vals::Crcsmen) {
2474 fn default() -> Imr { 1629 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
2475 Imr(0)
2476 } 1630 }
2477 } 1631 #[doc = "Touch Sensing clock enable during sleep mode bit"]
2478 #[doc = "Pending register (EXTI_PR)"] 1632 pub const fn touchsmen(&self) -> bool {
2479 #[repr(transparent)] 1633 let val = (self.0 >> 16usize) & 0x01;
2480 #[derive(Copy, Clone, Eq, PartialEq)]
2481 pub struct Pr(pub u32);
2482 impl Pr {
2483 #[doc = "Pending bit 0"]
2484 pub fn pr(&self, n: usize) -> bool {
2485 assert!(n < 23usize);
2486 let offs = 0usize + n * 1usize;
2487 let val = (self.0 >> offs) & 0x01;
2488 val != 0 1634 val != 0
2489 } 1635 }
2490 #[doc = "Pending bit 0"] 1636 #[doc = "Touch Sensing clock enable during sleep mode bit"]
2491 pub fn set_pr(&mut self, n: usize, val: bool) { 1637 pub fn set_touchsmen(&mut self, val: bool) {
2492 assert!(n < 23usize); 1638 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
2493 let offs = 0usize + n * 1usize;
2494 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
2495 } 1639 }
2496 } 1640 #[doc = "Random Number Generator clock enable during sleep mode bit"]
2497 impl Default for Pr { 1641 pub const fn rngsmen(&self) -> bool {
2498 fn default() -> Pr { 1642 let val = (self.0 >> 20usize) & 0x01;
2499 Pr(0) 1643 val != 0
2500 } 1644 }
2501 } 1645 #[doc = "Random Number Generator clock enable during sleep mode bit"]
2502 #[doc = "Event mask register (EXTI_EMR)"] 1646 pub fn set_rngsmen(&mut self, val: bool) {
2503 #[repr(transparent)] 1647 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize);
2504 #[derive(Copy, Clone, Eq, PartialEq)]
2505 pub struct Emr(pub u32);
2506 impl Emr {
2507 #[doc = "Event Mask on line 0"]
2508 pub fn mr(&self, n: usize) -> super::vals::Mr {
2509 assert!(n < 23usize);
2510 let offs = 0usize + n * 1usize;
2511 let val = (self.0 >> offs) & 0x01;
2512 super::vals::Mr(val as u8)
2513 } 1648 }
2514 #[doc = "Event Mask on line 0"] 1649 #[doc = "Crypto clock enable during sleep mode bit"]
2515 pub fn set_mr(&mut self, n: usize, val: super::vals::Mr) { 1650 pub const fn crypsmen(&self) -> super::vals::Crypsmen {
2516 assert!(n < 23usize); 1651 let val = (self.0 >> 24usize) & 0x01;
2517 let offs = 0usize + n * 1usize; 1652 super::vals::Crypsmen(val as u8)
2518 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
2519 } 1653 }
2520 } 1654 #[doc = "Crypto clock enable during sleep mode bit"]
2521 impl Default for Emr { 1655 pub fn set_crypsmen(&mut self, val: super::vals::Crypsmen) {
2522 fn default() -> Emr { 1656 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
2523 Emr(0)
2524 } 1657 }
2525 } 1658 }
2526 } 1659 impl Default for Ahbsmenr {
2527 pub mod vals { 1660 fn default() -> Ahbsmenr {
2528 use crate::generic::*; 1661 Ahbsmenr(0)
2529 #[repr(transparent)] 1662 }
2530 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2531 pub struct Tr(pub u8);
2532 impl Tr {
2533 #[doc = "Falling edge trigger is disabled"]
2534 pub const DISABLED: Self = Self(0);
2535 #[doc = "Falling edge trigger is enabled"]
2536 pub const ENABLED: Self = Self(0x01);
2537 }
2538 #[repr(transparent)]
2539 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2540 pub struct Mr(pub u8);
2541 impl Mr {
2542 #[doc = "Interrupt request line is masked"]
2543 pub const MASKED: Self = Self(0);
2544 #[doc = "Interrupt request line is unmasked"]
2545 pub const UNMASKED: Self = Self(0x01);
2546 }
2547 #[repr(transparent)]
2548 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2549 pub struct Prr(pub u8);
2550 impl Prr {
2551 #[doc = "No trigger request occurred"]
2552 pub const NOTPENDING: Self = Self(0);
2553 #[doc = "Selected trigger request occurred"]
2554 pub const PENDING: Self = Self(0x01);
2555 }
2556 #[repr(transparent)]
2557 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2558 pub struct Prw(pub u8);
2559 impl Prw {
2560 #[doc = "Clears pending bit"]
2561 pub const CLEAR: Self = Self(0x01);
2562 }
2563 #[repr(transparent)]
2564 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2565 pub struct Swierw(pub u8);
2566 impl Swierw {
2567 #[doc = "Generates an interrupt request"]
2568 pub const PEND: Self = Self(0x01);
2569 }
2570 }
2571}
2572pub mod spi_v1 {
2573 use crate::generic::*;
2574 #[doc = "Serial peripheral interface"]
2575 #[derive(Copy, Clone)]
2576 pub struct Spi(pub *mut u8);
2577 unsafe impl Send for Spi {}
2578 unsafe impl Sync for Spi {}
2579 impl Spi {
2580 #[doc = "control register 1"]
2581 pub fn cr1(self) -> Reg<regs::Cr1, RW> {
2582 unsafe { Reg::from_ptr(self.0.add(0usize)) }
2583 }
2584 #[doc = "control register 2"]
2585 pub fn cr2(self) -> Reg<regs::Cr2, RW> {
2586 unsafe { Reg::from_ptr(self.0.add(4usize)) }
2587 }
2588 #[doc = "status register"]
2589 pub fn sr(self) -> Reg<regs::Sr, RW> {
2590 unsafe { Reg::from_ptr(self.0.add(8usize)) }
2591 }
2592 #[doc = "data register"]
2593 pub fn dr(self) -> Reg<regs::Dr, RW> {
2594 unsafe { Reg::from_ptr(self.0.add(12usize)) }
2595 }
2596 #[doc = "CRC polynomial register"]
2597 pub fn crcpr(self) -> Reg<regs::Crcpr, RW> {
2598 unsafe { Reg::from_ptr(self.0.add(16usize)) }
2599 }
2600 #[doc = "RX CRC register"]
2601 pub fn rxcrcr(self) -> Reg<regs::Rxcrcr, R> {
2602 unsafe { Reg::from_ptr(self.0.add(20usize)) }
2603 }
2604 #[doc = "TX CRC register"]
2605 pub fn txcrcr(self) -> Reg<regs::Txcrcr, R> {
2606 unsafe { Reg::from_ptr(self.0.add(24usize)) }
2607 } 1663 }
2608 } 1664 #[doc = "Clock interrupt enable register"]
2609 pub mod regs {
2610 use crate::generic::*;
2611 #[doc = "control register 2"]
2612 #[repr(transparent)] 1665 #[repr(transparent)]
2613 #[derive(Copy, Clone, Eq, PartialEq)] 1666 #[derive(Copy, Clone, Eq, PartialEq)]
2614 pub struct Cr2(pub u32); 1667 pub struct Cier(pub u32);
2615 impl Cr2 { 1668 impl Cier {
2616 #[doc = "Rx buffer DMA enable"] 1669 #[doc = "LSI ready interrupt flag"]
2617 pub const fn rxdmaen(&self) -> bool { 1670 pub const fn lsirdyie(&self) -> super::vals::Hsirdyie {
2618 let val = (self.0 >> 0usize) & 0x01; 1671 let val = (self.0 >> 0usize) & 0x01;
2619 val != 0 1672 super::vals::Hsirdyie(val as u8)
2620 } 1673 }
2621 #[doc = "Rx buffer DMA enable"] 1674 #[doc = "LSI ready interrupt flag"]
2622 pub fn set_rxdmaen(&mut self, val: bool) { 1675 pub fn set_lsirdyie(&mut self, val: super::vals::Hsirdyie) {
2623 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 1676 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
2624 } 1677 }
2625 #[doc = "Tx buffer DMA enable"] 1678 #[doc = "LSE ready interrupt flag"]
2626 pub const fn txdmaen(&self) -> bool { 1679 pub const fn lserdyie(&self) -> super::vals::Hsirdyie {
2627 let val = (self.0 >> 1usize) & 0x01; 1680 let val = (self.0 >> 1usize) & 0x01;
2628 val != 0 1681 super::vals::Hsirdyie(val as u8)
2629 } 1682 }
2630 #[doc = "Tx buffer DMA enable"] 1683 #[doc = "LSE ready interrupt flag"]
2631 pub fn set_txdmaen(&mut self, val: bool) { 1684 pub fn set_lserdyie(&mut self, val: super::vals::Hsirdyie) {
2632 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 1685 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
2633 } 1686 }
2634 #[doc = "SS output enable"] 1687 #[doc = "HSI16 ready interrupt flag"]
2635 pub const fn ssoe(&self) -> bool { 1688 pub const fn hsi16rdyie(&self) -> super::vals::Hsirdyie {
2636 let val = (self.0 >> 2usize) & 0x01; 1689 let val = (self.0 >> 2usize) & 0x01;
2637 val != 0 1690 super::vals::Hsirdyie(val as u8)
2638 } 1691 }
2639 #[doc = "SS output enable"] 1692 #[doc = "HSI16 ready interrupt flag"]
2640 pub fn set_ssoe(&mut self, val: bool) { 1693 pub fn set_hsi16rdyie(&mut self, val: super::vals::Hsirdyie) {
2641 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 1694 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
2642 } 1695 }
2643 #[doc = "Frame format"] 1696 #[doc = "HSE ready interrupt flag"]
2644 pub const fn frf(&self) -> super::vals::Frf { 1697 pub const fn hserdyie(&self) -> super::vals::Hsirdyie {
1698 let val = (self.0 >> 3usize) & 0x01;
1699 super::vals::Hsirdyie(val as u8)
1700 }
1701 #[doc = "HSE ready interrupt flag"]
1702 pub fn set_hserdyie(&mut self, val: super::vals::Hsirdyie) {
1703 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
1704 }
1705 #[doc = "PLL ready interrupt flag"]
1706 pub const fn pllrdyie(&self) -> super::vals::Hsirdyie {
2645 let val = (self.0 >> 4usize) & 0x01; 1707 let val = (self.0 >> 4usize) & 0x01;
2646 super::vals::Frf(val as u8) 1708 super::vals::Hsirdyie(val as u8)
2647 } 1709 }
2648 #[doc = "Frame format"] 1710 #[doc = "PLL ready interrupt flag"]
2649 pub fn set_frf(&mut self, val: super::vals::Frf) { 1711 pub fn set_pllrdyie(&mut self, val: super::vals::Hsirdyie) {
2650 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 1712 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
2651 } 1713 }
2652 #[doc = "Error interrupt enable"] 1714 #[doc = "MSI ready interrupt flag"]
2653 pub const fn errie(&self) -> bool { 1715 pub const fn msirdyie(&self) -> super::vals::Hsirdyie {
2654 let val = (self.0 >> 5usize) & 0x01; 1716 let val = (self.0 >> 5usize) & 0x01;
2655 val != 0 1717 super::vals::Hsirdyie(val as u8)
2656 } 1718 }
2657 #[doc = "Error interrupt enable"] 1719 #[doc = "MSI ready interrupt flag"]
2658 pub fn set_errie(&mut self, val: bool) { 1720 pub fn set_msirdyie(&mut self, val: super::vals::Hsirdyie) {
2659 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 1721 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
2660 } 1722 }
2661 #[doc = "RX buffer not empty interrupt enable"] 1723 #[doc = "HSI48 ready interrupt flag"]
2662 pub const fn rxneie(&self) -> bool { 1724 pub const fn hsi48rdyie(&self) -> super::vals::Hsirdyie {
2663 let val = (self.0 >> 6usize) & 0x01; 1725 let val = (self.0 >> 6usize) & 0x01;
2664 val != 0 1726 super::vals::Hsirdyie(val as u8)
2665 } 1727 }
2666 #[doc = "RX buffer not empty interrupt enable"] 1728 #[doc = "HSI48 ready interrupt flag"]
2667 pub fn set_rxneie(&mut self, val: bool) { 1729 pub fn set_hsi48rdyie(&mut self, val: super::vals::Hsirdyie) {
2668 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 1730 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
2669 } 1731 }
2670 #[doc = "Tx buffer empty interrupt enable"] 1732 #[doc = "LSE CSS interrupt flag"]
2671 pub const fn txeie(&self) -> bool { 1733 pub const fn csslse(&self) -> super::vals::Csslse {
2672 let val = (self.0 >> 7usize) & 0x01; 1734 let val = (self.0 >> 7usize) & 0x01;
2673 val != 0 1735 super::vals::Csslse(val as u8)
2674 } 1736 }
2675 #[doc = "Tx buffer empty interrupt enable"] 1737 #[doc = "LSE CSS interrupt flag"]
2676 pub fn set_txeie(&mut self, val: bool) { 1738 pub fn set_csslse(&mut self, val: super::vals::Csslse) {
2677 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 1739 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
2678 } 1740 }
2679 } 1741 }
2680 impl Default for Cr2 { 1742 impl Default for Cier {
2681 fn default() -> Cr2 { 1743 fn default() -> Cier {
2682 Cr2(0) 1744 Cier(0)
2683 } 1745 }
2684 } 1746 }
2685 #[doc = "status register"] 1747 #[doc = "AHB peripheral reset register"]
2686 #[repr(transparent)] 1748 #[repr(transparent)]
2687 #[derive(Copy, Clone, Eq, PartialEq)] 1749 #[derive(Copy, Clone, Eq, PartialEq)]
2688 pub struct Sr(pub u32); 1750 pub struct Ahbrstr(pub u32);
2689 impl Sr { 1751 impl Ahbrstr {
2690 #[doc = "Receive buffer not empty"] 1752 #[doc = "DMA reset"]
2691 pub const fn rxne(&self) -> bool { 1753 pub const fn dmarst(&self) -> bool {
2692 let val = (self.0 >> 0usize) & 0x01; 1754 let val = (self.0 >> 0usize) & 0x01;
2693 val != 0 1755 val != 0
2694 } 1756 }
2695 #[doc = "Receive buffer not empty"] 1757 #[doc = "DMA reset"]
2696 pub fn set_rxne(&mut self, val: bool) { 1758 pub fn set_dmarst(&mut self, val: bool) {
2697 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 1759 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
2698 } 1760 }
2699 #[doc = "Transmit buffer empty"] 1761 #[doc = "Memory interface reset"]
2700 pub const fn txe(&self) -> bool { 1762 pub const fn mifrst(&self) -> bool {
2701 let val = (self.0 >> 1usize) & 0x01; 1763 let val = (self.0 >> 8usize) & 0x01;
2702 val != 0
2703 }
2704 #[doc = "Transmit buffer empty"]
2705 pub fn set_txe(&mut self, val: bool) {
2706 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
2707 }
2708 #[doc = "CRC error flag"]
2709 pub const fn crcerr(&self) -> bool {
2710 let val = (self.0 >> 4usize) & 0x01;
2711 val != 0 1764 val != 0
2712 } 1765 }
2713 #[doc = "CRC error flag"] 1766 #[doc = "Memory interface reset"]
2714 pub fn set_crcerr(&mut self, val: bool) { 1767 pub fn set_mifrst(&mut self, val: bool) {
2715 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 1768 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
2716 } 1769 }
2717 #[doc = "Mode fault"] 1770 #[doc = "Test integration module reset"]
2718 pub const fn modf(&self) -> bool { 1771 pub const fn crcrst(&self) -> bool {
2719 let val = (self.0 >> 5usize) & 0x01; 1772 let val = (self.0 >> 12usize) & 0x01;
2720 val != 0 1773 val != 0
2721 } 1774 }
2722 #[doc = "Mode fault"] 1775 #[doc = "Test integration module reset"]
2723 pub fn set_modf(&mut self, val: bool) { 1776 pub fn set_crcrst(&mut self, val: bool) {
2724 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 1777 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
2725 } 1778 }
2726 #[doc = "Overrun flag"] 1779 #[doc = "Touch Sensing reset"]
2727 pub const fn ovr(&self) -> bool { 1780 pub const fn touchrst(&self) -> bool {
2728 let val = (self.0 >> 6usize) & 0x01; 1781 let val = (self.0 >> 16usize) & 0x01;
2729 val != 0 1782 val != 0
2730 } 1783 }
2731 #[doc = "Overrun flag"] 1784 #[doc = "Touch Sensing reset"]
2732 pub fn set_ovr(&mut self, val: bool) { 1785 pub fn set_touchrst(&mut self, val: bool) {
2733 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 1786 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
2734 } 1787 }
2735 #[doc = "Busy flag"] 1788 #[doc = "Random Number Generator module reset"]
2736 pub const fn bsy(&self) -> bool { 1789 pub const fn rngrst(&self) -> bool {
2737 let val = (self.0 >> 7usize) & 0x01; 1790 let val = (self.0 >> 20usize) & 0x01;
2738 val != 0 1791 val != 0
2739 } 1792 }
2740 #[doc = "Busy flag"] 1793 #[doc = "Random Number Generator module reset"]
2741 pub fn set_bsy(&mut self, val: bool) { 1794 pub fn set_rngrst(&mut self, val: bool) {
2742 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 1795 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize);
2743 } 1796 }
2744 #[doc = "TI frame format error"] 1797 #[doc = "Crypto module reset"]
2745 pub const fn fre(&self) -> bool { 1798 pub const fn cryprst(&self) -> bool {
2746 let val = (self.0 >> 8usize) & 0x01; 1799 let val = (self.0 >> 24usize) & 0x01;
2747 val != 0 1800 val != 0
2748 } 1801 }
2749 #[doc = "TI frame format error"] 1802 #[doc = "Crypto module reset"]
2750 pub fn set_fre(&mut self, val: bool) { 1803 pub fn set_cryprst(&mut self, val: bool) {
2751 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 1804 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize);
2752 } 1805 }
2753 } 1806 }
2754 impl Default for Sr { 1807 impl Default for Ahbrstr {
2755 fn default() -> Sr { 1808 fn default() -> Ahbrstr {
2756 Sr(0) 1809 Ahbrstr(0)
2757 } 1810 }
2758 } 1811 }
2759 #[doc = "control register 1"] 1812 #[doc = "APB1 peripheral clock enable in sleep mode register"]
2760 #[repr(transparent)] 1813 #[repr(transparent)]
2761 #[derive(Copy, Clone, Eq, PartialEq)] 1814 #[derive(Copy, Clone, Eq, PartialEq)]
2762 pub struct Cr1(pub u32); 1815 pub struct Apb1smenr(pub u32);
2763 impl Cr1 { 1816 impl Apb1smenr {
2764 #[doc = "Clock phase"] 1817 #[doc = "Timer2 clock enable during sleep mode bit"]
2765 pub const fn cpha(&self) -> super::vals::Cpha { 1818 pub const fn tim2smen(&self) -> super::vals::Lptimsmen {
2766 let val = (self.0 >> 0usize) & 0x01; 1819 let val = (self.0 >> 0usize) & 0x01;
2767 super::vals::Cpha(val as u8) 1820 super::vals::Lptimsmen(val as u8)
2768 } 1821 }
2769 #[doc = "Clock phase"] 1822 #[doc = "Timer2 clock enable during sleep mode bit"]
2770 pub fn set_cpha(&mut self, val: super::vals::Cpha) { 1823 pub fn set_tim2smen(&mut self, val: super::vals::Lptimsmen) {
2771 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 1824 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
2772 } 1825 }
2773 #[doc = "Clock polarity"] 1826 #[doc = "Timer3 clock enable during Sleep mode bit"]
2774 pub const fn cpol(&self) -> super::vals::Cpol { 1827 pub const fn tim3smen(&self) -> super::vals::Lptimsmen {
2775 let val = (self.0 >> 1usize) & 0x01; 1828 let val = (self.0 >> 1usize) & 0x01;
2776 super::vals::Cpol(val as u8) 1829 super::vals::Lptimsmen(val as u8)
2777 } 1830 }
2778 #[doc = "Clock polarity"] 1831 #[doc = "Timer3 clock enable during Sleep mode bit"]
2779 pub fn set_cpol(&mut self, val: super::vals::Cpol) { 1832 pub fn set_tim3smen(&mut self, val: super::vals::Lptimsmen) {
2780 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 1833 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
2781 } 1834 }
2782 #[doc = "Master selection"] 1835 #[doc = "Timer 6 clock enable during sleep mode bit"]
2783 pub const fn mstr(&self) -> super::vals::Mstr { 1836 pub const fn tim6smen(&self) -> super::vals::Lptimsmen {
2784 let val = (self.0 >> 2usize) & 0x01; 1837 let val = (self.0 >> 4usize) & 0x01;
2785 super::vals::Mstr(val as u8) 1838 super::vals::Lptimsmen(val as u8)
2786 } 1839 }
2787 #[doc = "Master selection"] 1840 #[doc = "Timer 6 clock enable during sleep mode bit"]
2788 pub fn set_mstr(&mut self, val: super::vals::Mstr) { 1841 pub fn set_tim6smen(&mut self, val: super::vals::Lptimsmen) {
2789 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize); 1842 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
2790 } 1843 }
2791 #[doc = "Baud rate control"] 1844 #[doc = "Timer 7 clock enable during Sleep mode bit"]
2792 pub const fn br(&self) -> super::vals::Br { 1845 pub const fn tim7smen(&self) -> super::vals::Lptimsmen {
2793 let val = (self.0 >> 3usize) & 0x07; 1846 let val = (self.0 >> 5usize) & 0x01;
2794 super::vals::Br(val as u8) 1847 super::vals::Lptimsmen(val as u8)
2795 } 1848 }
2796 #[doc = "Baud rate control"] 1849 #[doc = "Timer 7 clock enable during Sleep mode bit"]
2797 pub fn set_br(&mut self, val: super::vals::Br) { 1850 pub fn set_tim7smen(&mut self, val: super::vals::Lptimsmen) {
2798 self.0 = (self.0 & !(0x07 << 3usize)) | (((val.0 as u32) & 0x07) << 3usize); 1851 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
2799 } 1852 }
2800 #[doc = "SPI enable"] 1853 #[doc = "Window watchdog clock enable during sleep mode bit"]
2801 pub const fn spe(&self) -> bool { 1854 pub const fn wwdgsmen(&self) -> super::vals::Lptimsmen {
2802 let val = (self.0 >> 6usize) & 0x01; 1855 let val = (self.0 >> 11usize) & 0x01;
2803 val != 0 1856 super::vals::Lptimsmen(val as u8)
2804 } 1857 }
2805 #[doc = "SPI enable"] 1858 #[doc = "Window watchdog clock enable during sleep mode bit"]
2806 pub fn set_spe(&mut self, val: bool) { 1859 pub fn set_wwdgsmen(&mut self, val: super::vals::Lptimsmen) {
2807 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 1860 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
2808 } 1861 }
2809 #[doc = "Frame format"] 1862 #[doc = "SPI2 clock enable during sleep mode bit"]
2810 pub const fn lsbfirst(&self) -> super::vals::Lsbfirst { 1863 pub const fn spi2smen(&self) -> super::vals::Lptimsmen {
2811 let val = (self.0 >> 7usize) & 0x01; 1864 let val = (self.0 >> 14usize) & 0x01;
2812 super::vals::Lsbfirst(val as u8) 1865 super::vals::Lptimsmen(val as u8)
2813 } 1866 }
2814 #[doc = "Frame format"] 1867 #[doc = "SPI2 clock enable during sleep mode bit"]
2815 pub fn set_lsbfirst(&mut self, val: super::vals::Lsbfirst) { 1868 pub fn set_spi2smen(&mut self, val: super::vals::Lptimsmen) {
2816 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 1869 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
2817 } 1870 }
2818 #[doc = "Internal slave select"] 1871 #[doc = "UART2 clock enable during sleep mode bit"]
2819 pub const fn ssi(&self) -> bool { 1872 pub const fn usart2smen(&self) -> super::vals::Lptimsmen {
2820 let val = (self.0 >> 8usize) & 0x01; 1873 let val = (self.0 >> 17usize) & 0x01;
2821 val != 0 1874 super::vals::Lptimsmen(val as u8)
2822 } 1875 }
2823 #[doc = "Internal slave select"] 1876 #[doc = "UART2 clock enable during sleep mode bit"]
2824 pub fn set_ssi(&mut self, val: bool) { 1877 pub fn set_usart2smen(&mut self, val: super::vals::Lptimsmen) {
2825 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 1878 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize);
2826 } 1879 }
2827 #[doc = "Software slave management"] 1880 #[doc = "LPUART1 clock enable during sleep mode bit"]
2828 pub const fn ssm(&self) -> bool { 1881 pub const fn lpuart1smen(&self) -> super::vals::Lptimsmen {
2829 let val = (self.0 >> 9usize) & 0x01; 1882 let val = (self.0 >> 18usize) & 0x01;
2830 val != 0 1883 super::vals::Lptimsmen(val as u8)
2831 } 1884 }
2832 #[doc = "Software slave management"] 1885 #[doc = "LPUART1 clock enable during sleep mode bit"]
2833 pub fn set_ssm(&mut self, val: bool) { 1886 pub fn set_lpuart1smen(&mut self, val: super::vals::Lptimsmen) {
2834 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 1887 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
2835 } 1888 }
2836 #[doc = "Receive only"] 1889 #[doc = "USART4 clock enable during Sleep mode bit"]
2837 pub const fn rxonly(&self) -> super::vals::Rxonly { 1890 pub const fn usart4smen(&self) -> super::vals::Lptimsmen {
2838 let val = (self.0 >> 10usize) & 0x01; 1891 let val = (self.0 >> 19usize) & 0x01;
2839 super::vals::Rxonly(val as u8) 1892 super::vals::Lptimsmen(val as u8)
2840 } 1893 }
2841 #[doc = "Receive only"] 1894 #[doc = "USART4 clock enable during Sleep mode bit"]
2842 pub fn set_rxonly(&mut self, val: super::vals::Rxonly) { 1895 pub fn set_usart4smen(&mut self, val: super::vals::Lptimsmen) {
2843 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize); 1896 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
2844 } 1897 }
2845 #[doc = "Data frame format"] 1898 #[doc = "USART5 clock enable during Sleep mode bit"]
2846 pub const fn dff(&self) -> super::vals::Dff { 1899 pub const fn usart5smen(&self) -> super::vals::Lptimsmen {
2847 let val = (self.0 >> 11usize) & 0x01; 1900 let val = (self.0 >> 20usize) & 0x01;
2848 super::vals::Dff(val as u8) 1901 super::vals::Lptimsmen(val as u8)
2849 } 1902 }
2850 #[doc = "Data frame format"] 1903 #[doc = "USART5 clock enable during Sleep mode bit"]
2851 pub fn set_dff(&mut self, val: super::vals::Dff) { 1904 pub fn set_usart5smen(&mut self, val: super::vals::Lptimsmen) {
2852 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize); 1905 self.0 = (self.0 & !(0x01 << 20usize)) | (((val.0 as u32) & 0x01) << 20usize);
2853 } 1906 }
2854 #[doc = "CRC transfer next"] 1907 #[doc = "I2C1 clock enable during sleep mode bit"]
2855 pub const fn crcnext(&self) -> super::vals::Crcnext { 1908 pub const fn i2c1smen(&self) -> super::vals::Lptimsmen {
2856 let val = (self.0 >> 12usize) & 0x01; 1909 let val = (self.0 >> 21usize) & 0x01;
2857 super::vals::Crcnext(val as u8) 1910 super::vals::Lptimsmen(val as u8)
2858 } 1911 }
2859 #[doc = "CRC transfer next"] 1912 #[doc = "I2C1 clock enable during sleep mode bit"]
2860 pub fn set_crcnext(&mut self, val: super::vals::Crcnext) { 1913 pub fn set_i2c1smen(&mut self, val: super::vals::Lptimsmen) {
2861 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize); 1914 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize);
2862 } 1915 }
2863 #[doc = "Hardware CRC calculation enable"] 1916 #[doc = "I2C2 clock enable during sleep mode bit"]
2864 pub const fn crcen(&self) -> bool { 1917 pub const fn i2c2smen(&self) -> super::vals::Lptimsmen {
2865 let val = (self.0 >> 13usize) & 0x01; 1918 let val = (self.0 >> 22usize) & 0x01;
2866 val != 0 1919 super::vals::Lptimsmen(val as u8)
2867 } 1920 }
2868 #[doc = "Hardware CRC calculation enable"] 1921 #[doc = "I2C2 clock enable during sleep mode bit"]
2869 pub fn set_crcen(&mut self, val: bool) { 1922 pub fn set_i2c2smen(&mut self, val: super::vals::Lptimsmen) {
2870 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize); 1923 self.0 = (self.0 & !(0x01 << 22usize)) | (((val.0 as u32) & 0x01) << 22usize);
2871 } 1924 }
2872 #[doc = "Output enable in bidirectional mode"] 1925 #[doc = "USB clock enable during sleep mode bit"]
2873 pub const fn bidioe(&self) -> super::vals::Bidioe { 1926 pub const fn usbsmen(&self) -> super::vals::Lptimsmen {
2874 let val = (self.0 >> 14usize) & 0x01; 1927 let val = (self.0 >> 23usize) & 0x01;
2875 super::vals::Bidioe(val as u8) 1928 super::vals::Lptimsmen(val as u8)
2876 } 1929 }
2877 #[doc = "Output enable in bidirectional mode"] 1930 #[doc = "USB clock enable during sleep mode bit"]
2878 pub fn set_bidioe(&mut self, val: super::vals::Bidioe) { 1931 pub fn set_usbsmen(&mut self, val: super::vals::Lptimsmen) {
2879 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 1932 self.0 = (self.0 & !(0x01 << 23usize)) | (((val.0 as u32) & 0x01) << 23usize);
2880 } 1933 }
2881 #[doc = "Bidirectional data mode enable"] 1934 #[doc = "Clock recovery system clock enable during sleep mode bit"]
2882 pub const fn bidimode(&self) -> super::vals::Bidimode { 1935 pub const fn crssmen(&self) -> super::vals::Lptimsmen {
2883 let val = (self.0 >> 15usize) & 0x01; 1936 let val = (self.0 >> 27usize) & 0x01;
2884 super::vals::Bidimode(val as u8) 1937 super::vals::Lptimsmen(val as u8)
2885 } 1938 }
2886 #[doc = "Bidirectional data mode enable"] 1939 #[doc = "Clock recovery system clock enable during sleep mode bit"]
2887 pub fn set_bidimode(&mut self, val: super::vals::Bidimode) { 1940 pub fn set_crssmen(&mut self, val: super::vals::Lptimsmen) {
2888 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize); 1941 self.0 = (self.0 & !(0x01 << 27usize)) | (((val.0 as u32) & 0x01) << 27usize);
2889 } 1942 }
2890 } 1943 #[doc = "Power interface clock enable during sleep mode bit"]
2891 impl Default for Cr1 { 1944 pub const fn pwrsmen(&self) -> super::vals::Lptimsmen {
2892 fn default() -> Cr1 { 1945 let val = (self.0 >> 28usize) & 0x01;
2893 Cr1(0) 1946 super::vals::Lptimsmen(val as u8)
2894 } 1947 }
2895 } 1948 #[doc = "Power interface clock enable during sleep mode bit"]
2896 #[doc = "TX CRC register"] 1949 pub fn set_pwrsmen(&mut self, val: super::vals::Lptimsmen) {
2897 #[repr(transparent)] 1950 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
2898 #[derive(Copy, Clone, Eq, PartialEq)]
2899 pub struct Txcrcr(pub u32);
2900 impl Txcrcr {
2901 #[doc = "Tx CRC register"]
2902 pub const fn tx_crc(&self) -> u16 {
2903 let val = (self.0 >> 0usize) & 0xffff;
2904 val as u16
2905 } 1951 }
2906 #[doc = "Tx CRC register"] 1952 #[doc = "DAC interface clock enable during sleep mode bit"]
2907 pub fn set_tx_crc(&mut self, val: u16) { 1953 pub const fn dacsmen(&self) -> super::vals::Lptimsmen {
2908 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize); 1954 let val = (self.0 >> 29usize) & 0x01;
1955 super::vals::Lptimsmen(val as u8)
2909 } 1956 }
2910 } 1957 #[doc = "DAC interface clock enable during sleep mode bit"]
2911 impl Default for Txcrcr { 1958 pub fn set_dacsmen(&mut self, val: super::vals::Lptimsmen) {
2912 fn default() -> Txcrcr { 1959 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize);
2913 Txcrcr(0)
2914 } 1960 }
2915 } 1961 #[doc = "2C3 clock enable during Sleep mode bit"]
2916 #[doc = "CRC polynomial register"] 1962 pub const fn i2c3smen(&self) -> super::vals::Lptimsmen {
2917 #[repr(transparent)] 1963 let val = (self.0 >> 30usize) & 0x01;
2918 #[derive(Copy, Clone, Eq, PartialEq)] 1964 super::vals::Lptimsmen(val as u8)
2919 pub struct Crcpr(pub u32);
2920 impl Crcpr {
2921 #[doc = "CRC polynomial register"]
2922 pub const fn crcpoly(&self) -> u16 {
2923 let val = (self.0 >> 0usize) & 0xffff;
2924 val as u16
2925 } 1965 }
2926 #[doc = "CRC polynomial register"] 1966 #[doc = "2C3 clock enable during Sleep mode bit"]
2927 pub fn set_crcpoly(&mut self, val: u16) { 1967 pub fn set_i2c3smen(&mut self, val: super::vals::Lptimsmen) {
2928 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize); 1968 self.0 = (self.0 & !(0x01 << 30usize)) | (((val.0 as u32) & 0x01) << 30usize);
1969 }
1970 #[doc = "Low power timer clock enable during sleep mode bit"]
1971 pub const fn lptim1smen(&self) -> super::vals::Lptimsmen {
1972 let val = (self.0 >> 31usize) & 0x01;
1973 super::vals::Lptimsmen(val as u8)
1974 }
1975 #[doc = "Low power timer clock enable during sleep mode bit"]
1976 pub fn set_lptim1smen(&mut self, val: super::vals::Lptimsmen) {
1977 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize);
2929 } 1978 }
2930 } 1979 }
2931 impl Default for Crcpr { 1980 impl Default for Apb1smenr {
2932 fn default() -> Crcpr { 1981 fn default() -> Apb1smenr {
2933 Crcpr(0) 1982 Apb1smenr(0)
2934 } 1983 }
2935 } 1984 }
2936 #[doc = "data register"] 1985 #[doc = "Clock interrupt clear register"]
2937 #[repr(transparent)] 1986 #[repr(transparent)]
2938 #[derive(Copy, Clone, Eq, PartialEq)] 1987 #[derive(Copy, Clone, Eq, PartialEq)]
2939 pub struct Dr(pub u32); 1988 pub struct Cicr(pub u32);
2940 impl Dr { 1989 impl Cicr {
2941 #[doc = "Data register"] 1990 #[doc = "LSI ready Interrupt clear"]
2942 pub const fn dr(&self) -> u16 { 1991 pub const fn lsirdyc(&self) -> bool {
2943 let val = (self.0 >> 0usize) & 0xffff; 1992 let val = (self.0 >> 0usize) & 0x01;
2944 val as u16 1993 val != 0
2945 } 1994 }
2946 #[doc = "Data register"] 1995 #[doc = "LSI ready Interrupt clear"]
2947 pub fn set_dr(&mut self, val: u16) { 1996 pub fn set_lsirdyc(&mut self, val: bool) {
2948 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize); 1997 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
1998 }
1999 #[doc = "LSE ready Interrupt clear"]
2000 pub const fn lserdyc(&self) -> bool {
2001 let val = (self.0 >> 1usize) & 0x01;
2002 val != 0
2003 }
2004 #[doc = "LSE ready Interrupt clear"]
2005 pub fn set_lserdyc(&mut self, val: bool) {
2006 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
2007 }
2008 #[doc = "HSI16 ready Interrupt clear"]
2009 pub const fn hsi16rdyc(&self) -> bool {
2010 let val = (self.0 >> 2usize) & 0x01;
2011 val != 0
2012 }
2013 #[doc = "HSI16 ready Interrupt clear"]
2014 pub fn set_hsi16rdyc(&mut self, val: bool) {
2015 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
2016 }
2017 #[doc = "HSE ready Interrupt clear"]
2018 pub const fn hserdyc(&self) -> bool {
2019 let val = (self.0 >> 3usize) & 0x01;
2020 val != 0
2021 }
2022 #[doc = "HSE ready Interrupt clear"]
2023 pub fn set_hserdyc(&mut self, val: bool) {
2024 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
2025 }
2026 #[doc = "PLL ready Interrupt clear"]
2027 pub const fn pllrdyc(&self) -> bool {
2028 let val = (self.0 >> 4usize) & 0x01;
2029 val != 0
2030 }
2031 #[doc = "PLL ready Interrupt clear"]
2032 pub fn set_pllrdyc(&mut self, val: bool) {
2033 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
2034 }
2035 #[doc = "MSI ready Interrupt clear"]
2036 pub const fn msirdyc(&self) -> bool {
2037 let val = (self.0 >> 5usize) & 0x01;
2038 val != 0
2039 }
2040 #[doc = "MSI ready Interrupt clear"]
2041 pub fn set_msirdyc(&mut self, val: bool) {
2042 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
2043 }
2044 #[doc = "HSI48 ready Interrupt clear"]
2045 pub const fn hsi48rdyc(&self) -> bool {
2046 let val = (self.0 >> 6usize) & 0x01;
2047 val != 0
2048 }
2049 #[doc = "HSI48 ready Interrupt clear"]
2050 pub fn set_hsi48rdyc(&mut self, val: bool) {
2051 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
2052 }
2053 #[doc = "LSE Clock Security System Interrupt clear"]
2054 pub const fn csslsec(&self) -> bool {
2055 let val = (self.0 >> 7usize) & 0x01;
2056 val != 0
2057 }
2058 #[doc = "LSE Clock Security System Interrupt clear"]
2059 pub fn set_csslsec(&mut self, val: bool) {
2060 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
2061 }
2062 #[doc = "Clock Security System Interrupt clear"]
2063 pub const fn csshsec(&self) -> bool {
2064 let val = (self.0 >> 8usize) & 0x01;
2065 val != 0
2066 }
2067 #[doc = "Clock Security System Interrupt clear"]
2068 pub fn set_csshsec(&mut self, val: bool) {
2069 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
2949 } 2070 }
2950 } 2071 }
2951 impl Default for Dr { 2072 impl Default for Cicr {
2952 fn default() -> Dr { 2073 fn default() -> Cicr {
2953 Dr(0) 2074 Cicr(0)
2954 } 2075 }
2955 } 2076 }
2956 #[doc = "RX CRC register"] 2077 #[doc = "Clock recovery RC register"]
2957 #[repr(transparent)] 2078 #[repr(transparent)]
2958 #[derive(Copy, Clone, Eq, PartialEq)] 2079 #[derive(Copy, Clone, Eq, PartialEq)]
2959 pub struct Rxcrcr(pub u32); 2080 pub struct Crrcr(pub u32);
2960 impl Rxcrcr { 2081 impl Crrcr {
2961 #[doc = "Rx CRC register"] 2082 #[doc = "48MHz HSI clock enable bit"]
2962 pub const fn rx_crc(&self) -> u16 { 2083 pub const fn hsi48on(&self) -> bool {
2963 let val = (self.0 >> 0usize) & 0xffff; 2084 let val = (self.0 >> 0usize) & 0x01;
2964 val as u16 2085 val != 0
2965 } 2086 }
2966 #[doc = "Rx CRC register"] 2087 #[doc = "48MHz HSI clock enable bit"]
2967 pub fn set_rx_crc(&mut self, val: u16) { 2088 pub fn set_hsi48on(&mut self, val: bool) {
2968 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize); 2089 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
2090 }
2091 #[doc = "48MHz HSI clock ready flag"]
2092 pub const fn hsi48rdy(&self) -> bool {
2093 let val = (self.0 >> 1usize) & 0x01;
2094 val != 0
2095 }
2096 #[doc = "48MHz HSI clock ready flag"]
2097 pub fn set_hsi48rdy(&mut self, val: bool) {
2098 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
2099 }
2100 #[doc = "48 MHz HSI clock divided by 6 output enable"]
2101 pub const fn hsi48div6en(&self) -> bool {
2102 let val = (self.0 >> 2usize) & 0x01;
2103 val != 0
2104 }
2105 #[doc = "48 MHz HSI clock divided by 6 output enable"]
2106 pub fn set_hsi48div6en(&mut self, val: bool) {
2107 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
2108 }
2109 #[doc = "48 MHz HSI clock calibration"]
2110 pub const fn hsi48cal(&self) -> u8 {
2111 let val = (self.0 >> 8usize) & 0xff;
2112 val as u8
2113 }
2114 #[doc = "48 MHz HSI clock calibration"]
2115 pub fn set_hsi48cal(&mut self, val: u8) {
2116 self.0 = (self.0 & !(0xff << 8usize)) | (((val as u32) & 0xff) << 8usize);
2969 } 2117 }
2970 } 2118 }
2971 impl Default for Rxcrcr { 2119 impl Default for Crrcr {
2972 fn default() -> Rxcrcr { 2120 fn default() -> Crrcr {
2973 Rxcrcr(0) 2121 Crrcr(0)
2974 } 2122 }
2975 } 2123 }
2976 } 2124 }
@@ -2978,206 +2126,691 @@ pub mod spi_v1 {
2978 use crate::generic::*; 2126 use crate::generic::*;
2979 #[repr(transparent)] 2127 #[repr(transparent)]
2980 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 2128 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2981 pub struct Bidioe(pub u8); 2129 pub struct Dbgsmen(pub u8);
2982 impl Bidioe { 2130 impl Dbgsmen {
2983 #[doc = "Output disabled (receive-only mode)"] 2131 #[doc = "Clock disabled"]
2984 pub const OUTPUTDISABLED: Self = Self(0); 2132 pub const DISABLED: Self = Self(0);
2985 #[doc = "Output enabled (transmit-only mode)"] 2133 #[doc = "Clock enabled"]
2986 pub const OUTPUTENABLED: Self = Self(0x01); 2134 pub const ENABLED: Self = Self(0x01);
2987 } 2135 }
2988 #[repr(transparent)] 2136 #[repr(transparent)]
2989 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 2137 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2990 pub struct Frer(pub u8); 2138 pub struct Lsedrv(pub u8);
2991 impl Frer { 2139 impl Lsedrv {
2992 #[doc = "No frame format error"] 2140 #[doc = "Lowest drive"]
2993 pub const NOERROR: Self = Self(0); 2141 pub const LOW: Self = Self(0);
2994 #[doc = "A frame format error occurred"] 2142 #[doc = "Medium low drive"]
2995 pub const ERROR: Self = Self(0x01); 2143 pub const MEDIUMLOW: Self = Self(0x01);
2144 #[doc = "Medium high drive"]
2145 pub const MEDIUMHIGH: Self = Self(0x02);
2146 #[doc = "Highest drive"]
2147 pub const HIGH: Self = Self(0x03);
2996 } 2148 }
2997 #[repr(transparent)] 2149 #[repr(transparent)]
2998 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 2150 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2999 pub struct Dff(pub u8); 2151 pub struct Pllsrc(pub u8);
3000 impl Dff { 2152 impl Pllsrc {
3001 #[doc = "8-bit data frame format is selected for transmission/reception"] 2153 #[doc = "HSI selected as PLL input clock"]
3002 pub const EIGHTBIT: Self = Self(0); 2154 pub const HSI16: Self = Self(0);
3003 #[doc = "16-bit data frame format is selected for transmission/reception"] 2155 #[doc = "HSE selected as PLL input clock"]
3004 pub const SIXTEENBIT: Self = Self(0x01); 2156 pub const HSE: Self = Self(0x01);
3005 } 2157 }
3006 #[repr(transparent)] 2158 #[repr(transparent)]
3007 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 2159 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3008 pub struct Crcnext(pub u8); 2160 pub struct Hsiouten(pub u8);
3009 impl Crcnext { 2161 impl Hsiouten {
3010 #[doc = "Next transmit value is from Tx buffer"] 2162 #[doc = "HSI output clock disabled"]
3011 pub const TXBUFFER: Self = Self(0); 2163 pub const DISABLED: Self = Self(0);
3012 #[doc = "Next transmit value is from Tx CRC register"] 2164 #[doc = "HSI output clock enabled"]
3013 pub const CRC: Self = Self(0x01); 2165 pub const ENABLED: Self = Self(0x01);
3014 } 2166 }
3015 #[repr(transparent)] 2167 #[repr(transparent)]
3016 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 2168 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3017 pub struct Lsbfirst(pub u8); 2169 pub struct Csslsed(pub u8);
3018 impl Lsbfirst { 2170 impl Csslsed {
3019 #[doc = "Data is transmitted/received with the MSB first"] 2171 #[doc = "No failure detected on LSE (32 kHz oscillator)"]
3020 pub const MSBFIRST: Self = Self(0); 2172 pub const NOFAILURE: Self = Self(0);
3021 #[doc = "Data is transmitted/received with the LSB first"] 2173 #[doc = "Failure detected on LSE (32 kHz oscillator)"]
3022 pub const LSBFIRST: Self = Self(0x01); 2174 pub const FAILURE: Self = Self(0x01);
3023 } 2175 }
3024 #[repr(transparent)] 2176 #[repr(transparent)]
3025 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 2177 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3026 pub struct Bidimode(pub u8); 2178 pub struct Iophrst(pub u8);
3027 impl Bidimode { 2179 impl Iophrst {
3028 #[doc = "2-line unidirectional data mode selected"] 2180 #[doc = "Reset I/O port"]
3029 pub const UNIDIRECTIONAL: Self = Self(0); 2181 pub const RESET: Self = Self(0x01);
3030 #[doc = "1-line bidirectional data mode selected"]
3031 pub const BIDIRECTIONAL: Self = Self(0x01);
3032 } 2182 }
3033 #[repr(transparent)] 2183 #[repr(transparent)]
3034 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 2184 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3035 pub struct Mstr(pub u8); 2185 pub struct Crcsmen(pub u8);
3036 impl Mstr { 2186 impl Crcsmen {
3037 #[doc = "Slave configuration"] 2187 #[doc = "Test integration module clock disabled in Sleep mode"]
3038 pub const SLAVE: Self = Self(0); 2188 pub const DISABLED: Self = Self(0);
3039 #[doc = "Master configuration"] 2189 #[doc = "Test integration module clock enabled in Sleep mode (if enabled by CRCEN)"]
3040 pub const MASTER: Self = Self(0x01); 2190 pub const ENABLED: Self = Self(0x01);
3041 } 2191 }
3042 #[repr(transparent)] 2192 #[repr(transparent)]
3043 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 2193 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3044 pub struct Iscfg(pub u8); 2194 pub struct Mcosel(pub u8);
3045 impl Iscfg { 2195 impl Mcosel {
3046 #[doc = "Slave - transmit"] 2196 #[doc = "No clock"]
3047 pub const SLAVETX: Self = Self(0); 2197 pub const NOCLOCK: Self = Self(0);
3048 #[doc = "Slave - receive"] 2198 #[doc = "SYSCLK clock selected"]
3049 pub const SLAVERX: Self = Self(0x01); 2199 pub const SYSCLK: Self = Self(0x01);
3050 #[doc = "Master - transmit"] 2200 #[doc = "HSI oscillator clock selected"]
3051 pub const MASTERTX: Self = Self(0x02); 2201 pub const HSI16: Self = Self(0x02);
3052 #[doc = "Master - receive"] 2202 #[doc = "MSI oscillator clock selected"]
3053 pub const MASTERRX: Self = Self(0x03); 2203 pub const MSI: Self = Self(0x03);
2204 #[doc = "HSE oscillator clock selected"]
2205 pub const HSE: Self = Self(0x04);
2206 #[doc = "PLL clock selected"]
2207 pub const PLL: Self = Self(0x05);
2208 #[doc = "LSI oscillator clock selected"]
2209 pub const LSI: Self = Self(0x06);
2210 #[doc = "LSE oscillator clock selected"]
2211 pub const LSE: Self = Self(0x07);
3054 } 2212 }
3055 #[repr(transparent)] 2213 #[repr(transparent)]
3056 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 2214 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3057 pub struct Br(pub u8); 2215 pub struct Csshsef(pub u8);
3058 impl Br { 2216 impl Csshsef {
3059 #[doc = "f_PCLK / 2"] 2217 #[doc = "No clock security interrupt caused by HSE clock failure"]
2218 pub const NOCLOCK: Self = Self(0);
2219 #[doc = "Clock security interrupt caused by HSE clock failure"]
2220 pub const CLOCK: Self = Self(0x01);
2221 }
2222 #[repr(transparent)]
2223 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2224 pub struct Icsel(pub u8);
2225 impl Icsel {
2226 #[doc = "APB clock selected as peripheral clock"]
2227 pub const APB: Self = Self(0);
2228 #[doc = "System clock selected as peripheral clock"]
2229 pub const SYSTEM: Self = Self(0x01);
2230 #[doc = "HSI16 clock selected as peripheral clock"]
2231 pub const HSI16: Self = Self(0x02);
2232 }
2233 #[repr(transparent)]
2234 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2235 pub struct Cryprstw(pub u8);
2236 impl Cryprstw {
2237 #[doc = "Reset the module"]
2238 pub const RESET: Self = Self(0x01);
2239 }
2240 #[repr(transparent)]
2241 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2242 pub struct Iophsmen(pub u8);
2243 impl Iophsmen {
2244 #[doc = "Port x clock is disabled in Sleep mode"]
2245 pub const DISABLED: Self = Self(0);
2246 #[doc = "Port x clock is enabled in Sleep mode (if enabled by IOPHEN)"]
2247 pub const ENABLED: Self = Self(0x01);
2248 }
2249 #[repr(transparent)]
2250 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2251 pub struct Pllmul(pub u8);
2252 impl Pllmul {
2253 #[doc = "PLL clock entry x 3"]
2254 pub const MUL3: Self = Self(0);
2255 #[doc = "PLL clock entry x 4"]
2256 pub const MUL4: Self = Self(0x01);
2257 #[doc = "PLL clock entry x 6"]
2258 pub const MUL6: Self = Self(0x02);
2259 #[doc = "PLL clock entry x 8"]
2260 pub const MUL8: Self = Self(0x03);
2261 #[doc = "PLL clock entry x 12"]
2262 pub const MUL12: Self = Self(0x04);
2263 #[doc = "PLL clock entry x 16"]
2264 pub const MUL16: Self = Self(0x05);
2265 #[doc = "PLL clock entry x 24"]
2266 pub const MUL24: Self = Self(0x06);
2267 #[doc = "PLL clock entry x 32"]
2268 pub const MUL32: Self = Self(0x07);
2269 #[doc = "PLL clock entry x 48"]
2270 pub const MUL48: Self = Self(0x08);
2271 }
2272 #[repr(transparent)]
2273 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2274 pub struct Lsebyp(pub u8);
2275 impl Lsebyp {
2276 #[doc = "LSE oscillator not bypassed"]
2277 pub const NOTBYPASSED: Self = Self(0);
2278 #[doc = "LSE oscillator bypassed"]
2279 pub const BYPASSED: Self = Self(0x01);
2280 }
2281 #[repr(transparent)]
2282 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2283 pub struct Hsi16rdyfr(pub u8);
2284 impl Hsi16rdyfr {
2285 #[doc = "HSI 16 MHz oscillator not ready"]
2286 pub const NOTREADY: Self = Self(0);
2287 #[doc = "HSI 16 MHz oscillator ready"]
2288 pub const READY: Self = Self(0x01);
2289 }
2290 #[repr(transparent)]
2291 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2292 pub struct Lpwrrstfr(pub u8);
2293 impl Lpwrrstfr {
2294 #[doc = "No reset has occured"]
2295 pub const NORESET: Self = Self(0);
2296 #[doc = "A reset has occured"]
2297 pub const RESET: Self = Self(0x01);
2298 }
2299 #[repr(transparent)]
2300 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2301 pub struct Dbgrstw(pub u8);
2302 impl Dbgrstw {
2303 #[doc = "Reset the module"]
2304 pub const RESET: Self = Self(0x01);
2305 }
2306 #[repr(transparent)]
2307 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2308 pub struct Lptimrstw(pub u8);
2309 impl Lptimrstw {
2310 #[doc = "Reset the module"]
2311 pub const RESET: Self = Self(0x01);
2312 }
2313 #[repr(transparent)]
2314 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2315 pub struct Hsi48rdyfr(pub u8);
2316 impl Hsi48rdyfr {
2317 #[doc = "No clock ready interrupt"]
2318 pub const NOTINTERRUPTED: Self = Self(0);
2319 #[doc = "Clock ready interrupt"]
2320 pub const INTERRUPTED: Self = Self(0x01);
2321 }
2322 #[repr(transparent)]
2323 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2324 pub struct Iophen(pub u8);
2325 impl Iophen {
2326 #[doc = "Port clock disabled"]
2327 pub const DISABLED: Self = Self(0);
2328 #[doc = "Port clock enabled"]
2329 pub const ENABLED: Self = Self(0x01);
2330 }
2331 #[repr(transparent)]
2332 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2333 pub struct Lptimsel(pub u8);
2334 impl Lptimsel {
2335 #[doc = "APB clock selected as Timer clock"]
2336 pub const APB: Self = Self(0);
2337 #[doc = "LSI clock selected as Timer clock"]
2338 pub const LSI: Self = Self(0x01);
2339 #[doc = "HSI16 clock selected as Timer clock"]
2340 pub const HSI16: Self = Self(0x02);
2341 #[doc = "LSE clock selected as Timer clock"]
2342 pub const LSE: Self = Self(0x03);
2343 }
2344 #[repr(transparent)]
2345 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2346 pub struct Rtcsel(pub u8);
2347 impl Rtcsel {
2348 #[doc = "No clock"]
2349 pub const NOCLOCK: Self = Self(0);
2350 #[doc = "LSE oscillator clock used as RTC clock"]
2351 pub const LSE: Self = Self(0x01);
2352 #[doc = "LSI oscillator clock used as RTC clock"]
2353 pub const LSI: Self = Self(0x02);
2354 #[doc = "HSE oscillator clock divided by a programmable prescaler (selection through the RTCPRE[1:0]
2355bits in the RCC clock control register (RCC_CR)) used as the RTC clock"]
2356 pub const HSE: Self = Self(0x03);
2357 }
2358 #[repr(transparent)]
2359 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2360 pub struct Rtcpre(pub u8);
2361 impl Rtcpre {
2362 #[doc = "HSE divided by 2"]
3060 pub const DIV2: Self = Self(0); 2363 pub const DIV2: Self = Self(0);
3061 #[doc = "f_PCLK / 4"] 2364 #[doc = "HSE divided by 4"]
3062 pub const DIV4: Self = Self(0x01); 2365 pub const DIV4: Self = Self(0x01);
3063 #[doc = "f_PCLK / 8"] 2366 #[doc = "HSE divided by 8"]
3064 pub const DIV8: Self = Self(0x02); 2367 pub const DIV8: Self = Self(0x02);
3065 #[doc = "f_PCLK / 16"] 2368 #[doc = "HSE divided by 16"]
3066 pub const DIV16: Self = Self(0x03); 2369 pub const DIV16: Self = Self(0x03);
3067 #[doc = "f_PCLK / 32"]
3068 pub const DIV32: Self = Self(0x04);
3069 #[doc = "f_PCLK / 64"]
3070 pub const DIV64: Self = Self(0x05);
3071 #[doc = "f_PCLK / 128"]
3072 pub const DIV128: Self = Self(0x06);
3073 #[doc = "f_PCLK / 256"]
3074 pub const DIV256: Self = Self(0x07);
3075 } 2370 }
3076 #[repr(transparent)] 2371 #[repr(transparent)]
3077 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 2372 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3078 pub struct Rxonly(pub u8); 2373 pub struct Lserdy(pub u8);
3079 impl Rxonly { 2374 impl Lserdy {
3080 #[doc = "Full duplex (Transmit and receive)"] 2375 #[doc = "Oscillator not ready"]
3081 pub const FULLDUPLEX: Self = Self(0); 2376 pub const NOTREADY: Self = Self(0);
3082 #[doc = "Output disabled (Receive-only mode)"] 2377 #[doc = "Oscillator ready"]
3083 pub const OUTPUTDISABLED: Self = Self(0x01); 2378 pub const READY: Self = Self(0x01);
3084 } 2379 }
3085 #[repr(transparent)] 2380 #[repr(transparent)]
3086 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 2381 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3087 pub struct Cpol(pub u8); 2382 pub struct Sw(pub u8);
3088 impl Cpol { 2383 impl Sw {
3089 #[doc = "CK to 0 when idle"] 2384 #[doc = "MSI oscillator used as system clock"]
3090 pub const IDLELOW: Self = Self(0); 2385 pub const MSI: Self = Self(0);
3091 #[doc = "CK to 1 when idle"] 2386 #[doc = "HSI oscillator used as system clock"]
3092 pub const IDLEHIGH: Self = Self(0x01); 2387 pub const HSI16: Self = Self(0x01);
2388 #[doc = "HSE oscillator used as system clock"]
2389 pub const HSE: Self = Self(0x02);
2390 #[doc = "PLL used as system clock"]
2391 pub const PLL: Self = Self(0x03);
3093 } 2392 }
3094 #[repr(transparent)] 2393 #[repr(transparent)]
3095 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 2394 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3096 pub struct Frf(pub u8); 2395 pub struct Hserdyr(pub u8);
3097 impl Frf { 2396 impl Hserdyr {
3098 #[doc = "SPI Motorola mode"] 2397 #[doc = "Oscillator is not stable"]
3099 pub const MOTOROLA: Self = Self(0); 2398 pub const NOTREADY: Self = Self(0);
3100 #[doc = "SPI TI mode"] 2399 #[doc = "Oscillator is stable"]
3101 pub const TI: Self = Self(0x01); 2400 pub const READY: Self = Self(0x01);
3102 } 2401 }
3103 #[repr(transparent)] 2402 #[repr(transparent)]
3104 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 2403 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3105 pub struct Cpha(pub u8); 2404 pub struct Csslseon(pub u8);
3106 impl Cpha { 2405 impl Csslseon {
3107 #[doc = "The first clock transition is the first data capture edge"] 2406 #[doc = "Oscillator OFF"]
3108 pub const FIRSTEDGE: Self = Self(0); 2407 pub const OFF: Self = Self(0);
3109 #[doc = "The second clock transition is the first data capture edge"] 2408 #[doc = "Oscillator ON"]
3110 pub const SECONDEDGE: Self = Self(0x01); 2409 pub const ON: Self = Self(0x01);
2410 }
2411 #[repr(transparent)]
2412 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2413 pub struct Csshsecw(pub u8);
2414 impl Csshsecw {
2415 #[doc = "Clear interrupt flag"]
2416 pub const CLEAR: Self = Self(0x01);
2417 }
2418 #[repr(transparent)]
2419 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2420 pub struct Hsidivfr(pub u8);
2421 impl Hsidivfr {
2422 #[doc = "16 MHz HSI clock not divided"]
2423 pub const NOTDIVIDED: Self = Self(0);
2424 #[doc = "16 MHz HSI clock divided by 4"]
2425 pub const DIV4: Self = Self(0x01);
2426 }
2427 #[repr(transparent)]
2428 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2429 pub struct Dbgen(pub u8);
2430 impl Dbgen {
2431 #[doc = "Clock disabled"]
2432 pub const DISABLED: Self = Self(0);
2433 #[doc = "Clock enabled"]
2434 pub const ENABLED: Self = Self(0x01);
2435 }
2436 #[repr(transparent)]
2437 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2438 pub struct Rtcen(pub u8);
2439 impl Rtcen {
2440 #[doc = "RTC clock disabled"]
2441 pub const DISABLED: Self = Self(0);
2442 #[doc = "RTC clock enabled"]
2443 pub const ENABLED: Self = Self(0x01);
2444 }
2445 #[repr(transparent)]
2446 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2447 pub struct Sramsmen(pub u8);
2448 impl Sramsmen {
2449 #[doc = "NVM interface clock disabled in Sleep mode"]
2450 pub const DISABLED: Self = Self(0);
2451 #[doc = "NVM interface clock enabled in Sleep mode"]
2452 pub const ENABLED: Self = Self(0x01);
2453 }
2454 #[repr(transparent)]
2455 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2456 pub struct Msirange(pub u8);
2457 impl Msirange {
2458 #[doc = "range 0 around 65.536 kHz"]
2459 pub const RANGE0: Self = Self(0);
2460 #[doc = "range 1 around 131.072 kHz"]
2461 pub const RANGE1: Self = Self(0x01);
2462 #[doc = "range 2 around 262.144 kHz"]
2463 pub const RANGE2: Self = Self(0x02);
2464 #[doc = "range 3 around 524.288 kHz"]
2465 pub const RANGE3: Self = Self(0x03);
2466 #[doc = "range 4 around 1.048 MHz"]
2467 pub const RANGE4: Self = Self(0x04);
2468 #[doc = "range 5 around 2.097 MHz (reset value)"]
2469 pub const RANGE5: Self = Self(0x05);
2470 #[doc = "range 6 around 4.194 MHz"]
2471 pub const RANGE6: Self = Self(0x06);
2472 #[doc = "not allowed"]
2473 pub const RANGE7: Self = Self(0x07);
2474 }
2475 #[repr(transparent)]
2476 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2477 pub struct Rtcrstw(pub u8);
2478 impl Rtcrstw {
2479 #[doc = "Resets the RTC peripheral"]
2480 pub const RESET: Self = Self(0x01);
2481 }
2482 #[repr(transparent)]
2483 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2484 pub struct Csslse(pub u8);
2485 impl Csslse {
2486 #[doc = "LSE CSS interrupt disabled"]
2487 pub const DISABLED: Self = Self(0);
2488 #[doc = "LSE CSS interrupt enabled"]
2489 pub const ENABLED: Self = Self(0x01);
2490 }
2491 #[repr(transparent)]
2492 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2493 pub struct Hpre(pub u8);
2494 impl Hpre {
2495 #[doc = "system clock not divided"]
2496 pub const DIV1: Self = Self(0);
2497 #[doc = "system clock divided by 2"]
2498 pub const DIV2: Self = Self(0x08);
2499 #[doc = "system clock divided by 4"]
2500 pub const DIV4: Self = Self(0x09);
2501 #[doc = "system clock divided by 8"]
2502 pub const DIV8: Self = Self(0x0a);
2503 #[doc = "system clock divided by 16"]
2504 pub const DIV16: Self = Self(0x0b);
2505 #[doc = "system clock divided by 64"]
2506 pub const DIV64: Self = Self(0x0c);
2507 #[doc = "system clock divided by 128"]
2508 pub const DIV128: Self = Self(0x0d);
2509 #[doc = "system clock divided by 256"]
2510 pub const DIV256: Self = Self(0x0e);
2511 #[doc = "system clock divided by 512"]
2512 pub const DIV512: Self = Self(0x0f);
2513 }
2514 #[repr(transparent)]
2515 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2516 pub struct Hsebyp(pub u8);
2517 impl Hsebyp {
2518 #[doc = "HSE oscillator not bypassed"]
2519 pub const NOTBYPASSED: Self = Self(0);
2520 #[doc = "HSE oscillator bypassed"]
2521 pub const BYPASSED: Self = Self(0x01);
2522 }
2523 #[repr(transparent)]
2524 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2525 pub struct Lptimen(pub u8);
2526 impl Lptimen {
2527 #[doc = "Clock disabled"]
2528 pub const DISABLED: Self = Self(0);
2529 #[doc = "Clock enabled"]
2530 pub const ENABLED: Self = Self(0x01);
2531 }
2532 #[repr(transparent)]
2533 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2534 pub struct Hsidiven(pub u8);
2535 impl Hsidiven {
2536 #[doc = "no 16 MHz HSI division requested"]
2537 pub const NOTDIVIDED: Self = Self(0);
2538 #[doc = "16 MHz HSI division by 4 requested"]
2539 pub const DIV4: Self = Self(0x01);
2540 }
2541 #[repr(transparent)]
2542 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2543 pub struct Lptimsmen(pub u8);
2544 impl Lptimsmen {
2545 #[doc = "Clock disabled"]
2546 pub const DISABLED: Self = Self(0);
2547 #[doc = "Clock enabled"]
2548 pub const ENABLED: Self = Self(0x01);
2549 }
2550 #[repr(transparent)]
2551 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2552 pub struct Plldiv(pub u8);
2553 impl Plldiv {
2554 #[doc = "PLLVCO / 2"]
2555 pub const DIV2: Self = Self(0x01);
2556 #[doc = "PLLVCO / 3"]
2557 pub const DIV3: Self = Self(0x02);
2558 #[doc = "PLLVCO / 4"]
2559 pub const DIV4: Self = Self(0x03);
2560 }
2561 #[repr(transparent)]
2562 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2563 pub struct Hsirdyie(pub u8);
2564 impl Hsirdyie {
2565 #[doc = "Ready interrupt disabled"]
2566 pub const DISABLED: Self = Self(0);
2567 #[doc = "Ready interrupt enabled"]
2568 pub const ENABLED: Self = Self(0x01);
2569 }
2570 #[repr(transparent)]
2571 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2572 pub struct Dmasmen(pub u8);
2573 impl Dmasmen {
2574 #[doc = "DMA clock disabled in Sleep mode"]
2575 pub const DISABLED: Self = Self(0);
2576 #[doc = "DMA clock enabled in Sleep mode"]
2577 pub const ENABLED: Self = Self(0x01);
2578 }
2579 #[repr(transparent)]
2580 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2581 pub struct Rmvfw(pub u8);
2582 impl Rmvfw {
2583 #[doc = "Clears the reset flag"]
2584 pub const CLEAR: Self = Self(0x01);
2585 }
2586 #[repr(transparent)]
2587 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2588 pub struct Mcopre(pub u8);
2589 impl Mcopre {
2590 #[doc = "No division"]
2591 pub const DIV1: Self = Self(0);
2592 #[doc = "Division by 2"]
2593 pub const DIV2: Self = Self(0x01);
2594 #[doc = "Division by 4"]
2595 pub const DIV4: Self = Self(0x02);
2596 #[doc = "Division by 8"]
2597 pub const DIV8: Self = Self(0x03);
2598 #[doc = "Division by 16"]
2599 pub const DIV16: Self = Self(0x04);
2600 }
2601 #[repr(transparent)]
2602 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2603 pub struct Ppre(pub u8);
2604 impl Ppre {
2605 #[doc = "HCLK not divided"]
2606 pub const DIV1: Self = Self(0);
2607 #[doc = "HCLK divided by 2"]
2608 pub const DIV2: Self = Self(0x04);
2609 #[doc = "HCLK divided by 4"]
2610 pub const DIV4: Self = Self(0x05);
2611 #[doc = "HCLK divided by 8"]
2612 pub const DIV8: Self = Self(0x06);
2613 #[doc = "HCLK divided by 16"]
2614 pub const DIV16: Self = Self(0x07);
2615 }
2616 #[repr(transparent)]
2617 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2618 pub struct Stopwuck(pub u8);
2619 impl Stopwuck {
2620 #[doc = "Internal 64 KHz to 4 MHz (MSI) oscillator selected as wake-up from Stop clock"]
2621 pub const MSI: Self = Self(0);
2622 #[doc = "Internal 16 MHz (HSI) oscillator selected as wake-up from Stop clock (or HSI16/4 if HSI16DIVEN=1)"]
2623 pub const HSI16: Self = Self(0x01);
2624 }
2625 #[repr(transparent)]
2626 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2627 pub struct Pllrdyr(pub u8);
2628 impl Pllrdyr {
2629 #[doc = "PLL unlocked"]
2630 pub const UNLOCKED: Self = Self(0);
2631 #[doc = "PLL locked"]
2632 pub const LOCKED: Self = Self(0x01);
2633 }
2634 #[repr(transparent)]
2635 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2636 pub struct Lpuartsel(pub u8);
2637 impl Lpuartsel {
2638 #[doc = "APB clock selected as peripheral clock"]
2639 pub const APB: Self = Self(0);
2640 #[doc = "System clock selected as peripheral clock"]
2641 pub const SYSTEM: Self = Self(0x01);
2642 #[doc = "HSI16 clock selected as peripheral clock"]
2643 pub const HSI16: Self = Self(0x02);
2644 #[doc = "LSE clock selected as peripheral clock"]
2645 pub const LSE: Self = Self(0x03);
2646 }
2647 #[repr(transparent)]
2648 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2649 pub struct Crypen(pub u8);
2650 impl Crypen {
2651 #[doc = "Clock disabled"]
2652 pub const DISABLED: Self = Self(0);
2653 #[doc = "Clock enabled"]
2654 pub const ENABLED: Self = Self(0x01);
2655 }
2656 #[repr(transparent)]
2657 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2658 pub struct Csslsef(pub u8);
2659 impl Csslsef {
2660 #[doc = "No failure detected on LSE clock failure"]
2661 pub const NOFAILURE: Self = Self(0);
2662 #[doc = "Failure detected on LSE clock failure"]
2663 pub const FAILURE: Self = Self(0x01);
2664 }
2665 #[repr(transparent)]
2666 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2667 pub struct Pllon(pub u8);
2668 impl Pllon {
2669 #[doc = "Clock disabled"]
2670 pub const DISABLED: Self = Self(0);
2671 #[doc = "Clock enabled"]
2672 pub const ENABLED: Self = Self(0x01);
2673 }
2674 #[repr(transparent)]
2675 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2676 pub struct Crypsmen(pub u8);
2677 impl Crypsmen {
2678 #[doc = "Crypto clock disabled in Sleep mode"]
2679 pub const DISABLED: Self = Self(0);
2680 #[doc = "Crypto clock enabled in Sleep mode"]
2681 pub const ENABLED: Self = Self(0x01);
2682 }
2683 #[repr(transparent)]
2684 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2685 pub struct Mifsmen(pub u8);
2686 impl Mifsmen {
2687 #[doc = "NVM interface clock disabled in Sleep mode"]
2688 pub const DISABLED: Self = Self(0);
2689 #[doc = "NVM interface clock enabled in Sleep mode"]
2690 pub const ENABLED: Self = Self(0x01);
2691 }
2692 #[repr(transparent)]
2693 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
2694 pub struct Sws(pub u8);
2695 impl Sws {
2696 #[doc = "MSI oscillator used as system clock"]
2697 pub const MSI: Self = Self(0);
2698 #[doc = "HSI oscillator used as system clock"]
2699 pub const HSI16: Self = Self(0x01);
2700 #[doc = "HSE oscillator used as system clock"]
2701 pub const HSE: Self = Self(0x02);
2702 #[doc = "PLL used as system clock"]
2703 pub const PLL: Self = Self(0x03);
3111 } 2704 }
3112 } 2705 }
3113} 2706}
3114pub mod generic { 2707pub mod rng_v1 {
3115 use core::marker::PhantomData; 2708 use crate::generic::*;
3116 #[derive(Copy, Clone)] 2709 #[doc = "Random number generator"]
3117 pub struct RW;
3118 #[derive(Copy, Clone)]
3119 pub struct R;
3120 #[derive(Copy, Clone)]
3121 pub struct W;
3122 mod sealed {
3123 use super::*;
3124 pub trait Access {}
3125 impl Access for R {}
3126 impl Access for W {}
3127 impl Access for RW {}
3128 }
3129 pub trait Access: sealed::Access + Copy {}
3130 impl Access for R {}
3131 impl Access for W {}
3132 impl Access for RW {}
3133 pub trait Read: Access {}
3134 impl Read for RW {}
3135 impl Read for R {}
3136 pub trait Write: Access {}
3137 impl Write for RW {}
3138 impl Write for W {}
3139 #[derive(Copy, Clone)] 2710 #[derive(Copy, Clone)]
3140 pub struct Reg<T: Copy, A: Access> { 2711 pub struct Rng(pub *mut u8);
3141 ptr: *mut u8, 2712 unsafe impl Send for Rng {}
3142 phantom: PhantomData<*mut (T, A)>, 2713 unsafe impl Sync for Rng {}
3143 } 2714 impl Rng {
3144 unsafe impl<T: Copy, A: Access> Send for Reg<T, A> {} 2715 #[doc = "control register"]
3145 unsafe impl<T: Copy, A: Access> Sync for Reg<T, A> {} 2716 pub fn cr(self) -> Reg<regs::Cr, RW> {
3146 impl<T: Copy, A: Access> Reg<T, A> { 2717 unsafe { Reg::from_ptr(self.0.add(0usize)) }
3147 pub fn from_ptr(ptr: *mut u8) -> Self {
3148 Self {
3149 ptr,
3150 phantom: PhantomData,
3151 }
3152 } 2718 }
3153 pub fn ptr(&self) -> *mut T { 2719 #[doc = "status register"]
3154 self.ptr as _ 2720 pub fn sr(self) -> Reg<regs::Sr, RW> {
2721 unsafe { Reg::from_ptr(self.0.add(4usize)) }
3155 } 2722 }
3156 } 2723 #[doc = "data register"]
3157 impl<T: Copy, A: Read> Reg<T, A> { 2724 pub fn dr(self) -> Reg<u32, R> {
3158 pub unsafe fn read(&self) -> T { 2725 unsafe { Reg::from_ptr(self.0.add(8usize)) }
3159 (self.ptr as *mut T).read_volatile()
3160 } 2726 }
3161 } 2727 }
3162 impl<T: Copy, A: Write> Reg<T, A> { 2728 pub mod regs {
3163 pub unsafe fn write_value(&self, val: T) { 2729 use crate::generic::*;
3164 (self.ptr as *mut T).write_volatile(val) 2730 #[doc = "status register"]
2731 #[repr(transparent)]
2732 #[derive(Copy, Clone, Eq, PartialEq)]
2733 pub struct Sr(pub u32);
2734 impl Sr {
2735 #[doc = "Data ready"]
2736 pub const fn drdy(&self) -> bool {
2737 let val = (self.0 >> 0usize) & 0x01;
2738 val != 0
2739 }
2740 #[doc = "Data ready"]
2741 pub fn set_drdy(&mut self, val: bool) {
2742 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
2743 }
2744 #[doc = "Clock error current status"]
2745 pub const fn cecs(&self) -> bool {
2746 let val = (self.0 >> 1usize) & 0x01;
2747 val != 0
2748 }
2749 #[doc = "Clock error current status"]
2750 pub fn set_cecs(&mut self, val: bool) {
2751 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
2752 }
2753 #[doc = "Seed error current status"]
2754 pub const fn secs(&self) -> bool {
2755 let val = (self.0 >> 2usize) & 0x01;
2756 val != 0
2757 }
2758 #[doc = "Seed error current status"]
2759 pub fn set_secs(&mut self, val: bool) {
2760 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
2761 }
2762 #[doc = "Clock error interrupt status"]
2763 pub const fn ceis(&self) -> bool {
2764 let val = (self.0 >> 5usize) & 0x01;
2765 val != 0
2766 }
2767 #[doc = "Clock error interrupt status"]
2768 pub fn set_ceis(&mut self, val: bool) {
2769 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
2770 }
2771 #[doc = "Seed error interrupt status"]
2772 pub const fn seis(&self) -> bool {
2773 let val = (self.0 >> 6usize) & 0x01;
2774 val != 0
2775 }
2776 #[doc = "Seed error interrupt status"]
2777 pub fn set_seis(&mut self, val: bool) {
2778 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
2779 }
3165 } 2780 }
3166 } 2781 impl Default for Sr {
3167 impl<T: Default + Copy, A: Write> Reg<T, A> { 2782 fn default() -> Sr {
3168 pub unsafe fn write<R>(&self, f: impl FnOnce(&mut T) -> R) -> R { 2783 Sr(0)
3169 let mut val = Default::default(); 2784 }
3170 let res = f(&mut val);
3171 self.write_value(val);
3172 res
3173 } 2785 }
3174 } 2786 #[doc = "control register"]
3175 impl<T: Copy, A: Read + Write> Reg<T, A> { 2787 #[repr(transparent)]
3176 pub unsafe fn modify<R>(&self, f: impl FnOnce(&mut T) -> R) -> R { 2788 #[derive(Copy, Clone, Eq, PartialEq)]
3177 let mut val = self.read(); 2789 pub struct Cr(pub u32);
3178 let res = f(&mut val); 2790 impl Cr {
3179 self.write_value(val); 2791 #[doc = "Random number generator enable"]
3180 res 2792 pub const fn rngen(&self) -> bool {
2793 let val = (self.0 >> 2usize) & 0x01;
2794 val != 0
2795 }
2796 #[doc = "Random number generator enable"]
2797 pub fn set_rngen(&mut self, val: bool) {
2798 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
2799 }
2800 #[doc = "Interrupt enable"]
2801 pub const fn ie(&self) -> bool {
2802 let val = (self.0 >> 3usize) & 0x01;
2803 val != 0
2804 }
2805 #[doc = "Interrupt enable"]
2806 pub fn set_ie(&mut self, val: bool) {
2807 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
2808 }
2809 }
2810 impl Default for Cr {
2811 fn default() -> Cr {
2812 Cr(0)
2813 }
3181 } 2814 }
3182 } 2815 }
3183} 2816}
@@ -3476,1862 +3109,845 @@ pub mod rcc_h7 {
3476 unsafe { Reg::from_ptr(self.0.add(380usize)) } 3109 unsafe { Reg::from_ptr(self.0.add(380usize)) }
3477 } 3110 }
3478 } 3111 }
3479 pub mod vals {
3480 use crate::generic::*;
3481 #[repr(transparent)]
3482 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3483 pub struct Timpre(pub u8);
3484 impl Timpre {
3485 #[doc = "Timer kernel clock equal to 2x pclk by default"]
3486 pub const DEFAULTX2: Self = Self(0);
3487 #[doc = "Timer kernel clock equal to 4x pclk by default"]
3488 pub const DEFAULTX4: Self = Self(0x01);
3489 }
3490 #[repr(transparent)]
3491 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3492 pub struct Apb4enrSyscfgen(pub u8);
3493 impl Apb4enrSyscfgen {
3494 #[doc = "The selected clock is disabled"]
3495 pub const DISABLED: Self = Self(0);
3496 #[doc = "The selected clock is enabled"]
3497 pub const ENABLED: Self = Self(0x01);
3498 }
3499 #[repr(transparent)]
3500 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3501 pub struct C1Ahb2lpenrDcmilpen(pub u8);
3502 impl C1Ahb2lpenrDcmilpen {
3503 #[doc = "The selected clock is disabled during csleep mode"]
3504 pub const DISABLED: Self = Self(0);
3505 #[doc = "The selected clock is enabled during csleep mode"]
3506 pub const ENABLED: Self = Self(0x01);
3507 }
3508 #[repr(transparent)]
3509 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3510 pub struct Ww1rsc(pub u8);
3511 impl Ww1rsc {
3512 #[doc = "Clear WWDG1 scope control"]
3513 pub const CLEAR: Self = Self(0);
3514 #[doc = "Set WWDG1 scope control"]
3515 pub const SET: Self = Self(0x01);
3516 }
3517 #[repr(transparent)]
3518 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3519 pub struct Lseon(pub u8);
3520 impl Lseon {
3521 #[doc = "LSE oscillator Off"]
3522 pub const OFF: Self = Self(0);
3523 #[doc = "LSE oscillator On"]
3524 pub const ON: Self = Self(0x01);
3525 }
3526 #[repr(transparent)]
3527 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3528 pub struct Camitfrst(pub u8);
3529 impl Camitfrst {
3530 #[doc = "Reset the selected module"]
3531 pub const RESET: Self = Self(0x01);
3532 }
3533 #[repr(transparent)]
3534 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3535 pub struct Lsecssdr(pub u8);
3536 impl Lsecssdr {
3537 #[doc = "No failure detected on 32 kHz oscillator"]
3538 pub const NOFAILURE: Self = Self(0);
3539 #[doc = "Failure detected on 32 kHz oscillator"]
3540 pub const FAILURE: Self = Self(0x01);
3541 }
3542 #[repr(transparent)]
3543 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3544 pub struct Stopwuck(pub u8);
3545 impl Stopwuck {
3546 #[doc = "HSI selected as wake up clock from system Stop"]
3547 pub const HSI: Self = Self(0);
3548 #[doc = "CSI selected as wake up clock from system Stop"]
3549 pub const CSI: Self = Self(0x01);
3550 }
3551 #[repr(transparent)]
3552 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3553 pub struct Gpioarst(pub u8);
3554 impl Gpioarst {
3555 #[doc = "Reset the selected module"]
3556 pub const RESET: Self = Self(0x01);
3557 }
3558 #[repr(transparent)]
3559 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3560 pub struct C1Apb3lpenrLtdclpen(pub u8);
3561 impl C1Apb3lpenrLtdclpen {
3562 #[doc = "The selected clock is disabled during csleep mode"]
3563 pub const DISABLED: Self = Self(0);
3564 #[doc = "The selected clock is enabled during csleep mode"]
3565 pub const ENABLED: Self = Self(0x01);
3566 }
3567 #[repr(transparent)]
3568 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3569 pub struct Apb1henrCrsen(pub u8);
3570 impl Apb1henrCrsen {
3571 #[doc = "The selected clock is disabled"]
3572 pub const DISABLED: Self = Self(0);
3573 #[doc = "The selected clock is enabled"]
3574 pub const ENABLED: Self = Self(0x01);
3575 }
3576 #[repr(transparent)]
3577 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3578 pub struct Pll1vcosel(pub u8);
3579 impl Pll1vcosel {
3580 #[doc = "VCO frequency range 192 to 836 MHz"]
3581 pub const WIDEVCO: Self = Self(0);
3582 #[doc = "VCO frequency range 150 to 420 MHz"]
3583 pub const MEDIUMVCO: Self = Self(0x01);
3584 }
3585 #[repr(transparent)]
3586 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3587 pub struct Mdmarst(pub u8);
3588 impl Mdmarst {
3589 #[doc = "Reset the selected module"]
3590 pub const RESET: Self = Self(0x01);
3591 }
3592 #[repr(transparent)]
3593 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3594 pub struct Ckpersel(pub u8);
3595 impl Ckpersel {
3596 #[doc = "HSI selected as peripheral clock"]
3597 pub const HSI: Self = Self(0);
3598 #[doc = "CSI selected as peripheral clock"]
3599 pub const CSI: Self = Self(0x01);
3600 #[doc = "HSE selected as peripheral clock"]
3601 pub const HSE: Self = Self(0x02);
3602 }
3603 #[repr(transparent)]
3604 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3605 pub struct C1Ahb4enrGpioaen(pub u8);
3606 impl C1Ahb4enrGpioaen {
3607 #[doc = "The selected clock is disabled"]
3608 pub const DISABLED: Self = Self(0);
3609 #[doc = "The selected clock is enabled"]
3610 pub const ENABLED: Self = Self(0x01);
3611 }
3612 #[repr(transparent)]
3613 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3614 pub struct Usart16sel(pub u8);
3615 impl Usart16sel {
3616 #[doc = "rcc_pclk2 selected as peripheral clock"]
3617 pub const RCC_PCLK2: Self = Self(0);
3618 #[doc = "pll2_q selected as peripheral clock"]
3619 pub const PLL2_Q: Self = Self(0x01);
3620 #[doc = "pll3_q selected as peripheral clock"]
3621 pub const PLL3_Q: Self = Self(0x02);
3622 #[doc = "hsi_ker selected as peripheral clock"]
3623 pub const HSI_KER: Self = Self(0x03);
3624 #[doc = "csi_ker selected as peripheral clock"]
3625 pub const CSI_KER: Self = Self(0x04);
3626 #[doc = "LSE selected as peripheral clock"]
3627 pub const LSE: Self = Self(0x05);
3628 }
3629 #[repr(transparent)]
3630 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3631 pub struct Pllsrc(pub u8);
3632 impl Pllsrc {
3633 #[doc = "HSI selected as PLL clock"]
3634 pub const HSI: Self = Self(0);
3635 #[doc = "CSI selected as PLL clock"]
3636 pub const CSI: Self = Self(0x01);
3637 #[doc = "HSE selected as PLL clock"]
3638 pub const HSE: Self = Self(0x02);
3639 #[doc = "No clock sent to DIVMx dividers and PLLs"]
3640 pub const NONE: Self = Self(0x03);
3641 }
3642 #[repr(transparent)]
3643 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3644 pub struct RsrRmvf(pub u8);
3645 impl RsrRmvf {
3646 #[doc = "Not clearing the the reset flags"]
3647 pub const NOTACTIVE: Self = Self(0);
3648 #[doc = "Clear the reset flags"]
3649 pub const CLEAR: Self = Self(0x01);
3650 }
3651 #[repr(transparent)]
3652 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3653 pub struct Hsion(pub u8);
3654 impl Hsion {
3655 #[doc = "Clock Off"]
3656 pub const OFF: Self = Self(0);
3657 #[doc = "Clock On"]
3658 pub const ON: Self = Self(0x01);
3659 }
3660 #[repr(transparent)]
3661 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3662 pub struct C1Apb1lenrTim2en(pub u8);
3663 impl C1Apb1lenrTim2en {
3664 #[doc = "The selected clock is disabled"]
3665 pub const DISABLED: Self = Self(0);
3666 #[doc = "The selected clock is enabled"]
3667 pub const ENABLED: Self = Self(0x01);
3668 }
3669 #[repr(transparent)]
3670 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3671 pub struct Apb2enrTim1en(pub u8);
3672 impl Apb2enrTim1en {
3673 #[doc = "The selected clock is disabled"]
3674 pub const DISABLED: Self = Self(0);
3675 #[doc = "The selected clock is enabled"]
3676 pub const ENABLED: Self = Self(0x01);
3677 }
3678 #[repr(transparent)]
3679 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3680 pub struct Lsion(pub u8);
3681 impl Lsion {
3682 #[doc = "LSI oscillator Off"]
3683 pub const OFF: Self = Self(0);
3684 #[doc = "LSI oscillator On"]
3685 pub const ON: Self = Self(0x01);
3686 }
3687 #[repr(transparent)]
3688 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3689 pub struct C1Apb1llpenrTim2lpen(pub u8);
3690 impl C1Apb1llpenrTim2lpen {
3691 #[doc = "The selected clock is disabled during csleep mode"]
3692 pub const DISABLED: Self = Self(0);
3693 #[doc = "The selected clock is enabled during csleep mode"]
3694 pub const ENABLED: Self = Self(0x01);
3695 }
3696 #[repr(transparent)]
3697 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3698 pub struct Crsrst(pub u8);
3699 impl Crsrst {
3700 #[doc = "Reset the selected module"]
3701 pub const RESET: Self = Self(0x01);
3702 }
3703 #[repr(transparent)]
3704 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3705 pub struct Ahb2lpenrDcmilpen(pub u8);
3706 impl Ahb2lpenrDcmilpen {
3707 #[doc = "The selected clock is disabled during csleep mode"]
3708 pub const DISABLED: Self = Self(0);
3709 #[doc = "The selected clock is enabled during csleep mode"]
3710 pub const ENABLED: Self = Self(0x01);
3711 }
3712 #[repr(transparent)]
3713 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3714 pub struct Divp1(pub u8);
3715 impl Divp1 {
3716 #[doc = "pll_p_ck = vco_ck"]
3717 pub const DIV1: Self = Self(0);
3718 #[doc = "pll_p_ck = vco_ck / 2"]
3719 pub const DIV2: Self = Self(0x01);
3720 #[doc = "pll_p_ck = vco_ck / 4"]
3721 pub const DIV4: Self = Self(0x03);
3722 #[doc = "pll_p_ck = vco_ck / 6"]
3723 pub const DIV6: Self = Self(0x05);
3724 #[doc = "pll_p_ck = vco_ck / 8"]
3725 pub const DIV8: Self = Self(0x07);
3726 #[doc = "pll_p_ck = vco_ck / 10"]
3727 pub const DIV10: Self = Self(0x09);
3728 #[doc = "pll_p_ck = vco_ck / 12"]
3729 pub const DIV12: Self = Self(0x0b);
3730 #[doc = "pll_p_ck = vco_ck / 14"]
3731 pub const DIV14: Self = Self(0x0d);
3732 #[doc = "pll_p_ck = vco_ck / 16"]
3733 pub const DIV16: Self = Self(0x0f);
3734 #[doc = "pll_p_ck = vco_ck / 18"]
3735 pub const DIV18: Self = Self(0x11);
3736 #[doc = "pll_p_ck = vco_ck / 20"]
3737 pub const DIV20: Self = Self(0x13);
3738 #[doc = "pll_p_ck = vco_ck / 22"]
3739 pub const DIV22: Self = Self(0x15);
3740 #[doc = "pll_p_ck = vco_ck / 24"]
3741 pub const DIV24: Self = Self(0x17);
3742 #[doc = "pll_p_ck = vco_ck / 26"]
3743 pub const DIV26: Self = Self(0x19);
3744 #[doc = "pll_p_ck = vco_ck / 28"]
3745 pub const DIV28: Self = Self(0x1b);
3746 #[doc = "pll_p_ck = vco_ck / 30"]
3747 pub const DIV30: Self = Self(0x1d);
3748 #[doc = "pll_p_ck = vco_ck / 32"]
3749 pub const DIV32: Self = Self(0x1f);
3750 #[doc = "pll_p_ck = vco_ck / 34"]
3751 pub const DIV34: Self = Self(0x21);
3752 #[doc = "pll_p_ck = vco_ck / 36"]
3753 pub const DIV36: Self = Self(0x23);
3754 #[doc = "pll_p_ck = vco_ck / 38"]
3755 pub const DIV38: Self = Self(0x25);
3756 #[doc = "pll_p_ck = vco_ck / 40"]
3757 pub const DIV40: Self = Self(0x27);
3758 #[doc = "pll_p_ck = vco_ck / 42"]
3759 pub const DIV42: Self = Self(0x29);
3760 #[doc = "pll_p_ck = vco_ck / 44"]
3761 pub const DIV44: Self = Self(0x2b);
3762 #[doc = "pll_p_ck = vco_ck / 46"]
3763 pub const DIV46: Self = Self(0x2d);
3764 #[doc = "pll_p_ck = vco_ck / 48"]
3765 pub const DIV48: Self = Self(0x2f);
3766 #[doc = "pll_p_ck = vco_ck / 50"]
3767 pub const DIV50: Self = Self(0x31);
3768 #[doc = "pll_p_ck = vco_ck / 52"]
3769 pub const DIV52: Self = Self(0x33);
3770 #[doc = "pll_p_ck = vco_ck / 54"]
3771 pub const DIV54: Self = Self(0x35);
3772 #[doc = "pll_p_ck = vco_ck / 56"]
3773 pub const DIV56: Self = Self(0x37);
3774 #[doc = "pll_p_ck = vco_ck / 58"]
3775 pub const DIV58: Self = Self(0x39);
3776 #[doc = "pll_p_ck = vco_ck / 60"]
3777 pub const DIV60: Self = Self(0x3b);
3778 #[doc = "pll_p_ck = vco_ck / 62"]
3779 pub const DIV62: Self = Self(0x3d);
3780 #[doc = "pll_p_ck = vco_ck / 64"]
3781 pub const DIV64: Self = Self(0x3f);
3782 #[doc = "pll_p_ck = vco_ck / 66"]
3783 pub const DIV66: Self = Self(0x41);
3784 #[doc = "pll_p_ck = vco_ck / 68"]
3785 pub const DIV68: Self = Self(0x43);
3786 #[doc = "pll_p_ck = vco_ck / 70"]
3787 pub const DIV70: Self = Self(0x45);
3788 #[doc = "pll_p_ck = vco_ck / 72"]
3789 pub const DIV72: Self = Self(0x47);
3790 #[doc = "pll_p_ck = vco_ck / 74"]
3791 pub const DIV74: Self = Self(0x49);
3792 #[doc = "pll_p_ck = vco_ck / 76"]
3793 pub const DIV76: Self = Self(0x4b);
3794 #[doc = "pll_p_ck = vco_ck / 78"]
3795 pub const DIV78: Self = Self(0x4d);
3796 #[doc = "pll_p_ck = vco_ck / 80"]
3797 pub const DIV80: Self = Self(0x4f);
3798 #[doc = "pll_p_ck = vco_ck / 82"]
3799 pub const DIV82: Self = Self(0x51);
3800 #[doc = "pll_p_ck = vco_ck / 84"]
3801 pub const DIV84: Self = Self(0x53);
3802 #[doc = "pll_p_ck = vco_ck / 86"]
3803 pub const DIV86: Self = Self(0x55);
3804 #[doc = "pll_p_ck = vco_ck / 88"]
3805 pub const DIV88: Self = Self(0x57);
3806 #[doc = "pll_p_ck = vco_ck / 90"]
3807 pub const DIV90: Self = Self(0x59);
3808 #[doc = "pll_p_ck = vco_ck / 92"]
3809 pub const DIV92: Self = Self(0x5b);
3810 #[doc = "pll_p_ck = vco_ck / 94"]
3811 pub const DIV94: Self = Self(0x5d);
3812 #[doc = "pll_p_ck = vco_ck / 96"]
3813 pub const DIV96: Self = Self(0x5f);
3814 #[doc = "pll_p_ck = vco_ck / 98"]
3815 pub const DIV98: Self = Self(0x61);
3816 #[doc = "pll_p_ck = vco_ck / 100"]
3817 pub const DIV100: Self = Self(0x63);
3818 #[doc = "pll_p_ck = vco_ck / 102"]
3819 pub const DIV102: Self = Self(0x65);
3820 #[doc = "pll_p_ck = vco_ck / 104"]
3821 pub const DIV104: Self = Self(0x67);
3822 #[doc = "pll_p_ck = vco_ck / 106"]
3823 pub const DIV106: Self = Self(0x69);
3824 #[doc = "pll_p_ck = vco_ck / 108"]
3825 pub const DIV108: Self = Self(0x6b);
3826 #[doc = "pll_p_ck = vco_ck / 110"]
3827 pub const DIV110: Self = Self(0x6d);
3828 #[doc = "pll_p_ck = vco_ck / 112"]
3829 pub const DIV112: Self = Self(0x6f);
3830 #[doc = "pll_p_ck = vco_ck / 114"]
3831 pub const DIV114: Self = Self(0x71);
3832 #[doc = "pll_p_ck = vco_ck / 116"]
3833 pub const DIV116: Self = Self(0x73);
3834 #[doc = "pll_p_ck = vco_ck / 118"]
3835 pub const DIV118: Self = Self(0x75);
3836 #[doc = "pll_p_ck = vco_ck / 120"]
3837 pub const DIV120: Self = Self(0x77);
3838 #[doc = "pll_p_ck = vco_ck / 122"]
3839 pub const DIV122: Self = Self(0x79);
3840 #[doc = "pll_p_ck = vco_ck / 124"]
3841 pub const DIV124: Self = Self(0x7b);
3842 #[doc = "pll_p_ck = vco_ck / 126"]
3843 pub const DIV126: Self = Self(0x7d);
3844 #[doc = "pll_p_ck = vco_ck / 128"]
3845 pub const DIV128: Self = Self(0x7f);
3846 }
3847 #[repr(transparent)]
3848 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3849 pub struct C1RsrRmvf(pub u8);
3850 impl C1RsrRmvf {
3851 #[doc = "Not clearing the the reset flags"]
3852 pub const NOTACTIVE: Self = Self(0);
3853 #[doc = "Clear the reset flags"]
3854 pub const CLEAR: Self = Self(0x01);
3855 }
3856 #[repr(transparent)]
3857 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3858 pub struct Hpre(pub u8);
3859 impl Hpre {
3860 #[doc = "sys_ck not divided"]
3861 pub const DIV1: Self = Self(0);
3862 #[doc = "sys_ck divided by 2"]
3863 pub const DIV2: Self = Self(0x08);
3864 #[doc = "sys_ck divided by 4"]
3865 pub const DIV4: Self = Self(0x09);
3866 #[doc = "sys_ck divided by 8"]
3867 pub const DIV8: Self = Self(0x0a);
3868 #[doc = "sys_ck divided by 16"]
3869 pub const DIV16: Self = Self(0x0b);
3870 #[doc = "sys_ck divided by 64"]
3871 pub const DIV64: Self = Self(0x0c);
3872 #[doc = "sys_ck divided by 128"]
3873 pub const DIV128: Self = Self(0x0d);
3874 #[doc = "sys_ck divided by 256"]
3875 pub const DIV256: Self = Self(0x0e);
3876 #[doc = "sys_ck divided by 512"]
3877 pub const DIV512: Self = Self(0x0f);
3878 }
3879 #[repr(transparent)]
3880 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3881 pub struct RsrCpurstfr(pub u8);
3882 impl RsrCpurstfr {
3883 #[doc = "No reset occoured for block"]
3884 pub const NORESETOCCOURED: Self = Self(0);
3885 #[doc = "Reset occoured for block"]
3886 pub const RESETOCCOURRED: Self = Self(0x01);
3887 }
3888 #[repr(transparent)]
3889 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3890 pub struct C1Ahb4lpenrGpioalpen(pub u8);
3891 impl C1Ahb4lpenrGpioalpen {
3892 #[doc = "The selected clock is disabled during csleep mode"]
3893 pub const DISABLED: Self = Self(0);
3894 #[doc = "The selected clock is enabled during csleep mode"]
3895 pub const ENABLED: Self = Self(0x01);
3896 }
3897 #[repr(transparent)]
3898 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3899 pub struct Lptim2sel(pub u8);
3900 impl Lptim2sel {
3901 #[doc = "rcc_pclk4 selected as peripheral clock"]
3902 pub const RCC_PCLK4: Self = Self(0);
3903 #[doc = "pll2_p selected as peripheral clock"]
3904 pub const PLL2_P: Self = Self(0x01);
3905 #[doc = "pll3_r selected as peripheral clock"]
3906 pub const PLL3_R: Self = Self(0x02);
3907 #[doc = "LSE selected as peripheral clock"]
3908 pub const LSE: Self = Self(0x03);
3909 #[doc = "LSI selected as peripheral clock"]
3910 pub const LSI: Self = Self(0x04);
3911 #[doc = "PER selected as peripheral clock"]
3912 pub const PER: Self = Self(0x05);
3913 }
3914 #[repr(transparent)]
3915 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3916 pub struct C1Apb4lpenrSyscfglpen(pub u8);
3917 impl C1Apb4lpenrSyscfglpen {
3918 #[doc = "The selected clock is disabled during csleep mode"]
3919 pub const DISABLED: Self = Self(0);
3920 #[doc = "The selected clock is enabled during csleep mode"]
3921 pub const ENABLED: Self = Self(0x01);
3922 }
3923 #[repr(transparent)]
3924 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3925 pub struct Divp1en(pub u8);
3926 impl Divp1en {
3927 #[doc = "Clock ouput is disabled"]
3928 pub const DISABLED: Self = Self(0);
3929 #[doc = "Clock output is enabled"]
3930 pub const ENABLED: Self = Self(0x01);
3931 }
3932 #[repr(transparent)]
3933 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3934 pub struct Lsedrv(pub u8);
3935 impl Lsedrv {
3936 #[doc = "Lowest LSE oscillator driving capability"]
3937 pub const LOWEST: Self = Self(0);
3938 #[doc = "Medium low LSE oscillator driving capability"]
3939 pub const MEDIUMLOW: Self = Self(0x01);
3940 #[doc = "Medium high LSE oscillator driving capability"]
3941 pub const MEDIUMHIGH: Self = Self(0x02);
3942 #[doc = "Highest LSE oscillator driving capability"]
3943 pub const HIGHEST: Self = Self(0x03);
3944 }
3945 #[repr(transparent)]
3946 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3947 pub struct Tim1rst(pub u8);
3948 impl Tim1rst {
3949 #[doc = "Reset the selected module"]
3950 pub const RESET: Self = Self(0x01);
3951 }
3952 #[repr(transparent)]
3953 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3954 pub struct C1Apb1henrCrsen(pub u8);
3955 impl C1Apb1henrCrsen {
3956 #[doc = "The selected clock is disabled"]
3957 pub const DISABLED: Self = Self(0);
3958 #[doc = "The selected clock is enabled"]
3959 pub const ENABLED: Self = Self(0x01);
3960 }
3961 #[repr(transparent)]
3962 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3963 pub struct D3ppre(pub u8);
3964 impl D3ppre {
3965 #[doc = "rcc_hclk not divided"]
3966 pub const DIV1: Self = Self(0);
3967 #[doc = "rcc_hclk divided by 2"]
3968 pub const DIV2: Self = Self(0x04);
3969 #[doc = "rcc_hclk divided by 4"]
3970 pub const DIV4: Self = Self(0x05);
3971 #[doc = "rcc_hclk divided by 8"]
3972 pub const DIV8: Self = Self(0x06);
3973 #[doc = "rcc_hclk divided by 16"]
3974 pub const DIV16: Self = Self(0x07);
3975 }
3976 #[repr(transparent)]
3977 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3978 pub struct Lptim1sel(pub u8);
3979 impl Lptim1sel {
3980 #[doc = "rcc_pclk1 selected as peripheral clock"]
3981 pub const RCC_PCLK1: Self = Self(0);
3982 #[doc = "pll2_p selected as peripheral clock"]
3983 pub const PLL2_P: Self = Self(0x01);
3984 #[doc = "pll3_r selected as peripheral clock"]
3985 pub const PLL3_R: Self = Self(0x02);
3986 #[doc = "LSE selected as peripheral clock"]
3987 pub const LSE: Self = Self(0x03);
3988 #[doc = "LSI selected as peripheral clock"]
3989 pub const LSI: Self = Self(0x04);
3990 #[doc = "PER selected as peripheral clock"]
3991 pub const PER: Self = Self(0x05);
3992 }
3993 #[repr(transparent)]
3994 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
3995 pub struct Usart234578sel(pub u8);
3996 impl Usart234578sel {
3997 #[doc = "rcc_pclk1 selected as peripheral clock"]
3998 pub const RCC_PCLK1: Self = Self(0);
3999 #[doc = "pll2_q selected as peripheral clock"]
4000 pub const PLL2_Q: Self = Self(0x01);
4001 #[doc = "pll3_q selected as peripheral clock"]
4002 pub const PLL3_Q: Self = Self(0x02);
4003 #[doc = "hsi_ker selected as peripheral clock"]
4004 pub const HSI_KER: Self = Self(0x03);
4005 #[doc = "csi_ker selected as peripheral clock"]
4006 pub const CSI_KER: Self = Self(0x04);
4007 #[doc = "LSE selected as peripheral clock"]
4008 pub const LSE: Self = Self(0x05);
4009 }
4010 #[repr(transparent)]
4011 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4012 pub struct Lpuart1sel(pub u8);
4013 impl Lpuart1sel {
4014 #[doc = "rcc_pclk_d3 selected as peripheral clock"]
4015 pub const RCC_PCLK_D3: Self = Self(0);
4016 #[doc = "pll2_q selected as peripheral clock"]
4017 pub const PLL2_Q: Self = Self(0x01);
4018 #[doc = "pll3_q selected as peripheral clock"]
4019 pub const PLL3_Q: Self = Self(0x02);
4020 #[doc = "hsi_ker selected as peripheral clock"]
4021 pub const HSI_KER: Self = Self(0x03);
4022 #[doc = "csi_ker selected as peripheral clock"]
4023 pub const CSI_KER: Self = Self(0x04);
4024 #[doc = "LSE selected as peripheral clock"]
4025 pub const LSE: Self = Self(0x05);
4026 }
4027 #[repr(transparent)]
4028 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4029 pub struct Dfsdm1sel(pub u8);
4030 impl Dfsdm1sel {
4031 #[doc = "rcc_pclk2 selected as peripheral clock"]
4032 pub const RCC_PCLK2: Self = Self(0);
4033 #[doc = "System clock selected as peripheral clock"]
4034 pub const SYS: Self = Self(0x01);
4035 }
4036 #[repr(transparent)]
4037 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4038 pub struct C1Ahb3enrMdmaen(pub u8);
4039 impl C1Ahb3enrMdmaen {
4040 #[doc = "The selected clock is disabled"]
4041 pub const DISABLED: Self = Self(0);
4042 #[doc = "The selected clock is enabled"]
4043 pub const ENABLED: Self = Self(0x01);
4044 }
4045 #[repr(transparent)]
4046 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4047 pub struct Hsirdyr(pub u8);
4048 impl Hsirdyr {
4049 #[doc = "Clock not ready"]
4050 pub const NOTREADY: Self = Self(0);
4051 #[doc = "Clock ready"]
4052 pub const READY: Self = Self(0x01);
4053 }
4054 #[repr(transparent)]
4055 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4056 pub struct Adcsel(pub u8);
4057 impl Adcsel {
4058 #[doc = "pll2_p selected as peripheral clock"]
4059 pub const PLL2_P: Self = Self(0);
4060 #[doc = "pll3_r selected as peripheral clock"]
4061 pub const PLL3_R: Self = Self(0x01);
4062 #[doc = "PER selected as peripheral clock"]
4063 pub const PER: Self = Self(0x02);
4064 }
4065 #[repr(transparent)]
4066 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4067 pub struct Ahb4enrGpioaen(pub u8);
4068 impl Ahb4enrGpioaen {
4069 #[doc = "The selected clock is disabled"]
4070 pub const DISABLED: Self = Self(0);
4071 #[doc = "The selected clock is enabled"]
4072 pub const ENABLED: Self = Self(0x01);
4073 }
4074 #[repr(transparent)]
4075 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4076 pub struct Hsidivfr(pub u8);
4077 impl Hsidivfr {
4078 #[doc = "New HSIDIV ratio has not yet propagated to hsi_ck"]
4079 pub const NOTPROPAGATED: Self = Self(0);
4080 #[doc = "HSIDIV ratio has propagated to hsi_ck"]
4081 pub const PROPAGATED: Self = Self(0x01);
4082 }
4083 #[repr(transparent)]
4084 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4085 pub struct C1Ahb1enrDma1en(pub u8);
4086 impl C1Ahb1enrDma1en {
4087 #[doc = "The selected clock is disabled"]
4088 pub const DISABLED: Self = Self(0);
4089 #[doc = "The selected clock is enabled"]
4090 pub const ENABLED: Self = Self(0x01);
4091 }
4092 #[repr(transparent)]
4093 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4094 pub struct Hsidiv(pub u8);
4095 impl Hsidiv {
4096 #[doc = "No division"]
4097 pub const DIV1: Self = Self(0);
4098 #[doc = "Division by 2"]
4099 pub const DIV2: Self = Self(0x01);
4100 #[doc = "Division by 4"]
4101 pub const DIV4: Self = Self(0x02);
4102 #[doc = "Division by 8"]
4103 pub const DIV8: Self = Self(0x03);
4104 }
4105 #[repr(transparent)]
4106 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4107 pub struct Swpsel(pub u8);
4108 impl Swpsel {
4109 #[doc = "pclk selected as peripheral clock"]
4110 pub const PCLK: Self = Self(0);
4111 #[doc = "hsi_ker selected as peripheral clock"]
4112 pub const HSI_KER: Self = Self(0x01);
4113 }
4114 #[repr(transparent)]
4115 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4116 pub struct C1Apb2lpenrTim1lpen(pub u8);
4117 impl C1Apb2lpenrTim1lpen {
4118 #[doc = "The selected clock is disabled during csleep mode"]
4119 pub const DISABLED: Self = Self(0);
4120 #[doc = "The selected clock is enabled during csleep mode"]
4121 pub const ENABLED: Self = Self(0x01);
4122 }
4123 #[repr(transparent)]
4124 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4125 pub struct Tim2rst(pub u8);
4126 impl Tim2rst {
4127 #[doc = "Reset the selected module"]
4128 pub const RESET: Self = Self(0x01);
4129 }
4130 #[repr(transparent)]
4131 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4132 pub struct C1Ahb3lpenrMdmalpen(pub u8);
4133 impl C1Ahb3lpenrMdmalpen {
4134 #[doc = "The selected clock is disabled during csleep mode"]
4135 pub const DISABLED: Self = Self(0);
4136 #[doc = "The selected clock is enabled during csleep mode"]
4137 pub const ENABLED: Self = Self(0x01);
4138 }
4139 #[repr(transparent)]
4140 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4141 pub struct I2c123sel(pub u8);
4142 impl I2c123sel {
4143 #[doc = "rcc_pclk1 selected as peripheral clock"]
4144 pub const RCC_PCLK1: Self = Self(0);
4145 #[doc = "pll3_r selected as peripheral clock"]
4146 pub const PLL3_R: Self = Self(0x01);
4147 #[doc = "hsi_ker selected as peripheral clock"]
4148 pub const HSI_KER: Self = Self(0x02);
4149 #[doc = "csi_ker selected as peripheral clock"]
4150 pub const CSI_KER: Self = Self(0x03);
4151 }
4152 #[repr(transparent)]
4153 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4154 pub struct Pll1fracen(pub u8);
4155 impl Pll1fracen {
4156 #[doc = "Reset latch to tranfer FRACN to the Sigma-Delta modulator"]
4157 pub const RESET: Self = Self(0);
4158 #[doc = "Set latch to tranfer FRACN to the Sigma-Delta modulator"]
4159 pub const SET: Self = Self(0x01);
4160 }
4161 #[repr(transparent)]
4162 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4163 pub struct Apb3lpenrLtdclpen(pub u8);
4164 impl Apb3lpenrLtdclpen {
4165 #[doc = "The selected clock is disabled during csleep mode"]
4166 pub const DISABLED: Self = Self(0);
4167 #[doc = "The selected clock is enabled during csleep mode"]
4168 pub const ENABLED: Self = Self(0x01);
4169 }
4170 #[repr(transparent)]
4171 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4172 pub struct C1Ahb2enrDcmien(pub u8);
4173 impl C1Ahb2enrDcmien {
4174 #[doc = "The selected clock is disabled"]
4175 pub const DISABLED: Self = Self(0);
4176 #[doc = "The selected clock is enabled"]
4177 pub const ENABLED: Self = Self(0x01);
4178 }
4179 #[repr(transparent)]
4180 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4181 pub struct Cecsel(pub u8);
4182 impl Cecsel {
4183 #[doc = "LSE selected as peripheral clock"]
4184 pub const LSE: Self = Self(0);
4185 #[doc = "LSI selected as peripheral clock"]
4186 pub const LSI: Self = Self(0x01);
4187 #[doc = "csi_ker selected as peripheral clock"]
4188 pub const CSI_KER: Self = Self(0x02);
4189 }
4190 #[repr(transparent)]
4191 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4192 pub struct Ahb1enrDma1en(pub u8);
4193 impl Ahb1enrDma1en {
4194 #[doc = "The selected clock is disabled"]
4195 pub const DISABLED: Self = Self(0);
4196 #[doc = "The selected clock is enabled"]
4197 pub const ENABLED: Self = Self(0x01);
4198 }
4199 #[repr(transparent)]
4200 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4201 pub struct Hsebyp(pub u8);
4202 impl Hsebyp {
4203 #[doc = "HSE crystal oscillator not bypassed"]
4204 pub const NOTBYPASSED: Self = Self(0);
4205 #[doc = "HSE crystal oscillator bypassed with external clock"]
4206 pub const BYPASSED: Self = Self(0x01);
4207 }
4208 #[repr(transparent)]
4209 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4210 pub struct Ltdcrst(pub u8);
4211 impl Ltdcrst {
4212 #[doc = "Reset the selected module"]
4213 pub const RESET: Self = Self(0x01);
4214 }
4215 #[repr(transparent)]
4216 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4217 pub struct Apb1lenrTim2en(pub u8);
4218 impl Apb1lenrTim2en {
4219 #[doc = "The selected clock is disabled"]
4220 pub const DISABLED: Self = Self(0);
4221 #[doc = "The selected clock is enabled"]
4222 pub const ENABLED: Self = Self(0x01);
4223 }
4224 #[repr(transparent)]
4225 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4226 pub struct Apb2lpenrTim1lpen(pub u8);
4227 impl Apb2lpenrTim1lpen {
4228 #[doc = "The selected clock is disabled during csleep mode"]
4229 pub const DISABLED: Self = Self(0);
4230 #[doc = "The selected clock is enabled during csleep mode"]
4231 pub const ENABLED: Self = Self(0x01);
4232 }
4233 #[repr(transparent)]
4234 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4235 pub struct Ahb4lpenrGpioalpen(pub u8);
4236 impl Ahb4lpenrGpioalpen {
4237 #[doc = "The selected clock is disabled during csleep mode"]
4238 pub const DISABLED: Self = Self(0);
4239 #[doc = "The selected clock is enabled during csleep mode"]
4240 pub const ENABLED: Self = Self(0x01);
4241 }
4242 #[repr(transparent)]
4243 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4244 pub struct Ahb1lpenrDma1lpen(pub u8);
4245 impl Ahb1lpenrDma1lpen {
4246 #[doc = "The selected clock is disabled during csleep mode"]
4247 pub const DISABLED: Self = Self(0);
4248 #[doc = "The selected clock is enabled during csleep mode"]
4249 pub const ENABLED: Self = Self(0x01);
4250 }
4251 #[repr(transparent)]
4252 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4253 pub struct Rtcsel(pub u8);
4254 impl Rtcsel {
4255 #[doc = "No clock"]
4256 pub const NOCLOCK: Self = Self(0);
4257 #[doc = "LSE oscillator clock used as RTC clock"]
4258 pub const LSE: Self = Self(0x01);
4259 #[doc = "LSI oscillator clock used as RTC clock"]
4260 pub const LSI: Self = Self(0x02);
4261 #[doc = "HSE oscillator clock divided by a prescaler used as RTC clock"]
4262 pub const HSE: Self = Self(0x03);
4263 }
4264 #[repr(transparent)]
4265 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4266 pub struct Apb1hlpenrCrslpen(pub u8);
4267 impl Apb1hlpenrCrslpen {
4268 #[doc = "The selected clock is disabled during csleep mode"]
4269 pub const DISABLED: Self = Self(0);
4270 #[doc = "The selected clock is enabled during csleep mode"]
4271 pub const ENABLED: Self = Self(0x01);
4272 }
4273 #[repr(transparent)]
4274 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4275 pub struct C1Apb4enrSyscfgen(pub u8);
4276 impl C1Apb4enrSyscfgen {
4277 #[doc = "The selected clock is disabled"]
4278 pub const DISABLED: Self = Self(0);
4279 #[doc = "The selected clock is enabled"]
4280 pub const ENABLED: Self = Self(0x01);
4281 }
4282 #[repr(transparent)]
4283 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4284 pub struct Spi6sel(pub u8);
4285 impl Spi6sel {
4286 #[doc = "rcc_pclk4 selected as peripheral clock"]
4287 pub const RCC_PCLK4: Self = Self(0);
4288 #[doc = "pll2_q selected as peripheral clock"]
4289 pub const PLL2_Q: Self = Self(0x01);
4290 #[doc = "pll3_q selected as peripheral clock"]
4291 pub const PLL3_Q: Self = Self(0x02);
4292 #[doc = "hsi_ker selected as peripheral clock"]
4293 pub const HSI_KER: Self = Self(0x03);
4294 #[doc = "csi_ker selected as peripheral clock"]
4295 pub const CSI_KER: Self = Self(0x04);
4296 #[doc = "HSE selected as peripheral clock"]
4297 pub const HSE: Self = Self(0x05);
4298 }
4299 #[repr(transparent)]
4300 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4301 pub struct Hrtimsel(pub u8);
4302 impl Hrtimsel {
4303 #[doc = "The HRTIM prescaler clock source is the same as other timers (rcc_timy_ker_ck)"]
4304 pub const TIMY_KER: Self = Self(0);
4305 #[doc = "The HRTIM prescaler clock source is the CPU clock (c_ck)"]
4306 pub const C_CK: Self = Self(0x01);
4307 }
4308 #[repr(transparent)]
4309 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4310 pub struct Ahb3enrMdmaen(pub u8);
4311 impl Ahb3enrMdmaen {
4312 #[doc = "The selected clock is disabled"]
4313 pub const DISABLED: Self = Self(0);
4314 #[doc = "The selected clock is enabled"]
4315 pub const ENABLED: Self = Self(0x01);
4316 }
4317 #[repr(transparent)]
4318 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4319 pub struct C1Apb3enrLtdcen(pub u8);
4320 impl C1Apb3enrLtdcen {
4321 #[doc = "The selected clock is disabled"]
4322 pub const DISABLED: Self = Self(0);
4323 #[doc = "The selected clock is enabled"]
4324 pub const ENABLED: Self = Self(0x01);
4325 }
4326 #[repr(transparent)]
4327 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4328 pub struct Pll1rge(pub u8);
4329 impl Pll1rge {
4330 #[doc = "Frequency is between 1 and 2 MHz"]
4331 pub const RANGE1: Self = Self(0);
4332 #[doc = "Frequency is between 2 and 4 MHz"]
4333 pub const RANGE2: Self = Self(0x01);
4334 #[doc = "Frequency is between 4 and 8 MHz"]
4335 pub const RANGE4: Self = Self(0x02);
4336 #[doc = "Frequency is between 8 and 16 MHz"]
4337 pub const RANGE8: Self = Self(0x03);
4338 }
4339 #[repr(transparent)]
4340 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4341 pub struct Rtcen(pub u8);
4342 impl Rtcen {
4343 #[doc = "RTC clock disabled"]
4344 pub const DISABLED: Self = Self(0);
4345 #[doc = "RTC clock enabled"]
4346 pub const ENABLED: Self = Self(0x01);
4347 }
4348 #[repr(transparent)]
4349 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4350 pub struct Dma1rst(pub u8);
4351 impl Dma1rst {
4352 #[doc = "Reset the selected module"]
4353 pub const RESET: Self = Self(0x01);
4354 }
4355 #[repr(transparent)]
4356 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4357 pub struct Lsirdyie(pub u8);
4358 impl Lsirdyie {
4359 #[doc = "Interrupt disabled"]
4360 pub const DISABLED: Self = Self(0);
4361 #[doc = "Interrupt enabled"]
4362 pub const ENABLED: Self = Self(0x01);
4363 }
4364 #[repr(transparent)]
4365 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4366 pub struct I2c4sel(pub u8);
4367 impl I2c4sel {
4368 #[doc = "rcc_pclk4 selected as peripheral clock"]
4369 pub const RCC_PCLK4: Self = Self(0);
4370 #[doc = "pll3_r selected as peripheral clock"]
4371 pub const PLL3_R: Self = Self(0x01);
4372 #[doc = "hsi_ker selected as peripheral clock"]
4373 pub const HSI_KER: Self = Self(0x02);
4374 #[doc = "csi_ker selected as peripheral clock"]
4375 pub const CSI_KER: Self = Self(0x03);
4376 }
4377 #[repr(transparent)]
4378 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4379 pub struct Sai1sel(pub u8);
4380 impl Sai1sel {
4381 #[doc = "pll1_q selected as peripheral clock"]
4382 pub const PLL1_Q: Self = Self(0);
4383 #[doc = "pll2_p selected as peripheral clock"]
4384 pub const PLL2_P: Self = Self(0x01);
4385 #[doc = "pll3_p selected as peripheral clock"]
4386 pub const PLL3_P: Self = Self(0x02);
4387 #[doc = "I2S_CKIN selected as peripheral clock"]
4388 pub const I2S_CKIN: Self = Self(0x03);
4389 #[doc = "PER selected as peripheral clock"]
4390 pub const PER: Self = Self(0x04);
4391 }
4392 #[repr(transparent)]
4393 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4394 pub struct C1Apb2enrTim1en(pub u8);
4395 impl C1Apb2enrTim1en {
4396 #[doc = "The selected clock is disabled"]
4397 pub const DISABLED: Self = Self(0);
4398 #[doc = "The selected clock is enabled"]
4399 pub const ENABLED: Self = Self(0x01);
4400 }
4401 #[repr(transparent)]
4402 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4403 pub struct C1Ahb1lpenrDma1lpen(pub u8);
4404 impl C1Ahb1lpenrDma1lpen {
4405 #[doc = "The selected clock is disabled during csleep mode"]
4406 pub const DISABLED: Self = Self(0);
4407 #[doc = "The selected clock is enabled during csleep mode"]
4408 pub const ENABLED: Self = Self(0x01);
4409 }
4410 #[repr(transparent)]
4411 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4412 pub struct Usbsel(pub u8);
4413 impl Usbsel {
4414 #[doc = "Disable the kernel clock"]
4415 pub const DISABLE: Self = Self(0);
4416 #[doc = "pll1_q selected as peripheral clock"]
4417 pub const PLL1_Q: Self = Self(0x01);
4418 #[doc = "pll3_q selected as peripheral clock"]
4419 pub const PLL3_Q: Self = Self(0x02);
4420 #[doc = "HSI48 selected as peripheral clock"]
4421 pub const HSI48: Self = Self(0x03);
4422 }
4423 #[repr(transparent)]
4424 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4425 pub struct C1RsrCpurstfr(pub u8);
4426 impl C1RsrCpurstfr {
4427 #[doc = "No reset occoured for block"]
4428 pub const NORESETOCCOURED: Self = Self(0);
4429 #[doc = "Reset occoured for block"]
4430 pub const RESETOCCOURRED: Self = Self(0x01);
4431 }
4432 #[repr(transparent)]
4433 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4434 pub struct Fmcsel(pub u8);
4435 impl Fmcsel {
4436 #[doc = "rcc_hclk3 selected as peripheral clock"]
4437 pub const RCC_HCLK3: Self = Self(0);
4438 #[doc = "pll1_q selected as peripheral clock"]
4439 pub const PLL1_Q: Self = Self(0x01);
4440 #[doc = "pll2_r selected as peripheral clock"]
4441 pub const PLL2_R: Self = Self(0x02);
4442 #[doc = "PER selected as peripheral clock"]
4443 pub const PER: Self = Self(0x03);
4444 }
4445 #[repr(transparent)]
4446 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4447 pub struct Mco2(pub u8);
4448 impl Mco2 {
4449 #[doc = "System clock selected for micro-controller clock output"]
4450 pub const SYSCLK: Self = Self(0);
4451 #[doc = "pll2_p selected for micro-controller clock output"]
4452 pub const PLL2_P: Self = Self(0x01);
4453 #[doc = "HSE selected for micro-controller clock output"]
4454 pub const HSE: Self = Self(0x02);
4455 #[doc = "pll1_p selected for micro-controller clock output"]
4456 pub const PLL1_P: Self = Self(0x03);
4457 #[doc = "CSI selected for micro-controller clock output"]
4458 pub const CSI: Self = Self(0x04);
4459 #[doc = "LSI selected for micro-controller clock output"]
4460 pub const LSI: Self = Self(0x05);
4461 }
4462 #[repr(transparent)]
4463 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4464 pub struct Mco1(pub u8);
4465 impl Mco1 {
4466 #[doc = "HSI selected for micro-controller clock output"]
4467 pub const HSI: Self = Self(0);
4468 #[doc = "LSE selected for micro-controller clock output"]
4469 pub const LSE: Self = Self(0x01);
4470 #[doc = "HSE selected for micro-controller clock output"]
4471 pub const HSE: Self = Self(0x02);
4472 #[doc = "pll1_q selected for micro-controller clock output"]
4473 pub const PLL1_Q: Self = Self(0x03);
4474 #[doc = "HSI48 selected for micro-controller clock output"]
4475 pub const HSI48: Self = Self(0x04);
4476 }
4477 #[repr(transparent)]
4478 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4479 pub struct Bdrst(pub u8);
4480 impl Bdrst {
4481 #[doc = "Resets the entire VSW domain"]
4482 pub const RESET: Self = Self(0x01);
4483 }
4484 #[repr(transparent)]
4485 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4486 pub struct Lsebyp(pub u8);
4487 impl Lsebyp {
4488 #[doc = "LSE crystal oscillator not bypassed"]
4489 pub const NOTBYPASSED: Self = Self(0);
4490 #[doc = "LSE crystal oscillator bypassed with external clock"]
4491 pub const BYPASSED: Self = Self(0x01);
4492 }
4493 #[repr(transparent)]
4494 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4495 pub struct Sdmmcsel(pub u8);
4496 impl Sdmmcsel {
4497 #[doc = "pll1_q selected as peripheral clock"]
4498 pub const PLL1_Q: Self = Self(0);
4499 #[doc = "pll2_r selected as peripheral clock"]
4500 pub const PLL2_R: Self = Self(0x01);
4501 }
4502 #[repr(transparent)]
4503 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4504 pub struct Apb1llpenrTim2lpen(pub u8);
4505 impl Apb1llpenrTim2lpen {
4506 #[doc = "The selected clock is disabled during csleep mode"]
4507 pub const DISABLED: Self = Self(0);
4508 #[doc = "The selected clock is enabled during csleep mode"]
4509 pub const ENABLED: Self = Self(0x01);
4510 }
4511 #[repr(transparent)]
4512 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4513 pub struct C1Apb1hlpenrCrslpen(pub u8);
4514 impl C1Apb1hlpenrCrslpen {
4515 #[doc = "The selected clock is disabled during csleep mode"]
4516 pub const DISABLED: Self = Self(0);
4517 #[doc = "The selected clock is enabled during csleep mode"]
4518 pub const ENABLED: Self = Self(0x01);
4519 }
4520 #[repr(transparent)]
4521 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4522 pub struct Spdifsel(pub u8);
4523 impl Spdifsel {
4524 #[doc = "pll1_q selected as peripheral clock"]
4525 pub const PLL1_Q: Self = Self(0);
4526 #[doc = "pll2_r selected as peripheral clock"]
4527 pub const PLL2_R: Self = Self(0x01);
4528 #[doc = "pll3_r selected as peripheral clock"]
4529 pub const PLL3_R: Self = Self(0x02);
4530 #[doc = "hsi_ker selected as peripheral clock"]
4531 pub const HSI_KER: Self = Self(0x03);
4532 }
4533 #[repr(transparent)]
4534 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4535 pub struct Lserdyr(pub u8);
4536 impl Lserdyr {
4537 #[doc = "LSE oscillator not ready"]
4538 pub const NOTREADY: Self = Self(0);
4539 #[doc = "LSE oscillator ready"]
4540 pub const READY: Self = Self(0x01);
4541 }
4542 #[repr(transparent)]
4543 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4544 pub struct Spi45sel(pub u8);
4545 impl Spi45sel {
4546 #[doc = "APB clock selected as peripheral clock"]
4547 pub const APB: Self = Self(0);
4548 #[doc = "pll2_q selected as peripheral clock"]
4549 pub const PLL2_Q: Self = Self(0x01);
4550 #[doc = "pll3_q selected as peripheral clock"]
4551 pub const PLL3_Q: Self = Self(0x02);
4552 #[doc = "hsi_ker selected as peripheral clock"]
4553 pub const HSI_KER: Self = Self(0x03);
4554 #[doc = "csi_ker selected as peripheral clock"]
4555 pub const CSI_KER: Self = Self(0x04);
4556 #[doc = "HSE selected as peripheral clock"]
4557 pub const HSE: Self = Self(0x05);
4558 }
4559 #[repr(transparent)]
4560 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4561 pub struct Bdmaamen(pub u8);
4562 impl Bdmaamen {
4563 #[doc = "Clock disabled in autonomous mode"]
4564 pub const DISABLED: Self = Self(0);
4565 #[doc = "Clock enabled in autonomous mode"]
4566 pub const ENABLED: Self = Self(0x01);
4567 }
4568 #[repr(transparent)]
4569 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4570 pub struct Ahb3lpenrMdmalpen(pub u8);
4571 impl Ahb3lpenrMdmalpen {
4572 #[doc = "The selected clock is disabled during csleep mode"]
4573 pub const DISABLED: Self = Self(0);
4574 #[doc = "The selected clock is enabled during csleep mode"]
4575 pub const ENABLED: Self = Self(0x01);
4576 }
4577 #[repr(transparent)]
4578 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4579 pub struct Sw(pub u8);
4580 impl Sw {
4581 #[doc = "HSI selected as system clock"]
4582 pub const HSI: Self = Self(0);
4583 #[doc = "CSI selected as system clock"]
4584 pub const CSI: Self = Self(0x01);
4585 #[doc = "HSE selected as system clock"]
4586 pub const HSE: Self = Self(0x02);
4587 #[doc = "PLL1 selected as system clock"]
4588 pub const PLL1: Self = Self(0x03);
4589 }
4590 #[repr(transparent)]
4591 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4592 pub struct D2ppre1(pub u8);
4593 impl D2ppre1 {
4594 #[doc = "rcc_hclk not divided"]
4595 pub const DIV1: Self = Self(0);
4596 #[doc = "rcc_hclk divided by 2"]
4597 pub const DIV2: Self = Self(0x04);
4598 #[doc = "rcc_hclk divided by 4"]
4599 pub const DIV4: Self = Self(0x05);
4600 #[doc = "rcc_hclk divided by 8"]
4601 pub const DIV8: Self = Self(0x06);
4602 #[doc = "rcc_hclk divided by 16"]
4603 pub const DIV16: Self = Self(0x07);
4604 }
4605 #[repr(transparent)]
4606 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4607 pub struct D1ppre(pub u8);
4608 impl D1ppre {
4609 #[doc = "rcc_hclk not divided"]
4610 pub const DIV1: Self = Self(0);
4611 #[doc = "rcc_hclk divided by 2"]
4612 pub const DIV2: Self = Self(0x04);
4613 #[doc = "rcc_hclk divided by 4"]
4614 pub const DIV4: Self = Self(0x05);
4615 #[doc = "rcc_hclk divided by 8"]
4616 pub const DIV8: Self = Self(0x06);
4617 #[doc = "rcc_hclk divided by 16"]
4618 pub const DIV16: Self = Self(0x07);
4619 }
4620 #[repr(transparent)]
4621 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4622 pub struct Syscfgrst(pub u8);
4623 impl Syscfgrst {
4624 #[doc = "Reset the selected module"]
4625 pub const RESET: Self = Self(0x01);
4626 }
4627 #[repr(transparent)]
4628 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4629 pub struct Sai4asel(pub u8);
4630 impl Sai4asel {
4631 #[doc = "pll1_q selected as peripheral clock"]
4632 pub const PLL1_Q: Self = Self(0);
4633 #[doc = "pll2_p selected as peripheral clock"]
4634 pub const PLL2_P: Self = Self(0x01);
4635 #[doc = "pll3_p selected as peripheral clock"]
4636 pub const PLL3_P: Self = Self(0x02);
4637 #[doc = "i2s_ckin selected as peripheral clock"]
4638 pub const I2S_CKIN: Self = Self(0x03);
4639 #[doc = "PER selected as peripheral clock"]
4640 pub const PER: Self = Self(0x04);
4641 }
4642 #[repr(transparent)]
4643 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4644 pub struct Apb4lpenrSyscfglpen(pub u8);
4645 impl Apb4lpenrSyscfglpen {
4646 #[doc = "The selected clock is disabled during csleep mode"]
4647 pub const DISABLED: Self = Self(0);
4648 #[doc = "The selected clock is enabled during csleep mode"]
4649 pub const ENABLED: Self = Self(0x01);
4650 }
4651 #[repr(transparent)]
4652 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4653 pub struct Apb3enrLtdcen(pub u8);
4654 impl Apb3enrLtdcen {
4655 #[doc = "The selected clock is disabled"]
4656 pub const DISABLED: Self = Self(0);
4657 #[doc = "The selected clock is enabled"]
4658 pub const ENABLED: Self = Self(0x01);
4659 }
4660 #[repr(transparent)]
4661 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4662 pub struct Ahb2enrDcmien(pub u8);
4663 impl Ahb2enrDcmien {
4664 #[doc = "The selected clock is disabled"]
4665 pub const DISABLED: Self = Self(0);
4666 #[doc = "The selected clock is enabled"]
4667 pub const ENABLED: Self = Self(0x01);
4668 }
4669 #[repr(transparent)]
4670 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4671 pub struct Rngsel(pub u8);
4672 impl Rngsel {
4673 #[doc = "HSI48 selected as peripheral clock"]
4674 pub const HSI48: Self = Self(0);
4675 #[doc = "pll1_q selected as peripheral clock"]
4676 pub const PLL1_Q: Self = Self(0x01);
4677 #[doc = "LSE selected as peripheral clock"]
4678 pub const LSE: Self = Self(0x02);
4679 #[doc = "LSI selected as peripheral clock"]
4680 pub const LSI: Self = Self(0x03);
4681 }
4682 #[repr(transparent)]
4683 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4684 pub struct Swsr(pub u8);
4685 impl Swsr {
4686 #[doc = "HSI oscillator used as system clock"]
4687 pub const HSI: Self = Self(0);
4688 #[doc = "CSI oscillator used as system clock"]
4689 pub const CSI: Self = Self(0x01);
4690 #[doc = "HSE oscillator used as system clock"]
4691 pub const HSE: Self = Self(0x02);
4692 #[doc = "PLL1 used as system clock"]
4693 pub const PLL1: Self = Self(0x03);
4694 }
4695 #[repr(transparent)]
4696 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4697 pub struct Fdcansel(pub u8);
4698 impl Fdcansel {
4699 #[doc = "HSE selected as peripheral clock"]
4700 pub const HSE: Self = Self(0);
4701 #[doc = "pll1_q selected as peripheral clock"]
4702 pub const PLL1_Q: Self = Self(0x01);
4703 #[doc = "pll2_q selected as peripheral clock"]
4704 pub const PLL2_Q: Self = Self(0x02);
4705 }
4706 #[repr(transparent)]
4707 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4708 pub struct Lsirdyr(pub u8);
4709 impl Lsirdyr {
4710 #[doc = "LSI oscillator not ready"]
4711 pub const NOTREADY: Self = Self(0);
4712 #[doc = "LSI oscillator ready"]
4713 pub const READY: Self = Self(0x01);
4714 }
4715 #[repr(transparent)]
4716 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4717 pub struct Lsirdyc(pub u8);
4718 impl Lsirdyc {
4719 #[doc = "Clear interrupt flag"]
4720 pub const CLEAR: Self = Self(0x01);
4721 }
4722 #[repr(transparent)]
4723 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
4724 pub struct Lsecsson(pub u8);
4725 impl Lsecsson {
4726 #[doc = "Clock security system on 32 kHz oscillator off"]
4727 pub const SECURITYOFF: Self = Self(0);
4728 #[doc = "Clock security system on 32 kHz oscillator on"]
4729 pub const SECURITYON: Self = Self(0x01);
4730 }
4731 }
4732 pub mod regs { 3112 pub mod regs {
4733 use crate::generic::*; 3113 use crate::generic::*;
4734 #[doc = "RCC APB1 Peripheral Reset Register"] 3114 #[doc = "RCC APB3 Sleep Clock Register"]
4735 #[repr(transparent)] 3115 #[repr(transparent)]
4736 #[derive(Copy, Clone, Eq, PartialEq)] 3116 #[derive(Copy, Clone, Eq, PartialEq)]
4737 pub struct Apb1hrstr(pub u32); 3117 pub struct Apb3lpenr(pub u32);
4738 impl Apb1hrstr { 3118 impl Apb3lpenr {
4739 #[doc = "Clock Recovery System reset"] 3119 #[doc = "LTDC peripheral clock enable during CSleep mode"]
4740 pub const fn crsrst(&self) -> super::vals::Crsrst { 3120 pub const fn ltdclpen(&self) -> super::vals::Apb3lpenrLtdclpen {
4741 let val = (self.0 >> 1usize) & 0x01; 3121 let val = (self.0 >> 3usize) & 0x01;
4742 super::vals::Crsrst(val as u8) 3122 super::vals::Apb3lpenrLtdclpen(val as u8)
4743 } 3123 }
4744 #[doc = "Clock Recovery System reset"] 3124 #[doc = "LTDC peripheral clock enable during CSleep mode"]
4745 pub fn set_crsrst(&mut self, val: super::vals::Crsrst) { 3125 pub fn set_ltdclpen(&mut self, val: super::vals::Apb3lpenrLtdclpen) {
4746 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 3126 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
4747 } 3127 }
4748 #[doc = "SWPMI block reset"] 3128 #[doc = "WWDG1 Clock Enable During CSleep Mode"]
4749 pub const fn swprst(&self) -> super::vals::Crsrst { 3129 pub const fn wwdg1lpen(&self) -> super::vals::Apb3lpenrLtdclpen {
4750 let val = (self.0 >> 2usize) & 0x01; 3130 let val = (self.0 >> 6usize) & 0x01;
4751 super::vals::Crsrst(val as u8) 3131 super::vals::Apb3lpenrLtdclpen(val as u8)
4752 } 3132 }
4753 #[doc = "SWPMI block reset"] 3133 #[doc = "WWDG1 Clock Enable During CSleep Mode"]
4754 pub fn set_swprst(&mut self, val: super::vals::Crsrst) { 3134 pub fn set_wwdg1lpen(&mut self, val: super::vals::Apb3lpenrLtdclpen) {
4755 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize); 3135 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
4756 } 3136 }
4757 #[doc = "OPAMP block reset"] 3137 }
4758 pub const fn opamprst(&self) -> super::vals::Crsrst { 3138 impl Default for Apb3lpenr {
3139 fn default() -> Apb3lpenr {
3140 Apb3lpenr(0)
3141 }
3142 }
3143 #[doc = "RCC AHB2 Clock Register"]
3144 #[repr(transparent)]
3145 #[derive(Copy, Clone, Eq, PartialEq)]
3146 pub struct C1Ahb2enr(pub u32);
3147 impl C1Ahb2enr {
3148 #[doc = "DCMI peripheral clock"]
3149 pub const fn dcmien(&self) -> super::vals::C1Ahb2enrDcmien {
3150 let val = (self.0 >> 0usize) & 0x01;
3151 super::vals::C1Ahb2enrDcmien(val as u8)
3152 }
3153 #[doc = "DCMI peripheral clock"]
3154 pub fn set_dcmien(&mut self, val: super::vals::C1Ahb2enrDcmien) {
3155 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
3156 }
3157 #[doc = "CRYPT peripheral clock enable"]
3158 pub const fn crypten(&self) -> super::vals::C1Ahb2enrDcmien {
4759 let val = (self.0 >> 4usize) & 0x01; 3159 let val = (self.0 >> 4usize) & 0x01;
4760 super::vals::Crsrst(val as u8) 3160 super::vals::C1Ahb2enrDcmien(val as u8)
4761 } 3161 }
4762 #[doc = "OPAMP block reset"] 3162 #[doc = "CRYPT peripheral clock enable"]
4763 pub fn set_opamprst(&mut self, val: super::vals::Crsrst) { 3163 pub fn set_crypten(&mut self, val: super::vals::C1Ahb2enrDcmien) {
4764 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 3164 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
4765 } 3165 }
4766 #[doc = "MDIOS block reset"] 3166 #[doc = "HASH peripheral clock enable"]
4767 pub const fn mdiosrst(&self) -> super::vals::Crsrst { 3167 pub const fn hashen(&self) -> super::vals::C1Ahb2enrDcmien {
4768 let val = (self.0 >> 5usize) & 0x01; 3168 let val = (self.0 >> 5usize) & 0x01;
4769 super::vals::Crsrst(val as u8) 3169 super::vals::C1Ahb2enrDcmien(val as u8)
4770 } 3170 }
4771 #[doc = "MDIOS block reset"] 3171 #[doc = "HASH peripheral clock enable"]
4772 pub fn set_mdiosrst(&mut self, val: super::vals::Crsrst) { 3172 pub fn set_hashen(&mut self, val: super::vals::C1Ahb2enrDcmien) {
4773 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 3173 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
4774 } 3174 }
4775 #[doc = "FDCAN block reset"] 3175 #[doc = "RNG peripheral clocks enable"]
4776 pub const fn fdcanrst(&self) -> super::vals::Crsrst { 3176 pub const fn rngen(&self) -> super::vals::C1Ahb2enrDcmien {
4777 let val = (self.0 >> 8usize) & 0x01; 3177 let val = (self.0 >> 6usize) & 0x01;
4778 super::vals::Crsrst(val as u8) 3178 super::vals::C1Ahb2enrDcmien(val as u8)
4779 } 3179 }
4780 #[doc = "FDCAN block reset"] 3180 #[doc = "RNG peripheral clocks enable"]
4781 pub fn set_fdcanrst(&mut self, val: super::vals::Crsrst) { 3181 pub fn set_rngen(&mut self, val: super::vals::C1Ahb2enrDcmien) {
4782 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize); 3182 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
3183 }
3184 #[doc = "SDMMC2 and SDMMC2 delay clock enable"]
3185 pub const fn sdmmc2en(&self) -> super::vals::C1Ahb2enrDcmien {
3186 let val = (self.0 >> 9usize) & 0x01;
3187 super::vals::C1Ahb2enrDcmien(val as u8)
3188 }
3189 #[doc = "SDMMC2 and SDMMC2 delay clock enable"]
3190 pub fn set_sdmmc2en(&mut self, val: super::vals::C1Ahb2enrDcmien) {
3191 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
3192 }
3193 #[doc = "SRAM1 block enable"]
3194 pub const fn sram1en(&self) -> super::vals::C1Ahb2enrDcmien {
3195 let val = (self.0 >> 29usize) & 0x01;
3196 super::vals::C1Ahb2enrDcmien(val as u8)
3197 }
3198 #[doc = "SRAM1 block enable"]
3199 pub fn set_sram1en(&mut self, val: super::vals::C1Ahb2enrDcmien) {
3200 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize);
3201 }
3202 #[doc = "SRAM2 block enable"]
3203 pub const fn sram2en(&self) -> super::vals::C1Ahb2enrDcmien {
3204 let val = (self.0 >> 30usize) & 0x01;
3205 super::vals::C1Ahb2enrDcmien(val as u8)
3206 }
3207 #[doc = "SRAM2 block enable"]
3208 pub fn set_sram2en(&mut self, val: super::vals::C1Ahb2enrDcmien) {
3209 self.0 = (self.0 & !(0x01 << 30usize)) | (((val.0 as u32) & 0x01) << 30usize);
3210 }
3211 #[doc = "SRAM3 block enable"]
3212 pub const fn sram3en(&self) -> super::vals::C1Ahb2enrDcmien {
3213 let val = (self.0 >> 31usize) & 0x01;
3214 super::vals::C1Ahb2enrDcmien(val as u8)
3215 }
3216 #[doc = "SRAM3 block enable"]
3217 pub fn set_sram3en(&mut self, val: super::vals::C1Ahb2enrDcmien) {
3218 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize);
4783 } 3219 }
4784 } 3220 }
4785 impl Default for Apb1hrstr { 3221 impl Default for C1Ahb2enr {
4786 fn default() -> Apb1hrstr { 3222 fn default() -> C1Ahb2enr {
4787 Apb1hrstr(0) 3223 C1Ahb2enr(0)
4788 } 3224 }
4789 } 3225 }
4790 #[doc = "RCC AHB4 Sleep Clock Register"] 3226 #[doc = "clock control register"]
4791 #[repr(transparent)] 3227 #[repr(transparent)]
4792 #[derive(Copy, Clone, Eq, PartialEq)] 3228 #[derive(Copy, Clone, Eq, PartialEq)]
4793 pub struct Ahb4lpenr(pub u32); 3229 pub struct Cr(pub u32);
4794 impl Ahb4lpenr { 3230 impl Cr {
4795 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3231 #[doc = "Internal high-speed clock enable"]
4796 pub const fn gpioalpen(&self) -> super::vals::Ahb4lpenrGpioalpen { 3232 pub const fn hsion(&self) -> super::vals::Hsion {
4797 let val = (self.0 >> 0usize) & 0x01; 3233 let val = (self.0 >> 0usize) & 0x01;
4798 super::vals::Ahb4lpenrGpioalpen(val as u8) 3234 super::vals::Hsion(val as u8)
4799 } 3235 }
4800 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3236 #[doc = "Internal high-speed clock enable"]
4801 pub fn set_gpioalpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) { 3237 pub fn set_hsion(&mut self, val: super::vals::Hsion) {
4802 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 3238 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
4803 } 3239 }
4804 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3240 #[doc = "High Speed Internal clock enable in Stop mode"]
4805 pub const fn gpioblpen(&self) -> super::vals::Ahb4lpenrGpioalpen { 3241 pub const fn hsikeron(&self) -> super::vals::Hsion {
4806 let val = (self.0 >> 1usize) & 0x01; 3242 let val = (self.0 >> 1usize) & 0x01;
4807 super::vals::Ahb4lpenrGpioalpen(val as u8) 3243 super::vals::Hsion(val as u8)
4808 } 3244 }
4809 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3245 #[doc = "High Speed Internal clock enable in Stop mode"]
4810 pub fn set_gpioblpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) { 3246 pub fn set_hsikeron(&mut self, val: super::vals::Hsion) {
4811 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 3247 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
4812 } 3248 }
4813 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3249 #[doc = "HSI clock ready flag"]
4814 pub const fn gpioclpen(&self) -> super::vals::Ahb4lpenrGpioalpen { 3250 pub const fn hsirdy(&self) -> bool {
4815 let val = (self.0 >> 2usize) & 0x01; 3251 let val = (self.0 >> 2usize) & 0x01;
4816 super::vals::Ahb4lpenrGpioalpen(val as u8) 3252 val != 0
4817 }
4818 #[doc = "GPIO peripheral clock enable during CSleep mode"]
4819 pub fn set_gpioclpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
4820 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
4821 }
4822 #[doc = "GPIO peripheral clock enable during CSleep mode"]
4823 pub const fn gpiodlpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
4824 let val = (self.0 >> 3usize) & 0x01;
4825 super::vals::Ahb4lpenrGpioalpen(val as u8)
4826 } 3253 }
4827 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3254 #[doc = "HSI clock ready flag"]
4828 pub fn set_gpiodlpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) { 3255 pub fn set_hsirdy(&mut self, val: bool) {
4829 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize); 3256 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
4830 } 3257 }
4831 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3258 #[doc = "HSI clock divider"]
4832 pub const fn gpioelpen(&self) -> super::vals::Ahb4lpenrGpioalpen { 3259 pub const fn hsidiv(&self) -> super::vals::Hsidiv {
4833 let val = (self.0 >> 4usize) & 0x01; 3260 let val = (self.0 >> 3usize) & 0x03;
4834 super::vals::Ahb4lpenrGpioalpen(val as u8) 3261 super::vals::Hsidiv(val as u8)
4835 } 3262 }
4836 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3263 #[doc = "HSI clock divider"]
4837 pub fn set_gpioelpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) { 3264 pub fn set_hsidiv(&mut self, val: super::vals::Hsidiv) {
4838 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 3265 self.0 = (self.0 & !(0x03 << 3usize)) | (((val.0 as u32) & 0x03) << 3usize);
4839 } 3266 }
4840 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3267 #[doc = "HSI divider flag"]
4841 pub const fn gpioflpen(&self) -> super::vals::Ahb4lpenrGpioalpen { 3268 pub const fn hsidivf(&self) -> bool {
4842 let val = (self.0 >> 5usize) & 0x01; 3269 let val = (self.0 >> 5usize) & 0x01;
4843 super::vals::Ahb4lpenrGpioalpen(val as u8) 3270 val != 0
4844 }
4845 #[doc = "GPIO peripheral clock enable during CSleep mode"]
4846 pub fn set_gpioflpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
4847 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
4848 }
4849 #[doc = "GPIO peripheral clock enable during CSleep mode"]
4850 pub const fn gpioglpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
4851 let val = (self.0 >> 6usize) & 0x01;
4852 super::vals::Ahb4lpenrGpioalpen(val as u8)
4853 } 3271 }
4854 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3272 #[doc = "HSI divider flag"]
4855 pub fn set_gpioglpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) { 3273 pub fn set_hsidivf(&mut self, val: bool) {
4856 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize); 3274 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
4857 } 3275 }
4858 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3276 #[doc = "CSI clock enable"]
4859 pub const fn gpiohlpen(&self) -> super::vals::Ahb4lpenrGpioalpen { 3277 pub const fn csion(&self) -> super::vals::Hsion {
4860 let val = (self.0 >> 7usize) & 0x01; 3278 let val = (self.0 >> 7usize) & 0x01;
4861 super::vals::Ahb4lpenrGpioalpen(val as u8) 3279 super::vals::Hsion(val as u8)
4862 } 3280 }
4863 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3281 #[doc = "CSI clock enable"]
4864 pub fn set_gpiohlpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) { 3282 pub fn set_csion(&mut self, val: super::vals::Hsion) {
4865 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 3283 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
4866 } 3284 }
4867 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3285 #[doc = "CSI clock ready flag"]
4868 pub const fn gpioilpen(&self) -> super::vals::Ahb4lpenrGpioalpen { 3286 pub const fn csirdy(&self) -> bool {
4869 let val = (self.0 >> 8usize) & 0x01; 3287 let val = (self.0 >> 8usize) & 0x01;
4870 super::vals::Ahb4lpenrGpioalpen(val as u8) 3288 val != 0
4871 } 3289 }
4872 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3290 #[doc = "CSI clock ready flag"]
4873 pub fn set_gpioilpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) { 3291 pub fn set_csirdy(&mut self, val: bool) {
4874 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize); 3292 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
4875 } 3293 }
4876 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3294 #[doc = "CSI clock enable in Stop mode"]
4877 pub const fn gpiojlpen(&self) -> super::vals::Ahb4lpenrGpioalpen { 3295 pub const fn csikeron(&self) -> super::vals::Hsion {
4878 let val = (self.0 >> 9usize) & 0x01; 3296 let val = (self.0 >> 9usize) & 0x01;
4879 super::vals::Ahb4lpenrGpioalpen(val as u8) 3297 super::vals::Hsion(val as u8)
4880 } 3298 }
4881 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3299 #[doc = "CSI clock enable in Stop mode"]
4882 pub fn set_gpiojlpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) { 3300 pub fn set_csikeron(&mut self, val: super::vals::Hsion) {
4883 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize); 3301 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
4884 } 3302 }
4885 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3303 #[doc = "RC48 clock enable"]
4886 pub const fn gpioklpen(&self) -> super::vals::Ahb4lpenrGpioalpen { 3304 pub const fn hsi48on(&self) -> super::vals::Hsion {
4887 let val = (self.0 >> 10usize) & 0x01; 3305 let val = (self.0 >> 12usize) & 0x01;
4888 super::vals::Ahb4lpenrGpioalpen(val as u8) 3306 super::vals::Hsion(val as u8)
4889 }
4890 #[doc = "GPIO peripheral clock enable during CSleep mode"]
4891 pub fn set_gpioklpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
4892 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
4893 }
4894 #[doc = "CRC peripheral clock enable during CSleep mode"]
4895 pub const fn crclpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
4896 let val = (self.0 >> 19usize) & 0x01;
4897 super::vals::Ahb4lpenrGpioalpen(val as u8)
4898 }
4899 #[doc = "CRC peripheral clock enable during CSleep mode"]
4900 pub fn set_crclpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
4901 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
4902 } 3307 }
4903 #[doc = "BDMA Clock Enable During CSleep Mode"] 3308 #[doc = "RC48 clock enable"]
4904 pub const fn bdmalpen(&self) -> super::vals::Ahb4lpenrGpioalpen { 3309 pub fn set_hsi48on(&mut self, val: super::vals::Hsion) {
4905 let val = (self.0 >> 21usize) & 0x01; 3310 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
4906 super::vals::Ahb4lpenrGpioalpen(val as u8)
4907 } 3311 }
4908 #[doc = "BDMA Clock Enable During CSleep Mode"] 3312 #[doc = "RC48 clock ready flag"]
4909 pub fn set_bdmalpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) { 3313 pub const fn hsi48rdy(&self) -> bool {
4910 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize); 3314 let val = (self.0 >> 13usize) & 0x01;
3315 val != 0
4911 } 3316 }
4912 #[doc = "ADC3 Peripheral Clocks Enable During CSleep Mode"] 3317 #[doc = "RC48 clock ready flag"]
4913 pub const fn adc3lpen(&self) -> super::vals::Ahb4lpenrGpioalpen { 3318 pub fn set_hsi48rdy(&mut self, val: bool) {
4914 let val = (self.0 >> 24usize) & 0x01; 3319 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
4915 super::vals::Ahb4lpenrGpioalpen(val as u8)
4916 } 3320 }
4917 #[doc = "ADC3 Peripheral Clocks Enable During CSleep Mode"] 3321 #[doc = "D1 domain clocks ready flag"]
4918 pub fn set_adc3lpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) { 3322 pub const fn d1ckrdy(&self) -> bool {
4919 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize); 3323 let val = (self.0 >> 14usize) & 0x01;
3324 val != 0
4920 } 3325 }
4921 #[doc = "Backup RAM Clock Enable During CSleep Mode"] 3326 #[doc = "D1 domain clocks ready flag"]
4922 pub const fn bkpramlpen(&self) -> super::vals::Ahb4lpenrGpioalpen { 3327 pub fn set_d1ckrdy(&mut self, val: bool) {
4923 let val = (self.0 >> 28usize) & 0x01; 3328 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
4924 super::vals::Ahb4lpenrGpioalpen(val as u8)
4925 } 3329 }
4926 #[doc = "Backup RAM Clock Enable During CSleep Mode"] 3330 #[doc = "D2 domain clocks ready flag"]
4927 pub fn set_bkpramlpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) { 3331 pub const fn d2ckrdy(&self) -> bool {
4928 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize); 3332 let val = (self.0 >> 15usize) & 0x01;
3333 val != 0
4929 } 3334 }
4930 #[doc = "SRAM4 Clock Enable During CSleep Mode"] 3335 #[doc = "D2 domain clocks ready flag"]
4931 pub const fn sram4lpen(&self) -> super::vals::Ahb4lpenrGpioalpen { 3336 pub fn set_d2ckrdy(&mut self, val: bool) {
4932 let val = (self.0 >> 29usize) & 0x01; 3337 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize);
4933 super::vals::Ahb4lpenrGpioalpen(val as u8)
4934 } 3338 }
4935 #[doc = "SRAM4 Clock Enable During CSleep Mode"] 3339 #[doc = "HSE clock enable"]
4936 pub fn set_sram4lpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) { 3340 pub const fn hseon(&self) -> super::vals::Hsion {
4937 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize); 3341 let val = (self.0 >> 16usize) & 0x01;
3342 super::vals::Hsion(val as u8)
4938 } 3343 }
4939 } 3344 #[doc = "HSE clock enable"]
4940 impl Default for Ahb4lpenr { 3345 pub fn set_hseon(&mut self, val: super::vals::Hsion) {
4941 fn default() -> Ahb4lpenr { 3346 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
4942 Ahb4lpenr(0)
4943 } 3347 }
4944 } 3348 #[doc = "HSE clock ready flag"]
4945 #[doc = "RCC AHB3 Sleep Clock Register"] 3349 pub const fn hserdy(&self) -> bool {
4946 #[repr(transparent)] 3350 let val = (self.0 >> 17usize) & 0x01;
4947 #[derive(Copy, Clone, Eq, PartialEq)] 3351 val != 0
4948 pub struct Ahb3lpenr(pub u32);
4949 impl Ahb3lpenr {
4950 #[doc = "MDMA Clock Enable During CSleep Mode"]
4951 pub const fn mdmalpen(&self) -> super::vals::Ahb3lpenrMdmalpen {
4952 let val = (self.0 >> 0usize) & 0x01;
4953 super::vals::Ahb3lpenrMdmalpen(val as u8)
4954 } 3352 }
4955 #[doc = "MDMA Clock Enable During CSleep Mode"] 3353 #[doc = "HSE clock ready flag"]
4956 pub fn set_mdmalpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) { 3354 pub fn set_hserdy(&mut self, val: bool) {
4957 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 3355 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
4958 } 3356 }
4959 #[doc = "DMA2D Clock Enable During CSleep Mode"] 3357 #[doc = "HSE clock bypass"]
4960 pub const fn dma2dlpen(&self) -> super::vals::Ahb3lpenrMdmalpen { 3358 pub const fn hsebyp(&self) -> super::vals::Hsebyp {
4961 let val = (self.0 >> 4usize) & 0x01; 3359 let val = (self.0 >> 18usize) & 0x01;
4962 super::vals::Ahb3lpenrMdmalpen(val as u8) 3360 super::vals::Hsebyp(val as u8)
4963 } 3361 }
4964 #[doc = "DMA2D Clock Enable During CSleep Mode"] 3362 #[doc = "HSE clock bypass"]
4965 pub fn set_dma2dlpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) { 3363 pub fn set_hsebyp(&mut self, val: super::vals::Hsebyp) {
4966 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 3364 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
4967 } 3365 }
4968 #[doc = "JPGDEC Clock Enable During CSleep Mode"] 3366 #[doc = "HSE Clock Security System enable"]
4969 pub const fn jpgdeclpen(&self) -> super::vals::Ahb3lpenrMdmalpen { 3367 pub const fn hsecsson(&self) -> super::vals::Hsion {
4970 let val = (self.0 >> 5usize) & 0x01; 3368 let val = (self.0 >> 19usize) & 0x01;
4971 super::vals::Ahb3lpenrMdmalpen(val as u8) 3369 super::vals::Hsion(val as u8)
4972 } 3370 }
4973 #[doc = "JPGDEC Clock Enable During CSleep Mode"] 3371 #[doc = "HSE Clock Security System enable"]
4974 pub fn set_jpgdeclpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) { 3372 pub fn set_hsecsson(&mut self, val: super::vals::Hsion) {
4975 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 3373 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
4976 } 3374 }
4977 #[doc = "FLITF Clock Enable During CSleep Mode"] 3375 #[doc = "PLL1 enable"]
4978 pub const fn flashlpen(&self) -> super::vals::Ahb3lpenrMdmalpen { 3376 pub const fn pll1on(&self) -> super::vals::Hsion {
4979 let val = (self.0 >> 8usize) & 0x01; 3377 let val = (self.0 >> 24usize) & 0x01;
4980 super::vals::Ahb3lpenrMdmalpen(val as u8) 3378 super::vals::Hsion(val as u8)
4981 } 3379 }
4982 #[doc = "FLITF Clock Enable During CSleep Mode"] 3380 #[doc = "PLL1 enable"]
4983 pub fn set_flashlpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) { 3381 pub fn set_pll1on(&mut self, val: super::vals::Hsion) {
4984 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize); 3382 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
4985 } 3383 }
4986 #[doc = "FMC Peripheral Clocks Enable During CSleep Mode"] 3384 #[doc = "PLL1 clock ready flag"]
4987 pub const fn fmclpen(&self) -> super::vals::Ahb3lpenrMdmalpen { 3385 pub const fn pll1rdy(&self) -> bool {
4988 let val = (self.0 >> 12usize) & 0x01; 3386 let val = (self.0 >> 25usize) & 0x01;
4989 super::vals::Ahb3lpenrMdmalpen(val as u8) 3387 val != 0
4990 } 3388 }
4991 #[doc = "FMC Peripheral Clocks Enable During CSleep Mode"] 3389 #[doc = "PLL1 clock ready flag"]
4992 pub fn set_fmclpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) { 3390 pub fn set_pll1rdy(&mut self, val: bool) {
4993 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize); 3391 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize);
4994 } 3392 }
4995 #[doc = "QUADSPI and QUADSPI Delay Clock Enable During CSleep Mode"] 3393 #[doc = "PLL2 enable"]
4996 pub const fn qspilpen(&self) -> super::vals::Ahb3lpenrMdmalpen { 3394 pub const fn pll2on(&self) -> super::vals::Hsion {
4997 let val = (self.0 >> 14usize) & 0x01; 3395 let val = (self.0 >> 26usize) & 0x01;
4998 super::vals::Ahb3lpenrMdmalpen(val as u8) 3396 super::vals::Hsion(val as u8)
4999 } 3397 }
5000 #[doc = "QUADSPI and QUADSPI Delay Clock Enable During CSleep Mode"] 3398 #[doc = "PLL2 enable"]
5001 pub fn set_qspilpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) { 3399 pub fn set_pll2on(&mut self, val: super::vals::Hsion) {
5002 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 3400 self.0 = (self.0 & !(0x01 << 26usize)) | (((val.0 as u32) & 0x01) << 26usize);
5003 } 3401 }
5004 #[doc = "SDMMC1 and SDMMC1 Delay Clock Enable During CSleep Mode"] 3402 #[doc = "PLL2 clock ready flag"]
5005 pub const fn sdmmc1lpen(&self) -> super::vals::Ahb3lpenrMdmalpen { 3403 pub const fn pll2rdy(&self) -> bool {
5006 let val = (self.0 >> 16usize) & 0x01; 3404 let val = (self.0 >> 27usize) & 0x01;
5007 super::vals::Ahb3lpenrMdmalpen(val as u8) 3405 val != 0
5008 } 3406 }
5009 #[doc = "SDMMC1 and SDMMC1 Delay Clock Enable During CSleep Mode"] 3407 #[doc = "PLL2 clock ready flag"]
5010 pub fn set_sdmmc1lpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) { 3408 pub fn set_pll2rdy(&mut self, val: bool) {
5011 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize); 3409 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize);
5012 } 3410 }
5013 #[doc = "D1DTCM1 Block Clock Enable During CSleep mode"] 3411 #[doc = "PLL3 enable"]
5014 pub const fn d1dtcm1lpen(&self) -> super::vals::Ahb3lpenrMdmalpen { 3412 pub const fn pll3on(&self) -> super::vals::Hsion {
5015 let val = (self.0 >> 28usize) & 0x01; 3413 let val = (self.0 >> 28usize) & 0x01;
5016 super::vals::Ahb3lpenrMdmalpen(val as u8) 3414 super::vals::Hsion(val as u8)
5017 } 3415 }
5018 #[doc = "D1DTCM1 Block Clock Enable During CSleep mode"] 3416 #[doc = "PLL3 enable"]
5019 pub fn set_d1dtcm1lpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) { 3417 pub fn set_pll3on(&mut self, val: super::vals::Hsion) {
5020 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize); 3418 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
5021 } 3419 }
5022 #[doc = "D1 DTCM2 Block Clock Enable During CSleep mode"] 3420 #[doc = "PLL3 clock ready flag"]
5023 pub const fn dtcm2lpen(&self) -> super::vals::Ahb3lpenrMdmalpen { 3421 pub const fn pll3rdy(&self) -> bool {
5024 let val = (self.0 >> 29usize) & 0x01; 3422 let val = (self.0 >> 29usize) & 0x01;
5025 super::vals::Ahb3lpenrMdmalpen(val as u8) 3423 val != 0
5026 } 3424 }
5027 #[doc = "D1 DTCM2 Block Clock Enable During CSleep mode"] 3425 #[doc = "PLL3 clock ready flag"]
5028 pub fn set_dtcm2lpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) { 3426 pub fn set_pll3rdy(&mut self, val: bool) {
5029 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize); 3427 self.0 = (self.0 & !(0x01 << 29usize)) | (((val as u32) & 0x01) << 29usize);
5030 } 3428 }
5031 #[doc = "D1ITCM Block Clock Enable During CSleep mode"] 3429 }
5032 pub const fn itcmlpen(&self) -> super::vals::Ahb3lpenrMdmalpen { 3430 impl Default for Cr {
5033 let val = (self.0 >> 30usize) & 0x01; 3431 fn default() -> Cr {
5034 super::vals::Ahb3lpenrMdmalpen(val as u8) 3432 Cr(0)
5035 } 3433 }
5036 #[doc = "D1ITCM Block Clock Enable During CSleep mode"] 3434 }
5037 pub fn set_itcmlpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) { 3435 #[doc = "RCC APB3 Clock Register"]
5038 self.0 = (self.0 & !(0x01 << 30usize)) | (((val.0 as u32) & 0x01) << 30usize); 3436 #[repr(transparent)]
3437 #[derive(Copy, Clone, Eq, PartialEq)]
3438 pub struct Apb3enr(pub u32);
3439 impl Apb3enr {
3440 #[doc = "LTDC peripheral clock enable"]
3441 pub const fn ltdcen(&self) -> super::vals::Apb3enrLtdcen {
3442 let val = (self.0 >> 3usize) & 0x01;
3443 super::vals::Apb3enrLtdcen(val as u8)
5039 } 3444 }
5040 #[doc = "AXISRAM Block Clock Enable During CSleep mode"] 3445 #[doc = "LTDC peripheral clock enable"]
5041 pub const fn axisramlpen(&self) -> super::vals::Ahb3lpenrMdmalpen { 3446 pub fn set_ltdcen(&mut self, val: super::vals::Apb3enrLtdcen) {
5042 let val = (self.0 >> 31usize) & 0x01; 3447 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
5043 super::vals::Ahb3lpenrMdmalpen(val as u8)
5044 } 3448 }
5045 #[doc = "AXISRAM Block Clock Enable During CSleep mode"] 3449 #[doc = "WWDG1 Clock Enable"]
5046 pub fn set_axisramlpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) { 3450 pub const fn wwdg1en(&self) -> super::vals::Apb3enrLtdcen {
5047 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize); 3451 let val = (self.0 >> 6usize) & 0x01;
3452 super::vals::Apb3enrLtdcen(val as u8)
3453 }
3454 #[doc = "WWDG1 Clock Enable"]
3455 pub fn set_wwdg1en(&mut self, val: super::vals::Apb3enrLtdcen) {
3456 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
5048 } 3457 }
5049 } 3458 }
5050 impl Default for Ahb3lpenr { 3459 impl Default for Apb3enr {
5051 fn default() -> Ahb3lpenr { 3460 fn default() -> Apb3enr {
5052 Ahb3lpenr(0) 3461 Apb3enr(0)
5053 } 3462 }
5054 } 3463 }
5055 #[doc = "RCC AHB4 Sleep Clock Register"] 3464 #[doc = "RCC Clock Recovery RC Register"]
5056 #[repr(transparent)] 3465 #[repr(transparent)]
5057 #[derive(Copy, Clone, Eq, PartialEq)] 3466 #[derive(Copy, Clone, Eq, PartialEq)]
5058 pub struct C1Ahb4lpenr(pub u32); 3467 pub struct Crrcr(pub u32);
5059 impl C1Ahb4lpenr { 3468 impl Crrcr {
5060 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3469 #[doc = "Internal RC 48 MHz clock calibration"]
5061 pub const fn gpioalpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen { 3470 pub const fn hsi48cal(&self) -> u16 {
3471 let val = (self.0 >> 0usize) & 0x03ff;
3472 val as u16
3473 }
3474 #[doc = "Internal RC 48 MHz clock calibration"]
3475 pub fn set_hsi48cal(&mut self, val: u16) {
3476 self.0 = (self.0 & !(0x03ff << 0usize)) | (((val as u32) & 0x03ff) << 0usize);
3477 }
3478 }
3479 impl Default for Crrcr {
3480 fn default() -> Crrcr {
3481 Crrcr(0)
3482 }
3483 }
3484 #[doc = "RCC Global Control Register"]
3485 #[repr(transparent)]
3486 #[derive(Copy, Clone, Eq, PartialEq)]
3487 pub struct Gcr(pub u32);
3488 impl Gcr {
3489 #[doc = "WWDG1 reset scope control"]
3490 pub const fn ww1rsc(&self) -> super::vals::Ww1rsc {
5062 let val = (self.0 >> 0usize) & 0x01; 3491 let val = (self.0 >> 0usize) & 0x01;
5063 super::vals::C1Ahb4lpenrGpioalpen(val as u8) 3492 super::vals::Ww1rsc(val as u8)
5064 } 3493 }
5065 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3494 #[doc = "WWDG1 reset scope control"]
5066 pub fn set_gpioalpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) { 3495 pub fn set_ww1rsc(&mut self, val: super::vals::Ww1rsc) {
5067 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 3496 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
5068 } 3497 }
5069 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3498 }
5070 pub const fn gpioblpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen { 3499 impl Default for Gcr {
3500 fn default() -> Gcr {
3501 Gcr(0)
3502 }
3503 }
3504 #[doc = "RCC Domain 3 Clock Configuration Register"]
3505 #[repr(transparent)]
3506 #[derive(Copy, Clone, Eq, PartialEq)]
3507 pub struct D3cfgr(pub u32);
3508 impl D3cfgr {
3509 #[doc = "D3 domain APB4 prescaler"]
3510 pub const fn d3ppre(&self) -> super::vals::D3ppre {
3511 let val = (self.0 >> 4usize) & 0x07;
3512 super::vals::D3ppre(val as u8)
3513 }
3514 #[doc = "D3 domain APB4 prescaler"]
3515 pub fn set_d3ppre(&mut self, val: super::vals::D3ppre) {
3516 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize);
3517 }
3518 }
3519 impl Default for D3cfgr {
3520 fn default() -> D3cfgr {
3521 D3cfgr(0)
3522 }
3523 }
3524 #[doc = "RCC APB1 Clock Register"]
3525 #[repr(transparent)]
3526 #[derive(Copy, Clone, Eq, PartialEq)]
3527 pub struct C1Apb1lenr(pub u32);
3528 impl C1Apb1lenr {
3529 #[doc = "TIM peripheral clock enable"]
3530 pub const fn tim2en(&self) -> super::vals::C1Apb1lenrTim2en {
3531 let val = (self.0 >> 0usize) & 0x01;
3532 super::vals::C1Apb1lenrTim2en(val as u8)
3533 }
3534 #[doc = "TIM peripheral clock enable"]
3535 pub fn set_tim2en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
3536 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
3537 }
3538 #[doc = "TIM peripheral clock enable"]
3539 pub const fn tim3en(&self) -> super::vals::C1Apb1lenrTim2en {
5071 let val = (self.0 >> 1usize) & 0x01; 3540 let val = (self.0 >> 1usize) & 0x01;
5072 super::vals::C1Ahb4lpenrGpioalpen(val as u8) 3541 super::vals::C1Apb1lenrTim2en(val as u8)
5073 } 3542 }
5074 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3543 #[doc = "TIM peripheral clock enable"]
5075 pub fn set_gpioblpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) { 3544 pub fn set_tim3en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
5076 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 3545 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
5077 } 3546 }
5078 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3547 #[doc = "TIM peripheral clock enable"]
5079 pub const fn gpioclpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen { 3548 pub const fn tim4en(&self) -> super::vals::C1Apb1lenrTim2en {
5080 let val = (self.0 >> 2usize) & 0x01; 3549 let val = (self.0 >> 2usize) & 0x01;
5081 super::vals::C1Ahb4lpenrGpioalpen(val as u8) 3550 super::vals::C1Apb1lenrTim2en(val as u8)
5082 } 3551 }
5083 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3552 #[doc = "TIM peripheral clock enable"]
5084 pub fn set_gpioclpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) { 3553 pub fn set_tim4en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
5085 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize); 3554 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
5086 } 3555 }
5087 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3556 #[doc = "TIM peripheral clock enable"]
5088 pub const fn gpiodlpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen { 3557 pub const fn tim5en(&self) -> super::vals::C1Apb1lenrTim2en {
5089 let val = (self.0 >> 3usize) & 0x01; 3558 let val = (self.0 >> 3usize) & 0x01;
5090 super::vals::C1Ahb4lpenrGpioalpen(val as u8) 3559 super::vals::C1Apb1lenrTim2en(val as u8)
5091 } 3560 }
5092 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3561 #[doc = "TIM peripheral clock enable"]
5093 pub fn set_gpiodlpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) { 3562 pub fn set_tim5en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
5094 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize); 3563 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
5095 } 3564 }
5096 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3565 #[doc = "TIM peripheral clock enable"]
5097 pub const fn gpioelpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen { 3566 pub const fn tim6en(&self) -> super::vals::C1Apb1lenrTim2en {
5098 let val = (self.0 >> 4usize) & 0x01; 3567 let val = (self.0 >> 4usize) & 0x01;
5099 super::vals::C1Ahb4lpenrGpioalpen(val as u8) 3568 super::vals::C1Apb1lenrTim2en(val as u8)
5100 } 3569 }
5101 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3570 #[doc = "TIM peripheral clock enable"]
5102 pub fn set_gpioelpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) { 3571 pub fn set_tim6en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
5103 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 3572 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
5104 } 3573 }
5105 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3574 #[doc = "TIM peripheral clock enable"]
5106 pub const fn gpioflpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen { 3575 pub const fn tim7en(&self) -> super::vals::C1Apb1lenrTim2en {
5107 let val = (self.0 >> 5usize) & 0x01; 3576 let val = (self.0 >> 5usize) & 0x01;
5108 super::vals::C1Ahb4lpenrGpioalpen(val as u8) 3577 super::vals::C1Apb1lenrTim2en(val as u8)
5109 } 3578 }
5110 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3579 #[doc = "TIM peripheral clock enable"]
5111 pub fn set_gpioflpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) { 3580 pub fn set_tim7en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
5112 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 3581 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
5113 } 3582 }
5114 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3583 #[doc = "TIM peripheral clock enable"]
5115 pub const fn gpioglpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen { 3584 pub const fn tim12en(&self) -> super::vals::C1Apb1lenrTim2en {
5116 let val = (self.0 >> 6usize) & 0x01; 3585 let val = (self.0 >> 6usize) & 0x01;
5117 super::vals::C1Ahb4lpenrGpioalpen(val as u8) 3586 super::vals::C1Apb1lenrTim2en(val as u8)
5118 } 3587 }
5119 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3588 #[doc = "TIM peripheral clock enable"]
5120 pub fn set_gpioglpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) { 3589 pub fn set_tim12en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
5121 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize); 3590 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
5122 } 3591 }
5123 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3592 #[doc = "TIM peripheral clock enable"]
5124 pub const fn gpiohlpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen { 3593 pub const fn tim13en(&self) -> super::vals::C1Apb1lenrTim2en {
5125 let val = (self.0 >> 7usize) & 0x01; 3594 let val = (self.0 >> 7usize) & 0x01;
5126 super::vals::C1Ahb4lpenrGpioalpen(val as u8) 3595 super::vals::C1Apb1lenrTim2en(val as u8)
5127 } 3596 }
5128 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3597 #[doc = "TIM peripheral clock enable"]
5129 pub fn set_gpiohlpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) { 3598 pub fn set_tim13en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
5130 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 3599 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
5131 } 3600 }
5132 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3601 #[doc = "TIM peripheral clock enable"]
5133 pub const fn gpioilpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen { 3602 pub const fn tim14en(&self) -> super::vals::C1Apb1lenrTim2en {
5134 let val = (self.0 >> 8usize) & 0x01; 3603 let val = (self.0 >> 8usize) & 0x01;
5135 super::vals::C1Ahb4lpenrGpioalpen(val as u8) 3604 super::vals::C1Apb1lenrTim2en(val as u8)
5136 } 3605 }
5137 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3606 #[doc = "TIM peripheral clock enable"]
5138 pub fn set_gpioilpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) { 3607 pub fn set_tim14en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
5139 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize); 3608 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
5140 } 3609 }
5141 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3610 #[doc = "LPTIM1 Peripheral Clocks Enable"]
5142 pub const fn gpiojlpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen { 3611 pub const fn lptim1en(&self) -> super::vals::C1Apb1lenrTim2en {
5143 let val = (self.0 >> 9usize) & 0x01; 3612 let val = (self.0 >> 9usize) & 0x01;
5144 super::vals::C1Ahb4lpenrGpioalpen(val as u8) 3613 super::vals::C1Apb1lenrTim2en(val as u8)
5145 } 3614 }
5146 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3615 #[doc = "LPTIM1 Peripheral Clocks Enable"]
5147 pub fn set_gpiojlpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) { 3616 pub fn set_lptim1en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
5148 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize); 3617 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
5149 } 3618 }
5150 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3619 #[doc = "SPI2 Peripheral Clocks Enable"]
5151 pub const fn gpioklpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen { 3620 pub const fn spi2en(&self) -> super::vals::C1Apb1lenrTim2en {
5152 let val = (self.0 >> 10usize) & 0x01; 3621 let val = (self.0 >> 14usize) & 0x01;
5153 super::vals::C1Ahb4lpenrGpioalpen(val as u8) 3622 super::vals::C1Apb1lenrTim2en(val as u8)
5154 } 3623 }
5155 #[doc = "GPIO peripheral clock enable during CSleep mode"] 3624 #[doc = "SPI2 Peripheral Clocks Enable"]
5156 pub fn set_gpioklpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) { 3625 pub fn set_spi2en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
5157 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize); 3626 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
5158 } 3627 }
5159 #[doc = "CRC peripheral clock enable during CSleep mode"] 3628 #[doc = "SPI3 Peripheral Clocks Enable"]
5160 pub const fn crclpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen { 3629 pub const fn spi3en(&self) -> super::vals::C1Apb1lenrTim2en {
3630 let val = (self.0 >> 15usize) & 0x01;
3631 super::vals::C1Apb1lenrTim2en(val as u8)
3632 }
3633 #[doc = "SPI3 Peripheral Clocks Enable"]
3634 pub fn set_spi3en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
3635 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
3636 }
3637 #[doc = "SPDIFRX Peripheral Clocks Enable"]
3638 pub const fn spdifrxen(&self) -> super::vals::C1Apb1lenrTim2en {
3639 let val = (self.0 >> 16usize) & 0x01;
3640 super::vals::C1Apb1lenrTim2en(val as u8)
3641 }
3642 #[doc = "SPDIFRX Peripheral Clocks Enable"]
3643 pub fn set_spdifrxen(&mut self, val: super::vals::C1Apb1lenrTim2en) {
3644 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
3645 }
3646 #[doc = "USART2 Peripheral Clocks Enable"]
3647 pub const fn usart2en(&self) -> super::vals::C1Apb1lenrTim2en {
3648 let val = (self.0 >> 17usize) & 0x01;
3649 super::vals::C1Apb1lenrTim2en(val as u8)
3650 }
3651 #[doc = "USART2 Peripheral Clocks Enable"]
3652 pub fn set_usart2en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
3653 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize);
3654 }
3655 #[doc = "USART3 Peripheral Clocks Enable"]
3656 pub const fn usart3en(&self) -> super::vals::C1Apb1lenrTim2en {
3657 let val = (self.0 >> 18usize) & 0x01;
3658 super::vals::C1Apb1lenrTim2en(val as u8)
3659 }
3660 #[doc = "USART3 Peripheral Clocks Enable"]
3661 pub fn set_usart3en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
3662 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
3663 }
3664 #[doc = "UART4 Peripheral Clocks Enable"]
3665 pub const fn uart4en(&self) -> super::vals::C1Apb1lenrTim2en {
5161 let val = (self.0 >> 19usize) & 0x01; 3666 let val = (self.0 >> 19usize) & 0x01;
5162 super::vals::C1Ahb4lpenrGpioalpen(val as u8) 3667 super::vals::C1Apb1lenrTim2en(val as u8)
5163 } 3668 }
5164 #[doc = "CRC peripheral clock enable during CSleep mode"] 3669 #[doc = "UART4 Peripheral Clocks Enable"]
5165 pub fn set_crclpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) { 3670 pub fn set_uart4en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
5166 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize); 3671 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
5167 } 3672 }
5168 #[doc = "BDMA Clock Enable During CSleep Mode"] 3673 #[doc = "UART5 Peripheral Clocks Enable"]
5169 pub const fn bdmalpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen { 3674 pub const fn uart5en(&self) -> super::vals::C1Apb1lenrTim2en {
3675 let val = (self.0 >> 20usize) & 0x01;
3676 super::vals::C1Apb1lenrTim2en(val as u8)
3677 }
3678 #[doc = "UART5 Peripheral Clocks Enable"]
3679 pub fn set_uart5en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
3680 self.0 = (self.0 & !(0x01 << 20usize)) | (((val.0 as u32) & 0x01) << 20usize);
3681 }
3682 #[doc = "I2C1 Peripheral Clocks Enable"]
3683 pub const fn i2c1en(&self) -> super::vals::C1Apb1lenrTim2en {
5170 let val = (self.0 >> 21usize) & 0x01; 3684 let val = (self.0 >> 21usize) & 0x01;
5171 super::vals::C1Ahb4lpenrGpioalpen(val as u8) 3685 super::vals::C1Apb1lenrTim2en(val as u8)
5172 } 3686 }
5173 #[doc = "BDMA Clock Enable During CSleep Mode"] 3687 #[doc = "I2C1 Peripheral Clocks Enable"]
5174 pub fn set_bdmalpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) { 3688 pub fn set_i2c1en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
5175 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize); 3689 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize);
5176 } 3690 }
5177 #[doc = "ADC3 Peripheral Clocks Enable During CSleep Mode"] 3691 #[doc = "I2C2 Peripheral Clocks Enable"]
5178 pub const fn adc3lpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen { 3692 pub const fn i2c2en(&self) -> super::vals::C1Apb1lenrTim2en {
5179 let val = (self.0 >> 24usize) & 0x01; 3693 let val = (self.0 >> 22usize) & 0x01;
5180 super::vals::C1Ahb4lpenrGpioalpen(val as u8) 3694 super::vals::C1Apb1lenrTim2en(val as u8)
5181 } 3695 }
5182 #[doc = "ADC3 Peripheral Clocks Enable During CSleep Mode"] 3696 #[doc = "I2C2 Peripheral Clocks Enable"]
5183 pub fn set_adc3lpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) { 3697 pub fn set_i2c2en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
5184 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize); 3698 self.0 = (self.0 & !(0x01 << 22usize)) | (((val.0 as u32) & 0x01) << 22usize);
5185 } 3699 }
5186 #[doc = "Backup RAM Clock Enable During CSleep Mode"] 3700 #[doc = "I2C3 Peripheral Clocks Enable"]
5187 pub const fn bkpramlpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen { 3701 pub const fn i2c3en(&self) -> super::vals::C1Apb1lenrTim2en {
5188 let val = (self.0 >> 28usize) & 0x01; 3702 let val = (self.0 >> 23usize) & 0x01;
5189 super::vals::C1Ahb4lpenrGpioalpen(val as u8) 3703 super::vals::C1Apb1lenrTim2en(val as u8)
5190 } 3704 }
5191 #[doc = "Backup RAM Clock Enable During CSleep Mode"] 3705 #[doc = "I2C3 Peripheral Clocks Enable"]
5192 pub fn set_bkpramlpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) { 3706 pub fn set_i2c3en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
5193 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize); 3707 self.0 = (self.0 & !(0x01 << 23usize)) | (((val.0 as u32) & 0x01) << 23usize);
5194 } 3708 }
5195 #[doc = "SRAM4 Clock Enable During CSleep Mode"] 3709 #[doc = "HDMI-CEC peripheral clock enable"]
5196 pub const fn sram4lpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen { 3710 pub const fn cecen(&self) -> super::vals::C1Apb1lenrTim2en {
3711 let val = (self.0 >> 27usize) & 0x01;
3712 super::vals::C1Apb1lenrTim2en(val as u8)
3713 }
3714 #[doc = "HDMI-CEC peripheral clock enable"]
3715 pub fn set_cecen(&mut self, val: super::vals::C1Apb1lenrTim2en) {
3716 self.0 = (self.0 & !(0x01 << 27usize)) | (((val.0 as u32) & 0x01) << 27usize);
3717 }
3718 #[doc = "DAC1&2 peripheral clock enable"]
3719 pub const fn dac12en(&self) -> super::vals::C1Apb1lenrTim2en {
5197 let val = (self.0 >> 29usize) & 0x01; 3720 let val = (self.0 >> 29usize) & 0x01;
5198 super::vals::C1Ahb4lpenrGpioalpen(val as u8) 3721 super::vals::C1Apb1lenrTim2en(val as u8)
5199 } 3722 }
5200 #[doc = "SRAM4 Clock Enable During CSleep Mode"] 3723 #[doc = "DAC1&2 peripheral clock enable"]
5201 pub fn set_sram4lpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) { 3724 pub fn set_dac12en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
5202 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize); 3725 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize);
5203 } 3726 }
5204 } 3727 #[doc = "UART7 Peripheral Clocks Enable"]
5205 impl Default for C1Ahb4lpenr { 3728 pub const fn uart7en(&self) -> super::vals::C1Apb1lenrTim2en {
5206 fn default() -> C1Ahb4lpenr { 3729 let val = (self.0 >> 30usize) & 0x01;
5207 C1Ahb4lpenr(0) 3730 super::vals::C1Apb1lenrTim2en(val as u8)
5208 } 3731 }
5209 } 3732 #[doc = "UART7 Peripheral Clocks Enable"]
5210 #[doc = "RCC Global Control Register"] 3733 pub fn set_uart7en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
5211 #[repr(transparent)] 3734 self.0 = (self.0 & !(0x01 << 30usize)) | (((val.0 as u32) & 0x01) << 30usize);
5212 #[derive(Copy, Clone, Eq, PartialEq)]
5213 pub struct Gcr(pub u32);
5214 impl Gcr {
5215 #[doc = "WWDG1 reset scope control"]
5216 pub const fn ww1rsc(&self) -> super::vals::Ww1rsc {
5217 let val = (self.0 >> 0usize) & 0x01;
5218 super::vals::Ww1rsc(val as u8)
5219 } 3735 }
5220 #[doc = "WWDG1 reset scope control"] 3736 #[doc = "UART8 Peripheral Clocks Enable"]
5221 pub fn set_ww1rsc(&mut self, val: super::vals::Ww1rsc) { 3737 pub const fn uart8en(&self) -> super::vals::C1Apb1lenrTim2en {
5222 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 3738 let val = (self.0 >> 31usize) & 0x01;
3739 super::vals::C1Apb1lenrTim2en(val as u8)
3740 }
3741 #[doc = "UART8 Peripheral Clocks Enable"]
3742 pub fn set_uart8en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
3743 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize);
5223 } 3744 }
5224 } 3745 }
5225 impl Default for Gcr { 3746 impl Default for C1Apb1lenr {
5226 fn default() -> Gcr { 3747 fn default() -> C1Apb1lenr {
5227 Gcr(0) 3748 C1Apb1lenr(0)
5228 } 3749 }
5229 } 3750 }
5230 #[doc = "RCC Clock Source Interrupt Enable Register"] 3751 #[doc = "RCC Backup Domain Control Register"]
5231 #[repr(transparent)] 3752 #[repr(transparent)]
5232 #[derive(Copy, Clone, Eq, PartialEq)] 3753 #[derive(Copy, Clone, Eq, PartialEq)]
5233 pub struct Cier(pub u32); 3754 pub struct Bdcr(pub u32);
5234 impl Cier { 3755 impl Bdcr {
5235 #[doc = "LSI ready Interrupt Enable"] 3756 #[doc = "LSE oscillator enabled"]
5236 pub const fn lsirdyie(&self) -> super::vals::Lsirdyie { 3757 pub const fn lseon(&self) -> super::vals::Lseon {
5237 let val = (self.0 >> 0usize) & 0x01; 3758 let val = (self.0 >> 0usize) & 0x01;
5238 super::vals::Lsirdyie(val as u8) 3759 super::vals::Lseon(val as u8)
5239 } 3760 }
5240 #[doc = "LSI ready Interrupt Enable"] 3761 #[doc = "LSE oscillator enabled"]
5241 pub fn set_lsirdyie(&mut self, val: super::vals::Lsirdyie) { 3762 pub fn set_lseon(&mut self, val: super::vals::Lseon) {
5242 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 3763 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
5243 } 3764 }
5244 #[doc = "LSE ready Interrupt Enable"] 3765 #[doc = "LSE oscillator ready"]
5245 pub const fn lserdyie(&self) -> super::vals::Lsirdyie { 3766 pub const fn lserdy(&self) -> bool {
5246 let val = (self.0 >> 1usize) & 0x01; 3767 let val = (self.0 >> 1usize) & 0x01;
5247 super::vals::Lsirdyie(val as u8) 3768 val != 0
5248 } 3769 }
5249 #[doc = "LSE ready Interrupt Enable"] 3770 #[doc = "LSE oscillator ready"]
5250 pub fn set_lserdyie(&mut self, val: super::vals::Lsirdyie) { 3771 pub fn set_lserdy(&mut self, val: bool) {
5251 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 3772 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
5252 } 3773 }
5253 #[doc = "HSI ready Interrupt Enable"] 3774 #[doc = "LSE oscillator bypass"]
5254 pub const fn hsirdyie(&self) -> super::vals::Lsirdyie { 3775 pub const fn lsebyp(&self) -> super::vals::Lsebyp {
5255 let val = (self.0 >> 2usize) & 0x01; 3776 let val = (self.0 >> 2usize) & 0x01;
5256 super::vals::Lsirdyie(val as u8) 3777 super::vals::Lsebyp(val as u8)
5257 } 3778 }
5258 #[doc = "HSI ready Interrupt Enable"] 3779 #[doc = "LSE oscillator bypass"]
5259 pub fn set_hsirdyie(&mut self, val: super::vals::Lsirdyie) { 3780 pub fn set_lsebyp(&mut self, val: super::vals::Lsebyp) {
5260 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize); 3781 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
5261 } 3782 }
5262 #[doc = "HSE ready Interrupt Enable"] 3783 #[doc = "LSE oscillator driving capability"]
5263 pub const fn hserdyie(&self) -> super::vals::Lsirdyie { 3784 pub const fn lsedrv(&self) -> super::vals::Lsedrv {
5264 let val = (self.0 >> 3usize) & 0x01; 3785 let val = (self.0 >> 3usize) & 0x03;
5265 super::vals::Lsirdyie(val as u8) 3786 super::vals::Lsedrv(val as u8)
5266 }
5267 #[doc = "HSE ready Interrupt Enable"]
5268 pub fn set_hserdyie(&mut self, val: super::vals::Lsirdyie) {
5269 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
5270 }
5271 #[doc = "CSI ready Interrupt Enable"]
5272 pub const fn csirdyie(&self) -> super::vals::Lsirdyie {
5273 let val = (self.0 >> 4usize) & 0x01;
5274 super::vals::Lsirdyie(val as u8)
5275 } 3787 }
5276 #[doc = "CSI ready Interrupt Enable"] 3788 #[doc = "LSE oscillator driving capability"]
5277 pub fn set_csirdyie(&mut self, val: super::vals::Lsirdyie) { 3789 pub fn set_lsedrv(&mut self, val: super::vals::Lsedrv) {
5278 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 3790 self.0 = (self.0 & !(0x03 << 3usize)) | (((val.0 as u32) & 0x03) << 3usize);
5279 } 3791 }
5280 #[doc = "RC48 ready Interrupt Enable"] 3792 #[doc = "LSE clock security system enable"]
5281 pub const fn hsi48rdyie(&self) -> super::vals::Lsirdyie { 3793 pub const fn lsecsson(&self) -> super::vals::Lsecsson {
5282 let val = (self.0 >> 5usize) & 0x01; 3794 let val = (self.0 >> 5usize) & 0x01;
5283 super::vals::Lsirdyie(val as u8) 3795 super::vals::Lsecsson(val as u8)
5284 } 3796 }
5285 #[doc = "RC48 ready Interrupt Enable"] 3797 #[doc = "LSE clock security system enable"]
5286 pub fn set_hsi48rdyie(&mut self, val: super::vals::Lsirdyie) { 3798 pub fn set_lsecsson(&mut self, val: super::vals::Lsecsson) {
5287 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 3799 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
5288 } 3800 }
5289 #[doc = "PLL1 ready Interrupt Enable"] 3801 #[doc = "LSE clock security system failure detection"]
5290 pub fn pllrdyie(&self, n: usize) -> super::vals::Lsirdyie { 3802 pub const fn lsecssd(&self) -> bool {
5291 assert!(n < 3usize); 3803 let val = (self.0 >> 6usize) & 0x01;
5292 let offs = 6usize + n * 1usize; 3804 val != 0
5293 let val = (self.0 >> offs) & 0x01;
5294 super::vals::Lsirdyie(val as u8)
5295 } 3805 }
5296 #[doc = "PLL1 ready Interrupt Enable"] 3806 #[doc = "LSE clock security system failure detection"]
5297 pub fn set_pllrdyie(&mut self, n: usize, val: super::vals::Lsirdyie) { 3807 pub fn set_lsecssd(&mut self, val: bool) {
5298 assert!(n < 3usize); 3808 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
5299 let offs = 6usize + n * 1usize;
5300 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
5301 } 3809 }
5302 #[doc = "LSE clock security system Interrupt Enable"] 3810 #[doc = "RTC clock source selection"]
5303 pub const fn lsecssie(&self) -> super::vals::Lsirdyie { 3811 pub const fn rtcsel(&self) -> super::vals::Rtcsel {
5304 let val = (self.0 >> 9usize) & 0x01; 3812 let val = (self.0 >> 8usize) & 0x03;
5305 super::vals::Lsirdyie(val as u8) 3813 super::vals::Rtcsel(val as u8)
5306 } 3814 }
5307 #[doc = "LSE clock security system Interrupt Enable"] 3815 #[doc = "RTC clock source selection"]
5308 pub fn set_lsecssie(&mut self, val: super::vals::Lsirdyie) { 3816 pub fn set_rtcsel(&mut self, val: super::vals::Rtcsel) {
5309 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize); 3817 self.0 = (self.0 & !(0x03 << 8usize)) | (((val.0 as u32) & 0x03) << 8usize);
3818 }
3819 #[doc = "RTC clock enable"]
3820 pub const fn rtcen(&self) -> super::vals::Rtcen {
3821 let val = (self.0 >> 15usize) & 0x01;
3822 super::vals::Rtcen(val as u8)
3823 }
3824 #[doc = "RTC clock enable"]
3825 pub fn set_rtcen(&mut self, val: super::vals::Rtcen) {
3826 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
3827 }
3828 #[doc = "VSwitch domain software reset"]
3829 pub const fn bdrst(&self) -> super::vals::Bdrst {
3830 let val = (self.0 >> 16usize) & 0x01;
3831 super::vals::Bdrst(val as u8)
3832 }
3833 #[doc = "VSwitch domain software reset"]
3834 pub fn set_bdrst(&mut self, val: super::vals::Bdrst) {
3835 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
5310 } 3836 }
5311 } 3837 }
5312 impl Default for Cier { 3838 impl Default for Bdcr {
5313 fn default() -> Cier { 3839 fn default() -> Bdcr {
5314 Cier(0) 3840 Bdcr(0)
5315 } 3841 }
5316 } 3842 }
5317 #[doc = "RCC Domain 3 Clock Configuration Register"] 3843 #[doc = "RCC Reset Status Register"]
5318 #[repr(transparent)] 3844 #[repr(transparent)]
5319 #[derive(Copy, Clone, Eq, PartialEq)] 3845 #[derive(Copy, Clone, Eq, PartialEq)]
5320 pub struct D3cfgr(pub u32); 3846 pub struct Rsr(pub u32);
5321 impl D3cfgr { 3847 impl Rsr {
5322 #[doc = "D3 domain APB4 prescaler"] 3848 #[doc = "Remove reset flag"]
5323 pub const fn d3ppre(&self) -> super::vals::D3ppre { 3849 pub const fn rmvf(&self) -> super::vals::RsrRmvf {
5324 let val = (self.0 >> 4usize) & 0x07; 3850 let val = (self.0 >> 16usize) & 0x01;
5325 super::vals::D3ppre(val as u8) 3851 super::vals::RsrRmvf(val as u8)
5326 } 3852 }
5327 #[doc = "D3 domain APB4 prescaler"] 3853 #[doc = "Remove reset flag"]
5328 pub fn set_d3ppre(&mut self, val: super::vals::D3ppre) { 3854 pub fn set_rmvf(&mut self, val: super::vals::RsrRmvf) {
5329 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize); 3855 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
3856 }
3857 #[doc = "CPU reset flag"]
3858 pub const fn cpurstf(&self) -> bool {
3859 let val = (self.0 >> 17usize) & 0x01;
3860 val != 0
3861 }
3862 #[doc = "CPU reset flag"]
3863 pub fn set_cpurstf(&mut self, val: bool) {
3864 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
3865 }
3866 #[doc = "D1 domain power switch reset flag"]
3867 pub const fn d1rstf(&self) -> bool {
3868 let val = (self.0 >> 19usize) & 0x01;
3869 val != 0
3870 }
3871 #[doc = "D1 domain power switch reset flag"]
3872 pub fn set_d1rstf(&mut self, val: bool) {
3873 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize);
3874 }
3875 #[doc = "D2 domain power switch reset flag"]
3876 pub const fn d2rstf(&self) -> bool {
3877 let val = (self.0 >> 20usize) & 0x01;
3878 val != 0
3879 }
3880 #[doc = "D2 domain power switch reset flag"]
3881 pub fn set_d2rstf(&mut self, val: bool) {
3882 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize);
3883 }
3884 #[doc = "BOR reset flag"]
3885 pub const fn borrstf(&self) -> bool {
3886 let val = (self.0 >> 21usize) & 0x01;
3887 val != 0
3888 }
3889 #[doc = "BOR reset flag"]
3890 pub fn set_borrstf(&mut self, val: bool) {
3891 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
3892 }
3893 #[doc = "Pin reset flag (NRST)"]
3894 pub const fn pinrstf(&self) -> bool {
3895 let val = (self.0 >> 22usize) & 0x01;
3896 val != 0
3897 }
3898 #[doc = "Pin reset flag (NRST)"]
3899 pub fn set_pinrstf(&mut self, val: bool) {
3900 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
3901 }
3902 #[doc = "POR/PDR reset flag"]
3903 pub const fn porrstf(&self) -> bool {
3904 let val = (self.0 >> 23usize) & 0x01;
3905 val != 0
3906 }
3907 #[doc = "POR/PDR reset flag"]
3908 pub fn set_porrstf(&mut self, val: bool) {
3909 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
3910 }
3911 #[doc = "System reset from CPU reset flag"]
3912 pub const fn sftrstf(&self) -> bool {
3913 let val = (self.0 >> 24usize) & 0x01;
3914 val != 0
3915 }
3916 #[doc = "System reset from CPU reset flag"]
3917 pub fn set_sftrstf(&mut self, val: bool) {
3918 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize);
3919 }
3920 #[doc = "Independent Watchdog reset flag"]
3921 pub const fn iwdg1rstf(&self) -> bool {
3922 let val = (self.0 >> 26usize) & 0x01;
3923 val != 0
3924 }
3925 #[doc = "Independent Watchdog reset flag"]
3926 pub fn set_iwdg1rstf(&mut self, val: bool) {
3927 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
3928 }
3929 #[doc = "Window Watchdog reset flag"]
3930 pub const fn wwdg1rstf(&self) -> bool {
3931 let val = (self.0 >> 28usize) & 0x01;
3932 val != 0
3933 }
3934 #[doc = "Window Watchdog reset flag"]
3935 pub fn set_wwdg1rstf(&mut self, val: bool) {
3936 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize);
3937 }
3938 #[doc = "Reset due to illegal D1 DStandby or CPU CStop flag"]
3939 pub const fn lpwrrstf(&self) -> bool {
3940 let val = (self.0 >> 30usize) & 0x01;
3941 val != 0
3942 }
3943 #[doc = "Reset due to illegal D1 DStandby or CPU CStop flag"]
3944 pub fn set_lpwrrstf(&mut self, val: bool) {
3945 self.0 = (self.0 & !(0x01 << 30usize)) | (((val as u32) & 0x01) << 30usize);
5330 } 3946 }
5331 } 3947 }
5332 impl Default for D3cfgr { 3948 impl Default for Rsr {
5333 fn default() -> D3cfgr { 3949 fn default() -> Rsr {
5334 D3cfgr(0) 3950 Rsr(0)
5335 } 3951 }
5336 } 3952 }
5337 #[doc = "RCC Internal Clock Source Calibration Register"] 3953 #[doc = "RCC Internal Clock Source Calibration Register"]
@@ -5381,383 +3997,1379 @@ pub mod rcc_h7 {
5381 Icscr(0) 3997 Icscr(0)
5382 } 3998 }
5383 } 3999 }
5384 #[doc = "RCC AHB1 Sleep Clock Register"] 4000 #[doc = "RCC APB4 Clock Register"]
5385 #[repr(transparent)] 4001 #[repr(transparent)]
5386 #[derive(Copy, Clone, Eq, PartialEq)] 4002 #[derive(Copy, Clone, Eq, PartialEq)]
5387 pub struct Ahb1lpenr(pub u32); 4003 pub struct C1Apb4enr(pub u32);
5388 impl Ahb1lpenr { 4004 impl C1Apb4enr {
5389 #[doc = "DMA1 Clock Enable During CSleep Mode"] 4005 #[doc = "SYSCFG peripheral clock enable"]
5390 pub const fn dma1lpen(&self) -> super::vals::Ahb1lpenrDma1lpen { 4006 pub const fn syscfgen(&self) -> super::vals::C1Apb4enrSyscfgen {
5391 let val = (self.0 >> 0usize) & 0x01;
5392 super::vals::Ahb1lpenrDma1lpen(val as u8)
5393 }
5394 #[doc = "DMA1 Clock Enable During CSleep Mode"]
5395 pub fn set_dma1lpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) {
5396 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
5397 }
5398 #[doc = "DMA2 Clock Enable During CSleep Mode"]
5399 pub const fn dma2lpen(&self) -> super::vals::Ahb1lpenrDma1lpen {
5400 let val = (self.0 >> 1usize) & 0x01; 4007 let val = (self.0 >> 1usize) & 0x01;
5401 super::vals::Ahb1lpenrDma1lpen(val as u8) 4008 super::vals::C1Apb4enrSyscfgen(val as u8)
5402 } 4009 }
5403 #[doc = "DMA2 Clock Enable During CSleep Mode"] 4010 #[doc = "SYSCFG peripheral clock enable"]
5404 pub fn set_dma2lpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) { 4011 pub fn set_syscfgen(&mut self, val: super::vals::C1Apb4enrSyscfgen) {
5405 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 4012 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
5406 } 4013 }
5407 #[doc = "ADC1/2 Peripheral Clocks Enable During CSleep Mode"] 4014 #[doc = "LPUART1 Peripheral Clocks Enable"]
5408 pub const fn adc12lpen(&self) -> super::vals::Ahb1lpenrDma1lpen { 4015 pub const fn lpuart1en(&self) -> super::vals::C1Apb4enrSyscfgen {
4016 let val = (self.0 >> 3usize) & 0x01;
4017 super::vals::C1Apb4enrSyscfgen(val as u8)
4018 }
4019 #[doc = "LPUART1 Peripheral Clocks Enable"]
4020 pub fn set_lpuart1en(&mut self, val: super::vals::C1Apb4enrSyscfgen) {
4021 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
4022 }
4023 #[doc = "SPI6 Peripheral Clocks Enable"]
4024 pub const fn spi6en(&self) -> super::vals::C1Apb4enrSyscfgen {
5409 let val = (self.0 >> 5usize) & 0x01; 4025 let val = (self.0 >> 5usize) & 0x01;
5410 super::vals::Ahb1lpenrDma1lpen(val as u8) 4026 super::vals::C1Apb4enrSyscfgen(val as u8)
5411 } 4027 }
5412 #[doc = "ADC1/2 Peripheral Clocks Enable During CSleep Mode"] 4028 #[doc = "SPI6 Peripheral Clocks Enable"]
5413 pub fn set_adc12lpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) { 4029 pub fn set_spi6en(&mut self, val: super::vals::C1Apb4enrSyscfgen) {
5414 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 4030 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
5415 } 4031 }
5416 #[doc = "Ethernet MAC bus interface Clock Enable During CSleep Mode"] 4032 #[doc = "I2C4 Peripheral Clocks Enable"]
5417 pub const fn eth1maclpen(&self) -> super::vals::Ahb1lpenrDma1lpen { 4033 pub const fn i2c4en(&self) -> super::vals::C1Apb4enrSyscfgen {
4034 let val = (self.0 >> 7usize) & 0x01;
4035 super::vals::C1Apb4enrSyscfgen(val as u8)
4036 }
4037 #[doc = "I2C4 Peripheral Clocks Enable"]
4038 pub fn set_i2c4en(&mut self, val: super::vals::C1Apb4enrSyscfgen) {
4039 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
4040 }
4041 #[doc = "LPTIM2 Peripheral Clocks Enable"]
4042 pub const fn lptim2en(&self) -> super::vals::C1Apb4enrSyscfgen {
4043 let val = (self.0 >> 9usize) & 0x01;
4044 super::vals::C1Apb4enrSyscfgen(val as u8)
4045 }
4046 #[doc = "LPTIM2 Peripheral Clocks Enable"]
4047 pub fn set_lptim2en(&mut self, val: super::vals::C1Apb4enrSyscfgen) {
4048 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
4049 }
4050 #[doc = "LPTIM3 Peripheral Clocks Enable"]
4051 pub const fn lptim3en(&self) -> super::vals::C1Apb4enrSyscfgen {
4052 let val = (self.0 >> 10usize) & 0x01;
4053 super::vals::C1Apb4enrSyscfgen(val as u8)
4054 }
4055 #[doc = "LPTIM3 Peripheral Clocks Enable"]
4056 pub fn set_lptim3en(&mut self, val: super::vals::C1Apb4enrSyscfgen) {
4057 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
4058 }
4059 #[doc = "LPTIM4 Peripheral Clocks Enable"]
4060 pub const fn lptim4en(&self) -> super::vals::C1Apb4enrSyscfgen {
4061 let val = (self.0 >> 11usize) & 0x01;
4062 super::vals::C1Apb4enrSyscfgen(val as u8)
4063 }
4064 #[doc = "LPTIM4 Peripheral Clocks Enable"]
4065 pub fn set_lptim4en(&mut self, val: super::vals::C1Apb4enrSyscfgen) {
4066 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
4067 }
4068 #[doc = "LPTIM5 Peripheral Clocks Enable"]
4069 pub const fn lptim5en(&self) -> super::vals::C1Apb4enrSyscfgen {
4070 let val = (self.0 >> 12usize) & 0x01;
4071 super::vals::C1Apb4enrSyscfgen(val as u8)
4072 }
4073 #[doc = "LPTIM5 Peripheral Clocks Enable"]
4074 pub fn set_lptim5en(&mut self, val: super::vals::C1Apb4enrSyscfgen) {
4075 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
4076 }
4077 #[doc = "COMP1/2 peripheral clock enable"]
4078 pub const fn comp12en(&self) -> super::vals::C1Apb4enrSyscfgen {
4079 let val = (self.0 >> 14usize) & 0x01;
4080 super::vals::C1Apb4enrSyscfgen(val as u8)
4081 }
4082 #[doc = "COMP1/2 peripheral clock enable"]
4083 pub fn set_comp12en(&mut self, val: super::vals::C1Apb4enrSyscfgen) {
4084 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
4085 }
4086 #[doc = "VREF peripheral clock enable"]
4087 pub const fn vrefen(&self) -> super::vals::C1Apb4enrSyscfgen {
5418 let val = (self.0 >> 15usize) & 0x01; 4088 let val = (self.0 >> 15usize) & 0x01;
5419 super::vals::Ahb1lpenrDma1lpen(val as u8) 4089 super::vals::C1Apb4enrSyscfgen(val as u8)
5420 } 4090 }
5421 #[doc = "Ethernet MAC bus interface Clock Enable During CSleep Mode"] 4091 #[doc = "VREF peripheral clock enable"]
5422 pub fn set_eth1maclpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) { 4092 pub fn set_vrefen(&mut self, val: super::vals::C1Apb4enrSyscfgen) {
5423 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize); 4093 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
5424 } 4094 }
5425 #[doc = "Ethernet Transmission Clock Enable During CSleep Mode"] 4095 #[doc = "RTC APB Clock Enable"]
5426 pub const fn eth1txlpen(&self) -> super::vals::Ahb1lpenrDma1lpen { 4096 pub const fn rtcapben(&self) -> super::vals::C1Apb4enrSyscfgen {
5427 let val = (self.0 >> 16usize) & 0x01; 4097 let val = (self.0 >> 16usize) & 0x01;
5428 super::vals::Ahb1lpenrDma1lpen(val as u8) 4098 super::vals::C1Apb4enrSyscfgen(val as u8)
5429 } 4099 }
5430 #[doc = "Ethernet Transmission Clock Enable During CSleep Mode"] 4100 #[doc = "RTC APB Clock Enable"]
5431 pub fn set_eth1txlpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) { 4101 pub fn set_rtcapben(&mut self, val: super::vals::C1Apb4enrSyscfgen) {
5432 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize); 4102 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
5433 } 4103 }
5434 #[doc = "Ethernet Reception Clock Enable During CSleep Mode"] 4104 #[doc = "SAI4 Peripheral Clocks Enable"]
5435 pub const fn eth1rxlpen(&self) -> super::vals::Ahb1lpenrDma1lpen { 4105 pub const fn sai4en(&self) -> super::vals::C1Apb4enrSyscfgen {
5436 let val = (self.0 >> 17usize) & 0x01; 4106 let val = (self.0 >> 21usize) & 0x01;
5437 super::vals::Ahb1lpenrDma1lpen(val as u8) 4107 super::vals::C1Apb4enrSyscfgen(val as u8)
5438 } 4108 }
5439 #[doc = "Ethernet Reception Clock Enable During CSleep Mode"] 4109 #[doc = "SAI4 Peripheral Clocks Enable"]
5440 pub fn set_eth1rxlpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) { 4110 pub fn set_sai4en(&mut self, val: super::vals::C1Apb4enrSyscfgen) {
5441 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize); 4111 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize);
5442 } 4112 }
5443 #[doc = "USB1OTG peripheral clock enable during CSleep mode"] 4113 }
5444 pub const fn usb1otglpen(&self) -> super::vals::Ahb1lpenrDma1lpen { 4114 impl Default for C1Apb4enr {
5445 let val = (self.0 >> 25usize) & 0x01; 4115 fn default() -> C1Apb4enr {
5446 super::vals::Ahb1lpenrDma1lpen(val as u8) 4116 C1Apb4enr(0)
5447 } 4117 }
5448 #[doc = "USB1OTG peripheral clock enable during CSleep mode"] 4118 }
5449 pub fn set_usb1otglpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) { 4119 #[doc = "RCC Clock Source Interrupt Flag Register"]
5450 self.0 = (self.0 & !(0x01 << 25usize)) | (((val.0 as u32) & 0x01) << 25usize); 4120 #[repr(transparent)]
4121 #[derive(Copy, Clone, Eq, PartialEq)]
4122 pub struct Cifr(pub u32);
4123 impl Cifr {
4124 #[doc = "LSI ready Interrupt Flag"]
4125 pub const fn lsirdyf(&self) -> bool {
4126 let val = (self.0 >> 0usize) & 0x01;
4127 val != 0
5451 } 4128 }
5452 #[doc = "USB_PHY1 clock enable during CSleep mode"] 4129 #[doc = "LSI ready Interrupt Flag"]
5453 pub const fn usb1otghsulpilpen(&self) -> super::vals::Ahb1lpenrDma1lpen { 4130 pub fn set_lsirdyf(&mut self, val: bool) {
5454 let val = (self.0 >> 26usize) & 0x01; 4131 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
5455 super::vals::Ahb1lpenrDma1lpen(val as u8)
5456 } 4132 }
5457 #[doc = "USB_PHY1 clock enable during CSleep mode"] 4133 #[doc = "LSE ready Interrupt Flag"]
5458 pub fn set_usb1otghsulpilpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) { 4134 pub const fn lserdyf(&self) -> bool {
5459 self.0 = (self.0 & !(0x01 << 26usize)) | (((val.0 as u32) & 0x01) << 26usize); 4135 let val = (self.0 >> 1usize) & 0x01;
4136 val != 0
5460 } 4137 }
5461 #[doc = "USB2OTG peripheral clock enable during CSleep mode"] 4138 #[doc = "LSE ready Interrupt Flag"]
5462 pub const fn usb2otglpen(&self) -> super::vals::Ahb1lpenrDma1lpen { 4139 pub fn set_lserdyf(&mut self, val: bool) {
5463 let val = (self.0 >> 27usize) & 0x01; 4140 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
5464 super::vals::Ahb1lpenrDma1lpen(val as u8)
5465 } 4141 }
5466 #[doc = "USB2OTG peripheral clock enable during CSleep mode"] 4142 #[doc = "HSI ready Interrupt Flag"]
5467 pub fn set_usb2otglpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) { 4143 pub const fn hsirdyf(&self) -> bool {
5468 self.0 = (self.0 & !(0x01 << 27usize)) | (((val.0 as u32) & 0x01) << 27usize); 4144 let val = (self.0 >> 2usize) & 0x01;
4145 val != 0
5469 } 4146 }
5470 #[doc = "USB_PHY2 clocks enable during CSleep mode"] 4147 #[doc = "HSI ready Interrupt Flag"]
5471 pub const fn usb2otghsulpilpen(&self) -> super::vals::Ahb1lpenrDma1lpen { 4148 pub fn set_hsirdyf(&mut self, val: bool) {
5472 let val = (self.0 >> 28usize) & 0x01; 4149 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
5473 super::vals::Ahb1lpenrDma1lpen(val as u8)
5474 } 4150 }
5475 #[doc = "USB_PHY2 clocks enable during CSleep mode"] 4151 #[doc = "HSE ready Interrupt Flag"]
5476 pub fn set_usb2otghsulpilpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) { 4152 pub const fn hserdyf(&self) -> bool {
5477 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize); 4153 let val = (self.0 >> 3usize) & 0x01;
4154 val != 0
4155 }
4156 #[doc = "HSE ready Interrupt Flag"]
4157 pub fn set_hserdyf(&mut self, val: bool) {
4158 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
4159 }
4160 #[doc = "CSI ready Interrupt Flag"]
4161 pub const fn csirdy(&self) -> bool {
4162 let val = (self.0 >> 4usize) & 0x01;
4163 val != 0
4164 }
4165 #[doc = "CSI ready Interrupt Flag"]
4166 pub fn set_csirdy(&mut self, val: bool) {
4167 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
4168 }
4169 #[doc = "RC48 ready Interrupt Flag"]
4170 pub const fn hsi48rdyf(&self) -> bool {
4171 let val = (self.0 >> 5usize) & 0x01;
4172 val != 0
4173 }
4174 #[doc = "RC48 ready Interrupt Flag"]
4175 pub fn set_hsi48rdyf(&mut self, val: bool) {
4176 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
4177 }
4178 #[doc = "PLL1 ready Interrupt Flag"]
4179 pub fn pllrdyf(&self, n: usize) -> bool {
4180 assert!(n < 3usize);
4181 let offs = 6usize + n * 1usize;
4182 let val = (self.0 >> offs) & 0x01;
4183 val != 0
4184 }
4185 #[doc = "PLL1 ready Interrupt Flag"]
4186 pub fn set_pllrdyf(&mut self, n: usize, val: bool) {
4187 assert!(n < 3usize);
4188 let offs = 6usize + n * 1usize;
4189 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
4190 }
4191 #[doc = "LSE clock security system Interrupt Flag"]
4192 pub const fn lsecssf(&self) -> bool {
4193 let val = (self.0 >> 9usize) & 0x01;
4194 val != 0
4195 }
4196 #[doc = "LSE clock security system Interrupt Flag"]
4197 pub fn set_lsecssf(&mut self, val: bool) {
4198 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
4199 }
4200 #[doc = "HSE clock security system Interrupt Flag"]
4201 pub const fn hsecssf(&self) -> bool {
4202 let val = (self.0 >> 10usize) & 0x01;
4203 val != 0
4204 }
4205 #[doc = "HSE clock security system Interrupt Flag"]
4206 pub fn set_hsecssf(&mut self, val: bool) {
4207 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
5478 } 4208 }
5479 } 4209 }
5480 impl Default for Ahb1lpenr { 4210 impl Default for Cifr {
5481 fn default() -> Ahb1lpenr { 4211 fn default() -> Cifr {
5482 Ahb1lpenr(0) 4212 Cifr(0)
5483 } 4213 }
5484 } 4214 }
5485 #[doc = "RCC APB3 Peripheral Reset Register"] 4215 #[doc = "RCC Domain 2 Kernel Clock Configuration Register"]
5486 #[repr(transparent)] 4216 #[repr(transparent)]
5487 #[derive(Copy, Clone, Eq, PartialEq)] 4217 #[derive(Copy, Clone, Eq, PartialEq)]
5488 pub struct Apb3rstr(pub u32); 4218 pub struct D2ccip2r(pub u32);
5489 impl Apb3rstr { 4219 impl D2ccip2r {
5490 #[doc = "LTDC block reset"] 4220 #[doc = "USART2/3, UART4,5, 7/8 (APB1) kernel clock source selection"]
5491 pub const fn ltdcrst(&self) -> super::vals::Ltdcrst { 4221 pub const fn usart234578sel(&self) -> super::vals::Usart234578sel {
5492 let val = (self.0 >> 3usize) & 0x01; 4222 let val = (self.0 >> 0usize) & 0x07;
5493 super::vals::Ltdcrst(val as u8) 4223 super::vals::Usart234578sel(val as u8)
5494 } 4224 }
5495 #[doc = "LTDC block reset"] 4225 #[doc = "USART2/3, UART4,5, 7/8 (APB1) kernel clock source selection"]
5496 pub fn set_ltdcrst(&mut self, val: super::vals::Ltdcrst) { 4226 pub fn set_usart234578sel(&mut self, val: super::vals::Usart234578sel) {
5497 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize); 4227 self.0 = (self.0 & !(0x07 << 0usize)) | (((val.0 as u32) & 0x07) << 0usize);
4228 }
4229 #[doc = "USART1 and 6 kernel clock source selection"]
4230 pub const fn usart16sel(&self) -> super::vals::Usart16sel {
4231 let val = (self.0 >> 3usize) & 0x07;
4232 super::vals::Usart16sel(val as u8)
4233 }
4234 #[doc = "USART1 and 6 kernel clock source selection"]
4235 pub fn set_usart16sel(&mut self, val: super::vals::Usart16sel) {
4236 self.0 = (self.0 & !(0x07 << 3usize)) | (((val.0 as u32) & 0x07) << 3usize);
4237 }
4238 #[doc = "RNG kernel clock source selection"]
4239 pub const fn rngsel(&self) -> super::vals::Rngsel {
4240 let val = (self.0 >> 8usize) & 0x03;
4241 super::vals::Rngsel(val as u8)
4242 }
4243 #[doc = "RNG kernel clock source selection"]
4244 pub fn set_rngsel(&mut self, val: super::vals::Rngsel) {
4245 self.0 = (self.0 & !(0x03 << 8usize)) | (((val.0 as u32) & 0x03) << 8usize);
4246 }
4247 #[doc = "I2C1,2,3 kernel clock source selection"]
4248 pub const fn i2c123sel(&self) -> super::vals::I2c123sel {
4249 let val = (self.0 >> 12usize) & 0x03;
4250 super::vals::I2c123sel(val as u8)
4251 }
4252 #[doc = "I2C1,2,3 kernel clock source selection"]
4253 pub fn set_i2c123sel(&mut self, val: super::vals::I2c123sel) {
4254 self.0 = (self.0 & !(0x03 << 12usize)) | (((val.0 as u32) & 0x03) << 12usize);
4255 }
4256 #[doc = "USBOTG 1 and 2 kernel clock source selection"]
4257 pub const fn usbsel(&self) -> super::vals::Usbsel {
4258 let val = (self.0 >> 20usize) & 0x03;
4259 super::vals::Usbsel(val as u8)
4260 }
4261 #[doc = "USBOTG 1 and 2 kernel clock source selection"]
4262 pub fn set_usbsel(&mut self, val: super::vals::Usbsel) {
4263 self.0 = (self.0 & !(0x03 << 20usize)) | (((val.0 as u32) & 0x03) << 20usize);
4264 }
4265 #[doc = "HDMI-CEC kernel clock source selection"]
4266 pub const fn cecsel(&self) -> super::vals::Cecsel {
4267 let val = (self.0 >> 22usize) & 0x03;
4268 super::vals::Cecsel(val as u8)
4269 }
4270 #[doc = "HDMI-CEC kernel clock source selection"]
4271 pub fn set_cecsel(&mut self, val: super::vals::Cecsel) {
4272 self.0 = (self.0 & !(0x03 << 22usize)) | (((val.0 as u32) & 0x03) << 22usize);
4273 }
4274 #[doc = "LPTIM1 kernel clock source selection"]
4275 pub const fn lptim1sel(&self) -> super::vals::Lptim1sel {
4276 let val = (self.0 >> 28usize) & 0x07;
4277 super::vals::Lptim1sel(val as u8)
4278 }
4279 #[doc = "LPTIM1 kernel clock source selection"]
4280 pub fn set_lptim1sel(&mut self, val: super::vals::Lptim1sel) {
4281 self.0 = (self.0 & !(0x07 << 28usize)) | (((val.0 as u32) & 0x07) << 28usize);
5498 } 4282 }
5499 } 4283 }
5500 impl Default for Apb3rstr { 4284 impl Default for D2ccip2r {
5501 fn default() -> Apb3rstr { 4285 fn default() -> D2ccip2r {
5502 Apb3rstr(0) 4286 D2ccip2r(0)
4287 }
4288 }
4289 #[doc = "RCC Clock Configuration Register"]
4290 #[repr(transparent)]
4291 #[derive(Copy, Clone, Eq, PartialEq)]
4292 pub struct Cfgr(pub u32);
4293 impl Cfgr {
4294 #[doc = "System clock switch"]
4295 pub const fn sw(&self) -> super::vals::Sw {
4296 let val = (self.0 >> 0usize) & 0x07;
4297 super::vals::Sw(val as u8)
4298 }
4299 #[doc = "System clock switch"]
4300 pub fn set_sw(&mut self, val: super::vals::Sw) {
4301 self.0 = (self.0 & !(0x07 << 0usize)) | (((val.0 as u32) & 0x07) << 0usize);
4302 }
4303 #[doc = "System clock switch status"]
4304 pub const fn sws(&self) -> u8 {
4305 let val = (self.0 >> 3usize) & 0x07;
4306 val as u8
4307 }
4308 #[doc = "System clock switch status"]
4309 pub fn set_sws(&mut self, val: u8) {
4310 self.0 = (self.0 & !(0x07 << 3usize)) | (((val as u32) & 0x07) << 3usize);
4311 }
4312 #[doc = "System clock selection after a wake up from system Stop"]
4313 pub const fn stopwuck(&self) -> super::vals::Stopwuck {
4314 let val = (self.0 >> 6usize) & 0x01;
4315 super::vals::Stopwuck(val as u8)
4316 }
4317 #[doc = "System clock selection after a wake up from system Stop"]
4318 pub fn set_stopwuck(&mut self, val: super::vals::Stopwuck) {
4319 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
4320 }
4321 #[doc = "Kernel clock selection after a wake up from system Stop"]
4322 pub const fn stopkerwuck(&self) -> super::vals::Stopwuck {
4323 let val = (self.0 >> 7usize) & 0x01;
4324 super::vals::Stopwuck(val as u8)
4325 }
4326 #[doc = "Kernel clock selection after a wake up from system Stop"]
4327 pub fn set_stopkerwuck(&mut self, val: super::vals::Stopwuck) {
4328 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
4329 }
4330 #[doc = "HSE division factor for RTC clock"]
4331 pub const fn rtcpre(&self) -> u8 {
4332 let val = (self.0 >> 8usize) & 0x3f;
4333 val as u8
4334 }
4335 #[doc = "HSE division factor for RTC clock"]
4336 pub fn set_rtcpre(&mut self, val: u8) {
4337 self.0 = (self.0 & !(0x3f << 8usize)) | (((val as u32) & 0x3f) << 8usize);
4338 }
4339 #[doc = "High Resolution Timer clock prescaler selection"]
4340 pub const fn hrtimsel(&self) -> super::vals::Hrtimsel {
4341 let val = (self.0 >> 14usize) & 0x01;
4342 super::vals::Hrtimsel(val as u8)
4343 }
4344 #[doc = "High Resolution Timer clock prescaler selection"]
4345 pub fn set_hrtimsel(&mut self, val: super::vals::Hrtimsel) {
4346 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
4347 }
4348 #[doc = "Timers clocks prescaler selection"]
4349 pub const fn timpre(&self) -> super::vals::Timpre {
4350 let val = (self.0 >> 15usize) & 0x01;
4351 super::vals::Timpre(val as u8)
4352 }
4353 #[doc = "Timers clocks prescaler selection"]
4354 pub fn set_timpre(&mut self, val: super::vals::Timpre) {
4355 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
4356 }
4357 #[doc = "MCO1 prescaler"]
4358 pub const fn mco1pre(&self) -> u8 {
4359 let val = (self.0 >> 18usize) & 0x0f;
4360 val as u8
4361 }
4362 #[doc = "MCO1 prescaler"]
4363 pub fn set_mco1pre(&mut self, val: u8) {
4364 self.0 = (self.0 & !(0x0f << 18usize)) | (((val as u32) & 0x0f) << 18usize);
4365 }
4366 #[doc = "Micro-controller clock output 1"]
4367 pub const fn mco1(&self) -> super::vals::Mco1 {
4368 let val = (self.0 >> 22usize) & 0x07;
4369 super::vals::Mco1(val as u8)
4370 }
4371 #[doc = "Micro-controller clock output 1"]
4372 pub fn set_mco1(&mut self, val: super::vals::Mco1) {
4373 self.0 = (self.0 & !(0x07 << 22usize)) | (((val.0 as u32) & 0x07) << 22usize);
4374 }
4375 #[doc = "MCO2 prescaler"]
4376 pub const fn mco2pre(&self) -> u8 {
4377 let val = (self.0 >> 25usize) & 0x0f;
4378 val as u8
4379 }
4380 #[doc = "MCO2 prescaler"]
4381 pub fn set_mco2pre(&mut self, val: u8) {
4382 self.0 = (self.0 & !(0x0f << 25usize)) | (((val as u32) & 0x0f) << 25usize);
4383 }
4384 #[doc = "Micro-controller clock output 2"]
4385 pub const fn mco2(&self) -> super::vals::Mco2 {
4386 let val = (self.0 >> 29usize) & 0x07;
4387 super::vals::Mco2(val as u8)
4388 }
4389 #[doc = "Micro-controller clock output 2"]
4390 pub fn set_mco2(&mut self, val: super::vals::Mco2) {
4391 self.0 = (self.0 & !(0x07 << 29usize)) | (((val.0 as u32) & 0x07) << 29usize);
4392 }
4393 }
4394 impl Default for Cfgr {
4395 fn default() -> Cfgr {
4396 Cfgr(0)
4397 }
4398 }
4399 #[doc = "RCC Domain 2 Clock Configuration Register"]
4400 #[repr(transparent)]
4401 #[derive(Copy, Clone, Eq, PartialEq)]
4402 pub struct D2cfgr(pub u32);
4403 impl D2cfgr {
4404 #[doc = "D2 domain APB1 prescaler"]
4405 pub const fn d2ppre1(&self) -> super::vals::D2ppre1 {
4406 let val = (self.0 >> 4usize) & 0x07;
4407 super::vals::D2ppre1(val as u8)
4408 }
4409 #[doc = "D2 domain APB1 prescaler"]
4410 pub fn set_d2ppre1(&mut self, val: super::vals::D2ppre1) {
4411 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize);
4412 }
4413 #[doc = "D2 domain APB2 prescaler"]
4414 pub const fn d2ppre2(&self) -> super::vals::D2ppre1 {
4415 let val = (self.0 >> 8usize) & 0x07;
4416 super::vals::D2ppre1(val as u8)
4417 }
4418 #[doc = "D2 domain APB2 prescaler"]
4419 pub fn set_d2ppre2(&mut self, val: super::vals::D2ppre1) {
4420 self.0 = (self.0 & !(0x07 << 8usize)) | (((val.0 as u32) & 0x07) << 8usize);
4421 }
4422 }
4423 impl Default for D2cfgr {
4424 fn default() -> D2cfgr {
4425 D2cfgr(0)
4426 }
4427 }
4428 #[doc = "RCC Domain 2 Kernel Clock Configuration Register"]
4429 #[repr(transparent)]
4430 #[derive(Copy, Clone, Eq, PartialEq)]
4431 pub struct D2ccip1r(pub u32);
4432 impl D2ccip1r {
4433 #[doc = "SAI1 and DFSDM1 kernel Aclk clock source selection"]
4434 pub const fn sai1sel(&self) -> super::vals::Sai1sel {
4435 let val = (self.0 >> 0usize) & 0x07;
4436 super::vals::Sai1sel(val as u8)
4437 }
4438 #[doc = "SAI1 and DFSDM1 kernel Aclk clock source selection"]
4439 pub fn set_sai1sel(&mut self, val: super::vals::Sai1sel) {
4440 self.0 = (self.0 & !(0x07 << 0usize)) | (((val.0 as u32) & 0x07) << 0usize);
4441 }
4442 #[doc = "SAI2 and SAI3 kernel clock source selection"]
4443 pub const fn sai23sel(&self) -> super::vals::Sai1sel {
4444 let val = (self.0 >> 6usize) & 0x07;
4445 super::vals::Sai1sel(val as u8)
4446 }
4447 #[doc = "SAI2 and SAI3 kernel clock source selection"]
4448 pub fn set_sai23sel(&mut self, val: super::vals::Sai1sel) {
4449 self.0 = (self.0 & !(0x07 << 6usize)) | (((val.0 as u32) & 0x07) << 6usize);
4450 }
4451 #[doc = "SPI/I2S1,2 and 3 kernel clock source selection"]
4452 pub const fn spi123sel(&self) -> super::vals::Sai1sel {
4453 let val = (self.0 >> 12usize) & 0x07;
4454 super::vals::Sai1sel(val as u8)
4455 }
4456 #[doc = "SPI/I2S1,2 and 3 kernel clock source selection"]
4457 pub fn set_spi123sel(&mut self, val: super::vals::Sai1sel) {
4458 self.0 = (self.0 & !(0x07 << 12usize)) | (((val.0 as u32) & 0x07) << 12usize);
4459 }
4460 #[doc = "SPI4 and 5 kernel clock source selection"]
4461 pub const fn spi45sel(&self) -> super::vals::Spi45sel {
4462 let val = (self.0 >> 16usize) & 0x07;
4463 super::vals::Spi45sel(val as u8)
4464 }
4465 #[doc = "SPI4 and 5 kernel clock source selection"]
4466 pub fn set_spi45sel(&mut self, val: super::vals::Spi45sel) {
4467 self.0 = (self.0 & !(0x07 << 16usize)) | (((val.0 as u32) & 0x07) << 16usize);
4468 }
4469 #[doc = "SPDIFRX kernel clock source selection"]
4470 pub const fn spdifsel(&self) -> super::vals::Spdifsel {
4471 let val = (self.0 >> 20usize) & 0x03;
4472 super::vals::Spdifsel(val as u8)
4473 }
4474 #[doc = "SPDIFRX kernel clock source selection"]
4475 pub fn set_spdifsel(&mut self, val: super::vals::Spdifsel) {
4476 self.0 = (self.0 & !(0x03 << 20usize)) | (((val.0 as u32) & 0x03) << 20usize);
4477 }
4478 #[doc = "DFSDM1 kernel Clk clock source selection"]
4479 pub const fn dfsdm1sel(&self) -> super::vals::Dfsdm1sel {
4480 let val = (self.0 >> 24usize) & 0x01;
4481 super::vals::Dfsdm1sel(val as u8)
4482 }
4483 #[doc = "DFSDM1 kernel Clk clock source selection"]
4484 pub fn set_dfsdm1sel(&mut self, val: super::vals::Dfsdm1sel) {
4485 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
4486 }
4487 #[doc = "FDCAN kernel clock source selection"]
4488 pub const fn fdcansel(&self) -> super::vals::Fdcansel {
4489 let val = (self.0 >> 28usize) & 0x03;
4490 super::vals::Fdcansel(val as u8)
4491 }
4492 #[doc = "FDCAN kernel clock source selection"]
4493 pub fn set_fdcansel(&mut self, val: super::vals::Fdcansel) {
4494 self.0 = (self.0 & !(0x03 << 28usize)) | (((val.0 as u32) & 0x03) << 28usize);
4495 }
4496 #[doc = "SWPMI kernel clock source selection"]
4497 pub const fn swpsel(&self) -> super::vals::Swpsel {
4498 let val = (self.0 >> 31usize) & 0x01;
4499 super::vals::Swpsel(val as u8)
4500 }
4501 #[doc = "SWPMI kernel clock source selection"]
4502 pub fn set_swpsel(&mut self, val: super::vals::Swpsel) {
4503 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize);
4504 }
4505 }
4506 impl Default for D2ccip1r {
4507 fn default() -> D2ccip1r {
4508 D2ccip1r(0)
4509 }
4510 }
4511 #[doc = "RCC AHB2 Peripheral Reset Register"]
4512 #[repr(transparent)]
4513 #[derive(Copy, Clone, Eq, PartialEq)]
4514 pub struct Ahb2rstr(pub u32);
4515 impl Ahb2rstr {
4516 #[doc = "CAMITF block reset"]
4517 pub const fn camitfrst(&self) -> super::vals::Camitfrst {
4518 let val = (self.0 >> 0usize) & 0x01;
4519 super::vals::Camitfrst(val as u8)
4520 }
4521 #[doc = "CAMITF block reset"]
4522 pub fn set_camitfrst(&mut self, val: super::vals::Camitfrst) {
4523 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
4524 }
4525 #[doc = "Cryptography block reset"]
4526 pub const fn cryptrst(&self) -> super::vals::Camitfrst {
4527 let val = (self.0 >> 4usize) & 0x01;
4528 super::vals::Camitfrst(val as u8)
4529 }
4530 #[doc = "Cryptography block reset"]
4531 pub fn set_cryptrst(&mut self, val: super::vals::Camitfrst) {
4532 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
4533 }
4534 #[doc = "Hash block reset"]
4535 pub const fn hashrst(&self) -> super::vals::Camitfrst {
4536 let val = (self.0 >> 5usize) & 0x01;
4537 super::vals::Camitfrst(val as u8)
4538 }
4539 #[doc = "Hash block reset"]
4540 pub fn set_hashrst(&mut self, val: super::vals::Camitfrst) {
4541 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
4542 }
4543 #[doc = "Random Number Generator block reset"]
4544 pub const fn rngrst(&self) -> super::vals::Camitfrst {
4545 let val = (self.0 >> 6usize) & 0x01;
4546 super::vals::Camitfrst(val as u8)
4547 }
4548 #[doc = "Random Number Generator block reset"]
4549 pub fn set_rngrst(&mut self, val: super::vals::Camitfrst) {
4550 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
4551 }
4552 #[doc = "SDMMC2 and SDMMC2 Delay block reset"]
4553 pub const fn sdmmc2rst(&self) -> super::vals::Camitfrst {
4554 let val = (self.0 >> 9usize) & 0x01;
4555 super::vals::Camitfrst(val as u8)
4556 }
4557 #[doc = "SDMMC2 and SDMMC2 Delay block reset"]
4558 pub fn set_sdmmc2rst(&mut self, val: super::vals::Camitfrst) {
4559 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
4560 }
4561 }
4562 impl Default for Ahb2rstr {
4563 fn default() -> Ahb2rstr {
4564 Ahb2rstr(0)
5503 } 4565 }
5504 } 4566 }
5505 #[doc = "RCC AHB1 Clock Register"] 4567 #[doc = "RCC AHB1 Clock Register"]
5506 #[repr(transparent)] 4568 #[repr(transparent)]
5507 #[derive(Copy, Clone, Eq, PartialEq)] 4569 #[derive(Copy, Clone, Eq, PartialEq)]
5508 pub struct C1Ahb1enr(pub u32); 4570 pub struct Ahb1enr(pub u32);
5509 impl C1Ahb1enr { 4571 impl Ahb1enr {
5510 #[doc = "DMA1 Clock Enable"] 4572 #[doc = "DMA1 Clock Enable"]
5511 pub const fn dma1en(&self) -> super::vals::C1Ahb1enrDma1en { 4573 pub const fn dma1en(&self) -> super::vals::Ahb1enrDma1en {
5512 let val = (self.0 >> 0usize) & 0x01; 4574 let val = (self.0 >> 0usize) & 0x01;
5513 super::vals::C1Ahb1enrDma1en(val as u8) 4575 super::vals::Ahb1enrDma1en(val as u8)
5514 } 4576 }
5515 #[doc = "DMA1 Clock Enable"] 4577 #[doc = "DMA1 Clock Enable"]
5516 pub fn set_dma1en(&mut self, val: super::vals::C1Ahb1enrDma1en) { 4578 pub fn set_dma1en(&mut self, val: super::vals::Ahb1enrDma1en) {
5517 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 4579 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
5518 } 4580 }
5519 #[doc = "DMA2 Clock Enable"] 4581 #[doc = "DMA2 Clock Enable"]
5520 pub const fn dma2en(&self) -> super::vals::C1Ahb1enrDma1en { 4582 pub const fn dma2en(&self) -> super::vals::Ahb1enrDma1en {
5521 let val = (self.0 >> 1usize) & 0x01; 4583 let val = (self.0 >> 1usize) & 0x01;
5522 super::vals::C1Ahb1enrDma1en(val as u8) 4584 super::vals::Ahb1enrDma1en(val as u8)
5523 } 4585 }
5524 #[doc = "DMA2 Clock Enable"] 4586 #[doc = "DMA2 Clock Enable"]
5525 pub fn set_dma2en(&mut self, val: super::vals::C1Ahb1enrDma1en) { 4587 pub fn set_dma2en(&mut self, val: super::vals::Ahb1enrDma1en) {
5526 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 4588 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
5527 } 4589 }
5528 #[doc = "ADC1/2 Peripheral Clocks Enable"] 4590 #[doc = "ADC1/2 Peripheral Clocks Enable"]
5529 pub const fn adc12en(&self) -> super::vals::C1Ahb1enrDma1en { 4591 pub const fn adc12en(&self) -> super::vals::Ahb1enrDma1en {
5530 let val = (self.0 >> 5usize) & 0x01; 4592 let val = (self.0 >> 5usize) & 0x01;
5531 super::vals::C1Ahb1enrDma1en(val as u8) 4593 super::vals::Ahb1enrDma1en(val as u8)
5532 } 4594 }
5533 #[doc = "ADC1/2 Peripheral Clocks Enable"] 4595 #[doc = "ADC1/2 Peripheral Clocks Enable"]
5534 pub fn set_adc12en(&mut self, val: super::vals::C1Ahb1enrDma1en) { 4596 pub fn set_adc12en(&mut self, val: super::vals::Ahb1enrDma1en) {
5535 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 4597 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
5536 } 4598 }
5537 #[doc = "Ethernet MAC bus interface Clock Enable"] 4599 #[doc = "Ethernet MAC bus interface Clock Enable"]
5538 pub const fn eth1macen(&self) -> super::vals::C1Ahb1enrDma1en { 4600 pub const fn eth1macen(&self) -> super::vals::Ahb1enrDma1en {
5539 let val = (self.0 >> 15usize) & 0x01; 4601 let val = (self.0 >> 15usize) & 0x01;
5540 super::vals::C1Ahb1enrDma1en(val as u8) 4602 super::vals::Ahb1enrDma1en(val as u8)
5541 } 4603 }
5542 #[doc = "Ethernet MAC bus interface Clock Enable"] 4604 #[doc = "Ethernet MAC bus interface Clock Enable"]
5543 pub fn set_eth1macen(&mut self, val: super::vals::C1Ahb1enrDma1en) { 4605 pub fn set_eth1macen(&mut self, val: super::vals::Ahb1enrDma1en) {
5544 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize); 4606 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
5545 } 4607 }
5546 #[doc = "Ethernet Transmission Clock Enable"] 4608 #[doc = "Ethernet Transmission Clock Enable"]
5547 pub const fn eth1txen(&self) -> super::vals::C1Ahb1enrDma1en { 4609 pub const fn eth1txen(&self) -> super::vals::Ahb1enrDma1en {
5548 let val = (self.0 >> 16usize) & 0x01; 4610 let val = (self.0 >> 16usize) & 0x01;
5549 super::vals::C1Ahb1enrDma1en(val as u8) 4611 super::vals::Ahb1enrDma1en(val as u8)
5550 } 4612 }
5551 #[doc = "Ethernet Transmission Clock Enable"] 4613 #[doc = "Ethernet Transmission Clock Enable"]
5552 pub fn set_eth1txen(&mut self, val: super::vals::C1Ahb1enrDma1en) { 4614 pub fn set_eth1txen(&mut self, val: super::vals::Ahb1enrDma1en) {
5553 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize); 4615 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
5554 } 4616 }
5555 #[doc = "Ethernet Reception Clock Enable"] 4617 #[doc = "Ethernet Reception Clock Enable"]
5556 pub const fn eth1rxen(&self) -> super::vals::C1Ahb1enrDma1en { 4618 pub const fn eth1rxen(&self) -> super::vals::Ahb1enrDma1en {
5557 let val = (self.0 >> 17usize) & 0x01; 4619 let val = (self.0 >> 17usize) & 0x01;
5558 super::vals::C1Ahb1enrDma1en(val as u8) 4620 super::vals::Ahb1enrDma1en(val as u8)
5559 } 4621 }
5560 #[doc = "Ethernet Reception Clock Enable"] 4622 #[doc = "Ethernet Reception Clock Enable"]
5561 pub fn set_eth1rxen(&mut self, val: super::vals::C1Ahb1enrDma1en) { 4623 pub fn set_eth1rxen(&mut self, val: super::vals::Ahb1enrDma1en) {
5562 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize); 4624 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize);
5563 } 4625 }
4626 #[doc = "Enable USB_PHY2 clocks"]
4627 pub const fn usb2otghsulpien(&self) -> super::vals::Ahb1enrDma1en {
4628 let val = (self.0 >> 18usize) & 0x01;
4629 super::vals::Ahb1enrDma1en(val as u8)
4630 }
4631 #[doc = "Enable USB_PHY2 clocks"]
4632 pub fn set_usb2otghsulpien(&mut self, val: super::vals::Ahb1enrDma1en) {
4633 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
4634 }
5564 #[doc = "USB1OTG Peripheral Clocks Enable"] 4635 #[doc = "USB1OTG Peripheral Clocks Enable"]
5565 pub const fn usb1otgen(&self) -> super::vals::C1Ahb1enrDma1en { 4636 pub const fn usb1otgen(&self) -> super::vals::Ahb1enrDma1en {
5566 let val = (self.0 >> 25usize) & 0x01; 4637 let val = (self.0 >> 25usize) & 0x01;
5567 super::vals::C1Ahb1enrDma1en(val as u8) 4638 super::vals::Ahb1enrDma1en(val as u8)
5568 } 4639 }
5569 #[doc = "USB1OTG Peripheral Clocks Enable"] 4640 #[doc = "USB1OTG Peripheral Clocks Enable"]
5570 pub fn set_usb1otgen(&mut self, val: super::vals::C1Ahb1enrDma1en) { 4641 pub fn set_usb1otgen(&mut self, val: super::vals::Ahb1enrDma1en) {
5571 self.0 = (self.0 & !(0x01 << 25usize)) | (((val.0 as u32) & 0x01) << 25usize); 4642 self.0 = (self.0 & !(0x01 << 25usize)) | (((val.0 as u32) & 0x01) << 25usize);
5572 } 4643 }
5573 #[doc = "USB_PHY1 Clocks Enable"] 4644 #[doc = "USB_PHY1 Clocks Enable"]
5574 pub const fn usb1ulpien(&self) -> super::vals::C1Ahb1enrDma1en { 4645 pub const fn usb1ulpien(&self) -> super::vals::Ahb1enrDma1en {
5575 let val = (self.0 >> 26usize) & 0x01; 4646 let val = (self.0 >> 26usize) & 0x01;
5576 super::vals::C1Ahb1enrDma1en(val as u8) 4647 super::vals::Ahb1enrDma1en(val as u8)
5577 } 4648 }
5578 #[doc = "USB_PHY1 Clocks Enable"] 4649 #[doc = "USB_PHY1 Clocks Enable"]
5579 pub fn set_usb1ulpien(&mut self, val: super::vals::C1Ahb1enrDma1en) { 4650 pub fn set_usb1ulpien(&mut self, val: super::vals::Ahb1enrDma1en) {
5580 self.0 = (self.0 & !(0x01 << 26usize)) | (((val.0 as u32) & 0x01) << 26usize); 4651 self.0 = (self.0 & !(0x01 << 26usize)) | (((val.0 as u32) & 0x01) << 26usize);
5581 } 4652 }
5582 #[doc = "USB2OTG Peripheral Clocks Enable"] 4653 #[doc = "USB2OTG Peripheral Clocks Enable"]
5583 pub const fn usb2otgen(&self) -> super::vals::C1Ahb1enrDma1en { 4654 pub const fn usb2otgen(&self) -> super::vals::Ahb1enrDma1en {
5584 let val = (self.0 >> 27usize) & 0x01; 4655 let val = (self.0 >> 27usize) & 0x01;
5585 super::vals::C1Ahb1enrDma1en(val as u8) 4656 super::vals::Ahb1enrDma1en(val as u8)
5586 } 4657 }
5587 #[doc = "USB2OTG Peripheral Clocks Enable"] 4658 #[doc = "USB2OTG Peripheral Clocks Enable"]
5588 pub fn set_usb2otgen(&mut self, val: super::vals::C1Ahb1enrDma1en) { 4659 pub fn set_usb2otgen(&mut self, val: super::vals::Ahb1enrDma1en) {
5589 self.0 = (self.0 & !(0x01 << 27usize)) | (((val.0 as u32) & 0x01) << 27usize); 4660 self.0 = (self.0 & !(0x01 << 27usize)) | (((val.0 as u32) & 0x01) << 27usize);
5590 } 4661 }
5591 #[doc = "USB_PHY2 Clocks Enable"] 4662 #[doc = "USB_PHY2 Clocks Enable"]
5592 pub const fn usb2ulpien(&self) -> super::vals::C1Ahb1enrDma1en { 4663 pub const fn usb2ulpien(&self) -> super::vals::Ahb1enrDma1en {
5593 let val = (self.0 >> 28usize) & 0x01; 4664 let val = (self.0 >> 28usize) & 0x01;
5594 super::vals::C1Ahb1enrDma1en(val as u8) 4665 super::vals::Ahb1enrDma1en(val as u8)
5595 } 4666 }
5596 #[doc = "USB_PHY2 Clocks Enable"] 4667 #[doc = "USB_PHY2 Clocks Enable"]
5597 pub fn set_usb2ulpien(&mut self, val: super::vals::C1Ahb1enrDma1en) { 4668 pub fn set_usb2ulpien(&mut self, val: super::vals::Ahb1enrDma1en) {
5598 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize); 4669 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
5599 } 4670 }
5600 } 4671 }
5601 impl Default for C1Ahb1enr { 4672 impl Default for Ahb1enr {
5602 fn default() -> C1Ahb1enr { 4673 fn default() -> Ahb1enr {
5603 C1Ahb1enr(0) 4674 Ahb1enr(0)
5604 } 4675 }
5605 } 4676 }
5606 #[doc = "RCC APB1 Clock Register"] 4677 #[doc = "RCC APB3 Clock Register"]
5607 #[repr(transparent)] 4678 #[repr(transparent)]
5608 #[derive(Copy, Clone, Eq, PartialEq)] 4679 #[derive(Copy, Clone, Eq, PartialEq)]
5609 pub struct C1Apb1henr(pub u32); 4680 pub struct C1Apb3enr(pub u32);
5610 impl C1Apb1henr { 4681 impl C1Apb3enr {
5611 #[doc = "Clock Recovery System peripheral clock enable"] 4682 #[doc = "LTDC peripheral clock enable"]
5612 pub const fn crsen(&self) -> super::vals::C1Apb1henrCrsen { 4683 pub const fn ltdcen(&self) -> super::vals::C1Apb3enrLtdcen {
4684 let val = (self.0 >> 3usize) & 0x01;
4685 super::vals::C1Apb3enrLtdcen(val as u8)
4686 }
4687 #[doc = "LTDC peripheral clock enable"]
4688 pub fn set_ltdcen(&mut self, val: super::vals::C1Apb3enrLtdcen) {
4689 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
4690 }
4691 #[doc = "WWDG1 Clock Enable"]
4692 pub const fn wwdg1en(&self) -> super::vals::C1Apb3enrLtdcen {
4693 let val = (self.0 >> 6usize) & 0x01;
4694 super::vals::C1Apb3enrLtdcen(val as u8)
4695 }
4696 #[doc = "WWDG1 Clock Enable"]
4697 pub fn set_wwdg1en(&mut self, val: super::vals::C1Apb3enrLtdcen) {
4698 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
4699 }
4700 }
4701 impl Default for C1Apb3enr {
4702 fn default() -> C1Apb3enr {
4703 C1Apb3enr(0)
4704 }
4705 }
4706 #[doc = "RCC APB1 Peripheral Reset Register"]
4707 #[repr(transparent)]
4708 #[derive(Copy, Clone, Eq, PartialEq)]
4709 pub struct Apb1hrstr(pub u32);
4710 impl Apb1hrstr {
4711 #[doc = "Clock Recovery System reset"]
4712 pub const fn crsrst(&self) -> super::vals::Crsrst {
5613 let val = (self.0 >> 1usize) & 0x01; 4713 let val = (self.0 >> 1usize) & 0x01;
5614 super::vals::C1Apb1henrCrsen(val as u8) 4714 super::vals::Crsrst(val as u8)
5615 } 4715 }
5616 #[doc = "Clock Recovery System peripheral clock enable"] 4716 #[doc = "Clock Recovery System reset"]
5617 pub fn set_crsen(&mut self, val: super::vals::C1Apb1henrCrsen) { 4717 pub fn set_crsrst(&mut self, val: super::vals::Crsrst) {
5618 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 4718 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
5619 } 4719 }
5620 #[doc = "SWPMI Peripheral Clocks Enable"] 4720 #[doc = "SWPMI block reset"]
5621 pub const fn swpen(&self) -> super::vals::C1Apb1henrCrsen { 4721 pub const fn swprst(&self) -> super::vals::Crsrst {
5622 let val = (self.0 >> 2usize) & 0x01; 4722 let val = (self.0 >> 2usize) & 0x01;
5623 super::vals::C1Apb1henrCrsen(val as u8) 4723 super::vals::Crsrst(val as u8)
5624 } 4724 }
5625 #[doc = "SWPMI Peripheral Clocks Enable"] 4725 #[doc = "SWPMI block reset"]
5626 pub fn set_swpen(&mut self, val: super::vals::C1Apb1henrCrsen) { 4726 pub fn set_swprst(&mut self, val: super::vals::Crsrst) {
5627 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize); 4727 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
5628 } 4728 }
5629 #[doc = "OPAMP peripheral clock enable"] 4729 #[doc = "OPAMP block reset"]
5630 pub const fn opampen(&self) -> super::vals::C1Apb1henrCrsen { 4730 pub const fn opamprst(&self) -> super::vals::Crsrst {
5631 let val = (self.0 >> 4usize) & 0x01; 4731 let val = (self.0 >> 4usize) & 0x01;
5632 super::vals::C1Apb1henrCrsen(val as u8) 4732 super::vals::Crsrst(val as u8)
5633 } 4733 }
5634 #[doc = "OPAMP peripheral clock enable"] 4734 #[doc = "OPAMP block reset"]
5635 pub fn set_opampen(&mut self, val: super::vals::C1Apb1henrCrsen) { 4735 pub fn set_opamprst(&mut self, val: super::vals::Crsrst) {
5636 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 4736 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
5637 } 4737 }
5638 #[doc = "MDIOS peripheral clock enable"] 4738 #[doc = "MDIOS block reset"]
5639 pub const fn mdiosen(&self) -> super::vals::C1Apb1henrCrsen { 4739 pub const fn mdiosrst(&self) -> super::vals::Crsrst {
5640 let val = (self.0 >> 5usize) & 0x01; 4740 let val = (self.0 >> 5usize) & 0x01;
5641 super::vals::C1Apb1henrCrsen(val as u8) 4741 super::vals::Crsrst(val as u8)
5642 } 4742 }
5643 #[doc = "MDIOS peripheral clock enable"] 4743 #[doc = "MDIOS block reset"]
5644 pub fn set_mdiosen(&mut self, val: super::vals::C1Apb1henrCrsen) { 4744 pub fn set_mdiosrst(&mut self, val: super::vals::Crsrst) {
5645 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 4745 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
5646 } 4746 }
5647 #[doc = "FDCAN Peripheral Clocks Enable"] 4747 #[doc = "FDCAN block reset"]
5648 pub const fn fdcanen(&self) -> super::vals::C1Apb1henrCrsen { 4748 pub const fn fdcanrst(&self) -> super::vals::Crsrst {
5649 let val = (self.0 >> 8usize) & 0x01; 4749 let val = (self.0 >> 8usize) & 0x01;
5650 super::vals::C1Apb1henrCrsen(val as u8) 4750 super::vals::Crsrst(val as u8)
5651 } 4751 }
5652 #[doc = "FDCAN Peripheral Clocks Enable"] 4752 #[doc = "FDCAN block reset"]
5653 pub fn set_fdcanen(&mut self, val: super::vals::C1Apb1henrCrsen) { 4753 pub fn set_fdcanrst(&mut self, val: super::vals::Crsrst) {
5654 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize); 4754 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
5655 } 4755 }
5656 } 4756 }
5657 impl Default for C1Apb1henr { 4757 impl Default for Apb1hrstr {
5658 fn default() -> C1Apb1henr { 4758 fn default() -> Apb1hrstr {
5659 C1Apb1henr(0) 4759 Apb1hrstr(0)
4760 }
4761 }
4762 #[doc = "RCC CSI configuration register"]
4763 #[repr(transparent)]
4764 #[derive(Copy, Clone, Eq, PartialEq)]
4765 pub struct Csicfgr(pub u32);
4766 impl Csicfgr {
4767 #[doc = "CSI clock calibration"]
4768 pub const fn csical(&self) -> u16 {
4769 let val = (self.0 >> 0usize) & 0x01ff;
4770 val as u16
4771 }
4772 #[doc = "CSI clock calibration"]
4773 pub fn set_csical(&mut self, val: u16) {
4774 self.0 = (self.0 & !(0x01ff << 0usize)) | (((val as u32) & 0x01ff) << 0usize);
4775 }
4776 #[doc = "CSI clock trimming"]
4777 pub const fn csitrim(&self) -> u8 {
4778 let val = (self.0 >> 24usize) & 0x3f;
4779 val as u8
4780 }
4781 #[doc = "CSI clock trimming"]
4782 pub fn set_csitrim(&mut self, val: u8) {
4783 self.0 = (self.0 & !(0x3f << 24usize)) | (((val as u32) & 0x3f) << 24usize);
4784 }
4785 }
4786 impl Default for Csicfgr {
4787 fn default() -> Csicfgr {
4788 Csicfgr(0)
4789 }
4790 }
4791 #[doc = "RCC APB1 Low Sleep Clock Register"]
4792 #[repr(transparent)]
4793 #[derive(Copy, Clone, Eq, PartialEq)]
4794 pub struct C1Apb1llpenr(pub u32);
4795 impl C1Apb1llpenr {
4796 #[doc = "TIM2 peripheral clock enable during CSleep mode"]
4797 pub const fn tim2lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4798 let val = (self.0 >> 0usize) & 0x01;
4799 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4800 }
4801 #[doc = "TIM2 peripheral clock enable during CSleep mode"]
4802 pub fn set_tim2lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4803 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
4804 }
4805 #[doc = "TIM3 peripheral clock enable during CSleep mode"]
4806 pub const fn tim3lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4807 let val = (self.0 >> 1usize) & 0x01;
4808 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4809 }
4810 #[doc = "TIM3 peripheral clock enable during CSleep mode"]
4811 pub fn set_tim3lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4812 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
4813 }
4814 #[doc = "TIM4 peripheral clock enable during CSleep mode"]
4815 pub const fn tim4lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4816 let val = (self.0 >> 2usize) & 0x01;
4817 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4818 }
4819 #[doc = "TIM4 peripheral clock enable during CSleep mode"]
4820 pub fn set_tim4lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4821 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
4822 }
4823 #[doc = "TIM5 peripheral clock enable during CSleep mode"]
4824 pub const fn tim5lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4825 let val = (self.0 >> 3usize) & 0x01;
4826 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4827 }
4828 #[doc = "TIM5 peripheral clock enable during CSleep mode"]
4829 pub fn set_tim5lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4830 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
4831 }
4832 #[doc = "TIM6 peripheral clock enable during CSleep mode"]
4833 pub const fn tim6lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4834 let val = (self.0 >> 4usize) & 0x01;
4835 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4836 }
4837 #[doc = "TIM6 peripheral clock enable during CSleep mode"]
4838 pub fn set_tim6lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4839 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
4840 }
4841 #[doc = "TIM7 peripheral clock enable during CSleep mode"]
4842 pub const fn tim7lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4843 let val = (self.0 >> 5usize) & 0x01;
4844 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4845 }
4846 #[doc = "TIM7 peripheral clock enable during CSleep mode"]
4847 pub fn set_tim7lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4848 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
4849 }
4850 #[doc = "TIM12 peripheral clock enable during CSleep mode"]
4851 pub const fn tim12lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4852 let val = (self.0 >> 6usize) & 0x01;
4853 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4854 }
4855 #[doc = "TIM12 peripheral clock enable during CSleep mode"]
4856 pub fn set_tim12lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4857 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
4858 }
4859 #[doc = "TIM13 peripheral clock enable during CSleep mode"]
4860 pub const fn tim13lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4861 let val = (self.0 >> 7usize) & 0x01;
4862 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4863 }
4864 #[doc = "TIM13 peripheral clock enable during CSleep mode"]
4865 pub fn set_tim13lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4866 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
4867 }
4868 #[doc = "TIM14 peripheral clock enable during CSleep mode"]
4869 pub const fn tim14lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4870 let val = (self.0 >> 8usize) & 0x01;
4871 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4872 }
4873 #[doc = "TIM14 peripheral clock enable during CSleep mode"]
4874 pub fn set_tim14lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4875 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
4876 }
4877 #[doc = "LPTIM1 Peripheral Clocks Enable During CSleep Mode"]
4878 pub const fn lptim1lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4879 let val = (self.0 >> 9usize) & 0x01;
4880 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4881 }
4882 #[doc = "LPTIM1 Peripheral Clocks Enable During CSleep Mode"]
4883 pub fn set_lptim1lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4884 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
4885 }
4886 #[doc = "SPI2 Peripheral Clocks Enable During CSleep Mode"]
4887 pub const fn spi2lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4888 let val = (self.0 >> 14usize) & 0x01;
4889 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4890 }
4891 #[doc = "SPI2 Peripheral Clocks Enable During CSleep Mode"]
4892 pub fn set_spi2lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4893 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
4894 }
4895 #[doc = "SPI3 Peripheral Clocks Enable During CSleep Mode"]
4896 pub const fn spi3lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4897 let val = (self.0 >> 15usize) & 0x01;
4898 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4899 }
4900 #[doc = "SPI3 Peripheral Clocks Enable During CSleep Mode"]
4901 pub fn set_spi3lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4902 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
4903 }
4904 #[doc = "SPDIFRX Peripheral Clocks Enable During CSleep Mode"]
4905 pub const fn spdifrxlpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4906 let val = (self.0 >> 16usize) & 0x01;
4907 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4908 }
4909 #[doc = "SPDIFRX Peripheral Clocks Enable During CSleep Mode"]
4910 pub fn set_spdifrxlpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4911 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
4912 }
4913 #[doc = "USART2 Peripheral Clocks Enable During CSleep Mode"]
4914 pub const fn usart2lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4915 let val = (self.0 >> 17usize) & 0x01;
4916 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4917 }
4918 #[doc = "USART2 Peripheral Clocks Enable During CSleep Mode"]
4919 pub fn set_usart2lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4920 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize);
4921 }
4922 #[doc = "USART3 Peripheral Clocks Enable During CSleep Mode"]
4923 pub const fn usart3lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4924 let val = (self.0 >> 18usize) & 0x01;
4925 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4926 }
4927 #[doc = "USART3 Peripheral Clocks Enable During CSleep Mode"]
4928 pub fn set_usart3lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4929 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
4930 }
4931 #[doc = "UART4 Peripheral Clocks Enable During CSleep Mode"]
4932 pub const fn uart4lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4933 let val = (self.0 >> 19usize) & 0x01;
4934 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4935 }
4936 #[doc = "UART4 Peripheral Clocks Enable During CSleep Mode"]
4937 pub fn set_uart4lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4938 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
4939 }
4940 #[doc = "UART5 Peripheral Clocks Enable During CSleep Mode"]
4941 pub const fn uart5lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4942 let val = (self.0 >> 20usize) & 0x01;
4943 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4944 }
4945 #[doc = "UART5 Peripheral Clocks Enable During CSleep Mode"]
4946 pub fn set_uart5lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4947 self.0 = (self.0 & !(0x01 << 20usize)) | (((val.0 as u32) & 0x01) << 20usize);
4948 }
4949 #[doc = "I2C1 Peripheral Clocks Enable During CSleep Mode"]
4950 pub const fn i2c1lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4951 let val = (self.0 >> 21usize) & 0x01;
4952 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4953 }
4954 #[doc = "I2C1 Peripheral Clocks Enable During CSleep Mode"]
4955 pub fn set_i2c1lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4956 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize);
4957 }
4958 #[doc = "I2C2 Peripheral Clocks Enable During CSleep Mode"]
4959 pub const fn i2c2lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4960 let val = (self.0 >> 22usize) & 0x01;
4961 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4962 }
4963 #[doc = "I2C2 Peripheral Clocks Enable During CSleep Mode"]
4964 pub fn set_i2c2lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4965 self.0 = (self.0 & !(0x01 << 22usize)) | (((val.0 as u32) & 0x01) << 22usize);
4966 }
4967 #[doc = "I2C3 Peripheral Clocks Enable During CSleep Mode"]
4968 pub const fn i2c3lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4969 let val = (self.0 >> 23usize) & 0x01;
4970 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4971 }
4972 #[doc = "I2C3 Peripheral Clocks Enable During CSleep Mode"]
4973 pub fn set_i2c3lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4974 self.0 = (self.0 & !(0x01 << 23usize)) | (((val.0 as u32) & 0x01) << 23usize);
4975 }
4976 #[doc = "HDMI-CEC Peripheral Clocks Enable During CSleep Mode"]
4977 pub const fn ceclpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4978 let val = (self.0 >> 27usize) & 0x01;
4979 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4980 }
4981 #[doc = "HDMI-CEC Peripheral Clocks Enable During CSleep Mode"]
4982 pub fn set_ceclpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4983 self.0 = (self.0 & !(0x01 << 27usize)) | (((val.0 as u32) & 0x01) << 27usize);
4984 }
4985 #[doc = "DAC1/2 peripheral clock enable during CSleep mode"]
4986 pub const fn dac12lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4987 let val = (self.0 >> 29usize) & 0x01;
4988 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4989 }
4990 #[doc = "DAC1/2 peripheral clock enable during CSleep mode"]
4991 pub fn set_dac12lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
4992 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize);
4993 }
4994 #[doc = "UART7 Peripheral Clocks Enable During CSleep Mode"]
4995 pub const fn uart7lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
4996 let val = (self.0 >> 30usize) & 0x01;
4997 super::vals::C1Apb1llpenrTim2lpen(val as u8)
4998 }
4999 #[doc = "UART7 Peripheral Clocks Enable During CSleep Mode"]
5000 pub fn set_uart7lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
5001 self.0 = (self.0 & !(0x01 << 30usize)) | (((val.0 as u32) & 0x01) << 30usize);
5002 }
5003 #[doc = "UART8 Peripheral Clocks Enable During CSleep Mode"]
5004 pub const fn uart8lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
5005 let val = (self.0 >> 31usize) & 0x01;
5006 super::vals::C1Apb1llpenrTim2lpen(val as u8)
5007 }
5008 #[doc = "UART8 Peripheral Clocks Enable During CSleep Mode"]
5009 pub fn set_uart8lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
5010 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize);
5011 }
5012 }
5013 impl Default for C1Apb1llpenr {
5014 fn default() -> C1Apb1llpenr {
5015 C1Apb1llpenr(0)
5016 }
5017 }
5018 #[doc = "RCC APB2 Clock Register"]
5019 #[repr(transparent)]
5020 #[derive(Copy, Clone, Eq, PartialEq)]
5021 pub struct Apb2enr(pub u32);
5022 impl Apb2enr {
5023 #[doc = "TIM1 peripheral clock enable"]
5024 pub const fn tim1en(&self) -> super::vals::Apb2enrTim1en {
5025 let val = (self.0 >> 0usize) & 0x01;
5026 super::vals::Apb2enrTim1en(val as u8)
5027 }
5028 #[doc = "TIM1 peripheral clock enable"]
5029 pub fn set_tim1en(&mut self, val: super::vals::Apb2enrTim1en) {
5030 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
5031 }
5032 #[doc = "TIM8 peripheral clock enable"]
5033 pub const fn tim8en(&self) -> super::vals::Apb2enrTim1en {
5034 let val = (self.0 >> 1usize) & 0x01;
5035 super::vals::Apb2enrTim1en(val as u8)
5036 }
5037 #[doc = "TIM8 peripheral clock enable"]
5038 pub fn set_tim8en(&mut self, val: super::vals::Apb2enrTim1en) {
5039 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
5040 }
5041 #[doc = "USART1 Peripheral Clocks Enable"]
5042 pub const fn usart1en(&self) -> super::vals::Apb2enrTim1en {
5043 let val = (self.0 >> 4usize) & 0x01;
5044 super::vals::Apb2enrTim1en(val as u8)
5045 }
5046 #[doc = "USART1 Peripheral Clocks Enable"]
5047 pub fn set_usart1en(&mut self, val: super::vals::Apb2enrTim1en) {
5048 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
5049 }
5050 #[doc = "USART6 Peripheral Clocks Enable"]
5051 pub const fn usart6en(&self) -> super::vals::Apb2enrTim1en {
5052 let val = (self.0 >> 5usize) & 0x01;
5053 super::vals::Apb2enrTim1en(val as u8)
5054 }
5055 #[doc = "USART6 Peripheral Clocks Enable"]
5056 pub fn set_usart6en(&mut self, val: super::vals::Apb2enrTim1en) {
5057 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
5058 }
5059 #[doc = "SPI1 Peripheral Clocks Enable"]
5060 pub const fn spi1en(&self) -> super::vals::Apb2enrTim1en {
5061 let val = (self.0 >> 12usize) & 0x01;
5062 super::vals::Apb2enrTim1en(val as u8)
5063 }
5064 #[doc = "SPI1 Peripheral Clocks Enable"]
5065 pub fn set_spi1en(&mut self, val: super::vals::Apb2enrTim1en) {
5066 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
5067 }
5068 #[doc = "SPI4 Peripheral Clocks Enable"]
5069 pub const fn spi4en(&self) -> super::vals::Apb2enrTim1en {
5070 let val = (self.0 >> 13usize) & 0x01;
5071 super::vals::Apb2enrTim1en(val as u8)
5072 }
5073 #[doc = "SPI4 Peripheral Clocks Enable"]
5074 pub fn set_spi4en(&mut self, val: super::vals::Apb2enrTim1en) {
5075 self.0 = (self.0 & !(0x01 << 13usize)) | (((val.0 as u32) & 0x01) << 13usize);
5076 }
5077 #[doc = "TIM15 peripheral clock enable"]
5078 pub const fn tim15en(&self) -> super::vals::Apb2enrTim1en {
5079 let val = (self.0 >> 16usize) & 0x01;
5080 super::vals::Apb2enrTim1en(val as u8)
5081 }
5082 #[doc = "TIM15 peripheral clock enable"]
5083 pub fn set_tim15en(&mut self, val: super::vals::Apb2enrTim1en) {
5084 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
5085 }
5086 #[doc = "TIM16 peripheral clock enable"]
5087 pub const fn tim16en(&self) -> super::vals::Apb2enrTim1en {
5088 let val = (self.0 >> 17usize) & 0x01;
5089 super::vals::Apb2enrTim1en(val as u8)
5090 }
5091 #[doc = "TIM16 peripheral clock enable"]
5092 pub fn set_tim16en(&mut self, val: super::vals::Apb2enrTim1en) {
5093 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize);
5094 }
5095 #[doc = "TIM17 peripheral clock enable"]
5096 pub const fn tim17en(&self) -> super::vals::Apb2enrTim1en {
5097 let val = (self.0 >> 18usize) & 0x01;
5098 super::vals::Apb2enrTim1en(val as u8)
5099 }
5100 #[doc = "TIM17 peripheral clock enable"]
5101 pub fn set_tim17en(&mut self, val: super::vals::Apb2enrTim1en) {
5102 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
5103 }
5104 #[doc = "SPI5 Peripheral Clocks Enable"]
5105 pub const fn spi5en(&self) -> super::vals::Apb2enrTim1en {
5106 let val = (self.0 >> 20usize) & 0x01;
5107 super::vals::Apb2enrTim1en(val as u8)
5108 }
5109 #[doc = "SPI5 Peripheral Clocks Enable"]
5110 pub fn set_spi5en(&mut self, val: super::vals::Apb2enrTim1en) {
5111 self.0 = (self.0 & !(0x01 << 20usize)) | (((val.0 as u32) & 0x01) << 20usize);
5112 }
5113 #[doc = "SAI1 Peripheral Clocks Enable"]
5114 pub const fn sai1en(&self) -> super::vals::Apb2enrTim1en {
5115 let val = (self.0 >> 22usize) & 0x01;
5116 super::vals::Apb2enrTim1en(val as u8)
5117 }
5118 #[doc = "SAI1 Peripheral Clocks Enable"]
5119 pub fn set_sai1en(&mut self, val: super::vals::Apb2enrTim1en) {
5120 self.0 = (self.0 & !(0x01 << 22usize)) | (((val.0 as u32) & 0x01) << 22usize);
5121 }
5122 #[doc = "SAI2 Peripheral Clocks Enable"]
5123 pub const fn sai2en(&self) -> super::vals::Apb2enrTim1en {
5124 let val = (self.0 >> 23usize) & 0x01;
5125 super::vals::Apb2enrTim1en(val as u8)
5126 }
5127 #[doc = "SAI2 Peripheral Clocks Enable"]
5128 pub fn set_sai2en(&mut self, val: super::vals::Apb2enrTim1en) {
5129 self.0 = (self.0 & !(0x01 << 23usize)) | (((val.0 as u32) & 0x01) << 23usize);
5130 }
5131 #[doc = "SAI3 Peripheral Clocks Enable"]
5132 pub const fn sai3en(&self) -> super::vals::Apb2enrTim1en {
5133 let val = (self.0 >> 24usize) & 0x01;
5134 super::vals::Apb2enrTim1en(val as u8)
5135 }
5136 #[doc = "SAI3 Peripheral Clocks Enable"]
5137 pub fn set_sai3en(&mut self, val: super::vals::Apb2enrTim1en) {
5138 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
5139 }
5140 #[doc = "DFSDM1 Peripheral Clocks Enable"]
5141 pub const fn dfsdm1en(&self) -> super::vals::Apb2enrTim1en {
5142 let val = (self.0 >> 28usize) & 0x01;
5143 super::vals::Apb2enrTim1en(val as u8)
5144 }
5145 #[doc = "DFSDM1 Peripheral Clocks Enable"]
5146 pub fn set_dfsdm1en(&mut self, val: super::vals::Apb2enrTim1en) {
5147 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
5148 }
5149 #[doc = "HRTIM peripheral clock enable"]
5150 pub const fn hrtimen(&self) -> super::vals::Apb2enrTim1en {
5151 let val = (self.0 >> 29usize) & 0x01;
5152 super::vals::Apb2enrTim1en(val as u8)
5153 }
5154 #[doc = "HRTIM peripheral clock enable"]
5155 pub fn set_hrtimen(&mut self, val: super::vals::Apb2enrTim1en) {
5156 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize);
5157 }
5158 }
5159 impl Default for Apb2enr {
5160 fn default() -> Apb2enr {
5161 Apb2enr(0)
5162 }
5163 }
5164 #[doc = "RCC APB4 Peripheral Reset Register"]
5165 #[repr(transparent)]
5166 #[derive(Copy, Clone, Eq, PartialEq)]
5167 pub struct Apb4rstr(pub u32);
5168 impl Apb4rstr {
5169 #[doc = "SYSCFG block reset"]
5170 pub const fn syscfgrst(&self) -> super::vals::Syscfgrst {
5171 let val = (self.0 >> 1usize) & 0x01;
5172 super::vals::Syscfgrst(val as u8)
5173 }
5174 #[doc = "SYSCFG block reset"]
5175 pub fn set_syscfgrst(&mut self, val: super::vals::Syscfgrst) {
5176 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
5177 }
5178 #[doc = "LPUART1 block reset"]
5179 pub const fn lpuart1rst(&self) -> super::vals::Syscfgrst {
5180 let val = (self.0 >> 3usize) & 0x01;
5181 super::vals::Syscfgrst(val as u8)
5182 }
5183 #[doc = "LPUART1 block reset"]
5184 pub fn set_lpuart1rst(&mut self, val: super::vals::Syscfgrst) {
5185 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
5186 }
5187 #[doc = "SPI6 block reset"]
5188 pub const fn spi6rst(&self) -> super::vals::Syscfgrst {
5189 let val = (self.0 >> 5usize) & 0x01;
5190 super::vals::Syscfgrst(val as u8)
5191 }
5192 #[doc = "SPI6 block reset"]
5193 pub fn set_spi6rst(&mut self, val: super::vals::Syscfgrst) {
5194 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
5195 }
5196 #[doc = "I2C4 block reset"]
5197 pub const fn i2c4rst(&self) -> super::vals::Syscfgrst {
5198 let val = (self.0 >> 7usize) & 0x01;
5199 super::vals::Syscfgrst(val as u8)
5200 }
5201 #[doc = "I2C4 block reset"]
5202 pub fn set_i2c4rst(&mut self, val: super::vals::Syscfgrst) {
5203 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
5204 }
5205 #[doc = "LPTIM2 block reset"]
5206 pub const fn lptim2rst(&self) -> super::vals::Syscfgrst {
5207 let val = (self.0 >> 9usize) & 0x01;
5208 super::vals::Syscfgrst(val as u8)
5209 }
5210 #[doc = "LPTIM2 block reset"]
5211 pub fn set_lptim2rst(&mut self, val: super::vals::Syscfgrst) {
5212 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
5213 }
5214 #[doc = "LPTIM3 block reset"]
5215 pub const fn lptim3rst(&self) -> super::vals::Syscfgrst {
5216 let val = (self.0 >> 10usize) & 0x01;
5217 super::vals::Syscfgrst(val as u8)
5218 }
5219 #[doc = "LPTIM3 block reset"]
5220 pub fn set_lptim3rst(&mut self, val: super::vals::Syscfgrst) {
5221 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
5222 }
5223 #[doc = "LPTIM4 block reset"]
5224 pub const fn lptim4rst(&self) -> super::vals::Syscfgrst {
5225 let val = (self.0 >> 11usize) & 0x01;
5226 super::vals::Syscfgrst(val as u8)
5227 }
5228 #[doc = "LPTIM4 block reset"]
5229 pub fn set_lptim4rst(&mut self, val: super::vals::Syscfgrst) {
5230 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
5231 }
5232 #[doc = "LPTIM5 block reset"]
5233 pub const fn lptim5rst(&self) -> super::vals::Syscfgrst {
5234 let val = (self.0 >> 12usize) & 0x01;
5235 super::vals::Syscfgrst(val as u8)
5236 }
5237 #[doc = "LPTIM5 block reset"]
5238 pub fn set_lptim5rst(&mut self, val: super::vals::Syscfgrst) {
5239 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
5240 }
5241 #[doc = "COMP12 Blocks Reset"]
5242 pub const fn comp12rst(&self) -> super::vals::Syscfgrst {
5243 let val = (self.0 >> 14usize) & 0x01;
5244 super::vals::Syscfgrst(val as u8)
5245 }
5246 #[doc = "COMP12 Blocks Reset"]
5247 pub fn set_comp12rst(&mut self, val: super::vals::Syscfgrst) {
5248 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
5249 }
5250 #[doc = "VREF block reset"]
5251 pub const fn vrefrst(&self) -> super::vals::Syscfgrst {
5252 let val = (self.0 >> 15usize) & 0x01;
5253 super::vals::Syscfgrst(val as u8)
5254 }
5255 #[doc = "VREF block reset"]
5256 pub fn set_vrefrst(&mut self, val: super::vals::Syscfgrst) {
5257 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
5258 }
5259 #[doc = "SAI4 block reset"]
5260 pub const fn sai4rst(&self) -> super::vals::Syscfgrst {
5261 let val = (self.0 >> 21usize) & 0x01;
5262 super::vals::Syscfgrst(val as u8)
5263 }
5264 #[doc = "SAI4 block reset"]
5265 pub fn set_sai4rst(&mut self, val: super::vals::Syscfgrst) {
5266 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize);
5267 }
5268 }
5269 impl Default for Apb4rstr {
5270 fn default() -> Apb4rstr {
5271 Apb4rstr(0)
5660 } 5272 }
5661 } 5273 }
5662 #[doc = "RCC AHB1 Sleep Clock Register"] 5274 #[doc = "RCC AHB1 Sleep Clock Register"]
5663 #[repr(transparent)] 5275 #[repr(transparent)]
5664 #[derive(Copy, Clone, Eq, PartialEq)] 5276 #[derive(Copy, Clone, Eq, PartialEq)]
5665 pub struct C1Ahb1lpenr(pub u32); 5277 pub struct Ahb1lpenr(pub u32);
5666 impl C1Ahb1lpenr { 5278 impl Ahb1lpenr {
5667 #[doc = "DMA1 Clock Enable During CSleep Mode"] 5279 #[doc = "DMA1 Clock Enable During CSleep Mode"]
5668 pub const fn dma1lpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen { 5280 pub const fn dma1lpen(&self) -> super::vals::Ahb1lpenrDma1lpen {
5669 let val = (self.0 >> 0usize) & 0x01; 5281 let val = (self.0 >> 0usize) & 0x01;
5670 super::vals::C1Ahb1lpenrDma1lpen(val as u8) 5282 super::vals::Ahb1lpenrDma1lpen(val as u8)
5671 } 5283 }
5672 #[doc = "DMA1 Clock Enable During CSleep Mode"] 5284 #[doc = "DMA1 Clock Enable During CSleep Mode"]
5673 pub fn set_dma1lpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) { 5285 pub fn set_dma1lpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) {
5674 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 5286 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
5675 } 5287 }
5676 #[doc = "DMA2 Clock Enable During CSleep Mode"] 5288 #[doc = "DMA2 Clock Enable During CSleep Mode"]
5677 pub const fn dma2lpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen { 5289 pub const fn dma2lpen(&self) -> super::vals::Ahb1lpenrDma1lpen {
5678 let val = (self.0 >> 1usize) & 0x01; 5290 let val = (self.0 >> 1usize) & 0x01;
5679 super::vals::C1Ahb1lpenrDma1lpen(val as u8) 5291 super::vals::Ahb1lpenrDma1lpen(val as u8)
5680 } 5292 }
5681 #[doc = "DMA2 Clock Enable During CSleep Mode"] 5293 #[doc = "DMA2 Clock Enable During CSleep Mode"]
5682 pub fn set_dma2lpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) { 5294 pub fn set_dma2lpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) {
5683 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 5295 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
5684 } 5296 }
5685 #[doc = "ADC1/2 Peripheral Clocks Enable During CSleep Mode"] 5297 #[doc = "ADC1/2 Peripheral Clocks Enable During CSleep Mode"]
5686 pub const fn adc12lpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen { 5298 pub const fn adc12lpen(&self) -> super::vals::Ahb1lpenrDma1lpen {
5687 let val = (self.0 >> 5usize) & 0x01; 5299 let val = (self.0 >> 5usize) & 0x01;
5688 super::vals::C1Ahb1lpenrDma1lpen(val as u8) 5300 super::vals::Ahb1lpenrDma1lpen(val as u8)
5689 } 5301 }
5690 #[doc = "ADC1/2 Peripheral Clocks Enable During CSleep Mode"] 5302 #[doc = "ADC1/2 Peripheral Clocks Enable During CSleep Mode"]
5691 pub fn set_adc12lpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) { 5303 pub fn set_adc12lpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) {
5692 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 5304 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
5693 } 5305 }
5694 #[doc = "Ethernet MAC bus interface Clock Enable During CSleep Mode"] 5306 #[doc = "Ethernet MAC bus interface Clock Enable During CSleep Mode"]
5695 pub const fn eth1maclpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen { 5307 pub const fn eth1maclpen(&self) -> super::vals::Ahb1lpenrDma1lpen {
5696 let val = (self.0 >> 15usize) & 0x01; 5308 let val = (self.0 >> 15usize) & 0x01;
5697 super::vals::C1Ahb1lpenrDma1lpen(val as u8) 5309 super::vals::Ahb1lpenrDma1lpen(val as u8)
5698 } 5310 }
5699 #[doc = "Ethernet MAC bus interface Clock Enable During CSleep Mode"] 5311 #[doc = "Ethernet MAC bus interface Clock Enable During CSleep Mode"]
5700 pub fn set_eth1maclpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) { 5312 pub fn set_eth1maclpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) {
5701 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize); 5313 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
5702 } 5314 }
5703 #[doc = "Ethernet Transmission Clock Enable During CSleep Mode"] 5315 #[doc = "Ethernet Transmission Clock Enable During CSleep Mode"]
5704 pub const fn eth1txlpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen { 5316 pub const fn eth1txlpen(&self) -> super::vals::Ahb1lpenrDma1lpen {
5705 let val = (self.0 >> 16usize) & 0x01; 5317 let val = (self.0 >> 16usize) & 0x01;
5706 super::vals::C1Ahb1lpenrDma1lpen(val as u8) 5318 super::vals::Ahb1lpenrDma1lpen(val as u8)
5707 } 5319 }
5708 #[doc = "Ethernet Transmission Clock Enable During CSleep Mode"] 5320 #[doc = "Ethernet Transmission Clock Enable During CSleep Mode"]
5709 pub fn set_eth1txlpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) { 5321 pub fn set_eth1txlpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) {
5710 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize); 5322 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
5711 } 5323 }
5712 #[doc = "Ethernet Reception Clock Enable During CSleep Mode"] 5324 #[doc = "Ethernet Reception Clock Enable During CSleep Mode"]
5713 pub const fn eth1rxlpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen { 5325 pub const fn eth1rxlpen(&self) -> super::vals::Ahb1lpenrDma1lpen {
5714 let val = (self.0 >> 17usize) & 0x01; 5326 let val = (self.0 >> 17usize) & 0x01;
5715 super::vals::C1Ahb1lpenrDma1lpen(val as u8) 5327 super::vals::Ahb1lpenrDma1lpen(val as u8)
5716 } 5328 }
5717 #[doc = "Ethernet Reception Clock Enable During CSleep Mode"] 5329 #[doc = "Ethernet Reception Clock Enable During CSleep Mode"]
5718 pub fn set_eth1rxlpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) { 5330 pub fn set_eth1rxlpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) {
5719 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize); 5331 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize);
5720 } 5332 }
5721 #[doc = "USB1OTG peripheral clock enable during CSleep mode"] 5333 #[doc = "USB1OTG peripheral clock enable during CSleep mode"]
5722 pub const fn usb1otglpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen { 5334 pub const fn usb1otglpen(&self) -> super::vals::Ahb1lpenrDma1lpen {
5723 let val = (self.0 >> 25usize) & 0x01; 5335 let val = (self.0 >> 25usize) & 0x01;
5724 super::vals::C1Ahb1lpenrDma1lpen(val as u8) 5336 super::vals::Ahb1lpenrDma1lpen(val as u8)
5725 } 5337 }
5726 #[doc = "USB1OTG peripheral clock enable during CSleep mode"] 5338 #[doc = "USB1OTG peripheral clock enable during CSleep mode"]
5727 pub fn set_usb1otglpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) { 5339 pub fn set_usb1otglpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) {
5728 self.0 = (self.0 & !(0x01 << 25usize)) | (((val.0 as u32) & 0x01) << 25usize); 5340 self.0 = (self.0 & !(0x01 << 25usize)) | (((val.0 as u32) & 0x01) << 25usize);
5729 } 5341 }
5730 #[doc = "USB_PHY1 clock enable during CSleep mode"] 5342 #[doc = "USB_PHY1 clock enable during CSleep mode"]
5731 pub const fn usb1ulpilpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen { 5343 pub const fn usb1otghsulpilpen(&self) -> super::vals::Ahb1lpenrDma1lpen {
5732 let val = (self.0 >> 26usize) & 0x01; 5344 let val = (self.0 >> 26usize) & 0x01;
5733 super::vals::C1Ahb1lpenrDma1lpen(val as u8) 5345 super::vals::Ahb1lpenrDma1lpen(val as u8)
5734 } 5346 }
5735 #[doc = "USB_PHY1 clock enable during CSleep mode"] 5347 #[doc = "USB_PHY1 clock enable during CSleep mode"]
5736 pub fn set_usb1ulpilpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) { 5348 pub fn set_usb1otghsulpilpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) {
5737 self.0 = (self.0 & !(0x01 << 26usize)) | (((val.0 as u32) & 0x01) << 26usize); 5349 self.0 = (self.0 & !(0x01 << 26usize)) | (((val.0 as u32) & 0x01) << 26usize);
5738 } 5350 }
5739 #[doc = "USB2OTG peripheral clock enable during CSleep mode"] 5351 #[doc = "USB2OTG peripheral clock enable during CSleep mode"]
5740 pub const fn usb2otglpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen { 5352 pub const fn usb2otglpen(&self) -> super::vals::Ahb1lpenrDma1lpen {
5741 let val = (self.0 >> 27usize) & 0x01; 5353 let val = (self.0 >> 27usize) & 0x01;
5742 super::vals::C1Ahb1lpenrDma1lpen(val as u8) 5354 super::vals::Ahb1lpenrDma1lpen(val as u8)
5743 } 5355 }
5744 #[doc = "USB2OTG peripheral clock enable during CSleep mode"] 5356 #[doc = "USB2OTG peripheral clock enable during CSleep mode"]
5745 pub fn set_usb2otglpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) { 5357 pub fn set_usb2otglpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) {
5746 self.0 = (self.0 & !(0x01 << 27usize)) | (((val.0 as u32) & 0x01) << 27usize); 5358 self.0 = (self.0 & !(0x01 << 27usize)) | (((val.0 as u32) & 0x01) << 27usize);
5747 } 5359 }
5748 #[doc = "USB_PHY2 clocks enable during CSleep mode"] 5360 #[doc = "USB_PHY2 clocks enable during CSleep mode"]
5749 pub const fn usb2ulpilpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen { 5361 pub const fn usb2otghsulpilpen(&self) -> super::vals::Ahb1lpenrDma1lpen {
5750 let val = (self.0 >> 28usize) & 0x01; 5362 let val = (self.0 >> 28usize) & 0x01;
5751 super::vals::C1Ahb1lpenrDma1lpen(val as u8) 5363 super::vals::Ahb1lpenrDma1lpen(val as u8)
5752 } 5364 }
5753 #[doc = "USB_PHY2 clocks enable during CSleep mode"] 5365 #[doc = "USB_PHY2 clocks enable during CSleep mode"]
5754 pub fn set_usb2ulpilpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) { 5366 pub fn set_usb2otghsulpilpen(&mut self, val: super::vals::Ahb1lpenrDma1lpen) {
5755 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize); 5367 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
5756 } 5368 }
5757 } 5369 }
5758 impl Default for C1Ahb1lpenr { 5370 impl Default for Ahb1lpenr {
5759 fn default() -> C1Ahb1lpenr { 5371 fn default() -> Ahb1lpenr {
5760 C1Ahb1lpenr(0) 5372 Ahb1lpenr(0)
5761 } 5373 }
5762 } 5374 }
5763 #[doc = "RCC AHB4 Clock Register"] 5375 #[doc = "RCC AHB4 Clock Register"]
@@ -5915,217 +5527,71 @@ pub mod rcc_h7 {
5915 C1Ahb4enr(0) 5527 C1Ahb4enr(0)
5916 } 5528 }
5917 } 5529 }
5918 #[doc = "RCC Backup Domain Control Register"] 5530 #[doc = "RCC PLL2 Fractional Divider Register"]
5919 #[repr(transparent)]
5920 #[derive(Copy, Clone, Eq, PartialEq)]
5921 pub struct Bdcr(pub u32);
5922 impl Bdcr {
5923 #[doc = "LSE oscillator enabled"]
5924 pub const fn lseon(&self) -> super::vals::Lseon {
5925 let val = (self.0 >> 0usize) & 0x01;
5926 super::vals::Lseon(val as u8)
5927 }
5928 #[doc = "LSE oscillator enabled"]
5929 pub fn set_lseon(&mut self, val: super::vals::Lseon) {
5930 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
5931 }
5932 #[doc = "LSE oscillator ready"]
5933 pub const fn lserdy(&self) -> bool {
5934 let val = (self.0 >> 1usize) & 0x01;
5935 val != 0
5936 }
5937 #[doc = "LSE oscillator ready"]
5938 pub fn set_lserdy(&mut self, val: bool) {
5939 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
5940 }
5941 #[doc = "LSE oscillator bypass"]
5942 pub const fn lsebyp(&self) -> super::vals::Lsebyp {
5943 let val = (self.0 >> 2usize) & 0x01;
5944 super::vals::Lsebyp(val as u8)
5945 }
5946 #[doc = "LSE oscillator bypass"]
5947 pub fn set_lsebyp(&mut self, val: super::vals::Lsebyp) {
5948 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
5949 }
5950 #[doc = "LSE oscillator driving capability"]
5951 pub const fn lsedrv(&self) -> super::vals::Lsedrv {
5952 let val = (self.0 >> 3usize) & 0x03;
5953 super::vals::Lsedrv(val as u8)
5954 }
5955 #[doc = "LSE oscillator driving capability"]
5956 pub fn set_lsedrv(&mut self, val: super::vals::Lsedrv) {
5957 self.0 = (self.0 & !(0x03 << 3usize)) | (((val.0 as u32) & 0x03) << 3usize);
5958 }
5959 #[doc = "LSE clock security system enable"]
5960 pub const fn lsecsson(&self) -> super::vals::Lsecsson {
5961 let val = (self.0 >> 5usize) & 0x01;
5962 super::vals::Lsecsson(val as u8)
5963 }
5964 #[doc = "LSE clock security system enable"]
5965 pub fn set_lsecsson(&mut self, val: super::vals::Lsecsson) {
5966 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
5967 }
5968 #[doc = "LSE clock security system failure detection"]
5969 pub const fn lsecssd(&self) -> bool {
5970 let val = (self.0 >> 6usize) & 0x01;
5971 val != 0
5972 }
5973 #[doc = "LSE clock security system failure detection"]
5974 pub fn set_lsecssd(&mut self, val: bool) {
5975 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
5976 }
5977 #[doc = "RTC clock source selection"]
5978 pub const fn rtcsel(&self) -> super::vals::Rtcsel {
5979 let val = (self.0 >> 8usize) & 0x03;
5980 super::vals::Rtcsel(val as u8)
5981 }
5982 #[doc = "RTC clock source selection"]
5983 pub fn set_rtcsel(&mut self, val: super::vals::Rtcsel) {
5984 self.0 = (self.0 & !(0x03 << 8usize)) | (((val.0 as u32) & 0x03) << 8usize);
5985 }
5986 #[doc = "RTC clock enable"]
5987 pub const fn rtcen(&self) -> super::vals::Rtcen {
5988 let val = (self.0 >> 15usize) & 0x01;
5989 super::vals::Rtcen(val as u8)
5990 }
5991 #[doc = "RTC clock enable"]
5992 pub fn set_rtcen(&mut self, val: super::vals::Rtcen) {
5993 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
5994 }
5995 #[doc = "VSwitch domain software reset"]
5996 pub const fn bdrst(&self) -> super::vals::Bdrst {
5997 let val = (self.0 >> 16usize) & 0x01;
5998 super::vals::Bdrst(val as u8)
5999 }
6000 #[doc = "VSwitch domain software reset"]
6001 pub fn set_bdrst(&mut self, val: super::vals::Bdrst) {
6002 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
6003 }
6004 }
6005 impl Default for Bdcr {
6006 fn default() -> Bdcr {
6007 Bdcr(0)
6008 }
6009 }
6010 #[doc = "RCC AHB1 Peripheral Reset Register"]
6011 #[repr(transparent)] 5531 #[repr(transparent)]
6012 #[derive(Copy, Clone, Eq, PartialEq)] 5532 #[derive(Copy, Clone, Eq, PartialEq)]
6013 pub struct Ahb1rstr(pub u32); 5533 pub struct Pll2fracr(pub u32);
6014 impl Ahb1rstr { 5534 impl Pll2fracr {
6015 #[doc = "DMA1 block reset"] 5535 #[doc = "Fractional part of the multiplication factor for PLL VCO"]
6016 pub const fn dma1rst(&self) -> super::vals::Dma1rst { 5536 pub const fn fracn2(&self) -> u16 {
6017 let val = (self.0 >> 0usize) & 0x01; 5537 let val = (self.0 >> 3usize) & 0x1fff;
6018 super::vals::Dma1rst(val as u8) 5538 val as u16
6019 }
6020 #[doc = "DMA1 block reset"]
6021 pub fn set_dma1rst(&mut self, val: super::vals::Dma1rst) {
6022 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
6023 }
6024 #[doc = "DMA2 block reset"]
6025 pub const fn dma2rst(&self) -> super::vals::Dma1rst {
6026 let val = (self.0 >> 1usize) & 0x01;
6027 super::vals::Dma1rst(val as u8)
6028 }
6029 #[doc = "DMA2 block reset"]
6030 pub fn set_dma2rst(&mut self, val: super::vals::Dma1rst) {
6031 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
6032 }
6033 #[doc = "ADC1&2 block reset"]
6034 pub const fn adc12rst(&self) -> super::vals::Dma1rst {
6035 let val = (self.0 >> 5usize) & 0x01;
6036 super::vals::Dma1rst(val as u8)
6037 }
6038 #[doc = "ADC1&2 block reset"]
6039 pub fn set_adc12rst(&mut self, val: super::vals::Dma1rst) {
6040 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
6041 }
6042 #[doc = "ETH1MAC block reset"]
6043 pub const fn eth1macrst(&self) -> super::vals::Dma1rst {
6044 let val = (self.0 >> 15usize) & 0x01;
6045 super::vals::Dma1rst(val as u8)
6046 }
6047 #[doc = "ETH1MAC block reset"]
6048 pub fn set_eth1macrst(&mut self, val: super::vals::Dma1rst) {
6049 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
6050 }
6051 #[doc = "USB1OTG block reset"]
6052 pub const fn usb1otgrst(&self) -> super::vals::Dma1rst {
6053 let val = (self.0 >> 25usize) & 0x01;
6054 super::vals::Dma1rst(val as u8)
6055 }
6056 #[doc = "USB1OTG block reset"]
6057 pub fn set_usb1otgrst(&mut self, val: super::vals::Dma1rst) {
6058 self.0 = (self.0 & !(0x01 << 25usize)) | (((val.0 as u32) & 0x01) << 25usize);
6059 }
6060 #[doc = "USB2OTG block reset"]
6061 pub const fn usb2otgrst(&self) -> super::vals::Dma1rst {
6062 let val = (self.0 >> 27usize) & 0x01;
6063 super::vals::Dma1rst(val as u8)
6064 } 5539 }
6065 #[doc = "USB2OTG block reset"] 5540 #[doc = "Fractional part of the multiplication factor for PLL VCO"]
6066 pub fn set_usb2otgrst(&mut self, val: super::vals::Dma1rst) { 5541 pub fn set_fracn2(&mut self, val: u16) {
6067 self.0 = (self.0 & !(0x01 << 27usize)) | (((val.0 as u32) & 0x01) << 27usize); 5542 self.0 = (self.0 & !(0x1fff << 3usize)) | (((val as u32) & 0x1fff) << 3usize);
6068 } 5543 }
6069 } 5544 }
6070 impl Default for Ahb1rstr { 5545 impl Default for Pll2fracr {
6071 fn default() -> Ahb1rstr { 5546 fn default() -> Pll2fracr {
6072 Ahb1rstr(0) 5547 Pll2fracr(0)
6073 } 5548 }
6074 } 5549 }
6075 #[doc = "RCC AHB2 Peripheral Reset Register"] 5550 #[doc = "RCC Domain 1 Kernel Clock Configuration Register"]
6076 #[repr(transparent)] 5551 #[repr(transparent)]
6077 #[derive(Copy, Clone, Eq, PartialEq)] 5552 #[derive(Copy, Clone, Eq, PartialEq)]
6078 pub struct Ahb2rstr(pub u32); 5553 pub struct D1ccipr(pub u32);
6079 impl Ahb2rstr { 5554 impl D1ccipr {
6080 #[doc = "CAMITF block reset"] 5555 #[doc = "FMC kernel clock source selection"]
6081 pub const fn camitfrst(&self) -> super::vals::Camitfrst { 5556 pub const fn fmcsel(&self) -> super::vals::Fmcsel {
6082 let val = (self.0 >> 0usize) & 0x01; 5557 let val = (self.0 >> 0usize) & 0x03;
6083 super::vals::Camitfrst(val as u8) 5558 super::vals::Fmcsel(val as u8)
6084 }
6085 #[doc = "CAMITF block reset"]
6086 pub fn set_camitfrst(&mut self, val: super::vals::Camitfrst) {
6087 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
6088 }
6089 #[doc = "Cryptography block reset"]
6090 pub const fn cryptrst(&self) -> super::vals::Camitfrst {
6091 let val = (self.0 >> 4usize) & 0x01;
6092 super::vals::Camitfrst(val as u8)
6093 } 5559 }
6094 #[doc = "Cryptography block reset"] 5560 #[doc = "FMC kernel clock source selection"]
6095 pub fn set_cryptrst(&mut self, val: super::vals::Camitfrst) { 5561 pub fn set_fmcsel(&mut self, val: super::vals::Fmcsel) {
6096 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 5562 self.0 = (self.0 & !(0x03 << 0usize)) | (((val.0 as u32) & 0x03) << 0usize);
6097 } 5563 }
6098 #[doc = "Hash block reset"] 5564 #[doc = "QUADSPI kernel clock source selection"]
6099 pub const fn hashrst(&self) -> super::vals::Camitfrst { 5565 pub const fn qspisel(&self) -> super::vals::Fmcsel {
6100 let val = (self.0 >> 5usize) & 0x01; 5566 let val = (self.0 >> 4usize) & 0x03;
6101 super::vals::Camitfrst(val as u8) 5567 super::vals::Fmcsel(val as u8)
6102 } 5568 }
6103 #[doc = "Hash block reset"] 5569 #[doc = "QUADSPI kernel clock source selection"]
6104 pub fn set_hashrst(&mut self, val: super::vals::Camitfrst) { 5570 pub fn set_qspisel(&mut self, val: super::vals::Fmcsel) {
6105 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 5571 self.0 = (self.0 & !(0x03 << 4usize)) | (((val.0 as u32) & 0x03) << 4usize);
6106 } 5572 }
6107 #[doc = "Random Number Generator block reset"] 5573 #[doc = "SDMMC kernel clock source selection"]
6108 pub const fn rngrst(&self) -> super::vals::Camitfrst { 5574 pub const fn sdmmcsel(&self) -> super::vals::Sdmmcsel {
6109 let val = (self.0 >> 6usize) & 0x01; 5575 let val = (self.0 >> 16usize) & 0x01;
6110 super::vals::Camitfrst(val as u8) 5576 super::vals::Sdmmcsel(val as u8)
6111 } 5577 }
6112 #[doc = "Random Number Generator block reset"] 5578 #[doc = "SDMMC kernel clock source selection"]
6113 pub fn set_rngrst(&mut self, val: super::vals::Camitfrst) { 5579 pub fn set_sdmmcsel(&mut self, val: super::vals::Sdmmcsel) {
6114 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize); 5580 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
6115 } 5581 }
6116 #[doc = "SDMMC2 and SDMMC2 Delay block reset"] 5582 #[doc = "per_ck clock source selection"]
6117 pub const fn sdmmc2rst(&self) -> super::vals::Camitfrst { 5583 pub const fn ckpersel(&self) -> super::vals::Ckpersel {
6118 let val = (self.0 >> 9usize) & 0x01; 5584 let val = (self.0 >> 28usize) & 0x03;
6119 super::vals::Camitfrst(val as u8) 5585 super::vals::Ckpersel(val as u8)
6120 } 5586 }
6121 #[doc = "SDMMC2 and SDMMC2 Delay block reset"] 5587 #[doc = "per_ck clock source selection"]
6122 pub fn set_sdmmc2rst(&mut self, val: super::vals::Camitfrst) { 5588 pub fn set_ckpersel(&mut self, val: super::vals::Ckpersel) {
6123 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize); 5589 self.0 = (self.0 & !(0x03 << 28usize)) | (((val.0 as u32) & 0x03) << 28usize);
6124 } 5590 }
6125 } 5591 }
6126 impl Default for Ahb2rstr { 5592 impl Default for D1ccipr {
6127 fn default() -> Ahb2rstr { 5593 fn default() -> D1ccipr {
6128 Ahb2rstr(0) 5594 D1ccipr(0)
6129 } 5595 }
6130 } 5596 }
6131 #[doc = "RCC APB1 Low Sleep Clock Register"] 5597 #[doc = "RCC APB1 Low Sleep Clock Register"]
@@ -6355,1403 +5821,1181 @@ pub mod rcc_h7 {
6355 Apb1llpenr(0) 5821 Apb1llpenr(0)
6356 } 5822 }
6357 } 5823 }
6358 #[doc = "RCC Clock Source Interrupt Clear Register"] 5824 #[doc = "RCC PLL3 Dividers Configuration Register"]
6359 #[repr(transparent)] 5825 #[repr(transparent)]
6360 #[derive(Copy, Clone, Eq, PartialEq)] 5826 #[derive(Copy, Clone, Eq, PartialEq)]
6361 pub struct Cicr(pub u32); 5827 pub struct Pll3divr(pub u32);
6362 impl Cicr { 5828 impl Pll3divr {
6363 #[doc = "LSI ready Interrupt Clear"] 5829 #[doc = "Multiplication factor for PLL1 VCO"]
6364 pub const fn lsirdyc(&self) -> super::vals::Lsirdyc { 5830 pub const fn divn3(&self) -> u16 {
6365 let val = (self.0 >> 0usize) & 0x01; 5831 let val = (self.0 >> 0usize) & 0x01ff;
6366 super::vals::Lsirdyc(val as u8) 5832 val as u16
6367 }
6368 #[doc = "LSI ready Interrupt Clear"]
6369 pub fn set_lsirdyc(&mut self, val: super::vals::Lsirdyc) {
6370 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
6371 }
6372 #[doc = "LSE ready Interrupt Clear"]
6373 pub const fn lserdyc(&self) -> super::vals::Lsirdyc {
6374 let val = (self.0 >> 1usize) & 0x01;
6375 super::vals::Lsirdyc(val as u8)
6376 }
6377 #[doc = "LSE ready Interrupt Clear"]
6378 pub fn set_lserdyc(&mut self, val: super::vals::Lsirdyc) {
6379 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
6380 }
6381 #[doc = "HSI ready Interrupt Clear"]
6382 pub const fn hsirdyc(&self) -> super::vals::Lsirdyc {
6383 let val = (self.0 >> 2usize) & 0x01;
6384 super::vals::Lsirdyc(val as u8)
6385 }
6386 #[doc = "HSI ready Interrupt Clear"]
6387 pub fn set_hsirdyc(&mut self, val: super::vals::Lsirdyc) {
6388 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
6389 }
6390 #[doc = "HSE ready Interrupt Clear"]
6391 pub const fn hserdyc(&self) -> super::vals::Lsirdyc {
6392 let val = (self.0 >> 3usize) & 0x01;
6393 super::vals::Lsirdyc(val as u8)
6394 }
6395 #[doc = "HSE ready Interrupt Clear"]
6396 pub fn set_hserdyc(&mut self, val: super::vals::Lsirdyc) {
6397 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
6398 }
6399 #[doc = "CSI ready Interrupt Clear"]
6400 pub const fn hse_ready_interrupt_clear(&self) -> bool {
6401 let val = (self.0 >> 4usize) & 0x01;
6402 val != 0
6403 }
6404 #[doc = "CSI ready Interrupt Clear"]
6405 pub fn set_hse_ready_interrupt_clear(&mut self, val: bool) {
6406 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
6407 }
6408 #[doc = "RC48 ready Interrupt Clear"]
6409 pub const fn hsi48rdyc(&self) -> super::vals::Lsirdyc {
6410 let val = (self.0 >> 5usize) & 0x01;
6411 super::vals::Lsirdyc(val as u8)
6412 } 5833 }
6413 #[doc = "RC48 ready Interrupt Clear"] 5834 #[doc = "Multiplication factor for PLL1 VCO"]
6414 pub fn set_hsi48rdyc(&mut self, val: super::vals::Lsirdyc) { 5835 pub fn set_divn3(&mut self, val: u16) {
6415 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 5836 self.0 = (self.0 & !(0x01ff << 0usize)) | (((val as u32) & 0x01ff) << 0usize);
6416 } 5837 }
6417 #[doc = "PLL1 ready Interrupt Clear"] 5838 #[doc = "PLL DIVP division factor"]
6418 pub fn pllrdyc(&self, n: usize) -> super::vals::Lsirdyc { 5839 pub const fn divp3(&self) -> u8 {
6419 assert!(n < 3usize); 5840 let val = (self.0 >> 9usize) & 0x7f;
6420 let offs = 6usize + n * 1usize; 5841 val as u8
6421 let val = (self.0 >> offs) & 0x01;
6422 super::vals::Lsirdyc(val as u8)
6423 } 5842 }
6424 #[doc = "PLL1 ready Interrupt Clear"] 5843 #[doc = "PLL DIVP division factor"]
6425 pub fn set_pllrdyc(&mut self, n: usize, val: super::vals::Lsirdyc) { 5844 pub fn set_divp3(&mut self, val: u8) {
6426 assert!(n < 3usize); 5845 self.0 = (self.0 & !(0x7f << 9usize)) | (((val as u32) & 0x7f) << 9usize);
6427 let offs = 6usize + n * 1usize;
6428 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
6429 } 5846 }
6430 #[doc = "LSE clock security system Interrupt Clear"] 5847 #[doc = "PLL DIVQ division factor"]
6431 pub const fn lsecssc(&self) -> super::vals::Lsirdyc { 5848 pub const fn divq3(&self) -> u8 {
6432 let val = (self.0 >> 9usize) & 0x01; 5849 let val = (self.0 >> 16usize) & 0x7f;
6433 super::vals::Lsirdyc(val as u8) 5850 val as u8
6434 } 5851 }
6435 #[doc = "LSE clock security system Interrupt Clear"] 5852 #[doc = "PLL DIVQ division factor"]
6436 pub fn set_lsecssc(&mut self, val: super::vals::Lsirdyc) { 5853 pub fn set_divq3(&mut self, val: u8) {
6437 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize); 5854 self.0 = (self.0 & !(0x7f << 16usize)) | (((val as u32) & 0x7f) << 16usize);
6438 } 5855 }
6439 #[doc = "HSE clock security system Interrupt Clear"] 5856 #[doc = "PLL DIVR division factor"]
6440 pub const fn hsecssc(&self) -> super::vals::Lsirdyc { 5857 pub const fn divr3(&self) -> u8 {
6441 let val = (self.0 >> 10usize) & 0x01; 5858 let val = (self.0 >> 24usize) & 0x7f;
6442 super::vals::Lsirdyc(val as u8) 5859 val as u8
6443 } 5860 }
6444 #[doc = "HSE clock security system Interrupt Clear"] 5861 #[doc = "PLL DIVR division factor"]
6445 pub fn set_hsecssc(&mut self, val: super::vals::Lsirdyc) { 5862 pub fn set_divr3(&mut self, val: u8) {
6446 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize); 5863 self.0 = (self.0 & !(0x7f << 24usize)) | (((val as u32) & 0x7f) << 24usize);
6447 } 5864 }
6448 } 5865 }
6449 impl Default for Cicr { 5866 impl Default for Pll3divr {
6450 fn default() -> Cicr { 5867 fn default() -> Pll3divr {
6451 Cicr(0) 5868 Pll3divr(0)
6452 } 5869 }
6453 } 5870 }
6454 #[doc = "RCC APB1 Clock Register"] 5871 #[doc = "RCC D3 Autonomous mode Register"]
6455 #[repr(transparent)] 5872 #[repr(transparent)]
6456 #[derive(Copy, Clone, Eq, PartialEq)] 5873 #[derive(Copy, Clone, Eq, PartialEq)]
6457 pub struct C1Apb1lenr(pub u32); 5874 pub struct D3amr(pub u32);
6458 impl C1Apb1lenr { 5875 impl D3amr {
6459 #[doc = "TIM peripheral clock enable"] 5876 #[doc = "BDMA and DMAMUX Autonomous mode enable"]
6460 pub const fn tim2en(&self) -> super::vals::C1Apb1lenrTim2en { 5877 pub const fn bdmaamen(&self) -> super::vals::Bdmaamen {
6461 let val = (self.0 >> 0usize) & 0x01; 5878 let val = (self.0 >> 0usize) & 0x01;
6462 super::vals::C1Apb1lenrTim2en(val as u8) 5879 super::vals::Bdmaamen(val as u8)
6463 } 5880 }
6464 #[doc = "TIM peripheral clock enable"] 5881 #[doc = "BDMA and DMAMUX Autonomous mode enable"]
6465 pub fn set_tim2en(&mut self, val: super::vals::C1Apb1lenrTim2en) { 5882 pub fn set_bdmaamen(&mut self, val: super::vals::Bdmaamen) {
6466 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 5883 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
6467 } 5884 }
6468 #[doc = "TIM peripheral clock enable"] 5885 #[doc = "LPUART1 Autonomous mode enable"]
6469 pub const fn tim3en(&self) -> super::vals::C1Apb1lenrTim2en { 5886 pub const fn lpuart1amen(&self) -> super::vals::Bdmaamen {
6470 let val = (self.0 >> 1usize) & 0x01;
6471 super::vals::C1Apb1lenrTim2en(val as u8)
6472 }
6473 #[doc = "TIM peripheral clock enable"]
6474 pub fn set_tim3en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
6475 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
6476 }
6477 #[doc = "TIM peripheral clock enable"]
6478 pub const fn tim4en(&self) -> super::vals::C1Apb1lenrTim2en {
6479 let val = (self.0 >> 2usize) & 0x01;
6480 super::vals::C1Apb1lenrTim2en(val as u8)
6481 }
6482 #[doc = "TIM peripheral clock enable"]
6483 pub fn set_tim4en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
6484 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
6485 }
6486 #[doc = "TIM peripheral clock enable"]
6487 pub const fn tim5en(&self) -> super::vals::C1Apb1lenrTim2en {
6488 let val = (self.0 >> 3usize) & 0x01; 5887 let val = (self.0 >> 3usize) & 0x01;
6489 super::vals::C1Apb1lenrTim2en(val as u8) 5888 super::vals::Bdmaamen(val as u8)
6490 } 5889 }
6491 #[doc = "TIM peripheral clock enable"] 5890 #[doc = "LPUART1 Autonomous mode enable"]
6492 pub fn set_tim5en(&mut self, val: super::vals::C1Apb1lenrTim2en) { 5891 pub fn set_lpuart1amen(&mut self, val: super::vals::Bdmaamen) {
6493 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize); 5892 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
6494 } 5893 }
6495 #[doc = "TIM peripheral clock enable"] 5894 #[doc = "SPI6 Autonomous mode enable"]
6496 pub const fn tim6en(&self) -> super::vals::C1Apb1lenrTim2en { 5895 pub const fn spi6amen(&self) -> super::vals::Bdmaamen {
6497 let val = (self.0 >> 4usize) & 0x01;
6498 super::vals::C1Apb1lenrTim2en(val as u8)
6499 }
6500 #[doc = "TIM peripheral clock enable"]
6501 pub fn set_tim6en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
6502 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
6503 }
6504 #[doc = "TIM peripheral clock enable"]
6505 pub const fn tim7en(&self) -> super::vals::C1Apb1lenrTim2en {
6506 let val = (self.0 >> 5usize) & 0x01; 5896 let val = (self.0 >> 5usize) & 0x01;
6507 super::vals::C1Apb1lenrTim2en(val as u8) 5897 super::vals::Bdmaamen(val as u8)
6508 } 5898 }
6509 #[doc = "TIM peripheral clock enable"] 5899 #[doc = "SPI6 Autonomous mode enable"]
6510 pub fn set_tim7en(&mut self, val: super::vals::C1Apb1lenrTim2en) { 5900 pub fn set_spi6amen(&mut self, val: super::vals::Bdmaamen) {
6511 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 5901 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
6512 } 5902 }
6513 #[doc = "TIM peripheral clock enable"] 5903 #[doc = "I2C4 Autonomous mode enable"]
6514 pub const fn tim12en(&self) -> super::vals::C1Apb1lenrTim2en { 5904 pub const fn i2c4amen(&self) -> super::vals::Bdmaamen {
6515 let val = (self.0 >> 6usize) & 0x01;
6516 super::vals::C1Apb1lenrTim2en(val as u8)
6517 }
6518 #[doc = "TIM peripheral clock enable"]
6519 pub fn set_tim12en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
6520 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
6521 }
6522 #[doc = "TIM peripheral clock enable"]
6523 pub const fn tim13en(&self) -> super::vals::C1Apb1lenrTim2en {
6524 let val = (self.0 >> 7usize) & 0x01; 5905 let val = (self.0 >> 7usize) & 0x01;
6525 super::vals::C1Apb1lenrTim2en(val as u8) 5906 super::vals::Bdmaamen(val as u8)
6526 } 5907 }
6527 #[doc = "TIM peripheral clock enable"] 5908 #[doc = "I2C4 Autonomous mode enable"]
6528 pub fn set_tim13en(&mut self, val: super::vals::C1Apb1lenrTim2en) { 5909 pub fn set_i2c4amen(&mut self, val: super::vals::Bdmaamen) {
6529 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 5910 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
6530 } 5911 }
6531 #[doc = "TIM peripheral clock enable"] 5912 #[doc = "LPTIM2 Autonomous mode enable"]
6532 pub const fn tim14en(&self) -> super::vals::C1Apb1lenrTim2en { 5913 pub const fn lptim2amen(&self) -> super::vals::Bdmaamen {
6533 let val = (self.0 >> 8usize) & 0x01;
6534 super::vals::C1Apb1lenrTim2en(val as u8)
6535 }
6536 #[doc = "TIM peripheral clock enable"]
6537 pub fn set_tim14en(&mut self, val: super::vals::C1Apb1lenrTim2en) {
6538 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
6539 }
6540 #[doc = "LPTIM1 Peripheral Clocks Enable"]
6541 pub const fn lptim1en(&self) -> super::vals::C1Apb1lenrTim2en {
6542 let val = (self.0 >> 9usize) & 0x01; 5914 let val = (self.0 >> 9usize) & 0x01;
6543 super::vals::C1Apb1lenrTim2en(val as u8) 5915 super::vals::Bdmaamen(val as u8)
6544 } 5916 }
6545 #[doc = "LPTIM1 Peripheral Clocks Enable"] 5917 #[doc = "LPTIM2 Autonomous mode enable"]
6546 pub fn set_lptim1en(&mut self, val: super::vals::C1Apb1lenrTim2en) { 5918 pub fn set_lptim2amen(&mut self, val: super::vals::Bdmaamen) {
6547 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize); 5919 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
6548 } 5920 }
6549 #[doc = "SPI2 Peripheral Clocks Enable"] 5921 #[doc = "LPTIM3 Autonomous mode enable"]
6550 pub const fn spi2en(&self) -> super::vals::C1Apb1lenrTim2en { 5922 pub const fn lptim3amen(&self) -> super::vals::Bdmaamen {
5923 let val = (self.0 >> 10usize) & 0x01;
5924 super::vals::Bdmaamen(val as u8)
5925 }
5926 #[doc = "LPTIM3 Autonomous mode enable"]
5927 pub fn set_lptim3amen(&mut self, val: super::vals::Bdmaamen) {
5928 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
5929 }
5930 #[doc = "LPTIM4 Autonomous mode enable"]
5931 pub const fn lptim4amen(&self) -> super::vals::Bdmaamen {
5932 let val = (self.0 >> 11usize) & 0x01;
5933 super::vals::Bdmaamen(val as u8)
5934 }
5935 #[doc = "LPTIM4 Autonomous mode enable"]
5936 pub fn set_lptim4amen(&mut self, val: super::vals::Bdmaamen) {
5937 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
5938 }
5939 #[doc = "LPTIM5 Autonomous mode enable"]
5940 pub const fn lptim5amen(&self) -> super::vals::Bdmaamen {
5941 let val = (self.0 >> 12usize) & 0x01;
5942 super::vals::Bdmaamen(val as u8)
5943 }
5944 #[doc = "LPTIM5 Autonomous mode enable"]
5945 pub fn set_lptim5amen(&mut self, val: super::vals::Bdmaamen) {
5946 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
5947 }
5948 #[doc = "COMP12 Autonomous mode enable"]
5949 pub const fn comp12amen(&self) -> super::vals::Bdmaamen {
6551 let val = (self.0 >> 14usize) & 0x01; 5950 let val = (self.0 >> 14usize) & 0x01;
6552 super::vals::C1Apb1lenrTim2en(val as u8) 5951 super::vals::Bdmaamen(val as u8)
6553 } 5952 }
6554 #[doc = "SPI2 Peripheral Clocks Enable"] 5953 #[doc = "COMP12 Autonomous mode enable"]
6555 pub fn set_spi2en(&mut self, val: super::vals::C1Apb1lenrTim2en) { 5954 pub fn set_comp12amen(&mut self, val: super::vals::Bdmaamen) {
6556 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 5955 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
6557 } 5956 }
6558 #[doc = "SPI3 Peripheral Clocks Enable"] 5957 #[doc = "VREF Autonomous mode enable"]
6559 pub const fn spi3en(&self) -> super::vals::C1Apb1lenrTim2en { 5958 pub const fn vrefamen(&self) -> super::vals::Bdmaamen {
6560 let val = (self.0 >> 15usize) & 0x01; 5959 let val = (self.0 >> 15usize) & 0x01;
6561 super::vals::C1Apb1lenrTim2en(val as u8) 5960 super::vals::Bdmaamen(val as u8)
6562 } 5961 }
6563 #[doc = "SPI3 Peripheral Clocks Enable"] 5962 #[doc = "VREF Autonomous mode enable"]
6564 pub fn set_spi3en(&mut self, val: super::vals::C1Apb1lenrTim2en) { 5963 pub fn set_vrefamen(&mut self, val: super::vals::Bdmaamen) {
6565 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize); 5964 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
6566 } 5965 }
6567 #[doc = "SPDIFRX Peripheral Clocks Enable"] 5966 #[doc = "RTC Autonomous mode enable"]
6568 pub const fn spdifrxen(&self) -> super::vals::C1Apb1lenrTim2en { 5967 pub const fn rtcamen(&self) -> super::vals::Bdmaamen {
6569 let val = (self.0 >> 16usize) & 0x01; 5968 let val = (self.0 >> 16usize) & 0x01;
6570 super::vals::C1Apb1lenrTim2en(val as u8) 5969 super::vals::Bdmaamen(val as u8)
6571 } 5970 }
6572 #[doc = "SPDIFRX Peripheral Clocks Enable"] 5971 #[doc = "RTC Autonomous mode enable"]
6573 pub fn set_spdifrxen(&mut self, val: super::vals::C1Apb1lenrTim2en) { 5972 pub fn set_rtcamen(&mut self, val: super::vals::Bdmaamen) {
6574 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize); 5973 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
6575 } 5974 }
6576 #[doc = "USART2 Peripheral Clocks Enable"] 5975 #[doc = "CRC Autonomous mode enable"]
6577 pub const fn usart2en(&self) -> super::vals::C1Apb1lenrTim2en { 5976 pub const fn crcamen(&self) -> super::vals::Bdmaamen {
6578 let val = (self.0 >> 17usize) & 0x01; 5977 let val = (self.0 >> 19usize) & 0x01;
6579 super::vals::C1Apb1lenrTim2en(val as u8) 5978 super::vals::Bdmaamen(val as u8)
6580 } 5979 }
6581 #[doc = "USART2 Peripheral Clocks Enable"] 5980 #[doc = "CRC Autonomous mode enable"]
6582 pub fn set_usart2en(&mut self, val: super::vals::C1Apb1lenrTim2en) { 5981 pub fn set_crcamen(&mut self, val: super::vals::Bdmaamen) {
6583 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize); 5982 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
6584 } 5983 }
6585 #[doc = "USART3 Peripheral Clocks Enable"] 5984 #[doc = "SAI4 Autonomous mode enable"]
6586 pub const fn usart3en(&self) -> super::vals::C1Apb1lenrTim2en { 5985 pub const fn sai4amen(&self) -> super::vals::Bdmaamen {
6587 let val = (self.0 >> 18usize) & 0x01; 5986 let val = (self.0 >> 21usize) & 0x01;
6588 super::vals::C1Apb1lenrTim2en(val as u8) 5987 super::vals::Bdmaamen(val as u8)
6589 } 5988 }
6590 #[doc = "USART3 Peripheral Clocks Enable"] 5989 #[doc = "SAI4 Autonomous mode enable"]
6591 pub fn set_usart3en(&mut self, val: super::vals::C1Apb1lenrTim2en) { 5990 pub fn set_sai4amen(&mut self, val: super::vals::Bdmaamen) {
6592 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize); 5991 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize);
6593 } 5992 }
6594 #[doc = "UART4 Peripheral Clocks Enable"] 5993 #[doc = "ADC3 Autonomous mode enable"]
6595 pub const fn uart4en(&self) -> super::vals::C1Apb1lenrTim2en { 5994 pub const fn adc3amen(&self) -> super::vals::Bdmaamen {
6596 let val = (self.0 >> 19usize) & 0x01; 5995 let val = (self.0 >> 24usize) & 0x01;
6597 super::vals::C1Apb1lenrTim2en(val as u8) 5996 super::vals::Bdmaamen(val as u8)
6598 } 5997 }
6599 #[doc = "UART4 Peripheral Clocks Enable"] 5998 #[doc = "ADC3 Autonomous mode enable"]
6600 pub fn set_uart4en(&mut self, val: super::vals::C1Apb1lenrTim2en) { 5999 pub fn set_adc3amen(&mut self, val: super::vals::Bdmaamen) {
6601 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize); 6000 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
6602 } 6001 }
6603 #[doc = "UART5 Peripheral Clocks Enable"] 6002 #[doc = "Backup RAM Autonomous mode enable"]
6604 pub const fn uart5en(&self) -> super::vals::C1Apb1lenrTim2en { 6003 pub const fn bkpramamen(&self) -> super::vals::Bdmaamen {
6605 let val = (self.0 >> 20usize) & 0x01; 6004 let val = (self.0 >> 28usize) & 0x01;
6606 super::vals::C1Apb1lenrTim2en(val as u8) 6005 super::vals::Bdmaamen(val as u8)
6607 } 6006 }
6608 #[doc = "UART5 Peripheral Clocks Enable"] 6007 #[doc = "Backup RAM Autonomous mode enable"]
6609 pub fn set_uart5en(&mut self, val: super::vals::C1Apb1lenrTim2en) { 6008 pub fn set_bkpramamen(&mut self, val: super::vals::Bdmaamen) {
6610 self.0 = (self.0 & !(0x01 << 20usize)) | (((val.0 as u32) & 0x01) << 20usize); 6009 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
6611 } 6010 }
6612 #[doc = "I2C1 Peripheral Clocks Enable"] 6011 #[doc = "SRAM4 Autonomous mode enable"]
6613 pub const fn i2c1en(&self) -> super::vals::C1Apb1lenrTim2en { 6012 pub const fn sram4amen(&self) -> super::vals::Bdmaamen {
6614 let val = (self.0 >> 21usize) & 0x01; 6013 let val = (self.0 >> 29usize) & 0x01;
6615 super::vals::C1Apb1lenrTim2en(val as u8) 6014 super::vals::Bdmaamen(val as u8)
6616 } 6015 }
6617 #[doc = "I2C1 Peripheral Clocks Enable"] 6016 #[doc = "SRAM4 Autonomous mode enable"]
6618 pub fn set_i2c1en(&mut self, val: super::vals::C1Apb1lenrTim2en) { 6017 pub fn set_sram4amen(&mut self, val: super::vals::Bdmaamen) {
6619 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize); 6018 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize);
6620 } 6019 }
6621 #[doc = "I2C2 Peripheral Clocks Enable"] 6020 }
6622 pub const fn i2c2en(&self) -> super::vals::C1Apb1lenrTim2en { 6021 impl Default for D3amr {
6623 let val = (self.0 >> 22usize) & 0x01; 6022 fn default() -> D3amr {
6624 super::vals::C1Apb1lenrTim2en(val as u8) 6023 D3amr(0)
6625 } 6024 }
6626 #[doc = "I2C2 Peripheral Clocks Enable"] 6025 }
6627 pub fn set_i2c2en(&mut self, val: super::vals::C1Apb1lenrTim2en) { 6026 #[doc = "RCC AHB3 Clock Register"]
6628 self.0 = (self.0 & !(0x01 << 22usize)) | (((val.0 as u32) & 0x01) << 22usize); 6027 #[repr(transparent)]
6028 #[derive(Copy, Clone, Eq, PartialEq)]
6029 pub struct C1Ahb3enr(pub u32);
6030 impl C1Ahb3enr {
6031 #[doc = "MDMA Peripheral Clock Enable"]
6032 pub const fn mdmaen(&self) -> super::vals::C1Ahb3enrMdmaen {
6033 let val = (self.0 >> 0usize) & 0x01;
6034 super::vals::C1Ahb3enrMdmaen(val as u8)
6629 } 6035 }
6630 #[doc = "I2C3 Peripheral Clocks Enable"] 6036 #[doc = "MDMA Peripheral Clock Enable"]
6631 pub const fn i2c3en(&self) -> super::vals::C1Apb1lenrTim2en { 6037 pub fn set_mdmaen(&mut self, val: super::vals::C1Ahb3enrMdmaen) {
6632 let val = (self.0 >> 23usize) & 0x01; 6038 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
6633 super::vals::C1Apb1lenrTim2en(val as u8)
6634 } 6039 }
6635 #[doc = "I2C3 Peripheral Clocks Enable"] 6040 #[doc = "DMA2D Peripheral Clock Enable"]
6636 pub fn set_i2c3en(&mut self, val: super::vals::C1Apb1lenrTim2en) { 6041 pub const fn dma2den(&self) -> super::vals::C1Ahb3enrMdmaen {
6637 self.0 = (self.0 & !(0x01 << 23usize)) | (((val.0 as u32) & 0x01) << 23usize); 6042 let val = (self.0 >> 4usize) & 0x01;
6043 super::vals::C1Ahb3enrMdmaen(val as u8)
6638 } 6044 }
6639 #[doc = "HDMI-CEC peripheral clock enable"] 6045 #[doc = "DMA2D Peripheral Clock Enable"]
6640 pub const fn cecen(&self) -> super::vals::C1Apb1lenrTim2en { 6046 pub fn set_dma2den(&mut self, val: super::vals::C1Ahb3enrMdmaen) {
6641 let val = (self.0 >> 27usize) & 0x01; 6047 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
6642 super::vals::C1Apb1lenrTim2en(val as u8)
6643 } 6048 }
6644 #[doc = "HDMI-CEC peripheral clock enable"] 6049 #[doc = "JPGDEC Peripheral Clock Enable"]
6645 pub fn set_cecen(&mut self, val: super::vals::C1Apb1lenrTim2en) { 6050 pub const fn jpgdecen(&self) -> super::vals::C1Ahb3enrMdmaen {
6646 self.0 = (self.0 & !(0x01 << 27usize)) | (((val.0 as u32) & 0x01) << 27usize); 6051 let val = (self.0 >> 5usize) & 0x01;
6052 super::vals::C1Ahb3enrMdmaen(val as u8)
6647 } 6053 }
6648 #[doc = "DAC1&2 peripheral clock enable"] 6054 #[doc = "JPGDEC Peripheral Clock Enable"]
6649 pub const fn dac12en(&self) -> super::vals::C1Apb1lenrTim2en { 6055 pub fn set_jpgdecen(&mut self, val: super::vals::C1Ahb3enrMdmaen) {
6650 let val = (self.0 >> 29usize) & 0x01; 6056 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
6651 super::vals::C1Apb1lenrTim2en(val as u8)
6652 } 6057 }
6653 #[doc = "DAC1&2 peripheral clock enable"] 6058 #[doc = "FMC Peripheral Clocks Enable"]
6654 pub fn set_dac12en(&mut self, val: super::vals::C1Apb1lenrTim2en) { 6059 pub const fn fmcen(&self) -> super::vals::C1Ahb3enrMdmaen {
6655 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize); 6060 let val = (self.0 >> 12usize) & 0x01;
6061 super::vals::C1Ahb3enrMdmaen(val as u8)
6656 } 6062 }
6657 #[doc = "UART7 Peripheral Clocks Enable"] 6063 #[doc = "FMC Peripheral Clocks Enable"]
6658 pub const fn uart7en(&self) -> super::vals::C1Apb1lenrTim2en { 6064 pub fn set_fmcen(&mut self, val: super::vals::C1Ahb3enrMdmaen) {
6659 let val = (self.0 >> 30usize) & 0x01; 6065 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
6660 super::vals::C1Apb1lenrTim2en(val as u8)
6661 } 6066 }
6662 #[doc = "UART7 Peripheral Clocks Enable"] 6067 #[doc = "QUADSPI and QUADSPI Delay Clock Enable"]
6663 pub fn set_uart7en(&mut self, val: super::vals::C1Apb1lenrTim2en) { 6068 pub const fn qspien(&self) -> super::vals::C1Ahb3enrMdmaen {
6664 self.0 = (self.0 & !(0x01 << 30usize)) | (((val.0 as u32) & 0x01) << 30usize); 6069 let val = (self.0 >> 14usize) & 0x01;
6070 super::vals::C1Ahb3enrMdmaen(val as u8)
6665 } 6071 }
6666 #[doc = "UART8 Peripheral Clocks Enable"] 6072 #[doc = "QUADSPI and QUADSPI Delay Clock Enable"]
6667 pub const fn uart8en(&self) -> super::vals::C1Apb1lenrTim2en { 6073 pub fn set_qspien(&mut self, val: super::vals::C1Ahb3enrMdmaen) {
6668 let val = (self.0 >> 31usize) & 0x01; 6074 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
6669 super::vals::C1Apb1lenrTim2en(val as u8)
6670 } 6075 }
6671 #[doc = "UART8 Peripheral Clocks Enable"] 6076 #[doc = "SDMMC1 and SDMMC1 Delay Clock Enable"]
6672 pub fn set_uart8en(&mut self, val: super::vals::C1Apb1lenrTim2en) { 6077 pub const fn sdmmc1en(&self) -> super::vals::C1Ahb3enrMdmaen {
6673 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize); 6078 let val = (self.0 >> 16usize) & 0x01;
6079 super::vals::C1Ahb3enrMdmaen(val as u8)
6080 }
6081 #[doc = "SDMMC1 and SDMMC1 Delay Clock Enable"]
6082 pub fn set_sdmmc1en(&mut self, val: super::vals::C1Ahb3enrMdmaen) {
6083 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
6674 } 6084 }
6675 } 6085 }
6676 impl Default for C1Apb1lenr { 6086 impl Default for C1Ahb3enr {
6677 fn default() -> C1Apb1lenr { 6087 fn default() -> C1Ahb3enr {
6678 C1Apb1lenr(0) 6088 C1Ahb3enr(0)
6679 } 6089 }
6680 } 6090 }
6681 #[doc = "RCC Reset Status Register"] 6091 #[doc = "RCC APB1 Clock Register"]
6682 #[repr(transparent)] 6092 #[repr(transparent)]
6683 #[derive(Copy, Clone, Eq, PartialEq)] 6093 #[derive(Copy, Clone, Eq, PartialEq)]
6684 pub struct C1Rsr(pub u32); 6094 pub struct Apb1henr(pub u32);
6685 impl C1Rsr { 6095 impl Apb1henr {
6686 #[doc = "Remove reset flag"] 6096 #[doc = "Clock Recovery System peripheral clock enable"]
6687 pub const fn rmvf(&self) -> super::vals::C1RsrRmvf { 6097 pub const fn crsen(&self) -> super::vals::Apb1henrCrsen {
6688 let val = (self.0 >> 16usize) & 0x01; 6098 let val = (self.0 >> 1usize) & 0x01;
6689 super::vals::C1RsrRmvf(val as u8) 6099 super::vals::Apb1henrCrsen(val as u8)
6690 } 6100 }
6691 #[doc = "Remove reset flag"] 6101 #[doc = "Clock Recovery System peripheral clock enable"]
6692 pub fn set_rmvf(&mut self, val: super::vals::C1RsrRmvf) { 6102 pub fn set_crsen(&mut self, val: super::vals::Apb1henrCrsen) {
6693 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize); 6103 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
6694 } 6104 }
6695 #[doc = "CPU reset flag"] 6105 #[doc = "SWPMI Peripheral Clocks Enable"]
6696 pub const fn cpurstf(&self) -> bool { 6106 pub const fn swpen(&self) -> super::vals::Apb1henrCrsen {
6697 let val = (self.0 >> 17usize) & 0x01; 6107 let val = (self.0 >> 2usize) & 0x01;
6698 val != 0 6108 super::vals::Apb1henrCrsen(val as u8)
6699 } 6109 }
6700 #[doc = "CPU reset flag"] 6110 #[doc = "SWPMI Peripheral Clocks Enable"]
6701 pub fn set_cpurstf(&mut self, val: bool) { 6111 pub fn set_swpen(&mut self, val: super::vals::Apb1henrCrsen) {
6702 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize); 6112 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
6703 } 6113 }
6704 #[doc = "D1 domain power switch reset flag"] 6114 #[doc = "OPAMP peripheral clock enable"]
6705 pub const fn d1rstf(&self) -> bool { 6115 pub const fn opampen(&self) -> super::vals::Apb1henrCrsen {
6706 let val = (self.0 >> 19usize) & 0x01; 6116 let val = (self.0 >> 4usize) & 0x01;
6707 val != 0 6117 super::vals::Apb1henrCrsen(val as u8)
6708 } 6118 }
6709 #[doc = "D1 domain power switch reset flag"] 6119 #[doc = "OPAMP peripheral clock enable"]
6710 pub fn set_d1rstf(&mut self, val: bool) { 6120 pub fn set_opampen(&mut self, val: super::vals::Apb1henrCrsen) {
6711 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize); 6121 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
6712 } 6122 }
6713 #[doc = "D2 domain power switch reset flag"] 6123 #[doc = "MDIOS peripheral clock enable"]
6714 pub const fn d2rstf(&self) -> bool { 6124 pub const fn mdiosen(&self) -> super::vals::Apb1henrCrsen {
6715 let val = (self.0 >> 20usize) & 0x01; 6125 let val = (self.0 >> 5usize) & 0x01;
6716 val != 0 6126 super::vals::Apb1henrCrsen(val as u8)
6717 } 6127 }
6718 #[doc = "D2 domain power switch reset flag"] 6128 #[doc = "MDIOS peripheral clock enable"]
6719 pub fn set_d2rstf(&mut self, val: bool) { 6129 pub fn set_mdiosen(&mut self, val: super::vals::Apb1henrCrsen) {
6720 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize); 6130 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
6721 } 6131 }
6722 #[doc = "BOR reset flag"] 6132 #[doc = "FDCAN Peripheral Clocks Enable"]
6723 pub const fn borrstf(&self) -> bool { 6133 pub const fn fdcanen(&self) -> super::vals::Apb1henrCrsen {
6724 let val = (self.0 >> 21usize) & 0x01; 6134 let val = (self.0 >> 8usize) & 0x01;
6725 val != 0 6135 super::vals::Apb1henrCrsen(val as u8)
6726 } 6136 }
6727 #[doc = "BOR reset flag"] 6137 #[doc = "FDCAN Peripheral Clocks Enable"]
6728 pub fn set_borrstf(&mut self, val: bool) { 6138 pub fn set_fdcanen(&mut self, val: super::vals::Apb1henrCrsen) {
6729 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize); 6139 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
6730 } 6140 }
6731 #[doc = "Pin reset flag (NRST)"] 6141 }
6732 pub const fn pinrstf(&self) -> bool { 6142 impl Default for Apb1henr {
6733 let val = (self.0 >> 22usize) & 0x01; 6143 fn default() -> Apb1henr {
6734 val != 0 6144 Apb1henr(0)
6735 } 6145 }
6736 #[doc = "Pin reset flag (NRST)"] 6146 }
6737 pub fn set_pinrstf(&mut self, val: bool) { 6147 #[doc = "RCC Clock Control and Status Register"]
6738 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize); 6148 #[repr(transparent)]
6149 #[derive(Copy, Clone, Eq, PartialEq)]
6150 pub struct Csr(pub u32);
6151 impl Csr {
6152 #[doc = "LSI oscillator enable"]
6153 pub const fn lsion(&self) -> super::vals::Lsion {
6154 let val = (self.0 >> 0usize) & 0x01;
6155 super::vals::Lsion(val as u8)
6739 } 6156 }
6740 #[doc = "POR/PDR reset flag"] 6157 #[doc = "LSI oscillator enable"]
6741 pub const fn porrstf(&self) -> bool { 6158 pub fn set_lsion(&mut self, val: super::vals::Lsion) {
6742 let val = (self.0 >> 23usize) & 0x01; 6159 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
6160 }
6161 #[doc = "LSI oscillator ready"]
6162 pub const fn lsirdy(&self) -> bool {
6163 let val = (self.0 >> 1usize) & 0x01;
6743 val != 0 6164 val != 0
6744 } 6165 }
6745 #[doc = "POR/PDR reset flag"] 6166 #[doc = "LSI oscillator ready"]
6746 pub fn set_porrstf(&mut self, val: bool) { 6167 pub fn set_lsirdy(&mut self, val: bool) {
6747 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize); 6168 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
6748 } 6169 }
6749 #[doc = "System reset from CPU reset flag"] 6170 }
6750 pub const fn sftrstf(&self) -> bool { 6171 impl Default for Csr {
6751 let val = (self.0 >> 24usize) & 0x01; 6172 fn default() -> Csr {
6752 val != 0 6173 Csr(0)
6753 } 6174 }
6754 #[doc = "System reset from CPU reset flag"] 6175 }
6755 pub fn set_sftrstf(&mut self, val: bool) { 6176 #[doc = "RCC AHB3 Sleep Clock Register"]
6756 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize); 6177 #[repr(transparent)]
6178 #[derive(Copy, Clone, Eq, PartialEq)]
6179 pub struct Ahb3lpenr(pub u32);
6180 impl Ahb3lpenr {
6181 #[doc = "MDMA Clock Enable During CSleep Mode"]
6182 pub const fn mdmalpen(&self) -> super::vals::Ahb3lpenrMdmalpen {
6183 let val = (self.0 >> 0usize) & 0x01;
6184 super::vals::Ahb3lpenrMdmalpen(val as u8)
6757 } 6185 }
6758 #[doc = "Independent Watchdog reset flag"] 6186 #[doc = "MDMA Clock Enable During CSleep Mode"]
6759 pub const fn iwdg1rstf(&self) -> bool { 6187 pub fn set_mdmalpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) {
6760 let val = (self.0 >> 26usize) & 0x01; 6188 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
6761 val != 0
6762 } 6189 }
6763 #[doc = "Independent Watchdog reset flag"] 6190 #[doc = "DMA2D Clock Enable During CSleep Mode"]
6764 pub fn set_iwdg1rstf(&mut self, val: bool) { 6191 pub const fn dma2dlpen(&self) -> super::vals::Ahb3lpenrMdmalpen {
6765 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize); 6192 let val = (self.0 >> 4usize) & 0x01;
6193 super::vals::Ahb3lpenrMdmalpen(val as u8)
6766 } 6194 }
6767 #[doc = "Window Watchdog reset flag"] 6195 #[doc = "DMA2D Clock Enable During CSleep Mode"]
6768 pub const fn wwdg1rstf(&self) -> bool { 6196 pub fn set_dma2dlpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) {
6769 let val = (self.0 >> 28usize) & 0x01; 6197 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
6770 val != 0
6771 } 6198 }
6772 #[doc = "Window Watchdog reset flag"] 6199 #[doc = "JPGDEC Clock Enable During CSleep Mode"]
6773 pub fn set_wwdg1rstf(&mut self, val: bool) { 6200 pub const fn jpgdeclpen(&self) -> super::vals::Ahb3lpenrMdmalpen {
6774 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize); 6201 let val = (self.0 >> 5usize) & 0x01;
6202 super::vals::Ahb3lpenrMdmalpen(val as u8)
6775 } 6203 }
6776 #[doc = "Reset due to illegal D1 DStandby or CPU CStop flag"] 6204 #[doc = "JPGDEC Clock Enable During CSleep Mode"]
6777 pub const fn lpwrrstf(&self) -> bool { 6205 pub fn set_jpgdeclpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) {
6778 let val = (self.0 >> 30usize) & 0x01; 6206 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
6779 val != 0
6780 } 6207 }
6781 #[doc = "Reset due to illegal D1 DStandby or CPU CStop flag"] 6208 #[doc = "FLITF Clock Enable During CSleep Mode"]
6782 pub fn set_lpwrrstf(&mut self, val: bool) { 6209 pub const fn flashlpen(&self) -> super::vals::Ahb3lpenrMdmalpen {
6783 self.0 = (self.0 & !(0x01 << 30usize)) | (((val as u32) & 0x01) << 30usize); 6210 let val = (self.0 >> 8usize) & 0x01;
6211 super::vals::Ahb3lpenrMdmalpen(val as u8)
6784 } 6212 }
6785 } 6213 #[doc = "FLITF Clock Enable During CSleep Mode"]
6786 impl Default for C1Rsr { 6214 pub fn set_flashlpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) {
6787 fn default() -> C1Rsr { 6215 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
6788 C1Rsr(0)
6789 } 6216 }
6790 } 6217 #[doc = "FMC Peripheral Clocks Enable During CSleep Mode"]
6791 #[doc = "RCC PLLs Configuration Register"] 6218 pub const fn fmclpen(&self) -> super::vals::Ahb3lpenrMdmalpen {
6792 #[repr(transparent)] 6219 let val = (self.0 >> 12usize) & 0x01;
6793 #[derive(Copy, Clone, Eq, PartialEq)] 6220 super::vals::Ahb3lpenrMdmalpen(val as u8)
6794 pub struct Pllcfgr(pub u32);
6795 impl Pllcfgr {
6796 #[doc = "PLL1 fractional latch enable"]
6797 pub fn pllfracen(&self, n: usize) -> super::vals::Pll1fracen {
6798 assert!(n < 3usize);
6799 let offs = 0usize + n * 4usize;
6800 let val = (self.0 >> offs) & 0x01;
6801 super::vals::Pll1fracen(val as u8)
6802 } 6221 }
6803 #[doc = "PLL1 fractional latch enable"] 6222 #[doc = "FMC Peripheral Clocks Enable During CSleep Mode"]
6804 pub fn set_pllfracen(&mut self, n: usize, val: super::vals::Pll1fracen) { 6223 pub fn set_fmclpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) {
6805 assert!(n < 3usize); 6224 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
6806 let offs = 0usize + n * 4usize;
6807 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
6808 } 6225 }
6809 #[doc = "PLL1 VCO selection"] 6226 #[doc = "QUADSPI and QUADSPI Delay Clock Enable During CSleep Mode"]
6810 pub fn pllvcosel(&self, n: usize) -> super::vals::Pll1vcosel { 6227 pub const fn qspilpen(&self) -> super::vals::Ahb3lpenrMdmalpen {
6811 assert!(n < 3usize); 6228 let val = (self.0 >> 14usize) & 0x01;
6812 let offs = 1usize + n * 4usize; 6229 super::vals::Ahb3lpenrMdmalpen(val as u8)
6813 let val = (self.0 >> offs) & 0x01;
6814 super::vals::Pll1vcosel(val as u8)
6815 } 6230 }
6816 #[doc = "PLL1 VCO selection"] 6231 #[doc = "QUADSPI and QUADSPI Delay Clock Enable During CSleep Mode"]
6817 pub fn set_pllvcosel(&mut self, n: usize, val: super::vals::Pll1vcosel) { 6232 pub fn set_qspilpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) {
6818 assert!(n < 3usize); 6233 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
6819 let offs = 1usize + n * 4usize;
6820 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
6821 } 6234 }
6822 #[doc = "PLL1 input frequency range"] 6235 #[doc = "SDMMC1 and SDMMC1 Delay Clock Enable During CSleep Mode"]
6823 pub fn pllrge(&self, n: usize) -> super::vals::Pll1rge { 6236 pub const fn sdmmc1lpen(&self) -> super::vals::Ahb3lpenrMdmalpen {
6824 assert!(n < 3usize); 6237 let val = (self.0 >> 16usize) & 0x01;
6825 let offs = 2usize + n * 4usize; 6238 super::vals::Ahb3lpenrMdmalpen(val as u8)
6826 let val = (self.0 >> offs) & 0x03;
6827 super::vals::Pll1rge(val as u8)
6828 } 6239 }
6829 #[doc = "PLL1 input frequency range"] 6240 #[doc = "SDMMC1 and SDMMC1 Delay Clock Enable During CSleep Mode"]
6830 pub fn set_pllrge(&mut self, n: usize, val: super::vals::Pll1rge) { 6241 pub fn set_sdmmc1lpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) {
6831 assert!(n < 3usize); 6242 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
6832 let offs = 2usize + n * 4usize;
6833 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
6834 } 6243 }
6835 #[doc = "PLL1 DIVP divider output enable"] 6244 #[doc = "D1DTCM1 Block Clock Enable During CSleep mode"]
6836 pub fn divpen(&self, n: usize) -> super::vals::Divp1en { 6245 pub const fn d1dtcm1lpen(&self) -> super::vals::Ahb3lpenrMdmalpen {
6837 assert!(n < 3usize); 6246 let val = (self.0 >> 28usize) & 0x01;
6838 let offs = 16usize + n * 3usize; 6247 super::vals::Ahb3lpenrMdmalpen(val as u8)
6839 let val = (self.0 >> offs) & 0x01;
6840 super::vals::Divp1en(val as u8)
6841 } 6248 }
6842 #[doc = "PLL1 DIVP divider output enable"] 6249 #[doc = "D1DTCM1 Block Clock Enable During CSleep mode"]
6843 pub fn set_divpen(&mut self, n: usize, val: super::vals::Divp1en) { 6250 pub fn set_d1dtcm1lpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) {
6844 assert!(n < 3usize); 6251 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
6845 let offs = 16usize + n * 3usize;
6846 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
6847 } 6252 }
6848 #[doc = "PLL1 DIVQ divider output enable"] 6253 #[doc = "D1 DTCM2 Block Clock Enable During CSleep mode"]
6849 pub fn divqen(&self, n: usize) -> super::vals::Divp1en { 6254 pub const fn dtcm2lpen(&self) -> super::vals::Ahb3lpenrMdmalpen {
6850 assert!(n < 3usize); 6255 let val = (self.0 >> 29usize) & 0x01;
6851 let offs = 17usize + n * 3usize; 6256 super::vals::Ahb3lpenrMdmalpen(val as u8)
6852 let val = (self.0 >> offs) & 0x01;
6853 super::vals::Divp1en(val as u8)
6854 } 6257 }
6855 #[doc = "PLL1 DIVQ divider output enable"] 6258 #[doc = "D1 DTCM2 Block Clock Enable During CSleep mode"]
6856 pub fn set_divqen(&mut self, n: usize, val: super::vals::Divp1en) { 6259 pub fn set_dtcm2lpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) {
6857 assert!(n < 3usize); 6260 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize);
6858 let offs = 17usize + n * 3usize;
6859 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
6860 } 6261 }
6861 #[doc = "PLL1 DIVR divider output enable"] 6262 #[doc = "D1ITCM Block Clock Enable During CSleep mode"]
6862 pub fn divren(&self, n: usize) -> super::vals::Divp1en { 6263 pub const fn itcmlpen(&self) -> super::vals::Ahb3lpenrMdmalpen {
6863 assert!(n < 3usize); 6264 let val = (self.0 >> 30usize) & 0x01;
6864 let offs = 18usize + n * 3usize; 6265 super::vals::Ahb3lpenrMdmalpen(val as u8)
6865 let val = (self.0 >> offs) & 0x01;
6866 super::vals::Divp1en(val as u8)
6867 } 6266 }
6868 #[doc = "PLL1 DIVR divider output enable"] 6267 #[doc = "D1ITCM Block Clock Enable During CSleep mode"]
6869 pub fn set_divren(&mut self, n: usize, val: super::vals::Divp1en) { 6268 pub fn set_itcmlpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) {
6870 assert!(n < 3usize); 6269 self.0 = (self.0 & !(0x01 << 30usize)) | (((val.0 as u32) & 0x01) << 30usize);
6871 let offs = 18usize + n * 3usize; 6270 }
6872 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs); 6271 #[doc = "AXISRAM Block Clock Enable During CSleep mode"]
6272 pub const fn axisramlpen(&self) -> super::vals::Ahb3lpenrMdmalpen {
6273 let val = (self.0 >> 31usize) & 0x01;
6274 super::vals::Ahb3lpenrMdmalpen(val as u8)
6275 }
6276 #[doc = "AXISRAM Block Clock Enable During CSleep mode"]
6277 pub fn set_axisramlpen(&mut self, val: super::vals::Ahb3lpenrMdmalpen) {
6278 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize);
6873 } 6279 }
6874 } 6280 }
6875 impl Default for Pllcfgr { 6281 impl Default for Ahb3lpenr {
6876 fn default() -> Pllcfgr { 6282 fn default() -> Ahb3lpenr {
6877 Pllcfgr(0) 6283 Ahb3lpenr(0)
6878 } 6284 }
6879 } 6285 }
6880 #[doc = "RCC PLL3 Dividers Configuration Register"] 6286 #[doc = "RCC PLL3 Fractional Divider Register"]
6881 #[repr(transparent)] 6287 #[repr(transparent)]
6882 #[derive(Copy, Clone, Eq, PartialEq)] 6288 #[derive(Copy, Clone, Eq, PartialEq)]
6883 pub struct Pll3divr(pub u32); 6289 pub struct Pll3fracr(pub u32);
6884 impl Pll3divr { 6290 impl Pll3fracr {
6291 #[doc = "Fractional part of the multiplication factor for PLL3 VCO"]
6292 pub const fn fracn3(&self) -> u16 {
6293 let val = (self.0 >> 3usize) & 0x1fff;
6294 val as u16
6295 }
6296 #[doc = "Fractional part of the multiplication factor for PLL3 VCO"]
6297 pub fn set_fracn3(&mut self, val: u16) {
6298 self.0 = (self.0 & !(0x1fff << 3usize)) | (((val as u32) & 0x1fff) << 3usize);
6299 }
6300 }
6301 impl Default for Pll3fracr {
6302 fn default() -> Pll3fracr {
6303 Pll3fracr(0)
6304 }
6305 }
6306 #[doc = "RCC PLL2 Dividers Configuration Register"]
6307 #[repr(transparent)]
6308 #[derive(Copy, Clone, Eq, PartialEq)]
6309 pub struct Pll2divr(pub u32);
6310 impl Pll2divr {
6885 #[doc = "Multiplication factor for PLL1 VCO"] 6311 #[doc = "Multiplication factor for PLL1 VCO"]
6886 pub const fn divn3(&self) -> u16 { 6312 pub const fn divn2(&self) -> u16 {
6887 let val = (self.0 >> 0usize) & 0x01ff; 6313 let val = (self.0 >> 0usize) & 0x01ff;
6888 val as u16 6314 val as u16
6889 } 6315 }
6890 #[doc = "Multiplication factor for PLL1 VCO"] 6316 #[doc = "Multiplication factor for PLL1 VCO"]
6891 pub fn set_divn3(&mut self, val: u16) { 6317 pub fn set_divn2(&mut self, val: u16) {
6892 self.0 = (self.0 & !(0x01ff << 0usize)) | (((val as u32) & 0x01ff) << 0usize); 6318 self.0 = (self.0 & !(0x01ff << 0usize)) | (((val as u32) & 0x01ff) << 0usize);
6893 } 6319 }
6894 #[doc = "PLL DIVP division factor"] 6320 #[doc = "PLL1 DIVP division factor"]
6895 pub const fn divp3(&self) -> u8 { 6321 pub const fn divp2(&self) -> u8 {
6896 let val = (self.0 >> 9usize) & 0x7f; 6322 let val = (self.0 >> 9usize) & 0x7f;
6897 val as u8 6323 val as u8
6898 } 6324 }
6899 #[doc = "PLL DIVP division factor"] 6325 #[doc = "PLL1 DIVP division factor"]
6900 pub fn set_divp3(&mut self, val: u8) { 6326 pub fn set_divp2(&mut self, val: u8) {
6901 self.0 = (self.0 & !(0x7f << 9usize)) | (((val as u32) & 0x7f) << 9usize); 6327 self.0 = (self.0 & !(0x7f << 9usize)) | (((val as u32) & 0x7f) << 9usize);
6902 } 6328 }
6903 #[doc = "PLL DIVQ division factor"] 6329 #[doc = "PLL1 DIVQ division factor"]
6904 pub const fn divq3(&self) -> u8 { 6330 pub const fn divq2(&self) -> u8 {
6905 let val = (self.0 >> 16usize) & 0x7f; 6331 let val = (self.0 >> 16usize) & 0x7f;
6906 val as u8 6332 val as u8
6907 } 6333 }
6908 #[doc = "PLL DIVQ division factor"] 6334 #[doc = "PLL1 DIVQ division factor"]
6909 pub fn set_divq3(&mut self, val: u8) { 6335 pub fn set_divq2(&mut self, val: u8) {
6910 self.0 = (self.0 & !(0x7f << 16usize)) | (((val as u32) & 0x7f) << 16usize); 6336 self.0 = (self.0 & !(0x7f << 16usize)) | (((val as u32) & 0x7f) << 16usize);
6911 } 6337 }
6912 #[doc = "PLL DIVR division factor"] 6338 #[doc = "PLL1 DIVR division factor"]
6913 pub const fn divr3(&self) -> u8 { 6339 pub const fn divr2(&self) -> u8 {
6914 let val = (self.0 >> 24usize) & 0x7f; 6340 let val = (self.0 >> 24usize) & 0x7f;
6915 val as u8 6341 val as u8
6916 } 6342 }
6917 #[doc = "PLL DIVR division factor"] 6343 #[doc = "PLL1 DIVR division factor"]
6918 pub fn set_divr3(&mut self, val: u8) { 6344 pub fn set_divr2(&mut self, val: u8) {
6919 self.0 = (self.0 & !(0x7f << 24usize)) | (((val as u32) & 0x7f) << 24usize); 6345 self.0 = (self.0 & !(0x7f << 24usize)) | (((val as u32) & 0x7f) << 24usize);
6920 } 6346 }
6921 } 6347 }
6922 impl Default for Pll3divr { 6348 impl Default for Pll2divr {
6923 fn default() -> Pll3divr { 6349 fn default() -> Pll2divr {
6924 Pll3divr(0) 6350 Pll2divr(0)
6925 } 6351 }
6926 } 6352 }
6927 #[doc = "RCC AHB4 Clock Register"] 6353 #[doc = "RCC AHB4 Sleep Clock Register"]
6928 #[repr(transparent)] 6354 #[repr(transparent)]
6929 #[derive(Copy, Clone, Eq, PartialEq)] 6355 #[derive(Copy, Clone, Eq, PartialEq)]
6930 pub struct Ahb4enr(pub u32); 6356 pub struct Ahb4lpenr(pub u32);
6931 impl Ahb4enr { 6357 impl Ahb4lpenr {
6932 #[doc = "0GPIO peripheral clock enable"] 6358 #[doc = "GPIO peripheral clock enable during CSleep mode"]
6933 pub const fn gpioaen(&self) -> super::vals::Ahb4enrGpioaen { 6359 pub const fn gpioalpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
6934 let val = (self.0 >> 0usize) & 0x01; 6360 let val = (self.0 >> 0usize) & 0x01;
6935 super::vals::Ahb4enrGpioaen(val as u8) 6361 super::vals::Ahb4lpenrGpioalpen(val as u8)
6936 } 6362 }
6937 #[doc = "0GPIO peripheral clock enable"] 6363 #[doc = "GPIO peripheral clock enable during CSleep mode"]
6938 pub fn set_gpioaen(&mut self, val: super::vals::Ahb4enrGpioaen) { 6364 pub fn set_gpioalpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
6939 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 6365 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
6940 } 6366 }
6941 #[doc = "0GPIO peripheral clock enable"] 6367 #[doc = "GPIO peripheral clock enable during CSleep mode"]
6942 pub const fn gpioben(&self) -> super::vals::Ahb4enrGpioaen { 6368 pub const fn gpioblpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
6943 let val = (self.0 >> 1usize) & 0x01; 6369 let val = (self.0 >> 1usize) & 0x01;
6944 super::vals::Ahb4enrGpioaen(val as u8) 6370 super::vals::Ahb4lpenrGpioalpen(val as u8)
6945 } 6371 }
6946 #[doc = "0GPIO peripheral clock enable"] 6372 #[doc = "GPIO peripheral clock enable during CSleep mode"]
6947 pub fn set_gpioben(&mut self, val: super::vals::Ahb4enrGpioaen) { 6373 pub fn set_gpioblpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
6948 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 6374 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
6949 } 6375 }
6950 #[doc = "0GPIO peripheral clock enable"] 6376 #[doc = "GPIO peripheral clock enable during CSleep mode"]
6951 pub const fn gpiocen(&self) -> super::vals::Ahb4enrGpioaen { 6377 pub const fn gpioclpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
6952 let val = (self.0 >> 2usize) & 0x01; 6378 let val = (self.0 >> 2usize) & 0x01;
6953 super::vals::Ahb4enrGpioaen(val as u8) 6379 super::vals::Ahb4lpenrGpioalpen(val as u8)
6954 } 6380 }
6955 #[doc = "0GPIO peripheral clock enable"] 6381 #[doc = "GPIO peripheral clock enable during CSleep mode"]
6956 pub fn set_gpiocen(&mut self, val: super::vals::Ahb4enrGpioaen) { 6382 pub fn set_gpioclpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
6957 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize); 6383 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
6958 } 6384 }
6959 #[doc = "0GPIO peripheral clock enable"] 6385 #[doc = "GPIO peripheral clock enable during CSleep mode"]
6960 pub const fn gpioden(&self) -> super::vals::Ahb4enrGpioaen { 6386 pub const fn gpiodlpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
6961 let val = (self.0 >> 3usize) & 0x01; 6387 let val = (self.0 >> 3usize) & 0x01;
6962 super::vals::Ahb4enrGpioaen(val as u8) 6388 super::vals::Ahb4lpenrGpioalpen(val as u8)
6963 } 6389 }
6964 #[doc = "0GPIO peripheral clock enable"] 6390 #[doc = "GPIO peripheral clock enable during CSleep mode"]
6965 pub fn set_gpioden(&mut self, val: super::vals::Ahb4enrGpioaen) { 6391 pub fn set_gpiodlpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
6966 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize); 6392 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
6967 } 6393 }
6968 #[doc = "0GPIO peripheral clock enable"] 6394 #[doc = "GPIO peripheral clock enable during CSleep mode"]
6969 pub const fn gpioeen(&self) -> super::vals::Ahb4enrGpioaen { 6395 pub const fn gpioelpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
6970 let val = (self.0 >> 4usize) & 0x01; 6396 let val = (self.0 >> 4usize) & 0x01;
6971 super::vals::Ahb4enrGpioaen(val as u8) 6397 super::vals::Ahb4lpenrGpioalpen(val as u8)
6972 } 6398 }
6973 #[doc = "0GPIO peripheral clock enable"] 6399 #[doc = "GPIO peripheral clock enable during CSleep mode"]
6974 pub fn set_gpioeen(&mut self, val: super::vals::Ahb4enrGpioaen) { 6400 pub fn set_gpioelpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
6975 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 6401 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
6976 } 6402 }
6977 #[doc = "0GPIO peripheral clock enable"] 6403 #[doc = "GPIO peripheral clock enable during CSleep mode"]
6978 pub const fn gpiofen(&self) -> super::vals::Ahb4enrGpioaen { 6404 pub const fn gpioflpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
6979 let val = (self.0 >> 5usize) & 0x01; 6405 let val = (self.0 >> 5usize) & 0x01;
6980 super::vals::Ahb4enrGpioaen(val as u8) 6406 super::vals::Ahb4lpenrGpioalpen(val as u8)
6981 } 6407 }
6982 #[doc = "0GPIO peripheral clock enable"] 6408 #[doc = "GPIO peripheral clock enable during CSleep mode"]
6983 pub fn set_gpiofen(&mut self, val: super::vals::Ahb4enrGpioaen) { 6409 pub fn set_gpioflpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
6984 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 6410 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
6985 } 6411 }
6986 #[doc = "0GPIO peripheral clock enable"] 6412 #[doc = "GPIO peripheral clock enable during CSleep mode"]
6987 pub const fn gpiogen(&self) -> super::vals::Ahb4enrGpioaen { 6413 pub const fn gpioglpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
6988 let val = (self.0 >> 6usize) & 0x01; 6414 let val = (self.0 >> 6usize) & 0x01;
6989 super::vals::Ahb4enrGpioaen(val as u8) 6415 super::vals::Ahb4lpenrGpioalpen(val as u8)
6990 } 6416 }
6991 #[doc = "0GPIO peripheral clock enable"] 6417 #[doc = "GPIO peripheral clock enable during CSleep mode"]
6992 pub fn set_gpiogen(&mut self, val: super::vals::Ahb4enrGpioaen) { 6418 pub fn set_gpioglpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
6993 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize); 6419 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
6994 } 6420 }
6995 #[doc = "0GPIO peripheral clock enable"] 6421 #[doc = "GPIO peripheral clock enable during CSleep mode"]
6996 pub const fn gpiohen(&self) -> super::vals::Ahb4enrGpioaen { 6422 pub const fn gpiohlpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
6997 let val = (self.0 >> 7usize) & 0x01; 6423 let val = (self.0 >> 7usize) & 0x01;
6998 super::vals::Ahb4enrGpioaen(val as u8) 6424 super::vals::Ahb4lpenrGpioalpen(val as u8)
6999 } 6425 }
7000 #[doc = "0GPIO peripheral clock enable"] 6426 #[doc = "GPIO peripheral clock enable during CSleep mode"]
7001 pub fn set_gpiohen(&mut self, val: super::vals::Ahb4enrGpioaen) { 6427 pub fn set_gpiohlpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
7002 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 6428 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
7003 } 6429 }
7004 #[doc = "0GPIO peripheral clock enable"] 6430 #[doc = "GPIO peripheral clock enable during CSleep mode"]
7005 pub const fn gpioien(&self) -> super::vals::Ahb4enrGpioaen { 6431 pub const fn gpioilpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
7006 let val = (self.0 >> 8usize) & 0x01; 6432 let val = (self.0 >> 8usize) & 0x01;
7007 super::vals::Ahb4enrGpioaen(val as u8) 6433 super::vals::Ahb4lpenrGpioalpen(val as u8)
7008 } 6434 }
7009 #[doc = "0GPIO peripheral clock enable"] 6435 #[doc = "GPIO peripheral clock enable during CSleep mode"]
7010 pub fn set_gpioien(&mut self, val: super::vals::Ahb4enrGpioaen) { 6436 pub fn set_gpioilpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
7011 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize); 6437 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
7012 } 6438 }
7013 #[doc = "0GPIO peripheral clock enable"] 6439 #[doc = "GPIO peripheral clock enable during CSleep mode"]
7014 pub const fn gpiojen(&self) -> super::vals::Ahb4enrGpioaen { 6440 pub const fn gpiojlpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
7015 let val = (self.0 >> 9usize) & 0x01; 6441 let val = (self.0 >> 9usize) & 0x01;
7016 super::vals::Ahb4enrGpioaen(val as u8) 6442 super::vals::Ahb4lpenrGpioalpen(val as u8)
7017 } 6443 }
7018 #[doc = "0GPIO peripheral clock enable"] 6444 #[doc = "GPIO peripheral clock enable during CSleep mode"]
7019 pub fn set_gpiojen(&mut self, val: super::vals::Ahb4enrGpioaen) { 6445 pub fn set_gpiojlpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
7020 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize); 6446 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
7021 } 6447 }
7022 #[doc = "0GPIO peripheral clock enable"] 6448 #[doc = "GPIO peripheral clock enable during CSleep mode"]
7023 pub const fn gpioken(&self) -> super::vals::Ahb4enrGpioaen { 6449 pub const fn gpioklpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
7024 let val = (self.0 >> 10usize) & 0x01; 6450 let val = (self.0 >> 10usize) & 0x01;
7025 super::vals::Ahb4enrGpioaen(val as u8) 6451 super::vals::Ahb4lpenrGpioalpen(val as u8)
7026 } 6452 }
7027 #[doc = "0GPIO peripheral clock enable"] 6453 #[doc = "GPIO peripheral clock enable during CSleep mode"]
7028 pub fn set_gpioken(&mut self, val: super::vals::Ahb4enrGpioaen) { 6454 pub fn set_gpioklpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
7029 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize); 6455 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
7030 } 6456 }
7031 #[doc = "CRC peripheral clock enable"] 6457 #[doc = "CRC peripheral clock enable during CSleep mode"]
7032 pub const fn crcen(&self) -> super::vals::Ahb4enrGpioaen { 6458 pub const fn crclpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
7033 let val = (self.0 >> 19usize) & 0x01; 6459 let val = (self.0 >> 19usize) & 0x01;
7034 super::vals::Ahb4enrGpioaen(val as u8) 6460 super::vals::Ahb4lpenrGpioalpen(val as u8)
7035 } 6461 }
7036 #[doc = "CRC peripheral clock enable"] 6462 #[doc = "CRC peripheral clock enable during CSleep mode"]
7037 pub fn set_crcen(&mut self, val: super::vals::Ahb4enrGpioaen) { 6463 pub fn set_crclpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
7038 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize); 6464 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
7039 } 6465 }
7040 #[doc = "BDMA and DMAMUX2 Clock Enable"] 6466 #[doc = "BDMA Clock Enable During CSleep Mode"]
7041 pub const fn bdmaen(&self) -> super::vals::Ahb4enrGpioaen { 6467 pub const fn bdmalpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
7042 let val = (self.0 >> 21usize) & 0x01; 6468 let val = (self.0 >> 21usize) & 0x01;
7043 super::vals::Ahb4enrGpioaen(val as u8) 6469 super::vals::Ahb4lpenrGpioalpen(val as u8)
7044 } 6470 }
7045 #[doc = "BDMA and DMAMUX2 Clock Enable"] 6471 #[doc = "BDMA Clock Enable During CSleep Mode"]
7046 pub fn set_bdmaen(&mut self, val: super::vals::Ahb4enrGpioaen) { 6472 pub fn set_bdmalpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
7047 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize); 6473 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize);
7048 } 6474 }
7049 #[doc = "ADC3 Peripheral Clocks Enable"] 6475 #[doc = "ADC3 Peripheral Clocks Enable During CSleep Mode"]
7050 pub const fn adc3en(&self) -> super::vals::Ahb4enrGpioaen { 6476 pub const fn adc3lpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
7051 let val = (self.0 >> 24usize) & 0x01; 6477 let val = (self.0 >> 24usize) & 0x01;
7052 super::vals::Ahb4enrGpioaen(val as u8) 6478 super::vals::Ahb4lpenrGpioalpen(val as u8)
7053 } 6479 }
7054 #[doc = "ADC3 Peripheral Clocks Enable"] 6480 #[doc = "ADC3 Peripheral Clocks Enable During CSleep Mode"]
7055 pub fn set_adc3en(&mut self, val: super::vals::Ahb4enrGpioaen) { 6481 pub fn set_adc3lpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
7056 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize); 6482 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
7057 } 6483 }
7058 #[doc = "HSEM peripheral clock enable"] 6484 #[doc = "Backup RAM Clock Enable During CSleep Mode"]
7059 pub const fn hsemen(&self) -> super::vals::Ahb4enrGpioaen { 6485 pub const fn bkpramlpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
7060 let val = (self.0 >> 25usize) & 0x01;
7061 super::vals::Ahb4enrGpioaen(val as u8)
7062 }
7063 #[doc = "HSEM peripheral clock enable"]
7064 pub fn set_hsemen(&mut self, val: super::vals::Ahb4enrGpioaen) {
7065 self.0 = (self.0 & !(0x01 << 25usize)) | (((val.0 as u32) & 0x01) << 25usize);
7066 }
7067 #[doc = "Backup RAM Clock Enable"]
7068 pub const fn bkpramen(&self) -> super::vals::Ahb4enrGpioaen {
7069 let val = (self.0 >> 28usize) & 0x01; 6486 let val = (self.0 >> 28usize) & 0x01;
7070 super::vals::Ahb4enrGpioaen(val as u8) 6487 super::vals::Ahb4lpenrGpioalpen(val as u8)
7071 } 6488 }
7072 #[doc = "Backup RAM Clock Enable"] 6489 #[doc = "Backup RAM Clock Enable During CSleep Mode"]
7073 pub fn set_bkpramen(&mut self, val: super::vals::Ahb4enrGpioaen) { 6490 pub fn set_bkpramlpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
7074 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize); 6491 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
7075 } 6492 }
6493 #[doc = "SRAM4 Clock Enable During CSleep Mode"]
6494 pub const fn sram4lpen(&self) -> super::vals::Ahb4lpenrGpioalpen {
6495 let val = (self.0 >> 29usize) & 0x01;
6496 super::vals::Ahb4lpenrGpioalpen(val as u8)
6497 }
6498 #[doc = "SRAM4 Clock Enable During CSleep Mode"]
6499 pub fn set_sram4lpen(&mut self, val: super::vals::Ahb4lpenrGpioalpen) {
6500 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize);
6501 }
7076 } 6502 }
7077 impl Default for Ahb4enr { 6503 impl Default for Ahb4lpenr {
7078 fn default() -> Ahb4enr { 6504 fn default() -> Ahb4lpenr {
7079 Ahb4enr(0) 6505 Ahb4lpenr(0)
7080 } 6506 }
7081 } 6507 }
7082 #[doc = "RCC APB1 Clock Register"] 6508 #[doc = "RCC AHB3 Sleep Clock Register"]
7083 #[repr(transparent)] 6509 #[repr(transparent)]
7084 #[derive(Copy, Clone, Eq, PartialEq)] 6510 #[derive(Copy, Clone, Eq, PartialEq)]
7085 pub struct Apb1henr(pub u32); 6511 pub struct C1Ahb3lpenr(pub u32);
7086 impl Apb1henr { 6512 impl C1Ahb3lpenr {
7087 #[doc = "Clock Recovery System peripheral clock enable"] 6513 #[doc = "MDMA Clock Enable During CSleep Mode"]
7088 pub const fn crsen(&self) -> super::vals::Apb1henrCrsen { 6514 pub const fn mdmalpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen {
7089 let val = (self.0 >> 1usize) & 0x01; 6515 let val = (self.0 >> 0usize) & 0x01;
7090 super::vals::Apb1henrCrsen(val as u8) 6516 super::vals::C1Ahb3lpenrMdmalpen(val as u8)
7091 }
7092 #[doc = "Clock Recovery System peripheral clock enable"]
7093 pub fn set_crsen(&mut self, val: super::vals::Apb1henrCrsen) {
7094 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
7095 }
7096 #[doc = "SWPMI Peripheral Clocks Enable"]
7097 pub const fn swpen(&self) -> super::vals::Apb1henrCrsen {
7098 let val = (self.0 >> 2usize) & 0x01;
7099 super::vals::Apb1henrCrsen(val as u8)
7100 } 6517 }
7101 #[doc = "SWPMI Peripheral Clocks Enable"] 6518 #[doc = "MDMA Clock Enable During CSleep Mode"]
7102 pub fn set_swpen(&mut self, val: super::vals::Apb1henrCrsen) { 6519 pub fn set_mdmalpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) {
7103 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize); 6520 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
7104 } 6521 }
7105 #[doc = "OPAMP peripheral clock enable"] 6522 #[doc = "DMA2D Clock Enable During CSleep Mode"]
7106 pub const fn opampen(&self) -> super::vals::Apb1henrCrsen { 6523 pub const fn dma2dlpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen {
7107 let val = (self.0 >> 4usize) & 0x01; 6524 let val = (self.0 >> 4usize) & 0x01;
7108 super::vals::Apb1henrCrsen(val as u8) 6525 super::vals::C1Ahb3lpenrMdmalpen(val as u8)
7109 } 6526 }
7110 #[doc = "OPAMP peripheral clock enable"] 6527 #[doc = "DMA2D Clock Enable During CSleep Mode"]
7111 pub fn set_opampen(&mut self, val: super::vals::Apb1henrCrsen) { 6528 pub fn set_dma2dlpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) {
7112 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 6529 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
7113 } 6530 }
7114 #[doc = "MDIOS peripheral clock enable"] 6531 #[doc = "JPGDEC Clock Enable During CSleep Mode"]
7115 pub const fn mdiosen(&self) -> super::vals::Apb1henrCrsen { 6532 pub const fn jpgdeclpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen {
7116 let val = (self.0 >> 5usize) & 0x01; 6533 let val = (self.0 >> 5usize) & 0x01;
7117 super::vals::Apb1henrCrsen(val as u8) 6534 super::vals::C1Ahb3lpenrMdmalpen(val as u8)
7118 } 6535 }
7119 #[doc = "MDIOS peripheral clock enable"] 6536 #[doc = "JPGDEC Clock Enable During CSleep Mode"]
7120 pub fn set_mdiosen(&mut self, val: super::vals::Apb1henrCrsen) { 6537 pub fn set_jpgdeclpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) {
7121 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 6538 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
7122 } 6539 }
7123 #[doc = "FDCAN Peripheral Clocks Enable"] 6540 #[doc = "Flash interface clock enable during csleep mode"]
7124 pub const fn fdcanen(&self) -> super::vals::Apb1henrCrsen { 6541 pub const fn flashpren(&self) -> bool {
7125 let val = (self.0 >> 8usize) & 0x01; 6542 let val = (self.0 >> 8usize) & 0x01;
7126 super::vals::Apb1henrCrsen(val as u8) 6543 val != 0
7127 }
7128 #[doc = "FDCAN Peripheral Clocks Enable"]
7129 pub fn set_fdcanen(&mut self, val: super::vals::Apb1henrCrsen) {
7130 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
7131 }
7132 }
7133 impl Default for Apb1henr {
7134 fn default() -> Apb1henr {
7135 Apb1henr(0)
7136 }
7137 }
7138 #[doc = "RCC APB4 Clock Register"]
7139 #[repr(transparent)]
7140 #[derive(Copy, Clone, Eq, PartialEq)]
7141 pub struct Apb4enr(pub u32);
7142 impl Apb4enr {
7143 #[doc = "SYSCFG peripheral clock enable"]
7144 pub const fn syscfgen(&self) -> super::vals::Apb4enrSyscfgen {
7145 let val = (self.0 >> 1usize) & 0x01;
7146 super::vals::Apb4enrSyscfgen(val as u8)
7147 }
7148 #[doc = "SYSCFG peripheral clock enable"]
7149 pub fn set_syscfgen(&mut self, val: super::vals::Apb4enrSyscfgen) {
7150 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
7151 }
7152 #[doc = "LPUART1 Peripheral Clocks Enable"]
7153 pub const fn lpuart1en(&self) -> super::vals::Apb4enrSyscfgen {
7154 let val = (self.0 >> 3usize) & 0x01;
7155 super::vals::Apb4enrSyscfgen(val as u8)
7156 }
7157 #[doc = "LPUART1 Peripheral Clocks Enable"]
7158 pub fn set_lpuart1en(&mut self, val: super::vals::Apb4enrSyscfgen) {
7159 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
7160 }
7161 #[doc = "SPI6 Peripheral Clocks Enable"]
7162 pub const fn spi6en(&self) -> super::vals::Apb4enrSyscfgen {
7163 let val = (self.0 >> 5usize) & 0x01;
7164 super::vals::Apb4enrSyscfgen(val as u8)
7165 }
7166 #[doc = "SPI6 Peripheral Clocks Enable"]
7167 pub fn set_spi6en(&mut self, val: super::vals::Apb4enrSyscfgen) {
7168 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
7169 }
7170 #[doc = "I2C4 Peripheral Clocks Enable"]
7171 pub const fn i2c4en(&self) -> super::vals::Apb4enrSyscfgen {
7172 let val = (self.0 >> 7usize) & 0x01;
7173 super::vals::Apb4enrSyscfgen(val as u8)
7174 }
7175 #[doc = "I2C4 Peripheral Clocks Enable"]
7176 pub fn set_i2c4en(&mut self, val: super::vals::Apb4enrSyscfgen) {
7177 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
7178 }
7179 #[doc = "LPTIM2 Peripheral Clocks Enable"]
7180 pub const fn lptim2en(&self) -> super::vals::Apb4enrSyscfgen {
7181 let val = (self.0 >> 9usize) & 0x01;
7182 super::vals::Apb4enrSyscfgen(val as u8)
7183 }
7184 #[doc = "LPTIM2 Peripheral Clocks Enable"]
7185 pub fn set_lptim2en(&mut self, val: super::vals::Apb4enrSyscfgen) {
7186 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
7187 }
7188 #[doc = "LPTIM3 Peripheral Clocks Enable"]
7189 pub const fn lptim3en(&self) -> super::vals::Apb4enrSyscfgen {
7190 let val = (self.0 >> 10usize) & 0x01;
7191 super::vals::Apb4enrSyscfgen(val as u8)
7192 }
7193 #[doc = "LPTIM3 Peripheral Clocks Enable"]
7194 pub fn set_lptim3en(&mut self, val: super::vals::Apb4enrSyscfgen) {
7195 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
7196 }
7197 #[doc = "LPTIM4 Peripheral Clocks Enable"]
7198 pub const fn lptim4en(&self) -> super::vals::Apb4enrSyscfgen {
7199 let val = (self.0 >> 11usize) & 0x01;
7200 super::vals::Apb4enrSyscfgen(val as u8)
7201 } 6544 }
7202 #[doc = "LPTIM4 Peripheral Clocks Enable"] 6545 #[doc = "Flash interface clock enable during csleep mode"]
7203 pub fn set_lptim4en(&mut self, val: super::vals::Apb4enrSyscfgen) { 6546 pub fn set_flashpren(&mut self, val: bool) {
7204 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize); 6547 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
7205 } 6548 }
7206 #[doc = "LPTIM5 Peripheral Clocks Enable"] 6549 #[doc = "FMC Peripheral Clocks Enable During CSleep Mode"]
7207 pub const fn lptim5en(&self) -> super::vals::Apb4enrSyscfgen { 6550 pub const fn fmclpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen {
7208 let val = (self.0 >> 12usize) & 0x01; 6551 let val = (self.0 >> 12usize) & 0x01;
7209 super::vals::Apb4enrSyscfgen(val as u8) 6552 super::vals::C1Ahb3lpenrMdmalpen(val as u8)
7210 } 6553 }
7211 #[doc = "LPTIM5 Peripheral Clocks Enable"] 6554 #[doc = "FMC Peripheral Clocks Enable During CSleep Mode"]
7212 pub fn set_lptim5en(&mut self, val: super::vals::Apb4enrSyscfgen) { 6555 pub fn set_fmclpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) {
7213 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize); 6556 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
7214 } 6557 }
7215 #[doc = "COMP1/2 peripheral clock enable"] 6558 #[doc = "QUADSPI and QUADSPI Delay Clock Enable During CSleep Mode"]
7216 pub const fn comp12en(&self) -> super::vals::Apb4enrSyscfgen { 6559 pub const fn qspilpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen {
7217 let val = (self.0 >> 14usize) & 0x01; 6560 let val = (self.0 >> 14usize) & 0x01;
7218 super::vals::Apb4enrSyscfgen(val as u8) 6561 super::vals::C1Ahb3lpenrMdmalpen(val as u8)
7219 } 6562 }
7220 #[doc = "COMP1/2 peripheral clock enable"] 6563 #[doc = "QUADSPI and QUADSPI Delay Clock Enable During CSleep Mode"]
7221 pub fn set_comp12en(&mut self, val: super::vals::Apb4enrSyscfgen) { 6564 pub fn set_qspilpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) {
7222 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 6565 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
7223 } 6566 }
7224 #[doc = "VREF peripheral clock enable"] 6567 #[doc = "SDMMC1 and SDMMC1 Delay Clock Enable During CSleep Mode"]
7225 pub const fn vrefen(&self) -> super::vals::Apb4enrSyscfgen { 6568 pub const fn sdmmc1lpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen {
7226 let val = (self.0 >> 15usize) & 0x01;
7227 super::vals::Apb4enrSyscfgen(val as u8)
7228 }
7229 #[doc = "VREF peripheral clock enable"]
7230 pub fn set_vrefen(&mut self, val: super::vals::Apb4enrSyscfgen) {
7231 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
7232 }
7233 #[doc = "RTC APB Clock Enable"]
7234 pub const fn rtcapben(&self) -> super::vals::Apb4enrSyscfgen {
7235 let val = (self.0 >> 16usize) & 0x01; 6569 let val = (self.0 >> 16usize) & 0x01;
7236 super::vals::Apb4enrSyscfgen(val as u8) 6570 super::vals::C1Ahb3lpenrMdmalpen(val as u8)
7237 } 6571 }
7238 #[doc = "RTC APB Clock Enable"] 6572 #[doc = "SDMMC1 and SDMMC1 Delay Clock Enable During CSleep Mode"]
7239 pub fn set_rtcapben(&mut self, val: super::vals::Apb4enrSyscfgen) { 6573 pub fn set_sdmmc1lpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) {
7240 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize); 6574 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
7241 } 6575 }
7242 #[doc = "SAI4 Peripheral Clocks Enable"] 6576 #[doc = "D1DTCM1 Block Clock Enable During CSleep mode"]
7243 pub const fn sai4en(&self) -> super::vals::Apb4enrSyscfgen { 6577 pub const fn d1dtcm1lpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen {
7244 let val = (self.0 >> 21usize) & 0x01; 6578 let val = (self.0 >> 28usize) & 0x01;
7245 super::vals::Apb4enrSyscfgen(val as u8) 6579 super::vals::C1Ahb3lpenrMdmalpen(val as u8)
7246 } 6580 }
7247 #[doc = "SAI4 Peripheral Clocks Enable"] 6581 #[doc = "D1DTCM1 Block Clock Enable During CSleep mode"]
7248 pub fn set_sai4en(&mut self, val: super::vals::Apb4enrSyscfgen) { 6582 pub fn set_d1dtcm1lpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) {
7249 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize); 6583 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
7250 } 6584 }
7251 } 6585 #[doc = "D1 DTCM2 Block Clock Enable During CSleep mode"]
7252 impl Default for Apb4enr { 6586 pub const fn dtcm2lpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen {
7253 fn default() -> Apb4enr { 6587 let val = (self.0 >> 29usize) & 0x01;
7254 Apb4enr(0) 6588 super::vals::C1Ahb3lpenrMdmalpen(val as u8)
7255 } 6589 }
7256 } 6590 #[doc = "D1 DTCM2 Block Clock Enable During CSleep mode"]
7257 #[doc = "RCC Clock Recovery RC Register"] 6591 pub fn set_dtcm2lpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) {
7258 #[repr(transparent)] 6592 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize);
7259 #[derive(Copy, Clone, Eq, PartialEq)]
7260 pub struct Crrcr(pub u32);
7261 impl Crrcr {
7262 #[doc = "Internal RC 48 MHz clock calibration"]
7263 pub const fn hsi48cal(&self) -> u16 {
7264 let val = (self.0 >> 0usize) & 0x03ff;
7265 val as u16
7266 } 6593 }
7267 #[doc = "Internal RC 48 MHz clock calibration"] 6594 #[doc = "D1ITCM Block Clock Enable During CSleep mode"]
7268 pub fn set_hsi48cal(&mut self, val: u16) { 6595 pub const fn itcmlpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen {
7269 self.0 = (self.0 & !(0x03ff << 0usize)) | (((val as u32) & 0x03ff) << 0usize); 6596 let val = (self.0 >> 30usize) & 0x01;
6597 super::vals::C1Ahb3lpenrMdmalpen(val as u8)
6598 }
6599 #[doc = "D1ITCM Block Clock Enable During CSleep mode"]
6600 pub fn set_itcmlpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) {
6601 self.0 = (self.0 & !(0x01 << 30usize)) | (((val.0 as u32) & 0x01) << 30usize);
6602 }
6603 #[doc = "AXISRAM Block Clock Enable During CSleep mode"]
6604 pub const fn axisramlpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen {
6605 let val = (self.0 >> 31usize) & 0x01;
6606 super::vals::C1Ahb3lpenrMdmalpen(val as u8)
6607 }
6608 #[doc = "AXISRAM Block Clock Enable During CSleep mode"]
6609 pub fn set_axisramlpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) {
6610 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize);
7270 } 6611 }
7271 } 6612 }
7272 impl Default for Crrcr { 6613 impl Default for C1Ahb3lpenr {
7273 fn default() -> Crrcr { 6614 fn default() -> C1Ahb3lpenr {
7274 Crrcr(0) 6615 C1Ahb3lpenr(0)
7275 } 6616 }
7276 } 6617 }
7277 #[doc = "RCC Reset Status Register"] 6618 #[doc = "RCC Clock Source Interrupt Enable Register"]
7278 #[repr(transparent)] 6619 #[repr(transparent)]
7279 #[derive(Copy, Clone, Eq, PartialEq)] 6620 #[derive(Copy, Clone, Eq, PartialEq)]
7280 pub struct Rsr(pub u32); 6621 pub struct Cier(pub u32);
7281 impl Rsr { 6622 impl Cier {
7282 #[doc = "Remove reset flag"] 6623 #[doc = "LSI ready Interrupt Enable"]
7283 pub const fn rmvf(&self) -> super::vals::RsrRmvf { 6624 pub const fn lsirdyie(&self) -> super::vals::Lsirdyie {
7284 let val = (self.0 >> 16usize) & 0x01; 6625 let val = (self.0 >> 0usize) & 0x01;
7285 super::vals::RsrRmvf(val as u8) 6626 super::vals::Lsirdyie(val as u8)
7286 }
7287 #[doc = "Remove reset flag"]
7288 pub fn set_rmvf(&mut self, val: super::vals::RsrRmvf) {
7289 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
7290 }
7291 #[doc = "CPU reset flag"]
7292 pub const fn cpurstf(&self) -> bool {
7293 let val = (self.0 >> 17usize) & 0x01;
7294 val != 0
7295 }
7296 #[doc = "CPU reset flag"]
7297 pub fn set_cpurstf(&mut self, val: bool) {
7298 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
7299 }
7300 #[doc = "D1 domain power switch reset flag"]
7301 pub const fn d1rstf(&self) -> bool {
7302 let val = (self.0 >> 19usize) & 0x01;
7303 val != 0
7304 }
7305 #[doc = "D1 domain power switch reset flag"]
7306 pub fn set_d1rstf(&mut self, val: bool) {
7307 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize);
7308 }
7309 #[doc = "D2 domain power switch reset flag"]
7310 pub const fn d2rstf(&self) -> bool {
7311 let val = (self.0 >> 20usize) & 0x01;
7312 val != 0
7313 } 6627 }
7314 #[doc = "D2 domain power switch reset flag"] 6628 #[doc = "LSI ready Interrupt Enable"]
7315 pub fn set_d2rstf(&mut self, val: bool) { 6629 pub fn set_lsirdyie(&mut self, val: super::vals::Lsirdyie) {
7316 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize); 6630 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
7317 } 6631 }
7318 #[doc = "BOR reset flag"] 6632 #[doc = "LSE ready Interrupt Enable"]
7319 pub const fn borrstf(&self) -> bool { 6633 pub const fn lserdyie(&self) -> super::vals::Lsirdyie {
7320 let val = (self.0 >> 21usize) & 0x01; 6634 let val = (self.0 >> 1usize) & 0x01;
7321 val != 0 6635 super::vals::Lsirdyie(val as u8)
7322 } 6636 }
7323 #[doc = "BOR reset flag"] 6637 #[doc = "LSE ready Interrupt Enable"]
7324 pub fn set_borrstf(&mut self, val: bool) { 6638 pub fn set_lserdyie(&mut self, val: super::vals::Lsirdyie) {
7325 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize); 6639 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
7326 } 6640 }
7327 #[doc = "Pin reset flag (NRST)"] 6641 #[doc = "HSI ready Interrupt Enable"]
7328 pub const fn pinrstf(&self) -> bool { 6642 pub const fn hsirdyie(&self) -> super::vals::Lsirdyie {
7329 let val = (self.0 >> 22usize) & 0x01; 6643 let val = (self.0 >> 2usize) & 0x01;
7330 val != 0 6644 super::vals::Lsirdyie(val as u8)
7331 } 6645 }
7332 #[doc = "Pin reset flag (NRST)"] 6646 #[doc = "HSI ready Interrupt Enable"]
7333 pub fn set_pinrstf(&mut self, val: bool) { 6647 pub fn set_hsirdyie(&mut self, val: super::vals::Lsirdyie) {
7334 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize); 6648 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
7335 } 6649 }
7336 #[doc = "POR/PDR reset flag"] 6650 #[doc = "HSE ready Interrupt Enable"]
7337 pub const fn porrstf(&self) -> bool { 6651 pub const fn hserdyie(&self) -> super::vals::Lsirdyie {
7338 let val = (self.0 >> 23usize) & 0x01; 6652 let val = (self.0 >> 3usize) & 0x01;
7339 val != 0 6653 super::vals::Lsirdyie(val as u8)
7340 } 6654 }
7341 #[doc = "POR/PDR reset flag"] 6655 #[doc = "HSE ready Interrupt Enable"]
7342 pub fn set_porrstf(&mut self, val: bool) { 6656 pub fn set_hserdyie(&mut self, val: super::vals::Lsirdyie) {
7343 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize); 6657 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
7344 } 6658 }
7345 #[doc = "System reset from CPU reset flag"] 6659 #[doc = "CSI ready Interrupt Enable"]
7346 pub const fn sftrstf(&self) -> bool { 6660 pub const fn csirdyie(&self) -> super::vals::Lsirdyie {
7347 let val = (self.0 >> 24usize) & 0x01; 6661 let val = (self.0 >> 4usize) & 0x01;
7348 val != 0 6662 super::vals::Lsirdyie(val as u8)
7349 } 6663 }
7350 #[doc = "System reset from CPU reset flag"] 6664 #[doc = "CSI ready Interrupt Enable"]
7351 pub fn set_sftrstf(&mut self, val: bool) { 6665 pub fn set_csirdyie(&mut self, val: super::vals::Lsirdyie) {
7352 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize); 6666 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
7353 } 6667 }
7354 #[doc = "Independent Watchdog reset flag"] 6668 #[doc = "RC48 ready Interrupt Enable"]
7355 pub const fn iwdg1rstf(&self) -> bool { 6669 pub const fn hsi48rdyie(&self) -> super::vals::Lsirdyie {
7356 let val = (self.0 >> 26usize) & 0x01; 6670 let val = (self.0 >> 5usize) & 0x01;
7357 val != 0 6671 super::vals::Lsirdyie(val as u8)
7358 } 6672 }
7359 #[doc = "Independent Watchdog reset flag"] 6673 #[doc = "RC48 ready Interrupt Enable"]
7360 pub fn set_iwdg1rstf(&mut self, val: bool) { 6674 pub fn set_hsi48rdyie(&mut self, val: super::vals::Lsirdyie) {
7361 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize); 6675 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
7362 } 6676 }
7363 #[doc = "Window Watchdog reset flag"] 6677 #[doc = "PLL1 ready Interrupt Enable"]
7364 pub const fn wwdg1rstf(&self) -> bool { 6678 pub fn pllrdyie(&self, n: usize) -> super::vals::Lsirdyie {
7365 let val = (self.0 >> 28usize) & 0x01; 6679 assert!(n < 3usize);
7366 val != 0 6680 let offs = 6usize + n * 1usize;
6681 let val = (self.0 >> offs) & 0x01;
6682 super::vals::Lsirdyie(val as u8)
7367 } 6683 }
7368 #[doc = "Window Watchdog reset flag"] 6684 #[doc = "PLL1 ready Interrupt Enable"]
7369 pub fn set_wwdg1rstf(&mut self, val: bool) { 6685 pub fn set_pllrdyie(&mut self, n: usize, val: super::vals::Lsirdyie) {
7370 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize); 6686 assert!(n < 3usize);
6687 let offs = 6usize + n * 1usize;
6688 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
7371 } 6689 }
7372 #[doc = "Reset due to illegal D1 DStandby or CPU CStop flag"] 6690 #[doc = "LSE clock security system Interrupt Enable"]
7373 pub const fn lpwrrstf(&self) -> bool { 6691 pub const fn lsecssie(&self) -> super::vals::Lsirdyie {
7374 let val = (self.0 >> 30usize) & 0x01; 6692 let val = (self.0 >> 9usize) & 0x01;
7375 val != 0 6693 super::vals::Lsirdyie(val as u8)
7376 } 6694 }
7377 #[doc = "Reset due to illegal D1 DStandby or CPU CStop flag"] 6695 #[doc = "LSE clock security system Interrupt Enable"]
7378 pub fn set_lpwrrstf(&mut self, val: bool) { 6696 pub fn set_lsecssie(&mut self, val: super::vals::Lsirdyie) {
7379 self.0 = (self.0 & !(0x01 << 30usize)) | (((val as u32) & 0x01) << 30usize); 6697 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
7380 } 6698 }
7381 } 6699 }
7382 impl Default for Rsr { 6700 impl Default for Cier {
7383 fn default() -> Rsr { 6701 fn default() -> Cier {
7384 Rsr(0) 6702 Cier(0)
7385 } 6703 }
7386 } 6704 }
7387 #[doc = "RCC Clock Control and Status Register"] 6705 #[doc = "RCC APB1 High Sleep Clock Register"]
7388 #[repr(transparent)] 6706 #[repr(transparent)]
7389 #[derive(Copy, Clone, Eq, PartialEq)] 6707 #[derive(Copy, Clone, Eq, PartialEq)]
7390 pub struct Csr(pub u32); 6708 pub struct C1Apb1hlpenr(pub u32);
7391 impl Csr { 6709 impl C1Apb1hlpenr {
7392 #[doc = "LSI oscillator enable"] 6710 #[doc = "Clock Recovery System peripheral clock enable during CSleep mode"]
7393 pub const fn lsion(&self) -> super::vals::Lsion { 6711 pub const fn crslpen(&self) -> super::vals::C1Apb1hlpenrCrslpen {
7394 let val = (self.0 >> 0usize) & 0x01; 6712 let val = (self.0 >> 1usize) & 0x01;
7395 super::vals::Lsion(val as u8) 6713 super::vals::C1Apb1hlpenrCrslpen(val as u8)
7396 } 6714 }
7397 #[doc = "LSI oscillator enable"] 6715 #[doc = "Clock Recovery System peripheral clock enable during CSleep mode"]
7398 pub fn set_lsion(&mut self, val: super::vals::Lsion) { 6716 pub fn set_crslpen(&mut self, val: super::vals::C1Apb1hlpenrCrslpen) {
7399 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 6717 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
7400 } 6718 }
7401 #[doc = "LSI oscillator ready"] 6719 #[doc = "SWPMI Peripheral Clocks Enable During CSleep Mode"]
7402 pub const fn lsirdy(&self) -> bool { 6720 pub const fn swplpen(&self) -> super::vals::C1Apb1hlpenrCrslpen {
7403 let val = (self.0 >> 1usize) & 0x01; 6721 let val = (self.0 >> 2usize) & 0x01;
7404 val != 0 6722 super::vals::C1Apb1hlpenrCrslpen(val as u8)
7405 } 6723 }
7406 #[doc = "LSI oscillator ready"] 6724 #[doc = "SWPMI Peripheral Clocks Enable During CSleep Mode"]
7407 pub fn set_lsirdy(&mut self, val: bool) { 6725 pub fn set_swplpen(&mut self, val: super::vals::C1Apb1hlpenrCrslpen) {
7408 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 6726 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
7409 } 6727 }
7410 } 6728 #[doc = "OPAMP peripheral clock enable during CSleep mode"]
7411 impl Default for Csr { 6729 pub const fn opamplpen(&self) -> super::vals::C1Apb1hlpenrCrslpen {
7412 fn default() -> Csr { 6730 let val = (self.0 >> 4usize) & 0x01;
7413 Csr(0) 6731 super::vals::C1Apb1hlpenrCrslpen(val as u8)
7414 } 6732 }
7415 } 6733 #[doc = "OPAMP peripheral clock enable during CSleep mode"]
7416 #[doc = "RCC Domain 2 Clock Configuration Register"] 6734 pub fn set_opamplpen(&mut self, val: super::vals::C1Apb1hlpenrCrslpen) {
7417 #[repr(transparent)] 6735 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
7418 #[derive(Copy, Clone, Eq, PartialEq)]
7419 pub struct D2cfgr(pub u32);
7420 impl D2cfgr {
7421 #[doc = "D2 domain APB1 prescaler"]
7422 pub const fn d2ppre1(&self) -> super::vals::D2ppre1 {
7423 let val = (self.0 >> 4usize) & 0x07;
7424 super::vals::D2ppre1(val as u8)
7425 } 6736 }
7426 #[doc = "D2 domain APB1 prescaler"] 6737 #[doc = "MDIOS peripheral clock enable during CSleep mode"]
7427 pub fn set_d2ppre1(&mut self, val: super::vals::D2ppre1) { 6738 pub const fn mdioslpen(&self) -> super::vals::C1Apb1hlpenrCrslpen {
7428 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize); 6739 let val = (self.0 >> 5usize) & 0x01;
6740 super::vals::C1Apb1hlpenrCrslpen(val as u8)
7429 } 6741 }
7430 #[doc = "D2 domain APB2 prescaler"] 6742 #[doc = "MDIOS peripheral clock enable during CSleep mode"]
7431 pub const fn d2ppre2(&self) -> super::vals::D2ppre1 { 6743 pub fn set_mdioslpen(&mut self, val: super::vals::C1Apb1hlpenrCrslpen) {
7432 let val = (self.0 >> 8usize) & 0x07; 6744 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
7433 super::vals::D2ppre1(val as u8)
7434 } 6745 }
7435 #[doc = "D2 domain APB2 prescaler"] 6746 #[doc = "FDCAN Peripheral Clocks Enable During CSleep Mode"]
7436 pub fn set_d2ppre2(&mut self, val: super::vals::D2ppre1) { 6747 pub const fn fdcanlpen(&self) -> super::vals::C1Apb1hlpenrCrslpen {
7437 self.0 = (self.0 & !(0x07 << 8usize)) | (((val.0 as u32) & 0x07) << 8usize); 6748 let val = (self.0 >> 8usize) & 0x01;
6749 super::vals::C1Apb1hlpenrCrslpen(val as u8)
6750 }
6751 #[doc = "FDCAN Peripheral Clocks Enable During CSleep Mode"]
6752 pub fn set_fdcanlpen(&mut self, val: super::vals::C1Apb1hlpenrCrslpen) {
6753 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
7438 } 6754 }
7439 } 6755 }
7440 impl Default for D2cfgr { 6756 impl Default for C1Apb1hlpenr {
7441 fn default() -> D2cfgr { 6757 fn default() -> C1Apb1hlpenr {
7442 D2cfgr(0) 6758 C1Apb1hlpenr(0)
7443 } 6759 }
7444 } 6760 }
7445 #[doc = "RCC APB1 Low Sleep Clock Register"] 6761 #[doc = "RCC APB4 Sleep Clock Register"]
7446 #[repr(transparent)] 6762 #[repr(transparent)]
7447 #[derive(Copy, Clone, Eq, PartialEq)] 6763 #[derive(Copy, Clone, Eq, PartialEq)]
7448 pub struct C1Apb1llpenr(pub u32); 6764 pub struct C1Apb4lpenr(pub u32);
7449 impl C1Apb1llpenr { 6765 impl C1Apb4lpenr {
7450 #[doc = "TIM2 peripheral clock enable during CSleep mode"] 6766 #[doc = "SYSCFG peripheral clock enable during CSleep mode"]
7451 pub const fn tim2lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen { 6767 pub const fn syscfglpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen {
7452 let val = (self.0 >> 0usize) & 0x01;
7453 super::vals::C1Apb1llpenrTim2lpen(val as u8)
7454 }
7455 #[doc = "TIM2 peripheral clock enable during CSleep mode"]
7456 pub fn set_tim2lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
7457 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
7458 }
7459 #[doc = "TIM3 peripheral clock enable during CSleep mode"]
7460 pub const fn tim3lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
7461 let val = (self.0 >> 1usize) & 0x01; 6768 let val = (self.0 >> 1usize) & 0x01;
7462 super::vals::C1Apb1llpenrTim2lpen(val as u8) 6769 super::vals::C1Apb4lpenrSyscfglpen(val as u8)
7463 } 6770 }
7464 #[doc = "TIM3 peripheral clock enable during CSleep mode"] 6771 #[doc = "SYSCFG peripheral clock enable during CSleep mode"]
7465 pub fn set_tim3lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) { 6772 pub fn set_syscfglpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) {
7466 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 6773 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
7467 } 6774 }
7468 #[doc = "TIM4 peripheral clock enable during CSleep mode"] 6775 #[doc = "LPUART1 Peripheral Clocks Enable During CSleep Mode"]
7469 pub const fn tim4lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen { 6776 pub const fn lpuart1lpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen {
7470 let val = (self.0 >> 2usize) & 0x01;
7471 super::vals::C1Apb1llpenrTim2lpen(val as u8)
7472 }
7473 #[doc = "TIM4 peripheral clock enable during CSleep mode"]
7474 pub fn set_tim4lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
7475 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
7476 }
7477 #[doc = "TIM5 peripheral clock enable during CSleep mode"]
7478 pub const fn tim5lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
7479 let val = (self.0 >> 3usize) & 0x01; 6777 let val = (self.0 >> 3usize) & 0x01;
7480 super::vals::C1Apb1llpenrTim2lpen(val as u8) 6778 super::vals::C1Apb4lpenrSyscfglpen(val as u8)
7481 } 6779 }
7482 #[doc = "TIM5 peripheral clock enable during CSleep mode"] 6780 #[doc = "LPUART1 Peripheral Clocks Enable During CSleep Mode"]
7483 pub fn set_tim5lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) { 6781 pub fn set_lpuart1lpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) {
7484 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize); 6782 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
7485 } 6783 }
7486 #[doc = "TIM6 peripheral clock enable during CSleep mode"] 6784 #[doc = "SPI6 Peripheral Clocks Enable During CSleep Mode"]
7487 pub const fn tim6lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen { 6785 pub const fn spi6lpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen {
7488 let val = (self.0 >> 4usize) & 0x01;
7489 super::vals::C1Apb1llpenrTim2lpen(val as u8)
7490 }
7491 #[doc = "TIM6 peripheral clock enable during CSleep mode"]
7492 pub fn set_tim6lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
7493 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
7494 }
7495 #[doc = "TIM7 peripheral clock enable during CSleep mode"]
7496 pub const fn tim7lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
7497 let val = (self.0 >> 5usize) & 0x01; 6786 let val = (self.0 >> 5usize) & 0x01;
7498 super::vals::C1Apb1llpenrTim2lpen(val as u8) 6787 super::vals::C1Apb4lpenrSyscfglpen(val as u8)
7499 } 6788 }
7500 #[doc = "TIM7 peripheral clock enable during CSleep mode"] 6789 #[doc = "SPI6 Peripheral Clocks Enable During CSleep Mode"]
7501 pub fn set_tim7lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) { 6790 pub fn set_spi6lpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) {
7502 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 6791 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
7503 } 6792 }
7504 #[doc = "TIM12 peripheral clock enable during CSleep mode"] 6793 #[doc = "I2C4 Peripheral Clocks Enable During CSleep Mode"]
7505 pub const fn tim12lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen { 6794 pub const fn i2c4lpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen {
7506 let val = (self.0 >> 6usize) & 0x01;
7507 super::vals::C1Apb1llpenrTim2lpen(val as u8)
7508 }
7509 #[doc = "TIM12 peripheral clock enable during CSleep mode"]
7510 pub fn set_tim12lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
7511 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
7512 }
7513 #[doc = "TIM13 peripheral clock enable during CSleep mode"]
7514 pub const fn tim13lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
7515 let val = (self.0 >> 7usize) & 0x01; 6795 let val = (self.0 >> 7usize) & 0x01;
7516 super::vals::C1Apb1llpenrTim2lpen(val as u8) 6796 super::vals::C1Apb4lpenrSyscfglpen(val as u8)
7517 } 6797 }
7518 #[doc = "TIM13 peripheral clock enable during CSleep mode"] 6798 #[doc = "I2C4 Peripheral Clocks Enable During CSleep Mode"]
7519 pub fn set_tim13lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) { 6799 pub fn set_i2c4lpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) {
7520 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 6800 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
7521 } 6801 }
7522 #[doc = "TIM14 peripheral clock enable during CSleep mode"] 6802 #[doc = "LPTIM2 Peripheral Clocks Enable During CSleep Mode"]
7523 pub const fn tim14lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen { 6803 pub const fn lptim2lpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen {
7524 let val = (self.0 >> 8usize) & 0x01;
7525 super::vals::C1Apb1llpenrTim2lpen(val as u8)
7526 }
7527 #[doc = "TIM14 peripheral clock enable during CSleep mode"]
7528 pub fn set_tim14lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
7529 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
7530 }
7531 #[doc = "LPTIM1 Peripheral Clocks Enable During CSleep Mode"]
7532 pub const fn lptim1lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
7533 let val = (self.0 >> 9usize) & 0x01; 6804 let val = (self.0 >> 9usize) & 0x01;
7534 super::vals::C1Apb1llpenrTim2lpen(val as u8) 6805 super::vals::C1Apb4lpenrSyscfglpen(val as u8)
7535 } 6806 }
7536 #[doc = "LPTIM1 Peripheral Clocks Enable During CSleep Mode"] 6807 #[doc = "LPTIM2 Peripheral Clocks Enable During CSleep Mode"]
7537 pub fn set_lptim1lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) { 6808 pub fn set_lptim2lpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) {
7538 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize); 6809 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
7539 } 6810 }
7540 #[doc = "SPI2 Peripheral Clocks Enable During CSleep Mode"] 6811 #[doc = "LPTIM3 Peripheral Clocks Enable During CSleep Mode"]
7541 pub const fn spi2lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen { 6812 pub const fn lptim3lpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen {
6813 let val = (self.0 >> 10usize) & 0x01;
6814 super::vals::C1Apb4lpenrSyscfglpen(val as u8)
6815 }
6816 #[doc = "LPTIM3 Peripheral Clocks Enable During CSleep Mode"]
6817 pub fn set_lptim3lpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) {
6818 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
6819 }
6820 #[doc = "LPTIM4 Peripheral Clocks Enable During CSleep Mode"]
6821 pub const fn lptim4lpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen {
6822 let val = (self.0 >> 11usize) & 0x01;
6823 super::vals::C1Apb4lpenrSyscfglpen(val as u8)
6824 }
6825 #[doc = "LPTIM4 Peripheral Clocks Enable During CSleep Mode"]
6826 pub fn set_lptim4lpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) {
6827 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
6828 }
6829 #[doc = "LPTIM5 Peripheral Clocks Enable During CSleep Mode"]
6830 pub const fn lptim5lpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen {
6831 let val = (self.0 >> 12usize) & 0x01;
6832 super::vals::C1Apb4lpenrSyscfglpen(val as u8)
6833 }
6834 #[doc = "LPTIM5 Peripheral Clocks Enable During CSleep Mode"]
6835 pub fn set_lptim5lpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) {
6836 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
6837 }
6838 #[doc = "COMP1/2 peripheral clock enable during CSleep mode"]
6839 pub const fn comp12lpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen {
7542 let val = (self.0 >> 14usize) & 0x01; 6840 let val = (self.0 >> 14usize) & 0x01;
7543 super::vals::C1Apb1llpenrTim2lpen(val as u8) 6841 super::vals::C1Apb4lpenrSyscfglpen(val as u8)
7544 } 6842 }
7545 #[doc = "SPI2 Peripheral Clocks Enable During CSleep Mode"] 6843 #[doc = "COMP1/2 peripheral clock enable during CSleep mode"]
7546 pub fn set_spi2lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) { 6844 pub fn set_comp12lpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) {
7547 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 6845 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
7548 } 6846 }
7549 #[doc = "SPI3 Peripheral Clocks Enable During CSleep Mode"] 6847 #[doc = "VREF peripheral clock enable during CSleep mode"]
7550 pub const fn spi3lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen { 6848 pub const fn vreflpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen {
7551 let val = (self.0 >> 15usize) & 0x01; 6849 let val = (self.0 >> 15usize) & 0x01;
7552 super::vals::C1Apb1llpenrTim2lpen(val as u8) 6850 super::vals::C1Apb4lpenrSyscfglpen(val as u8)
7553 } 6851 }
7554 #[doc = "SPI3 Peripheral Clocks Enable During CSleep Mode"] 6852 #[doc = "VREF peripheral clock enable during CSleep mode"]
7555 pub fn set_spi3lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) { 6853 pub fn set_vreflpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) {
7556 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize); 6854 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
7557 } 6855 }
7558 #[doc = "SPDIFRX Peripheral Clocks Enable During CSleep Mode"] 6856 #[doc = "RTC APB Clock Enable During CSleep Mode"]
7559 pub const fn spdifrxlpen(&self) -> super::vals::C1Apb1llpenrTim2lpen { 6857 pub const fn rtcapblpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen {
7560 let val = (self.0 >> 16usize) & 0x01; 6858 let val = (self.0 >> 16usize) & 0x01;
7561 super::vals::C1Apb1llpenrTim2lpen(val as u8) 6859 super::vals::C1Apb4lpenrSyscfglpen(val as u8)
7562 } 6860 }
7563 #[doc = "SPDIFRX Peripheral Clocks Enable During CSleep Mode"] 6861 #[doc = "RTC APB Clock Enable During CSleep Mode"]
7564 pub fn set_spdifrxlpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) { 6862 pub fn set_rtcapblpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) {
7565 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize); 6863 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
7566 } 6864 }
7567 #[doc = "USART2 Peripheral Clocks Enable During CSleep Mode"] 6865 #[doc = "SAI4 Peripheral Clocks Enable During CSleep Mode"]
7568 pub const fn usart2lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen { 6866 pub const fn sai4lpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen {
7569 let val = (self.0 >> 17usize) & 0x01; 6867 let val = (self.0 >> 21usize) & 0x01;
7570 super::vals::C1Apb1llpenrTim2lpen(val as u8) 6868 super::vals::C1Apb4lpenrSyscfglpen(val as u8)
7571 }
7572 #[doc = "USART2 Peripheral Clocks Enable During CSleep Mode"]
7573 pub fn set_usart2lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
7574 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize);
7575 } 6869 }
7576 #[doc = "USART3 Peripheral Clocks Enable During CSleep Mode"] 6870 #[doc = "SAI4 Peripheral Clocks Enable During CSleep Mode"]
7577 pub const fn usart3lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen { 6871 pub fn set_sai4lpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) {
7578 let val = (self.0 >> 18usize) & 0x01; 6872 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize);
7579 super::vals::C1Apb1llpenrTim2lpen(val as u8)
7580 } 6873 }
7581 #[doc = "USART3 Peripheral Clocks Enable During CSleep Mode"] 6874 }
7582 pub fn set_usart3lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) { 6875 impl Default for C1Apb4lpenr {
7583 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize); 6876 fn default() -> C1Apb4lpenr {
6877 C1Apb4lpenr(0)
7584 } 6878 }
7585 #[doc = "UART4 Peripheral Clocks Enable During CSleep Mode"] 6879 }
7586 pub const fn uart4lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen { 6880 #[doc = "RCC AHB1 Peripheral Reset Register"]
7587 let val = (self.0 >> 19usize) & 0x01; 6881 #[repr(transparent)]
7588 super::vals::C1Apb1llpenrTim2lpen(val as u8) 6882 #[derive(Copy, Clone, Eq, PartialEq)]
6883 pub struct Ahb1rstr(pub u32);
6884 impl Ahb1rstr {
6885 #[doc = "DMA1 block reset"]
6886 pub const fn dma1rst(&self) -> super::vals::Dma1rst {
6887 let val = (self.0 >> 0usize) & 0x01;
6888 super::vals::Dma1rst(val as u8)
7589 } 6889 }
7590 #[doc = "UART4 Peripheral Clocks Enable During CSleep Mode"] 6890 #[doc = "DMA1 block reset"]
7591 pub fn set_uart4lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) { 6891 pub fn set_dma1rst(&mut self, val: super::vals::Dma1rst) {
7592 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize); 6892 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
7593 } 6893 }
7594 #[doc = "UART5 Peripheral Clocks Enable During CSleep Mode"] 6894 #[doc = "DMA2 block reset"]
7595 pub const fn uart5lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen { 6895 pub const fn dma2rst(&self) -> super::vals::Dma1rst {
7596 let val = (self.0 >> 20usize) & 0x01; 6896 let val = (self.0 >> 1usize) & 0x01;
7597 super::vals::C1Apb1llpenrTim2lpen(val as u8) 6897 super::vals::Dma1rst(val as u8)
7598 } 6898 }
7599 #[doc = "UART5 Peripheral Clocks Enable During CSleep Mode"] 6899 #[doc = "DMA2 block reset"]
7600 pub fn set_uart5lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) { 6900 pub fn set_dma2rst(&mut self, val: super::vals::Dma1rst) {
7601 self.0 = (self.0 & !(0x01 << 20usize)) | (((val.0 as u32) & 0x01) << 20usize); 6901 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
7602 } 6902 }
7603 #[doc = "I2C1 Peripheral Clocks Enable During CSleep Mode"] 6903 #[doc = "ADC1&2 block reset"]
7604 pub const fn i2c1lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen { 6904 pub const fn adc12rst(&self) -> super::vals::Dma1rst {
7605 let val = (self.0 >> 21usize) & 0x01; 6905 let val = (self.0 >> 5usize) & 0x01;
7606 super::vals::C1Apb1llpenrTim2lpen(val as u8) 6906 super::vals::Dma1rst(val as u8)
7607 } 6907 }
7608 #[doc = "I2C1 Peripheral Clocks Enable During CSleep Mode"] 6908 #[doc = "ADC1&2 block reset"]
7609 pub fn set_i2c1lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) { 6909 pub fn set_adc12rst(&mut self, val: super::vals::Dma1rst) {
7610 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize); 6910 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
7611 } 6911 }
7612 #[doc = "I2C2 Peripheral Clocks Enable During CSleep Mode"] 6912 #[doc = "ETH1MAC block reset"]
7613 pub const fn i2c2lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen { 6913 pub const fn eth1macrst(&self) -> super::vals::Dma1rst {
7614 let val = (self.0 >> 22usize) & 0x01; 6914 let val = (self.0 >> 15usize) & 0x01;
7615 super::vals::C1Apb1llpenrTim2lpen(val as u8) 6915 super::vals::Dma1rst(val as u8)
7616 } 6916 }
7617 #[doc = "I2C2 Peripheral Clocks Enable During CSleep Mode"] 6917 #[doc = "ETH1MAC block reset"]
7618 pub fn set_i2c2lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) { 6918 pub fn set_eth1macrst(&mut self, val: super::vals::Dma1rst) {
7619 self.0 = (self.0 & !(0x01 << 22usize)) | (((val.0 as u32) & 0x01) << 22usize); 6919 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
7620 } 6920 }
7621 #[doc = "I2C3 Peripheral Clocks Enable During CSleep Mode"] 6921 #[doc = "USB1OTG block reset"]
7622 pub const fn i2c3lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen { 6922 pub const fn usb1otgrst(&self) -> super::vals::Dma1rst {
7623 let val = (self.0 >> 23usize) & 0x01; 6923 let val = (self.0 >> 25usize) & 0x01;
7624 super::vals::C1Apb1llpenrTim2lpen(val as u8) 6924 super::vals::Dma1rst(val as u8)
7625 } 6925 }
7626 #[doc = "I2C3 Peripheral Clocks Enable During CSleep Mode"] 6926 #[doc = "USB1OTG block reset"]
7627 pub fn set_i2c3lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) { 6927 pub fn set_usb1otgrst(&mut self, val: super::vals::Dma1rst) {
7628 self.0 = (self.0 & !(0x01 << 23usize)) | (((val.0 as u32) & 0x01) << 23usize); 6928 self.0 = (self.0 & !(0x01 << 25usize)) | (((val.0 as u32) & 0x01) << 25usize);
7629 } 6929 }
7630 #[doc = "HDMI-CEC Peripheral Clocks Enable During CSleep Mode"] 6930 #[doc = "USB2OTG block reset"]
7631 pub const fn ceclpen(&self) -> super::vals::C1Apb1llpenrTim2lpen { 6931 pub const fn usb2otgrst(&self) -> super::vals::Dma1rst {
7632 let val = (self.0 >> 27usize) & 0x01; 6932 let val = (self.0 >> 27usize) & 0x01;
7633 super::vals::C1Apb1llpenrTim2lpen(val as u8) 6933 super::vals::Dma1rst(val as u8)
7634 } 6934 }
7635 #[doc = "HDMI-CEC Peripheral Clocks Enable During CSleep Mode"] 6935 #[doc = "USB2OTG block reset"]
7636 pub fn set_ceclpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) { 6936 pub fn set_usb2otgrst(&mut self, val: super::vals::Dma1rst) {
7637 self.0 = (self.0 & !(0x01 << 27usize)) | (((val.0 as u32) & 0x01) << 27usize); 6937 self.0 = (self.0 & !(0x01 << 27usize)) | (((val.0 as u32) & 0x01) << 27usize);
7638 } 6938 }
7639 #[doc = "DAC1/2 peripheral clock enable during CSleep mode"]
7640 pub const fn dac12lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
7641 let val = (self.0 >> 29usize) & 0x01;
7642 super::vals::C1Apb1llpenrTim2lpen(val as u8)
7643 }
7644 #[doc = "DAC1/2 peripheral clock enable during CSleep mode"]
7645 pub fn set_dac12lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
7646 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize);
7647 }
7648 #[doc = "UART7 Peripheral Clocks Enable During CSleep Mode"]
7649 pub const fn uart7lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
7650 let val = (self.0 >> 30usize) & 0x01;
7651 super::vals::C1Apb1llpenrTim2lpen(val as u8)
7652 }
7653 #[doc = "UART7 Peripheral Clocks Enable During CSleep Mode"]
7654 pub fn set_uart7lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
7655 self.0 = (self.0 & !(0x01 << 30usize)) | (((val.0 as u32) & 0x01) << 30usize);
7656 }
7657 #[doc = "UART8 Peripheral Clocks Enable During CSleep Mode"]
7658 pub const fn uart8lpen(&self) -> super::vals::C1Apb1llpenrTim2lpen {
7659 let val = (self.0 >> 31usize) & 0x01;
7660 super::vals::C1Apb1llpenrTim2lpen(val as u8)
7661 }
7662 #[doc = "UART8 Peripheral Clocks Enable During CSleep Mode"]
7663 pub fn set_uart8lpen(&mut self, val: super::vals::C1Apb1llpenrTim2lpen) {
7664 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize);
7665 }
7666 } 6939 }
7667 impl Default for C1Apb1llpenr { 6940 impl Default for Ahb1rstr {
7668 fn default() -> C1Apb1llpenr { 6941 fn default() -> Ahb1rstr {
7669 C1Apb1llpenr(0) 6942 Ahb1rstr(0)
7670 } 6943 }
7671 } 6944 }
7672 #[doc = "RCC APB1 High Sleep Clock Register"] 6945 #[doc = "RCC APB1 Clock Register"]
7673 #[repr(transparent)] 6946 #[repr(transparent)]
7674 #[derive(Copy, Clone, Eq, PartialEq)] 6947 #[derive(Copy, Clone, Eq, PartialEq)]
7675 pub struct Apb1hlpenr(pub u32); 6948 pub struct C1Apb1henr(pub u32);
7676 impl Apb1hlpenr { 6949 impl C1Apb1henr {
7677 #[doc = "Clock Recovery System peripheral clock enable during CSleep mode"] 6950 #[doc = "Clock Recovery System peripheral clock enable"]
7678 pub const fn crslpen(&self) -> super::vals::Apb1hlpenrCrslpen { 6951 pub const fn crsen(&self) -> super::vals::C1Apb1henrCrsen {
7679 let val = (self.0 >> 1usize) & 0x01; 6952 let val = (self.0 >> 1usize) & 0x01;
7680 super::vals::Apb1hlpenrCrslpen(val as u8) 6953 super::vals::C1Apb1henrCrsen(val as u8)
7681 } 6954 }
7682 #[doc = "Clock Recovery System peripheral clock enable during CSleep mode"] 6955 #[doc = "Clock Recovery System peripheral clock enable"]
7683 pub fn set_crslpen(&mut self, val: super::vals::Apb1hlpenrCrslpen) { 6956 pub fn set_crsen(&mut self, val: super::vals::C1Apb1henrCrsen) {
7684 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 6957 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
7685 } 6958 }
7686 #[doc = "SWPMI Peripheral Clocks Enable During CSleep Mode"] 6959 #[doc = "SWPMI Peripheral Clocks Enable"]
7687 pub const fn swplpen(&self) -> super::vals::Apb1hlpenrCrslpen { 6960 pub const fn swpen(&self) -> super::vals::C1Apb1henrCrsen {
7688 let val = (self.0 >> 2usize) & 0x01; 6961 let val = (self.0 >> 2usize) & 0x01;
7689 super::vals::Apb1hlpenrCrslpen(val as u8) 6962 super::vals::C1Apb1henrCrsen(val as u8)
7690 } 6963 }
7691 #[doc = "SWPMI Peripheral Clocks Enable During CSleep Mode"] 6964 #[doc = "SWPMI Peripheral Clocks Enable"]
7692 pub fn set_swplpen(&mut self, val: super::vals::Apb1hlpenrCrslpen) { 6965 pub fn set_swpen(&mut self, val: super::vals::C1Apb1henrCrsen) {
7693 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize); 6966 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
7694 } 6967 }
7695 #[doc = "OPAMP peripheral clock enable during CSleep mode"] 6968 #[doc = "OPAMP peripheral clock enable"]
7696 pub const fn opamplpen(&self) -> super::vals::Apb1hlpenrCrslpen { 6969 pub const fn opampen(&self) -> super::vals::C1Apb1henrCrsen {
7697 let val = (self.0 >> 4usize) & 0x01; 6970 let val = (self.0 >> 4usize) & 0x01;
7698 super::vals::Apb1hlpenrCrslpen(val as u8) 6971 super::vals::C1Apb1henrCrsen(val as u8)
7699 } 6972 }
7700 #[doc = "OPAMP peripheral clock enable during CSleep mode"] 6973 #[doc = "OPAMP peripheral clock enable"]
7701 pub fn set_opamplpen(&mut self, val: super::vals::Apb1hlpenrCrslpen) { 6974 pub fn set_opampen(&mut self, val: super::vals::C1Apb1henrCrsen) {
7702 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 6975 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
7703 } 6976 }
7704 #[doc = "MDIOS peripheral clock enable during CSleep mode"] 6977 #[doc = "MDIOS peripheral clock enable"]
7705 pub const fn mdioslpen(&self) -> super::vals::Apb1hlpenrCrslpen { 6978 pub const fn mdiosen(&self) -> super::vals::C1Apb1henrCrsen {
7706 let val = (self.0 >> 5usize) & 0x01; 6979 let val = (self.0 >> 5usize) & 0x01;
7707 super::vals::Apb1hlpenrCrslpen(val as u8) 6980 super::vals::C1Apb1henrCrsen(val as u8)
7708 } 6981 }
7709 #[doc = "MDIOS peripheral clock enable during CSleep mode"] 6982 #[doc = "MDIOS peripheral clock enable"]
7710 pub fn set_mdioslpen(&mut self, val: super::vals::Apb1hlpenrCrslpen) { 6983 pub fn set_mdiosen(&mut self, val: super::vals::C1Apb1henrCrsen) {
7711 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 6984 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
7712 } 6985 }
7713 #[doc = "FDCAN Peripheral Clocks Enable During CSleep Mode"] 6986 #[doc = "FDCAN Peripheral Clocks Enable"]
7714 pub const fn fdcanlpen(&self) -> super::vals::Apb1hlpenrCrslpen { 6987 pub const fn fdcanen(&self) -> super::vals::C1Apb1henrCrsen {
7715 let val = (self.0 >> 8usize) & 0x01; 6988 let val = (self.0 >> 8usize) & 0x01;
7716 super::vals::Apb1hlpenrCrslpen(val as u8) 6989 super::vals::C1Apb1henrCrsen(val as u8)
7717 } 6990 }
7718 #[doc = "FDCAN Peripheral Clocks Enable During CSleep Mode"] 6991 #[doc = "FDCAN Peripheral Clocks Enable"]
7719 pub fn set_fdcanlpen(&mut self, val: super::vals::Apb1hlpenrCrslpen) { 6992 pub fn set_fdcanen(&mut self, val: super::vals::C1Apb1henrCrsen) {
7720 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize); 6993 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
7721 } 6994 }
7722 } 6995 }
7723 impl Default for Apb1hlpenr { 6996 impl Default for C1Apb1henr {
7724 fn default() -> Apb1hlpenr { 6997 fn default() -> C1Apb1henr {
7725 Apb1hlpenr(0) 6998 C1Apb1henr(0)
7726 }
7727 }
7728 #[doc = "RCC CSI configuration register"]
7729 #[repr(transparent)]
7730 #[derive(Copy, Clone, Eq, PartialEq)]
7731 pub struct Csicfgr(pub u32);
7732 impl Csicfgr {
7733 #[doc = "CSI clock calibration"]
7734 pub const fn csical(&self) -> u16 {
7735 let val = (self.0 >> 0usize) & 0x01ff;
7736 val as u16
7737 }
7738 #[doc = "CSI clock calibration"]
7739 pub fn set_csical(&mut self, val: u16) {
7740 self.0 = (self.0 & !(0x01ff << 0usize)) | (((val as u32) & 0x01ff) << 0usize);
7741 }
7742 #[doc = "CSI clock trimming"]
7743 pub const fn csitrim(&self) -> u8 {
7744 let val = (self.0 >> 24usize) & 0x3f;
7745 val as u8
7746 }
7747 #[doc = "CSI clock trimming"]
7748 pub fn set_csitrim(&mut self, val: u8) {
7749 self.0 = (self.0 & !(0x3f << 24usize)) | (((val as u32) & 0x3f) << 24usize);
7750 }
7751 }
7752 impl Default for Csicfgr {
7753 fn default() -> Csicfgr {
7754 Csicfgr(0)
7755 } 6999 }
7756 } 7000 }
7757 #[doc = "RCC AHB2 Sleep Clock Register"] 7001 #[doc = "RCC AHB2 Sleep Clock Register"]
@@ -7837,907 +7081,405 @@ pub mod rcc_h7 {
7837 C1Ahb2lpenr(0) 7081 C1Ahb2lpenr(0)
7838 } 7082 }
7839 } 7083 }
7840 #[doc = "RCC APB3 Sleep Clock Register"] 7084 #[doc = "RCC PLLs Configuration Register"]
7841 #[repr(transparent)]
7842 #[derive(Copy, Clone, Eq, PartialEq)]
7843 pub struct Apb3lpenr(pub u32);
7844 impl Apb3lpenr {
7845 #[doc = "LTDC peripheral clock enable during CSleep mode"]
7846 pub const fn ltdclpen(&self) -> super::vals::Apb3lpenrLtdclpen {
7847 let val = (self.0 >> 3usize) & 0x01;
7848 super::vals::Apb3lpenrLtdclpen(val as u8)
7849 }
7850 #[doc = "LTDC peripheral clock enable during CSleep mode"]
7851 pub fn set_ltdclpen(&mut self, val: super::vals::Apb3lpenrLtdclpen) {
7852 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
7853 }
7854 #[doc = "WWDG1 Clock Enable During CSleep Mode"]
7855 pub const fn wwdg1lpen(&self) -> super::vals::Apb3lpenrLtdclpen {
7856 let val = (self.0 >> 6usize) & 0x01;
7857 super::vals::Apb3lpenrLtdclpen(val as u8)
7858 }
7859 #[doc = "WWDG1 Clock Enable During CSleep Mode"]
7860 pub fn set_wwdg1lpen(&mut self, val: super::vals::Apb3lpenrLtdclpen) {
7861 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
7862 }
7863 }
7864 impl Default for Apb3lpenr {
7865 fn default() -> Apb3lpenr {
7866 Apb3lpenr(0)
7867 }
7868 }
7869 #[doc = "RCC AHB3 Clock Register"]
7870 #[repr(transparent)]
7871 #[derive(Copy, Clone, Eq, PartialEq)]
7872 pub struct Ahb3enr(pub u32);
7873 impl Ahb3enr {
7874 #[doc = "MDMA Peripheral Clock Enable"]
7875 pub const fn mdmaen(&self) -> super::vals::Ahb3enrMdmaen {
7876 let val = (self.0 >> 0usize) & 0x01;
7877 super::vals::Ahb3enrMdmaen(val as u8)
7878 }
7879 #[doc = "MDMA Peripheral Clock Enable"]
7880 pub fn set_mdmaen(&mut self, val: super::vals::Ahb3enrMdmaen) {
7881 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
7882 }
7883 #[doc = "DMA2D Peripheral Clock Enable"]
7884 pub const fn dma2den(&self) -> super::vals::Ahb3enrMdmaen {
7885 let val = (self.0 >> 4usize) & 0x01;
7886 super::vals::Ahb3enrMdmaen(val as u8)
7887 }
7888 #[doc = "DMA2D Peripheral Clock Enable"]
7889 pub fn set_dma2den(&mut self, val: super::vals::Ahb3enrMdmaen) {
7890 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
7891 }
7892 #[doc = "JPGDEC Peripheral Clock Enable"]
7893 pub const fn jpgdecen(&self) -> super::vals::Ahb3enrMdmaen {
7894 let val = (self.0 >> 5usize) & 0x01;
7895 super::vals::Ahb3enrMdmaen(val as u8)
7896 }
7897 #[doc = "JPGDEC Peripheral Clock Enable"]
7898 pub fn set_jpgdecen(&mut self, val: super::vals::Ahb3enrMdmaen) {
7899 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
7900 }
7901 #[doc = "FMC Peripheral Clocks Enable"]
7902 pub const fn fmcen(&self) -> super::vals::Ahb3enrMdmaen {
7903 let val = (self.0 >> 12usize) & 0x01;
7904 super::vals::Ahb3enrMdmaen(val as u8)
7905 }
7906 #[doc = "FMC Peripheral Clocks Enable"]
7907 pub fn set_fmcen(&mut self, val: super::vals::Ahb3enrMdmaen) {
7908 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
7909 }
7910 #[doc = "QUADSPI and QUADSPI Delay Clock Enable"]
7911 pub const fn qspien(&self) -> super::vals::Ahb3enrMdmaen {
7912 let val = (self.0 >> 14usize) & 0x01;
7913 super::vals::Ahb3enrMdmaen(val as u8)
7914 }
7915 #[doc = "QUADSPI and QUADSPI Delay Clock Enable"]
7916 pub fn set_qspien(&mut self, val: super::vals::Ahb3enrMdmaen) {
7917 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
7918 }
7919 #[doc = "SDMMC1 and SDMMC1 Delay Clock Enable"]
7920 pub const fn sdmmc1en(&self) -> super::vals::Ahb3enrMdmaen {
7921 let val = (self.0 >> 16usize) & 0x01;
7922 super::vals::Ahb3enrMdmaen(val as u8)
7923 }
7924 #[doc = "SDMMC1 and SDMMC1 Delay Clock Enable"]
7925 pub fn set_sdmmc1en(&mut self, val: super::vals::Ahb3enrMdmaen) {
7926 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
7927 }
7928 }
7929 impl Default for Ahb3enr {
7930 fn default() -> Ahb3enr {
7931 Ahb3enr(0)
7932 }
7933 }
7934 #[doc = "RCC Domain 1 Kernel Clock Configuration Register"]
7935 #[repr(transparent)]
7936 #[derive(Copy, Clone, Eq, PartialEq)]
7937 pub struct D1ccipr(pub u32);
7938 impl D1ccipr {
7939 #[doc = "FMC kernel clock source selection"]
7940 pub const fn fmcsel(&self) -> super::vals::Fmcsel {
7941 let val = (self.0 >> 0usize) & 0x03;
7942 super::vals::Fmcsel(val as u8)
7943 }
7944 #[doc = "FMC kernel clock source selection"]
7945 pub fn set_fmcsel(&mut self, val: super::vals::Fmcsel) {
7946 self.0 = (self.0 & !(0x03 << 0usize)) | (((val.0 as u32) & 0x03) << 0usize);
7947 }
7948 #[doc = "QUADSPI kernel clock source selection"]
7949 pub const fn qspisel(&self) -> super::vals::Fmcsel {
7950 let val = (self.0 >> 4usize) & 0x03;
7951 super::vals::Fmcsel(val as u8)
7952 }
7953 #[doc = "QUADSPI kernel clock source selection"]
7954 pub fn set_qspisel(&mut self, val: super::vals::Fmcsel) {
7955 self.0 = (self.0 & !(0x03 << 4usize)) | (((val.0 as u32) & 0x03) << 4usize);
7956 }
7957 #[doc = "SDMMC kernel clock source selection"]
7958 pub const fn sdmmcsel(&self) -> super::vals::Sdmmcsel {
7959 let val = (self.0 >> 16usize) & 0x01;
7960 super::vals::Sdmmcsel(val as u8)
7961 }
7962 #[doc = "SDMMC kernel clock source selection"]
7963 pub fn set_sdmmcsel(&mut self, val: super::vals::Sdmmcsel) {
7964 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
7965 }
7966 #[doc = "per_ck clock source selection"]
7967 pub const fn ckpersel(&self) -> super::vals::Ckpersel {
7968 let val = (self.0 >> 28usize) & 0x03;
7969 super::vals::Ckpersel(val as u8)
7970 }
7971 #[doc = "per_ck clock source selection"]
7972 pub fn set_ckpersel(&mut self, val: super::vals::Ckpersel) {
7973 self.0 = (self.0 & !(0x03 << 28usize)) | (((val.0 as u32) & 0x03) << 28usize);
7974 }
7975 }
7976 impl Default for D1ccipr {
7977 fn default() -> D1ccipr {
7978 D1ccipr(0)
7979 }
7980 }
7981 #[doc = "RCC PLL2 Fractional Divider Register"]
7982 #[repr(transparent)]
7983 #[derive(Copy, Clone, Eq, PartialEq)]
7984 pub struct Pll2fracr(pub u32);
7985 impl Pll2fracr {
7986 #[doc = "Fractional part of the multiplication factor for PLL VCO"]
7987 pub const fn fracn2(&self) -> u16 {
7988 let val = (self.0 >> 3usize) & 0x1fff;
7989 val as u16
7990 }
7991 #[doc = "Fractional part of the multiplication factor for PLL VCO"]
7992 pub fn set_fracn2(&mut self, val: u16) {
7993 self.0 = (self.0 & !(0x1fff << 3usize)) | (((val as u32) & 0x1fff) << 3usize);
7994 }
7995 }
7996 impl Default for Pll2fracr {
7997 fn default() -> Pll2fracr {
7998 Pll2fracr(0)
7999 }
8000 }
8001 #[doc = "RCC PLL1 Dividers Configuration Register"]
8002 #[repr(transparent)]
8003 #[derive(Copy, Clone, Eq, PartialEq)]
8004 pub struct Pll1divr(pub u32);
8005 impl Pll1divr {
8006 #[doc = "Multiplication factor for PLL1 VCO"]
8007 pub const fn divn1(&self) -> u16 {
8008 let val = (self.0 >> 0usize) & 0x01ff;
8009 val as u16
8010 }
8011 #[doc = "Multiplication factor for PLL1 VCO"]
8012 pub fn set_divn1(&mut self, val: u16) {
8013 self.0 = (self.0 & !(0x01ff << 0usize)) | (((val as u32) & 0x01ff) << 0usize);
8014 }
8015 #[doc = "PLL1 DIVP division factor"]
8016 pub const fn divp1(&self) -> super::vals::Divp1 {
8017 let val = (self.0 >> 9usize) & 0x7f;
8018 super::vals::Divp1(val as u8)
8019 }
8020 #[doc = "PLL1 DIVP division factor"]
8021 pub fn set_divp1(&mut self, val: super::vals::Divp1) {
8022 self.0 = (self.0 & !(0x7f << 9usize)) | (((val.0 as u32) & 0x7f) << 9usize);
8023 }
8024 #[doc = "PLL1 DIVQ division factor"]
8025 pub const fn divq1(&self) -> u8 {
8026 let val = (self.0 >> 16usize) & 0x7f;
8027 val as u8
8028 }
8029 #[doc = "PLL1 DIVQ division factor"]
8030 pub fn set_divq1(&mut self, val: u8) {
8031 self.0 = (self.0 & !(0x7f << 16usize)) | (((val as u32) & 0x7f) << 16usize);
8032 }
8033 #[doc = "PLL1 DIVR division factor"]
8034 pub const fn divr1(&self) -> u8 {
8035 let val = (self.0 >> 24usize) & 0x7f;
8036 val as u8
8037 }
8038 #[doc = "PLL1 DIVR division factor"]
8039 pub fn set_divr1(&mut self, val: u8) {
8040 self.0 = (self.0 & !(0x7f << 24usize)) | (((val as u32) & 0x7f) << 24usize);
8041 }
8042 }
8043 impl Default for Pll1divr {
8044 fn default() -> Pll1divr {
8045 Pll1divr(0)
8046 }
8047 }
8048 #[doc = "RCC PLL1 Fractional Divider Register"]
8049 #[repr(transparent)]
8050 #[derive(Copy, Clone, Eq, PartialEq)]
8051 pub struct Pll1fracr(pub u32);
8052 impl Pll1fracr {
8053 #[doc = "Fractional part of the multiplication factor for PLL1 VCO"]
8054 pub const fn fracn1(&self) -> u16 {
8055 let val = (self.0 >> 3usize) & 0x1fff;
8056 val as u16
8057 }
8058 #[doc = "Fractional part of the multiplication factor for PLL1 VCO"]
8059 pub fn set_fracn1(&mut self, val: u16) {
8060 self.0 = (self.0 & !(0x1fff << 3usize)) | (((val as u32) & 0x1fff) << 3usize);
8061 }
8062 }
8063 impl Default for Pll1fracr {
8064 fn default() -> Pll1fracr {
8065 Pll1fracr(0)
8066 }
8067 }
8068 #[doc = "RCC Clock Source Interrupt Flag Register"]
8069 #[repr(transparent)] 7085 #[repr(transparent)]
8070 #[derive(Copy, Clone, Eq, PartialEq)] 7086 #[derive(Copy, Clone, Eq, PartialEq)]
8071 pub struct Cifr(pub u32); 7087 pub struct Pllcfgr(pub u32);
8072 impl Cifr { 7088 impl Pllcfgr {
8073 #[doc = "LSI ready Interrupt Flag"] 7089 #[doc = "PLL1 fractional latch enable"]
8074 pub const fn lsirdyf(&self) -> bool { 7090 pub fn pllfracen(&self, n: usize) -> super::vals::Pll1fracen {
8075 let val = (self.0 >> 0usize) & 0x01; 7091 assert!(n < 3usize);
8076 val != 0 7092 let offs = 0usize + n * 4usize;
8077 } 7093 let val = (self.0 >> offs) & 0x01;
8078 #[doc = "LSI ready Interrupt Flag"] 7094 super::vals::Pll1fracen(val as u8)
8079 pub fn set_lsirdyf(&mut self, val: bool) {
8080 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
8081 }
8082 #[doc = "LSE ready Interrupt Flag"]
8083 pub const fn lserdyf(&self) -> bool {
8084 let val = (self.0 >> 1usize) & 0x01;
8085 val != 0
8086 }
8087 #[doc = "LSE ready Interrupt Flag"]
8088 pub fn set_lserdyf(&mut self, val: bool) {
8089 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
8090 }
8091 #[doc = "HSI ready Interrupt Flag"]
8092 pub const fn hsirdyf(&self) -> bool {
8093 let val = (self.0 >> 2usize) & 0x01;
8094 val != 0
8095 }
8096 #[doc = "HSI ready Interrupt Flag"]
8097 pub fn set_hsirdyf(&mut self, val: bool) {
8098 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
8099 }
8100 #[doc = "HSE ready Interrupt Flag"]
8101 pub const fn hserdyf(&self) -> bool {
8102 let val = (self.0 >> 3usize) & 0x01;
8103 val != 0
8104 } 7095 }
8105 #[doc = "HSE ready Interrupt Flag"] 7096 #[doc = "PLL1 fractional latch enable"]
8106 pub fn set_hserdyf(&mut self, val: bool) { 7097 pub fn set_pllfracen(&mut self, n: usize, val: super::vals::Pll1fracen) {
8107 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize); 7098 assert!(n < 3usize);
7099 let offs = 0usize + n * 4usize;
7100 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
8108 } 7101 }
8109 #[doc = "CSI ready Interrupt Flag"] 7102 #[doc = "PLL1 VCO selection"]
8110 pub const fn csirdy(&self) -> bool { 7103 pub fn pllvcosel(&self, n: usize) -> super::vals::Pll1vcosel {
8111 let val = (self.0 >> 4usize) & 0x01; 7104 assert!(n < 3usize);
8112 val != 0 7105 let offs = 1usize + n * 4usize;
7106 let val = (self.0 >> offs) & 0x01;
7107 super::vals::Pll1vcosel(val as u8)
8113 } 7108 }
8114 #[doc = "CSI ready Interrupt Flag"] 7109 #[doc = "PLL1 VCO selection"]
8115 pub fn set_csirdy(&mut self, val: bool) { 7110 pub fn set_pllvcosel(&mut self, n: usize, val: super::vals::Pll1vcosel) {
8116 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 7111 assert!(n < 3usize);
7112 let offs = 1usize + n * 4usize;
7113 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
8117 } 7114 }
8118 #[doc = "RC48 ready Interrupt Flag"] 7115 #[doc = "PLL1 input frequency range"]
8119 pub const fn hsi48rdyf(&self) -> bool { 7116 pub fn pllrge(&self, n: usize) -> super::vals::Pll1rge {
8120 let val = (self.0 >> 5usize) & 0x01; 7117 assert!(n < 3usize);
8121 val != 0 7118 let offs = 2usize + n * 4usize;
7119 let val = (self.0 >> offs) & 0x03;
7120 super::vals::Pll1rge(val as u8)
8122 } 7121 }
8123 #[doc = "RC48 ready Interrupt Flag"] 7122 #[doc = "PLL1 input frequency range"]
8124 pub fn set_hsi48rdyf(&mut self, val: bool) { 7123 pub fn set_pllrge(&mut self, n: usize, val: super::vals::Pll1rge) {
8125 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 7124 assert!(n < 3usize);
7125 let offs = 2usize + n * 4usize;
7126 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
8126 } 7127 }
8127 #[doc = "PLL1 ready Interrupt Flag"] 7128 #[doc = "PLL1 DIVP divider output enable"]
8128 pub fn pllrdyf(&self, n: usize) -> bool { 7129 pub fn divpen(&self, n: usize) -> super::vals::Divp1en {
8129 assert!(n < 3usize); 7130 assert!(n < 3usize);
8130 let offs = 6usize + n * 1usize; 7131 let offs = 16usize + n * 3usize;
8131 let val = (self.0 >> offs) & 0x01; 7132 let val = (self.0 >> offs) & 0x01;
8132 val != 0 7133 super::vals::Divp1en(val as u8)
8133 } 7134 }
8134 #[doc = "PLL1 ready Interrupt Flag"] 7135 #[doc = "PLL1 DIVP divider output enable"]
8135 pub fn set_pllrdyf(&mut self, n: usize, val: bool) { 7136 pub fn set_divpen(&mut self, n: usize, val: super::vals::Divp1en) {
8136 assert!(n < 3usize); 7137 assert!(n < 3usize);
8137 let offs = 6usize + n * 1usize; 7138 let offs = 16usize + n * 3usize;
8138 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs); 7139 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
8139 } 7140 }
8140 #[doc = "LSE clock security system Interrupt Flag"] 7141 #[doc = "PLL1 DIVQ divider output enable"]
8141 pub const fn lsecssf(&self) -> bool { 7142 pub fn divqen(&self, n: usize) -> super::vals::Divp1en {
8142 let val = (self.0 >> 9usize) & 0x01; 7143 assert!(n < 3usize);
8143 val != 0 7144 let offs = 17usize + n * 3usize;
7145 let val = (self.0 >> offs) & 0x01;
7146 super::vals::Divp1en(val as u8)
8144 } 7147 }
8145 #[doc = "LSE clock security system Interrupt Flag"] 7148 #[doc = "PLL1 DIVQ divider output enable"]
8146 pub fn set_lsecssf(&mut self, val: bool) { 7149 pub fn set_divqen(&mut self, n: usize, val: super::vals::Divp1en) {
8147 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 7150 assert!(n < 3usize);
7151 let offs = 17usize + n * 3usize;
7152 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
8148 } 7153 }
8149 #[doc = "HSE clock security system Interrupt Flag"] 7154 #[doc = "PLL1 DIVR divider output enable"]
8150 pub const fn hsecssf(&self) -> bool { 7155 pub fn divren(&self, n: usize) -> super::vals::Divp1en {
8151 let val = (self.0 >> 10usize) & 0x01; 7156 assert!(n < 3usize);
8152 val != 0 7157 let offs = 18usize + n * 3usize;
7158 let val = (self.0 >> offs) & 0x01;
7159 super::vals::Divp1en(val as u8)
8153 } 7160 }
8154 #[doc = "HSE clock security system Interrupt Flag"] 7161 #[doc = "PLL1 DIVR divider output enable"]
8155 pub fn set_hsecssf(&mut self, val: bool) { 7162 pub fn set_divren(&mut self, n: usize, val: super::vals::Divp1en) {
8156 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize); 7163 assert!(n < 3usize);
7164 let offs = 18usize + n * 3usize;
7165 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
8157 } 7166 }
8158 } 7167 }
8159 impl Default for Cifr { 7168 impl Default for Pllcfgr {
8160 fn default() -> Cifr { 7169 fn default() -> Pllcfgr {
8161 Cifr(0) 7170 Pllcfgr(0)
8162 } 7171 }
8163 } 7172 }
8164 #[doc = "RCC AHB4 Peripheral Reset Register"] 7173 #[doc = "RCC AHB4 Sleep Clock Register"]
8165 #[repr(transparent)] 7174 #[repr(transparent)]
8166 #[derive(Copy, Clone, Eq, PartialEq)] 7175 #[derive(Copy, Clone, Eq, PartialEq)]
8167 pub struct Ahb4rstr(pub u32); 7176 pub struct C1Ahb4lpenr(pub u32);
8168 impl Ahb4rstr { 7177 impl C1Ahb4lpenr {
8169 #[doc = "GPIO block reset"] 7178 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8170 pub const fn gpioarst(&self) -> super::vals::Gpioarst { 7179 pub const fn gpioalpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen {
8171 let val = (self.0 >> 0usize) & 0x01; 7180 let val = (self.0 >> 0usize) & 0x01;
8172 super::vals::Gpioarst(val as u8) 7181 super::vals::C1Ahb4lpenrGpioalpen(val as u8)
8173 } 7182 }
8174 #[doc = "GPIO block reset"] 7183 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8175 pub fn set_gpioarst(&mut self, val: super::vals::Gpioarst) { 7184 pub fn set_gpioalpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) {
8176 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 7185 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
8177 } 7186 }
8178 #[doc = "GPIO block reset"] 7187 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8179 pub const fn gpiobrst(&self) -> super::vals::Gpioarst { 7188 pub const fn gpioblpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen {
8180 let val = (self.0 >> 1usize) & 0x01; 7189 let val = (self.0 >> 1usize) & 0x01;
8181 super::vals::Gpioarst(val as u8) 7190 super::vals::C1Ahb4lpenrGpioalpen(val as u8)
8182 } 7191 }
8183 #[doc = "GPIO block reset"] 7192 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8184 pub fn set_gpiobrst(&mut self, val: super::vals::Gpioarst) { 7193 pub fn set_gpioblpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) {
8185 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 7194 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
8186 } 7195 }
8187 #[doc = "GPIO block reset"] 7196 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8188 pub const fn gpiocrst(&self) -> super::vals::Gpioarst { 7197 pub const fn gpioclpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen {
8189 let val = (self.0 >> 2usize) & 0x01; 7198 let val = (self.0 >> 2usize) & 0x01;
8190 super::vals::Gpioarst(val as u8) 7199 super::vals::C1Ahb4lpenrGpioalpen(val as u8)
8191 } 7200 }
8192 #[doc = "GPIO block reset"] 7201 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8193 pub fn set_gpiocrst(&mut self, val: super::vals::Gpioarst) { 7202 pub fn set_gpioclpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) {
8194 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize); 7203 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
8195 } 7204 }
8196 #[doc = "GPIO block reset"] 7205 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8197 pub const fn gpiodrst(&self) -> super::vals::Gpioarst { 7206 pub const fn gpiodlpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen {
8198 let val = (self.0 >> 3usize) & 0x01; 7207 let val = (self.0 >> 3usize) & 0x01;
8199 super::vals::Gpioarst(val as u8) 7208 super::vals::C1Ahb4lpenrGpioalpen(val as u8)
8200 } 7209 }
8201 #[doc = "GPIO block reset"] 7210 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8202 pub fn set_gpiodrst(&mut self, val: super::vals::Gpioarst) { 7211 pub fn set_gpiodlpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) {
8203 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize); 7212 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
8204 } 7213 }
8205 #[doc = "GPIO block reset"] 7214 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8206 pub const fn gpioerst(&self) -> super::vals::Gpioarst { 7215 pub const fn gpioelpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen {
8207 let val = (self.0 >> 4usize) & 0x01; 7216 let val = (self.0 >> 4usize) & 0x01;
8208 super::vals::Gpioarst(val as u8) 7217 super::vals::C1Ahb4lpenrGpioalpen(val as u8)
8209 } 7218 }
8210 #[doc = "GPIO block reset"] 7219 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8211 pub fn set_gpioerst(&mut self, val: super::vals::Gpioarst) { 7220 pub fn set_gpioelpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) {
8212 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 7221 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
8213 } 7222 }
8214 #[doc = "GPIO block reset"] 7223 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8215 pub const fn gpiofrst(&self) -> super::vals::Gpioarst { 7224 pub const fn gpioflpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen {
8216 let val = (self.0 >> 5usize) & 0x01; 7225 let val = (self.0 >> 5usize) & 0x01;
8217 super::vals::Gpioarst(val as u8) 7226 super::vals::C1Ahb4lpenrGpioalpen(val as u8)
8218 } 7227 }
8219 #[doc = "GPIO block reset"] 7228 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8220 pub fn set_gpiofrst(&mut self, val: super::vals::Gpioarst) { 7229 pub fn set_gpioflpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) {
8221 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 7230 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
8222 } 7231 }
8223 #[doc = "GPIO block reset"] 7232 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8224 pub const fn gpiogrst(&self) -> super::vals::Gpioarst { 7233 pub const fn gpioglpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen {
8225 let val = (self.0 >> 6usize) & 0x01; 7234 let val = (self.0 >> 6usize) & 0x01;
8226 super::vals::Gpioarst(val as u8) 7235 super::vals::C1Ahb4lpenrGpioalpen(val as u8)
8227 } 7236 }
8228 #[doc = "GPIO block reset"] 7237 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8229 pub fn set_gpiogrst(&mut self, val: super::vals::Gpioarst) { 7238 pub fn set_gpioglpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) {
8230 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize); 7239 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
8231 } 7240 }
8232 #[doc = "GPIO block reset"] 7241 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8233 pub const fn gpiohrst(&self) -> super::vals::Gpioarst { 7242 pub const fn gpiohlpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen {
8234 let val = (self.0 >> 7usize) & 0x01; 7243 let val = (self.0 >> 7usize) & 0x01;
8235 super::vals::Gpioarst(val as u8) 7244 super::vals::C1Ahb4lpenrGpioalpen(val as u8)
8236 } 7245 }
8237 #[doc = "GPIO block reset"] 7246 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8238 pub fn set_gpiohrst(&mut self, val: super::vals::Gpioarst) { 7247 pub fn set_gpiohlpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) {
8239 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 7248 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
8240 } 7249 }
8241 #[doc = "GPIO block reset"] 7250 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8242 pub const fn gpioirst(&self) -> super::vals::Gpioarst { 7251 pub const fn gpioilpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen {
8243 let val = (self.0 >> 8usize) & 0x01; 7252 let val = (self.0 >> 8usize) & 0x01;
8244 super::vals::Gpioarst(val as u8) 7253 super::vals::C1Ahb4lpenrGpioalpen(val as u8)
8245 } 7254 }
8246 #[doc = "GPIO block reset"] 7255 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8247 pub fn set_gpioirst(&mut self, val: super::vals::Gpioarst) { 7256 pub fn set_gpioilpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) {
8248 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize); 7257 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
8249 } 7258 }
8250 #[doc = "GPIO block reset"] 7259 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8251 pub const fn gpiojrst(&self) -> super::vals::Gpioarst { 7260 pub const fn gpiojlpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen {
8252 let val = (self.0 >> 9usize) & 0x01; 7261 let val = (self.0 >> 9usize) & 0x01;
8253 super::vals::Gpioarst(val as u8) 7262 super::vals::C1Ahb4lpenrGpioalpen(val as u8)
8254 } 7263 }
8255 #[doc = "GPIO block reset"] 7264 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8256 pub fn set_gpiojrst(&mut self, val: super::vals::Gpioarst) { 7265 pub fn set_gpiojlpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) {
8257 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize); 7266 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
8258 } 7267 }
8259 #[doc = "GPIO block reset"] 7268 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8260 pub const fn gpiokrst(&self) -> super::vals::Gpioarst { 7269 pub const fn gpioklpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen {
8261 let val = (self.0 >> 10usize) & 0x01; 7270 let val = (self.0 >> 10usize) & 0x01;
8262 super::vals::Gpioarst(val as u8) 7271 super::vals::C1Ahb4lpenrGpioalpen(val as u8)
8263 } 7272 }
8264 #[doc = "GPIO block reset"] 7273 #[doc = "GPIO peripheral clock enable during CSleep mode"]
8265 pub fn set_gpiokrst(&mut self, val: super::vals::Gpioarst) { 7274 pub fn set_gpioklpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) {
8266 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize); 7275 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
8267 } 7276 }
8268 #[doc = "CRC block reset"] 7277 #[doc = "CRC peripheral clock enable during CSleep mode"]
8269 pub const fn crcrst(&self) -> super::vals::Gpioarst { 7278 pub const fn crclpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen {
8270 let val = (self.0 >> 19usize) & 0x01; 7279 let val = (self.0 >> 19usize) & 0x01;
8271 super::vals::Gpioarst(val as u8) 7280 super::vals::C1Ahb4lpenrGpioalpen(val as u8)
8272 } 7281 }
8273 #[doc = "CRC block reset"] 7282 #[doc = "CRC peripheral clock enable during CSleep mode"]
8274 pub fn set_crcrst(&mut self, val: super::vals::Gpioarst) { 7283 pub fn set_crclpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) {
8275 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize); 7284 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
8276 } 7285 }
8277 #[doc = "BDMA block reset"] 7286 #[doc = "BDMA Clock Enable During CSleep Mode"]
8278 pub const fn bdmarst(&self) -> super::vals::Gpioarst { 7287 pub const fn bdmalpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen {
8279 let val = (self.0 >> 21usize) & 0x01; 7288 let val = (self.0 >> 21usize) & 0x01;
8280 super::vals::Gpioarst(val as u8) 7289 super::vals::C1Ahb4lpenrGpioalpen(val as u8)
8281 } 7290 }
8282 #[doc = "BDMA block reset"] 7291 #[doc = "BDMA Clock Enable During CSleep Mode"]
8283 pub fn set_bdmarst(&mut self, val: super::vals::Gpioarst) { 7292 pub fn set_bdmalpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) {
8284 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize); 7293 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize);
8285 } 7294 }
8286 #[doc = "ADC3 block reset"] 7295 #[doc = "ADC3 Peripheral Clocks Enable During CSleep Mode"]
8287 pub const fn adc3rst(&self) -> super::vals::Gpioarst { 7296 pub const fn adc3lpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen {
8288 let val = (self.0 >> 24usize) & 0x01;
8289 super::vals::Gpioarst(val as u8)
8290 }
8291 #[doc = "ADC3 block reset"]
8292 pub fn set_adc3rst(&mut self, val: super::vals::Gpioarst) {
8293 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
8294 }
8295 #[doc = "HSEM block reset"]
8296 pub const fn hsemrst(&self) -> super::vals::Gpioarst {
8297 let val = (self.0 >> 25usize) & 0x01;
8298 super::vals::Gpioarst(val as u8)
8299 }
8300 #[doc = "HSEM block reset"]
8301 pub fn set_hsemrst(&mut self, val: super::vals::Gpioarst) {
8302 self.0 = (self.0 & !(0x01 << 25usize)) | (((val.0 as u32) & 0x01) << 25usize);
8303 }
8304 }
8305 impl Default for Ahb4rstr {
8306 fn default() -> Ahb4rstr {
8307 Ahb4rstr(0)
8308 }
8309 }
8310 #[doc = "RCC APB1 High Sleep Clock Register"]
8311 #[repr(transparent)]
8312 #[derive(Copy, Clone, Eq, PartialEq)]
8313 pub struct C1Apb1hlpenr(pub u32);
8314 impl C1Apb1hlpenr {
8315 #[doc = "Clock Recovery System peripheral clock enable during CSleep mode"]
8316 pub const fn crslpen(&self) -> super::vals::C1Apb1hlpenrCrslpen {
8317 let val = (self.0 >> 1usize) & 0x01;
8318 super::vals::C1Apb1hlpenrCrslpen(val as u8)
8319 }
8320 #[doc = "Clock Recovery System peripheral clock enable during CSleep mode"]
8321 pub fn set_crslpen(&mut self, val: super::vals::C1Apb1hlpenrCrslpen) {
8322 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
8323 }
8324 #[doc = "SWPMI Peripheral Clocks Enable During CSleep Mode"]
8325 pub const fn swplpen(&self) -> super::vals::C1Apb1hlpenrCrslpen {
8326 let val = (self.0 >> 2usize) & 0x01;
8327 super::vals::C1Apb1hlpenrCrslpen(val as u8)
8328 }
8329 #[doc = "SWPMI Peripheral Clocks Enable During CSleep Mode"]
8330 pub fn set_swplpen(&mut self, val: super::vals::C1Apb1hlpenrCrslpen) {
8331 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
8332 }
8333 #[doc = "OPAMP peripheral clock enable during CSleep mode"]
8334 pub const fn opamplpen(&self) -> super::vals::C1Apb1hlpenrCrslpen {
8335 let val = (self.0 >> 4usize) & 0x01;
8336 super::vals::C1Apb1hlpenrCrslpen(val as u8)
8337 }
8338 #[doc = "OPAMP peripheral clock enable during CSleep mode"]
8339 pub fn set_opamplpen(&mut self, val: super::vals::C1Apb1hlpenrCrslpen) {
8340 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
8341 }
8342 #[doc = "MDIOS peripheral clock enable during CSleep mode"]
8343 pub const fn mdioslpen(&self) -> super::vals::C1Apb1hlpenrCrslpen {
8344 let val = (self.0 >> 5usize) & 0x01;
8345 super::vals::C1Apb1hlpenrCrslpen(val as u8)
8346 }
8347 #[doc = "MDIOS peripheral clock enable during CSleep mode"]
8348 pub fn set_mdioslpen(&mut self, val: super::vals::C1Apb1hlpenrCrslpen) {
8349 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
8350 }
8351 #[doc = "FDCAN Peripheral Clocks Enable During CSleep Mode"]
8352 pub const fn fdcanlpen(&self) -> super::vals::C1Apb1hlpenrCrslpen {
8353 let val = (self.0 >> 8usize) & 0x01;
8354 super::vals::C1Apb1hlpenrCrslpen(val as u8)
8355 }
8356 #[doc = "FDCAN Peripheral Clocks Enable During CSleep Mode"]
8357 pub fn set_fdcanlpen(&mut self, val: super::vals::C1Apb1hlpenrCrslpen) {
8358 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
8359 }
8360 }
8361 impl Default for C1Apb1hlpenr {
8362 fn default() -> C1Apb1hlpenr {
8363 C1Apb1hlpenr(0)
8364 }
8365 }
8366 #[doc = "RCC APB2 Peripheral Reset Register"]
8367 #[repr(transparent)]
8368 #[derive(Copy, Clone, Eq, PartialEq)]
8369 pub struct Apb2rstr(pub u32);
8370 impl Apb2rstr {
8371 #[doc = "TIM1 block reset"]
8372 pub const fn tim1rst(&self) -> super::vals::Tim1rst {
8373 let val = (self.0 >> 0usize) & 0x01;
8374 super::vals::Tim1rst(val as u8)
8375 }
8376 #[doc = "TIM1 block reset"]
8377 pub fn set_tim1rst(&mut self, val: super::vals::Tim1rst) {
8378 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
8379 }
8380 #[doc = "TIM8 block reset"]
8381 pub const fn tim8rst(&self) -> super::vals::Tim1rst {
8382 let val = (self.0 >> 1usize) & 0x01;
8383 super::vals::Tim1rst(val as u8)
8384 }
8385 #[doc = "TIM8 block reset"]
8386 pub fn set_tim8rst(&mut self, val: super::vals::Tim1rst) {
8387 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
8388 }
8389 #[doc = "USART1 block reset"]
8390 pub const fn usart1rst(&self) -> super::vals::Tim1rst {
8391 let val = (self.0 >> 4usize) & 0x01;
8392 super::vals::Tim1rst(val as u8)
8393 }
8394 #[doc = "USART1 block reset"]
8395 pub fn set_usart1rst(&mut self, val: super::vals::Tim1rst) {
8396 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
8397 }
8398 #[doc = "USART6 block reset"]
8399 pub const fn usart6rst(&self) -> super::vals::Tim1rst {
8400 let val = (self.0 >> 5usize) & 0x01;
8401 super::vals::Tim1rst(val as u8)
8402 }
8403 #[doc = "USART6 block reset"]
8404 pub fn set_usart6rst(&mut self, val: super::vals::Tim1rst) {
8405 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
8406 }
8407 #[doc = "SPI1 block reset"]
8408 pub const fn spi1rst(&self) -> super::vals::Tim1rst {
8409 let val = (self.0 >> 12usize) & 0x01;
8410 super::vals::Tim1rst(val as u8)
8411 }
8412 #[doc = "SPI1 block reset"]
8413 pub fn set_spi1rst(&mut self, val: super::vals::Tim1rst) {
8414 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
8415 }
8416 #[doc = "SPI4 block reset"]
8417 pub const fn spi4rst(&self) -> super::vals::Tim1rst {
8418 let val = (self.0 >> 13usize) & 0x01;
8419 super::vals::Tim1rst(val as u8)
8420 }
8421 #[doc = "SPI4 block reset"]
8422 pub fn set_spi4rst(&mut self, val: super::vals::Tim1rst) {
8423 self.0 = (self.0 & !(0x01 << 13usize)) | (((val.0 as u32) & 0x01) << 13usize);
8424 }
8425 #[doc = "TIM15 block reset"]
8426 pub const fn tim15rst(&self) -> super::vals::Tim1rst {
8427 let val = (self.0 >> 16usize) & 0x01;
8428 super::vals::Tim1rst(val as u8)
8429 }
8430 #[doc = "TIM15 block reset"]
8431 pub fn set_tim15rst(&mut self, val: super::vals::Tim1rst) {
8432 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
8433 }
8434 #[doc = "TIM16 block reset"]
8435 pub const fn tim16rst(&self) -> super::vals::Tim1rst {
8436 let val = (self.0 >> 17usize) & 0x01;
8437 super::vals::Tim1rst(val as u8)
8438 }
8439 #[doc = "TIM16 block reset"]
8440 pub fn set_tim16rst(&mut self, val: super::vals::Tim1rst) {
8441 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize);
8442 }
8443 #[doc = "TIM17 block reset"]
8444 pub const fn tim17rst(&self) -> super::vals::Tim1rst {
8445 let val = (self.0 >> 18usize) & 0x01;
8446 super::vals::Tim1rst(val as u8)
8447 }
8448 #[doc = "TIM17 block reset"]
8449 pub fn set_tim17rst(&mut self, val: super::vals::Tim1rst) {
8450 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
8451 }
8452 #[doc = "SPI5 block reset"]
8453 pub const fn spi5rst(&self) -> super::vals::Tim1rst {
8454 let val = (self.0 >> 20usize) & 0x01;
8455 super::vals::Tim1rst(val as u8)
8456 }
8457 #[doc = "SPI5 block reset"]
8458 pub fn set_spi5rst(&mut self, val: super::vals::Tim1rst) {
8459 self.0 = (self.0 & !(0x01 << 20usize)) | (((val.0 as u32) & 0x01) << 20usize);
8460 }
8461 #[doc = "SAI1 block reset"]
8462 pub const fn sai1rst(&self) -> super::vals::Tim1rst {
8463 let val = (self.0 >> 22usize) & 0x01;
8464 super::vals::Tim1rst(val as u8)
8465 }
8466 #[doc = "SAI1 block reset"]
8467 pub fn set_sai1rst(&mut self, val: super::vals::Tim1rst) {
8468 self.0 = (self.0 & !(0x01 << 22usize)) | (((val.0 as u32) & 0x01) << 22usize);
8469 }
8470 #[doc = "SAI2 block reset"]
8471 pub const fn sai2rst(&self) -> super::vals::Tim1rst {
8472 let val = (self.0 >> 23usize) & 0x01;
8473 super::vals::Tim1rst(val as u8)
8474 }
8475 #[doc = "SAI2 block reset"]
8476 pub fn set_sai2rst(&mut self, val: super::vals::Tim1rst) {
8477 self.0 = (self.0 & !(0x01 << 23usize)) | (((val.0 as u32) & 0x01) << 23usize);
8478 }
8479 #[doc = "SAI3 block reset"]
8480 pub const fn sai3rst(&self) -> super::vals::Tim1rst {
8481 let val = (self.0 >> 24usize) & 0x01; 7297 let val = (self.0 >> 24usize) & 0x01;
8482 super::vals::Tim1rst(val as u8) 7298 super::vals::C1Ahb4lpenrGpioalpen(val as u8)
8483 } 7299 }
8484 #[doc = "SAI3 block reset"] 7300 #[doc = "ADC3 Peripheral Clocks Enable During CSleep Mode"]
8485 pub fn set_sai3rst(&mut self, val: super::vals::Tim1rst) { 7301 pub fn set_adc3lpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) {
8486 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize); 7302 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
8487 } 7303 }
8488 #[doc = "DFSDM1 block reset"] 7304 #[doc = "Backup RAM Clock Enable During CSleep Mode"]
8489 pub const fn dfsdm1rst(&self) -> super::vals::Tim1rst { 7305 pub const fn bkpramlpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen {
8490 let val = (self.0 >> 28usize) & 0x01; 7306 let val = (self.0 >> 28usize) & 0x01;
8491 super::vals::Tim1rst(val as u8) 7307 super::vals::C1Ahb4lpenrGpioalpen(val as u8)
8492 } 7308 }
8493 #[doc = "DFSDM1 block reset"] 7309 #[doc = "Backup RAM Clock Enable During CSleep Mode"]
8494 pub fn set_dfsdm1rst(&mut self, val: super::vals::Tim1rst) { 7310 pub fn set_bkpramlpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) {
8495 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize); 7311 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
8496 } 7312 }
8497 #[doc = "HRTIM block reset"] 7313 #[doc = "SRAM4 Clock Enable During CSleep Mode"]
8498 pub const fn hrtimrst(&self) -> super::vals::Tim1rst { 7314 pub const fn sram4lpen(&self) -> super::vals::C1Ahb4lpenrGpioalpen {
8499 let val = (self.0 >> 29usize) & 0x01; 7315 let val = (self.0 >> 29usize) & 0x01;
8500 super::vals::Tim1rst(val as u8) 7316 super::vals::C1Ahb4lpenrGpioalpen(val as u8)
8501 } 7317 }
8502 #[doc = "HRTIM block reset"] 7318 #[doc = "SRAM4 Clock Enable During CSleep Mode"]
8503 pub fn set_hrtimrst(&mut self, val: super::vals::Tim1rst) { 7319 pub fn set_sram4lpen(&mut self, val: super::vals::C1Ahb4lpenrGpioalpen) {
8504 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize); 7320 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize);
8505 } 7321 }
8506 } 7322 }
8507 impl Default for Apb2rstr { 7323 impl Default for C1Ahb4lpenr {
8508 fn default() -> Apb2rstr { 7324 fn default() -> C1Ahb4lpenr {
8509 Apb2rstr(0) 7325 C1Ahb4lpenr(0)
8510 } 7326 }
8511 } 7327 }
8512 #[doc = "RCC APB4 Clock Register"] 7328 #[doc = "RCC AHB3 Reset Register"]
8513 #[repr(transparent)] 7329 #[repr(transparent)]
8514 #[derive(Copy, Clone, Eq, PartialEq)] 7330 #[derive(Copy, Clone, Eq, PartialEq)]
8515 pub struct C1Apb4enr(pub u32); 7331 pub struct Ahb3rstr(pub u32);
8516 impl C1Apb4enr { 7332 impl Ahb3rstr {
8517 #[doc = "SYSCFG peripheral clock enable"] 7333 #[doc = "MDMA block reset"]
8518 pub const fn syscfgen(&self) -> super::vals::C1Apb4enrSyscfgen { 7334 pub const fn mdmarst(&self) -> super::vals::Mdmarst {
8519 let val = (self.0 >> 1usize) & 0x01; 7335 let val = (self.0 >> 0usize) & 0x01;
8520 super::vals::C1Apb4enrSyscfgen(val as u8) 7336 super::vals::Mdmarst(val as u8)
8521 } 7337 }
8522 #[doc = "SYSCFG peripheral clock enable"] 7338 #[doc = "MDMA block reset"]
8523 pub fn set_syscfgen(&mut self, val: super::vals::C1Apb4enrSyscfgen) { 7339 pub fn set_mdmarst(&mut self, val: super::vals::Mdmarst) {
8524 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 7340 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
8525 } 7341 }
8526 #[doc = "LPUART1 Peripheral Clocks Enable"] 7342 #[doc = "DMA2D block reset"]
8527 pub const fn lpuart1en(&self) -> super::vals::C1Apb4enrSyscfgen { 7343 pub const fn dma2drst(&self) -> super::vals::Mdmarst {
8528 let val = (self.0 >> 3usize) & 0x01; 7344 let val = (self.0 >> 4usize) & 0x01;
8529 super::vals::C1Apb4enrSyscfgen(val as u8) 7345 super::vals::Mdmarst(val as u8)
8530 } 7346 }
8531 #[doc = "LPUART1 Peripheral Clocks Enable"] 7347 #[doc = "DMA2D block reset"]
8532 pub fn set_lpuart1en(&mut self, val: super::vals::C1Apb4enrSyscfgen) { 7348 pub fn set_dma2drst(&mut self, val: super::vals::Mdmarst) {
8533 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize); 7349 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
8534 } 7350 }
8535 #[doc = "SPI6 Peripheral Clocks Enable"] 7351 #[doc = "JPGDEC block reset"]
8536 pub const fn spi6en(&self) -> super::vals::C1Apb4enrSyscfgen { 7352 pub const fn jpgdecrst(&self) -> super::vals::Mdmarst {
8537 let val = (self.0 >> 5usize) & 0x01; 7353 let val = (self.0 >> 5usize) & 0x01;
8538 super::vals::C1Apb4enrSyscfgen(val as u8) 7354 super::vals::Mdmarst(val as u8)
8539 } 7355 }
8540 #[doc = "SPI6 Peripheral Clocks Enable"] 7356 #[doc = "JPGDEC block reset"]
8541 pub fn set_spi6en(&mut self, val: super::vals::C1Apb4enrSyscfgen) { 7357 pub fn set_jpgdecrst(&mut self, val: super::vals::Mdmarst) {
8542 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 7358 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
8543 } 7359 }
8544 #[doc = "I2C4 Peripheral Clocks Enable"] 7360 #[doc = "FMC block reset"]
8545 pub const fn i2c4en(&self) -> super::vals::C1Apb4enrSyscfgen { 7361 pub const fn fmcrst(&self) -> super::vals::Mdmarst {
8546 let val = (self.0 >> 7usize) & 0x01;
8547 super::vals::C1Apb4enrSyscfgen(val as u8)
8548 }
8549 #[doc = "I2C4 Peripheral Clocks Enable"]
8550 pub fn set_i2c4en(&mut self, val: super::vals::C1Apb4enrSyscfgen) {
8551 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
8552 }
8553 #[doc = "LPTIM2 Peripheral Clocks Enable"]
8554 pub const fn lptim2en(&self) -> super::vals::C1Apb4enrSyscfgen {
8555 let val = (self.0 >> 9usize) & 0x01;
8556 super::vals::C1Apb4enrSyscfgen(val as u8)
8557 }
8558 #[doc = "LPTIM2 Peripheral Clocks Enable"]
8559 pub fn set_lptim2en(&mut self, val: super::vals::C1Apb4enrSyscfgen) {
8560 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
8561 }
8562 #[doc = "LPTIM3 Peripheral Clocks Enable"]
8563 pub const fn lptim3en(&self) -> super::vals::C1Apb4enrSyscfgen {
8564 let val = (self.0 >> 10usize) & 0x01;
8565 super::vals::C1Apb4enrSyscfgen(val as u8)
8566 }
8567 #[doc = "LPTIM3 Peripheral Clocks Enable"]
8568 pub fn set_lptim3en(&mut self, val: super::vals::C1Apb4enrSyscfgen) {
8569 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
8570 }
8571 #[doc = "LPTIM4 Peripheral Clocks Enable"]
8572 pub const fn lptim4en(&self) -> super::vals::C1Apb4enrSyscfgen {
8573 let val = (self.0 >> 11usize) & 0x01;
8574 super::vals::C1Apb4enrSyscfgen(val as u8)
8575 }
8576 #[doc = "LPTIM4 Peripheral Clocks Enable"]
8577 pub fn set_lptim4en(&mut self, val: super::vals::C1Apb4enrSyscfgen) {
8578 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
8579 }
8580 #[doc = "LPTIM5 Peripheral Clocks Enable"]
8581 pub const fn lptim5en(&self) -> super::vals::C1Apb4enrSyscfgen {
8582 let val = (self.0 >> 12usize) & 0x01; 7362 let val = (self.0 >> 12usize) & 0x01;
8583 super::vals::C1Apb4enrSyscfgen(val as u8) 7363 super::vals::Mdmarst(val as u8)
8584 } 7364 }
8585 #[doc = "LPTIM5 Peripheral Clocks Enable"] 7365 #[doc = "FMC block reset"]
8586 pub fn set_lptim5en(&mut self, val: super::vals::C1Apb4enrSyscfgen) { 7366 pub fn set_fmcrst(&mut self, val: super::vals::Mdmarst) {
8587 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize); 7367 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
8588 } 7368 }
8589 #[doc = "COMP1/2 peripheral clock enable"] 7369 #[doc = "QUADSPI and QUADSPI delay block reset"]
8590 pub const fn comp12en(&self) -> super::vals::C1Apb4enrSyscfgen { 7370 pub const fn qspirst(&self) -> super::vals::Mdmarst {
8591 let val = (self.0 >> 14usize) & 0x01; 7371 let val = (self.0 >> 14usize) & 0x01;
8592 super::vals::C1Apb4enrSyscfgen(val as u8) 7372 super::vals::Mdmarst(val as u8)
8593 } 7373 }
8594 #[doc = "COMP1/2 peripheral clock enable"] 7374 #[doc = "QUADSPI and QUADSPI delay block reset"]
8595 pub fn set_comp12en(&mut self, val: super::vals::C1Apb4enrSyscfgen) { 7375 pub fn set_qspirst(&mut self, val: super::vals::Mdmarst) {
8596 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 7376 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
8597 } 7377 }
8598 #[doc = "VREF peripheral clock enable"] 7378 #[doc = "SDMMC1 and SDMMC1 delay block reset"]
8599 pub const fn vrefen(&self) -> super::vals::C1Apb4enrSyscfgen { 7379 pub const fn sdmmc1rst(&self) -> super::vals::Mdmarst {
8600 let val = (self.0 >> 15usize) & 0x01;
8601 super::vals::C1Apb4enrSyscfgen(val as u8)
8602 }
8603 #[doc = "VREF peripheral clock enable"]
8604 pub fn set_vrefen(&mut self, val: super::vals::C1Apb4enrSyscfgen) {
8605 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
8606 }
8607 #[doc = "RTC APB Clock Enable"]
8608 pub const fn rtcapben(&self) -> super::vals::C1Apb4enrSyscfgen {
8609 let val = (self.0 >> 16usize) & 0x01; 7380 let val = (self.0 >> 16usize) & 0x01;
8610 super::vals::C1Apb4enrSyscfgen(val as u8) 7381 super::vals::Mdmarst(val as u8)
8611 } 7382 }
8612 #[doc = "RTC APB Clock Enable"] 7383 #[doc = "SDMMC1 and SDMMC1 delay block reset"]
8613 pub fn set_rtcapben(&mut self, val: super::vals::C1Apb4enrSyscfgen) { 7384 pub fn set_sdmmc1rst(&mut self, val: super::vals::Mdmarst) {
8614 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize); 7385 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
8615 } 7386 }
8616 #[doc = "SAI4 Peripheral Clocks Enable"] 7387 #[doc = "CPU reset"]
8617 pub const fn sai4en(&self) -> super::vals::C1Apb4enrSyscfgen { 7388 pub const fn cpurst(&self) -> super::vals::Mdmarst {
8618 let val = (self.0 >> 21usize) & 0x01; 7389 let val = (self.0 >> 31usize) & 0x01;
8619 super::vals::C1Apb4enrSyscfgen(val as u8) 7390 super::vals::Mdmarst(val as u8)
8620 }
8621 #[doc = "SAI4 Peripheral Clocks Enable"]
8622 pub fn set_sai4en(&mut self, val: super::vals::C1Apb4enrSyscfgen) {
8623 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize);
8624 }
8625 }
8626 impl Default for C1Apb4enr {
8627 fn default() -> C1Apb4enr {
8628 C1Apb4enr(0)
8629 }
8630 }
8631 #[doc = "RCC APB3 Clock Register"]
8632 #[repr(transparent)]
8633 #[derive(Copy, Clone, Eq, PartialEq)]
8634 pub struct C1Apb3enr(pub u32);
8635 impl C1Apb3enr {
8636 #[doc = "LTDC peripheral clock enable"]
8637 pub const fn ltdcen(&self) -> super::vals::C1Apb3enrLtdcen {
8638 let val = (self.0 >> 3usize) & 0x01;
8639 super::vals::C1Apb3enrLtdcen(val as u8)
8640 }
8641 #[doc = "LTDC peripheral clock enable"]
8642 pub fn set_ltdcen(&mut self, val: super::vals::C1Apb3enrLtdcen) {
8643 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
8644 }
8645 #[doc = "WWDG1 Clock Enable"]
8646 pub const fn wwdg1en(&self) -> super::vals::C1Apb3enrLtdcen {
8647 let val = (self.0 >> 6usize) & 0x01;
8648 super::vals::C1Apb3enrLtdcen(val as u8)
8649 } 7391 }
8650 #[doc = "WWDG1 Clock Enable"] 7392 #[doc = "CPU reset"]
8651 pub fn set_wwdg1en(&mut self, val: super::vals::C1Apb3enrLtdcen) { 7393 pub fn set_cpurst(&mut self, val: super::vals::Mdmarst) {
8652 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize); 7394 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize);
8653 } 7395 }
8654 } 7396 }
8655 impl Default for C1Apb3enr { 7397 impl Default for Ahb3rstr {
8656 fn default() -> C1Apb3enr { 7398 fn default() -> Ahb3rstr {
8657 C1Apb3enr(0) 7399 Ahb3rstr(0)
8658 } 7400 }
8659 } 7401 }
8660 #[doc = "RCC AHB2 Clock Register"] 7402 #[doc = "RCC Domain 3 Kernel Clock Configuration Register"]
8661 #[repr(transparent)] 7403 #[repr(transparent)]
8662 #[derive(Copy, Clone, Eq, PartialEq)] 7404 #[derive(Copy, Clone, Eq, PartialEq)]
8663 pub struct C1Ahb2enr(pub u32); 7405 pub struct D3ccipr(pub u32);
8664 impl C1Ahb2enr { 7406 impl D3ccipr {
8665 #[doc = "DCMI peripheral clock"] 7407 #[doc = "LPUART1 kernel clock source selection"]
8666 pub const fn dcmien(&self) -> super::vals::C1Ahb2enrDcmien { 7408 pub const fn lpuart1sel(&self) -> super::vals::Lpuart1sel {
8667 let val = (self.0 >> 0usize) & 0x01; 7409 let val = (self.0 >> 0usize) & 0x07;
8668 super::vals::C1Ahb2enrDcmien(val as u8) 7410 super::vals::Lpuart1sel(val as u8)
8669 } 7411 }
8670 #[doc = "DCMI peripheral clock"] 7412 #[doc = "LPUART1 kernel clock source selection"]
8671 pub fn set_dcmien(&mut self, val: super::vals::C1Ahb2enrDcmien) { 7413 pub fn set_lpuart1sel(&mut self, val: super::vals::Lpuart1sel) {
8672 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 7414 self.0 = (self.0 & !(0x07 << 0usize)) | (((val.0 as u32) & 0x07) << 0usize);
8673 } 7415 }
8674 #[doc = "CRYPT peripheral clock enable"] 7416 #[doc = "I2C4 kernel clock source selection"]
8675 pub const fn crypten(&self) -> super::vals::C1Ahb2enrDcmien { 7417 pub const fn i2c4sel(&self) -> super::vals::I2c4sel {
8676 let val = (self.0 >> 4usize) & 0x01; 7418 let val = (self.0 >> 8usize) & 0x03;
8677 super::vals::C1Ahb2enrDcmien(val as u8) 7419 super::vals::I2c4sel(val as u8)
8678 } 7420 }
8679 #[doc = "CRYPT peripheral clock enable"] 7421 #[doc = "I2C4 kernel clock source selection"]
8680 pub fn set_crypten(&mut self, val: super::vals::C1Ahb2enrDcmien) { 7422 pub fn set_i2c4sel(&mut self, val: super::vals::I2c4sel) {
8681 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 7423 self.0 = (self.0 & !(0x03 << 8usize)) | (((val.0 as u32) & 0x03) << 8usize);
8682 } 7424 }
8683 #[doc = "HASH peripheral clock enable"] 7425 #[doc = "LPTIM2 kernel clock source selection"]
8684 pub const fn hashen(&self) -> super::vals::C1Ahb2enrDcmien { 7426 pub const fn lptim2sel(&self) -> super::vals::Lptim2sel {
8685 let val = (self.0 >> 5usize) & 0x01; 7427 let val = (self.0 >> 10usize) & 0x07;
8686 super::vals::C1Ahb2enrDcmien(val as u8) 7428 super::vals::Lptim2sel(val as u8)
8687 } 7429 }
8688 #[doc = "HASH peripheral clock enable"] 7430 #[doc = "LPTIM2 kernel clock source selection"]
8689 pub fn set_hashen(&mut self, val: super::vals::C1Ahb2enrDcmien) { 7431 pub fn set_lptim2sel(&mut self, val: super::vals::Lptim2sel) {
8690 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 7432 self.0 = (self.0 & !(0x07 << 10usize)) | (((val.0 as u32) & 0x07) << 10usize);
8691 } 7433 }
8692 #[doc = "RNG peripheral clocks enable"] 7434 #[doc = "LPTIM3,4,5 kernel clock source selection"]
8693 pub const fn rngen(&self) -> super::vals::C1Ahb2enrDcmien { 7435 pub const fn lptim345sel(&self) -> super::vals::Lptim2sel {
8694 let val = (self.0 >> 6usize) & 0x01; 7436 let val = (self.0 >> 13usize) & 0x07;
8695 super::vals::C1Ahb2enrDcmien(val as u8) 7437 super::vals::Lptim2sel(val as u8)
8696 } 7438 }
8697 #[doc = "RNG peripheral clocks enable"] 7439 #[doc = "LPTIM3,4,5 kernel clock source selection"]
8698 pub fn set_rngen(&mut self, val: super::vals::C1Ahb2enrDcmien) { 7440 pub fn set_lptim345sel(&mut self, val: super::vals::Lptim2sel) {
8699 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize); 7441 self.0 = (self.0 & !(0x07 << 13usize)) | (((val.0 as u32) & 0x07) << 13usize);
8700 } 7442 }
8701 #[doc = "SDMMC2 and SDMMC2 delay clock enable"] 7443 #[doc = "SAR ADC kernel clock source selection"]
8702 pub const fn sdmmc2en(&self) -> super::vals::C1Ahb2enrDcmien { 7444 pub const fn adcsel(&self) -> super::vals::Adcsel {
8703 let val = (self.0 >> 9usize) & 0x01; 7445 let val = (self.0 >> 16usize) & 0x03;
8704 super::vals::C1Ahb2enrDcmien(val as u8) 7446 super::vals::Adcsel(val as u8)
8705 } 7447 }
8706 #[doc = "SDMMC2 and SDMMC2 delay clock enable"] 7448 #[doc = "SAR ADC kernel clock source selection"]
8707 pub fn set_sdmmc2en(&mut self, val: super::vals::C1Ahb2enrDcmien) { 7449 pub fn set_adcsel(&mut self, val: super::vals::Adcsel) {
8708 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize); 7450 self.0 = (self.0 & !(0x03 << 16usize)) | (((val.0 as u32) & 0x03) << 16usize);
8709 } 7451 }
8710 #[doc = "SRAM1 block enable"] 7452 #[doc = "Sub-Block A of SAI4 kernel clock source selection"]
8711 pub const fn sram1en(&self) -> super::vals::C1Ahb2enrDcmien { 7453 pub const fn sai4asel(&self) -> super::vals::Sai4asel {
8712 let val = (self.0 >> 29usize) & 0x01; 7454 let val = (self.0 >> 21usize) & 0x07;
8713 super::vals::C1Ahb2enrDcmien(val as u8) 7455 super::vals::Sai4asel(val as u8)
8714 } 7456 }
8715 #[doc = "SRAM1 block enable"] 7457 #[doc = "Sub-Block A of SAI4 kernel clock source selection"]
8716 pub fn set_sram1en(&mut self, val: super::vals::C1Ahb2enrDcmien) { 7458 pub fn set_sai4asel(&mut self, val: super::vals::Sai4asel) {
8717 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize); 7459 self.0 = (self.0 & !(0x07 << 21usize)) | (((val.0 as u32) & 0x07) << 21usize);
8718 } 7460 }
8719 #[doc = "SRAM2 block enable"] 7461 #[doc = "Sub-Block B of SAI4 kernel clock source selection"]
8720 pub const fn sram2en(&self) -> super::vals::C1Ahb2enrDcmien { 7462 pub const fn sai4bsel(&self) -> super::vals::Sai4asel {
8721 let val = (self.0 >> 30usize) & 0x01; 7463 let val = (self.0 >> 24usize) & 0x07;
8722 super::vals::C1Ahb2enrDcmien(val as u8) 7464 super::vals::Sai4asel(val as u8)
8723 } 7465 }
8724 #[doc = "SRAM2 block enable"] 7466 #[doc = "Sub-Block B of SAI4 kernel clock source selection"]
8725 pub fn set_sram2en(&mut self, val: super::vals::C1Ahb2enrDcmien) { 7467 pub fn set_sai4bsel(&mut self, val: super::vals::Sai4asel) {
8726 self.0 = (self.0 & !(0x01 << 30usize)) | (((val.0 as u32) & 0x01) << 30usize); 7468 self.0 = (self.0 & !(0x07 << 24usize)) | (((val.0 as u32) & 0x07) << 24usize);
8727 } 7469 }
8728 #[doc = "SRAM3 block enable"] 7470 #[doc = "SPI6 kernel clock source selection"]
8729 pub const fn sram3en(&self) -> super::vals::C1Ahb2enrDcmien { 7471 pub const fn spi6sel(&self) -> super::vals::Spi6sel {
8730 let val = (self.0 >> 31usize) & 0x01; 7472 let val = (self.0 >> 28usize) & 0x07;
8731 super::vals::C1Ahb2enrDcmien(val as u8) 7473 super::vals::Spi6sel(val as u8)
8732 } 7474 }
8733 #[doc = "SRAM3 block enable"] 7475 #[doc = "SPI6 kernel clock source selection"]
8734 pub fn set_sram3en(&mut self, val: super::vals::C1Ahb2enrDcmien) { 7476 pub fn set_spi6sel(&mut self, val: super::vals::Spi6sel) {
8735 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize); 7477 self.0 = (self.0 & !(0x07 << 28usize)) | (((val.0 as u32) & 0x07) << 28usize);
8736 } 7478 }
8737 } 7479 }
8738 impl Default for C1Ahb2enr { 7480 impl Default for D3ccipr {
8739 fn default() -> C1Ahb2enr { 7481 fn default() -> D3ccipr {
8740 C1Ahb2enr(0) 7482 D3ccipr(0)
8741 } 7483 }
8742 } 7484 }
8743 #[doc = "RCC APB1 Peripheral Reset Register"] 7485 #[doc = "RCC APB1 Peripheral Reset Register"]
@@ -8967,293 +7709,370 @@ pub mod rcc_h7 {
8967 Apb1lrstr(0) 7709 Apb1lrstr(0)
8968 } 7710 }
8969 } 7711 }
8970 #[doc = "RCC Domain 2 Kernel Clock Configuration Register"] 7712 #[doc = "RCC APB4 Sleep Clock Register"]
8971 #[repr(transparent)] 7713 #[repr(transparent)]
8972 #[derive(Copy, Clone, Eq, PartialEq)] 7714 #[derive(Copy, Clone, Eq, PartialEq)]
8973 pub struct D2ccip2r(pub u32); 7715 pub struct Apb4lpenr(pub u32);
8974 impl D2ccip2r { 7716 impl Apb4lpenr {
8975 #[doc = "USART2/3, UART4,5, 7/8 (APB1) kernel clock source selection"] 7717 #[doc = "SYSCFG peripheral clock enable during CSleep mode"]
8976 pub const fn usart234578sel(&self) -> super::vals::Usart234578sel { 7718 pub const fn syscfglpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
8977 let val = (self.0 >> 0usize) & 0x07; 7719 let val = (self.0 >> 1usize) & 0x01;
8978 super::vals::Usart234578sel(val as u8) 7720 super::vals::Apb4lpenrSyscfglpen(val as u8)
8979 } 7721 }
8980 #[doc = "USART2/3, UART4,5, 7/8 (APB1) kernel clock source selection"] 7722 #[doc = "SYSCFG peripheral clock enable during CSleep mode"]
8981 pub fn set_usart234578sel(&mut self, val: super::vals::Usart234578sel) { 7723 pub fn set_syscfglpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
8982 self.0 = (self.0 & !(0x07 << 0usize)) | (((val.0 as u32) & 0x07) << 0usize); 7724 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
8983 } 7725 }
8984 #[doc = "USART1 and 6 kernel clock source selection"] 7726 #[doc = "LPUART1 Peripheral Clocks Enable During CSleep Mode"]
8985 pub const fn usart16sel(&self) -> super::vals::Usart16sel { 7727 pub const fn lpuart1lpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
8986 let val = (self.0 >> 3usize) & 0x07; 7728 let val = (self.0 >> 3usize) & 0x01;
8987 super::vals::Usart16sel(val as u8) 7729 super::vals::Apb4lpenrSyscfglpen(val as u8)
8988 } 7730 }
8989 #[doc = "USART1 and 6 kernel clock source selection"] 7731 #[doc = "LPUART1 Peripheral Clocks Enable During CSleep Mode"]
8990 pub fn set_usart16sel(&mut self, val: super::vals::Usart16sel) { 7732 pub fn set_lpuart1lpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
8991 self.0 = (self.0 & !(0x07 << 3usize)) | (((val.0 as u32) & 0x07) << 3usize); 7733 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
8992 } 7734 }
8993 #[doc = "RNG kernel clock source selection"] 7735 #[doc = "SPI6 Peripheral Clocks Enable During CSleep Mode"]
8994 pub const fn rngsel(&self) -> super::vals::Rngsel { 7736 pub const fn spi6lpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
8995 let val = (self.0 >> 8usize) & 0x03; 7737 let val = (self.0 >> 5usize) & 0x01;
8996 super::vals::Rngsel(val as u8) 7738 super::vals::Apb4lpenrSyscfglpen(val as u8)
8997 } 7739 }
8998 #[doc = "RNG kernel clock source selection"] 7740 #[doc = "SPI6 Peripheral Clocks Enable During CSleep Mode"]
8999 pub fn set_rngsel(&mut self, val: super::vals::Rngsel) { 7741 pub fn set_spi6lpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
9000 self.0 = (self.0 & !(0x03 << 8usize)) | (((val.0 as u32) & 0x03) << 8usize); 7742 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
9001 } 7743 }
9002 #[doc = "I2C1,2,3 kernel clock source selection"] 7744 #[doc = "I2C4 Peripheral Clocks Enable During CSleep Mode"]
9003 pub const fn i2c123sel(&self) -> super::vals::I2c123sel { 7745 pub const fn i2c4lpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
9004 let val = (self.0 >> 12usize) & 0x03; 7746 let val = (self.0 >> 7usize) & 0x01;
9005 super::vals::I2c123sel(val as u8) 7747 super::vals::Apb4lpenrSyscfglpen(val as u8)
9006 } 7748 }
9007 #[doc = "I2C1,2,3 kernel clock source selection"] 7749 #[doc = "I2C4 Peripheral Clocks Enable During CSleep Mode"]
9008 pub fn set_i2c123sel(&mut self, val: super::vals::I2c123sel) { 7750 pub fn set_i2c4lpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
9009 self.0 = (self.0 & !(0x03 << 12usize)) | (((val.0 as u32) & 0x03) << 12usize); 7751 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
9010 } 7752 }
9011 #[doc = "USBOTG 1 and 2 kernel clock source selection"] 7753 #[doc = "LPTIM2 Peripheral Clocks Enable During CSleep Mode"]
9012 pub const fn usbsel(&self) -> super::vals::Usbsel { 7754 pub const fn lptim2lpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
9013 let val = (self.0 >> 20usize) & 0x03; 7755 let val = (self.0 >> 9usize) & 0x01;
9014 super::vals::Usbsel(val as u8) 7756 super::vals::Apb4lpenrSyscfglpen(val as u8)
9015 } 7757 }
9016 #[doc = "USBOTG 1 and 2 kernel clock source selection"] 7758 #[doc = "LPTIM2 Peripheral Clocks Enable During CSleep Mode"]
9017 pub fn set_usbsel(&mut self, val: super::vals::Usbsel) { 7759 pub fn set_lptim2lpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
9018 self.0 = (self.0 & !(0x03 << 20usize)) | (((val.0 as u32) & 0x03) << 20usize); 7760 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
9019 } 7761 }
9020 #[doc = "HDMI-CEC kernel clock source selection"] 7762 #[doc = "LPTIM3 Peripheral Clocks Enable During CSleep Mode"]
9021 pub const fn cecsel(&self) -> super::vals::Cecsel { 7763 pub const fn lptim3lpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
9022 let val = (self.0 >> 22usize) & 0x03; 7764 let val = (self.0 >> 10usize) & 0x01;
9023 super::vals::Cecsel(val as u8) 7765 super::vals::Apb4lpenrSyscfglpen(val as u8)
9024 } 7766 }
9025 #[doc = "HDMI-CEC kernel clock source selection"] 7767 #[doc = "LPTIM3 Peripheral Clocks Enable During CSleep Mode"]
9026 pub fn set_cecsel(&mut self, val: super::vals::Cecsel) { 7768 pub fn set_lptim3lpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
9027 self.0 = (self.0 & !(0x03 << 22usize)) | (((val.0 as u32) & 0x03) << 22usize); 7769 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
9028 } 7770 }
9029 #[doc = "LPTIM1 kernel clock source selection"] 7771 #[doc = "LPTIM4 Peripheral Clocks Enable During CSleep Mode"]
9030 pub const fn lptim1sel(&self) -> super::vals::Lptim1sel { 7772 pub const fn lptim4lpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
9031 let val = (self.0 >> 28usize) & 0x07; 7773 let val = (self.0 >> 11usize) & 0x01;
9032 super::vals::Lptim1sel(val as u8) 7774 super::vals::Apb4lpenrSyscfglpen(val as u8)
9033 } 7775 }
9034 #[doc = "LPTIM1 kernel clock source selection"] 7776 #[doc = "LPTIM4 Peripheral Clocks Enable During CSleep Mode"]
9035 pub fn set_lptim1sel(&mut self, val: super::vals::Lptim1sel) { 7777 pub fn set_lptim4lpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
9036 self.0 = (self.0 & !(0x07 << 28usize)) | (((val.0 as u32) & 0x07) << 28usize); 7778 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
7779 }
7780 #[doc = "LPTIM5 Peripheral Clocks Enable During CSleep Mode"]
7781 pub const fn lptim5lpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
7782 let val = (self.0 >> 12usize) & 0x01;
7783 super::vals::Apb4lpenrSyscfglpen(val as u8)
7784 }
7785 #[doc = "LPTIM5 Peripheral Clocks Enable During CSleep Mode"]
7786 pub fn set_lptim5lpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
7787 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
7788 }
7789 #[doc = "COMP1/2 peripheral clock enable during CSleep mode"]
7790 pub const fn comp12lpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
7791 let val = (self.0 >> 14usize) & 0x01;
7792 super::vals::Apb4lpenrSyscfglpen(val as u8)
7793 }
7794 #[doc = "COMP1/2 peripheral clock enable during CSleep mode"]
7795 pub fn set_comp12lpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
7796 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
7797 }
7798 #[doc = "VREF peripheral clock enable during CSleep mode"]
7799 pub const fn vreflpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
7800 let val = (self.0 >> 15usize) & 0x01;
7801 super::vals::Apb4lpenrSyscfglpen(val as u8)
7802 }
7803 #[doc = "VREF peripheral clock enable during CSleep mode"]
7804 pub fn set_vreflpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
7805 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
7806 }
7807 #[doc = "RTC APB Clock Enable During CSleep Mode"]
7808 pub const fn rtcapblpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
7809 let val = (self.0 >> 16usize) & 0x01;
7810 super::vals::Apb4lpenrSyscfglpen(val as u8)
7811 }
7812 #[doc = "RTC APB Clock Enable During CSleep Mode"]
7813 pub fn set_rtcapblpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
7814 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
7815 }
7816 #[doc = "SAI4 Peripheral Clocks Enable During CSleep Mode"]
7817 pub const fn sai4lpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
7818 let val = (self.0 >> 21usize) & 0x01;
7819 super::vals::Apb4lpenrSyscfglpen(val as u8)
7820 }
7821 #[doc = "SAI4 Peripheral Clocks Enable During CSleep Mode"]
7822 pub fn set_sai4lpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
7823 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize);
9037 } 7824 }
9038 } 7825 }
9039 impl Default for D2ccip2r { 7826 impl Default for Apb4lpenr {
9040 fn default() -> D2ccip2r { 7827 fn default() -> Apb4lpenr {
9041 D2ccip2r(0) 7828 Apb4lpenr(0)
9042 } 7829 }
9043 } 7830 }
9044 #[doc = "RCC AHB3 Sleep Clock Register"] 7831 #[doc = "RCC AHB1 Sleep Clock Register"]
9045 #[repr(transparent)] 7832 #[repr(transparent)]
9046 #[derive(Copy, Clone, Eq, PartialEq)] 7833 #[derive(Copy, Clone, Eq, PartialEq)]
9047 pub struct C1Ahb3lpenr(pub u32); 7834 pub struct C1Ahb1lpenr(pub u32);
9048 impl C1Ahb3lpenr { 7835 impl C1Ahb1lpenr {
9049 #[doc = "MDMA Clock Enable During CSleep Mode"] 7836 #[doc = "DMA1 Clock Enable During CSleep Mode"]
9050 pub const fn mdmalpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen { 7837 pub const fn dma1lpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen {
9051 let val = (self.0 >> 0usize) & 0x01; 7838 let val = (self.0 >> 0usize) & 0x01;
9052 super::vals::C1Ahb3lpenrMdmalpen(val as u8) 7839 super::vals::C1Ahb1lpenrDma1lpen(val as u8)
9053 } 7840 }
9054 #[doc = "MDMA Clock Enable During CSleep Mode"] 7841 #[doc = "DMA1 Clock Enable During CSleep Mode"]
9055 pub fn set_mdmalpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) { 7842 pub fn set_dma1lpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) {
9056 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 7843 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
9057 } 7844 }
9058 #[doc = "DMA2D Clock Enable During CSleep Mode"] 7845 #[doc = "DMA2 Clock Enable During CSleep Mode"]
9059 pub const fn dma2dlpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen { 7846 pub const fn dma2lpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen {
9060 let val = (self.0 >> 4usize) & 0x01; 7847 let val = (self.0 >> 1usize) & 0x01;
9061 super::vals::C1Ahb3lpenrMdmalpen(val as u8) 7848 super::vals::C1Ahb1lpenrDma1lpen(val as u8)
9062 } 7849 }
9063 #[doc = "DMA2D Clock Enable During CSleep Mode"] 7850 #[doc = "DMA2 Clock Enable During CSleep Mode"]
9064 pub fn set_dma2dlpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) { 7851 pub fn set_dma2lpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) {
9065 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 7852 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
9066 } 7853 }
9067 #[doc = "JPGDEC Clock Enable During CSleep Mode"] 7854 #[doc = "ADC1/2 Peripheral Clocks Enable During CSleep Mode"]
9068 pub const fn jpgdeclpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen { 7855 pub const fn adc12lpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen {
9069 let val = (self.0 >> 5usize) & 0x01; 7856 let val = (self.0 >> 5usize) & 0x01;
9070 super::vals::C1Ahb3lpenrMdmalpen(val as u8) 7857 super::vals::C1Ahb1lpenrDma1lpen(val as u8)
9071 } 7858 }
9072 #[doc = "JPGDEC Clock Enable During CSleep Mode"] 7859 #[doc = "ADC1/2 Peripheral Clocks Enable During CSleep Mode"]
9073 pub fn set_jpgdeclpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) { 7860 pub fn set_adc12lpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) {
9074 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 7861 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
9075 } 7862 }
9076 #[doc = "Flash interface clock enable during csleep mode"] 7863 #[doc = "Ethernet MAC bus interface Clock Enable During CSleep Mode"]
9077 pub const fn flashpren(&self) -> bool { 7864 pub const fn eth1maclpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen {
9078 let val = (self.0 >> 8usize) & 0x01; 7865 let val = (self.0 >> 15usize) & 0x01;
9079 val != 0 7866 super::vals::C1Ahb1lpenrDma1lpen(val as u8)
9080 }
9081 #[doc = "Flash interface clock enable during csleep mode"]
9082 pub fn set_flashpren(&mut self, val: bool) {
9083 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
9084 }
9085 #[doc = "FMC Peripheral Clocks Enable During CSleep Mode"]
9086 pub const fn fmclpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen {
9087 let val = (self.0 >> 12usize) & 0x01;
9088 super::vals::C1Ahb3lpenrMdmalpen(val as u8)
9089 }
9090 #[doc = "FMC Peripheral Clocks Enable During CSleep Mode"]
9091 pub fn set_fmclpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) {
9092 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
9093 }
9094 #[doc = "QUADSPI and QUADSPI Delay Clock Enable During CSleep Mode"]
9095 pub const fn qspilpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen {
9096 let val = (self.0 >> 14usize) & 0x01;
9097 super::vals::C1Ahb3lpenrMdmalpen(val as u8)
9098 } 7867 }
9099 #[doc = "QUADSPI and QUADSPI Delay Clock Enable During CSleep Mode"] 7868 #[doc = "Ethernet MAC bus interface Clock Enable During CSleep Mode"]
9100 pub fn set_qspilpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) { 7869 pub fn set_eth1maclpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) {
9101 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 7870 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
9102 } 7871 }
9103 #[doc = "SDMMC1 and SDMMC1 Delay Clock Enable During CSleep Mode"] 7872 #[doc = "Ethernet Transmission Clock Enable During CSleep Mode"]
9104 pub const fn sdmmc1lpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen { 7873 pub const fn eth1txlpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen {
9105 let val = (self.0 >> 16usize) & 0x01; 7874 let val = (self.0 >> 16usize) & 0x01;
9106 super::vals::C1Ahb3lpenrMdmalpen(val as u8) 7875 super::vals::C1Ahb1lpenrDma1lpen(val as u8)
9107 } 7876 }
9108 #[doc = "SDMMC1 and SDMMC1 Delay Clock Enable During CSleep Mode"] 7877 #[doc = "Ethernet Transmission Clock Enable During CSleep Mode"]
9109 pub fn set_sdmmc1lpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) { 7878 pub fn set_eth1txlpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) {
9110 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize); 7879 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
9111 } 7880 }
9112 #[doc = "D1DTCM1 Block Clock Enable During CSleep mode"] 7881 #[doc = "Ethernet Reception Clock Enable During CSleep Mode"]
9113 pub const fn d1dtcm1lpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen { 7882 pub const fn eth1rxlpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen {
9114 let val = (self.0 >> 28usize) & 0x01; 7883 let val = (self.0 >> 17usize) & 0x01;
9115 super::vals::C1Ahb3lpenrMdmalpen(val as u8) 7884 super::vals::C1Ahb1lpenrDma1lpen(val as u8)
9116 } 7885 }
9117 #[doc = "D1DTCM1 Block Clock Enable During CSleep mode"] 7886 #[doc = "Ethernet Reception Clock Enable During CSleep Mode"]
9118 pub fn set_d1dtcm1lpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) { 7887 pub fn set_eth1rxlpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) {
9119 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize); 7888 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize);
9120 } 7889 }
9121 #[doc = "D1 DTCM2 Block Clock Enable During CSleep mode"] 7890 #[doc = "USB1OTG peripheral clock enable during CSleep mode"]
9122 pub const fn dtcm2lpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen { 7891 pub const fn usb1otglpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen {
9123 let val = (self.0 >> 29usize) & 0x01; 7892 let val = (self.0 >> 25usize) & 0x01;
9124 super::vals::C1Ahb3lpenrMdmalpen(val as u8) 7893 super::vals::C1Ahb1lpenrDma1lpen(val as u8)
9125 } 7894 }
9126 #[doc = "D1 DTCM2 Block Clock Enable During CSleep mode"] 7895 #[doc = "USB1OTG peripheral clock enable during CSleep mode"]
9127 pub fn set_dtcm2lpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) { 7896 pub fn set_usb1otglpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) {
9128 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize); 7897 self.0 = (self.0 & !(0x01 << 25usize)) | (((val.0 as u32) & 0x01) << 25usize);
9129 } 7898 }
9130 #[doc = "D1ITCM Block Clock Enable During CSleep mode"] 7899 #[doc = "USB_PHY1 clock enable during CSleep mode"]
9131 pub const fn itcmlpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen { 7900 pub const fn usb1ulpilpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen {
9132 let val = (self.0 >> 30usize) & 0x01; 7901 let val = (self.0 >> 26usize) & 0x01;
9133 super::vals::C1Ahb3lpenrMdmalpen(val as u8) 7902 super::vals::C1Ahb1lpenrDma1lpen(val as u8)
9134 } 7903 }
9135 #[doc = "D1ITCM Block Clock Enable During CSleep mode"] 7904 #[doc = "USB_PHY1 clock enable during CSleep mode"]
9136 pub fn set_itcmlpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) { 7905 pub fn set_usb1ulpilpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) {
9137 self.0 = (self.0 & !(0x01 << 30usize)) | (((val.0 as u32) & 0x01) << 30usize); 7906 self.0 = (self.0 & !(0x01 << 26usize)) | (((val.0 as u32) & 0x01) << 26usize);
9138 } 7907 }
9139 #[doc = "AXISRAM Block Clock Enable During CSleep mode"] 7908 #[doc = "USB2OTG peripheral clock enable during CSleep mode"]
9140 pub const fn axisramlpen(&self) -> super::vals::C1Ahb3lpenrMdmalpen { 7909 pub const fn usb2otglpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen {
9141 let val = (self.0 >> 31usize) & 0x01; 7910 let val = (self.0 >> 27usize) & 0x01;
9142 super::vals::C1Ahb3lpenrMdmalpen(val as u8) 7911 super::vals::C1Ahb1lpenrDma1lpen(val as u8)
9143 } 7912 }
9144 #[doc = "AXISRAM Block Clock Enable During CSleep mode"] 7913 #[doc = "USB2OTG peripheral clock enable during CSleep mode"]
9145 pub fn set_axisramlpen(&mut self, val: super::vals::C1Ahb3lpenrMdmalpen) { 7914 pub fn set_usb2otglpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) {
9146 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize); 7915 self.0 = (self.0 & !(0x01 << 27usize)) | (((val.0 as u32) & 0x01) << 27usize);
7916 }
7917 #[doc = "USB_PHY2 clocks enable during CSleep mode"]
7918 pub const fn usb2ulpilpen(&self) -> super::vals::C1Ahb1lpenrDma1lpen {
7919 let val = (self.0 >> 28usize) & 0x01;
7920 super::vals::C1Ahb1lpenrDma1lpen(val as u8)
7921 }
7922 #[doc = "USB_PHY2 clocks enable during CSleep mode"]
7923 pub fn set_usb2ulpilpen(&mut self, val: super::vals::C1Ahb1lpenrDma1lpen) {
7924 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
9147 } 7925 }
9148 } 7926 }
9149 impl Default for C1Ahb3lpenr { 7927 impl Default for C1Ahb1lpenr {
9150 fn default() -> C1Ahb3lpenr { 7928 fn default() -> C1Ahb1lpenr {
9151 C1Ahb3lpenr(0) 7929 C1Ahb1lpenr(0)
9152 } 7930 }
9153 } 7931 }
9154 #[doc = "RCC HSI configuration register"] 7932 #[doc = "RCC APB2 Sleep Clock Register"]
9155 #[repr(transparent)] 7933 #[repr(transparent)]
9156 #[derive(Copy, Clone, Eq, PartialEq)] 7934 #[derive(Copy, Clone, Eq, PartialEq)]
9157 pub struct Hsicfgr(pub u32); 7935 pub struct Apb2lpenr(pub u32);
9158 impl Hsicfgr { 7936 impl Apb2lpenr {
9159 #[doc = "HSI clock calibration"] 7937 #[doc = "TIM1 peripheral clock enable during CSleep mode"]
9160 pub const fn hsical(&self) -> u16 { 7938 pub const fn tim1lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
9161 let val = (self.0 >> 0usize) & 0x0fff; 7939 let val = (self.0 >> 0usize) & 0x01;
9162 val as u16 7940 super::vals::Apb2lpenrTim1lpen(val as u8)
9163 } 7941 }
9164 #[doc = "HSI clock calibration"] 7942 #[doc = "TIM1 peripheral clock enable during CSleep mode"]
9165 pub fn set_hsical(&mut self, val: u16) { 7943 pub fn set_tim1lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
9166 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize); 7944 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
9167 } 7945 }
9168 #[doc = "HSI clock trimming"] 7946 #[doc = "TIM8 peripheral clock enable during CSleep mode"]
9169 pub const fn hsitrim(&self) -> u8 { 7947 pub const fn tim8lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
9170 let val = (self.0 >> 24usize) & 0x7f; 7948 let val = (self.0 >> 1usize) & 0x01;
9171 val as u8 7949 super::vals::Apb2lpenrTim1lpen(val as u8)
9172 } 7950 }
9173 #[doc = "HSI clock trimming"] 7951 #[doc = "TIM8 peripheral clock enable during CSleep mode"]
9174 pub fn set_hsitrim(&mut self, val: u8) { 7952 pub fn set_tim8lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
9175 self.0 = (self.0 & !(0x7f << 24usize)) | (((val as u32) & 0x7f) << 24usize); 7953 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
9176 } 7954 }
9177 } 7955 #[doc = "USART1 Peripheral Clocks Enable During CSleep Mode"]
9178 impl Default for Hsicfgr { 7956 pub const fn usart1lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
9179 fn default() -> Hsicfgr { 7957 let val = (self.0 >> 4usize) & 0x01;
9180 Hsicfgr(0) 7958 super::vals::Apb2lpenrTim1lpen(val as u8)
9181 } 7959 }
9182 } 7960 #[doc = "USART1 Peripheral Clocks Enable During CSleep Mode"]
9183 #[doc = "RCC PLL2 Dividers Configuration Register"] 7961 pub fn set_usart1lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
9184 #[repr(transparent)] 7962 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
9185 #[derive(Copy, Clone, Eq, PartialEq)]
9186 pub struct Pll2divr(pub u32);
9187 impl Pll2divr {
9188 #[doc = "Multiplication factor for PLL1 VCO"]
9189 pub const fn divn2(&self) -> u16 {
9190 let val = (self.0 >> 0usize) & 0x01ff;
9191 val as u16
9192 } 7963 }
9193 #[doc = "Multiplication factor for PLL1 VCO"] 7964 #[doc = "USART6 Peripheral Clocks Enable During CSleep Mode"]
9194 pub fn set_divn2(&mut self, val: u16) { 7965 pub const fn usart6lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
9195 self.0 = (self.0 & !(0x01ff << 0usize)) | (((val as u32) & 0x01ff) << 0usize); 7966 let val = (self.0 >> 5usize) & 0x01;
7967 super::vals::Apb2lpenrTim1lpen(val as u8)
9196 } 7968 }
9197 #[doc = "PLL1 DIVP division factor"] 7969 #[doc = "USART6 Peripheral Clocks Enable During CSleep Mode"]
9198 pub const fn divp2(&self) -> u8 { 7970 pub fn set_usart6lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
9199 let val = (self.0 >> 9usize) & 0x7f; 7971 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
9200 val as u8
9201 } 7972 }
9202 #[doc = "PLL1 DIVP division factor"] 7973 #[doc = "SPI1 Peripheral Clocks Enable During CSleep Mode"]
9203 pub fn set_divp2(&mut self, val: u8) { 7974 pub const fn spi1lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
9204 self.0 = (self.0 & !(0x7f << 9usize)) | (((val as u32) & 0x7f) << 9usize); 7975 let val = (self.0 >> 12usize) & 0x01;
7976 super::vals::Apb2lpenrTim1lpen(val as u8)
9205 } 7977 }
9206 #[doc = "PLL1 DIVQ division factor"] 7978 #[doc = "SPI1 Peripheral Clocks Enable During CSleep Mode"]
9207 pub const fn divq2(&self) -> u8 { 7979 pub fn set_spi1lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
9208 let val = (self.0 >> 16usize) & 0x7f; 7980 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
9209 val as u8
9210 } 7981 }
9211 #[doc = "PLL1 DIVQ division factor"] 7982 #[doc = "SPI4 Peripheral Clocks Enable During CSleep Mode"]
9212 pub fn set_divq2(&mut self, val: u8) { 7983 pub const fn spi4lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
9213 self.0 = (self.0 & !(0x7f << 16usize)) | (((val as u32) & 0x7f) << 16usize); 7984 let val = (self.0 >> 13usize) & 0x01;
7985 super::vals::Apb2lpenrTim1lpen(val as u8)
9214 } 7986 }
9215 #[doc = "PLL1 DIVR division factor"] 7987 #[doc = "SPI4 Peripheral Clocks Enable During CSleep Mode"]
9216 pub const fn divr2(&self) -> u8 { 7988 pub fn set_spi4lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
9217 let val = (self.0 >> 24usize) & 0x7f; 7989 self.0 = (self.0 & !(0x01 << 13usize)) | (((val.0 as u32) & 0x01) << 13usize);
9218 val as u8
9219 } 7990 }
9220 #[doc = "PLL1 DIVR division factor"] 7991 #[doc = "TIM15 peripheral clock enable during CSleep mode"]
9221 pub fn set_divr2(&mut self, val: u8) { 7992 pub const fn tim15lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
9222 self.0 = (self.0 & !(0x7f << 24usize)) | (((val as u32) & 0x7f) << 24usize); 7993 let val = (self.0 >> 16usize) & 0x01;
7994 super::vals::Apb2lpenrTim1lpen(val as u8)
9223 } 7995 }
9224 } 7996 #[doc = "TIM15 peripheral clock enable during CSleep mode"]
9225 impl Default for Pll2divr { 7997 pub fn set_tim15lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
9226 fn default() -> Pll2divr { 7998 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
9227 Pll2divr(0)
9228 } 7999 }
9229 } 8000 #[doc = "TIM16 peripheral clock enable during CSleep mode"]
9230 #[doc = "RCC APB3 Clock Register"] 8001 pub const fn tim16lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
9231 #[repr(transparent)] 8002 let val = (self.0 >> 17usize) & 0x01;
9232 #[derive(Copy, Clone, Eq, PartialEq)] 8003 super::vals::Apb2lpenrTim1lpen(val as u8)
9233 pub struct Apb3enr(pub u32);
9234 impl Apb3enr {
9235 #[doc = "LTDC peripheral clock enable"]
9236 pub const fn ltdcen(&self) -> super::vals::Apb3enrLtdcen {
9237 let val = (self.0 >> 3usize) & 0x01;
9238 super::vals::Apb3enrLtdcen(val as u8)
9239 } 8004 }
9240 #[doc = "LTDC peripheral clock enable"] 8005 #[doc = "TIM16 peripheral clock enable during CSleep mode"]
9241 pub fn set_ltdcen(&mut self, val: super::vals::Apb3enrLtdcen) { 8006 pub fn set_tim16lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
9242 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize); 8007 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize);
9243 } 8008 }
9244 #[doc = "WWDG1 Clock Enable"] 8009 #[doc = "TIM17 peripheral clock enable during CSleep mode"]
9245 pub const fn wwdg1en(&self) -> super::vals::Apb3enrLtdcen { 8010 pub const fn tim17lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
9246 let val = (self.0 >> 6usize) & 0x01; 8011 let val = (self.0 >> 18usize) & 0x01;
9247 super::vals::Apb3enrLtdcen(val as u8) 8012 super::vals::Apb2lpenrTim1lpen(val as u8)
9248 } 8013 }
9249 #[doc = "WWDG1 Clock Enable"] 8014 #[doc = "TIM17 peripheral clock enable during CSleep mode"]
9250 pub fn set_wwdg1en(&mut self, val: super::vals::Apb3enrLtdcen) { 8015 pub fn set_tim17lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
9251 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize); 8016 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
8017 }
8018 #[doc = "SPI5 Peripheral Clocks Enable During CSleep Mode"]
8019 pub const fn spi5lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
8020 let val = (self.0 >> 20usize) & 0x01;
8021 super::vals::Apb2lpenrTim1lpen(val as u8)
8022 }
8023 #[doc = "SPI5 Peripheral Clocks Enable During CSleep Mode"]
8024 pub fn set_spi5lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
8025 self.0 = (self.0 & !(0x01 << 20usize)) | (((val.0 as u32) & 0x01) << 20usize);
8026 }
8027 #[doc = "SAI1 Peripheral Clocks Enable During CSleep Mode"]
8028 pub const fn sai1lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
8029 let val = (self.0 >> 22usize) & 0x01;
8030 super::vals::Apb2lpenrTim1lpen(val as u8)
8031 }
8032 #[doc = "SAI1 Peripheral Clocks Enable During CSleep Mode"]
8033 pub fn set_sai1lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
8034 self.0 = (self.0 & !(0x01 << 22usize)) | (((val.0 as u32) & 0x01) << 22usize);
8035 }
8036 #[doc = "SAI2 Peripheral Clocks Enable During CSleep Mode"]
8037 pub const fn sai2lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
8038 let val = (self.0 >> 23usize) & 0x01;
8039 super::vals::Apb2lpenrTim1lpen(val as u8)
8040 }
8041 #[doc = "SAI2 Peripheral Clocks Enable During CSleep Mode"]
8042 pub fn set_sai2lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
8043 self.0 = (self.0 & !(0x01 << 23usize)) | (((val.0 as u32) & 0x01) << 23usize);
8044 }
8045 #[doc = "SAI3 Peripheral Clocks Enable During CSleep Mode"]
8046 pub const fn sai3lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
8047 let val = (self.0 >> 24usize) & 0x01;
8048 super::vals::Apb2lpenrTim1lpen(val as u8)
8049 }
8050 #[doc = "SAI3 Peripheral Clocks Enable During CSleep Mode"]
8051 pub fn set_sai3lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
8052 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
8053 }
8054 #[doc = "DFSDM1 Peripheral Clocks Enable During CSleep Mode"]
8055 pub const fn dfsdm1lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
8056 let val = (self.0 >> 28usize) & 0x01;
8057 super::vals::Apb2lpenrTim1lpen(val as u8)
8058 }
8059 #[doc = "DFSDM1 Peripheral Clocks Enable During CSleep Mode"]
8060 pub fn set_dfsdm1lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
8061 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
8062 }
8063 #[doc = "HRTIM peripheral clock enable during CSleep mode"]
8064 pub const fn hrtimlpen(&self) -> super::vals::Apb2lpenrTim1lpen {
8065 let val = (self.0 >> 29usize) & 0x01;
8066 super::vals::Apb2lpenrTim1lpen(val as u8)
8067 }
8068 #[doc = "HRTIM peripheral clock enable during CSleep mode"]
8069 pub fn set_hrtimlpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
8070 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize);
9252 } 8071 }
9253 } 8072 }
9254 impl Default for Apb3enr { 8073 impl Default for Apb2lpenr {
9255 fn default() -> Apb3enr { 8074 fn default() -> Apb2lpenr {
9256 Apb3enr(0) 8075 Apb2lpenr(0)
9257 } 8076 }
9258 } 8077 }
9259 #[doc = "RCC APB2 Clock Register"] 8078 #[doc = "RCC APB2 Clock Register"]
@@ -9402,354 +8221,923 @@ pub mod rcc_h7 {
9402 C1Apb2enr(0) 8221 C1Apb2enr(0)
9403 } 8222 }
9404 } 8223 }
9405 #[doc = "RCC AHB2 Clock Register"] 8224 #[doc = "RCC APB2 Peripheral Reset Register"]
9406 #[repr(transparent)] 8225 #[repr(transparent)]
9407 #[derive(Copy, Clone, Eq, PartialEq)] 8226 #[derive(Copy, Clone, Eq, PartialEq)]
9408 pub struct Ahb2enr(pub u32); 8227 pub struct Apb2rstr(pub u32);
9409 impl Ahb2enr { 8228 impl Apb2rstr {
9410 #[doc = "DCMI peripheral clock"] 8229 #[doc = "TIM1 block reset"]
9411 pub const fn dcmien(&self) -> super::vals::Ahb2enrDcmien { 8230 pub const fn tim1rst(&self) -> super::vals::Tim1rst {
9412 let val = (self.0 >> 0usize) & 0x01; 8231 let val = (self.0 >> 0usize) & 0x01;
9413 super::vals::Ahb2enrDcmien(val as u8) 8232 super::vals::Tim1rst(val as u8)
9414 } 8233 }
9415 #[doc = "DCMI peripheral clock"] 8234 #[doc = "TIM1 block reset"]
9416 pub fn set_dcmien(&mut self, val: super::vals::Ahb2enrDcmien) { 8235 pub fn set_tim1rst(&mut self, val: super::vals::Tim1rst) {
9417 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 8236 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
9418 } 8237 }
9419 #[doc = "CRYPT peripheral clock enable"] 8238 #[doc = "TIM8 block reset"]
9420 pub const fn crypten(&self) -> super::vals::Ahb2enrDcmien { 8239 pub const fn tim8rst(&self) -> super::vals::Tim1rst {
8240 let val = (self.0 >> 1usize) & 0x01;
8241 super::vals::Tim1rst(val as u8)
8242 }
8243 #[doc = "TIM8 block reset"]
8244 pub fn set_tim8rst(&mut self, val: super::vals::Tim1rst) {
8245 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
8246 }
8247 #[doc = "USART1 block reset"]
8248 pub const fn usart1rst(&self) -> super::vals::Tim1rst {
9421 let val = (self.0 >> 4usize) & 0x01; 8249 let val = (self.0 >> 4usize) & 0x01;
9422 super::vals::Ahb2enrDcmien(val as u8) 8250 super::vals::Tim1rst(val as u8)
9423 } 8251 }
9424 #[doc = "CRYPT peripheral clock enable"] 8252 #[doc = "USART1 block reset"]
9425 pub fn set_crypten(&mut self, val: super::vals::Ahb2enrDcmien) { 8253 pub fn set_usart1rst(&mut self, val: super::vals::Tim1rst) {
9426 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 8254 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
9427 } 8255 }
9428 #[doc = "HASH peripheral clock enable"] 8256 #[doc = "USART6 block reset"]
9429 pub const fn hashen(&self) -> super::vals::Ahb2enrDcmien { 8257 pub const fn usart6rst(&self) -> super::vals::Tim1rst {
9430 let val = (self.0 >> 5usize) & 0x01; 8258 let val = (self.0 >> 5usize) & 0x01;
9431 super::vals::Ahb2enrDcmien(val as u8) 8259 super::vals::Tim1rst(val as u8)
9432 } 8260 }
9433 #[doc = "HASH peripheral clock enable"] 8261 #[doc = "USART6 block reset"]
9434 pub fn set_hashen(&mut self, val: super::vals::Ahb2enrDcmien) { 8262 pub fn set_usart6rst(&mut self, val: super::vals::Tim1rst) {
9435 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 8263 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
9436 } 8264 }
9437 #[doc = "RNG peripheral clocks enable"] 8265 #[doc = "SPI1 block reset"]
9438 pub const fn rngen(&self) -> super::vals::Ahb2enrDcmien { 8266 pub const fn spi1rst(&self) -> super::vals::Tim1rst {
9439 let val = (self.0 >> 6usize) & 0x01; 8267 let val = (self.0 >> 12usize) & 0x01;
9440 super::vals::Ahb2enrDcmien(val as u8) 8268 super::vals::Tim1rst(val as u8)
9441 } 8269 }
9442 #[doc = "RNG peripheral clocks enable"] 8270 #[doc = "SPI1 block reset"]
9443 pub fn set_rngen(&mut self, val: super::vals::Ahb2enrDcmien) { 8271 pub fn set_spi1rst(&mut self, val: super::vals::Tim1rst) {
9444 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize); 8272 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
9445 } 8273 }
9446 #[doc = "SDMMC2 and SDMMC2 delay clock enable"] 8274 #[doc = "SPI4 block reset"]
9447 pub const fn sdmmc2en(&self) -> super::vals::Ahb2enrDcmien { 8275 pub const fn spi4rst(&self) -> super::vals::Tim1rst {
9448 let val = (self.0 >> 9usize) & 0x01; 8276 let val = (self.0 >> 13usize) & 0x01;
9449 super::vals::Ahb2enrDcmien(val as u8) 8277 super::vals::Tim1rst(val as u8)
9450 } 8278 }
9451 #[doc = "SDMMC2 and SDMMC2 delay clock enable"] 8279 #[doc = "SPI4 block reset"]
9452 pub fn set_sdmmc2en(&mut self, val: super::vals::Ahb2enrDcmien) { 8280 pub fn set_spi4rst(&mut self, val: super::vals::Tim1rst) {
9453 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize); 8281 self.0 = (self.0 & !(0x01 << 13usize)) | (((val.0 as u32) & 0x01) << 13usize);
9454 } 8282 }
9455 #[doc = "SRAM1 block enable"] 8283 #[doc = "TIM15 block reset"]
9456 pub const fn sram1en(&self) -> super::vals::Ahb2enrDcmien { 8284 pub const fn tim15rst(&self) -> super::vals::Tim1rst {
8285 let val = (self.0 >> 16usize) & 0x01;
8286 super::vals::Tim1rst(val as u8)
8287 }
8288 #[doc = "TIM15 block reset"]
8289 pub fn set_tim15rst(&mut self, val: super::vals::Tim1rst) {
8290 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
8291 }
8292 #[doc = "TIM16 block reset"]
8293 pub const fn tim16rst(&self) -> super::vals::Tim1rst {
8294 let val = (self.0 >> 17usize) & 0x01;
8295 super::vals::Tim1rst(val as u8)
8296 }
8297 #[doc = "TIM16 block reset"]
8298 pub fn set_tim16rst(&mut self, val: super::vals::Tim1rst) {
8299 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize);
8300 }
8301 #[doc = "TIM17 block reset"]
8302 pub const fn tim17rst(&self) -> super::vals::Tim1rst {
8303 let val = (self.0 >> 18usize) & 0x01;
8304 super::vals::Tim1rst(val as u8)
8305 }
8306 #[doc = "TIM17 block reset"]
8307 pub fn set_tim17rst(&mut self, val: super::vals::Tim1rst) {
8308 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
8309 }
8310 #[doc = "SPI5 block reset"]
8311 pub const fn spi5rst(&self) -> super::vals::Tim1rst {
8312 let val = (self.0 >> 20usize) & 0x01;
8313 super::vals::Tim1rst(val as u8)
8314 }
8315 #[doc = "SPI5 block reset"]
8316 pub fn set_spi5rst(&mut self, val: super::vals::Tim1rst) {
8317 self.0 = (self.0 & !(0x01 << 20usize)) | (((val.0 as u32) & 0x01) << 20usize);
8318 }
8319 #[doc = "SAI1 block reset"]
8320 pub const fn sai1rst(&self) -> super::vals::Tim1rst {
8321 let val = (self.0 >> 22usize) & 0x01;
8322 super::vals::Tim1rst(val as u8)
8323 }
8324 #[doc = "SAI1 block reset"]
8325 pub fn set_sai1rst(&mut self, val: super::vals::Tim1rst) {
8326 self.0 = (self.0 & !(0x01 << 22usize)) | (((val.0 as u32) & 0x01) << 22usize);
8327 }
8328 #[doc = "SAI2 block reset"]
8329 pub const fn sai2rst(&self) -> super::vals::Tim1rst {
8330 let val = (self.0 >> 23usize) & 0x01;
8331 super::vals::Tim1rst(val as u8)
8332 }
8333 #[doc = "SAI2 block reset"]
8334 pub fn set_sai2rst(&mut self, val: super::vals::Tim1rst) {
8335 self.0 = (self.0 & !(0x01 << 23usize)) | (((val.0 as u32) & 0x01) << 23usize);
8336 }
8337 #[doc = "SAI3 block reset"]
8338 pub const fn sai3rst(&self) -> super::vals::Tim1rst {
8339 let val = (self.0 >> 24usize) & 0x01;
8340 super::vals::Tim1rst(val as u8)
8341 }
8342 #[doc = "SAI3 block reset"]
8343 pub fn set_sai3rst(&mut self, val: super::vals::Tim1rst) {
8344 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
8345 }
8346 #[doc = "DFSDM1 block reset"]
8347 pub const fn dfsdm1rst(&self) -> super::vals::Tim1rst {
8348 let val = (self.0 >> 28usize) & 0x01;
8349 super::vals::Tim1rst(val as u8)
8350 }
8351 #[doc = "DFSDM1 block reset"]
8352 pub fn set_dfsdm1rst(&mut self, val: super::vals::Tim1rst) {
8353 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
8354 }
8355 #[doc = "HRTIM block reset"]
8356 pub const fn hrtimrst(&self) -> super::vals::Tim1rst {
9457 let val = (self.0 >> 29usize) & 0x01; 8357 let val = (self.0 >> 29usize) & 0x01;
9458 super::vals::Ahb2enrDcmien(val as u8) 8358 super::vals::Tim1rst(val as u8)
9459 } 8359 }
9460 #[doc = "SRAM1 block enable"] 8360 #[doc = "HRTIM block reset"]
9461 pub fn set_sram1en(&mut self, val: super::vals::Ahb2enrDcmien) { 8361 pub fn set_hrtimrst(&mut self, val: super::vals::Tim1rst) {
9462 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize); 8362 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize);
9463 } 8363 }
9464 #[doc = "SRAM2 block enable"] 8364 }
9465 pub const fn sram2en(&self) -> super::vals::Ahb2enrDcmien { 8365 impl Default for Apb2rstr {
8366 fn default() -> Apb2rstr {
8367 Apb2rstr(0)
8368 }
8369 }
8370 #[doc = "RCC Domain 1 Clock Configuration Register"]
8371 #[repr(transparent)]
8372 #[derive(Copy, Clone, Eq, PartialEq)]
8373 pub struct D1cfgr(pub u32);
8374 impl D1cfgr {
8375 #[doc = "D1 domain AHB prescaler"]
8376 pub const fn hpre(&self) -> super::vals::Hpre {
8377 let val = (self.0 >> 0usize) & 0x0f;
8378 super::vals::Hpre(val as u8)
8379 }
8380 #[doc = "D1 domain AHB prescaler"]
8381 pub fn set_hpre(&mut self, val: super::vals::Hpre) {
8382 self.0 = (self.0 & !(0x0f << 0usize)) | (((val.0 as u32) & 0x0f) << 0usize);
8383 }
8384 #[doc = "D1 domain APB3 prescaler"]
8385 pub const fn d1ppre(&self) -> super::vals::D1ppre {
8386 let val = (self.0 >> 4usize) & 0x07;
8387 super::vals::D1ppre(val as u8)
8388 }
8389 #[doc = "D1 domain APB3 prescaler"]
8390 pub fn set_d1ppre(&mut self, val: super::vals::D1ppre) {
8391 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize);
8392 }
8393 #[doc = "D1 domain Core prescaler"]
8394 pub const fn d1cpre(&self) -> super::vals::Hpre {
8395 let val = (self.0 >> 8usize) & 0x0f;
8396 super::vals::Hpre(val as u8)
8397 }
8398 #[doc = "D1 domain Core prescaler"]
8399 pub fn set_d1cpre(&mut self, val: super::vals::Hpre) {
8400 self.0 = (self.0 & !(0x0f << 8usize)) | (((val.0 as u32) & 0x0f) << 8usize);
8401 }
8402 }
8403 impl Default for D1cfgr {
8404 fn default() -> D1cfgr {
8405 D1cfgr(0)
8406 }
8407 }
8408 #[doc = "RCC AHB1 Clock Register"]
8409 #[repr(transparent)]
8410 #[derive(Copy, Clone, Eq, PartialEq)]
8411 pub struct C1Ahb1enr(pub u32);
8412 impl C1Ahb1enr {
8413 #[doc = "DMA1 Clock Enable"]
8414 pub const fn dma1en(&self) -> super::vals::C1Ahb1enrDma1en {
8415 let val = (self.0 >> 0usize) & 0x01;
8416 super::vals::C1Ahb1enrDma1en(val as u8)
8417 }
8418 #[doc = "DMA1 Clock Enable"]
8419 pub fn set_dma1en(&mut self, val: super::vals::C1Ahb1enrDma1en) {
8420 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
8421 }
8422 #[doc = "DMA2 Clock Enable"]
8423 pub const fn dma2en(&self) -> super::vals::C1Ahb1enrDma1en {
8424 let val = (self.0 >> 1usize) & 0x01;
8425 super::vals::C1Ahb1enrDma1en(val as u8)
8426 }
8427 #[doc = "DMA2 Clock Enable"]
8428 pub fn set_dma2en(&mut self, val: super::vals::C1Ahb1enrDma1en) {
8429 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
8430 }
8431 #[doc = "ADC1/2 Peripheral Clocks Enable"]
8432 pub const fn adc12en(&self) -> super::vals::C1Ahb1enrDma1en {
8433 let val = (self.0 >> 5usize) & 0x01;
8434 super::vals::C1Ahb1enrDma1en(val as u8)
8435 }
8436 #[doc = "ADC1/2 Peripheral Clocks Enable"]
8437 pub fn set_adc12en(&mut self, val: super::vals::C1Ahb1enrDma1en) {
8438 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
8439 }
8440 #[doc = "Ethernet MAC bus interface Clock Enable"]
8441 pub const fn eth1macen(&self) -> super::vals::C1Ahb1enrDma1en {
8442 let val = (self.0 >> 15usize) & 0x01;
8443 super::vals::C1Ahb1enrDma1en(val as u8)
8444 }
8445 #[doc = "Ethernet MAC bus interface Clock Enable"]
8446 pub fn set_eth1macen(&mut self, val: super::vals::C1Ahb1enrDma1en) {
8447 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
8448 }
8449 #[doc = "Ethernet Transmission Clock Enable"]
8450 pub const fn eth1txen(&self) -> super::vals::C1Ahb1enrDma1en {
8451 let val = (self.0 >> 16usize) & 0x01;
8452 super::vals::C1Ahb1enrDma1en(val as u8)
8453 }
8454 #[doc = "Ethernet Transmission Clock Enable"]
8455 pub fn set_eth1txen(&mut self, val: super::vals::C1Ahb1enrDma1en) {
8456 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
8457 }
8458 #[doc = "Ethernet Reception Clock Enable"]
8459 pub const fn eth1rxen(&self) -> super::vals::C1Ahb1enrDma1en {
8460 let val = (self.0 >> 17usize) & 0x01;
8461 super::vals::C1Ahb1enrDma1en(val as u8)
8462 }
8463 #[doc = "Ethernet Reception Clock Enable"]
8464 pub fn set_eth1rxen(&mut self, val: super::vals::C1Ahb1enrDma1en) {
8465 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize);
8466 }
8467 #[doc = "USB1OTG Peripheral Clocks Enable"]
8468 pub const fn usb1otgen(&self) -> super::vals::C1Ahb1enrDma1en {
8469 let val = (self.0 >> 25usize) & 0x01;
8470 super::vals::C1Ahb1enrDma1en(val as u8)
8471 }
8472 #[doc = "USB1OTG Peripheral Clocks Enable"]
8473 pub fn set_usb1otgen(&mut self, val: super::vals::C1Ahb1enrDma1en) {
8474 self.0 = (self.0 & !(0x01 << 25usize)) | (((val.0 as u32) & 0x01) << 25usize);
8475 }
8476 #[doc = "USB_PHY1 Clocks Enable"]
8477 pub const fn usb1ulpien(&self) -> super::vals::C1Ahb1enrDma1en {
8478 let val = (self.0 >> 26usize) & 0x01;
8479 super::vals::C1Ahb1enrDma1en(val as u8)
8480 }
8481 #[doc = "USB_PHY1 Clocks Enable"]
8482 pub fn set_usb1ulpien(&mut self, val: super::vals::C1Ahb1enrDma1en) {
8483 self.0 = (self.0 & !(0x01 << 26usize)) | (((val.0 as u32) & 0x01) << 26usize);
8484 }
8485 #[doc = "USB2OTG Peripheral Clocks Enable"]
8486 pub const fn usb2otgen(&self) -> super::vals::C1Ahb1enrDma1en {
8487 let val = (self.0 >> 27usize) & 0x01;
8488 super::vals::C1Ahb1enrDma1en(val as u8)
8489 }
8490 #[doc = "USB2OTG Peripheral Clocks Enable"]
8491 pub fn set_usb2otgen(&mut self, val: super::vals::C1Ahb1enrDma1en) {
8492 self.0 = (self.0 & !(0x01 << 27usize)) | (((val.0 as u32) & 0x01) << 27usize);
8493 }
8494 #[doc = "USB_PHY2 Clocks Enable"]
8495 pub const fn usb2ulpien(&self) -> super::vals::C1Ahb1enrDma1en {
8496 let val = (self.0 >> 28usize) & 0x01;
8497 super::vals::C1Ahb1enrDma1en(val as u8)
8498 }
8499 #[doc = "USB_PHY2 Clocks Enable"]
8500 pub fn set_usb2ulpien(&mut self, val: super::vals::C1Ahb1enrDma1en) {
8501 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
8502 }
8503 }
8504 impl Default for C1Ahb1enr {
8505 fn default() -> C1Ahb1enr {
8506 C1Ahb1enr(0)
8507 }
8508 }
8509 #[doc = "RCC PLL1 Fractional Divider Register"]
8510 #[repr(transparent)]
8511 #[derive(Copy, Clone, Eq, PartialEq)]
8512 pub struct Pll1fracr(pub u32);
8513 impl Pll1fracr {
8514 #[doc = "Fractional part of the multiplication factor for PLL1 VCO"]
8515 pub const fn fracn1(&self) -> u16 {
8516 let val = (self.0 >> 3usize) & 0x1fff;
8517 val as u16
8518 }
8519 #[doc = "Fractional part of the multiplication factor for PLL1 VCO"]
8520 pub fn set_fracn1(&mut self, val: u16) {
8521 self.0 = (self.0 & !(0x1fff << 3usize)) | (((val as u32) & 0x1fff) << 3usize);
8522 }
8523 }
8524 impl Default for Pll1fracr {
8525 fn default() -> Pll1fracr {
8526 Pll1fracr(0)
8527 }
8528 }
8529 #[doc = "RCC Reset Status Register"]
8530 #[repr(transparent)]
8531 #[derive(Copy, Clone, Eq, PartialEq)]
8532 pub struct C1Rsr(pub u32);
8533 impl C1Rsr {
8534 #[doc = "Remove reset flag"]
8535 pub const fn rmvf(&self) -> super::vals::C1RsrRmvf {
8536 let val = (self.0 >> 16usize) & 0x01;
8537 super::vals::C1RsrRmvf(val as u8)
8538 }
8539 #[doc = "Remove reset flag"]
8540 pub fn set_rmvf(&mut self, val: super::vals::C1RsrRmvf) {
8541 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
8542 }
8543 #[doc = "CPU reset flag"]
8544 pub const fn cpurstf(&self) -> bool {
8545 let val = (self.0 >> 17usize) & 0x01;
8546 val != 0
8547 }
8548 #[doc = "CPU reset flag"]
8549 pub fn set_cpurstf(&mut self, val: bool) {
8550 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
8551 }
8552 #[doc = "D1 domain power switch reset flag"]
8553 pub const fn d1rstf(&self) -> bool {
8554 let val = (self.0 >> 19usize) & 0x01;
8555 val != 0
8556 }
8557 #[doc = "D1 domain power switch reset flag"]
8558 pub fn set_d1rstf(&mut self, val: bool) {
8559 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize);
8560 }
8561 #[doc = "D2 domain power switch reset flag"]
8562 pub const fn d2rstf(&self) -> bool {
8563 let val = (self.0 >> 20usize) & 0x01;
8564 val != 0
8565 }
8566 #[doc = "D2 domain power switch reset flag"]
8567 pub fn set_d2rstf(&mut self, val: bool) {
8568 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize);
8569 }
8570 #[doc = "BOR reset flag"]
8571 pub const fn borrstf(&self) -> bool {
8572 let val = (self.0 >> 21usize) & 0x01;
8573 val != 0
8574 }
8575 #[doc = "BOR reset flag"]
8576 pub fn set_borrstf(&mut self, val: bool) {
8577 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
8578 }
8579 #[doc = "Pin reset flag (NRST)"]
8580 pub const fn pinrstf(&self) -> bool {
8581 let val = (self.0 >> 22usize) & 0x01;
8582 val != 0
8583 }
8584 #[doc = "Pin reset flag (NRST)"]
8585 pub fn set_pinrstf(&mut self, val: bool) {
8586 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
8587 }
8588 #[doc = "POR/PDR reset flag"]
8589 pub const fn porrstf(&self) -> bool {
8590 let val = (self.0 >> 23usize) & 0x01;
8591 val != 0
8592 }
8593 #[doc = "POR/PDR reset flag"]
8594 pub fn set_porrstf(&mut self, val: bool) {
8595 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
8596 }
8597 #[doc = "System reset from CPU reset flag"]
8598 pub const fn sftrstf(&self) -> bool {
8599 let val = (self.0 >> 24usize) & 0x01;
8600 val != 0
8601 }
8602 #[doc = "System reset from CPU reset flag"]
8603 pub fn set_sftrstf(&mut self, val: bool) {
8604 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize);
8605 }
8606 #[doc = "Independent Watchdog reset flag"]
8607 pub const fn iwdg1rstf(&self) -> bool {
8608 let val = (self.0 >> 26usize) & 0x01;
8609 val != 0
8610 }
8611 #[doc = "Independent Watchdog reset flag"]
8612 pub fn set_iwdg1rstf(&mut self, val: bool) {
8613 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
8614 }
8615 #[doc = "Window Watchdog reset flag"]
8616 pub const fn wwdg1rstf(&self) -> bool {
8617 let val = (self.0 >> 28usize) & 0x01;
8618 val != 0
8619 }
8620 #[doc = "Window Watchdog reset flag"]
8621 pub fn set_wwdg1rstf(&mut self, val: bool) {
8622 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize);
8623 }
8624 #[doc = "Reset due to illegal D1 DStandby or CPU CStop flag"]
8625 pub const fn lpwrrstf(&self) -> bool {
9466 let val = (self.0 >> 30usize) & 0x01; 8626 let val = (self.0 >> 30usize) & 0x01;
9467 super::vals::Ahb2enrDcmien(val as u8) 8627 val != 0
9468 } 8628 }
9469 #[doc = "SRAM2 block enable"] 8629 #[doc = "Reset due to illegal D1 DStandby or CPU CStop flag"]
9470 pub fn set_sram2en(&mut self, val: super::vals::Ahb2enrDcmien) { 8630 pub fn set_lpwrrstf(&mut self, val: bool) {
9471 self.0 = (self.0 & !(0x01 << 30usize)) | (((val.0 as u32) & 0x01) << 30usize); 8631 self.0 = (self.0 & !(0x01 << 30usize)) | (((val as u32) & 0x01) << 30usize);
9472 } 8632 }
9473 #[doc = "SRAM3 block enable"] 8633 }
9474 pub const fn sram3en(&self) -> super::vals::Ahb2enrDcmien { 8634 impl Default for C1Rsr {
9475 let val = (self.0 >> 31usize) & 0x01; 8635 fn default() -> C1Rsr {
9476 super::vals::Ahb2enrDcmien(val as u8) 8636 C1Rsr(0)
9477 } 8637 }
9478 #[doc = "SRAM3 block enable"] 8638 }
9479 pub fn set_sram3en(&mut self, val: super::vals::Ahb2enrDcmien) { 8639 #[doc = "RCC HSI configuration register"]
9480 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize); 8640 #[repr(transparent)]
8641 #[derive(Copy, Clone, Eq, PartialEq)]
8642 pub struct Hsicfgr(pub u32);
8643 impl Hsicfgr {
8644 #[doc = "HSI clock calibration"]
8645 pub const fn hsical(&self) -> u16 {
8646 let val = (self.0 >> 0usize) & 0x0fff;
8647 val as u16
8648 }
8649 #[doc = "HSI clock calibration"]
8650 pub fn set_hsical(&mut self, val: u16) {
8651 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize);
8652 }
8653 #[doc = "HSI clock trimming"]
8654 pub const fn hsitrim(&self) -> u8 {
8655 let val = (self.0 >> 24usize) & 0x7f;
8656 val as u8
8657 }
8658 #[doc = "HSI clock trimming"]
8659 pub fn set_hsitrim(&mut self, val: u8) {
8660 self.0 = (self.0 & !(0x7f << 24usize)) | (((val as u32) & 0x7f) << 24usize);
9481 } 8661 }
9482 } 8662 }
9483 impl Default for Ahb2enr { 8663 impl Default for Hsicfgr {
9484 fn default() -> Ahb2enr { 8664 fn default() -> Hsicfgr {
9485 Ahb2enr(0) 8665 Hsicfgr(0)
9486 } 8666 }
9487 } 8667 }
9488 #[doc = "RCC AHB3 Clock Register"] 8668 #[doc = "RCC AHB3 Clock Register"]
9489 #[repr(transparent)] 8669 #[repr(transparent)]
9490 #[derive(Copy, Clone, Eq, PartialEq)] 8670 #[derive(Copy, Clone, Eq, PartialEq)]
9491 pub struct C1Ahb3enr(pub u32); 8671 pub struct Ahb3enr(pub u32);
9492 impl C1Ahb3enr { 8672 impl Ahb3enr {
9493 #[doc = "MDMA Peripheral Clock Enable"] 8673 #[doc = "MDMA Peripheral Clock Enable"]
9494 pub const fn mdmaen(&self) -> super::vals::C1Ahb3enrMdmaen { 8674 pub const fn mdmaen(&self) -> super::vals::Ahb3enrMdmaen {
9495 let val = (self.0 >> 0usize) & 0x01; 8675 let val = (self.0 >> 0usize) & 0x01;
9496 super::vals::C1Ahb3enrMdmaen(val as u8) 8676 super::vals::Ahb3enrMdmaen(val as u8)
9497 } 8677 }
9498 #[doc = "MDMA Peripheral Clock Enable"] 8678 #[doc = "MDMA Peripheral Clock Enable"]
9499 pub fn set_mdmaen(&mut self, val: super::vals::C1Ahb3enrMdmaen) { 8679 pub fn set_mdmaen(&mut self, val: super::vals::Ahb3enrMdmaen) {
9500 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 8680 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
9501 } 8681 }
9502 #[doc = "DMA2D Peripheral Clock Enable"] 8682 #[doc = "DMA2D Peripheral Clock Enable"]
9503 pub const fn dma2den(&self) -> super::vals::C1Ahb3enrMdmaen { 8683 pub const fn dma2den(&self) -> super::vals::Ahb3enrMdmaen {
9504 let val = (self.0 >> 4usize) & 0x01; 8684 let val = (self.0 >> 4usize) & 0x01;
9505 super::vals::C1Ahb3enrMdmaen(val as u8) 8685 super::vals::Ahb3enrMdmaen(val as u8)
9506 } 8686 }
9507 #[doc = "DMA2D Peripheral Clock Enable"] 8687 #[doc = "DMA2D Peripheral Clock Enable"]
9508 pub fn set_dma2den(&mut self, val: super::vals::C1Ahb3enrMdmaen) { 8688 pub fn set_dma2den(&mut self, val: super::vals::Ahb3enrMdmaen) {
9509 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 8689 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
9510 } 8690 }
9511 #[doc = "JPGDEC Peripheral Clock Enable"] 8691 #[doc = "JPGDEC Peripheral Clock Enable"]
9512 pub const fn jpgdecen(&self) -> super::vals::C1Ahb3enrMdmaen { 8692 pub const fn jpgdecen(&self) -> super::vals::Ahb3enrMdmaen {
9513 let val = (self.0 >> 5usize) & 0x01; 8693 let val = (self.0 >> 5usize) & 0x01;
9514 super::vals::C1Ahb3enrMdmaen(val as u8) 8694 super::vals::Ahb3enrMdmaen(val as u8)
9515 } 8695 }
9516 #[doc = "JPGDEC Peripheral Clock Enable"] 8696 #[doc = "JPGDEC Peripheral Clock Enable"]
9517 pub fn set_jpgdecen(&mut self, val: super::vals::C1Ahb3enrMdmaen) { 8697 pub fn set_jpgdecen(&mut self, val: super::vals::Ahb3enrMdmaen) {
9518 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 8698 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
9519 } 8699 }
9520 #[doc = "FMC Peripheral Clocks Enable"] 8700 #[doc = "FMC Peripheral Clocks Enable"]
9521 pub const fn fmcen(&self) -> super::vals::C1Ahb3enrMdmaen { 8701 pub const fn fmcen(&self) -> super::vals::Ahb3enrMdmaen {
9522 let val = (self.0 >> 12usize) & 0x01; 8702 let val = (self.0 >> 12usize) & 0x01;
9523 super::vals::C1Ahb3enrMdmaen(val as u8) 8703 super::vals::Ahb3enrMdmaen(val as u8)
9524 } 8704 }
9525 #[doc = "FMC Peripheral Clocks Enable"] 8705 #[doc = "FMC Peripheral Clocks Enable"]
9526 pub fn set_fmcen(&mut self, val: super::vals::C1Ahb3enrMdmaen) { 8706 pub fn set_fmcen(&mut self, val: super::vals::Ahb3enrMdmaen) {
9527 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize); 8707 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
9528 } 8708 }
9529 #[doc = "QUADSPI and QUADSPI Delay Clock Enable"] 8709 #[doc = "QUADSPI and QUADSPI Delay Clock Enable"]
9530 pub const fn qspien(&self) -> super::vals::C1Ahb3enrMdmaen { 8710 pub const fn qspien(&self) -> super::vals::Ahb3enrMdmaen {
9531 let val = (self.0 >> 14usize) & 0x01; 8711 let val = (self.0 >> 14usize) & 0x01;
9532 super::vals::C1Ahb3enrMdmaen(val as u8) 8712 super::vals::Ahb3enrMdmaen(val as u8)
9533 } 8713 }
9534 #[doc = "QUADSPI and QUADSPI Delay Clock Enable"] 8714 #[doc = "QUADSPI and QUADSPI Delay Clock Enable"]
9535 pub fn set_qspien(&mut self, val: super::vals::C1Ahb3enrMdmaen) { 8715 pub fn set_qspien(&mut self, val: super::vals::Ahb3enrMdmaen) {
9536 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 8716 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
9537 } 8717 }
9538 #[doc = "SDMMC1 and SDMMC1 Delay Clock Enable"] 8718 #[doc = "SDMMC1 and SDMMC1 Delay Clock Enable"]
9539 pub const fn sdmmc1en(&self) -> super::vals::C1Ahb3enrMdmaen { 8719 pub const fn sdmmc1en(&self) -> super::vals::Ahb3enrMdmaen {
9540 let val = (self.0 >> 16usize) & 0x01; 8720 let val = (self.0 >> 16usize) & 0x01;
9541 super::vals::C1Ahb3enrMdmaen(val as u8) 8721 super::vals::Ahb3enrMdmaen(val as u8)
9542 } 8722 }
9543 #[doc = "SDMMC1 and SDMMC1 Delay Clock Enable"] 8723 #[doc = "SDMMC1 and SDMMC1 Delay Clock Enable"]
9544 pub fn set_sdmmc1en(&mut self, val: super::vals::C1Ahb3enrMdmaen) { 8724 pub fn set_sdmmc1en(&mut self, val: super::vals::Ahb3enrMdmaen) {
9545 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize); 8725 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
9546 } 8726 }
9547 } 8727 }
9548 impl Default for C1Ahb3enr { 8728 impl Default for Ahb3enr {
9549 fn default() -> C1Ahb3enr { 8729 fn default() -> Ahb3enr {
9550 C1Ahb3enr(0) 8730 Ahb3enr(0)
9551 } 8731 }
9552 } 8732 }
9553 #[doc = "RCC Domain 3 Kernel Clock Configuration Register"] 8733 #[doc = "RCC AHB4 Peripheral Reset Register"]
9554 #[repr(transparent)] 8734 #[repr(transparent)]
9555 #[derive(Copy, Clone, Eq, PartialEq)] 8735 #[derive(Copy, Clone, Eq, PartialEq)]
9556 pub struct D3ccipr(pub u32); 8736 pub struct Ahb4rstr(pub u32);
9557 impl D3ccipr { 8737 impl Ahb4rstr {
9558 #[doc = "LPUART1 kernel clock source selection"] 8738 #[doc = "GPIO block reset"]
9559 pub const fn lpuart1sel(&self) -> super::vals::Lpuart1sel { 8739 pub const fn gpioarst(&self) -> super::vals::Gpioarst {
9560 let val = (self.0 >> 0usize) & 0x07; 8740 let val = (self.0 >> 0usize) & 0x01;
9561 super::vals::Lpuart1sel(val as u8) 8741 super::vals::Gpioarst(val as u8)
9562 } 8742 }
9563 #[doc = "LPUART1 kernel clock source selection"] 8743 #[doc = "GPIO block reset"]
9564 pub fn set_lpuart1sel(&mut self, val: super::vals::Lpuart1sel) { 8744 pub fn set_gpioarst(&mut self, val: super::vals::Gpioarst) {
9565 self.0 = (self.0 & !(0x07 << 0usize)) | (((val.0 as u32) & 0x07) << 0usize); 8745 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
9566 } 8746 }
9567 #[doc = "I2C4 kernel clock source selection"] 8747 #[doc = "GPIO block reset"]
9568 pub const fn i2c4sel(&self) -> super::vals::I2c4sel { 8748 pub const fn gpiobrst(&self) -> super::vals::Gpioarst {
9569 let val = (self.0 >> 8usize) & 0x03; 8749 let val = (self.0 >> 1usize) & 0x01;
9570 super::vals::I2c4sel(val as u8) 8750 super::vals::Gpioarst(val as u8)
9571 } 8751 }
9572 #[doc = "I2C4 kernel clock source selection"] 8752 #[doc = "GPIO block reset"]
9573 pub fn set_i2c4sel(&mut self, val: super::vals::I2c4sel) { 8753 pub fn set_gpiobrst(&mut self, val: super::vals::Gpioarst) {
9574 self.0 = (self.0 & !(0x03 << 8usize)) | (((val.0 as u32) & 0x03) << 8usize); 8754 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
9575 } 8755 }
9576 #[doc = "LPTIM2 kernel clock source selection"] 8756 #[doc = "GPIO block reset"]
9577 pub const fn lptim2sel(&self) -> super::vals::Lptim2sel { 8757 pub const fn gpiocrst(&self) -> super::vals::Gpioarst {
9578 let val = (self.0 >> 10usize) & 0x07; 8758 let val = (self.0 >> 2usize) & 0x01;
9579 super::vals::Lptim2sel(val as u8) 8759 super::vals::Gpioarst(val as u8)
9580 } 8760 }
9581 #[doc = "LPTIM2 kernel clock source selection"] 8761 #[doc = "GPIO block reset"]
9582 pub fn set_lptim2sel(&mut self, val: super::vals::Lptim2sel) { 8762 pub fn set_gpiocrst(&mut self, val: super::vals::Gpioarst) {
9583 self.0 = (self.0 & !(0x07 << 10usize)) | (((val.0 as u32) & 0x07) << 10usize); 8763 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
9584 } 8764 }
9585 #[doc = "LPTIM3,4,5 kernel clock source selection"] 8765 #[doc = "GPIO block reset"]
9586 pub const fn lptim345sel(&self) -> super::vals::Lptim2sel { 8766 pub const fn gpiodrst(&self) -> super::vals::Gpioarst {
9587 let val = (self.0 >> 13usize) & 0x07; 8767 let val = (self.0 >> 3usize) & 0x01;
9588 super::vals::Lptim2sel(val as u8) 8768 super::vals::Gpioarst(val as u8)
9589 } 8769 }
9590 #[doc = "LPTIM3,4,5 kernel clock source selection"] 8770 #[doc = "GPIO block reset"]
9591 pub fn set_lptim345sel(&mut self, val: super::vals::Lptim2sel) { 8771 pub fn set_gpiodrst(&mut self, val: super::vals::Gpioarst) {
9592 self.0 = (self.0 & !(0x07 << 13usize)) | (((val.0 as u32) & 0x07) << 13usize); 8772 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
9593 } 8773 }
9594 #[doc = "SAR ADC kernel clock source selection"] 8774 #[doc = "GPIO block reset"]
9595 pub const fn adcsel(&self) -> super::vals::Adcsel { 8775 pub const fn gpioerst(&self) -> super::vals::Gpioarst {
9596 let val = (self.0 >> 16usize) & 0x03; 8776 let val = (self.0 >> 4usize) & 0x01;
9597 super::vals::Adcsel(val as u8) 8777 super::vals::Gpioarst(val as u8)
9598 } 8778 }
9599 #[doc = "SAR ADC kernel clock source selection"] 8779 #[doc = "GPIO block reset"]
9600 pub fn set_adcsel(&mut self, val: super::vals::Adcsel) { 8780 pub fn set_gpioerst(&mut self, val: super::vals::Gpioarst) {
9601 self.0 = (self.0 & !(0x03 << 16usize)) | (((val.0 as u32) & 0x03) << 16usize); 8781 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
9602 } 8782 }
9603 #[doc = "Sub-Block A of SAI4 kernel clock source selection"] 8783 #[doc = "GPIO block reset"]
9604 pub const fn sai4asel(&self) -> super::vals::Sai4asel { 8784 pub const fn gpiofrst(&self) -> super::vals::Gpioarst {
9605 let val = (self.0 >> 21usize) & 0x07; 8785 let val = (self.0 >> 5usize) & 0x01;
9606 super::vals::Sai4asel(val as u8) 8786 super::vals::Gpioarst(val as u8)
9607 } 8787 }
9608 #[doc = "Sub-Block A of SAI4 kernel clock source selection"] 8788 #[doc = "GPIO block reset"]
9609 pub fn set_sai4asel(&mut self, val: super::vals::Sai4asel) { 8789 pub fn set_gpiofrst(&mut self, val: super::vals::Gpioarst) {
9610 self.0 = (self.0 & !(0x07 << 21usize)) | (((val.0 as u32) & 0x07) << 21usize); 8790 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
9611 } 8791 }
9612 #[doc = "Sub-Block B of SAI4 kernel clock source selection"] 8792 #[doc = "GPIO block reset"]
9613 pub const fn sai4bsel(&self) -> super::vals::Sai4asel { 8793 pub const fn gpiogrst(&self) -> super::vals::Gpioarst {
9614 let val = (self.0 >> 24usize) & 0x07; 8794 let val = (self.0 >> 6usize) & 0x01;
9615 super::vals::Sai4asel(val as u8) 8795 super::vals::Gpioarst(val as u8)
9616 } 8796 }
9617 #[doc = "Sub-Block B of SAI4 kernel clock source selection"] 8797 #[doc = "GPIO block reset"]
9618 pub fn set_sai4bsel(&mut self, val: super::vals::Sai4asel) { 8798 pub fn set_gpiogrst(&mut self, val: super::vals::Gpioarst) {
9619 self.0 = (self.0 & !(0x07 << 24usize)) | (((val.0 as u32) & 0x07) << 24usize); 8799 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
9620 } 8800 }
9621 #[doc = "SPI6 kernel clock source selection"] 8801 #[doc = "GPIO block reset"]
9622 pub const fn spi6sel(&self) -> super::vals::Spi6sel { 8802 pub const fn gpiohrst(&self) -> super::vals::Gpioarst {
9623 let val = (self.0 >> 28usize) & 0x07; 8803 let val = (self.0 >> 7usize) & 0x01;
9624 super::vals::Spi6sel(val as u8) 8804 super::vals::Gpioarst(val as u8)
9625 } 8805 }
9626 #[doc = "SPI6 kernel clock source selection"] 8806 #[doc = "GPIO block reset"]
9627 pub fn set_spi6sel(&mut self, val: super::vals::Spi6sel) { 8807 pub fn set_gpiohrst(&mut self, val: super::vals::Gpioarst) {
9628 self.0 = (self.0 & !(0x07 << 28usize)) | (((val.0 as u32) & 0x07) << 28usize); 8808 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
8809 }
8810 #[doc = "GPIO block reset"]
8811 pub const fn gpioirst(&self) -> super::vals::Gpioarst {
8812 let val = (self.0 >> 8usize) & 0x01;
8813 super::vals::Gpioarst(val as u8)
8814 }
8815 #[doc = "GPIO block reset"]
8816 pub fn set_gpioirst(&mut self, val: super::vals::Gpioarst) {
8817 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
8818 }
8819 #[doc = "GPIO block reset"]
8820 pub const fn gpiojrst(&self) -> super::vals::Gpioarst {
8821 let val = (self.0 >> 9usize) & 0x01;
8822 super::vals::Gpioarst(val as u8)
8823 }
8824 #[doc = "GPIO block reset"]
8825 pub fn set_gpiojrst(&mut self, val: super::vals::Gpioarst) {
8826 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
8827 }
8828 #[doc = "GPIO block reset"]
8829 pub const fn gpiokrst(&self) -> super::vals::Gpioarst {
8830 let val = (self.0 >> 10usize) & 0x01;
8831 super::vals::Gpioarst(val as u8)
8832 }
8833 #[doc = "GPIO block reset"]
8834 pub fn set_gpiokrst(&mut self, val: super::vals::Gpioarst) {
8835 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
8836 }
8837 #[doc = "CRC block reset"]
8838 pub const fn crcrst(&self) -> super::vals::Gpioarst {
8839 let val = (self.0 >> 19usize) & 0x01;
8840 super::vals::Gpioarst(val as u8)
8841 }
8842 #[doc = "CRC block reset"]
8843 pub fn set_crcrst(&mut self, val: super::vals::Gpioarst) {
8844 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
8845 }
8846 #[doc = "BDMA block reset"]
8847 pub const fn bdmarst(&self) -> super::vals::Gpioarst {
8848 let val = (self.0 >> 21usize) & 0x01;
8849 super::vals::Gpioarst(val as u8)
8850 }
8851 #[doc = "BDMA block reset"]
8852 pub fn set_bdmarst(&mut self, val: super::vals::Gpioarst) {
8853 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize);
8854 }
8855 #[doc = "ADC3 block reset"]
8856 pub const fn adc3rst(&self) -> super::vals::Gpioarst {
8857 let val = (self.0 >> 24usize) & 0x01;
8858 super::vals::Gpioarst(val as u8)
8859 }
8860 #[doc = "ADC3 block reset"]
8861 pub fn set_adc3rst(&mut self, val: super::vals::Gpioarst) {
8862 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
8863 }
8864 #[doc = "HSEM block reset"]
8865 pub const fn hsemrst(&self) -> super::vals::Gpioarst {
8866 let val = (self.0 >> 25usize) & 0x01;
8867 super::vals::Gpioarst(val as u8)
8868 }
8869 #[doc = "HSEM block reset"]
8870 pub fn set_hsemrst(&mut self, val: super::vals::Gpioarst) {
8871 self.0 = (self.0 & !(0x01 << 25usize)) | (((val.0 as u32) & 0x01) << 25usize);
9629 } 8872 }
9630 } 8873 }
9631 impl Default for D3ccipr { 8874 impl Default for Ahb4rstr {
9632 fn default() -> D3ccipr { 8875 fn default() -> Ahb4rstr {
9633 D3ccipr(0) 8876 Ahb4rstr(0)
9634 } 8877 }
9635 } 8878 }
9636 #[doc = "RCC APB4 Sleep Clock Register"] 8879 #[doc = "RCC PLLs Clock Source Selection Register"]
9637 #[repr(transparent)] 8880 #[repr(transparent)]
9638 #[derive(Copy, Clone, Eq, PartialEq)] 8881 #[derive(Copy, Clone, Eq, PartialEq)]
9639 pub struct C1Apb4lpenr(pub u32); 8882 pub struct Pllckselr(pub u32);
9640 impl C1Apb4lpenr { 8883 impl Pllckselr {
9641 #[doc = "SYSCFG peripheral clock enable during CSleep mode"] 8884 #[doc = "DIVMx and PLLs clock source selection"]
9642 pub const fn syscfglpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen { 8885 pub const fn pllsrc(&self) -> super::vals::Pllsrc {
8886 let val = (self.0 >> 0usize) & 0x03;
8887 super::vals::Pllsrc(val as u8)
8888 }
8889 #[doc = "DIVMx and PLLs clock source selection"]
8890 pub fn set_pllsrc(&mut self, val: super::vals::Pllsrc) {
8891 self.0 = (self.0 & !(0x03 << 0usize)) | (((val.0 as u32) & 0x03) << 0usize);
8892 }
8893 #[doc = "Prescaler for PLL1"]
8894 pub fn divm(&self, n: usize) -> u8 {
8895 assert!(n < 3usize);
8896 let offs = 4usize + n * 8usize;
8897 let val = (self.0 >> offs) & 0x3f;
8898 val as u8
8899 }
8900 #[doc = "Prescaler for PLL1"]
8901 pub fn set_divm(&mut self, n: usize, val: u8) {
8902 assert!(n < 3usize);
8903 let offs = 4usize + n * 8usize;
8904 self.0 = (self.0 & !(0x3f << offs)) | (((val as u32) & 0x3f) << offs);
8905 }
8906 }
8907 impl Default for Pllckselr {
8908 fn default() -> Pllckselr {
8909 Pllckselr(0)
8910 }
8911 }
8912 #[doc = "RCC APB4 Clock Register"]
8913 #[repr(transparent)]
8914 #[derive(Copy, Clone, Eq, PartialEq)]
8915 pub struct Apb4enr(pub u32);
8916 impl Apb4enr {
8917 #[doc = "SYSCFG peripheral clock enable"]
8918 pub const fn syscfgen(&self) -> super::vals::Apb4enrSyscfgen {
9643 let val = (self.0 >> 1usize) & 0x01; 8919 let val = (self.0 >> 1usize) & 0x01;
9644 super::vals::C1Apb4lpenrSyscfglpen(val as u8) 8920 super::vals::Apb4enrSyscfgen(val as u8)
9645 } 8921 }
9646 #[doc = "SYSCFG peripheral clock enable during CSleep mode"] 8922 #[doc = "SYSCFG peripheral clock enable"]
9647 pub fn set_syscfglpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) { 8923 pub fn set_syscfgen(&mut self, val: super::vals::Apb4enrSyscfgen) {
9648 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 8924 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
9649 } 8925 }
9650 #[doc = "LPUART1 Peripheral Clocks Enable During CSleep Mode"] 8926 #[doc = "LPUART1 Peripheral Clocks Enable"]
9651 pub const fn lpuart1lpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen { 8927 pub const fn lpuart1en(&self) -> super::vals::Apb4enrSyscfgen {
9652 let val = (self.0 >> 3usize) & 0x01; 8928 let val = (self.0 >> 3usize) & 0x01;
9653 super::vals::C1Apb4lpenrSyscfglpen(val as u8) 8929 super::vals::Apb4enrSyscfgen(val as u8)
9654 } 8930 }
9655 #[doc = "LPUART1 Peripheral Clocks Enable During CSleep Mode"] 8931 #[doc = "LPUART1 Peripheral Clocks Enable"]
9656 pub fn set_lpuart1lpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) { 8932 pub fn set_lpuart1en(&mut self, val: super::vals::Apb4enrSyscfgen) {
9657 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize); 8933 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
9658 } 8934 }
9659 #[doc = "SPI6 Peripheral Clocks Enable During CSleep Mode"] 8935 #[doc = "SPI6 Peripheral Clocks Enable"]
9660 pub const fn spi6lpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen { 8936 pub const fn spi6en(&self) -> super::vals::Apb4enrSyscfgen {
9661 let val = (self.0 >> 5usize) & 0x01; 8937 let val = (self.0 >> 5usize) & 0x01;
9662 super::vals::C1Apb4lpenrSyscfglpen(val as u8) 8938 super::vals::Apb4enrSyscfgen(val as u8)
9663 } 8939 }
9664 #[doc = "SPI6 Peripheral Clocks Enable During CSleep Mode"] 8940 #[doc = "SPI6 Peripheral Clocks Enable"]
9665 pub fn set_spi6lpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) { 8941 pub fn set_spi6en(&mut self, val: super::vals::Apb4enrSyscfgen) {
9666 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 8942 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
9667 } 8943 }
9668 #[doc = "I2C4 Peripheral Clocks Enable During CSleep Mode"] 8944 #[doc = "I2C4 Peripheral Clocks Enable"]
9669 pub const fn i2c4lpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen { 8945 pub const fn i2c4en(&self) -> super::vals::Apb4enrSyscfgen {
9670 let val = (self.0 >> 7usize) & 0x01; 8946 let val = (self.0 >> 7usize) & 0x01;
9671 super::vals::C1Apb4lpenrSyscfglpen(val as u8) 8947 super::vals::Apb4enrSyscfgen(val as u8)
9672 } 8948 }
9673 #[doc = "I2C4 Peripheral Clocks Enable During CSleep Mode"] 8949 #[doc = "I2C4 Peripheral Clocks Enable"]
9674 pub fn set_i2c4lpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) { 8950 pub fn set_i2c4en(&mut self, val: super::vals::Apb4enrSyscfgen) {
9675 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 8951 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
9676 } 8952 }
9677 #[doc = "LPTIM2 Peripheral Clocks Enable During CSleep Mode"] 8953 #[doc = "LPTIM2 Peripheral Clocks Enable"]
9678 pub const fn lptim2lpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen { 8954 pub const fn lptim2en(&self) -> super::vals::Apb4enrSyscfgen {
9679 let val = (self.0 >> 9usize) & 0x01; 8955 let val = (self.0 >> 9usize) & 0x01;
9680 super::vals::C1Apb4lpenrSyscfglpen(val as u8) 8956 super::vals::Apb4enrSyscfgen(val as u8)
9681 } 8957 }
9682 #[doc = "LPTIM2 Peripheral Clocks Enable During CSleep Mode"] 8958 #[doc = "LPTIM2 Peripheral Clocks Enable"]
9683 pub fn set_lptim2lpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) { 8959 pub fn set_lptim2en(&mut self, val: super::vals::Apb4enrSyscfgen) {
9684 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize); 8960 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
9685 } 8961 }
9686 #[doc = "LPTIM3 Peripheral Clocks Enable During CSleep Mode"] 8962 #[doc = "LPTIM3 Peripheral Clocks Enable"]
9687 pub const fn lptim3lpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen { 8963 pub const fn lptim3en(&self) -> super::vals::Apb4enrSyscfgen {
9688 let val = (self.0 >> 10usize) & 0x01; 8964 let val = (self.0 >> 10usize) & 0x01;
9689 super::vals::C1Apb4lpenrSyscfglpen(val as u8) 8965 super::vals::Apb4enrSyscfgen(val as u8)
9690 } 8966 }
9691 #[doc = "LPTIM3 Peripheral Clocks Enable During CSleep Mode"] 8967 #[doc = "LPTIM3 Peripheral Clocks Enable"]
9692 pub fn set_lptim3lpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) { 8968 pub fn set_lptim3en(&mut self, val: super::vals::Apb4enrSyscfgen) {
9693 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize); 8969 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
9694 } 8970 }
9695 #[doc = "LPTIM4 Peripheral Clocks Enable During CSleep Mode"] 8971 #[doc = "LPTIM4 Peripheral Clocks Enable"]
9696 pub const fn lptim4lpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen { 8972 pub const fn lptim4en(&self) -> super::vals::Apb4enrSyscfgen {
9697 let val = (self.0 >> 11usize) & 0x01; 8973 let val = (self.0 >> 11usize) & 0x01;
9698 super::vals::C1Apb4lpenrSyscfglpen(val as u8) 8974 super::vals::Apb4enrSyscfgen(val as u8)
9699 } 8975 }
9700 #[doc = "LPTIM4 Peripheral Clocks Enable During CSleep Mode"] 8976 #[doc = "LPTIM4 Peripheral Clocks Enable"]
9701 pub fn set_lptim4lpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) { 8977 pub fn set_lptim4en(&mut self, val: super::vals::Apb4enrSyscfgen) {
9702 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize); 8978 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
9703 } 8979 }
9704 #[doc = "LPTIM5 Peripheral Clocks Enable During CSleep Mode"] 8980 #[doc = "LPTIM5 Peripheral Clocks Enable"]
9705 pub const fn lptim5lpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen { 8981 pub const fn lptim5en(&self) -> super::vals::Apb4enrSyscfgen {
9706 let val = (self.0 >> 12usize) & 0x01; 8982 let val = (self.0 >> 12usize) & 0x01;
9707 super::vals::C1Apb4lpenrSyscfglpen(val as u8) 8983 super::vals::Apb4enrSyscfgen(val as u8)
9708 } 8984 }
9709 #[doc = "LPTIM5 Peripheral Clocks Enable During CSleep Mode"] 8985 #[doc = "LPTIM5 Peripheral Clocks Enable"]
9710 pub fn set_lptim5lpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) { 8986 pub fn set_lptim5en(&mut self, val: super::vals::Apb4enrSyscfgen) {
9711 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize); 8987 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
9712 } 8988 }
9713 #[doc = "COMP1/2 peripheral clock enable during CSleep mode"] 8989 #[doc = "COMP1/2 peripheral clock enable"]
9714 pub const fn comp12lpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen { 8990 pub const fn comp12en(&self) -> super::vals::Apb4enrSyscfgen {
9715 let val = (self.0 >> 14usize) & 0x01; 8991 let val = (self.0 >> 14usize) & 0x01;
9716 super::vals::C1Apb4lpenrSyscfglpen(val as u8) 8992 super::vals::Apb4enrSyscfgen(val as u8)
9717 } 8993 }
9718 #[doc = "COMP1/2 peripheral clock enable during CSleep mode"] 8994 #[doc = "COMP1/2 peripheral clock enable"]
9719 pub fn set_comp12lpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) { 8995 pub fn set_comp12en(&mut self, val: super::vals::Apb4enrSyscfgen) {
9720 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 8996 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
9721 } 8997 }
9722 #[doc = "VREF peripheral clock enable during CSleep mode"] 8998 #[doc = "VREF peripheral clock enable"]
9723 pub const fn vreflpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen { 8999 pub const fn vrefen(&self) -> super::vals::Apb4enrSyscfgen {
9724 let val = (self.0 >> 15usize) & 0x01; 9000 let val = (self.0 >> 15usize) & 0x01;
9725 super::vals::C1Apb4lpenrSyscfglpen(val as u8) 9001 super::vals::Apb4enrSyscfgen(val as u8)
9726 } 9002 }
9727 #[doc = "VREF peripheral clock enable during CSleep mode"] 9003 #[doc = "VREF peripheral clock enable"]
9728 pub fn set_vreflpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) { 9004 pub fn set_vrefen(&mut self, val: super::vals::Apb4enrSyscfgen) {
9729 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize); 9005 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
9730 } 9006 }
9731 #[doc = "RTC APB Clock Enable During CSleep Mode"] 9007 #[doc = "RTC APB Clock Enable"]
9732 pub const fn rtcapblpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen { 9008 pub const fn rtcapben(&self) -> super::vals::Apb4enrSyscfgen {
9733 let val = (self.0 >> 16usize) & 0x01; 9009 let val = (self.0 >> 16usize) & 0x01;
9734 super::vals::C1Apb4lpenrSyscfglpen(val as u8) 9010 super::vals::Apb4enrSyscfgen(val as u8)
9735 } 9011 }
9736 #[doc = "RTC APB Clock Enable During CSleep Mode"] 9012 #[doc = "RTC APB Clock Enable"]
9737 pub fn set_rtcapblpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) { 9013 pub fn set_rtcapben(&mut self, val: super::vals::Apb4enrSyscfgen) {
9738 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize); 9014 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
9739 } 9015 }
9740 #[doc = "SAI4 Peripheral Clocks Enable During CSleep Mode"] 9016 #[doc = "SAI4 Peripheral Clocks Enable"]
9741 pub const fn sai4lpen(&self) -> super::vals::C1Apb4lpenrSyscfglpen { 9017 pub const fn sai4en(&self) -> super::vals::Apb4enrSyscfgen {
9742 let val = (self.0 >> 21usize) & 0x01; 9018 let val = (self.0 >> 21usize) & 0x01;
9743 super::vals::C1Apb4lpenrSyscfglpen(val as u8) 9019 super::vals::Apb4enrSyscfgen(val as u8)
9744 } 9020 }
9745 #[doc = "SAI4 Peripheral Clocks Enable During CSleep Mode"] 9021 #[doc = "SAI4 Peripheral Clocks Enable"]
9746 pub fn set_sai4lpen(&mut self, val: super::vals::C1Apb4lpenrSyscfglpen) { 9022 pub fn set_sai4en(&mut self, val: super::vals::Apb4enrSyscfgen) {
9747 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize); 9023 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize);
9748 } 9024 }
9749 } 9025 }
9750 impl Default for C1Apb4lpenr { 9026 impl Default for Apb4enr {
9751 fn default() -> C1Apb4lpenr { 9027 fn default() -> Apb4enr {
9752 C1Apb4lpenr(0) 9028 Apb4enr(0)
9029 }
9030 }
9031 #[doc = "RCC AHB2 Sleep Clock Register"]
9032 #[repr(transparent)]
9033 #[derive(Copy, Clone, Eq, PartialEq)]
9034 pub struct Ahb2lpenr(pub u32);
9035 impl Ahb2lpenr {
9036 #[doc = "DCMI peripheral clock enable during csleep mode"]
9037 pub const fn dcmilpen(&self) -> super::vals::Ahb2lpenrDcmilpen {
9038 let val = (self.0 >> 0usize) & 0x01;
9039 super::vals::Ahb2lpenrDcmilpen(val as u8)
9040 }
9041 #[doc = "DCMI peripheral clock enable during csleep mode"]
9042 pub fn set_dcmilpen(&mut self, val: super::vals::Ahb2lpenrDcmilpen) {
9043 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
9044 }
9045 #[doc = "CRYPT peripheral clock enable during CSleep mode"]
9046 pub const fn cryptlpen(&self) -> super::vals::Ahb2lpenrDcmilpen {
9047 let val = (self.0 >> 4usize) & 0x01;
9048 super::vals::Ahb2lpenrDcmilpen(val as u8)
9049 }
9050 #[doc = "CRYPT peripheral clock enable during CSleep mode"]
9051 pub fn set_cryptlpen(&mut self, val: super::vals::Ahb2lpenrDcmilpen) {
9052 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
9053 }
9054 #[doc = "HASH peripheral clock enable during CSleep mode"]
9055 pub const fn hashlpen(&self) -> super::vals::Ahb2lpenrDcmilpen {
9056 let val = (self.0 >> 5usize) & 0x01;
9057 super::vals::Ahb2lpenrDcmilpen(val as u8)
9058 }
9059 #[doc = "HASH peripheral clock enable during CSleep mode"]
9060 pub fn set_hashlpen(&mut self, val: super::vals::Ahb2lpenrDcmilpen) {
9061 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
9062 }
9063 #[doc = "RNG peripheral clock enable during CSleep mode"]
9064 pub const fn rnglpen(&self) -> super::vals::Ahb2lpenrDcmilpen {
9065 let val = (self.0 >> 6usize) & 0x01;
9066 super::vals::Ahb2lpenrDcmilpen(val as u8)
9067 }
9068 #[doc = "RNG peripheral clock enable during CSleep mode"]
9069 pub fn set_rnglpen(&mut self, val: super::vals::Ahb2lpenrDcmilpen) {
9070 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
9071 }
9072 #[doc = "SDMMC2 and SDMMC2 Delay Clock Enable During CSleep Mode"]
9073 pub const fn sdmmc2lpen(&self) -> super::vals::Ahb2lpenrDcmilpen {
9074 let val = (self.0 >> 9usize) & 0x01;
9075 super::vals::Ahb2lpenrDcmilpen(val as u8)
9076 }
9077 #[doc = "SDMMC2 and SDMMC2 Delay Clock Enable During CSleep Mode"]
9078 pub fn set_sdmmc2lpen(&mut self, val: super::vals::Ahb2lpenrDcmilpen) {
9079 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
9080 }
9081 #[doc = "SRAM1 Clock Enable During CSleep Mode"]
9082 pub const fn sram1lpen(&self) -> super::vals::Ahb2lpenrDcmilpen {
9083 let val = (self.0 >> 29usize) & 0x01;
9084 super::vals::Ahb2lpenrDcmilpen(val as u8)
9085 }
9086 #[doc = "SRAM1 Clock Enable During CSleep Mode"]
9087 pub fn set_sram1lpen(&mut self, val: super::vals::Ahb2lpenrDcmilpen) {
9088 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize);
9089 }
9090 #[doc = "SRAM2 Clock Enable During CSleep Mode"]
9091 pub const fn sram2lpen(&self) -> super::vals::Ahb2lpenrDcmilpen {
9092 let val = (self.0 >> 30usize) & 0x01;
9093 super::vals::Ahb2lpenrDcmilpen(val as u8)
9094 }
9095 #[doc = "SRAM2 Clock Enable During CSleep Mode"]
9096 pub fn set_sram2lpen(&mut self, val: super::vals::Ahb2lpenrDcmilpen) {
9097 self.0 = (self.0 & !(0x01 << 30usize)) | (((val.0 as u32) & 0x01) << 30usize);
9098 }
9099 #[doc = "SRAM3 Clock Enable During CSleep Mode"]
9100 pub const fn sram3lpen(&self) -> super::vals::Ahb2lpenrDcmilpen {
9101 let val = (self.0 >> 31usize) & 0x01;
9102 super::vals::Ahb2lpenrDcmilpen(val as u8)
9103 }
9104 #[doc = "SRAM3 Clock Enable During CSleep Mode"]
9105 pub fn set_sram3lpen(&mut self, val: super::vals::Ahb2lpenrDcmilpen) {
9106 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize);
9107 }
9108 }
9109 impl Default for Ahb2lpenr {
9110 fn default() -> Ahb2lpenr {
9111 Ahb2lpenr(0)
9112 }
9113 }
9114 #[doc = "RCC APB3 Sleep Clock Register"]
9115 #[repr(transparent)]
9116 #[derive(Copy, Clone, Eq, PartialEq)]
9117 pub struct C1Apb3lpenr(pub u32);
9118 impl C1Apb3lpenr {
9119 #[doc = "LTDC peripheral clock enable during CSleep mode"]
9120 pub const fn ltdclpen(&self) -> super::vals::C1Apb3lpenrLtdclpen {
9121 let val = (self.0 >> 3usize) & 0x01;
9122 super::vals::C1Apb3lpenrLtdclpen(val as u8)
9123 }
9124 #[doc = "LTDC peripheral clock enable during CSleep mode"]
9125 pub fn set_ltdclpen(&mut self, val: super::vals::C1Apb3lpenrLtdclpen) {
9126 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
9127 }
9128 #[doc = "WWDG1 Clock Enable During CSleep Mode"]
9129 pub const fn wwdg1lpen(&self) -> super::vals::C1Apb3lpenrLtdclpen {
9130 let val = (self.0 >> 6usize) & 0x01;
9131 super::vals::C1Apb3lpenrLtdclpen(val as u8)
9132 }
9133 #[doc = "WWDG1 Clock Enable During CSleep Mode"]
9134 pub fn set_wwdg1lpen(&mut self, val: super::vals::C1Apb3lpenrLtdclpen) {
9135 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
9136 }
9137 }
9138 impl Default for C1Apb3lpenr {
9139 fn default() -> C1Apb3lpenr {
9140 C1Apb3lpenr(0)
9753 } 9141 }
9754 } 9142 }
9755 #[doc = "RCC APB1 Clock Register"] 9143 #[doc = "RCC APB1 Clock Register"]
@@ -9979,260 +9367,331 @@ pub mod rcc_h7 {
9979 Apb1lenr(0) 9367 Apb1lenr(0)
9980 } 9368 }
9981 } 9369 }
9982 #[doc = "RCC APB2 Clock Register"] 9370 #[doc = "RCC APB3 Peripheral Reset Register"]
9983 #[repr(transparent)] 9371 #[repr(transparent)]
9984 #[derive(Copy, Clone, Eq, PartialEq)] 9372 #[derive(Copy, Clone, Eq, PartialEq)]
9985 pub struct Apb2enr(pub u32); 9373 pub struct Apb3rstr(pub u32);
9986 impl Apb2enr { 9374 impl Apb3rstr {
9987 #[doc = "TIM1 peripheral clock enable"] 9375 #[doc = "LTDC block reset"]
9988 pub const fn tim1en(&self) -> super::vals::Apb2enrTim1en { 9376 pub const fn ltdcrst(&self) -> super::vals::Ltdcrst {
9377 let val = (self.0 >> 3usize) & 0x01;
9378 super::vals::Ltdcrst(val as u8)
9379 }
9380 #[doc = "LTDC block reset"]
9381 pub fn set_ltdcrst(&mut self, val: super::vals::Ltdcrst) {
9382 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
9383 }
9384 }
9385 impl Default for Apb3rstr {
9386 fn default() -> Apb3rstr {
9387 Apb3rstr(0)
9388 }
9389 }
9390 #[doc = "RCC AHB4 Clock Register"]
9391 #[repr(transparent)]
9392 #[derive(Copy, Clone, Eq, PartialEq)]
9393 pub struct Ahb4enr(pub u32);
9394 impl Ahb4enr {
9395 #[doc = "0GPIO peripheral clock enable"]
9396 pub const fn gpioaen(&self) -> super::vals::Ahb4enrGpioaen {
9989 let val = (self.0 >> 0usize) & 0x01; 9397 let val = (self.0 >> 0usize) & 0x01;
9990 super::vals::Apb2enrTim1en(val as u8) 9398 super::vals::Ahb4enrGpioaen(val as u8)
9991 } 9399 }
9992 #[doc = "TIM1 peripheral clock enable"] 9400 #[doc = "0GPIO peripheral clock enable"]
9993 pub fn set_tim1en(&mut self, val: super::vals::Apb2enrTim1en) { 9401 pub fn set_gpioaen(&mut self, val: super::vals::Ahb4enrGpioaen) {
9994 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 9402 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
9995 } 9403 }
9996 #[doc = "TIM8 peripheral clock enable"] 9404 #[doc = "0GPIO peripheral clock enable"]
9997 pub const fn tim8en(&self) -> super::vals::Apb2enrTim1en { 9405 pub const fn gpioben(&self) -> super::vals::Ahb4enrGpioaen {
9998 let val = (self.0 >> 1usize) & 0x01; 9406 let val = (self.0 >> 1usize) & 0x01;
9999 super::vals::Apb2enrTim1en(val as u8) 9407 super::vals::Ahb4enrGpioaen(val as u8)
10000 } 9408 }
10001 #[doc = "TIM8 peripheral clock enable"] 9409 #[doc = "0GPIO peripheral clock enable"]
10002 pub fn set_tim8en(&mut self, val: super::vals::Apb2enrTim1en) { 9410 pub fn set_gpioben(&mut self, val: super::vals::Ahb4enrGpioaen) {
10003 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 9411 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
10004 } 9412 }
10005 #[doc = "USART1 Peripheral Clocks Enable"] 9413 #[doc = "0GPIO peripheral clock enable"]
10006 pub const fn usart1en(&self) -> super::vals::Apb2enrTim1en { 9414 pub const fn gpiocen(&self) -> super::vals::Ahb4enrGpioaen {
9415 let val = (self.0 >> 2usize) & 0x01;
9416 super::vals::Ahb4enrGpioaen(val as u8)
9417 }
9418 #[doc = "0GPIO peripheral clock enable"]
9419 pub fn set_gpiocen(&mut self, val: super::vals::Ahb4enrGpioaen) {
9420 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
9421 }
9422 #[doc = "0GPIO peripheral clock enable"]
9423 pub const fn gpioden(&self) -> super::vals::Ahb4enrGpioaen {
9424 let val = (self.0 >> 3usize) & 0x01;
9425 super::vals::Ahb4enrGpioaen(val as u8)
9426 }
9427 #[doc = "0GPIO peripheral clock enable"]
9428 pub fn set_gpioden(&mut self, val: super::vals::Ahb4enrGpioaen) {
9429 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
9430 }
9431 #[doc = "0GPIO peripheral clock enable"]
9432 pub const fn gpioeen(&self) -> super::vals::Ahb4enrGpioaen {
10007 let val = (self.0 >> 4usize) & 0x01; 9433 let val = (self.0 >> 4usize) & 0x01;
10008 super::vals::Apb2enrTim1en(val as u8) 9434 super::vals::Ahb4enrGpioaen(val as u8)
10009 } 9435 }
10010 #[doc = "USART1 Peripheral Clocks Enable"] 9436 #[doc = "0GPIO peripheral clock enable"]
10011 pub fn set_usart1en(&mut self, val: super::vals::Apb2enrTim1en) { 9437 pub fn set_gpioeen(&mut self, val: super::vals::Ahb4enrGpioaen) {
10012 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 9438 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
10013 } 9439 }
10014 #[doc = "USART6 Peripheral Clocks Enable"] 9440 #[doc = "0GPIO peripheral clock enable"]
10015 pub const fn usart6en(&self) -> super::vals::Apb2enrTim1en { 9441 pub const fn gpiofen(&self) -> super::vals::Ahb4enrGpioaen {
10016 let val = (self.0 >> 5usize) & 0x01; 9442 let val = (self.0 >> 5usize) & 0x01;
10017 super::vals::Apb2enrTim1en(val as u8) 9443 super::vals::Ahb4enrGpioaen(val as u8)
10018 } 9444 }
10019 #[doc = "USART6 Peripheral Clocks Enable"] 9445 #[doc = "0GPIO peripheral clock enable"]
10020 pub fn set_usart6en(&mut self, val: super::vals::Apb2enrTim1en) { 9446 pub fn set_gpiofen(&mut self, val: super::vals::Ahb4enrGpioaen) {
10021 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 9447 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
10022 } 9448 }
10023 #[doc = "SPI1 Peripheral Clocks Enable"] 9449 #[doc = "0GPIO peripheral clock enable"]
10024 pub const fn spi1en(&self) -> super::vals::Apb2enrTim1en { 9450 pub const fn gpiogen(&self) -> super::vals::Ahb4enrGpioaen {
10025 let val = (self.0 >> 12usize) & 0x01; 9451 let val = (self.0 >> 6usize) & 0x01;
10026 super::vals::Apb2enrTim1en(val as u8) 9452 super::vals::Ahb4enrGpioaen(val as u8)
10027 }
10028 #[doc = "SPI1 Peripheral Clocks Enable"]
10029 pub fn set_spi1en(&mut self, val: super::vals::Apb2enrTim1en) {
10030 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
10031 }
10032 #[doc = "SPI4 Peripheral Clocks Enable"]
10033 pub const fn spi4en(&self) -> super::vals::Apb2enrTim1en {
10034 let val = (self.0 >> 13usize) & 0x01;
10035 super::vals::Apb2enrTim1en(val as u8)
10036 } 9453 }
10037 #[doc = "SPI4 Peripheral Clocks Enable"] 9454 #[doc = "0GPIO peripheral clock enable"]
10038 pub fn set_spi4en(&mut self, val: super::vals::Apb2enrTim1en) { 9455 pub fn set_gpiogen(&mut self, val: super::vals::Ahb4enrGpioaen) {
10039 self.0 = (self.0 & !(0x01 << 13usize)) | (((val.0 as u32) & 0x01) << 13usize); 9456 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
10040 } 9457 }
10041 #[doc = "TIM15 peripheral clock enable"] 9458 #[doc = "0GPIO peripheral clock enable"]
10042 pub const fn tim15en(&self) -> super::vals::Apb2enrTim1en { 9459 pub const fn gpiohen(&self) -> super::vals::Ahb4enrGpioaen {
10043 let val = (self.0 >> 16usize) & 0x01; 9460 let val = (self.0 >> 7usize) & 0x01;
10044 super::vals::Apb2enrTim1en(val as u8) 9461 super::vals::Ahb4enrGpioaen(val as u8)
10045 } 9462 }
10046 #[doc = "TIM15 peripheral clock enable"] 9463 #[doc = "0GPIO peripheral clock enable"]
10047 pub fn set_tim15en(&mut self, val: super::vals::Apb2enrTim1en) { 9464 pub fn set_gpiohen(&mut self, val: super::vals::Ahb4enrGpioaen) {
10048 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize); 9465 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
10049 } 9466 }
10050 #[doc = "TIM16 peripheral clock enable"] 9467 #[doc = "0GPIO peripheral clock enable"]
10051 pub const fn tim16en(&self) -> super::vals::Apb2enrTim1en { 9468 pub const fn gpioien(&self) -> super::vals::Ahb4enrGpioaen {
10052 let val = (self.0 >> 17usize) & 0x01; 9469 let val = (self.0 >> 8usize) & 0x01;
10053 super::vals::Apb2enrTim1en(val as u8) 9470 super::vals::Ahb4enrGpioaen(val as u8)
10054 } 9471 }
10055 #[doc = "TIM16 peripheral clock enable"] 9472 #[doc = "0GPIO peripheral clock enable"]
10056 pub fn set_tim16en(&mut self, val: super::vals::Apb2enrTim1en) { 9473 pub fn set_gpioien(&mut self, val: super::vals::Ahb4enrGpioaen) {
10057 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize); 9474 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
10058 } 9475 }
10059 #[doc = "TIM17 peripheral clock enable"] 9476 #[doc = "0GPIO peripheral clock enable"]
10060 pub const fn tim17en(&self) -> super::vals::Apb2enrTim1en { 9477 pub const fn gpiojen(&self) -> super::vals::Ahb4enrGpioaen {
10061 let val = (self.0 >> 18usize) & 0x01; 9478 let val = (self.0 >> 9usize) & 0x01;
10062 super::vals::Apb2enrTim1en(val as u8) 9479 super::vals::Ahb4enrGpioaen(val as u8)
10063 } 9480 }
10064 #[doc = "TIM17 peripheral clock enable"] 9481 #[doc = "0GPIO peripheral clock enable"]
10065 pub fn set_tim17en(&mut self, val: super::vals::Apb2enrTim1en) { 9482 pub fn set_gpiojen(&mut self, val: super::vals::Ahb4enrGpioaen) {
10066 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize); 9483 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
10067 } 9484 }
10068 #[doc = "SPI5 Peripheral Clocks Enable"] 9485 #[doc = "0GPIO peripheral clock enable"]
10069 pub const fn spi5en(&self) -> super::vals::Apb2enrTim1en { 9486 pub const fn gpioken(&self) -> super::vals::Ahb4enrGpioaen {
10070 let val = (self.0 >> 20usize) & 0x01; 9487 let val = (self.0 >> 10usize) & 0x01;
10071 super::vals::Apb2enrTim1en(val as u8) 9488 super::vals::Ahb4enrGpioaen(val as u8)
10072 } 9489 }
10073 #[doc = "SPI5 Peripheral Clocks Enable"] 9490 #[doc = "0GPIO peripheral clock enable"]
10074 pub fn set_spi5en(&mut self, val: super::vals::Apb2enrTim1en) { 9491 pub fn set_gpioken(&mut self, val: super::vals::Ahb4enrGpioaen) {
10075 self.0 = (self.0 & !(0x01 << 20usize)) | (((val.0 as u32) & 0x01) << 20usize); 9492 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
10076 } 9493 }
10077 #[doc = "SAI1 Peripheral Clocks Enable"] 9494 #[doc = "CRC peripheral clock enable"]
10078 pub const fn sai1en(&self) -> super::vals::Apb2enrTim1en { 9495 pub const fn crcen(&self) -> super::vals::Ahb4enrGpioaen {
10079 let val = (self.0 >> 22usize) & 0x01; 9496 let val = (self.0 >> 19usize) & 0x01;
10080 super::vals::Apb2enrTim1en(val as u8) 9497 super::vals::Ahb4enrGpioaen(val as u8)
10081 } 9498 }
10082 #[doc = "SAI1 Peripheral Clocks Enable"] 9499 #[doc = "CRC peripheral clock enable"]
10083 pub fn set_sai1en(&mut self, val: super::vals::Apb2enrTim1en) { 9500 pub fn set_crcen(&mut self, val: super::vals::Ahb4enrGpioaen) {
10084 self.0 = (self.0 & !(0x01 << 22usize)) | (((val.0 as u32) & 0x01) << 22usize); 9501 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
10085 } 9502 }
10086 #[doc = "SAI2 Peripheral Clocks Enable"] 9503 #[doc = "BDMA and DMAMUX2 Clock Enable"]
10087 pub const fn sai2en(&self) -> super::vals::Apb2enrTim1en { 9504 pub const fn bdmaen(&self) -> super::vals::Ahb4enrGpioaen {
10088 let val = (self.0 >> 23usize) & 0x01; 9505 let val = (self.0 >> 21usize) & 0x01;
10089 super::vals::Apb2enrTim1en(val as u8) 9506 super::vals::Ahb4enrGpioaen(val as u8)
10090 } 9507 }
10091 #[doc = "SAI2 Peripheral Clocks Enable"] 9508 #[doc = "BDMA and DMAMUX2 Clock Enable"]
10092 pub fn set_sai2en(&mut self, val: super::vals::Apb2enrTim1en) { 9509 pub fn set_bdmaen(&mut self, val: super::vals::Ahb4enrGpioaen) {
10093 self.0 = (self.0 & !(0x01 << 23usize)) | (((val.0 as u32) & 0x01) << 23usize); 9510 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize);
10094 } 9511 }
10095 #[doc = "SAI3 Peripheral Clocks Enable"] 9512 #[doc = "ADC3 Peripheral Clocks Enable"]
10096 pub const fn sai3en(&self) -> super::vals::Apb2enrTim1en { 9513 pub const fn adc3en(&self) -> super::vals::Ahb4enrGpioaen {
10097 let val = (self.0 >> 24usize) & 0x01; 9514 let val = (self.0 >> 24usize) & 0x01;
10098 super::vals::Apb2enrTim1en(val as u8) 9515 super::vals::Ahb4enrGpioaen(val as u8)
10099 } 9516 }
10100 #[doc = "SAI3 Peripheral Clocks Enable"] 9517 #[doc = "ADC3 Peripheral Clocks Enable"]
10101 pub fn set_sai3en(&mut self, val: super::vals::Apb2enrTim1en) { 9518 pub fn set_adc3en(&mut self, val: super::vals::Ahb4enrGpioaen) {
10102 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize); 9519 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
10103 } 9520 }
10104 #[doc = "DFSDM1 Peripheral Clocks Enable"] 9521 #[doc = "HSEM peripheral clock enable"]
10105 pub const fn dfsdm1en(&self) -> super::vals::Apb2enrTim1en { 9522 pub const fn hsemen(&self) -> super::vals::Ahb4enrGpioaen {
10106 let val = (self.0 >> 28usize) & 0x01; 9523 let val = (self.0 >> 25usize) & 0x01;
10107 super::vals::Apb2enrTim1en(val as u8) 9524 super::vals::Ahb4enrGpioaen(val as u8)
10108 } 9525 }
10109 #[doc = "DFSDM1 Peripheral Clocks Enable"] 9526 #[doc = "HSEM peripheral clock enable"]
10110 pub fn set_dfsdm1en(&mut self, val: super::vals::Apb2enrTim1en) { 9527 pub fn set_hsemen(&mut self, val: super::vals::Ahb4enrGpioaen) {
10111 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize); 9528 self.0 = (self.0 & !(0x01 << 25usize)) | (((val.0 as u32) & 0x01) << 25usize);
10112 } 9529 }
10113 #[doc = "HRTIM peripheral clock enable"] 9530 #[doc = "Backup RAM Clock Enable"]
10114 pub const fn hrtimen(&self) -> super::vals::Apb2enrTim1en { 9531 pub const fn bkpramen(&self) -> super::vals::Ahb4enrGpioaen {
10115 let val = (self.0 >> 29usize) & 0x01; 9532 let val = (self.0 >> 28usize) & 0x01;
10116 super::vals::Apb2enrTim1en(val as u8) 9533 super::vals::Ahb4enrGpioaen(val as u8)
10117 } 9534 }
10118 #[doc = "HRTIM peripheral clock enable"] 9535 #[doc = "Backup RAM Clock Enable"]
10119 pub fn set_hrtimen(&mut self, val: super::vals::Apb2enrTim1en) { 9536 pub fn set_bkpramen(&mut self, val: super::vals::Ahb4enrGpioaen) {
10120 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize); 9537 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
10121 } 9538 }
10122 } 9539 }
10123 impl Default for Apb2enr { 9540 impl Default for Ahb4enr {
10124 fn default() -> Apb2enr { 9541 fn default() -> Ahb4enr {
10125 Apb2enr(0) 9542 Ahb4enr(0)
10126 } 9543 }
10127 } 9544 }
10128 #[doc = "RCC Clock Configuration Register"] 9545 #[doc = "RCC Clock Source Interrupt Clear Register"]
10129 #[repr(transparent)] 9546 #[repr(transparent)]
10130 #[derive(Copy, Clone, Eq, PartialEq)] 9547 #[derive(Copy, Clone, Eq, PartialEq)]
10131 pub struct Cfgr(pub u32); 9548 pub struct Cicr(pub u32);
10132 impl Cfgr { 9549 impl Cicr {
10133 #[doc = "System clock switch"] 9550 #[doc = "LSI ready Interrupt Clear"]
10134 pub const fn sw(&self) -> super::vals::Sw { 9551 pub const fn lsirdyc(&self) -> super::vals::Lsirdyc {
10135 let val = (self.0 >> 0usize) & 0x07; 9552 let val = (self.0 >> 0usize) & 0x01;
10136 super::vals::Sw(val as u8) 9553 super::vals::Lsirdyc(val as u8)
10137 } 9554 }
10138 #[doc = "System clock switch"] 9555 #[doc = "LSI ready Interrupt Clear"]
10139 pub fn set_sw(&mut self, val: super::vals::Sw) { 9556 pub fn set_lsirdyc(&mut self, val: super::vals::Lsirdyc) {
10140 self.0 = (self.0 & !(0x07 << 0usize)) | (((val.0 as u32) & 0x07) << 0usize); 9557 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
10141 } 9558 }
10142 #[doc = "System clock switch status"] 9559 #[doc = "LSE ready Interrupt Clear"]
10143 pub const fn sws(&self) -> u8 { 9560 pub const fn lserdyc(&self) -> super::vals::Lsirdyc {
10144 let val = (self.0 >> 3usize) & 0x07; 9561 let val = (self.0 >> 1usize) & 0x01;
10145 val as u8 9562 super::vals::Lsirdyc(val as u8)
10146 } 9563 }
10147 #[doc = "System clock switch status"] 9564 #[doc = "LSE ready Interrupt Clear"]
10148 pub fn set_sws(&mut self, val: u8) { 9565 pub fn set_lserdyc(&mut self, val: super::vals::Lsirdyc) {
10149 self.0 = (self.0 & !(0x07 << 3usize)) | (((val as u32) & 0x07) << 3usize); 9566 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
10150 } 9567 }
10151 #[doc = "System clock selection after a wake up from system Stop"] 9568 #[doc = "HSI ready Interrupt Clear"]
10152 pub const fn stopwuck(&self) -> super::vals::Stopwuck { 9569 pub const fn hsirdyc(&self) -> super::vals::Lsirdyc {
10153 let val = (self.0 >> 6usize) & 0x01; 9570 let val = (self.0 >> 2usize) & 0x01;
10154 super::vals::Stopwuck(val as u8) 9571 super::vals::Lsirdyc(val as u8)
10155 } 9572 }
10156 #[doc = "System clock selection after a wake up from system Stop"] 9573 #[doc = "HSI ready Interrupt Clear"]
10157 pub fn set_stopwuck(&mut self, val: super::vals::Stopwuck) { 9574 pub fn set_hsirdyc(&mut self, val: super::vals::Lsirdyc) {
10158 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize); 9575 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
10159 } 9576 }
10160 #[doc = "Kernel clock selection after a wake up from system Stop"] 9577 #[doc = "HSE ready Interrupt Clear"]
10161 pub const fn stopkerwuck(&self) -> super::vals::Stopwuck { 9578 pub const fn hserdyc(&self) -> super::vals::Lsirdyc {
10162 let val = (self.0 >> 7usize) & 0x01; 9579 let val = (self.0 >> 3usize) & 0x01;
10163 super::vals::Stopwuck(val as u8) 9580 super::vals::Lsirdyc(val as u8)
10164 } 9581 }
10165 #[doc = "Kernel clock selection after a wake up from system Stop"] 9582 #[doc = "HSE ready Interrupt Clear"]
10166 pub fn set_stopkerwuck(&mut self, val: super::vals::Stopwuck) { 9583 pub fn set_hserdyc(&mut self, val: super::vals::Lsirdyc) {
10167 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 9584 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
10168 } 9585 }
10169 #[doc = "HSE division factor for RTC clock"] 9586 #[doc = "CSI ready Interrupt Clear"]
10170 pub const fn rtcpre(&self) -> u8 { 9587 pub const fn hse_ready_interrupt_clear(&self) -> bool {
10171 let val = (self.0 >> 8usize) & 0x3f; 9588 let val = (self.0 >> 4usize) & 0x01;
10172 val as u8 9589 val != 0
10173 } 9590 }
10174 #[doc = "HSE division factor for RTC clock"] 9591 #[doc = "CSI ready Interrupt Clear"]
10175 pub fn set_rtcpre(&mut self, val: u8) { 9592 pub fn set_hse_ready_interrupt_clear(&mut self, val: bool) {
10176 self.0 = (self.0 & !(0x3f << 8usize)) | (((val as u32) & 0x3f) << 8usize); 9593 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
10177 } 9594 }
10178 #[doc = "High Resolution Timer clock prescaler selection"] 9595 #[doc = "RC48 ready Interrupt Clear"]
10179 pub const fn hrtimsel(&self) -> super::vals::Hrtimsel { 9596 pub const fn hsi48rdyc(&self) -> super::vals::Lsirdyc {
10180 let val = (self.0 >> 14usize) & 0x01; 9597 let val = (self.0 >> 5usize) & 0x01;
10181 super::vals::Hrtimsel(val as u8) 9598 super::vals::Lsirdyc(val as u8)
10182 } 9599 }
10183 #[doc = "High Resolution Timer clock prescaler selection"] 9600 #[doc = "RC48 ready Interrupt Clear"]
10184 pub fn set_hrtimsel(&mut self, val: super::vals::Hrtimsel) { 9601 pub fn set_hsi48rdyc(&mut self, val: super::vals::Lsirdyc) {
10185 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 9602 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
10186 } 9603 }
10187 #[doc = "Timers clocks prescaler selection"] 9604 #[doc = "PLL1 ready Interrupt Clear"]
10188 pub const fn timpre(&self) -> super::vals::Timpre { 9605 pub fn pllrdyc(&self, n: usize) -> super::vals::Lsirdyc {
10189 let val = (self.0 >> 15usize) & 0x01; 9606 assert!(n < 3usize);
10190 super::vals::Timpre(val as u8) 9607 let offs = 6usize + n * 1usize;
9608 let val = (self.0 >> offs) & 0x01;
9609 super::vals::Lsirdyc(val as u8)
10191 } 9610 }
10192 #[doc = "Timers clocks prescaler selection"] 9611 #[doc = "PLL1 ready Interrupt Clear"]
10193 pub fn set_timpre(&mut self, val: super::vals::Timpre) { 9612 pub fn set_pllrdyc(&mut self, n: usize, val: super::vals::Lsirdyc) {
10194 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize); 9613 assert!(n < 3usize);
9614 let offs = 6usize + n * 1usize;
9615 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
10195 } 9616 }
10196 #[doc = "MCO1 prescaler"] 9617 #[doc = "LSE clock security system Interrupt Clear"]
10197 pub const fn mco1pre(&self) -> u8 { 9618 pub const fn lsecssc(&self) -> super::vals::Lsirdyc {
10198 let val = (self.0 >> 18usize) & 0x0f; 9619 let val = (self.0 >> 9usize) & 0x01;
10199 val as u8 9620 super::vals::Lsirdyc(val as u8)
10200 } 9621 }
10201 #[doc = "MCO1 prescaler"] 9622 #[doc = "LSE clock security system Interrupt Clear"]
10202 pub fn set_mco1pre(&mut self, val: u8) { 9623 pub fn set_lsecssc(&mut self, val: super::vals::Lsirdyc) {
10203 self.0 = (self.0 & !(0x0f << 18usize)) | (((val as u32) & 0x0f) << 18usize); 9624 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
10204 } 9625 }
10205 #[doc = "Micro-controller clock output 1"] 9626 #[doc = "HSE clock security system Interrupt Clear"]
10206 pub const fn mco1(&self) -> super::vals::Mco1 { 9627 pub const fn hsecssc(&self) -> super::vals::Lsirdyc {
10207 let val = (self.0 >> 22usize) & 0x07; 9628 let val = (self.0 >> 10usize) & 0x01;
10208 super::vals::Mco1(val as u8) 9629 super::vals::Lsirdyc(val as u8)
10209 } 9630 }
10210 #[doc = "Micro-controller clock output 1"] 9631 #[doc = "HSE clock security system Interrupt Clear"]
10211 pub fn set_mco1(&mut self, val: super::vals::Mco1) { 9632 pub fn set_hsecssc(&mut self, val: super::vals::Lsirdyc) {
10212 self.0 = (self.0 & !(0x07 << 22usize)) | (((val.0 as u32) & 0x07) << 22usize); 9633 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
10213 } 9634 }
10214 #[doc = "MCO2 prescaler"] 9635 }
10215 pub const fn mco2pre(&self) -> u8 { 9636 impl Default for Cicr {
10216 let val = (self.0 >> 25usize) & 0x0f; 9637 fn default() -> Cicr {
10217 val as u8 9638 Cicr(0)
10218 } 9639 }
10219 #[doc = "MCO2 prescaler"] 9640 }
10220 pub fn set_mco2pre(&mut self, val: u8) { 9641 #[doc = "RCC APB1 High Sleep Clock Register"]
10221 self.0 = (self.0 & !(0x0f << 25usize)) | (((val as u32) & 0x0f) << 25usize); 9642 #[repr(transparent)]
9643 #[derive(Copy, Clone, Eq, PartialEq)]
9644 pub struct Apb1hlpenr(pub u32);
9645 impl Apb1hlpenr {
9646 #[doc = "Clock Recovery System peripheral clock enable during CSleep mode"]
9647 pub const fn crslpen(&self) -> super::vals::Apb1hlpenrCrslpen {
9648 let val = (self.0 >> 1usize) & 0x01;
9649 super::vals::Apb1hlpenrCrslpen(val as u8)
10222 } 9650 }
10223 #[doc = "Micro-controller clock output 2"] 9651 #[doc = "Clock Recovery System peripheral clock enable during CSleep mode"]
10224 pub const fn mco2(&self) -> super::vals::Mco2 { 9652 pub fn set_crslpen(&mut self, val: super::vals::Apb1hlpenrCrslpen) {
10225 let val = (self.0 >> 29usize) & 0x07; 9653 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
10226 super::vals::Mco2(val as u8)
10227 } 9654 }
10228 #[doc = "Micro-controller clock output 2"] 9655 #[doc = "SWPMI Peripheral Clocks Enable During CSleep Mode"]
10229 pub fn set_mco2(&mut self, val: super::vals::Mco2) { 9656 pub const fn swplpen(&self) -> super::vals::Apb1hlpenrCrslpen {
10230 self.0 = (self.0 & !(0x07 << 29usize)) | (((val.0 as u32) & 0x07) << 29usize); 9657 let val = (self.0 >> 2usize) & 0x01;
9658 super::vals::Apb1hlpenrCrslpen(val as u8)
9659 }
9660 #[doc = "SWPMI Peripheral Clocks Enable During CSleep Mode"]
9661 pub fn set_swplpen(&mut self, val: super::vals::Apb1hlpenrCrslpen) {
9662 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
9663 }
9664 #[doc = "OPAMP peripheral clock enable during CSleep mode"]
9665 pub const fn opamplpen(&self) -> super::vals::Apb1hlpenrCrslpen {
9666 let val = (self.0 >> 4usize) & 0x01;
9667 super::vals::Apb1hlpenrCrslpen(val as u8)
9668 }
9669 #[doc = "OPAMP peripheral clock enable during CSleep mode"]
9670 pub fn set_opamplpen(&mut self, val: super::vals::Apb1hlpenrCrslpen) {
9671 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
9672 }
9673 #[doc = "MDIOS peripheral clock enable during CSleep mode"]
9674 pub const fn mdioslpen(&self) -> super::vals::Apb1hlpenrCrslpen {
9675 let val = (self.0 >> 5usize) & 0x01;
9676 super::vals::Apb1hlpenrCrslpen(val as u8)
9677 }
9678 #[doc = "MDIOS peripheral clock enable during CSleep mode"]
9679 pub fn set_mdioslpen(&mut self, val: super::vals::Apb1hlpenrCrslpen) {
9680 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
9681 }
9682 #[doc = "FDCAN Peripheral Clocks Enable During CSleep Mode"]
9683 pub const fn fdcanlpen(&self) -> super::vals::Apb1hlpenrCrslpen {
9684 let val = (self.0 >> 8usize) & 0x01;
9685 super::vals::Apb1hlpenrCrslpen(val as u8)
9686 }
9687 #[doc = "FDCAN Peripheral Clocks Enable During CSleep Mode"]
9688 pub fn set_fdcanlpen(&mut self, val: super::vals::Apb1hlpenrCrslpen) {
9689 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
10231 } 9690 }
10232 } 9691 }
10233 impl Default for Cfgr { 9692 impl Default for Apb1hlpenr {
10234 fn default() -> Cfgr { 9693 fn default() -> Apb1hlpenr {
10235 Cfgr(0) 9694 Apb1hlpenr(0)
10236 } 9695 }
10237 } 9696 }
10238 #[doc = "RCC APB2 Sleep Clock Register"] 9697 #[doc = "RCC APB2 Sleep Clock Register"]
@@ -10381,2586 +9840,1388 @@ pub mod rcc_h7 {
10381 C1Apb2lpenr(0) 9840 C1Apb2lpenr(0)
10382 } 9841 }
10383 } 9842 }
10384 #[doc = "clock control register"] 9843 #[doc = "RCC PLL1 Dividers Configuration Register"]
10385 #[repr(transparent)]
10386 #[derive(Copy, Clone, Eq, PartialEq)]
10387 pub struct Cr(pub u32);
10388 impl Cr {
10389 #[doc = "Internal high-speed clock enable"]
10390 pub const fn hsion(&self) -> super::vals::Hsion {
10391 let val = (self.0 >> 0usize) & 0x01;
10392 super::vals::Hsion(val as u8)
10393 }
10394 #[doc = "Internal high-speed clock enable"]
10395 pub fn set_hsion(&mut self, val: super::vals::Hsion) {
10396 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
10397 }
10398 #[doc = "High Speed Internal clock enable in Stop mode"]
10399 pub const fn hsikeron(&self) -> super::vals::Hsion {
10400 let val = (self.0 >> 1usize) & 0x01;
10401 super::vals::Hsion(val as u8)
10402 }
10403 #[doc = "High Speed Internal clock enable in Stop mode"]
10404 pub fn set_hsikeron(&mut self, val: super::vals::Hsion) {
10405 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
10406 }
10407 #[doc = "HSI clock ready flag"]
10408 pub const fn hsirdy(&self) -> bool {
10409 let val = (self.0 >> 2usize) & 0x01;
10410 val != 0
10411 }
10412 #[doc = "HSI clock ready flag"]
10413 pub fn set_hsirdy(&mut self, val: bool) {
10414 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
10415 }
10416 #[doc = "HSI clock divider"]
10417 pub const fn hsidiv(&self) -> super::vals::Hsidiv {
10418 let val = (self.0 >> 3usize) & 0x03;
10419 super::vals::Hsidiv(val as u8)
10420 }
10421 #[doc = "HSI clock divider"]
10422 pub fn set_hsidiv(&mut self, val: super::vals::Hsidiv) {
10423 self.0 = (self.0 & !(0x03 << 3usize)) | (((val.0 as u32) & 0x03) << 3usize);
10424 }
10425 #[doc = "HSI divider flag"]
10426 pub const fn hsidivf(&self) -> bool {
10427 let val = (self.0 >> 5usize) & 0x01;
10428 val != 0
10429 }
10430 #[doc = "HSI divider flag"]
10431 pub fn set_hsidivf(&mut self, val: bool) {
10432 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
10433 }
10434 #[doc = "CSI clock enable"]
10435 pub const fn csion(&self) -> super::vals::Hsion {
10436 let val = (self.0 >> 7usize) & 0x01;
10437 super::vals::Hsion(val as u8)
10438 }
10439 #[doc = "CSI clock enable"]
10440 pub fn set_csion(&mut self, val: super::vals::Hsion) {
10441 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
10442 }
10443 #[doc = "CSI clock ready flag"]
10444 pub const fn csirdy(&self) -> bool {
10445 let val = (self.0 >> 8usize) & 0x01;
10446 val != 0
10447 }
10448 #[doc = "CSI clock ready flag"]
10449 pub fn set_csirdy(&mut self, val: bool) {
10450 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
10451 }
10452 #[doc = "CSI clock enable in Stop mode"]
10453 pub const fn csikeron(&self) -> super::vals::Hsion {
10454 let val = (self.0 >> 9usize) & 0x01;
10455 super::vals::Hsion(val as u8)
10456 }
10457 #[doc = "CSI clock enable in Stop mode"]
10458 pub fn set_csikeron(&mut self, val: super::vals::Hsion) {
10459 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
10460 }
10461 #[doc = "RC48 clock enable"]
10462 pub const fn hsi48on(&self) -> super::vals::Hsion {
10463 let val = (self.0 >> 12usize) & 0x01;
10464 super::vals::Hsion(val as u8)
10465 }
10466 #[doc = "RC48 clock enable"]
10467 pub fn set_hsi48on(&mut self, val: super::vals::Hsion) {
10468 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
10469 }
10470 #[doc = "RC48 clock ready flag"]
10471 pub const fn hsi48rdy(&self) -> bool {
10472 let val = (self.0 >> 13usize) & 0x01;
10473 val != 0
10474 }
10475 #[doc = "RC48 clock ready flag"]
10476 pub fn set_hsi48rdy(&mut self, val: bool) {
10477 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
10478 }
10479 #[doc = "D1 domain clocks ready flag"]
10480 pub const fn d1ckrdy(&self) -> bool {
10481 let val = (self.0 >> 14usize) & 0x01;
10482 val != 0
10483 }
10484 #[doc = "D1 domain clocks ready flag"]
10485 pub fn set_d1ckrdy(&mut self, val: bool) {
10486 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
10487 }
10488 #[doc = "D2 domain clocks ready flag"]
10489 pub const fn d2ckrdy(&self) -> bool {
10490 let val = (self.0 >> 15usize) & 0x01;
10491 val != 0
10492 }
10493 #[doc = "D2 domain clocks ready flag"]
10494 pub fn set_d2ckrdy(&mut self, val: bool) {
10495 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize);
10496 }
10497 #[doc = "HSE clock enable"]
10498 pub const fn hseon(&self) -> super::vals::Hsion {
10499 let val = (self.0 >> 16usize) & 0x01;
10500 super::vals::Hsion(val as u8)
10501 }
10502 #[doc = "HSE clock enable"]
10503 pub fn set_hseon(&mut self, val: super::vals::Hsion) {
10504 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
10505 }
10506 #[doc = "HSE clock ready flag"]
10507 pub const fn hserdy(&self) -> bool {
10508 let val = (self.0 >> 17usize) & 0x01;
10509 val != 0
10510 }
10511 #[doc = "HSE clock ready flag"]
10512 pub fn set_hserdy(&mut self, val: bool) {
10513 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
10514 }
10515 #[doc = "HSE clock bypass"]
10516 pub const fn hsebyp(&self) -> super::vals::Hsebyp {
10517 let val = (self.0 >> 18usize) & 0x01;
10518 super::vals::Hsebyp(val as u8)
10519 }
10520 #[doc = "HSE clock bypass"]
10521 pub fn set_hsebyp(&mut self, val: super::vals::Hsebyp) {
10522 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
10523 }
10524 #[doc = "HSE Clock Security System enable"]
10525 pub const fn hsecsson(&self) -> super::vals::Hsion {
10526 let val = (self.0 >> 19usize) & 0x01;
10527 super::vals::Hsion(val as u8)
10528 }
10529 #[doc = "HSE Clock Security System enable"]
10530 pub fn set_hsecsson(&mut self, val: super::vals::Hsion) {
10531 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
10532 }
10533 #[doc = "PLL1 enable"]
10534 pub const fn pll1on(&self) -> super::vals::Hsion {
10535 let val = (self.0 >> 24usize) & 0x01;
10536 super::vals::Hsion(val as u8)
10537 }
10538 #[doc = "PLL1 enable"]
10539 pub fn set_pll1on(&mut self, val: super::vals::Hsion) {
10540 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
10541 }
10542 #[doc = "PLL1 clock ready flag"]
10543 pub const fn pll1rdy(&self) -> bool {
10544 let val = (self.0 >> 25usize) & 0x01;
10545 val != 0
10546 }
10547 #[doc = "PLL1 clock ready flag"]
10548 pub fn set_pll1rdy(&mut self, val: bool) {
10549 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize);
10550 }
10551 #[doc = "PLL2 enable"]
10552 pub const fn pll2on(&self) -> super::vals::Hsion {
10553 let val = (self.0 >> 26usize) & 0x01;
10554 super::vals::Hsion(val as u8)
10555 }
10556 #[doc = "PLL2 enable"]
10557 pub fn set_pll2on(&mut self, val: super::vals::Hsion) {
10558 self.0 = (self.0 & !(0x01 << 26usize)) | (((val.0 as u32) & 0x01) << 26usize);
10559 }
10560 #[doc = "PLL2 clock ready flag"]
10561 pub const fn pll2rdy(&self) -> bool {
10562 let val = (self.0 >> 27usize) & 0x01;
10563 val != 0
10564 }
10565 #[doc = "PLL2 clock ready flag"]
10566 pub fn set_pll2rdy(&mut self, val: bool) {
10567 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize);
10568 }
10569 #[doc = "PLL3 enable"]
10570 pub const fn pll3on(&self) -> super::vals::Hsion {
10571 let val = (self.0 >> 28usize) & 0x01;
10572 super::vals::Hsion(val as u8)
10573 }
10574 #[doc = "PLL3 enable"]
10575 pub fn set_pll3on(&mut self, val: super::vals::Hsion) {
10576 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
10577 }
10578 #[doc = "PLL3 clock ready flag"]
10579 pub const fn pll3rdy(&self) -> bool {
10580 let val = (self.0 >> 29usize) & 0x01;
10581 val != 0
10582 }
10583 #[doc = "PLL3 clock ready flag"]
10584 pub fn set_pll3rdy(&mut self, val: bool) {
10585 self.0 = (self.0 & !(0x01 << 29usize)) | (((val as u32) & 0x01) << 29usize);
10586 }
10587 }
10588 impl Default for Cr {
10589 fn default() -> Cr {
10590 Cr(0)
10591 }
10592 }
10593 #[doc = "RCC AHB3 Reset Register"]
10594 #[repr(transparent)]
10595 #[derive(Copy, Clone, Eq, PartialEq)]
10596 pub struct Ahb3rstr(pub u32);
10597 impl Ahb3rstr {
10598 #[doc = "MDMA block reset"]
10599 pub const fn mdmarst(&self) -> super::vals::Mdmarst {
10600 let val = (self.0 >> 0usize) & 0x01;
10601 super::vals::Mdmarst(val as u8)
10602 }
10603 #[doc = "MDMA block reset"]
10604 pub fn set_mdmarst(&mut self, val: super::vals::Mdmarst) {
10605 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
10606 }
10607 #[doc = "DMA2D block reset"]
10608 pub const fn dma2drst(&self) -> super::vals::Mdmarst {
10609 let val = (self.0 >> 4usize) & 0x01;
10610 super::vals::Mdmarst(val as u8)
10611 }
10612 #[doc = "DMA2D block reset"]
10613 pub fn set_dma2drst(&mut self, val: super::vals::Mdmarst) {
10614 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
10615 }
10616 #[doc = "JPGDEC block reset"]
10617 pub const fn jpgdecrst(&self) -> super::vals::Mdmarst {
10618 let val = (self.0 >> 5usize) & 0x01;
10619 super::vals::Mdmarst(val as u8)
10620 }
10621 #[doc = "JPGDEC block reset"]
10622 pub fn set_jpgdecrst(&mut self, val: super::vals::Mdmarst) {
10623 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
10624 }
10625 #[doc = "FMC block reset"]
10626 pub const fn fmcrst(&self) -> super::vals::Mdmarst {
10627 let val = (self.0 >> 12usize) & 0x01;
10628 super::vals::Mdmarst(val as u8)
10629 }
10630 #[doc = "FMC block reset"]
10631 pub fn set_fmcrst(&mut self, val: super::vals::Mdmarst) {
10632 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
10633 }
10634 #[doc = "QUADSPI and QUADSPI delay block reset"]
10635 pub const fn qspirst(&self) -> super::vals::Mdmarst {
10636 let val = (self.0 >> 14usize) & 0x01;
10637 super::vals::Mdmarst(val as u8)
10638 }
10639 #[doc = "QUADSPI and QUADSPI delay block reset"]
10640 pub fn set_qspirst(&mut self, val: super::vals::Mdmarst) {
10641 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
10642 }
10643 #[doc = "SDMMC1 and SDMMC1 delay block reset"]
10644 pub const fn sdmmc1rst(&self) -> super::vals::Mdmarst {
10645 let val = (self.0 >> 16usize) & 0x01;
10646 super::vals::Mdmarst(val as u8)
10647 }
10648 #[doc = "SDMMC1 and SDMMC1 delay block reset"]
10649 pub fn set_sdmmc1rst(&mut self, val: super::vals::Mdmarst) {
10650 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
10651 }
10652 #[doc = "CPU reset"]
10653 pub const fn cpurst(&self) -> super::vals::Mdmarst {
10654 let val = (self.0 >> 31usize) & 0x01;
10655 super::vals::Mdmarst(val as u8)
10656 }
10657 #[doc = "CPU reset"]
10658 pub fn set_cpurst(&mut self, val: super::vals::Mdmarst) {
10659 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize);
10660 }
10661 }
10662 impl Default for Ahb3rstr {
10663 fn default() -> Ahb3rstr {
10664 Ahb3rstr(0)
10665 }
10666 }
10667 #[doc = "RCC APB4 Peripheral Reset Register"]
10668 #[repr(transparent)] 9844 #[repr(transparent)]
10669 #[derive(Copy, Clone, Eq, PartialEq)] 9845 #[derive(Copy, Clone, Eq, PartialEq)]
10670 pub struct Apb4rstr(pub u32); 9846 pub struct Pll1divr(pub u32);
10671 impl Apb4rstr { 9847 impl Pll1divr {
10672 #[doc = "SYSCFG block reset"] 9848 #[doc = "Multiplication factor for PLL1 VCO"]
10673 pub const fn syscfgrst(&self) -> super::vals::Syscfgrst { 9849 pub const fn divn1(&self) -> u16 {
10674 let val = (self.0 >> 1usize) & 0x01; 9850 let val = (self.0 >> 0usize) & 0x01ff;
10675 super::vals::Syscfgrst(val as u8) 9851 val as u16
10676 }
10677 #[doc = "SYSCFG block reset"]
10678 pub fn set_syscfgrst(&mut self, val: super::vals::Syscfgrst) {
10679 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
10680 }
10681 #[doc = "LPUART1 block reset"]
10682 pub const fn lpuart1rst(&self) -> super::vals::Syscfgrst {
10683 let val = (self.0 >> 3usize) & 0x01;
10684 super::vals::Syscfgrst(val as u8)
10685 }
10686 #[doc = "LPUART1 block reset"]
10687 pub fn set_lpuart1rst(&mut self, val: super::vals::Syscfgrst) {
10688 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
10689 }
10690 #[doc = "SPI6 block reset"]
10691 pub const fn spi6rst(&self) -> super::vals::Syscfgrst {
10692 let val = (self.0 >> 5usize) & 0x01;
10693 super::vals::Syscfgrst(val as u8)
10694 }
10695 #[doc = "SPI6 block reset"]
10696 pub fn set_spi6rst(&mut self, val: super::vals::Syscfgrst) {
10697 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
10698 }
10699 #[doc = "I2C4 block reset"]
10700 pub const fn i2c4rst(&self) -> super::vals::Syscfgrst {
10701 let val = (self.0 >> 7usize) & 0x01;
10702 super::vals::Syscfgrst(val as u8)
10703 }
10704 #[doc = "I2C4 block reset"]
10705 pub fn set_i2c4rst(&mut self, val: super::vals::Syscfgrst) {
10706 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
10707 }
10708 #[doc = "LPTIM2 block reset"]
10709 pub const fn lptim2rst(&self) -> super::vals::Syscfgrst {
10710 let val = (self.0 >> 9usize) & 0x01;
10711 super::vals::Syscfgrst(val as u8)
10712 }
10713 #[doc = "LPTIM2 block reset"]
10714 pub fn set_lptim2rst(&mut self, val: super::vals::Syscfgrst) {
10715 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
10716 }
10717 #[doc = "LPTIM3 block reset"]
10718 pub const fn lptim3rst(&self) -> super::vals::Syscfgrst {
10719 let val = (self.0 >> 10usize) & 0x01;
10720 super::vals::Syscfgrst(val as u8)
10721 }
10722 #[doc = "LPTIM3 block reset"]
10723 pub fn set_lptim3rst(&mut self, val: super::vals::Syscfgrst) {
10724 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
10725 }
10726 #[doc = "LPTIM4 block reset"]
10727 pub const fn lptim4rst(&self) -> super::vals::Syscfgrst {
10728 let val = (self.0 >> 11usize) & 0x01;
10729 super::vals::Syscfgrst(val as u8)
10730 }
10731 #[doc = "LPTIM4 block reset"]
10732 pub fn set_lptim4rst(&mut self, val: super::vals::Syscfgrst) {
10733 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
10734 }
10735 #[doc = "LPTIM5 block reset"]
10736 pub const fn lptim5rst(&self) -> super::vals::Syscfgrst {
10737 let val = (self.0 >> 12usize) & 0x01;
10738 super::vals::Syscfgrst(val as u8)
10739 } 9852 }
10740 #[doc = "LPTIM5 block reset"] 9853 #[doc = "Multiplication factor for PLL1 VCO"]
10741 pub fn set_lptim5rst(&mut self, val: super::vals::Syscfgrst) { 9854 pub fn set_divn1(&mut self, val: u16) {
10742 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize); 9855 self.0 = (self.0 & !(0x01ff << 0usize)) | (((val as u32) & 0x01ff) << 0usize);
10743 } 9856 }
10744 #[doc = "COMP12 Blocks Reset"] 9857 #[doc = "PLL1 DIVP division factor"]
10745 pub const fn comp12rst(&self) -> super::vals::Syscfgrst { 9858 pub const fn divp1(&self) -> super::vals::Divp1 {
10746 let val = (self.0 >> 14usize) & 0x01; 9859 let val = (self.0 >> 9usize) & 0x7f;
10747 super::vals::Syscfgrst(val as u8) 9860 super::vals::Divp1(val as u8)
10748 } 9861 }
10749 #[doc = "COMP12 Blocks Reset"] 9862 #[doc = "PLL1 DIVP division factor"]
10750 pub fn set_comp12rst(&mut self, val: super::vals::Syscfgrst) { 9863 pub fn set_divp1(&mut self, val: super::vals::Divp1) {
10751 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 9864 self.0 = (self.0 & !(0x7f << 9usize)) | (((val.0 as u32) & 0x7f) << 9usize);
10752 } 9865 }
10753 #[doc = "VREF block reset"] 9866 #[doc = "PLL1 DIVQ division factor"]
10754 pub const fn vrefrst(&self) -> super::vals::Syscfgrst { 9867 pub const fn divq1(&self) -> u8 {
10755 let val = (self.0 >> 15usize) & 0x01; 9868 let val = (self.0 >> 16usize) & 0x7f;
10756 super::vals::Syscfgrst(val as u8) 9869 val as u8
10757 } 9870 }
10758 #[doc = "VREF block reset"] 9871 #[doc = "PLL1 DIVQ division factor"]
10759 pub fn set_vrefrst(&mut self, val: super::vals::Syscfgrst) { 9872 pub fn set_divq1(&mut self, val: u8) {
10760 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize); 9873 self.0 = (self.0 & !(0x7f << 16usize)) | (((val as u32) & 0x7f) << 16usize);
10761 } 9874 }
10762 #[doc = "SAI4 block reset"] 9875 #[doc = "PLL1 DIVR division factor"]
10763 pub const fn sai4rst(&self) -> super::vals::Syscfgrst { 9876 pub const fn divr1(&self) -> u8 {
10764 let val = (self.0 >> 21usize) & 0x01; 9877 let val = (self.0 >> 24usize) & 0x7f;
10765 super::vals::Syscfgrst(val as u8) 9878 val as u8
10766 } 9879 }
10767 #[doc = "SAI4 block reset"] 9880 #[doc = "PLL1 DIVR division factor"]
10768 pub fn set_sai4rst(&mut self, val: super::vals::Syscfgrst) { 9881 pub fn set_divr1(&mut self, val: u8) {
10769 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize); 9882 self.0 = (self.0 & !(0x7f << 24usize)) | (((val as u32) & 0x7f) << 24usize);
10770 } 9883 }
10771 } 9884 }
10772 impl Default for Apb4rstr { 9885 impl Default for Pll1divr {
10773 fn default() -> Apb4rstr { 9886 fn default() -> Pll1divr {
10774 Apb4rstr(0) 9887 Pll1divr(0)
10775 } 9888 }
10776 } 9889 }
10777 #[doc = "RCC AHB2 Sleep Clock Register"] 9890 #[doc = "RCC AHB2 Clock Register"]
10778 #[repr(transparent)] 9891 #[repr(transparent)]
10779 #[derive(Copy, Clone, Eq, PartialEq)] 9892 #[derive(Copy, Clone, Eq, PartialEq)]
10780 pub struct Ahb2lpenr(pub u32); 9893 pub struct Ahb2enr(pub u32);
10781 impl Ahb2lpenr { 9894 impl Ahb2enr {
10782 #[doc = "DCMI peripheral clock enable during csleep mode"] 9895 #[doc = "DCMI peripheral clock"]
10783 pub const fn dcmilpen(&self) -> super::vals::Ahb2lpenrDcmilpen { 9896 pub const fn dcmien(&self) -> super::vals::Ahb2enrDcmien {
10784 let val = (self.0 >> 0usize) & 0x01; 9897 let val = (self.0 >> 0usize) & 0x01;
10785 super::vals::Ahb2lpenrDcmilpen(val as u8) 9898 super::vals::Ahb2enrDcmien(val as u8)
10786 } 9899 }
10787 #[doc = "DCMI peripheral clock enable during csleep mode"] 9900 #[doc = "DCMI peripheral clock"]
10788 pub fn set_dcmilpen(&mut self, val: super::vals::Ahb2lpenrDcmilpen) { 9901 pub fn set_dcmien(&mut self, val: super::vals::Ahb2enrDcmien) {
10789 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 9902 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
10790 } 9903 }
10791 #[doc = "CRYPT peripheral clock enable during CSleep mode"] 9904 #[doc = "CRYPT peripheral clock enable"]
10792 pub const fn cryptlpen(&self) -> super::vals::Ahb2lpenrDcmilpen { 9905 pub const fn crypten(&self) -> super::vals::Ahb2enrDcmien {
10793 let val = (self.0 >> 4usize) & 0x01; 9906 let val = (self.0 >> 4usize) & 0x01;
10794 super::vals::Ahb2lpenrDcmilpen(val as u8) 9907 super::vals::Ahb2enrDcmien(val as u8)
10795 } 9908 }
10796 #[doc = "CRYPT peripheral clock enable during CSleep mode"] 9909 #[doc = "CRYPT peripheral clock enable"]
10797 pub fn set_cryptlpen(&mut self, val: super::vals::Ahb2lpenrDcmilpen) { 9910 pub fn set_crypten(&mut self, val: super::vals::Ahb2enrDcmien) {
10798 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 9911 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
10799 } 9912 }
10800 #[doc = "HASH peripheral clock enable during CSleep mode"] 9913 #[doc = "HASH peripheral clock enable"]
10801 pub const fn hashlpen(&self) -> super::vals::Ahb2lpenrDcmilpen { 9914 pub const fn hashen(&self) -> super::vals::Ahb2enrDcmien {
10802 let val = (self.0 >> 5usize) & 0x01; 9915 let val = (self.0 >> 5usize) & 0x01;
10803 super::vals::Ahb2lpenrDcmilpen(val as u8) 9916 super::vals::Ahb2enrDcmien(val as u8)
10804 } 9917 }
10805 #[doc = "HASH peripheral clock enable during CSleep mode"] 9918 #[doc = "HASH peripheral clock enable"]
10806 pub fn set_hashlpen(&mut self, val: super::vals::Ahb2lpenrDcmilpen) { 9919 pub fn set_hashen(&mut self, val: super::vals::Ahb2enrDcmien) {
10807 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 9920 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
10808 } 9921 }
10809 #[doc = "RNG peripheral clock enable during CSleep mode"] 9922 #[doc = "RNG peripheral clocks enable"]
10810 pub const fn rnglpen(&self) -> super::vals::Ahb2lpenrDcmilpen { 9923 pub const fn rngen(&self) -> super::vals::Ahb2enrDcmien {
10811 let val = (self.0 >> 6usize) & 0x01; 9924 let val = (self.0 >> 6usize) & 0x01;
10812 super::vals::Ahb2lpenrDcmilpen(val as u8) 9925 super::vals::Ahb2enrDcmien(val as u8)
10813 } 9926 }
10814 #[doc = "RNG peripheral clock enable during CSleep mode"] 9927 #[doc = "RNG peripheral clocks enable"]
10815 pub fn set_rnglpen(&mut self, val: super::vals::Ahb2lpenrDcmilpen) { 9928 pub fn set_rngen(&mut self, val: super::vals::Ahb2enrDcmien) {
10816 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize); 9929 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
10817 } 9930 }
10818 #[doc = "SDMMC2 and SDMMC2 Delay Clock Enable During CSleep Mode"] 9931 #[doc = "SDMMC2 and SDMMC2 delay clock enable"]
10819 pub const fn sdmmc2lpen(&self) -> super::vals::Ahb2lpenrDcmilpen { 9932 pub const fn sdmmc2en(&self) -> super::vals::Ahb2enrDcmien {
10820 let val = (self.0 >> 9usize) & 0x01; 9933 let val = (self.0 >> 9usize) & 0x01;
10821 super::vals::Ahb2lpenrDcmilpen(val as u8) 9934 super::vals::Ahb2enrDcmien(val as u8)
10822 } 9935 }
10823 #[doc = "SDMMC2 and SDMMC2 Delay Clock Enable During CSleep Mode"] 9936 #[doc = "SDMMC2 and SDMMC2 delay clock enable"]
10824 pub fn set_sdmmc2lpen(&mut self, val: super::vals::Ahb2lpenrDcmilpen) { 9937 pub fn set_sdmmc2en(&mut self, val: super::vals::Ahb2enrDcmien) {
10825 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize); 9938 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
10826 } 9939 }
10827 #[doc = "SRAM1 Clock Enable During CSleep Mode"] 9940 #[doc = "SRAM1 block enable"]
10828 pub const fn sram1lpen(&self) -> super::vals::Ahb2lpenrDcmilpen { 9941 pub const fn sram1en(&self) -> super::vals::Ahb2enrDcmien {
10829 let val = (self.0 >> 29usize) & 0x01; 9942 let val = (self.0 >> 29usize) & 0x01;
10830 super::vals::Ahb2lpenrDcmilpen(val as u8) 9943 super::vals::Ahb2enrDcmien(val as u8)
10831 } 9944 }
10832 #[doc = "SRAM1 Clock Enable During CSleep Mode"] 9945 #[doc = "SRAM1 block enable"]
10833 pub fn set_sram1lpen(&mut self, val: super::vals::Ahb2lpenrDcmilpen) { 9946 pub fn set_sram1en(&mut self, val: super::vals::Ahb2enrDcmien) {
10834 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize); 9947 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize);
10835 } 9948 }
10836 #[doc = "SRAM2 Clock Enable During CSleep Mode"] 9949 #[doc = "SRAM2 block enable"]
10837 pub const fn sram2lpen(&self) -> super::vals::Ahb2lpenrDcmilpen { 9950 pub const fn sram2en(&self) -> super::vals::Ahb2enrDcmien {
10838 let val = (self.0 >> 30usize) & 0x01; 9951 let val = (self.0 >> 30usize) & 0x01;
10839 super::vals::Ahb2lpenrDcmilpen(val as u8) 9952 super::vals::Ahb2enrDcmien(val as u8)
10840 } 9953 }
10841 #[doc = "SRAM2 Clock Enable During CSleep Mode"] 9954 #[doc = "SRAM2 block enable"]
10842 pub fn set_sram2lpen(&mut self, val: super::vals::Ahb2lpenrDcmilpen) { 9955 pub fn set_sram2en(&mut self, val: super::vals::Ahb2enrDcmien) {
10843 self.0 = (self.0 & !(0x01 << 30usize)) | (((val.0 as u32) & 0x01) << 30usize); 9956 self.0 = (self.0 & !(0x01 << 30usize)) | (((val.0 as u32) & 0x01) << 30usize);
10844 } 9957 }
10845 #[doc = "SRAM3 Clock Enable During CSleep Mode"] 9958 #[doc = "SRAM3 block enable"]
10846 pub const fn sram3lpen(&self) -> super::vals::Ahb2lpenrDcmilpen { 9959 pub const fn sram3en(&self) -> super::vals::Ahb2enrDcmien {
10847 let val = (self.0 >> 31usize) & 0x01; 9960 let val = (self.0 >> 31usize) & 0x01;
10848 super::vals::Ahb2lpenrDcmilpen(val as u8) 9961 super::vals::Ahb2enrDcmien(val as u8)
10849 } 9962 }
10850 #[doc = "SRAM3 Clock Enable During CSleep Mode"] 9963 #[doc = "SRAM3 block enable"]
10851 pub fn set_sram3lpen(&mut self, val: super::vals::Ahb2lpenrDcmilpen) { 9964 pub fn set_sram3en(&mut self, val: super::vals::Ahb2enrDcmien) {
10852 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize); 9965 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize);
10853 } 9966 }
10854 } 9967 }
10855 impl Default for Ahb2lpenr { 9968 impl Default for Ahb2enr {
10856 fn default() -> Ahb2lpenr { 9969 fn default() -> Ahb2enr {
10857 Ahb2lpenr(0) 9970 Ahb2enr(0)
10858 } 9971 }
10859 } 9972 }
10860 #[doc = "RCC Domain 1 Clock Configuration Register"] 9973 }
9974 pub mod vals {
9975 use crate::generic::*;
10861 #[repr(transparent)] 9976 #[repr(transparent)]
10862 #[derive(Copy, Clone, Eq, PartialEq)] 9977 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
10863 pub struct D1cfgr(pub u32); 9978 pub struct Mco2(pub u8);
10864 impl D1cfgr { 9979 impl Mco2 {
10865 #[doc = "D1 domain AHB prescaler"] 9980 #[doc = "System clock selected for micro-controller clock output"]
10866 pub const fn hpre(&self) -> super::vals::Hpre { 9981 pub const SYSCLK: Self = Self(0);
10867 let val = (self.0 >> 0usize) & 0x0f; 9982 #[doc = "pll2_p selected for micro-controller clock output"]
10868 super::vals::Hpre(val as u8) 9983 pub const PLL2_P: Self = Self(0x01);
10869 } 9984 #[doc = "HSE selected for micro-controller clock output"]
10870 #[doc = "D1 domain AHB prescaler"] 9985 pub const HSE: Self = Self(0x02);
10871 pub fn set_hpre(&mut self, val: super::vals::Hpre) { 9986 #[doc = "pll1_p selected for micro-controller clock output"]
10872 self.0 = (self.0 & !(0x0f << 0usize)) | (((val.0 as u32) & 0x0f) << 0usize); 9987 pub const PLL1_P: Self = Self(0x03);
10873 } 9988 #[doc = "CSI selected for micro-controller clock output"]
10874 #[doc = "D1 domain APB3 prescaler"] 9989 pub const CSI: Self = Self(0x04);
10875 pub const fn d1ppre(&self) -> super::vals::D1ppre { 9990 #[doc = "LSI selected for micro-controller clock output"]
10876 let val = (self.0 >> 4usize) & 0x07; 9991 pub const LSI: Self = Self(0x05);
10877 super::vals::D1ppre(val as u8)
10878 }
10879 #[doc = "D1 domain APB3 prescaler"]
10880 pub fn set_d1ppre(&mut self, val: super::vals::D1ppre) {
10881 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize);
10882 }
10883 #[doc = "D1 domain Core prescaler"]
10884 pub const fn d1cpre(&self) -> super::vals::Hpre {
10885 let val = (self.0 >> 8usize) & 0x0f;
10886 super::vals::Hpre(val as u8)
10887 }
10888 #[doc = "D1 domain Core prescaler"]
10889 pub fn set_d1cpre(&mut self, val: super::vals::Hpre) {
10890 self.0 = (self.0 & !(0x0f << 8usize)) | (((val.0 as u32) & 0x0f) << 8usize);
10891 }
10892 } 9992 }
10893 impl Default for D1cfgr { 9993 #[repr(transparent)]
10894 fn default() -> D1cfgr { 9994 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
10895 D1cfgr(0) 9995 pub struct C1Apb1lenrTim2en(pub u8);
10896 } 9996 impl C1Apb1lenrTim2en {
9997 #[doc = "The selected clock is disabled"]
9998 pub const DISABLED: Self = Self(0);
9999 #[doc = "The selected clock is enabled"]
10000 pub const ENABLED: Self = Self(0x01);
10897 } 10001 }
10898 #[doc = "RCC APB4 Sleep Clock Register"]
10899 #[repr(transparent)] 10002 #[repr(transparent)]
10900 #[derive(Copy, Clone, Eq, PartialEq)] 10003 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
10901 pub struct Apb4lpenr(pub u32); 10004 pub struct C1Ahb4enrGpioaen(pub u8);
10902 impl Apb4lpenr { 10005 impl C1Ahb4enrGpioaen {
10903 #[doc = "SYSCFG peripheral clock enable during CSleep mode"] 10006 #[doc = "The selected clock is disabled"]
10904 pub const fn syscfglpen(&self) -> super::vals::Apb4lpenrSyscfglpen { 10007 pub const DISABLED: Self = Self(0);
10905 let val = (self.0 >> 1usize) & 0x01; 10008 #[doc = "The selected clock is enabled"]
10906 super::vals::Apb4lpenrSyscfglpen(val as u8) 10009 pub const ENABLED: Self = Self(0x01);
10907 }
10908 #[doc = "SYSCFG peripheral clock enable during CSleep mode"]
10909 pub fn set_syscfglpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
10910 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
10911 }
10912 #[doc = "LPUART1 Peripheral Clocks Enable During CSleep Mode"]
10913 pub const fn lpuart1lpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
10914 let val = (self.0 >> 3usize) & 0x01;
10915 super::vals::Apb4lpenrSyscfglpen(val as u8)
10916 }
10917 #[doc = "LPUART1 Peripheral Clocks Enable During CSleep Mode"]
10918 pub fn set_lpuart1lpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
10919 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
10920 }
10921 #[doc = "SPI6 Peripheral Clocks Enable During CSleep Mode"]
10922 pub const fn spi6lpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
10923 let val = (self.0 >> 5usize) & 0x01;
10924 super::vals::Apb4lpenrSyscfglpen(val as u8)
10925 }
10926 #[doc = "SPI6 Peripheral Clocks Enable During CSleep Mode"]
10927 pub fn set_spi6lpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
10928 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
10929 }
10930 #[doc = "I2C4 Peripheral Clocks Enable During CSleep Mode"]
10931 pub const fn i2c4lpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
10932 let val = (self.0 >> 7usize) & 0x01;
10933 super::vals::Apb4lpenrSyscfglpen(val as u8)
10934 }
10935 #[doc = "I2C4 Peripheral Clocks Enable During CSleep Mode"]
10936 pub fn set_i2c4lpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
10937 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
10938 }
10939 #[doc = "LPTIM2 Peripheral Clocks Enable During CSleep Mode"]
10940 pub const fn lptim2lpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
10941 let val = (self.0 >> 9usize) & 0x01;
10942 super::vals::Apb4lpenrSyscfglpen(val as u8)
10943 }
10944 #[doc = "LPTIM2 Peripheral Clocks Enable During CSleep Mode"]
10945 pub fn set_lptim2lpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
10946 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
10947 }
10948 #[doc = "LPTIM3 Peripheral Clocks Enable During CSleep Mode"]
10949 pub const fn lptim3lpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
10950 let val = (self.0 >> 10usize) & 0x01;
10951 super::vals::Apb4lpenrSyscfglpen(val as u8)
10952 }
10953 #[doc = "LPTIM3 Peripheral Clocks Enable During CSleep Mode"]
10954 pub fn set_lptim3lpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
10955 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
10956 }
10957 #[doc = "LPTIM4 Peripheral Clocks Enable During CSleep Mode"]
10958 pub const fn lptim4lpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
10959 let val = (self.0 >> 11usize) & 0x01;
10960 super::vals::Apb4lpenrSyscfglpen(val as u8)
10961 }
10962 #[doc = "LPTIM4 Peripheral Clocks Enable During CSleep Mode"]
10963 pub fn set_lptim4lpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
10964 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
10965 }
10966 #[doc = "LPTIM5 Peripheral Clocks Enable During CSleep Mode"]
10967 pub const fn lptim5lpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
10968 let val = (self.0 >> 12usize) & 0x01;
10969 super::vals::Apb4lpenrSyscfglpen(val as u8)
10970 }
10971 #[doc = "LPTIM5 Peripheral Clocks Enable During CSleep Mode"]
10972 pub fn set_lptim5lpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
10973 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
10974 }
10975 #[doc = "COMP1/2 peripheral clock enable during CSleep mode"]
10976 pub const fn comp12lpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
10977 let val = (self.0 >> 14usize) & 0x01;
10978 super::vals::Apb4lpenrSyscfglpen(val as u8)
10979 }
10980 #[doc = "COMP1/2 peripheral clock enable during CSleep mode"]
10981 pub fn set_comp12lpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
10982 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
10983 }
10984 #[doc = "VREF peripheral clock enable during CSleep mode"]
10985 pub const fn vreflpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
10986 let val = (self.0 >> 15usize) & 0x01;
10987 super::vals::Apb4lpenrSyscfglpen(val as u8)
10988 }
10989 #[doc = "VREF peripheral clock enable during CSleep mode"]
10990 pub fn set_vreflpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
10991 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
10992 }
10993 #[doc = "RTC APB Clock Enable During CSleep Mode"]
10994 pub const fn rtcapblpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
10995 let val = (self.0 >> 16usize) & 0x01;
10996 super::vals::Apb4lpenrSyscfglpen(val as u8)
10997 }
10998 #[doc = "RTC APB Clock Enable During CSleep Mode"]
10999 pub fn set_rtcapblpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
11000 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
11001 }
11002 #[doc = "SAI4 Peripheral Clocks Enable During CSleep Mode"]
11003 pub const fn sai4lpen(&self) -> super::vals::Apb4lpenrSyscfglpen {
11004 let val = (self.0 >> 21usize) & 0x01;
11005 super::vals::Apb4lpenrSyscfglpen(val as u8)
11006 }
11007 #[doc = "SAI4 Peripheral Clocks Enable During CSleep Mode"]
11008 pub fn set_sai4lpen(&mut self, val: super::vals::Apb4lpenrSyscfglpen) {
11009 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize);
11010 }
11011 } 10010 }
11012 impl Default for Apb4lpenr { 10011 #[repr(transparent)]
11013 fn default() -> Apb4lpenr { 10012 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11014 Apb4lpenr(0) 10013 pub struct RsrCpurstfr(pub u8);
11015 } 10014 impl RsrCpurstfr {
10015 #[doc = "No reset occoured for block"]
10016 pub const NORESETOCCOURED: Self = Self(0);
10017 #[doc = "Reset occoured for block"]
10018 pub const RESETOCCOURRED: Self = Self(0x01);
11016 } 10019 }
11017 #[doc = "RCC PLL3 Fractional Divider Register"]
11018 #[repr(transparent)] 10020 #[repr(transparent)]
11019 #[derive(Copy, Clone, Eq, PartialEq)] 10021 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11020 pub struct Pll3fracr(pub u32); 10022 pub struct Ww1rsc(pub u8);
11021 impl Pll3fracr { 10023 impl Ww1rsc {
11022 #[doc = "Fractional part of the multiplication factor for PLL3 VCO"] 10024 #[doc = "Clear WWDG1 scope control"]
11023 pub const fn fracn3(&self) -> u16 { 10025 pub const CLEAR: Self = Self(0);
11024 let val = (self.0 >> 3usize) & 0x1fff; 10026 #[doc = "Set WWDG1 scope control"]
11025 val as u16 10027 pub const SET: Self = Self(0x01);
11026 }
11027 #[doc = "Fractional part of the multiplication factor for PLL3 VCO"]
11028 pub fn set_fracn3(&mut self, val: u16) {
11029 self.0 = (self.0 & !(0x1fff << 3usize)) | (((val as u32) & 0x1fff) << 3usize);
11030 }
11031 } 10028 }
11032 impl Default for Pll3fracr { 10029 #[repr(transparent)]
11033 fn default() -> Pll3fracr { 10030 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11034 Pll3fracr(0) 10031 pub struct Hsion(pub u8);
11035 } 10032 impl Hsion {
10033 #[doc = "Clock Off"]
10034 pub const OFF: Self = Self(0);
10035 #[doc = "Clock On"]
10036 pub const ON: Self = Self(0x01);
11036 } 10037 }
11037 #[doc = "RCC PLLs Clock Source Selection Register"]
11038 #[repr(transparent)] 10038 #[repr(transparent)]
11039 #[derive(Copy, Clone, Eq, PartialEq)] 10039 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11040 pub struct Pllckselr(pub u32); 10040 pub struct C1Ahb3enrMdmaen(pub u8);
11041 impl Pllckselr { 10041 impl C1Ahb3enrMdmaen {
11042 #[doc = "DIVMx and PLLs clock source selection"] 10042 #[doc = "The selected clock is disabled"]
11043 pub const fn pllsrc(&self) -> super::vals::Pllsrc { 10043 pub const DISABLED: Self = Self(0);
11044 let val = (self.0 >> 0usize) & 0x03; 10044 #[doc = "The selected clock is enabled"]
11045 super::vals::Pllsrc(val as u8) 10045 pub const ENABLED: Self = Self(0x01);
11046 }
11047 #[doc = "DIVMx and PLLs clock source selection"]
11048 pub fn set_pllsrc(&mut self, val: super::vals::Pllsrc) {
11049 self.0 = (self.0 & !(0x03 << 0usize)) | (((val.0 as u32) & 0x03) << 0usize);
11050 }
11051 #[doc = "Prescaler for PLL1"]
11052 pub fn divm(&self, n: usize) -> u8 {
11053 assert!(n < 3usize);
11054 let offs = 4usize + n * 8usize;
11055 let val = (self.0 >> offs) & 0x3f;
11056 val as u8
11057 }
11058 #[doc = "Prescaler for PLL1"]
11059 pub fn set_divm(&mut self, n: usize, val: u8) {
11060 assert!(n < 3usize);
11061 let offs = 4usize + n * 8usize;
11062 self.0 = (self.0 & !(0x3f << offs)) | (((val as u32) & 0x3f) << offs);
11063 }
11064 } 10046 }
11065 impl Default for Pllckselr { 10047 #[repr(transparent)]
11066 fn default() -> Pllckselr { 10048 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11067 Pllckselr(0) 10049 pub struct Lptim1sel(pub u8);
11068 } 10050 impl Lptim1sel {
10051 #[doc = "rcc_pclk1 selected as peripheral clock"]
10052 pub const RCC_PCLK1: Self = Self(0);
10053 #[doc = "pll2_p selected as peripheral clock"]
10054 pub const PLL2_P: Self = Self(0x01);
10055 #[doc = "pll3_r selected as peripheral clock"]
10056 pub const PLL3_R: Self = Self(0x02);
10057 #[doc = "LSE selected as peripheral clock"]
10058 pub const LSE: Self = Self(0x03);
10059 #[doc = "LSI selected as peripheral clock"]
10060 pub const LSI: Self = Self(0x04);
10061 #[doc = "PER selected as peripheral clock"]
10062 pub const PER: Self = Self(0x05);
11069 } 10063 }
11070 #[doc = "RCC APB3 Sleep Clock Register"]
11071 #[repr(transparent)] 10064 #[repr(transparent)]
11072 #[derive(Copy, Clone, Eq, PartialEq)] 10065 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11073 pub struct C1Apb3lpenr(pub u32); 10066 pub struct Hsidiv(pub u8);
11074 impl C1Apb3lpenr { 10067 impl Hsidiv {
11075 #[doc = "LTDC peripheral clock enable during CSleep mode"] 10068 #[doc = "No division"]
11076 pub const fn ltdclpen(&self) -> super::vals::C1Apb3lpenrLtdclpen { 10069 pub const DIV1: Self = Self(0);
11077 let val = (self.0 >> 3usize) & 0x01; 10070 #[doc = "Division by 2"]
11078 super::vals::C1Apb3lpenrLtdclpen(val as u8) 10071 pub const DIV2: Self = Self(0x01);
11079 } 10072 #[doc = "Division by 4"]
11080 #[doc = "LTDC peripheral clock enable during CSleep mode"] 10073 pub const DIV4: Self = Self(0x02);
11081 pub fn set_ltdclpen(&mut self, val: super::vals::C1Apb3lpenrLtdclpen) { 10074 #[doc = "Division by 8"]
11082 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize); 10075 pub const DIV8: Self = Self(0x03);
11083 }
11084 #[doc = "WWDG1 Clock Enable During CSleep Mode"]
11085 pub const fn wwdg1lpen(&self) -> super::vals::C1Apb3lpenrLtdclpen {
11086 let val = (self.0 >> 6usize) & 0x01;
11087 super::vals::C1Apb3lpenrLtdclpen(val as u8)
11088 }
11089 #[doc = "WWDG1 Clock Enable During CSleep Mode"]
11090 pub fn set_wwdg1lpen(&mut self, val: super::vals::C1Apb3lpenrLtdclpen) {
11091 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
11092 }
11093 } 10076 }
11094 impl Default for C1Apb3lpenr { 10077 #[repr(transparent)]
11095 fn default() -> C1Apb3lpenr { 10078 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11096 C1Apb3lpenr(0) 10079 pub struct Hpre(pub u8);
11097 } 10080 impl Hpre {
10081 #[doc = "sys_ck not divided"]
10082 pub const DIV1: Self = Self(0);
10083 #[doc = "sys_ck divided by 2"]
10084 pub const DIV2: Self = Self(0x08);
10085 #[doc = "sys_ck divided by 4"]
10086 pub const DIV4: Self = Self(0x09);
10087 #[doc = "sys_ck divided by 8"]
10088 pub const DIV8: Self = Self(0x0a);
10089 #[doc = "sys_ck divided by 16"]
10090 pub const DIV16: Self = Self(0x0b);
10091 #[doc = "sys_ck divided by 64"]
10092 pub const DIV64: Self = Self(0x0c);
10093 #[doc = "sys_ck divided by 128"]
10094 pub const DIV128: Self = Self(0x0d);
10095 #[doc = "sys_ck divided by 256"]
10096 pub const DIV256: Self = Self(0x0e);
10097 #[doc = "sys_ck divided by 512"]
10098 pub const DIV512: Self = Self(0x0f);
11098 } 10099 }
11099 #[doc = "RCC AHB1 Clock Register"]
11100 #[repr(transparent)] 10100 #[repr(transparent)]
11101 #[derive(Copy, Clone, Eq, PartialEq)] 10101 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11102 pub struct Ahb1enr(pub u32); 10102 pub struct Ahb3enrMdmaen(pub u8);
11103 impl Ahb1enr { 10103 impl Ahb3enrMdmaen {
11104 #[doc = "DMA1 Clock Enable"] 10104 #[doc = "The selected clock is disabled"]
11105 pub const fn dma1en(&self) -> super::vals::Ahb1enrDma1en { 10105 pub const DISABLED: Self = Self(0);
11106 let val = (self.0 >> 0usize) & 0x01; 10106 #[doc = "The selected clock is enabled"]
11107 super::vals::Ahb1enrDma1en(val as u8) 10107 pub const ENABLED: Self = Self(0x01);
11108 }
11109 #[doc = "DMA1 Clock Enable"]
11110 pub fn set_dma1en(&mut self, val: super::vals::Ahb1enrDma1en) {
11111 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
11112 }
11113 #[doc = "DMA2 Clock Enable"]
11114 pub const fn dma2en(&self) -> super::vals::Ahb1enrDma1en {
11115 let val = (self.0 >> 1usize) & 0x01;
11116 super::vals::Ahb1enrDma1en(val as u8)
11117 }
11118 #[doc = "DMA2 Clock Enable"]
11119 pub fn set_dma2en(&mut self, val: super::vals::Ahb1enrDma1en) {
11120 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
11121 }
11122 #[doc = "ADC1/2 Peripheral Clocks Enable"]
11123 pub const fn adc12en(&self) -> super::vals::Ahb1enrDma1en {
11124 let val = (self.0 >> 5usize) & 0x01;
11125 super::vals::Ahb1enrDma1en(val as u8)
11126 }
11127 #[doc = "ADC1/2 Peripheral Clocks Enable"]
11128 pub fn set_adc12en(&mut self, val: super::vals::Ahb1enrDma1en) {
11129 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
11130 }
11131 #[doc = "Ethernet MAC bus interface Clock Enable"]
11132 pub const fn eth1macen(&self) -> super::vals::Ahb1enrDma1en {
11133 let val = (self.0 >> 15usize) & 0x01;
11134 super::vals::Ahb1enrDma1en(val as u8)
11135 }
11136 #[doc = "Ethernet MAC bus interface Clock Enable"]
11137 pub fn set_eth1macen(&mut self, val: super::vals::Ahb1enrDma1en) {
11138 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
11139 }
11140 #[doc = "Ethernet Transmission Clock Enable"]
11141 pub const fn eth1txen(&self) -> super::vals::Ahb1enrDma1en {
11142 let val = (self.0 >> 16usize) & 0x01;
11143 super::vals::Ahb1enrDma1en(val as u8)
11144 }
11145 #[doc = "Ethernet Transmission Clock Enable"]
11146 pub fn set_eth1txen(&mut self, val: super::vals::Ahb1enrDma1en) {
11147 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
11148 }
11149 #[doc = "Ethernet Reception Clock Enable"]
11150 pub const fn eth1rxen(&self) -> super::vals::Ahb1enrDma1en {
11151 let val = (self.0 >> 17usize) & 0x01;
11152 super::vals::Ahb1enrDma1en(val as u8)
11153 }
11154 #[doc = "Ethernet Reception Clock Enable"]
11155 pub fn set_eth1rxen(&mut self, val: super::vals::Ahb1enrDma1en) {
11156 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize);
11157 }
11158 #[doc = "Enable USB_PHY2 clocks"]
11159 pub const fn usb2otghsulpien(&self) -> super::vals::Ahb1enrDma1en {
11160 let val = (self.0 >> 18usize) & 0x01;
11161 super::vals::Ahb1enrDma1en(val as u8)
11162 }
11163 #[doc = "Enable USB_PHY2 clocks"]
11164 pub fn set_usb2otghsulpien(&mut self, val: super::vals::Ahb1enrDma1en) {
11165 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
11166 }
11167 #[doc = "USB1OTG Peripheral Clocks Enable"]
11168 pub const fn usb1otgen(&self) -> super::vals::Ahb1enrDma1en {
11169 let val = (self.0 >> 25usize) & 0x01;
11170 super::vals::Ahb1enrDma1en(val as u8)
11171 }
11172 #[doc = "USB1OTG Peripheral Clocks Enable"]
11173 pub fn set_usb1otgen(&mut self, val: super::vals::Ahb1enrDma1en) {
11174 self.0 = (self.0 & !(0x01 << 25usize)) | (((val.0 as u32) & 0x01) << 25usize);
11175 }
11176 #[doc = "USB_PHY1 Clocks Enable"]
11177 pub const fn usb1ulpien(&self) -> super::vals::Ahb1enrDma1en {
11178 let val = (self.0 >> 26usize) & 0x01;
11179 super::vals::Ahb1enrDma1en(val as u8)
11180 }
11181 #[doc = "USB_PHY1 Clocks Enable"]
11182 pub fn set_usb1ulpien(&mut self, val: super::vals::Ahb1enrDma1en) {
11183 self.0 = (self.0 & !(0x01 << 26usize)) | (((val.0 as u32) & 0x01) << 26usize);
11184 }
11185 #[doc = "USB2OTG Peripheral Clocks Enable"]
11186 pub const fn usb2otgen(&self) -> super::vals::Ahb1enrDma1en {
11187 let val = (self.0 >> 27usize) & 0x01;
11188 super::vals::Ahb1enrDma1en(val as u8)
11189 }
11190 #[doc = "USB2OTG Peripheral Clocks Enable"]
11191 pub fn set_usb2otgen(&mut self, val: super::vals::Ahb1enrDma1en) {
11192 self.0 = (self.0 & !(0x01 << 27usize)) | (((val.0 as u32) & 0x01) << 27usize);
11193 }
11194 #[doc = "USB_PHY2 Clocks Enable"]
11195 pub const fn usb2ulpien(&self) -> super::vals::Ahb1enrDma1en {
11196 let val = (self.0 >> 28usize) & 0x01;
11197 super::vals::Ahb1enrDma1en(val as u8)
11198 }
11199 #[doc = "USB_PHY2 Clocks Enable"]
11200 pub fn set_usb2ulpien(&mut self, val: super::vals::Ahb1enrDma1en) {
11201 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
11202 }
11203 } 10108 }
11204 impl Default for Ahb1enr { 10109 #[repr(transparent)]
11205 fn default() -> Ahb1enr { 10110 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11206 Ahb1enr(0) 10111 pub struct Hsebyp(pub u8);
11207 } 10112 impl Hsebyp {
10113 #[doc = "HSE crystal oscillator not bypassed"]
10114 pub const NOTBYPASSED: Self = Self(0);
10115 #[doc = "HSE crystal oscillator bypassed with external clock"]
10116 pub const BYPASSED: Self = Self(0x01);
11208 } 10117 }
11209 #[doc = "RCC D3 Autonomous mode Register"]
11210 #[repr(transparent)] 10118 #[repr(transparent)]
11211 #[derive(Copy, Clone, Eq, PartialEq)] 10119 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11212 pub struct D3amr(pub u32); 10120 pub struct Pll1fracen(pub u8);
11213 impl D3amr { 10121 impl Pll1fracen {
11214 #[doc = "BDMA and DMAMUX Autonomous mode enable"] 10122 #[doc = "Reset latch to tranfer FRACN to the Sigma-Delta modulator"]
11215 pub const fn bdmaamen(&self) -> super::vals::Bdmaamen { 10123 pub const RESET: Self = Self(0);
11216 let val = (self.0 >> 0usize) & 0x01; 10124 #[doc = "Set latch to tranfer FRACN to the Sigma-Delta modulator"]
11217 super::vals::Bdmaamen(val as u8) 10125 pub const SET: Self = Self(0x01);
11218 }
11219 #[doc = "BDMA and DMAMUX Autonomous mode enable"]
11220 pub fn set_bdmaamen(&mut self, val: super::vals::Bdmaamen) {
11221 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
11222 }
11223 #[doc = "LPUART1 Autonomous mode enable"]
11224 pub const fn lpuart1amen(&self) -> super::vals::Bdmaamen {
11225 let val = (self.0 >> 3usize) & 0x01;
11226 super::vals::Bdmaamen(val as u8)
11227 }
11228 #[doc = "LPUART1 Autonomous mode enable"]
11229 pub fn set_lpuart1amen(&mut self, val: super::vals::Bdmaamen) {
11230 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
11231 }
11232 #[doc = "SPI6 Autonomous mode enable"]
11233 pub const fn spi6amen(&self) -> super::vals::Bdmaamen {
11234 let val = (self.0 >> 5usize) & 0x01;
11235 super::vals::Bdmaamen(val as u8)
11236 }
11237 #[doc = "SPI6 Autonomous mode enable"]
11238 pub fn set_spi6amen(&mut self, val: super::vals::Bdmaamen) {
11239 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
11240 }
11241 #[doc = "I2C4 Autonomous mode enable"]
11242 pub const fn i2c4amen(&self) -> super::vals::Bdmaamen {
11243 let val = (self.0 >> 7usize) & 0x01;
11244 super::vals::Bdmaamen(val as u8)
11245 }
11246 #[doc = "I2C4 Autonomous mode enable"]
11247 pub fn set_i2c4amen(&mut self, val: super::vals::Bdmaamen) {
11248 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
11249 }
11250 #[doc = "LPTIM2 Autonomous mode enable"]
11251 pub const fn lptim2amen(&self) -> super::vals::Bdmaamen {
11252 let val = (self.0 >> 9usize) & 0x01;
11253 super::vals::Bdmaamen(val as u8)
11254 }
11255 #[doc = "LPTIM2 Autonomous mode enable"]
11256 pub fn set_lptim2amen(&mut self, val: super::vals::Bdmaamen) {
11257 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
11258 }
11259 #[doc = "LPTIM3 Autonomous mode enable"]
11260 pub const fn lptim3amen(&self) -> super::vals::Bdmaamen {
11261 let val = (self.0 >> 10usize) & 0x01;
11262 super::vals::Bdmaamen(val as u8)
11263 }
11264 #[doc = "LPTIM3 Autonomous mode enable"]
11265 pub fn set_lptim3amen(&mut self, val: super::vals::Bdmaamen) {
11266 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
11267 }
11268 #[doc = "LPTIM4 Autonomous mode enable"]
11269 pub const fn lptim4amen(&self) -> super::vals::Bdmaamen {
11270 let val = (self.0 >> 11usize) & 0x01;
11271 super::vals::Bdmaamen(val as u8)
11272 }
11273 #[doc = "LPTIM4 Autonomous mode enable"]
11274 pub fn set_lptim4amen(&mut self, val: super::vals::Bdmaamen) {
11275 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
11276 }
11277 #[doc = "LPTIM5 Autonomous mode enable"]
11278 pub const fn lptim5amen(&self) -> super::vals::Bdmaamen {
11279 let val = (self.0 >> 12usize) & 0x01;
11280 super::vals::Bdmaamen(val as u8)
11281 }
11282 #[doc = "LPTIM5 Autonomous mode enable"]
11283 pub fn set_lptim5amen(&mut self, val: super::vals::Bdmaamen) {
11284 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
11285 }
11286 #[doc = "COMP12 Autonomous mode enable"]
11287 pub const fn comp12amen(&self) -> super::vals::Bdmaamen {
11288 let val = (self.0 >> 14usize) & 0x01;
11289 super::vals::Bdmaamen(val as u8)
11290 }
11291 #[doc = "COMP12 Autonomous mode enable"]
11292 pub fn set_comp12amen(&mut self, val: super::vals::Bdmaamen) {
11293 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
11294 }
11295 #[doc = "VREF Autonomous mode enable"]
11296 pub const fn vrefamen(&self) -> super::vals::Bdmaamen {
11297 let val = (self.0 >> 15usize) & 0x01;
11298 super::vals::Bdmaamen(val as u8)
11299 }
11300 #[doc = "VREF Autonomous mode enable"]
11301 pub fn set_vrefamen(&mut self, val: super::vals::Bdmaamen) {
11302 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
11303 }
11304 #[doc = "RTC Autonomous mode enable"]
11305 pub const fn rtcamen(&self) -> super::vals::Bdmaamen {
11306 let val = (self.0 >> 16usize) & 0x01;
11307 super::vals::Bdmaamen(val as u8)
11308 }
11309 #[doc = "RTC Autonomous mode enable"]
11310 pub fn set_rtcamen(&mut self, val: super::vals::Bdmaamen) {
11311 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
11312 }
11313 #[doc = "CRC Autonomous mode enable"]
11314 pub const fn crcamen(&self) -> super::vals::Bdmaamen {
11315 let val = (self.0 >> 19usize) & 0x01;
11316 super::vals::Bdmaamen(val as u8)
11317 }
11318 #[doc = "CRC Autonomous mode enable"]
11319 pub fn set_crcamen(&mut self, val: super::vals::Bdmaamen) {
11320 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
11321 }
11322 #[doc = "SAI4 Autonomous mode enable"]
11323 pub const fn sai4amen(&self) -> super::vals::Bdmaamen {
11324 let val = (self.0 >> 21usize) & 0x01;
11325 super::vals::Bdmaamen(val as u8)
11326 }
11327 #[doc = "SAI4 Autonomous mode enable"]
11328 pub fn set_sai4amen(&mut self, val: super::vals::Bdmaamen) {
11329 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize);
11330 }
11331 #[doc = "ADC3 Autonomous mode enable"]
11332 pub const fn adc3amen(&self) -> super::vals::Bdmaamen {
11333 let val = (self.0 >> 24usize) & 0x01;
11334 super::vals::Bdmaamen(val as u8)
11335 }
11336 #[doc = "ADC3 Autonomous mode enable"]
11337 pub fn set_adc3amen(&mut self, val: super::vals::Bdmaamen) {
11338 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
11339 }
11340 #[doc = "Backup RAM Autonomous mode enable"]
11341 pub const fn bkpramamen(&self) -> super::vals::Bdmaamen {
11342 let val = (self.0 >> 28usize) & 0x01;
11343 super::vals::Bdmaamen(val as u8)
11344 }
11345 #[doc = "Backup RAM Autonomous mode enable"]
11346 pub fn set_bkpramamen(&mut self, val: super::vals::Bdmaamen) {
11347 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
11348 }
11349 #[doc = "SRAM4 Autonomous mode enable"]
11350 pub const fn sram4amen(&self) -> super::vals::Bdmaamen {
11351 let val = (self.0 >> 29usize) & 0x01;
11352 super::vals::Bdmaamen(val as u8)
11353 }
11354 #[doc = "SRAM4 Autonomous mode enable"]
11355 pub fn set_sram4amen(&mut self, val: super::vals::Bdmaamen) {
11356 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize);
11357 }
11358 } 10126 }
11359 impl Default for D3amr { 10127 #[repr(transparent)]
11360 fn default() -> D3amr { 10128 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11361 D3amr(0) 10129 pub struct C1RsrRmvf(pub u8);
11362 } 10130 impl C1RsrRmvf {
10131 #[doc = "Not clearing the the reset flags"]
10132 pub const NOTACTIVE: Self = Self(0);
10133 #[doc = "Clear the reset flags"]
10134 pub const CLEAR: Self = Self(0x01);
11363 } 10135 }
11364 #[doc = "RCC Domain 2 Kernel Clock Configuration Register"]
11365 #[repr(transparent)] 10136 #[repr(transparent)]
11366 #[derive(Copy, Clone, Eq, PartialEq)] 10137 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11367 pub struct D2ccip1r(pub u32); 10138 pub struct C1Ahb2enrDcmien(pub u8);
11368 impl D2ccip1r { 10139 impl C1Ahb2enrDcmien {
11369 #[doc = "SAI1 and DFSDM1 kernel Aclk clock source selection"] 10140 #[doc = "The selected clock is disabled"]
11370 pub const fn sai1sel(&self) -> super::vals::Sai1sel { 10141 pub const DISABLED: Self = Self(0);
11371 let val = (self.0 >> 0usize) & 0x07; 10142 #[doc = "The selected clock is enabled"]
11372 super::vals::Sai1sel(val as u8) 10143 pub const ENABLED: Self = Self(0x01);
11373 }
11374 #[doc = "SAI1 and DFSDM1 kernel Aclk clock source selection"]
11375 pub fn set_sai1sel(&mut self, val: super::vals::Sai1sel) {
11376 self.0 = (self.0 & !(0x07 << 0usize)) | (((val.0 as u32) & 0x07) << 0usize);
11377 }
11378 #[doc = "SAI2 and SAI3 kernel clock source selection"]
11379 pub const fn sai23sel(&self) -> super::vals::Sai1sel {
11380 let val = (self.0 >> 6usize) & 0x07;
11381 super::vals::Sai1sel(val as u8)
11382 }
11383 #[doc = "SAI2 and SAI3 kernel clock source selection"]
11384 pub fn set_sai23sel(&mut self, val: super::vals::Sai1sel) {
11385 self.0 = (self.0 & !(0x07 << 6usize)) | (((val.0 as u32) & 0x07) << 6usize);
11386 }
11387 #[doc = "SPI/I2S1,2 and 3 kernel clock source selection"]
11388 pub const fn spi123sel(&self) -> super::vals::Sai1sel {
11389 let val = (self.0 >> 12usize) & 0x07;
11390 super::vals::Sai1sel(val as u8)
11391 }
11392 #[doc = "SPI/I2S1,2 and 3 kernel clock source selection"]
11393 pub fn set_spi123sel(&mut self, val: super::vals::Sai1sel) {
11394 self.0 = (self.0 & !(0x07 << 12usize)) | (((val.0 as u32) & 0x07) << 12usize);
11395 }
11396 #[doc = "SPI4 and 5 kernel clock source selection"]
11397 pub const fn spi45sel(&self) -> super::vals::Spi45sel {
11398 let val = (self.0 >> 16usize) & 0x07;
11399 super::vals::Spi45sel(val as u8)
11400 }
11401 #[doc = "SPI4 and 5 kernel clock source selection"]
11402 pub fn set_spi45sel(&mut self, val: super::vals::Spi45sel) {
11403 self.0 = (self.0 & !(0x07 << 16usize)) | (((val.0 as u32) & 0x07) << 16usize);
11404 }
11405 #[doc = "SPDIFRX kernel clock source selection"]
11406 pub const fn spdifsel(&self) -> super::vals::Spdifsel {
11407 let val = (self.0 >> 20usize) & 0x03;
11408 super::vals::Spdifsel(val as u8)
11409 }
11410 #[doc = "SPDIFRX kernel clock source selection"]
11411 pub fn set_spdifsel(&mut self, val: super::vals::Spdifsel) {
11412 self.0 = (self.0 & !(0x03 << 20usize)) | (((val.0 as u32) & 0x03) << 20usize);
11413 }
11414 #[doc = "DFSDM1 kernel Clk clock source selection"]
11415 pub const fn dfsdm1sel(&self) -> super::vals::Dfsdm1sel {
11416 let val = (self.0 >> 24usize) & 0x01;
11417 super::vals::Dfsdm1sel(val as u8)
11418 }
11419 #[doc = "DFSDM1 kernel Clk clock source selection"]
11420 pub fn set_dfsdm1sel(&mut self, val: super::vals::Dfsdm1sel) {
11421 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
11422 }
11423 #[doc = "FDCAN kernel clock source selection"]
11424 pub const fn fdcansel(&self) -> super::vals::Fdcansel {
11425 let val = (self.0 >> 28usize) & 0x03;
11426 super::vals::Fdcansel(val as u8)
11427 }
11428 #[doc = "FDCAN kernel clock source selection"]
11429 pub fn set_fdcansel(&mut self, val: super::vals::Fdcansel) {
11430 self.0 = (self.0 & !(0x03 << 28usize)) | (((val.0 as u32) & 0x03) << 28usize);
11431 }
11432 #[doc = "SWPMI kernel clock source selection"]
11433 pub const fn swpsel(&self) -> super::vals::Swpsel {
11434 let val = (self.0 >> 31usize) & 0x01;
11435 super::vals::Swpsel(val as u8)
11436 }
11437 #[doc = "SWPMI kernel clock source selection"]
11438 pub fn set_swpsel(&mut self, val: super::vals::Swpsel) {
11439 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize);
11440 }
11441 } 10144 }
11442 impl Default for D2ccip1r { 10145 #[repr(transparent)]
11443 fn default() -> D2ccip1r { 10146 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11444 D2ccip1r(0) 10147 pub struct C1Apb1llpenrTim2lpen(pub u8);
11445 } 10148 impl C1Apb1llpenrTim2lpen {
10149 #[doc = "The selected clock is disabled during csleep mode"]
10150 pub const DISABLED: Self = Self(0);
10151 #[doc = "The selected clock is enabled during csleep mode"]
10152 pub const ENABLED: Self = Self(0x01);
11446 } 10153 }
11447 #[doc = "RCC APB2 Sleep Clock Register"]
11448 #[repr(transparent)] 10154 #[repr(transparent)]
11449 #[derive(Copy, Clone, Eq, PartialEq)] 10155 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11450 pub struct Apb2lpenr(pub u32); 10156 pub struct C1Apb2enrTim1en(pub u8);
11451 impl Apb2lpenr { 10157 impl C1Apb2enrTim1en {
11452 #[doc = "TIM1 peripheral clock enable during CSleep mode"] 10158 #[doc = "The selected clock is disabled"]
11453 pub const fn tim1lpen(&self) -> super::vals::Apb2lpenrTim1lpen { 10159 pub const DISABLED: Self = Self(0);
11454 let val = (self.0 >> 0usize) & 0x01; 10160 #[doc = "The selected clock is enabled"]
11455 super::vals::Apb2lpenrTim1lpen(val as u8) 10161 pub const ENABLED: Self = Self(0x01);
11456 }
11457 #[doc = "TIM1 peripheral clock enable during CSleep mode"]
11458 pub fn set_tim1lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
11459 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
11460 }
11461 #[doc = "TIM8 peripheral clock enable during CSleep mode"]
11462 pub const fn tim8lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
11463 let val = (self.0 >> 1usize) & 0x01;
11464 super::vals::Apb2lpenrTim1lpen(val as u8)
11465 }
11466 #[doc = "TIM8 peripheral clock enable during CSleep mode"]
11467 pub fn set_tim8lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
11468 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
11469 }
11470 #[doc = "USART1 Peripheral Clocks Enable During CSleep Mode"]
11471 pub const fn usart1lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
11472 let val = (self.0 >> 4usize) & 0x01;
11473 super::vals::Apb2lpenrTim1lpen(val as u8)
11474 }
11475 #[doc = "USART1 Peripheral Clocks Enable During CSleep Mode"]
11476 pub fn set_usart1lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
11477 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
11478 }
11479 #[doc = "USART6 Peripheral Clocks Enable During CSleep Mode"]
11480 pub const fn usart6lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
11481 let val = (self.0 >> 5usize) & 0x01;
11482 super::vals::Apb2lpenrTim1lpen(val as u8)
11483 }
11484 #[doc = "USART6 Peripheral Clocks Enable During CSleep Mode"]
11485 pub fn set_usart6lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
11486 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
11487 }
11488 #[doc = "SPI1 Peripheral Clocks Enable During CSleep Mode"]
11489 pub const fn spi1lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
11490 let val = (self.0 >> 12usize) & 0x01;
11491 super::vals::Apb2lpenrTim1lpen(val as u8)
11492 }
11493 #[doc = "SPI1 Peripheral Clocks Enable During CSleep Mode"]
11494 pub fn set_spi1lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
11495 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
11496 }
11497 #[doc = "SPI4 Peripheral Clocks Enable During CSleep Mode"]
11498 pub const fn spi4lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
11499 let val = (self.0 >> 13usize) & 0x01;
11500 super::vals::Apb2lpenrTim1lpen(val as u8)
11501 }
11502 #[doc = "SPI4 Peripheral Clocks Enable During CSleep Mode"]
11503 pub fn set_spi4lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
11504 self.0 = (self.0 & !(0x01 << 13usize)) | (((val.0 as u32) & 0x01) << 13usize);
11505 }
11506 #[doc = "TIM15 peripheral clock enable during CSleep mode"]
11507 pub const fn tim15lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
11508 let val = (self.0 >> 16usize) & 0x01;
11509 super::vals::Apb2lpenrTim1lpen(val as u8)
11510 }
11511 #[doc = "TIM15 peripheral clock enable during CSleep mode"]
11512 pub fn set_tim15lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
11513 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
11514 }
11515 #[doc = "TIM16 peripheral clock enable during CSleep mode"]
11516 pub const fn tim16lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
11517 let val = (self.0 >> 17usize) & 0x01;
11518 super::vals::Apb2lpenrTim1lpen(val as u8)
11519 }
11520 #[doc = "TIM16 peripheral clock enable during CSleep mode"]
11521 pub fn set_tim16lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
11522 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize);
11523 }
11524 #[doc = "TIM17 peripheral clock enable during CSleep mode"]
11525 pub const fn tim17lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
11526 let val = (self.0 >> 18usize) & 0x01;
11527 super::vals::Apb2lpenrTim1lpen(val as u8)
11528 }
11529 #[doc = "TIM17 peripheral clock enable during CSleep mode"]
11530 pub fn set_tim17lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
11531 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
11532 }
11533 #[doc = "SPI5 Peripheral Clocks Enable During CSleep Mode"]
11534 pub const fn spi5lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
11535 let val = (self.0 >> 20usize) & 0x01;
11536 super::vals::Apb2lpenrTim1lpen(val as u8)
11537 }
11538 #[doc = "SPI5 Peripheral Clocks Enable During CSleep Mode"]
11539 pub fn set_spi5lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
11540 self.0 = (self.0 & !(0x01 << 20usize)) | (((val.0 as u32) & 0x01) << 20usize);
11541 }
11542 #[doc = "SAI1 Peripheral Clocks Enable During CSleep Mode"]
11543 pub const fn sai1lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
11544 let val = (self.0 >> 22usize) & 0x01;
11545 super::vals::Apb2lpenrTim1lpen(val as u8)
11546 }
11547 #[doc = "SAI1 Peripheral Clocks Enable During CSleep Mode"]
11548 pub fn set_sai1lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
11549 self.0 = (self.0 & !(0x01 << 22usize)) | (((val.0 as u32) & 0x01) << 22usize);
11550 }
11551 #[doc = "SAI2 Peripheral Clocks Enable During CSleep Mode"]
11552 pub const fn sai2lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
11553 let val = (self.0 >> 23usize) & 0x01;
11554 super::vals::Apb2lpenrTim1lpen(val as u8)
11555 }
11556 #[doc = "SAI2 Peripheral Clocks Enable During CSleep Mode"]
11557 pub fn set_sai2lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
11558 self.0 = (self.0 & !(0x01 << 23usize)) | (((val.0 as u32) & 0x01) << 23usize);
11559 }
11560 #[doc = "SAI3 Peripheral Clocks Enable During CSleep Mode"]
11561 pub const fn sai3lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
11562 let val = (self.0 >> 24usize) & 0x01;
11563 super::vals::Apb2lpenrTim1lpen(val as u8)
11564 }
11565 #[doc = "SAI3 Peripheral Clocks Enable During CSleep Mode"]
11566 pub fn set_sai3lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
11567 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
11568 }
11569 #[doc = "DFSDM1 Peripheral Clocks Enable During CSleep Mode"]
11570 pub const fn dfsdm1lpen(&self) -> super::vals::Apb2lpenrTim1lpen {
11571 let val = (self.0 >> 28usize) & 0x01;
11572 super::vals::Apb2lpenrTim1lpen(val as u8)
11573 }
11574 #[doc = "DFSDM1 Peripheral Clocks Enable During CSleep Mode"]
11575 pub fn set_dfsdm1lpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
11576 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize);
11577 }
11578 #[doc = "HRTIM peripheral clock enable during CSleep mode"]
11579 pub const fn hrtimlpen(&self) -> super::vals::Apb2lpenrTim1lpen {
11580 let val = (self.0 >> 29usize) & 0x01;
11581 super::vals::Apb2lpenrTim1lpen(val as u8)
11582 }
11583 #[doc = "HRTIM peripheral clock enable during CSleep mode"]
11584 pub fn set_hrtimlpen(&mut self, val: super::vals::Apb2lpenrTim1lpen) {
11585 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize);
11586 }
11587 } 10162 }
11588 impl Default for Apb2lpenr { 10163 #[repr(transparent)]
11589 fn default() -> Apb2lpenr { 10164 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11590 Apb2lpenr(0) 10165 pub struct Ahb2lpenrDcmilpen(pub u8);
11591 } 10166 impl Ahb2lpenrDcmilpen {
10167 #[doc = "The selected clock is disabled during csleep mode"]
10168 pub const DISABLED: Self = Self(0);
10169 #[doc = "The selected clock is enabled during csleep mode"]
10170 pub const ENABLED: Self = Self(0x01);
11592 } 10171 }
11593 } 10172 #[repr(transparent)]
11594} 10173 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11595pub mod syscfg_f4 { 10174 pub struct Apb1lenrTim2en(pub u8);
11596 use crate::generic::*; 10175 impl Apb1lenrTim2en {
11597 #[doc = "System configuration controller"] 10176 #[doc = "The selected clock is disabled"]
11598 #[derive(Copy, Clone)] 10177 pub const DISABLED: Self = Self(0);
11599 pub struct Syscfg(pub *mut u8); 10178 #[doc = "The selected clock is enabled"]
11600 unsafe impl Send for Syscfg {} 10179 pub const ENABLED: Self = Self(0x01);
11601 unsafe impl Sync for Syscfg {}
11602 impl Syscfg {
11603 #[doc = "memory remap register"]
11604 pub fn memrm(self) -> Reg<regs::Memrm, RW> {
11605 unsafe { Reg::from_ptr(self.0.add(0usize)) }
11606 } 10180 }
11607 #[doc = "peripheral mode configuration register"] 10181 #[repr(transparent)]
11608 pub fn pmc(self) -> Reg<regs::Pmc, RW> { 10182 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11609 unsafe { Reg::from_ptr(self.0.add(4usize)) } 10183 pub struct Pllsrc(pub u8);
10184 impl Pllsrc {
10185 #[doc = "HSI selected as PLL clock"]
10186 pub const HSI: Self = Self(0);
10187 #[doc = "CSI selected as PLL clock"]
10188 pub const CSI: Self = Self(0x01);
10189 #[doc = "HSE selected as PLL clock"]
10190 pub const HSE: Self = Self(0x02);
10191 #[doc = "No clock sent to DIVMx dividers and PLLs"]
10192 pub const NONE: Self = Self(0x03);
11610 } 10193 }
11611 #[doc = "external interrupt configuration register"] 10194 #[repr(transparent)]
11612 pub fn exticr(self, n: usize) -> Reg<regs::Exticr, RW> { 10195 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11613 assert!(n < 4usize); 10196 pub struct Bdrst(pub u8);
11614 unsafe { Reg::from_ptr(self.0.add(8usize + n * 4usize)) } 10197 impl Bdrst {
10198 #[doc = "Resets the entire VSW domain"]
10199 pub const RESET: Self = Self(0x01);
11615 } 10200 }
11616 #[doc = "Compensation cell control register"] 10201 #[repr(transparent)]
11617 pub fn cmpcr(self) -> Reg<regs::Cmpcr, R> { 10202 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11618 unsafe { Reg::from_ptr(self.0.add(32usize)) } 10203 pub struct Lsirdyr(pub u8);
10204 impl Lsirdyr {
10205 #[doc = "LSI oscillator not ready"]
10206 pub const NOTREADY: Self = Self(0);
10207 #[doc = "LSI oscillator ready"]
10208 pub const READY: Self = Self(0x01);
11619 } 10209 }
11620 }
11621 pub mod regs {
11622 use crate::generic::*;
11623 #[doc = "memory remap register"]
11624 #[repr(transparent)] 10210 #[repr(transparent)]
11625 #[derive(Copy, Clone, Eq, PartialEq)] 10211 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11626 pub struct Memrm(pub u32); 10212 pub struct Apb4lpenrSyscfglpen(pub u8);
11627 impl Memrm { 10213 impl Apb4lpenrSyscfglpen {
11628 #[doc = "Memory mapping selection"] 10214 #[doc = "The selected clock is disabled during csleep mode"]
11629 pub const fn mem_mode(&self) -> u8 { 10215 pub const DISABLED: Self = Self(0);
11630 let val = (self.0 >> 0usize) & 0x07; 10216 #[doc = "The selected clock is enabled during csleep mode"]
11631 val as u8 10217 pub const ENABLED: Self = Self(0x01);
11632 }
11633 #[doc = "Memory mapping selection"]
11634 pub fn set_mem_mode(&mut self, val: u8) {
11635 self.0 = (self.0 & !(0x07 << 0usize)) | (((val as u32) & 0x07) << 0usize);
11636 }
11637 #[doc = "Flash bank mode selection"]
11638 pub const fn fb_mode(&self) -> bool {
11639 let val = (self.0 >> 8usize) & 0x01;
11640 val != 0
11641 }
11642 #[doc = "Flash bank mode selection"]
11643 pub fn set_fb_mode(&mut self, val: bool) {
11644 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
11645 }
11646 #[doc = "FMC memory mapping swap"]
11647 pub const fn swp_fmc(&self) -> u8 {
11648 let val = (self.0 >> 10usize) & 0x03;
11649 val as u8
11650 }
11651 #[doc = "FMC memory mapping swap"]
11652 pub fn set_swp_fmc(&mut self, val: u8) {
11653 self.0 = (self.0 & !(0x03 << 10usize)) | (((val as u32) & 0x03) << 10usize);
11654 }
11655 } 10218 }
11656 impl Default for Memrm { 10219 #[repr(transparent)]
11657 fn default() -> Memrm { 10220 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11658 Memrm(0) 10221 pub struct Apb4enrSyscfgen(pub u8);
11659 } 10222 impl Apb4enrSyscfgen {
10223 #[doc = "The selected clock is disabled"]
10224 pub const DISABLED: Self = Self(0);
10225 #[doc = "The selected clock is enabled"]
10226 pub const ENABLED: Self = Self(0x01);
11660 } 10227 }
11661 #[doc = "Compensation cell control register"]
11662 #[repr(transparent)] 10228 #[repr(transparent)]
11663 #[derive(Copy, Clone, Eq, PartialEq)] 10229 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11664 pub struct Cmpcr(pub u32); 10230 pub struct Rtcsel(pub u8);
11665 impl Cmpcr { 10231 impl Rtcsel {
11666 #[doc = "Compensation cell power-down"] 10232 #[doc = "No clock"]
11667 pub const fn cmp_pd(&self) -> bool { 10233 pub const NOCLOCK: Self = Self(0);
11668 let val = (self.0 >> 0usize) & 0x01; 10234 #[doc = "LSE oscillator clock used as RTC clock"]
11669 val != 0 10235 pub const LSE: Self = Self(0x01);
11670 } 10236 #[doc = "LSI oscillator clock used as RTC clock"]
11671 #[doc = "Compensation cell power-down"] 10237 pub const LSI: Self = Self(0x02);
11672 pub fn set_cmp_pd(&mut self, val: bool) { 10238 #[doc = "HSE oscillator clock divided by a prescaler used as RTC clock"]
11673 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 10239 pub const HSE: Self = Self(0x03);
11674 }
11675 #[doc = "READY"]
11676 pub const fn ready(&self) -> bool {
11677 let val = (self.0 >> 8usize) & 0x01;
11678 val != 0
11679 }
11680 #[doc = "READY"]
11681 pub fn set_ready(&mut self, val: bool) {
11682 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
11683 }
11684 } 10240 }
11685 impl Default for Cmpcr { 10241 #[repr(transparent)]
11686 fn default() -> Cmpcr { 10242 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11687 Cmpcr(0) 10243 pub struct Mdmarst(pub u8);
11688 } 10244 impl Mdmarst {
10245 #[doc = "Reset the selected module"]
10246 pub const RESET: Self = Self(0x01);
11689 } 10247 }
11690 #[doc = "peripheral mode configuration register"]
11691 #[repr(transparent)] 10248 #[repr(transparent)]
11692 #[derive(Copy, Clone, Eq, PartialEq)] 10249 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11693 pub struct Pmc(pub u32); 10250 pub struct C1Ahb1enrDma1en(pub u8);
11694 impl Pmc { 10251 impl C1Ahb1enrDma1en {
11695 #[doc = "ADC1DC2"] 10252 #[doc = "The selected clock is disabled"]
11696 pub const fn adc1dc2(&self) -> bool { 10253 pub const DISABLED: Self = Self(0);
11697 let val = (self.0 >> 16usize) & 0x01; 10254 #[doc = "The selected clock is enabled"]
11698 val != 0 10255 pub const ENABLED: Self = Self(0x01);
11699 }
11700 #[doc = "ADC1DC2"]
11701 pub fn set_adc1dc2(&mut self, val: bool) {
11702 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
11703 }
11704 #[doc = "ADC2DC2"]
11705 pub const fn adc2dc2(&self) -> bool {
11706 let val = (self.0 >> 17usize) & 0x01;
11707 val != 0
11708 }
11709 #[doc = "ADC2DC2"]
11710 pub fn set_adc2dc2(&mut self, val: bool) {
11711 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
11712 }
11713 #[doc = "ADC3DC2"]
11714 pub const fn adc3dc2(&self) -> bool {
11715 let val = (self.0 >> 18usize) & 0x01;
11716 val != 0
11717 }
11718 #[doc = "ADC3DC2"]
11719 pub fn set_adc3dc2(&mut self, val: bool) {
11720 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize);
11721 }
11722 #[doc = "Ethernet PHY interface selection"]
11723 pub const fn mii_rmii_sel(&self) -> bool {
11724 let val = (self.0 >> 23usize) & 0x01;
11725 val != 0
11726 }
11727 #[doc = "Ethernet PHY interface selection"]
11728 pub fn set_mii_rmii_sel(&mut self, val: bool) {
11729 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
11730 }
11731 } 10256 }
11732 impl Default for Pmc { 10257 #[repr(transparent)]
11733 fn default() -> Pmc { 10258 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11734 Pmc(0) 10259 pub struct Apb1llpenrTim2lpen(pub u8);
11735 } 10260 impl Apb1llpenrTim2lpen {
10261 #[doc = "The selected clock is disabled during csleep mode"]
10262 pub const DISABLED: Self = Self(0);
10263 #[doc = "The selected clock is enabled during csleep mode"]
10264 pub const ENABLED: Self = Self(0x01);
11736 } 10265 }
11737 #[doc = "external interrupt configuration register"]
11738 #[repr(transparent)] 10266 #[repr(transparent)]
11739 #[derive(Copy, Clone, Eq, PartialEq)] 10267 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11740 pub struct Exticr(pub u32); 10268 pub struct Ltdcrst(pub u8);
11741 impl Exticr { 10269 impl Ltdcrst {
11742 #[doc = "EXTI x configuration"] 10270 #[doc = "Reset the selected module"]
11743 pub fn exti(&self, n: usize) -> u8 { 10271 pub const RESET: Self = Self(0x01);
11744 assert!(n < 4usize);
11745 let offs = 0usize + n * 4usize;
11746 let val = (self.0 >> offs) & 0x0f;
11747 val as u8
11748 }
11749 #[doc = "EXTI x configuration"]
11750 pub fn set_exti(&mut self, n: usize, val: u8) {
11751 assert!(n < 4usize);
11752 let offs = 0usize + n * 4usize;
11753 self.0 = (self.0 & !(0x0f << offs)) | (((val as u32) & 0x0f) << offs);
11754 }
11755 } 10272 }
11756 impl Default for Exticr { 10273 #[repr(transparent)]
11757 fn default() -> Exticr { 10274 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11758 Exticr(0) 10275 pub struct Sdmmcsel(pub u8);
11759 } 10276 impl Sdmmcsel {
10277 #[doc = "pll1_q selected as peripheral clock"]
10278 pub const PLL1_Q: Self = Self(0);
10279 #[doc = "pll2_r selected as peripheral clock"]
10280 pub const PLL2_R: Self = Self(0x01);
11760 } 10281 }
11761 } 10282 #[repr(transparent)]
11762} 10283 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11763pub mod dma_v2 { 10284 pub struct C1RsrCpurstfr(pub u8);
11764 use crate::generic::*; 10285 impl C1RsrCpurstfr {
11765 #[doc = "Stream cluster: S?CR, S?NDTR, S?M0AR, S?M1AR and S?FCR registers"] 10286 #[doc = "No reset occoured for block"]
11766 #[derive(Copy, Clone)] 10287 pub const NORESETOCCOURED: Self = Self(0);
11767 pub struct St(pub *mut u8); 10288 #[doc = "Reset occoured for block"]
11768 unsafe impl Send for St {} 10289 pub const RESETOCCOURRED: Self = Self(0x01);
11769 unsafe impl Sync for St {}
11770 impl St {
11771 #[doc = "stream x configuration register"]
11772 pub fn cr(self) -> Reg<regs::Cr, RW> {
11773 unsafe { Reg::from_ptr(self.0.add(0usize)) }
11774 } 10290 }
11775 #[doc = "stream x number of data register"] 10291 #[repr(transparent)]
11776 pub fn ndtr(self) -> Reg<regs::Ndtr, RW> { 10292 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11777 unsafe { Reg::from_ptr(self.0.add(4usize)) } 10293 pub struct Apb2lpenrTim1lpen(pub u8);
10294 impl Apb2lpenrTim1lpen {
10295 #[doc = "The selected clock is disabled during csleep mode"]
10296 pub const DISABLED: Self = Self(0);
10297 #[doc = "The selected clock is enabled during csleep mode"]
10298 pub const ENABLED: Self = Self(0x01);
11778 } 10299 }
11779 #[doc = "stream x peripheral address register"] 10300 #[repr(transparent)]
11780 pub fn par(self) -> Reg<u32, RW> { 10301 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11781 unsafe { Reg::from_ptr(self.0.add(8usize)) } 10302 pub struct C1Apb3lpenrLtdclpen(pub u8);
10303 impl C1Apb3lpenrLtdclpen {
10304 #[doc = "The selected clock is disabled during csleep mode"]
10305 pub const DISABLED: Self = Self(0);
10306 #[doc = "The selected clock is enabled during csleep mode"]
10307 pub const ENABLED: Self = Self(0x01);
11782 } 10308 }
11783 #[doc = "stream x memory 0 address register"] 10309 #[repr(transparent)]
11784 pub fn m0ar(self) -> Reg<u32, RW> { 10310 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11785 unsafe { Reg::from_ptr(self.0.add(12usize)) } 10311 pub struct Fmcsel(pub u8);
10312 impl Fmcsel {
10313 #[doc = "rcc_hclk3 selected as peripheral clock"]
10314 pub const RCC_HCLK3: Self = Self(0);
10315 #[doc = "pll1_q selected as peripheral clock"]
10316 pub const PLL1_Q: Self = Self(0x01);
10317 #[doc = "pll2_r selected as peripheral clock"]
10318 pub const PLL2_R: Self = Self(0x02);
10319 #[doc = "PER selected as peripheral clock"]
10320 pub const PER: Self = Self(0x03);
11786 } 10321 }
11787 #[doc = "stream x memory 1 address register"] 10322 #[repr(transparent)]
11788 pub fn m1ar(self) -> Reg<u32, RW> { 10323 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11789 unsafe { Reg::from_ptr(self.0.add(16usize)) } 10324 pub struct Ahb4lpenrGpioalpen(pub u8);
10325 impl Ahb4lpenrGpioalpen {
10326 #[doc = "The selected clock is disabled during csleep mode"]
10327 pub const DISABLED: Self = Self(0);
10328 #[doc = "The selected clock is enabled during csleep mode"]
10329 pub const ENABLED: Self = Self(0x01);
11790 } 10330 }
11791 #[doc = "stream x FIFO control register"] 10331 #[repr(transparent)]
11792 pub fn fcr(self) -> Reg<regs::Fcr, RW> { 10332 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11793 unsafe { Reg::from_ptr(self.0.add(20usize)) } 10333 pub struct Apb2enrTim1en(pub u8);
10334 impl Apb2enrTim1en {
10335 #[doc = "The selected clock is disabled"]
10336 pub const DISABLED: Self = Self(0);
10337 #[doc = "The selected clock is enabled"]
10338 pub const ENABLED: Self = Self(0x01);
11794 } 10339 }
11795 } 10340 #[repr(transparent)]
11796 #[doc = "DMA controller"] 10341 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11797 #[derive(Copy, Clone)] 10342 pub struct C1Apb3enrLtdcen(pub u8);
11798 pub struct Dma(pub *mut u8); 10343 impl C1Apb3enrLtdcen {
11799 unsafe impl Send for Dma {} 10344 #[doc = "The selected clock is disabled"]
11800 unsafe impl Sync for Dma {} 10345 pub const DISABLED: Self = Self(0);
11801 impl Dma { 10346 #[doc = "The selected clock is enabled"]
11802 #[doc = "low interrupt status register"] 10347 pub const ENABLED: Self = Self(0x01);
11803 pub fn isr(self, n: usize) -> Reg<regs::Ixr, R> {
11804 assert!(n < 2usize);
11805 unsafe { Reg::from_ptr(self.0.add(0usize + n * 4usize)) }
11806 } 10348 }
11807 #[doc = "low interrupt flag clear register"] 10349 #[repr(transparent)]
11808 pub fn ifcr(self, n: usize) -> Reg<regs::Ixr, W> { 10350 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11809 assert!(n < 2usize); 10351 pub struct Rngsel(pub u8);
11810 unsafe { Reg::from_ptr(self.0.add(8usize + n * 4usize)) } 10352 impl Rngsel {
10353 #[doc = "HSI48 selected as peripheral clock"]
10354 pub const HSI48: Self = Self(0);
10355 #[doc = "pll1_q selected as peripheral clock"]
10356 pub const PLL1_Q: Self = Self(0x01);
10357 #[doc = "LSE selected as peripheral clock"]
10358 pub const LSE: Self = Self(0x02);
10359 #[doc = "LSI selected as peripheral clock"]
10360 pub const LSI: Self = Self(0x03);
11811 } 10361 }
11812 #[doc = "Stream cluster: S?CR, S?NDTR, S?M0AR, S?M1AR and S?FCR registers"] 10362 #[repr(transparent)]
11813 pub fn st(self, n: usize) -> St { 10363 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11814 assert!(n < 8usize); 10364 pub struct Usart234578sel(pub u8);
11815 unsafe { St(self.0.add(16usize + n * 24usize)) } 10365 impl Usart234578sel {
10366 #[doc = "rcc_pclk1 selected as peripheral clock"]
10367 pub const RCC_PCLK1: Self = Self(0);
10368 #[doc = "pll2_q selected as peripheral clock"]
10369 pub const PLL2_Q: Self = Self(0x01);
10370 #[doc = "pll3_q selected as peripheral clock"]
10371 pub const PLL3_Q: Self = Self(0x02);
10372 #[doc = "hsi_ker selected as peripheral clock"]
10373 pub const HSI_KER: Self = Self(0x03);
10374 #[doc = "csi_ker selected as peripheral clock"]
10375 pub const CSI_KER: Self = Self(0x04);
10376 #[doc = "LSE selected as peripheral clock"]
10377 pub const LSE: Self = Self(0x05);
11816 } 10378 }
11817 }
11818 pub mod regs {
11819 use crate::generic::*;
11820 #[doc = "stream x configuration register"]
11821 #[repr(transparent)] 10379 #[repr(transparent)]
11822 #[derive(Copy, Clone, Eq, PartialEq)] 10380 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11823 pub struct Cr(pub u32); 10381 pub struct Lptim2sel(pub u8);
11824 impl Cr { 10382 impl Lptim2sel {
11825 #[doc = "Stream enable / flag stream ready when read low"] 10383 #[doc = "rcc_pclk4 selected as peripheral clock"]
11826 pub const fn en(&self) -> bool { 10384 pub const RCC_PCLK4: Self = Self(0);
11827 let val = (self.0 >> 0usize) & 0x01; 10385 #[doc = "pll2_p selected as peripheral clock"]
11828 val != 0 10386 pub const PLL2_P: Self = Self(0x01);
11829 } 10387 #[doc = "pll3_r selected as peripheral clock"]
11830 #[doc = "Stream enable / flag stream ready when read low"] 10388 pub const PLL3_R: Self = Self(0x02);
11831 pub fn set_en(&mut self, val: bool) { 10389 #[doc = "LSE selected as peripheral clock"]
11832 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 10390 pub const LSE: Self = Self(0x03);
11833 } 10391 #[doc = "LSI selected as peripheral clock"]
11834 #[doc = "Direct mode error interrupt enable"] 10392 pub const LSI: Self = Self(0x04);
11835 pub const fn dmeie(&self) -> bool { 10393 #[doc = "PER selected as peripheral clock"]
11836 let val = (self.0 >> 1usize) & 0x01; 10394 pub const PER: Self = Self(0x05);
11837 val != 0
11838 }
11839 #[doc = "Direct mode error interrupt enable"]
11840 pub fn set_dmeie(&mut self, val: bool) {
11841 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
11842 }
11843 #[doc = "Transfer error interrupt enable"]
11844 pub const fn teie(&self) -> bool {
11845 let val = (self.0 >> 2usize) & 0x01;
11846 val != 0
11847 }
11848 #[doc = "Transfer error interrupt enable"]
11849 pub fn set_teie(&mut self, val: bool) {
11850 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
11851 }
11852 #[doc = "Half transfer interrupt enable"]
11853 pub const fn htie(&self) -> bool {
11854 let val = (self.0 >> 3usize) & 0x01;
11855 val != 0
11856 }
11857 #[doc = "Half transfer interrupt enable"]
11858 pub fn set_htie(&mut self, val: bool) {
11859 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
11860 }
11861 #[doc = "Transfer complete interrupt enable"]
11862 pub const fn tcie(&self) -> bool {
11863 let val = (self.0 >> 4usize) & 0x01;
11864 val != 0
11865 }
11866 #[doc = "Transfer complete interrupt enable"]
11867 pub fn set_tcie(&mut self, val: bool) {
11868 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
11869 }
11870 #[doc = "Peripheral flow controller"]
11871 pub const fn pfctrl(&self) -> super::vals::Pfctrl {
11872 let val = (self.0 >> 5usize) & 0x01;
11873 super::vals::Pfctrl(val as u8)
11874 }
11875 #[doc = "Peripheral flow controller"]
11876 pub fn set_pfctrl(&mut self, val: super::vals::Pfctrl) {
11877 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
11878 }
11879 #[doc = "Data transfer direction"]
11880 pub const fn dir(&self) -> super::vals::Dir {
11881 let val = (self.0 >> 6usize) & 0x03;
11882 super::vals::Dir(val as u8)
11883 }
11884 #[doc = "Data transfer direction"]
11885 pub fn set_dir(&mut self, val: super::vals::Dir) {
11886 self.0 = (self.0 & !(0x03 << 6usize)) | (((val.0 as u32) & 0x03) << 6usize);
11887 }
11888 #[doc = "Circular mode"]
11889 pub const fn circ(&self) -> super::vals::Circ {
11890 let val = (self.0 >> 8usize) & 0x01;
11891 super::vals::Circ(val as u8)
11892 }
11893 #[doc = "Circular mode"]
11894 pub fn set_circ(&mut self, val: super::vals::Circ) {
11895 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
11896 }
11897 #[doc = "Peripheral increment mode"]
11898 pub const fn pinc(&self) -> super::vals::Inc {
11899 let val = (self.0 >> 9usize) & 0x01;
11900 super::vals::Inc(val as u8)
11901 }
11902 #[doc = "Peripheral increment mode"]
11903 pub fn set_pinc(&mut self, val: super::vals::Inc) {
11904 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
11905 }
11906 #[doc = "Memory increment mode"]
11907 pub const fn minc(&self) -> super::vals::Inc {
11908 let val = (self.0 >> 10usize) & 0x01;
11909 super::vals::Inc(val as u8)
11910 }
11911 #[doc = "Memory increment mode"]
11912 pub fn set_minc(&mut self, val: super::vals::Inc) {
11913 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
11914 }
11915 #[doc = "Peripheral data size"]
11916 pub const fn psize(&self) -> super::vals::Size {
11917 let val = (self.0 >> 11usize) & 0x03;
11918 super::vals::Size(val as u8)
11919 }
11920 #[doc = "Peripheral data size"]
11921 pub fn set_psize(&mut self, val: super::vals::Size) {
11922 self.0 = (self.0 & !(0x03 << 11usize)) | (((val.0 as u32) & 0x03) << 11usize);
11923 }
11924 #[doc = "Memory data size"]
11925 pub const fn msize(&self) -> super::vals::Size {
11926 let val = (self.0 >> 13usize) & 0x03;
11927 super::vals::Size(val as u8)
11928 }
11929 #[doc = "Memory data size"]
11930 pub fn set_msize(&mut self, val: super::vals::Size) {
11931 self.0 = (self.0 & !(0x03 << 13usize)) | (((val.0 as u32) & 0x03) << 13usize);
11932 }
11933 #[doc = "Peripheral increment offset size"]
11934 pub const fn pincos(&self) -> super::vals::Pincos {
11935 let val = (self.0 >> 15usize) & 0x01;
11936 super::vals::Pincos(val as u8)
11937 }
11938 #[doc = "Peripheral increment offset size"]
11939 pub fn set_pincos(&mut self, val: super::vals::Pincos) {
11940 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
11941 }
11942 #[doc = "Priority level"]
11943 pub const fn pl(&self) -> super::vals::Pl {
11944 let val = (self.0 >> 16usize) & 0x03;
11945 super::vals::Pl(val as u8)
11946 }
11947 #[doc = "Priority level"]
11948 pub fn set_pl(&mut self, val: super::vals::Pl) {
11949 self.0 = (self.0 & !(0x03 << 16usize)) | (((val.0 as u32) & 0x03) << 16usize);
11950 }
11951 #[doc = "Double buffer mode"]
11952 pub const fn dbm(&self) -> super::vals::Dbm {
11953 let val = (self.0 >> 18usize) & 0x01;
11954 super::vals::Dbm(val as u8)
11955 }
11956 #[doc = "Double buffer mode"]
11957 pub fn set_dbm(&mut self, val: super::vals::Dbm) {
11958 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
11959 }
11960 #[doc = "Current target (only in double buffer mode)"]
11961 pub const fn ct(&self) -> super::vals::Ct {
11962 let val = (self.0 >> 19usize) & 0x01;
11963 super::vals::Ct(val as u8)
11964 }
11965 #[doc = "Current target (only in double buffer mode)"]
11966 pub fn set_ct(&mut self, val: super::vals::Ct) {
11967 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
11968 }
11969 #[doc = "Peripheral burst transfer configuration"]
11970 pub const fn pburst(&self) -> super::vals::Burst {
11971 let val = (self.0 >> 21usize) & 0x03;
11972 super::vals::Burst(val as u8)
11973 }
11974 #[doc = "Peripheral burst transfer configuration"]
11975 pub fn set_pburst(&mut self, val: super::vals::Burst) {
11976 self.0 = (self.0 & !(0x03 << 21usize)) | (((val.0 as u32) & 0x03) << 21usize);
11977 }
11978 #[doc = "Memory burst transfer configuration"]
11979 pub const fn mburst(&self) -> super::vals::Burst {
11980 let val = (self.0 >> 23usize) & 0x03;
11981 super::vals::Burst(val as u8)
11982 }
11983 #[doc = "Memory burst transfer configuration"]
11984 pub fn set_mburst(&mut self, val: super::vals::Burst) {
11985 self.0 = (self.0 & !(0x03 << 23usize)) | (((val.0 as u32) & 0x03) << 23usize);
11986 }
11987 #[doc = "Channel selection"]
11988 pub const fn chsel(&self) -> u8 {
11989 let val = (self.0 >> 25usize) & 0x0f;
11990 val as u8
11991 }
11992 #[doc = "Channel selection"]
11993 pub fn set_chsel(&mut self, val: u8) {
11994 self.0 = (self.0 & !(0x0f << 25usize)) | (((val as u32) & 0x0f) << 25usize);
11995 }
11996 } 10395 }
11997 impl Default for Cr { 10396 #[repr(transparent)]
11998 fn default() -> Cr { 10397 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11999 Cr(0) 10398 pub struct Tim1rst(pub u8);
12000 } 10399 impl Tim1rst {
10400 #[doc = "Reset the selected module"]
10401 pub const RESET: Self = Self(0x01);
12001 } 10402 }
12002 #[doc = "stream x number of data register"]
12003 #[repr(transparent)] 10403 #[repr(transparent)]
12004 #[derive(Copy, Clone, Eq, PartialEq)] 10404 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12005 pub struct Ndtr(pub u32); 10405 pub struct Crsrst(pub u8);
12006 impl Ndtr { 10406 impl Crsrst {
12007 #[doc = "Number of data items to transfer"] 10407 #[doc = "Reset the selected module"]
12008 pub const fn ndt(&self) -> u16 { 10408 pub const RESET: Self = Self(0x01);
12009 let val = (self.0 >> 0usize) & 0xffff;
12010 val as u16
12011 }
12012 #[doc = "Number of data items to transfer"]
12013 pub fn set_ndt(&mut self, val: u16) {
12014 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
12015 }
12016 } 10409 }
12017 impl Default for Ndtr { 10410 #[repr(transparent)]
12018 fn default() -> Ndtr { 10411 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12019 Ndtr(0) 10412 pub struct Sai4asel(pub u8);
12020 } 10413 impl Sai4asel {
10414 #[doc = "pll1_q selected as peripheral clock"]
10415 pub const PLL1_Q: Self = Self(0);
10416 #[doc = "pll2_p selected as peripheral clock"]
10417 pub const PLL2_P: Self = Self(0x01);
10418 #[doc = "pll3_p selected as peripheral clock"]
10419 pub const PLL3_P: Self = Self(0x02);
10420 #[doc = "i2s_ckin selected as peripheral clock"]
10421 pub const I2S_CKIN: Self = Self(0x03);
10422 #[doc = "PER selected as peripheral clock"]
10423 pub const PER: Self = Self(0x04);
12021 } 10424 }
12022 #[doc = "stream x FIFO control register"]
12023 #[repr(transparent)] 10425 #[repr(transparent)]
12024 #[derive(Copy, Clone, Eq, PartialEq)] 10426 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12025 pub struct Fcr(pub u32); 10427 pub struct Divp1en(pub u8);
12026 impl Fcr { 10428 impl Divp1en {
12027 #[doc = "FIFO threshold selection"] 10429 #[doc = "Clock ouput is disabled"]
12028 pub const fn fth(&self) -> super::vals::Fth { 10430 pub const DISABLED: Self = Self(0);
12029 let val = (self.0 >> 0usize) & 0x03; 10431 #[doc = "Clock output is enabled"]
12030 super::vals::Fth(val as u8) 10432 pub const ENABLED: Self = Self(0x01);
12031 }
12032 #[doc = "FIFO threshold selection"]
12033 pub fn set_fth(&mut self, val: super::vals::Fth) {
12034 self.0 = (self.0 & !(0x03 << 0usize)) | (((val.0 as u32) & 0x03) << 0usize);
12035 }
12036 #[doc = "Direct mode disable"]
12037 pub const fn dmdis(&self) -> super::vals::Dmdis {
12038 let val = (self.0 >> 2usize) & 0x01;
12039 super::vals::Dmdis(val as u8)
12040 }
12041 #[doc = "Direct mode disable"]
12042 pub fn set_dmdis(&mut self, val: super::vals::Dmdis) {
12043 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
12044 }
12045 #[doc = "FIFO status"]
12046 pub const fn fs(&self) -> super::vals::Fs {
12047 let val = (self.0 >> 3usize) & 0x07;
12048 super::vals::Fs(val as u8)
12049 }
12050 #[doc = "FIFO status"]
12051 pub fn set_fs(&mut self, val: super::vals::Fs) {
12052 self.0 = (self.0 & !(0x07 << 3usize)) | (((val.0 as u32) & 0x07) << 3usize);
12053 }
12054 #[doc = "FIFO error interrupt enable"]
12055 pub const fn feie(&self) -> bool {
12056 let val = (self.0 >> 7usize) & 0x01;
12057 val != 0
12058 }
12059 #[doc = "FIFO error interrupt enable"]
12060 pub fn set_feie(&mut self, val: bool) {
12061 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
12062 }
12063 } 10433 }
12064 impl Default for Fcr { 10434 #[repr(transparent)]
12065 fn default() -> Fcr { 10435 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12066 Fcr(0) 10436 pub struct C1Apb4lpenrSyscfglpen(pub u8);
12067 } 10437 impl C1Apb4lpenrSyscfglpen {
10438 #[doc = "The selected clock is disabled during csleep mode"]
10439 pub const DISABLED: Self = Self(0);
10440 #[doc = "The selected clock is enabled during csleep mode"]
10441 pub const ENABLED: Self = Self(0x01);
12068 } 10442 }
12069 #[doc = "interrupt register"]
12070 #[repr(transparent)] 10443 #[repr(transparent)]
12071 #[derive(Copy, Clone, Eq, PartialEq)] 10444 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12072 pub struct Ixr(pub u32); 10445 pub struct Sw(pub u8);
12073 impl Ixr { 10446 impl Sw {
12074 #[doc = "Stream x FIFO error interrupt flag (x=3..0)"] 10447 #[doc = "HSI selected as system clock"]
12075 pub fn feif(&self, n: usize) -> bool { 10448 pub const HSI: Self = Self(0);
12076 assert!(n < 4usize); 10449 #[doc = "CSI selected as system clock"]
12077 let offs = 0usize + ([0usize, 6usize, 16usize, 22usize][n] as usize); 10450 pub const CSI: Self = Self(0x01);
12078 let val = (self.0 >> offs) & 0x01; 10451 #[doc = "HSE selected as system clock"]
12079 val != 0 10452 pub const HSE: Self = Self(0x02);
12080 } 10453 #[doc = "PLL1 selected as system clock"]
12081 #[doc = "Stream x FIFO error interrupt flag (x=3..0)"] 10454 pub const PLL1: Self = Self(0x03);
12082 pub fn set_feif(&mut self, n: usize, val: bool) {
12083 assert!(n < 4usize);
12084 let offs = 0usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
12085 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
12086 }
12087 #[doc = "Stream x direct mode error interrupt flag (x=3..0)"]
12088 pub fn dmeif(&self, n: usize) -> bool {
12089 assert!(n < 4usize);
12090 let offs = 2usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
12091 let val = (self.0 >> offs) & 0x01;
12092 val != 0
12093 }
12094 #[doc = "Stream x direct mode error interrupt flag (x=3..0)"]
12095 pub fn set_dmeif(&mut self, n: usize, val: bool) {
12096 assert!(n < 4usize);
12097 let offs = 2usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
12098 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
12099 }
12100 #[doc = "Stream x transfer error interrupt flag (x=3..0)"]
12101 pub fn teif(&self, n: usize) -> bool {
12102 assert!(n < 4usize);
12103 let offs = 3usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
12104 let val = (self.0 >> offs) & 0x01;
12105 val != 0
12106 }
12107 #[doc = "Stream x transfer error interrupt flag (x=3..0)"]
12108 pub fn set_teif(&mut self, n: usize, val: bool) {
12109 assert!(n < 4usize);
12110 let offs = 3usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
12111 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
12112 }
12113 #[doc = "Stream x half transfer interrupt flag (x=3..0)"]
12114 pub fn htif(&self, n: usize) -> bool {
12115 assert!(n < 4usize);
12116 let offs = 4usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
12117 let val = (self.0 >> offs) & 0x01;
12118 val != 0
12119 }
12120 #[doc = "Stream x half transfer interrupt flag (x=3..0)"]
12121 pub fn set_htif(&mut self, n: usize, val: bool) {
12122 assert!(n < 4usize);
12123 let offs = 4usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
12124 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
12125 }
12126 #[doc = "Stream x transfer complete interrupt flag (x = 3..0)"]
12127 pub fn tcif(&self, n: usize) -> bool {
12128 assert!(n < 4usize);
12129 let offs = 5usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
12130 let val = (self.0 >> offs) & 0x01;
12131 val != 0
12132 }
12133 #[doc = "Stream x transfer complete interrupt flag (x = 3..0)"]
12134 pub fn set_tcif(&mut self, n: usize, val: bool) {
12135 assert!(n < 4usize);
12136 let offs = 5usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
12137 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
12138 }
12139 } 10455 }
12140 impl Default for Ixr { 10456 #[repr(transparent)]
12141 fn default() -> Ixr { 10457 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12142 Ixr(0) 10458 pub struct Sai1sel(pub u8);
12143 } 10459 impl Sai1sel {
10460 #[doc = "pll1_q selected as peripheral clock"]
10461 pub const PLL1_Q: Self = Self(0);
10462 #[doc = "pll2_p selected as peripheral clock"]
10463 pub const PLL2_P: Self = Self(0x01);
10464 #[doc = "pll3_p selected as peripheral clock"]
10465 pub const PLL3_P: Self = Self(0x02);
10466 #[doc = "I2S_CKIN selected as peripheral clock"]
10467 pub const I2S_CKIN: Self = Self(0x03);
10468 #[doc = "PER selected as peripheral clock"]
10469 pub const PER: Self = Self(0x04);
12144 } 10470 }
12145 }
12146 pub mod vals {
12147 use crate::generic::*;
12148 #[repr(transparent)] 10471 #[repr(transparent)]
12149 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10472 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12150 pub struct Dbm(pub u8); 10473 pub struct C1Ahb3lpenrMdmalpen(pub u8);
12151 impl Dbm { 10474 impl C1Ahb3lpenrMdmalpen {
12152 #[doc = "No buffer switching at the end of transfer"] 10475 #[doc = "The selected clock is disabled during csleep mode"]
12153 pub const DISABLED: Self = Self(0); 10476 pub const DISABLED: Self = Self(0);
12154 #[doc = "Memory target switched at the end of the DMA transfer"] 10477 #[doc = "The selected clock is enabled during csleep mode"]
12155 pub const ENABLED: Self = Self(0x01); 10478 pub const ENABLED: Self = Self(0x01);
12156 } 10479 }
12157 #[repr(transparent)] 10480 #[repr(transparent)]
12158 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10481 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12159 pub struct Dmdis(pub u8); 10482 pub struct Lsirdyie(pub u8);
12160 impl Dmdis { 10483 impl Lsirdyie {
12161 #[doc = "Direct mode is enabled"] 10484 #[doc = "Interrupt disabled"]
12162 pub const ENABLED: Self = Self(0); 10485 pub const DISABLED: Self = Self(0);
12163 #[doc = "Direct mode is disabled"] 10486 #[doc = "Interrupt enabled"]
12164 pub const DISABLED: Self = Self(0x01); 10487 pub const ENABLED: Self = Self(0x01);
12165 } 10488 }
12166 #[repr(transparent)] 10489 #[repr(transparent)]
12167 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10490 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12168 pub struct Burst(pub u8); 10491 pub struct Lsedrv(pub u8);
12169 impl Burst { 10492 impl Lsedrv {
12170 #[doc = "Single transfer"] 10493 #[doc = "Lowest LSE oscillator driving capability"]
12171 pub const SINGLE: Self = Self(0); 10494 pub const LOWEST: Self = Self(0);
12172 #[doc = "Incremental burst of 4 beats"] 10495 #[doc = "Medium low LSE oscillator driving capability"]
12173 pub const INCR4: Self = Self(0x01); 10496 pub const MEDIUMLOW: Self = Self(0x01);
12174 #[doc = "Incremental burst of 8 beats"] 10497 #[doc = "Medium high LSE oscillator driving capability"]
12175 pub const INCR8: Self = Self(0x02); 10498 pub const MEDIUMHIGH: Self = Self(0x02);
12176 #[doc = "Incremental burst of 16 beats"] 10499 #[doc = "Highest LSE oscillator driving capability"]
12177 pub const INCR16: Self = Self(0x03); 10500 pub const HIGHEST: Self = Self(0x03);
12178 } 10501 }
12179 #[repr(transparent)] 10502 #[repr(transparent)]
12180 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10503 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12181 pub struct Pl(pub u8); 10504 pub struct Rtcen(pub u8);
12182 impl Pl { 10505 impl Rtcen {
12183 #[doc = "Low"] 10506 #[doc = "RTC clock disabled"]
12184 pub const LOW: Self = Self(0); 10507 pub const DISABLED: Self = Self(0);
12185 #[doc = "Medium"] 10508 #[doc = "RTC clock enabled"]
12186 pub const MEDIUM: Self = Self(0x01); 10509 pub const ENABLED: Self = Self(0x01);
12187 #[doc = "High"]
12188 pub const HIGH: Self = Self(0x02);
12189 #[doc = "Very high"]
12190 pub const VERYHIGH: Self = Self(0x03);
12191 } 10510 }
12192 #[repr(transparent)] 10511 #[repr(transparent)]
12193 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10512 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12194 pub struct Pincos(pub u8); 10513 pub struct Adcsel(pub u8);
12195 impl Pincos { 10514 impl Adcsel {
12196 #[doc = "The offset size for the peripheral address calculation is linked to the PSIZE"] 10515 #[doc = "pll2_p selected as peripheral clock"]
12197 pub const PSIZE: Self = Self(0); 10516 pub const PLL2_P: Self = Self(0);
12198 #[doc = "The offset size for the peripheral address calculation is fixed to 4 (32-bit alignment)"] 10517 #[doc = "pll3_r selected as peripheral clock"]
12199 pub const FIXED4: Self = Self(0x01); 10518 pub const PLL3_R: Self = Self(0x01);
10519 #[doc = "PER selected as peripheral clock"]
10520 pub const PER: Self = Self(0x02);
12200 } 10521 }
12201 #[repr(transparent)] 10522 #[repr(transparent)]
12202 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10523 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12203 pub struct Inc(pub u8); 10524 pub struct Lsecssdr(pub u8);
12204 impl Inc { 10525 impl Lsecssdr {
12205 #[doc = "Address pointer is fixed"] 10526 #[doc = "No failure detected on 32 kHz oscillator"]
12206 pub const FIXED: Self = Self(0); 10527 pub const NOFAILURE: Self = Self(0);
12207 #[doc = "Address pointer is incremented after each data transfer"] 10528 #[doc = "Failure detected on 32 kHz oscillator"]
12208 pub const INCREMENTED: Self = Self(0x01); 10529 pub const FAILURE: Self = Self(0x01);
12209 } 10530 }
12210 #[repr(transparent)] 10531 #[repr(transparent)]
12211 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10532 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12212 pub struct Fs(pub u8); 10533 pub struct Syscfgrst(pub u8);
12213 impl Fs { 10534 impl Syscfgrst {
12214 #[doc = "0 < fifo_level < 1/4"] 10535 #[doc = "Reset the selected module"]
12215 pub const QUARTER1: Self = Self(0); 10536 pub const RESET: Self = Self(0x01);
12216 #[doc = "1/4 <= fifo_level < 1/2"]
12217 pub const QUARTER2: Self = Self(0x01);
12218 #[doc = "1/2 <= fifo_level < 3/4"]
12219 pub const QUARTER3: Self = Self(0x02);
12220 #[doc = "3/4 <= fifo_level < full"]
12221 pub const QUARTER4: Self = Self(0x03);
12222 #[doc = "FIFO is empty"]
12223 pub const EMPTY: Self = Self(0x04);
12224 #[doc = "FIFO is full"]
12225 pub const FULL: Self = Self(0x05);
12226 } 10537 }
12227 #[repr(transparent)] 10538 #[repr(transparent)]
12228 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10539 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12229 pub struct Size(pub u8); 10540 pub struct Camitfrst(pub u8);
12230 impl Size { 10541 impl Camitfrst {
12231 #[doc = "Byte (8-bit)"] 10542 #[doc = "Reset the selected module"]
12232 pub const BITS8: Self = Self(0); 10543 pub const RESET: Self = Self(0x01);
12233 #[doc = "Half-word (16-bit)"]
12234 pub const BITS16: Self = Self(0x01);
12235 #[doc = "Word (32-bit)"]
12236 pub const BITS32: Self = Self(0x02);
12237 } 10544 }
12238 #[repr(transparent)] 10545 #[repr(transparent)]
12239 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10546 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12240 pub struct Pfctrl(pub u8); 10547 pub struct Lpuart1sel(pub u8);
12241 impl Pfctrl { 10548 impl Lpuart1sel {
12242 #[doc = "The DMA is the flow controller"] 10549 #[doc = "rcc_pclk_d3 selected as peripheral clock"]
12243 pub const DMA: Self = Self(0); 10550 pub const RCC_PCLK_D3: Self = Self(0);
12244 #[doc = "The peripheral is the flow controller"] 10551 #[doc = "pll2_q selected as peripheral clock"]
12245 pub const PERIPHERAL: Self = Self(0x01); 10552 pub const PLL2_Q: Self = Self(0x01);
10553 #[doc = "pll3_q selected as peripheral clock"]
10554 pub const PLL3_Q: Self = Self(0x02);
10555 #[doc = "hsi_ker selected as peripheral clock"]
10556 pub const HSI_KER: Self = Self(0x03);
10557 #[doc = "csi_ker selected as peripheral clock"]
10558 pub const CSI_KER: Self = Self(0x04);
10559 #[doc = "LSE selected as peripheral clock"]
10560 pub const LSE: Self = Self(0x05);
12246 } 10561 }
12247 #[repr(transparent)] 10562 #[repr(transparent)]
12248 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10563 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12249 pub struct Ct(pub u8); 10564 pub struct Usbsel(pub u8);
12250 impl Ct { 10565 impl Usbsel {
12251 #[doc = "The current target memory is Memory 0"] 10566 #[doc = "Disable the kernel clock"]
12252 pub const MEMORY0: Self = Self(0); 10567 pub const DISABLE: Self = Self(0);
12253 #[doc = "The current target memory is Memory 1"] 10568 #[doc = "pll1_q selected as peripheral clock"]
12254 pub const MEMORY1: Self = Self(0x01); 10569 pub const PLL1_Q: Self = Self(0x01);
10570 #[doc = "pll3_q selected as peripheral clock"]
10571 pub const PLL3_Q: Self = Self(0x02);
10572 #[doc = "HSI48 selected as peripheral clock"]
10573 pub const HSI48: Self = Self(0x03);
12255 } 10574 }
12256 #[repr(transparent)] 10575 #[repr(transparent)]
12257 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10576 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12258 pub struct Fth(pub u8); 10577 pub struct C1Ahb2lpenrDcmilpen(pub u8);
12259 impl Fth { 10578 impl C1Ahb2lpenrDcmilpen {
12260 #[doc = "1/4 full FIFO"] 10579 #[doc = "The selected clock is disabled during csleep mode"]
12261 pub const QUARTER: Self = Self(0); 10580 pub const DISABLED: Self = Self(0);
12262 #[doc = "1/2 full FIFO"] 10581 #[doc = "The selected clock is enabled during csleep mode"]
12263 pub const HALF: Self = Self(0x01); 10582 pub const ENABLED: Self = Self(0x01);
12264 #[doc = "3/4 full FIFO"]
12265 pub const THREEQUARTERS: Self = Self(0x02);
12266 #[doc = "Full FIFO"]
12267 pub const FULL: Self = Self(0x03);
12268 } 10583 }
12269 #[repr(transparent)] 10584 #[repr(transparent)]
12270 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10585 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12271 pub struct Dir(pub u8); 10586 pub struct Stopwuck(pub u8);
12272 impl Dir { 10587 impl Stopwuck {
12273 #[doc = "Peripheral-to-memory"] 10588 #[doc = "HSI selected as wake up clock from system Stop"]
12274 pub const PERIPHERALTOMEMORY: Self = Self(0); 10589 pub const HSI: Self = Self(0);
12275 #[doc = "Memory-to-peripheral"] 10590 #[doc = "CSI selected as wake up clock from system Stop"]
12276 pub const MEMORYTOPERIPHERAL: Self = Self(0x01); 10591 pub const CSI: Self = Self(0x01);
12277 #[doc = "Memory-to-memory"]
12278 pub const MEMORYTOMEMORY: Self = Self(0x02);
12279 } 10592 }
12280 #[repr(transparent)] 10593 #[repr(transparent)]
12281 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10594 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12282 pub struct Circ(pub u8); 10595 pub struct Lsion(pub u8);
12283 impl Circ { 10596 impl Lsion {
12284 #[doc = "Circular mode disabled"] 10597 #[doc = "LSI oscillator Off"]
10598 pub const OFF: Self = Self(0);
10599 #[doc = "LSI oscillator On"]
10600 pub const ON: Self = Self(0x01);
10601 }
10602 #[repr(transparent)]
10603 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
10604 pub struct Fdcansel(pub u8);
10605 impl Fdcansel {
10606 #[doc = "HSE selected as peripheral clock"]
10607 pub const HSE: Self = Self(0);
10608 #[doc = "pll1_q selected as peripheral clock"]
10609 pub const PLL1_Q: Self = Self(0x01);
10610 #[doc = "pll2_q selected as peripheral clock"]
10611 pub const PLL2_Q: Self = Self(0x02);
10612 }
10613 #[repr(transparent)]
10614 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
10615 pub struct Apb1hlpenrCrslpen(pub u8);
10616 impl Apb1hlpenrCrslpen {
10617 #[doc = "The selected clock is disabled during csleep mode"]
12285 pub const DISABLED: Self = Self(0); 10618 pub const DISABLED: Self = Self(0);
12286 #[doc = "Circular mode enabled"] 10619 #[doc = "The selected clock is enabled during csleep mode"]
12287 pub const ENABLED: Self = Self(0x01); 10620 pub const ENABLED: Self = Self(0x01);
12288 } 10621 }
12289 } 10622 #[repr(transparent)]
12290} 10623 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12291pub mod spi_v2 { 10624 pub struct C1Apb2lpenrTim1lpen(pub u8);
12292 use crate::generic::*; 10625 impl C1Apb2lpenrTim1lpen {
12293 #[doc = "Serial peripheral interface"] 10626 #[doc = "The selected clock is disabled during csleep mode"]
12294 #[derive(Copy, Clone)] 10627 pub const DISABLED: Self = Self(0);
12295 pub struct Spi(pub *mut u8); 10628 #[doc = "The selected clock is enabled during csleep mode"]
12296 unsafe impl Send for Spi {} 10629 pub const ENABLED: Self = Self(0x01);
12297 unsafe impl Sync for Spi {}
12298 impl Spi {
12299 #[doc = "control register 1"]
12300 pub fn cr1(self) -> Reg<regs::Cr1, RW> {
12301 unsafe { Reg::from_ptr(self.0.add(0usize)) }
12302 } 10630 }
12303 #[doc = "control register 2"] 10631 #[repr(transparent)]
12304 pub fn cr2(self) -> Reg<regs::Cr2, RW> { 10632 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12305 unsafe { Reg::from_ptr(self.0.add(4usize)) } 10633 pub struct Ahb4enrGpioaen(pub u8);
10634 impl Ahb4enrGpioaen {
10635 #[doc = "The selected clock is disabled"]
10636 pub const DISABLED: Self = Self(0);
10637 #[doc = "The selected clock is enabled"]
10638 pub const ENABLED: Self = Self(0x01);
12306 } 10639 }
12307 #[doc = "status register"] 10640 #[repr(transparent)]
12308 pub fn sr(self) -> Reg<regs::Sr, RW> { 10641 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12309 unsafe { Reg::from_ptr(self.0.add(8usize)) } 10642 pub struct C1Ahb1lpenrDma1lpen(pub u8);
10643 impl C1Ahb1lpenrDma1lpen {
10644 #[doc = "The selected clock is disabled during csleep mode"]
10645 pub const DISABLED: Self = Self(0);
10646 #[doc = "The selected clock is enabled during csleep mode"]
10647 pub const ENABLED: Self = Self(0x01);
12310 } 10648 }
12311 #[doc = "data register"] 10649 #[repr(transparent)]
12312 pub fn dr(self) -> Reg<regs::Dr, RW> { 10650 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12313 unsafe { Reg::from_ptr(self.0.add(12usize)) } 10651 pub struct C1Apb4enrSyscfgen(pub u8);
10652 impl C1Apb4enrSyscfgen {
10653 #[doc = "The selected clock is disabled"]
10654 pub const DISABLED: Self = Self(0);
10655 #[doc = "The selected clock is enabled"]
10656 pub const ENABLED: Self = Self(0x01);
12314 } 10657 }
12315 #[doc = "CRC polynomial register"] 10658 #[repr(transparent)]
12316 pub fn crcpr(self) -> Reg<regs::Crcpr, RW> { 10659 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12317 unsafe { Reg::from_ptr(self.0.add(16usize)) } 10660 pub struct Apb3enrLtdcen(pub u8);
10661 impl Apb3enrLtdcen {
10662 #[doc = "The selected clock is disabled"]
10663 pub const DISABLED: Self = Self(0);
10664 #[doc = "The selected clock is enabled"]
10665 pub const ENABLED: Self = Self(0x01);
12318 } 10666 }
12319 #[doc = "RX CRC register"] 10667 #[repr(transparent)]
12320 pub fn rxcrcr(self) -> Reg<regs::Rxcrcr, R> { 10668 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12321 unsafe { Reg::from_ptr(self.0.add(20usize)) } 10669 pub struct Tim2rst(pub u8);
10670 impl Tim2rst {
10671 #[doc = "Reset the selected module"]
10672 pub const RESET: Self = Self(0x01);
12322 } 10673 }
12323 #[doc = "TX CRC register"] 10674 #[repr(transparent)]
12324 pub fn txcrcr(self) -> Reg<regs::Txcrcr, R> { 10675 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12325 unsafe { Reg::from_ptr(self.0.add(24usize)) } 10676 pub struct Spi45sel(pub u8);
10677 impl Spi45sel {
10678 #[doc = "APB clock selected as peripheral clock"]
10679 pub const APB: Self = Self(0);
10680 #[doc = "pll2_q selected as peripheral clock"]
10681 pub const PLL2_Q: Self = Self(0x01);
10682 #[doc = "pll3_q selected as peripheral clock"]
10683 pub const PLL3_Q: Self = Self(0x02);
10684 #[doc = "hsi_ker selected as peripheral clock"]
10685 pub const HSI_KER: Self = Self(0x03);
10686 #[doc = "csi_ker selected as peripheral clock"]
10687 pub const CSI_KER: Self = Self(0x04);
10688 #[doc = "HSE selected as peripheral clock"]
10689 pub const HSE: Self = Self(0x05);
12326 } 10690 }
12327 }
12328 pub mod vals {
12329 use crate::generic::*;
12330 #[repr(transparent)] 10691 #[repr(transparent)]
12331 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10692 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12332 pub struct Br(pub u8); 10693 pub struct Pll1vcosel(pub u8);
12333 impl Br { 10694 impl Pll1vcosel {
12334 #[doc = "f_PCLK / 2"] 10695 #[doc = "VCO frequency range 192 to 836 MHz"]
12335 pub const DIV2: Self = Self(0); 10696 pub const WIDEVCO: Self = Self(0);
12336 #[doc = "f_PCLK / 4"] 10697 #[doc = "VCO frequency range 150 to 420 MHz"]
12337 pub const DIV4: Self = Self(0x01); 10698 pub const MEDIUMVCO: Self = Self(0x01);
12338 #[doc = "f_PCLK / 8"]
12339 pub const DIV8: Self = Self(0x02);
12340 #[doc = "f_PCLK / 16"]
12341 pub const DIV16: Self = Self(0x03);
12342 #[doc = "f_PCLK / 32"]
12343 pub const DIV32: Self = Self(0x04);
12344 #[doc = "f_PCLK / 64"]
12345 pub const DIV64: Self = Self(0x05);
12346 #[doc = "f_PCLK / 128"]
12347 pub const DIV128: Self = Self(0x06);
12348 #[doc = "f_PCLK / 256"]
12349 pub const DIV256: Self = Self(0x07);
12350 } 10699 }
12351 #[repr(transparent)] 10700 #[repr(transparent)]
12352 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10701 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12353 pub struct Lsbfirst(pub u8); 10702 pub struct C1Apb1henrCrsen(pub u8);
12354 impl Lsbfirst { 10703 impl C1Apb1henrCrsen {
12355 #[doc = "Data is transmitted/received with the MSB first"] 10704 #[doc = "The selected clock is disabled"]
12356 pub const MSBFIRST: Self = Self(0); 10705 pub const DISABLED: Self = Self(0);
12357 #[doc = "Data is transmitted/received with the LSB first"] 10706 #[doc = "The selected clock is enabled"]
12358 pub const LSBFIRST: Self = Self(0x01); 10707 pub const ENABLED: Self = Self(0x01);
12359 } 10708 }
12360 #[repr(transparent)] 10709 #[repr(transparent)]
12361 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10710 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12362 pub struct LdmaRx(pub u8); 10711 pub struct Swsr(pub u8);
12363 impl LdmaRx { 10712 impl Swsr {
12364 #[doc = "Number of data to transfer for receive is even"] 10713 #[doc = "HSI oscillator used as system clock"]
12365 pub const EVEN: Self = Self(0); 10714 pub const HSI: Self = Self(0);
12366 #[doc = "Number of data to transfer for receive is odd"] 10715 #[doc = "CSI oscillator used as system clock"]
12367 pub const ODD: Self = Self(0x01); 10716 pub const CSI: Self = Self(0x01);
10717 #[doc = "HSE oscillator used as system clock"]
10718 pub const HSE: Self = Self(0x02);
10719 #[doc = "PLL1 used as system clock"]
10720 pub const PLL1: Self = Self(0x03);
12368 } 10721 }
12369 #[repr(transparent)] 10722 #[repr(transparent)]
12370 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10723 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12371 pub struct Cpol(pub u8); 10724 pub struct Lsecsson(pub u8);
12372 impl Cpol { 10725 impl Lsecsson {
12373 #[doc = "CK to 0 when idle"] 10726 #[doc = "Clock security system on 32 kHz oscillator off"]
12374 pub const IDLELOW: Self = Self(0); 10727 pub const SECURITYOFF: Self = Self(0);
12375 #[doc = "CK to 1 when idle"] 10728 #[doc = "Clock security system on 32 kHz oscillator on"]
12376 pub const IDLEHIGH: Self = Self(0x01); 10729 pub const SECURITYON: Self = Self(0x01);
12377 } 10730 }
12378 #[repr(transparent)] 10731 #[repr(transparent)]
12379 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10732 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12380 pub struct Mstr(pub u8); 10733 pub struct Apb1henrCrsen(pub u8);
12381 impl Mstr { 10734 impl Apb1henrCrsen {
12382 #[doc = "Slave configuration"] 10735 #[doc = "The selected clock is disabled"]
12383 pub const SLAVE: Self = Self(0); 10736 pub const DISABLED: Self = Self(0);
12384 #[doc = "Master configuration"] 10737 #[doc = "The selected clock is enabled"]
12385 pub const MASTER: Self = Self(0x01); 10738 pub const ENABLED: Self = Self(0x01);
12386 } 10739 }
12387 #[repr(transparent)] 10740 #[repr(transparent)]
12388 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10741 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12389 pub struct Cpha(pub u8); 10742 pub struct Ahb3lpenrMdmalpen(pub u8);
12390 impl Cpha { 10743 impl Ahb3lpenrMdmalpen {
12391 #[doc = "The first clock transition is the first data capture edge"] 10744 #[doc = "The selected clock is disabled during csleep mode"]
12392 pub const FIRSTEDGE: Self = Self(0); 10745 pub const DISABLED: Self = Self(0);
12393 #[doc = "The second clock transition is the first data capture edge"] 10746 #[doc = "The selected clock is enabled during csleep mode"]
12394 pub const SECONDEDGE: Self = Self(0x01); 10747 pub const ENABLED: Self = Self(0x01);
12395 } 10748 }
12396 #[repr(transparent)] 10749 #[repr(transparent)]
12397 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10750 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12398 pub struct Ftlvlr(pub u8); 10751 pub struct Usart16sel(pub u8);
12399 impl Ftlvlr { 10752 impl Usart16sel {
12400 #[doc = "Tx FIFO Empty"] 10753 #[doc = "rcc_pclk2 selected as peripheral clock"]
12401 pub const EMPTY: Self = Self(0); 10754 pub const RCC_PCLK2: Self = Self(0);
12402 #[doc = "Tx 1/4 FIFO"] 10755 #[doc = "pll2_q selected as peripheral clock"]
12403 pub const QUARTER: Self = Self(0x01); 10756 pub const PLL2_Q: Self = Self(0x01);
12404 #[doc = "Tx 1/2 FIFO"] 10757 #[doc = "pll3_q selected as peripheral clock"]
12405 pub const HALF: Self = Self(0x02); 10758 pub const PLL3_Q: Self = Self(0x02);
12406 #[doc = "Tx FIFO full"] 10759 #[doc = "hsi_ker selected as peripheral clock"]
12407 pub const FULL: Self = Self(0x03); 10760 pub const HSI_KER: Self = Self(0x03);
10761 #[doc = "csi_ker selected as peripheral clock"]
10762 pub const CSI_KER: Self = Self(0x04);
10763 #[doc = "LSE selected as peripheral clock"]
10764 pub const LSE: Self = Self(0x05);
12408 } 10765 }
12409 #[repr(transparent)] 10766 #[repr(transparent)]
12410 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10767 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12411 pub struct Crcl(pub u8); 10768 pub struct Divp1(pub u8);
12412 impl Crcl { 10769 impl Divp1 {
12413 #[doc = "8-bit CRC length"] 10770 #[doc = "pll_p_ck = vco_ck"]
12414 pub const EIGHTBIT: Self = Self(0); 10771 pub const DIV1: Self = Self(0);
12415 #[doc = "16-bit CRC length"] 10772 #[doc = "pll_p_ck = vco_ck / 2"]
12416 pub const SIXTEENBIT: Self = Self(0x01); 10773 pub const DIV2: Self = Self(0x01);
10774 #[doc = "pll_p_ck = vco_ck / 4"]
10775 pub const DIV4: Self = Self(0x03);
10776 #[doc = "pll_p_ck = vco_ck / 6"]
10777 pub const DIV6: Self = Self(0x05);
10778 #[doc = "pll_p_ck = vco_ck / 8"]
10779 pub const DIV8: Self = Self(0x07);
10780 #[doc = "pll_p_ck = vco_ck / 10"]
10781 pub const DIV10: Self = Self(0x09);
10782 #[doc = "pll_p_ck = vco_ck / 12"]
10783 pub const DIV12: Self = Self(0x0b);
10784 #[doc = "pll_p_ck = vco_ck / 14"]
10785 pub const DIV14: Self = Self(0x0d);
10786 #[doc = "pll_p_ck = vco_ck / 16"]
10787 pub const DIV16: Self = Self(0x0f);
10788 #[doc = "pll_p_ck = vco_ck / 18"]
10789 pub const DIV18: Self = Self(0x11);
10790 #[doc = "pll_p_ck = vco_ck / 20"]
10791 pub const DIV20: Self = Self(0x13);
10792 #[doc = "pll_p_ck = vco_ck / 22"]
10793 pub const DIV22: Self = Self(0x15);
10794 #[doc = "pll_p_ck = vco_ck / 24"]
10795 pub const DIV24: Self = Self(0x17);
10796 #[doc = "pll_p_ck = vco_ck / 26"]
10797 pub const DIV26: Self = Self(0x19);
10798 #[doc = "pll_p_ck = vco_ck / 28"]
10799 pub const DIV28: Self = Self(0x1b);
10800 #[doc = "pll_p_ck = vco_ck / 30"]
10801 pub const DIV30: Self = Self(0x1d);
10802 #[doc = "pll_p_ck = vco_ck / 32"]
10803 pub const DIV32: Self = Self(0x1f);
10804 #[doc = "pll_p_ck = vco_ck / 34"]
10805 pub const DIV34: Self = Self(0x21);
10806 #[doc = "pll_p_ck = vco_ck / 36"]
10807 pub const DIV36: Self = Self(0x23);
10808 #[doc = "pll_p_ck = vco_ck / 38"]
10809 pub const DIV38: Self = Self(0x25);
10810 #[doc = "pll_p_ck = vco_ck / 40"]
10811 pub const DIV40: Self = Self(0x27);
10812 #[doc = "pll_p_ck = vco_ck / 42"]
10813 pub const DIV42: Self = Self(0x29);
10814 #[doc = "pll_p_ck = vco_ck / 44"]
10815 pub const DIV44: Self = Self(0x2b);
10816 #[doc = "pll_p_ck = vco_ck / 46"]
10817 pub const DIV46: Self = Self(0x2d);
10818 #[doc = "pll_p_ck = vco_ck / 48"]
10819 pub const DIV48: Self = Self(0x2f);
10820 #[doc = "pll_p_ck = vco_ck / 50"]
10821 pub const DIV50: Self = Self(0x31);
10822 #[doc = "pll_p_ck = vco_ck / 52"]
10823 pub const DIV52: Self = Self(0x33);
10824 #[doc = "pll_p_ck = vco_ck / 54"]
10825 pub const DIV54: Self = Self(0x35);
10826 #[doc = "pll_p_ck = vco_ck / 56"]
10827 pub const DIV56: Self = Self(0x37);
10828 #[doc = "pll_p_ck = vco_ck / 58"]
10829 pub const DIV58: Self = Self(0x39);
10830 #[doc = "pll_p_ck = vco_ck / 60"]
10831 pub const DIV60: Self = Self(0x3b);
10832 #[doc = "pll_p_ck = vco_ck / 62"]
10833 pub const DIV62: Self = Self(0x3d);
10834 #[doc = "pll_p_ck = vco_ck / 64"]
10835 pub const DIV64: Self = Self(0x3f);
10836 #[doc = "pll_p_ck = vco_ck / 66"]
10837 pub const DIV66: Self = Self(0x41);
10838 #[doc = "pll_p_ck = vco_ck / 68"]
10839 pub const DIV68: Self = Self(0x43);
10840 #[doc = "pll_p_ck = vco_ck / 70"]
10841 pub const DIV70: Self = Self(0x45);
10842 #[doc = "pll_p_ck = vco_ck / 72"]
10843 pub const DIV72: Self = Self(0x47);
10844 #[doc = "pll_p_ck = vco_ck / 74"]
10845 pub const DIV74: Self = Self(0x49);
10846 #[doc = "pll_p_ck = vco_ck / 76"]
10847 pub const DIV76: Self = Self(0x4b);
10848 #[doc = "pll_p_ck = vco_ck / 78"]
10849 pub const DIV78: Self = Self(0x4d);
10850 #[doc = "pll_p_ck = vco_ck / 80"]
10851 pub const DIV80: Self = Self(0x4f);
10852 #[doc = "pll_p_ck = vco_ck / 82"]
10853 pub const DIV82: Self = Self(0x51);
10854 #[doc = "pll_p_ck = vco_ck / 84"]
10855 pub const DIV84: Self = Self(0x53);
10856 #[doc = "pll_p_ck = vco_ck / 86"]
10857 pub const DIV86: Self = Self(0x55);
10858 #[doc = "pll_p_ck = vco_ck / 88"]
10859 pub const DIV88: Self = Self(0x57);
10860 #[doc = "pll_p_ck = vco_ck / 90"]
10861 pub const DIV90: Self = Self(0x59);
10862 #[doc = "pll_p_ck = vco_ck / 92"]
10863 pub const DIV92: Self = Self(0x5b);
10864 #[doc = "pll_p_ck = vco_ck / 94"]
10865 pub const DIV94: Self = Self(0x5d);
10866 #[doc = "pll_p_ck = vco_ck / 96"]
10867 pub const DIV96: Self = Self(0x5f);
10868 #[doc = "pll_p_ck = vco_ck / 98"]
10869 pub const DIV98: Self = Self(0x61);
10870 #[doc = "pll_p_ck = vco_ck / 100"]
10871 pub const DIV100: Self = Self(0x63);
10872 #[doc = "pll_p_ck = vco_ck / 102"]
10873 pub const DIV102: Self = Self(0x65);
10874 #[doc = "pll_p_ck = vco_ck / 104"]
10875 pub const DIV104: Self = Self(0x67);
10876 #[doc = "pll_p_ck = vco_ck / 106"]
10877 pub const DIV106: Self = Self(0x69);
10878 #[doc = "pll_p_ck = vco_ck / 108"]
10879 pub const DIV108: Self = Self(0x6b);
10880 #[doc = "pll_p_ck = vco_ck / 110"]
10881 pub const DIV110: Self = Self(0x6d);
10882 #[doc = "pll_p_ck = vco_ck / 112"]
10883 pub const DIV112: Self = Self(0x6f);
10884 #[doc = "pll_p_ck = vco_ck / 114"]
10885 pub const DIV114: Self = Self(0x71);
10886 #[doc = "pll_p_ck = vco_ck / 116"]
10887 pub const DIV116: Self = Self(0x73);
10888 #[doc = "pll_p_ck = vco_ck / 118"]
10889 pub const DIV118: Self = Self(0x75);
10890 #[doc = "pll_p_ck = vco_ck / 120"]
10891 pub const DIV120: Self = Self(0x77);
10892 #[doc = "pll_p_ck = vco_ck / 122"]
10893 pub const DIV122: Self = Self(0x79);
10894 #[doc = "pll_p_ck = vco_ck / 124"]
10895 pub const DIV124: Self = Self(0x7b);
10896 #[doc = "pll_p_ck = vco_ck / 126"]
10897 pub const DIV126: Self = Self(0x7d);
10898 #[doc = "pll_p_ck = vco_ck / 128"]
10899 pub const DIV128: Self = Self(0x7f);
12417 } 10900 }
12418 #[repr(transparent)] 10901 #[repr(transparent)]
12419 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10902 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12420 pub struct Crcnext(pub u8); 10903 pub struct Pll1rge(pub u8);
12421 impl Crcnext { 10904 impl Pll1rge {
12422 #[doc = "Next transmit value is from Tx buffer"] 10905 #[doc = "Frequency is between 1 and 2 MHz"]
12423 pub const TXBUFFER: Self = Self(0); 10906 pub const RANGE1: Self = Self(0);
12424 #[doc = "Next transmit value is from Tx CRC register"] 10907 #[doc = "Frequency is between 2 and 4 MHz"]
12425 pub const CRC: Self = Self(0x01); 10908 pub const RANGE2: Self = Self(0x01);
10909 #[doc = "Frequency is between 4 and 8 MHz"]
10910 pub const RANGE4: Self = Self(0x02);
10911 #[doc = "Frequency is between 8 and 16 MHz"]
10912 pub const RANGE8: Self = Self(0x03);
12426 } 10913 }
12427 #[repr(transparent)] 10914 #[repr(transparent)]
12428 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10915 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12429 pub struct Frlvlr(pub u8); 10916 pub struct Spdifsel(pub u8);
12430 impl Frlvlr { 10917 impl Spdifsel {
12431 #[doc = "Rx FIFO Empty"] 10918 #[doc = "pll1_q selected as peripheral clock"]
12432 pub const EMPTY: Self = Self(0); 10919 pub const PLL1_Q: Self = Self(0);
12433 #[doc = "Rx 1/4 FIFO"] 10920 #[doc = "pll2_r selected as peripheral clock"]
12434 pub const QUARTER: Self = Self(0x01); 10921 pub const PLL2_R: Self = Self(0x01);
12435 #[doc = "Rx 1/2 FIFO"] 10922 #[doc = "pll3_r selected as peripheral clock"]
12436 pub const HALF: Self = Self(0x02); 10923 pub const PLL3_R: Self = Self(0x02);
12437 #[doc = "Rx FIFO full"] 10924 #[doc = "hsi_ker selected as peripheral clock"]
12438 pub const FULL: Self = Self(0x03); 10925 pub const HSI_KER: Self = Self(0x03);
12439 } 10926 }
12440 #[repr(transparent)] 10927 #[repr(transparent)]
12441 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10928 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12442 pub struct Bidioe(pub u8); 10929 pub struct Dma1rst(pub u8);
12443 impl Bidioe { 10930 impl Dma1rst {
12444 #[doc = "Output disabled (receive-only mode)"] 10931 #[doc = "Reset the selected module"]
12445 pub const OUTPUTDISABLED: Self = Self(0); 10932 pub const RESET: Self = Self(0x01);
12446 #[doc = "Output enabled (transmit-only mode)"]
12447 pub const OUTPUTENABLED: Self = Self(0x01);
12448 } 10933 }
12449 #[repr(transparent)] 10934 #[repr(transparent)]
12450 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10935 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12451 pub struct Rxonly(pub u8); 10936 pub struct D2ppre1(pub u8);
12452 impl Rxonly { 10937 impl D2ppre1 {
12453 #[doc = "Full duplex (Transmit and receive)"] 10938 #[doc = "rcc_hclk not divided"]
12454 pub const FULLDUPLEX: Self = Self(0); 10939 pub const DIV1: Self = Self(0);
12455 #[doc = "Output disabled (Receive-only mode)"] 10940 #[doc = "rcc_hclk divided by 2"]
12456 pub const OUTPUTDISABLED: Self = Self(0x01); 10941 pub const DIV2: Self = Self(0x04);
10942 #[doc = "rcc_hclk divided by 4"]
10943 pub const DIV4: Self = Self(0x05);
10944 #[doc = "rcc_hclk divided by 8"]
10945 pub const DIV8: Self = Self(0x06);
10946 #[doc = "rcc_hclk divided by 16"]
10947 pub const DIV16: Self = Self(0x07);
12457 } 10948 }
12458 #[repr(transparent)] 10949 #[repr(transparent)]
12459 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10950 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12460 pub struct Frf(pub u8); 10951 pub struct Ckpersel(pub u8);
12461 impl Frf { 10952 impl Ckpersel {
12462 #[doc = "SPI Motorola mode"] 10953 #[doc = "HSI selected as peripheral clock"]
12463 pub const MOTOROLA: Self = Self(0); 10954 pub const HSI: Self = Self(0);
12464 #[doc = "SPI TI mode"] 10955 #[doc = "CSI selected as peripheral clock"]
12465 pub const TI: Self = Self(0x01); 10956 pub const CSI: Self = Self(0x01);
10957 #[doc = "HSE selected as peripheral clock"]
10958 pub const HSE: Self = Self(0x02);
12466 } 10959 }
12467 #[repr(transparent)] 10960 #[repr(transparent)]
12468 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10961 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12469 pub struct Ds(pub u8); 10962 pub struct Ahb1enrDma1en(pub u8);
12470 impl Ds { 10963 impl Ahb1enrDma1en {
12471 #[doc = "4-bit"] 10964 #[doc = "The selected clock is disabled"]
12472 pub const FOURBIT: Self = Self(0x03); 10965 pub const DISABLED: Self = Self(0);
12473 #[doc = "5-bit"] 10966 #[doc = "The selected clock is enabled"]
12474 pub const FIVEBIT: Self = Self(0x04); 10967 pub const ENABLED: Self = Self(0x01);
12475 #[doc = "6-bit"]
12476 pub const SIXBIT: Self = Self(0x05);
12477 #[doc = "7-bit"]
12478 pub const SEVENBIT: Self = Self(0x06);
12479 #[doc = "8-bit"]
12480 pub const EIGHTBIT: Self = Self(0x07);
12481 #[doc = "9-bit"]
12482 pub const NINEBIT: Self = Self(0x08);
12483 #[doc = "10-bit"]
12484 pub const TENBIT: Self = Self(0x09);
12485 #[doc = "11-bit"]
12486 pub const ELEVENBIT: Self = Self(0x0a);
12487 #[doc = "12-bit"]
12488 pub const TWELVEBIT: Self = Self(0x0b);
12489 #[doc = "13-bit"]
12490 pub const THIRTEENBIT: Self = Self(0x0c);
12491 #[doc = "14-bit"]
12492 pub const FOURTEENBIT: Self = Self(0x0d);
12493 #[doc = "15-bit"]
12494 pub const FIFTEENBIT: Self = Self(0x0e);
12495 #[doc = "16-bit"]
12496 pub const SIXTEENBIT: Self = Self(0x0f);
12497 } 10968 }
12498 #[repr(transparent)] 10969 #[repr(transparent)]
12499 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10970 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12500 pub struct Bidimode(pub u8); 10971 pub struct Swpsel(pub u8);
12501 impl Bidimode { 10972 impl Swpsel {
12502 #[doc = "2-line unidirectional data mode selected"] 10973 #[doc = "pclk selected as peripheral clock"]
12503 pub const UNIDIRECTIONAL: Self = Self(0); 10974 pub const PCLK: Self = Self(0);
12504 #[doc = "1-line bidirectional data mode selected"] 10975 #[doc = "hsi_ker selected as peripheral clock"]
12505 pub const BIDIRECTIONAL: Self = Self(0x01); 10976 pub const HSI_KER: Self = Self(0x01);
12506 } 10977 }
12507 #[repr(transparent)] 10978 #[repr(transparent)]
12508 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10979 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12509 pub struct Frxth(pub u8); 10980 pub struct Lseon(pub u8);
12510 impl Frxth { 10981 impl Lseon {
12511 #[doc = "RXNE event is generated if the FIFO level is greater than or equal to 1/2 (16-bit)"] 10982 #[doc = "LSE oscillator Off"]
12512 pub const HALF: Self = Self(0); 10983 pub const OFF: Self = Self(0);
12513 #[doc = "RXNE event is generated if the FIFO level is greater than or equal to 1/4 (8-bit)"] 10984 #[doc = "LSE oscillator On"]
12514 pub const QUARTER: Self = Self(0x01); 10985 pub const ON: Self = Self(0x01);
12515 } 10986 }
12516 #[repr(transparent)] 10987 #[repr(transparent)]
12517 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10988 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12518 pub struct LdmaTx(pub u8); 10989 pub struct C1Ahb4lpenrGpioalpen(pub u8);
12519 impl LdmaTx { 10990 impl C1Ahb4lpenrGpioalpen {
12520 #[doc = "Number of data to transfer for transmit is even"] 10991 #[doc = "The selected clock is disabled during csleep mode"]
12521 pub const EVEN: Self = Self(0); 10992 pub const DISABLED: Self = Self(0);
12522 #[doc = "Number of data to transfer for transmit is odd"] 10993 #[doc = "The selected clock is enabled during csleep mode"]
12523 pub const ODD: Self = Self(0x01); 10994 pub const ENABLED: Self = Self(0x01);
12524 } 10995 }
12525 #[repr(transparent)] 10996 #[repr(transparent)]
12526 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 10997 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12527 pub struct Frer(pub u8); 10998 pub struct Cecsel(pub u8);
12528 impl Frer { 10999 impl Cecsel {
12529 #[doc = "No frame format error"] 11000 #[doc = "LSE selected as peripheral clock"]
12530 pub const NOERROR: Self = Self(0); 11001 pub const LSE: Self = Self(0);
12531 #[doc = "A frame format error occurred"] 11002 #[doc = "LSI selected as peripheral clock"]
12532 pub const ERROR: Self = Self(0x01); 11003 pub const LSI: Self = Self(0x01);
11004 #[doc = "csi_ker selected as peripheral clock"]
11005 pub const CSI_KER: Self = Self(0x02);
12533 } 11006 }
12534 }
12535 pub mod regs {
12536 use crate::generic::*;
12537 #[doc = "data register"]
12538 #[repr(transparent)] 11007 #[repr(transparent)]
12539 #[derive(Copy, Clone, Eq, PartialEq)] 11008 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12540 pub struct Dr(pub u32); 11009 pub struct D3ppre(pub u8);
12541 impl Dr { 11010 impl D3ppre {
12542 #[doc = "Data register"] 11011 #[doc = "rcc_hclk not divided"]
12543 pub const fn dr(&self) -> u16 { 11012 pub const DIV1: Self = Self(0);
12544 let val = (self.0 >> 0usize) & 0xffff; 11013 #[doc = "rcc_hclk divided by 2"]
12545 val as u16 11014 pub const DIV2: Self = Self(0x04);
12546 } 11015 #[doc = "rcc_hclk divided by 4"]
12547 #[doc = "Data register"] 11016 pub const DIV4: Self = Self(0x05);
12548 pub fn set_dr(&mut self, val: u16) { 11017 #[doc = "rcc_hclk divided by 8"]
12549 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize); 11018 pub const DIV8: Self = Self(0x06);
12550 } 11019 #[doc = "rcc_hclk divided by 16"]
11020 pub const DIV16: Self = Self(0x07);
12551 } 11021 }
12552 impl Default for Dr { 11022 #[repr(transparent)]
12553 fn default() -> Dr { 11023 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12554 Dr(0) 11024 pub struct Apb3lpenrLtdclpen(pub u8);
12555 } 11025 impl Apb3lpenrLtdclpen {
11026 #[doc = "The selected clock is disabled during csleep mode"]
11027 pub const DISABLED: Self = Self(0);
11028 #[doc = "The selected clock is enabled during csleep mode"]
11029 pub const ENABLED: Self = Self(0x01);
12556 } 11030 }
12557 #[doc = "control register 2"]
12558 #[repr(transparent)] 11031 #[repr(transparent)]
12559 #[derive(Copy, Clone, Eq, PartialEq)] 11032 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12560 pub struct Cr2(pub u32); 11033 pub struct Lsebyp(pub u8);
12561 impl Cr2 { 11034 impl Lsebyp {
12562 #[doc = "Rx buffer DMA enable"] 11035 #[doc = "LSE crystal oscillator not bypassed"]
12563 pub const fn rxdmaen(&self) -> bool { 11036 pub const NOTBYPASSED: Self = Self(0);
12564 let val = (self.0 >> 0usize) & 0x01; 11037 #[doc = "LSE crystal oscillator bypassed with external clock"]
12565 val != 0 11038 pub const BYPASSED: Self = Self(0x01);
12566 }
12567 #[doc = "Rx buffer DMA enable"]
12568 pub fn set_rxdmaen(&mut self, val: bool) {
12569 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
12570 }
12571 #[doc = "Tx buffer DMA enable"]
12572 pub const fn txdmaen(&self) -> bool {
12573 let val = (self.0 >> 1usize) & 0x01;
12574 val != 0
12575 }
12576 #[doc = "Tx buffer DMA enable"]
12577 pub fn set_txdmaen(&mut self, val: bool) {
12578 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
12579 }
12580 #[doc = "SS output enable"]
12581 pub const fn ssoe(&self) -> bool {
12582 let val = (self.0 >> 2usize) & 0x01;
12583 val != 0
12584 }
12585 #[doc = "SS output enable"]
12586 pub fn set_ssoe(&mut self, val: bool) {
12587 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
12588 }
12589 #[doc = "NSS pulse management"]
12590 pub const fn nssp(&self) -> bool {
12591 let val = (self.0 >> 3usize) & 0x01;
12592 val != 0
12593 }
12594 #[doc = "NSS pulse management"]
12595 pub fn set_nssp(&mut self, val: bool) {
12596 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
12597 }
12598 #[doc = "Frame format"]
12599 pub const fn frf(&self) -> super::vals::Frf {
12600 let val = (self.0 >> 4usize) & 0x01;
12601 super::vals::Frf(val as u8)
12602 }
12603 #[doc = "Frame format"]
12604 pub fn set_frf(&mut self, val: super::vals::Frf) {
12605 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
12606 }
12607 #[doc = "Error interrupt enable"]
12608 pub const fn errie(&self) -> bool {
12609 let val = (self.0 >> 5usize) & 0x01;
12610 val != 0
12611 }
12612 #[doc = "Error interrupt enable"]
12613 pub fn set_errie(&mut self, val: bool) {
12614 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
12615 }
12616 #[doc = "RX buffer not empty interrupt enable"]
12617 pub const fn rxneie(&self) -> bool {
12618 let val = (self.0 >> 6usize) & 0x01;
12619 val != 0
12620 }
12621 #[doc = "RX buffer not empty interrupt enable"]
12622 pub fn set_rxneie(&mut self, val: bool) {
12623 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
12624 }
12625 #[doc = "Tx buffer empty interrupt enable"]
12626 pub const fn txeie(&self) -> bool {
12627 let val = (self.0 >> 7usize) & 0x01;
12628 val != 0
12629 }
12630 #[doc = "Tx buffer empty interrupt enable"]
12631 pub fn set_txeie(&mut self, val: bool) {
12632 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
12633 }
12634 #[doc = "Data size"]
12635 pub const fn ds(&self) -> super::vals::Ds {
12636 let val = (self.0 >> 8usize) & 0x0f;
12637 super::vals::Ds(val as u8)
12638 }
12639 #[doc = "Data size"]
12640 pub fn set_ds(&mut self, val: super::vals::Ds) {
12641 self.0 = (self.0 & !(0x0f << 8usize)) | (((val.0 as u32) & 0x0f) << 8usize);
12642 }
12643 #[doc = "FIFO reception threshold"]
12644 pub const fn frxth(&self) -> super::vals::Frxth {
12645 let val = (self.0 >> 12usize) & 0x01;
12646 super::vals::Frxth(val as u8)
12647 }
12648 #[doc = "FIFO reception threshold"]
12649 pub fn set_frxth(&mut self, val: super::vals::Frxth) {
12650 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
12651 }
12652 #[doc = "Last DMA transfer for reception"]
12653 pub const fn ldma_rx(&self) -> super::vals::LdmaRx {
12654 let val = (self.0 >> 13usize) & 0x01;
12655 super::vals::LdmaRx(val as u8)
12656 }
12657 #[doc = "Last DMA transfer for reception"]
12658 pub fn set_ldma_rx(&mut self, val: super::vals::LdmaRx) {
12659 self.0 = (self.0 & !(0x01 << 13usize)) | (((val.0 as u32) & 0x01) << 13usize);
12660 }
12661 #[doc = "Last DMA transfer for transmission"]
12662 pub const fn ldma_tx(&self) -> super::vals::LdmaTx {
12663 let val = (self.0 >> 14usize) & 0x01;
12664 super::vals::LdmaTx(val as u8)
12665 }
12666 #[doc = "Last DMA transfer for transmission"]
12667 pub fn set_ldma_tx(&mut self, val: super::vals::LdmaTx) {
12668 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
12669 }
12670 } 11039 }
12671 impl Default for Cr2 { 11040 #[repr(transparent)]
12672 fn default() -> Cr2 { 11041 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12673 Cr2(0) 11042 pub struct I2c4sel(pub u8);
12674 } 11043 impl I2c4sel {
11044 #[doc = "rcc_pclk4 selected as peripheral clock"]
11045 pub const RCC_PCLK4: Self = Self(0);
11046 #[doc = "pll3_r selected as peripheral clock"]
11047 pub const PLL3_R: Self = Self(0x01);
11048 #[doc = "hsi_ker selected as peripheral clock"]
11049 pub const HSI_KER: Self = Self(0x02);
11050 #[doc = "csi_ker selected as peripheral clock"]
11051 pub const CSI_KER: Self = Self(0x03);
12675 } 11052 }
12676 #[doc = "control register 1"]
12677 #[repr(transparent)] 11053 #[repr(transparent)]
12678 #[derive(Copy, Clone, Eq, PartialEq)] 11054 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12679 pub struct Cr1(pub u32); 11055 pub struct D1ppre(pub u8);
12680 impl Cr1 { 11056 impl D1ppre {
12681 #[doc = "Clock phase"] 11057 #[doc = "rcc_hclk not divided"]
12682 pub const fn cpha(&self) -> super::vals::Cpha { 11058 pub const DIV1: Self = Self(0);
12683 let val = (self.0 >> 0usize) & 0x01; 11059 #[doc = "rcc_hclk divided by 2"]
12684 super::vals::Cpha(val as u8) 11060 pub const DIV2: Self = Self(0x04);
12685 } 11061 #[doc = "rcc_hclk divided by 4"]
12686 #[doc = "Clock phase"] 11062 pub const DIV4: Self = Self(0x05);
12687 pub fn set_cpha(&mut self, val: super::vals::Cpha) { 11063 #[doc = "rcc_hclk divided by 8"]
12688 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 11064 pub const DIV8: Self = Self(0x06);
12689 } 11065 #[doc = "rcc_hclk divided by 16"]
12690 #[doc = "Clock polarity"] 11066 pub const DIV16: Self = Self(0x07);
12691 pub const fn cpol(&self) -> super::vals::Cpol {
12692 let val = (self.0 >> 1usize) & 0x01;
12693 super::vals::Cpol(val as u8)
12694 }
12695 #[doc = "Clock polarity"]
12696 pub fn set_cpol(&mut self, val: super::vals::Cpol) {
12697 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
12698 }
12699 #[doc = "Master selection"]
12700 pub const fn mstr(&self) -> super::vals::Mstr {
12701 let val = (self.0 >> 2usize) & 0x01;
12702 super::vals::Mstr(val as u8)
12703 }
12704 #[doc = "Master selection"]
12705 pub fn set_mstr(&mut self, val: super::vals::Mstr) {
12706 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
12707 }
12708 #[doc = "Baud rate control"]
12709 pub const fn br(&self) -> super::vals::Br {
12710 let val = (self.0 >> 3usize) & 0x07;
12711 super::vals::Br(val as u8)
12712 }
12713 #[doc = "Baud rate control"]
12714 pub fn set_br(&mut self, val: super::vals::Br) {
12715 self.0 = (self.0 & !(0x07 << 3usize)) | (((val.0 as u32) & 0x07) << 3usize);
12716 }
12717 #[doc = "SPI enable"]
12718 pub const fn spe(&self) -> bool {
12719 let val = (self.0 >> 6usize) & 0x01;
12720 val != 0
12721 }
12722 #[doc = "SPI enable"]
12723 pub fn set_spe(&mut self, val: bool) {
12724 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
12725 }
12726 #[doc = "Frame format"]
12727 pub const fn lsbfirst(&self) -> super::vals::Lsbfirst {
12728 let val = (self.0 >> 7usize) & 0x01;
12729 super::vals::Lsbfirst(val as u8)
12730 }
12731 #[doc = "Frame format"]
12732 pub fn set_lsbfirst(&mut self, val: super::vals::Lsbfirst) {
12733 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
12734 }
12735 #[doc = "Internal slave select"]
12736 pub const fn ssi(&self) -> bool {
12737 let val = (self.0 >> 8usize) & 0x01;
12738 val != 0
12739 }
12740 #[doc = "Internal slave select"]
12741 pub fn set_ssi(&mut self, val: bool) {
12742 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
12743 }
12744 #[doc = "Software slave management"]
12745 pub const fn ssm(&self) -> bool {
12746 let val = (self.0 >> 9usize) & 0x01;
12747 val != 0
12748 }
12749 #[doc = "Software slave management"]
12750 pub fn set_ssm(&mut self, val: bool) {
12751 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
12752 }
12753 #[doc = "Receive only"]
12754 pub const fn rxonly(&self) -> super::vals::Rxonly {
12755 let val = (self.0 >> 10usize) & 0x01;
12756 super::vals::Rxonly(val as u8)
12757 }
12758 #[doc = "Receive only"]
12759 pub fn set_rxonly(&mut self, val: super::vals::Rxonly) {
12760 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
12761 }
12762 #[doc = "CRC length"]
12763 pub const fn crcl(&self) -> super::vals::Crcl {
12764 let val = (self.0 >> 11usize) & 0x01;
12765 super::vals::Crcl(val as u8)
12766 }
12767 #[doc = "CRC length"]
12768 pub fn set_crcl(&mut self, val: super::vals::Crcl) {
12769 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
12770 }
12771 #[doc = "CRC transfer next"]
12772 pub const fn crcnext(&self) -> super::vals::Crcnext {
12773 let val = (self.0 >> 12usize) & 0x01;
12774 super::vals::Crcnext(val as u8)
12775 }
12776 #[doc = "CRC transfer next"]
12777 pub fn set_crcnext(&mut self, val: super::vals::Crcnext) {
12778 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
12779 }
12780 #[doc = "Hardware CRC calculation enable"]
12781 pub const fn crcen(&self) -> bool {
12782 let val = (self.0 >> 13usize) & 0x01;
12783 val != 0
12784 }
12785 #[doc = "Hardware CRC calculation enable"]
12786 pub fn set_crcen(&mut self, val: bool) {
12787 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
12788 }
12789 #[doc = "Output enable in bidirectional mode"]
12790 pub const fn bidioe(&self) -> super::vals::Bidioe {
12791 let val = (self.0 >> 14usize) & 0x01;
12792 super::vals::Bidioe(val as u8)
12793 }
12794 #[doc = "Output enable in bidirectional mode"]
12795 pub fn set_bidioe(&mut self, val: super::vals::Bidioe) {
12796 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
12797 }
12798 #[doc = "Bidirectional data mode enable"]
12799 pub const fn bidimode(&self) -> super::vals::Bidimode {
12800 let val = (self.0 >> 15usize) & 0x01;
12801 super::vals::Bidimode(val as u8)
12802 }
12803 #[doc = "Bidirectional data mode enable"]
12804 pub fn set_bidimode(&mut self, val: super::vals::Bidimode) {
12805 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
12806 }
12807 } 11067 }
12808 impl Default for Cr1 { 11068 #[repr(transparent)]
12809 fn default() -> Cr1 { 11069 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12810 Cr1(0) 11070 pub struct Ahb1lpenrDma1lpen(pub u8);
12811 } 11071 impl Ahb1lpenrDma1lpen {
11072 #[doc = "The selected clock is disabled during csleep mode"]
11073 pub const DISABLED: Self = Self(0);
11074 #[doc = "The selected clock is enabled during csleep mode"]
11075 pub const ENABLED: Self = Self(0x01);
12812 } 11076 }
12813 #[doc = "status register"]
12814 #[repr(transparent)] 11077 #[repr(transparent)]
12815 #[derive(Copy, Clone, Eq, PartialEq)] 11078 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12816 pub struct Sr(pub u32); 11079 pub struct Hsirdyr(pub u8);
12817 impl Sr { 11080 impl Hsirdyr {
12818 #[doc = "Receive buffer not empty"] 11081 #[doc = "Clock not ready"]
12819 pub const fn rxne(&self) -> bool { 11082 pub const NOTREADY: Self = Self(0);
12820 let val = (self.0 >> 0usize) & 0x01; 11083 #[doc = "Clock ready"]
12821 val != 0 11084 pub const READY: Self = Self(0x01);
12822 }
12823 #[doc = "Receive buffer not empty"]
12824 pub fn set_rxne(&mut self, val: bool) {
12825 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
12826 }
12827 #[doc = "Transmit buffer empty"]
12828 pub const fn txe(&self) -> bool {
12829 let val = (self.0 >> 1usize) & 0x01;
12830 val != 0
12831 }
12832 #[doc = "Transmit buffer empty"]
12833 pub fn set_txe(&mut self, val: bool) {
12834 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
12835 }
12836 #[doc = "CRC error flag"]
12837 pub const fn crcerr(&self) -> bool {
12838 let val = (self.0 >> 4usize) & 0x01;
12839 val != 0
12840 }
12841 #[doc = "CRC error flag"]
12842 pub fn set_crcerr(&mut self, val: bool) {
12843 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
12844 }
12845 #[doc = "Mode fault"]
12846 pub const fn modf(&self) -> bool {
12847 let val = (self.0 >> 5usize) & 0x01;
12848 val != 0
12849 }
12850 #[doc = "Mode fault"]
12851 pub fn set_modf(&mut self, val: bool) {
12852 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
12853 }
12854 #[doc = "Overrun flag"]
12855 pub const fn ovr(&self) -> bool {
12856 let val = (self.0 >> 6usize) & 0x01;
12857 val != 0
12858 }
12859 #[doc = "Overrun flag"]
12860 pub fn set_ovr(&mut self, val: bool) {
12861 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
12862 }
12863 #[doc = "Busy flag"]
12864 pub const fn bsy(&self) -> bool {
12865 let val = (self.0 >> 7usize) & 0x01;
12866 val != 0
12867 }
12868 #[doc = "Busy flag"]
12869 pub fn set_bsy(&mut self, val: bool) {
12870 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
12871 }
12872 #[doc = "Frame format error"]
12873 pub const fn fre(&self) -> bool {
12874 let val = (self.0 >> 8usize) & 0x01;
12875 val != 0
12876 }
12877 #[doc = "Frame format error"]
12878 pub fn set_fre(&mut self, val: bool) {
12879 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
12880 }
12881 #[doc = "FIFO reception level"]
12882 pub const fn frlvl(&self) -> u8 {
12883 let val = (self.0 >> 9usize) & 0x03;
12884 val as u8
12885 }
12886 #[doc = "FIFO reception level"]
12887 pub fn set_frlvl(&mut self, val: u8) {
12888 self.0 = (self.0 & !(0x03 << 9usize)) | (((val as u32) & 0x03) << 9usize);
12889 }
12890 #[doc = "FIFO Transmission Level"]
12891 pub const fn ftlvl(&self) -> u8 {
12892 let val = (self.0 >> 11usize) & 0x03;
12893 val as u8
12894 }
12895 #[doc = "FIFO Transmission Level"]
12896 pub fn set_ftlvl(&mut self, val: u8) {
12897 self.0 = (self.0 & !(0x03 << 11usize)) | (((val as u32) & 0x03) << 11usize);
12898 }
12899 } 11085 }
12900 impl Default for Sr { 11086 #[repr(transparent)]
12901 fn default() -> Sr { 11087 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12902 Sr(0) 11088 pub struct Mco1(pub u8);
12903 } 11089 impl Mco1 {
11090 #[doc = "HSI selected for micro-controller clock output"]
11091 pub const HSI: Self = Self(0);
11092 #[doc = "LSE selected for micro-controller clock output"]
11093 pub const LSE: Self = Self(0x01);
11094 #[doc = "HSE selected for micro-controller clock output"]
11095 pub const HSE: Self = Self(0x02);
11096 #[doc = "pll1_q selected for micro-controller clock output"]
11097 pub const PLL1_Q: Self = Self(0x03);
11098 #[doc = "HSI48 selected for micro-controller clock output"]
11099 pub const HSI48: Self = Self(0x04);
12904 } 11100 }
12905 #[doc = "TX CRC register"]
12906 #[repr(transparent)] 11101 #[repr(transparent)]
12907 #[derive(Copy, Clone, Eq, PartialEq)] 11102 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12908 pub struct Txcrcr(pub u32); 11103 pub struct Ahb2enrDcmien(pub u8);
12909 impl Txcrcr { 11104 impl Ahb2enrDcmien {
12910 #[doc = "Tx CRC register"] 11105 #[doc = "The selected clock is disabled"]
12911 pub const fn tx_crc(&self) -> u16 { 11106 pub const DISABLED: Self = Self(0);
12912 let val = (self.0 >> 0usize) & 0xffff; 11107 #[doc = "The selected clock is enabled"]
12913 val as u16 11108 pub const ENABLED: Self = Self(0x01);
12914 }
12915 #[doc = "Tx CRC register"]
12916 pub fn set_tx_crc(&mut self, val: u16) {
12917 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
12918 }
12919 } 11109 }
12920 impl Default for Txcrcr { 11110 #[repr(transparent)]
12921 fn default() -> Txcrcr { 11111 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12922 Txcrcr(0) 11112 pub struct Hrtimsel(pub u8);
12923 } 11113 impl Hrtimsel {
11114 #[doc = "The HRTIM prescaler clock source is the same as other timers (rcc_timy_ker_ck)"]
11115 pub const TIMY_KER: Self = Self(0);
11116 #[doc = "The HRTIM prescaler clock source is the CPU clock (c_ck)"]
11117 pub const C_CK: Self = Self(0x01);
12924 } 11118 }
12925 #[doc = "RX CRC register"]
12926 #[repr(transparent)] 11119 #[repr(transparent)]
12927 #[derive(Copy, Clone, Eq, PartialEq)] 11120 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12928 pub struct Rxcrcr(pub u32); 11121 pub struct Timpre(pub u8);
12929 impl Rxcrcr { 11122 impl Timpre {
12930 #[doc = "Rx CRC register"] 11123 #[doc = "Timer kernel clock equal to 2x pclk by default"]
12931 pub const fn rx_crc(&self) -> u16 { 11124 pub const DEFAULTX2: Self = Self(0);
12932 let val = (self.0 >> 0usize) & 0xffff; 11125 #[doc = "Timer kernel clock equal to 4x pclk by default"]
12933 val as u16 11126 pub const DEFAULTX4: Self = Self(0x01);
12934 }
12935 #[doc = "Rx CRC register"]
12936 pub fn set_rx_crc(&mut self, val: u16) {
12937 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
12938 }
12939 } 11127 }
12940 impl Default for Rxcrcr { 11128 #[repr(transparent)]
12941 fn default() -> Rxcrcr { 11129 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12942 Rxcrcr(0) 11130 pub struct Gpioarst(pub u8);
12943 } 11131 impl Gpioarst {
11132 #[doc = "Reset the selected module"]
11133 pub const RESET: Self = Self(0x01);
12944 } 11134 }
12945 #[doc = "CRC polynomial register"]
12946 #[repr(transparent)] 11135 #[repr(transparent)]
12947 #[derive(Copy, Clone, Eq, PartialEq)] 11136 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12948 pub struct Crcpr(pub u32); 11137 pub struct RsrRmvf(pub u8);
12949 impl Crcpr { 11138 impl RsrRmvf {
12950 #[doc = "CRC polynomial register"] 11139 #[doc = "Not clearing the the reset flags"]
12951 pub const fn crcpoly(&self) -> u16 { 11140 pub const NOTACTIVE: Self = Self(0);
12952 let val = (self.0 >> 0usize) & 0xffff; 11141 #[doc = "Clear the reset flags"]
12953 val as u16 11142 pub const CLEAR: Self = Self(0x01);
12954 }
12955 #[doc = "CRC polynomial register"]
12956 pub fn set_crcpoly(&mut self, val: u16) {
12957 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
12958 }
12959 } 11143 }
12960 impl Default for Crcpr { 11144 #[repr(transparent)]
12961 fn default() -> Crcpr { 11145 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
12962 Crcpr(0) 11146 pub struct Lserdyr(pub u8);
12963 } 11147 impl Lserdyr {
11148 #[doc = "LSE oscillator not ready"]
11149 pub const NOTREADY: Self = Self(0);
11150 #[doc = "LSE oscillator ready"]
11151 pub const READY: Self = Self(0x01);
11152 }
11153 #[repr(transparent)]
11154 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11155 pub struct C1Apb1hlpenrCrslpen(pub u8);
11156 impl C1Apb1hlpenrCrslpen {
11157 #[doc = "The selected clock is disabled during csleep mode"]
11158 pub const DISABLED: Self = Self(0);
11159 #[doc = "The selected clock is enabled during csleep mode"]
11160 pub const ENABLED: Self = Self(0x01);
11161 }
11162 #[repr(transparent)]
11163 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11164 pub struct Spi6sel(pub u8);
11165 impl Spi6sel {
11166 #[doc = "rcc_pclk4 selected as peripheral clock"]
11167 pub const RCC_PCLK4: Self = Self(0);
11168 #[doc = "pll2_q selected as peripheral clock"]
11169 pub const PLL2_Q: Self = Self(0x01);
11170 #[doc = "pll3_q selected as peripheral clock"]
11171 pub const PLL3_Q: Self = Self(0x02);
11172 #[doc = "hsi_ker selected as peripheral clock"]
11173 pub const HSI_KER: Self = Self(0x03);
11174 #[doc = "csi_ker selected as peripheral clock"]
11175 pub const CSI_KER: Self = Self(0x04);
11176 #[doc = "HSE selected as peripheral clock"]
11177 pub const HSE: Self = Self(0x05);
11178 }
11179 #[repr(transparent)]
11180 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11181 pub struct Lsirdyc(pub u8);
11182 impl Lsirdyc {
11183 #[doc = "Clear interrupt flag"]
11184 pub const CLEAR: Self = Self(0x01);
11185 }
11186 #[repr(transparent)]
11187 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11188 pub struct Hsidivfr(pub u8);
11189 impl Hsidivfr {
11190 #[doc = "New HSIDIV ratio has not yet propagated to hsi_ck"]
11191 pub const NOTPROPAGATED: Self = Self(0);
11192 #[doc = "HSIDIV ratio has propagated to hsi_ck"]
11193 pub const PROPAGATED: Self = Self(0x01);
11194 }
11195 #[repr(transparent)]
11196 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11197 pub struct Bdmaamen(pub u8);
11198 impl Bdmaamen {
11199 #[doc = "Clock disabled in autonomous mode"]
11200 pub const DISABLED: Self = Self(0);
11201 #[doc = "Clock enabled in autonomous mode"]
11202 pub const ENABLED: Self = Self(0x01);
11203 }
11204 #[repr(transparent)]
11205 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11206 pub struct Dfsdm1sel(pub u8);
11207 impl Dfsdm1sel {
11208 #[doc = "rcc_pclk2 selected as peripheral clock"]
11209 pub const RCC_PCLK2: Self = Self(0);
11210 #[doc = "System clock selected as peripheral clock"]
11211 pub const SYS: Self = Self(0x01);
11212 }
11213 #[repr(transparent)]
11214 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
11215 pub struct I2c123sel(pub u8);
11216 impl I2c123sel {
11217 #[doc = "rcc_pclk1 selected as peripheral clock"]
11218 pub const RCC_PCLK1: Self = Self(0);
11219 #[doc = "pll3_r selected as peripheral clock"]
11220 pub const PLL3_R: Self = Self(0x01);
11221 #[doc = "hsi_ker selected as peripheral clock"]
11222 pub const HSI_KER: Self = Self(0x02);
11223 #[doc = "csi_ker selected as peripheral clock"]
11224 pub const CSI_KER: Self = Self(0x03);
12964 } 11225 }
12965 } 11226 }
12966} 11227}
@@ -13127,33 +11388,78 @@ pub mod dbgmcu_h7 {
13127 Apb1lfz1(0) 11388 Apb1lfz1(0)
13128 } 11389 }
13129 } 11390 }
13130 #[doc = "Identity code"] 11391 #[doc = "Configuration register"]
13131 #[repr(transparent)] 11392 #[repr(transparent)]
13132 #[derive(Copy, Clone, Eq, PartialEq)] 11393 #[derive(Copy, Clone, Eq, PartialEq)]
13133 pub struct Idc(pub u32); 11394 pub struct Cr(pub u32);
13134 impl Idc { 11395 impl Cr {
13135 #[doc = "Device ID"] 11396 #[doc = "Allow debug in D1 Sleep mode"]
13136 pub const fn dev_id(&self) -> u16 { 11397 pub const fn dbgsleep_d1(&self) -> bool {
13137 let val = (self.0 >> 0usize) & 0x0fff; 11398 let val = (self.0 >> 0usize) & 0x01;
13138 val as u16 11399 val != 0
13139 } 11400 }
13140 #[doc = "Device ID"] 11401 #[doc = "Allow debug in D1 Sleep mode"]
13141 pub fn set_dev_id(&mut self, val: u16) { 11402 pub fn set_dbgsleep_d1(&mut self, val: bool) {
13142 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize); 11403 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
13143 } 11404 }
13144 #[doc = "Revision ID"] 11405 #[doc = "Allow debug in D1 Stop mode"]
13145 pub const fn rev_id(&self) -> u16 { 11406 pub const fn dbgstop_d1(&self) -> bool {
13146 let val = (self.0 >> 16usize) & 0xffff; 11407 let val = (self.0 >> 1usize) & 0x01;
13147 val as u16 11408 val != 0
13148 } 11409 }
13149 #[doc = "Revision ID"] 11410 #[doc = "Allow debug in D1 Stop mode"]
13150 pub fn set_rev_id(&mut self, val: u16) { 11411 pub fn set_dbgstop_d1(&mut self, val: bool) {
13151 self.0 = (self.0 & !(0xffff << 16usize)) | (((val as u32) & 0xffff) << 16usize); 11412 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
11413 }
11414 #[doc = "Allow debug in D1 Standby mode"]
11415 pub const fn dbgstby_d1(&self) -> bool {
11416 let val = (self.0 >> 2usize) & 0x01;
11417 val != 0
11418 }
11419 #[doc = "Allow debug in D1 Standby mode"]
11420 pub fn set_dbgstby_d1(&mut self, val: bool) {
11421 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
11422 }
11423 #[doc = "Trace clock enable enable"]
11424 pub const fn traceclken(&self) -> bool {
11425 let val = (self.0 >> 20usize) & 0x01;
11426 val != 0
11427 }
11428 #[doc = "Trace clock enable enable"]
11429 pub fn set_traceclken(&mut self, val: bool) {
11430 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize);
11431 }
11432 #[doc = "D1 debug clock enable enable"]
11433 pub const fn d1dbgcken(&self) -> bool {
11434 let val = (self.0 >> 21usize) & 0x01;
11435 val != 0
11436 }
11437 #[doc = "D1 debug clock enable enable"]
11438 pub fn set_d1dbgcken(&mut self, val: bool) {
11439 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
11440 }
11441 #[doc = "D3 debug clock enable enable"]
11442 pub const fn d3dbgcken(&self) -> bool {
11443 let val = (self.0 >> 22usize) & 0x01;
11444 val != 0
11445 }
11446 #[doc = "D3 debug clock enable enable"]
11447 pub fn set_d3dbgcken(&mut self, val: bool) {
11448 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
11449 }
11450 #[doc = "External trigger output enable"]
11451 pub const fn trgoen(&self) -> bool {
11452 let val = (self.0 >> 28usize) & 0x01;
11453 val != 0
11454 }
11455 #[doc = "External trigger output enable"]
11456 pub fn set_trgoen(&mut self, val: bool) {
11457 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize);
13152 } 11458 }
13153 } 11459 }
13154 impl Default for Idc { 11460 impl Default for Cr {
13155 fn default() -> Idc { 11461 fn default() -> Cr {
13156 Idc(0) 11462 Cr(0)
13157 } 11463 }
13158 } 11464 }
13159 #[doc = "APB2 peripheral freeze register"] 11465 #[doc = "APB2 peripheral freeze register"]
@@ -13315,1523 +11621,586 @@ pub mod dbgmcu_h7 {
13315 Apb4fz1(0) 11621 Apb4fz1(0)
13316 } 11622 }
13317 } 11623 }
13318 #[doc = "Configuration register"] 11624 #[doc = "Identity code"]
13319 #[repr(transparent)] 11625 #[repr(transparent)]
13320 #[derive(Copy, Clone, Eq, PartialEq)] 11626 #[derive(Copy, Clone, Eq, PartialEq)]
13321 pub struct Cr(pub u32); 11627 pub struct Idc(pub u32);
13322 impl Cr { 11628 impl Idc {
13323 #[doc = "Allow debug in D1 Sleep mode"] 11629 #[doc = "Device ID"]
13324 pub const fn dbgsleep_d1(&self) -> bool { 11630 pub const fn dev_id(&self) -> u16 {
13325 let val = (self.0 >> 0usize) & 0x01; 11631 let val = (self.0 >> 0usize) & 0x0fff;
13326 val != 0 11632 val as u16
13327 }
13328 #[doc = "Allow debug in D1 Sleep mode"]
13329 pub fn set_dbgsleep_d1(&mut self, val: bool) {
13330 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
13331 }
13332 #[doc = "Allow debug in D1 Stop mode"]
13333 pub const fn dbgstop_d1(&self) -> bool {
13334 let val = (self.0 >> 1usize) & 0x01;
13335 val != 0
13336 }
13337 #[doc = "Allow debug in D1 Stop mode"]
13338 pub fn set_dbgstop_d1(&mut self, val: bool) {
13339 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
13340 }
13341 #[doc = "Allow debug in D1 Standby mode"]
13342 pub const fn dbgstby_d1(&self) -> bool {
13343 let val = (self.0 >> 2usize) & 0x01;
13344 val != 0
13345 }
13346 #[doc = "Allow debug in D1 Standby mode"]
13347 pub fn set_dbgstby_d1(&mut self, val: bool) {
13348 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
13349 }
13350 #[doc = "Trace clock enable enable"]
13351 pub const fn traceclken(&self) -> bool {
13352 let val = (self.0 >> 20usize) & 0x01;
13353 val != 0
13354 }
13355 #[doc = "Trace clock enable enable"]
13356 pub fn set_traceclken(&mut self, val: bool) {
13357 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize);
13358 }
13359 #[doc = "D1 debug clock enable enable"]
13360 pub const fn d1dbgcken(&self) -> bool {
13361 let val = (self.0 >> 21usize) & 0x01;
13362 val != 0
13363 }
13364 #[doc = "D1 debug clock enable enable"]
13365 pub fn set_d1dbgcken(&mut self, val: bool) {
13366 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
13367 }
13368 #[doc = "D3 debug clock enable enable"]
13369 pub const fn d3dbgcken(&self) -> bool {
13370 let val = (self.0 >> 22usize) & 0x01;
13371 val != 0
13372 } 11633 }
13373 #[doc = "D3 debug clock enable enable"] 11634 #[doc = "Device ID"]
13374 pub fn set_d3dbgcken(&mut self, val: bool) { 11635 pub fn set_dev_id(&mut self, val: u16) {
13375 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize); 11636 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize);
13376 } 11637 }
13377 #[doc = "External trigger output enable"] 11638 #[doc = "Revision ID"]
13378 pub const fn trgoen(&self) -> bool { 11639 pub const fn rev_id(&self) -> u16 {
13379 let val = (self.0 >> 28usize) & 0x01; 11640 let val = (self.0 >> 16usize) & 0xffff;
13380 val != 0 11641 val as u16
13381 } 11642 }
13382 #[doc = "External trigger output enable"] 11643 #[doc = "Revision ID"]
13383 pub fn set_trgoen(&mut self, val: bool) { 11644 pub fn set_rev_id(&mut self, val: u16) {
13384 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize); 11645 self.0 = (self.0 & !(0xffff << 16usize)) | (((val as u32) & 0xffff) << 16usize);
13385 } 11646 }
13386 } 11647 }
13387 impl Default for Cr { 11648 impl Default for Idc {
13388 fn default() -> Cr { 11649 fn default() -> Idc {
13389 Cr(0) 11650 Idc(0)
13390 } 11651 }
13391 } 11652 }
13392 } 11653 }
13393} 11654}
13394pub mod usart_v1 { 11655pub mod syscfg_h7 {
13395 use crate::generic::*; 11656 use crate::generic::*;
13396 #[doc = "Universal synchronous asynchronous receiver transmitter"] 11657 #[doc = "System configuration controller"]
13397 #[derive(Copy, Clone)] 11658 #[derive(Copy, Clone)]
13398 pub struct Usart(pub *mut u8); 11659 pub struct Syscfg(pub *mut u8);
13399 unsafe impl Send for Usart {} 11660 unsafe impl Send for Syscfg {}
13400 unsafe impl Sync for Usart {} 11661 unsafe impl Sync for Syscfg {}
13401 impl Usart { 11662 impl Syscfg {
13402 #[doc = "Status register"] 11663 #[doc = "peripheral mode configuration register"]
13403 pub fn sr(self) -> Reg<regs::Sr, RW> { 11664 pub fn pmcr(self) -> Reg<regs::Pmcr, RW> {
13404 unsafe { Reg::from_ptr(self.0.add(0usize)) }
13405 }
13406 #[doc = "Data register"]
13407 pub fn dr(self) -> Reg<regs::Dr, RW> {
13408 unsafe { Reg::from_ptr(self.0.add(4usize)) } 11665 unsafe { Reg::from_ptr(self.0.add(4usize)) }
13409 } 11666 }
13410 #[doc = "Baud rate register"] 11667 #[doc = "external interrupt configuration register 1"]
13411 pub fn brr(self) -> Reg<regs::Brr, RW> { 11668 pub fn exticr(self, n: usize) -> Reg<regs::Exticr, RW> {
13412 unsafe { Reg::from_ptr(self.0.add(8usize)) } 11669 assert!(n < 4usize);
11670 unsafe { Reg::from_ptr(self.0.add(8usize + n * 4usize)) }
13413 } 11671 }
13414 #[doc = "Control register 1"] 11672 #[doc = "compensation cell control/status register"]
13415 pub fn cr1(self) -> Reg<regs::Cr1, RW> { 11673 pub fn cccsr(self) -> Reg<regs::Cccsr, RW> {
13416 unsafe { Reg::from_ptr(self.0.add(12usize)) } 11674 unsafe { Reg::from_ptr(self.0.add(32usize)) }
13417 } 11675 }
13418 #[doc = "Control register 2"] 11676 #[doc = "SYSCFG compensation cell value register"]
13419 pub fn cr2(self) -> Reg<regs::Cr2Usart, RW> { 11677 pub fn ccvr(self) -> Reg<regs::Ccvr, R> {
13420 unsafe { Reg::from_ptr(self.0.add(16usize)) } 11678 unsafe { Reg::from_ptr(self.0.add(36usize)) }
13421 } 11679 }
13422 #[doc = "Control register 3"] 11680 #[doc = "SYSCFG compensation cell code register"]
13423 pub fn cr3(self) -> Reg<regs::Cr3Usart, RW> { 11681 pub fn cccr(self) -> Reg<regs::Cccr, RW> {
13424 unsafe { Reg::from_ptr(self.0.add(20usize)) } 11682 unsafe { Reg::from_ptr(self.0.add(40usize)) }
13425 } 11683 }
13426 #[doc = "Guard time and prescaler register"] 11684 #[doc = "SYSCFG power control register"]
13427 pub fn gtpr(self) -> Reg<regs::Gtpr, RW> { 11685 pub fn pwrcr(self) -> Reg<regs::Pwrcr, RW> {
13428 unsafe { Reg::from_ptr(self.0.add(24usize)) } 11686 unsafe { Reg::from_ptr(self.0.add(44usize)) }
13429 } 11687 }
13430 } 11688 #[doc = "SYSCFG package register"]
13431 #[doc = "Universal asynchronous receiver transmitter"] 11689 pub fn pkgr(self) -> Reg<regs::Pkgr, R> {
13432 #[derive(Copy, Clone)] 11690 unsafe { Reg::from_ptr(self.0.add(292usize)) }
13433 pub struct Uart(pub *mut u8);
13434 unsafe impl Send for Uart {}
13435 unsafe impl Sync for Uart {}
13436 impl Uart {
13437 #[doc = "Status register"]
13438 pub fn sr(self) -> Reg<regs::Sr, RW> {
13439 unsafe { Reg::from_ptr(self.0.add(0usize)) }
13440 } 11691 }
13441 #[doc = "Data register"] 11692 #[doc = "SYSCFG user register 0"]
13442 pub fn dr(self) -> Reg<regs::Dr, RW> { 11693 pub fn ur0(self) -> Reg<regs::Ur0, R> {
13443 unsafe { Reg::from_ptr(self.0.add(4usize)) } 11694 unsafe { Reg::from_ptr(self.0.add(768usize)) }
13444 } 11695 }
13445 #[doc = "Baud rate register"] 11696 #[doc = "SYSCFG user register 2"]
13446 pub fn brr(self) -> Reg<regs::Brr, RW> { 11697 pub fn ur2(self) -> Reg<regs::Ur2, RW> {
13447 unsafe { Reg::from_ptr(self.0.add(8usize)) } 11698 unsafe { Reg::from_ptr(self.0.add(776usize)) }
13448 } 11699 }
13449 #[doc = "Control register 1"] 11700 #[doc = "SYSCFG user register 3"]
13450 pub fn cr1(self) -> Reg<regs::Cr1, RW> { 11701 pub fn ur3(self) -> Reg<regs::Ur3, RW> {
13451 unsafe { Reg::from_ptr(self.0.add(12usize)) } 11702 unsafe { Reg::from_ptr(self.0.add(780usize)) }
13452 } 11703 }
13453 #[doc = "Control register 2"] 11704 #[doc = "SYSCFG user register 4"]
13454 pub fn cr2(self) -> Reg<regs::Cr2, RW> { 11705 pub fn ur4(self) -> Reg<regs::Ur4, R> {
13455 unsafe { Reg::from_ptr(self.0.add(16usize)) } 11706 unsafe { Reg::from_ptr(self.0.add(784usize)) }
13456 } 11707 }
13457 #[doc = "Control register 3"] 11708 #[doc = "SYSCFG user register 5"]
13458 pub fn cr3(self) -> Reg<regs::Cr3, RW> { 11709 pub fn ur5(self) -> Reg<regs::Ur5, R> {
13459 unsafe { Reg::from_ptr(self.0.add(20usize)) } 11710 unsafe { Reg::from_ptr(self.0.add(788usize)) }
13460 } 11711 }
13461 } 11712 #[doc = "SYSCFG user register 6"]
13462 pub mod vals { 11713 pub fn ur6(self) -> Reg<regs::Ur6, R> {
13463 use crate::generic::*; 11714 unsafe { Reg::from_ptr(self.0.add(792usize)) }
13464 #[repr(transparent)]
13465 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
13466 pub struct Lbdl(pub u8);
13467 impl Lbdl {
13468 #[doc = "10-bit break detection"]
13469 pub const LBDL10: Self = Self(0);
13470 #[doc = "11-bit break detection"]
13471 pub const LBDL11: Self = Self(0x01);
13472 } 11715 }
13473 #[repr(transparent)] 11716 #[doc = "SYSCFG user register 7"]
13474 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 11717 pub fn ur7(self) -> Reg<regs::Ur7, R> {
13475 pub struct Stop(pub u8); 11718 unsafe { Reg::from_ptr(self.0.add(796usize)) }
13476 impl Stop {
13477 #[doc = "1 stop bit"]
13478 pub const STOP1: Self = Self(0);
13479 #[doc = "0.5 stop bits"]
13480 pub const STOP0P5: Self = Self(0x01);
13481 #[doc = "2 stop bits"]
13482 pub const STOP2: Self = Self(0x02);
13483 #[doc = "1.5 stop bits"]
13484 pub const STOP1P5: Self = Self(0x03);
13485 } 11719 }
13486 #[repr(transparent)] 11720 #[doc = "SYSCFG user register 8"]
13487 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 11721 pub fn ur8(self) -> Reg<regs::Ur8, R> {
13488 pub struct Rwu(pub u8); 11722 unsafe { Reg::from_ptr(self.0.add(800usize)) }
13489 impl Rwu {
13490 #[doc = "Receiver in active mode"]
13491 pub const ACTIVE: Self = Self(0);
13492 #[doc = "Receiver in mute mode"]
13493 pub const MUTE: Self = Self(0x01);
13494 } 11723 }
13495 #[repr(transparent)] 11724 #[doc = "SYSCFG user register 9"]
13496 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 11725 pub fn ur9(self) -> Reg<regs::Ur9, R> {
13497 pub struct Ps(pub u8); 11726 unsafe { Reg::from_ptr(self.0.add(804usize)) }
13498 impl Ps {
13499 #[doc = "Even parity"]
13500 pub const EVEN: Self = Self(0);
13501 #[doc = "Odd parity"]
13502 pub const ODD: Self = Self(0x01);
13503 } 11727 }
13504 #[repr(transparent)] 11728 #[doc = "SYSCFG user register 10"]
13505 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 11729 pub fn ur10(self) -> Reg<regs::Ur10, R> {
13506 pub struct Wake(pub u8); 11730 unsafe { Reg::from_ptr(self.0.add(808usize)) }
13507 impl Wake {
13508 #[doc = "USART wakeup on idle line"]
13509 pub const IDLELINE: Self = Self(0);
13510 #[doc = "USART wakeup on address mark"]
13511 pub const ADDRESSMARK: Self = Self(0x01);
13512 } 11731 }
13513 #[repr(transparent)] 11732 #[doc = "SYSCFG user register 11"]
13514 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 11733 pub fn ur11(self) -> Reg<regs::Ur11, R> {
13515 pub struct Cpha(pub u8); 11734 unsafe { Reg::from_ptr(self.0.add(812usize)) }
13516 impl Cpha {
13517 #[doc = "The first clock transition is the first data capture edge"]
13518 pub const FIRST: Self = Self(0);
13519 #[doc = "The second clock transition is the first data capture edge"]
13520 pub const SECOND: Self = Self(0x01);
13521 } 11735 }
13522 #[repr(transparent)] 11736 #[doc = "SYSCFG user register 12"]
13523 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 11737 pub fn ur12(self) -> Reg<regs::Ur12, R> {
13524 pub struct M(pub u8); 11738 unsafe { Reg::from_ptr(self.0.add(816usize)) }
13525 impl M {
13526 #[doc = "8 data bits"]
13527 pub const M8: Self = Self(0);
13528 #[doc = "9 data bits"]
13529 pub const M9: Self = Self(0x01);
13530 } 11739 }
13531 #[repr(transparent)] 11740 #[doc = "SYSCFG user register 13"]
13532 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 11741 pub fn ur13(self) -> Reg<regs::Ur13, R> {
13533 pub struct Cpol(pub u8); 11742 unsafe { Reg::from_ptr(self.0.add(820usize)) }
13534 impl Cpol {
13535 #[doc = "Steady low value on CK pin outside transmission window"]
13536 pub const LOW: Self = Self(0);
13537 #[doc = "Steady high value on CK pin outside transmission window"]
13538 pub const HIGH: Self = Self(0x01);
13539 } 11743 }
13540 #[repr(transparent)] 11744 #[doc = "SYSCFG user register 14"]
13541 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 11745 pub fn ur14(self) -> Reg<regs::Ur14, RW> {
13542 pub struct Irlp(pub u8); 11746 unsafe { Reg::from_ptr(self.0.add(824usize)) }
13543 impl Irlp {
13544 #[doc = "Normal mode"]
13545 pub const NORMAL: Self = Self(0);
13546 #[doc = "Low-power mode"]
13547 pub const LOWPOWER: Self = Self(0x01);
13548 } 11747 }
13549 #[repr(transparent)] 11748 #[doc = "SYSCFG user register 15"]
13550 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 11749 pub fn ur15(self) -> Reg<regs::Ur15, R> {
13551 pub struct Hdsel(pub u8); 11750 unsafe { Reg::from_ptr(self.0.add(828usize)) }
13552 impl Hdsel {
13553 #[doc = "Half duplex mode is not selected"]
13554 pub const FULLDUPLEX: Self = Self(0);
13555 #[doc = "Half duplex mode is selected"]
13556 pub const HALFDUPLEX: Self = Self(0x01);
13557 } 11751 }
13558 #[repr(transparent)] 11752 #[doc = "SYSCFG user register 16"]
13559 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 11753 pub fn ur16(self) -> Reg<regs::Ur16, R> {
13560 pub struct Sbk(pub u8); 11754 unsafe { Reg::from_ptr(self.0.add(832usize)) }
13561 impl Sbk { 11755 }
13562 #[doc = "No break character is transmitted"] 11756 #[doc = "SYSCFG user register 17"]
13563 pub const NOBREAK: Self = Self(0); 11757 pub fn ur17(self) -> Reg<regs::Ur17, R> {
13564 #[doc = "Break character transmitted"] 11758 unsafe { Reg::from_ptr(self.0.add(836usize)) }
13565 pub const BREAK: Self = Self(0x01);
13566 } 11759 }
13567 } 11760 }
13568 pub mod regs { 11761 pub mod regs {
13569 use crate::generic::*; 11762 use crate::generic::*;
13570 #[doc = "Control register 2"] 11763 #[doc = "SYSCFG user register 9"]
13571 #[repr(transparent)] 11764 #[repr(transparent)]
13572 #[derive(Copy, Clone, Eq, PartialEq)] 11765 #[derive(Copy, Clone, Eq, PartialEq)]
13573 pub struct Cr2Usart(pub u32); 11766 pub struct Ur9(pub u32);
13574 impl Cr2Usart { 11767 impl Ur9 {
13575 #[doc = "Address of the USART node"] 11768 #[doc = "Write protection for flash bank 2"]
13576 pub const fn add(&self) -> u8 { 11769 pub const fn wrpn_2(&self) -> u8 {
13577 let val = (self.0 >> 0usize) & 0x0f; 11770 let val = (self.0 >> 0usize) & 0xff;
13578 val as u8 11771 val as u8
13579 } 11772 }
13580 #[doc = "Address of the USART node"] 11773 #[doc = "Write protection for flash bank 2"]
13581 pub fn set_add(&mut self, val: u8) { 11774 pub fn set_wrpn_2(&mut self, val: u8) {
13582 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize); 11775 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
13583 }
13584 #[doc = "lin break detection length"]
13585 pub const fn lbdl(&self) -> super::vals::Lbdl {
13586 let val = (self.0 >> 5usize) & 0x01;
13587 super::vals::Lbdl(val as u8)
13588 }
13589 #[doc = "lin break detection length"]
13590 pub fn set_lbdl(&mut self, val: super::vals::Lbdl) {
13591 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
13592 }
13593 #[doc = "LIN break detection interrupt enable"]
13594 pub const fn lbdie(&self) -> bool {
13595 let val = (self.0 >> 6usize) & 0x01;
13596 val != 0
13597 }
13598 #[doc = "LIN break detection interrupt enable"]
13599 pub fn set_lbdie(&mut self, val: bool) {
13600 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
13601 }
13602 #[doc = "Last bit clock pulse"]
13603 pub const fn lbcl(&self) -> bool {
13604 let val = (self.0 >> 8usize) & 0x01;
13605 val != 0
13606 }
13607 #[doc = "Last bit clock pulse"]
13608 pub fn set_lbcl(&mut self, val: bool) {
13609 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
13610 }
13611 #[doc = "Clock phase"]
13612 pub const fn cpha(&self) -> super::vals::Cpha {
13613 let val = (self.0 >> 9usize) & 0x01;
13614 super::vals::Cpha(val as u8)
13615 }
13616 #[doc = "Clock phase"]
13617 pub fn set_cpha(&mut self, val: super::vals::Cpha) {
13618 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
13619 }
13620 #[doc = "Clock polarity"]
13621 pub const fn cpol(&self) -> super::vals::Cpol {
13622 let val = (self.0 >> 10usize) & 0x01;
13623 super::vals::Cpol(val as u8)
13624 }
13625 #[doc = "Clock polarity"]
13626 pub fn set_cpol(&mut self, val: super::vals::Cpol) {
13627 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
13628 }
13629 #[doc = "Clock enable"]
13630 pub const fn clken(&self) -> bool {
13631 let val = (self.0 >> 11usize) & 0x01;
13632 val != 0
13633 }
13634 #[doc = "Clock enable"]
13635 pub fn set_clken(&mut self, val: bool) {
13636 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
13637 }
13638 #[doc = "STOP bits"]
13639 pub const fn stop(&self) -> super::vals::Stop {
13640 let val = (self.0 >> 12usize) & 0x03;
13641 super::vals::Stop(val as u8)
13642 }
13643 #[doc = "STOP bits"]
13644 pub fn set_stop(&mut self, val: super::vals::Stop) {
13645 self.0 = (self.0 & !(0x03 << 12usize)) | (((val.0 as u32) & 0x03) << 12usize);
13646 } 11776 }
13647 #[doc = "LIN mode enable"] 11777 #[doc = "Protected area start address for bank 2"]
13648 pub const fn linen(&self) -> bool { 11778 pub const fn pa_beg_2(&self) -> u16 {
13649 let val = (self.0 >> 14usize) & 0x01; 11779 let val = (self.0 >> 16usize) & 0x0fff;
13650 val != 0 11780 val as u16
13651 } 11781 }
13652 #[doc = "LIN mode enable"] 11782 #[doc = "Protected area start address for bank 2"]
13653 pub fn set_linen(&mut self, val: bool) { 11783 pub fn set_pa_beg_2(&mut self, val: u16) {
13654 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize); 11784 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize);
13655 } 11785 }
13656 } 11786 }
13657 impl Default for Cr2Usart { 11787 impl Default for Ur9 {
13658 fn default() -> Cr2Usart { 11788 fn default() -> Ur9 {
13659 Cr2Usart(0) 11789 Ur9(0)
13660 } 11790 }
13661 } 11791 }
13662 #[doc = "Guard time and prescaler register"] 11792 #[doc = "SYSCFG user register 6"]
13663 #[repr(transparent)] 11793 #[repr(transparent)]
13664 #[derive(Copy, Clone, Eq, PartialEq)] 11794 #[derive(Copy, Clone, Eq, PartialEq)]
13665 pub struct Gtpr(pub u32); 11795 pub struct Ur6(pub u32);
13666 impl Gtpr { 11796 impl Ur6 {
13667 #[doc = "Prescaler value"] 11797 #[doc = "Protected area start address for bank 1"]
13668 pub const fn psc(&self) -> u8 { 11798 pub const fn pa_beg_1(&self) -> u16 {
13669 let val = (self.0 >> 0usize) & 0xff; 11799 let val = (self.0 >> 0usize) & 0x0fff;
13670 val as u8 11800 val as u16
13671 } 11801 }
13672 #[doc = "Prescaler value"] 11802 #[doc = "Protected area start address for bank 1"]
13673 pub fn set_psc(&mut self, val: u8) { 11803 pub fn set_pa_beg_1(&mut self, val: u16) {
13674 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize); 11804 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize);
13675 } 11805 }
13676 #[doc = "Guard time value"] 11806 #[doc = "Protected area end address for bank 1"]
13677 pub const fn gt(&self) -> u8 { 11807 pub const fn pa_end_1(&self) -> u16 {
13678 let val = (self.0 >> 8usize) & 0xff; 11808 let val = (self.0 >> 16usize) & 0x0fff;
13679 val as u8 11809 val as u16
13680 } 11810 }
13681 #[doc = "Guard time value"] 11811 #[doc = "Protected area end address for bank 1"]
13682 pub fn set_gt(&mut self, val: u8) { 11812 pub fn set_pa_end_1(&mut self, val: u16) {
13683 self.0 = (self.0 & !(0xff << 8usize)) | (((val as u32) & 0xff) << 8usize); 11813 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize);
13684 } 11814 }
13685 } 11815 }
13686 impl Default for Gtpr { 11816 impl Default for Ur6 {
13687 fn default() -> Gtpr { 11817 fn default() -> Ur6 {
13688 Gtpr(0) 11818 Ur6(0)
13689 } 11819 }
13690 } 11820 }
13691 #[doc = "Control register 2"] 11821 #[doc = "SYSCFG user register 10"]
13692 #[repr(transparent)] 11822 #[repr(transparent)]
13693 #[derive(Copy, Clone, Eq, PartialEq)] 11823 #[derive(Copy, Clone, Eq, PartialEq)]
13694 pub struct Cr2(pub u32); 11824 pub struct Ur10(pub u32);
13695 impl Cr2 { 11825 impl Ur10 {
13696 #[doc = "Address of the USART node"] 11826 #[doc = "Protected area end address for bank 2"]
13697 pub const fn add(&self) -> u8 { 11827 pub const fn pa_end_2(&self) -> u16 {
13698 let val = (self.0 >> 0usize) & 0x0f; 11828 let val = (self.0 >> 0usize) & 0x0fff;
13699 val as u8 11829 val as u16
13700 }
13701 #[doc = "Address of the USART node"]
13702 pub fn set_add(&mut self, val: u8) {
13703 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
13704 } 11830 }
13705 #[doc = "lin break detection length"] 11831 #[doc = "Protected area end address for bank 2"]
13706 pub const fn lbdl(&self) -> super::vals::Lbdl { 11832 pub fn set_pa_end_2(&mut self, val: u16) {
13707 let val = (self.0 >> 5usize) & 0x01; 11833 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize);
13708 super::vals::Lbdl(val as u8)
13709 } 11834 }
13710 #[doc = "lin break detection length"] 11835 #[doc = "Secured area start address for bank 2"]
13711 pub fn set_lbdl(&mut self, val: super::vals::Lbdl) { 11836 pub const fn sa_beg_2(&self) -> u16 {
13712 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 11837 let val = (self.0 >> 16usize) & 0x0fff;
11838 val as u16
13713 } 11839 }
13714 #[doc = "LIN break detection interrupt enable"] 11840 #[doc = "Secured area start address for bank 2"]
13715 pub const fn lbdie(&self) -> bool { 11841 pub fn set_sa_beg_2(&mut self, val: u16) {
13716 let val = (self.0 >> 6usize) & 0x01; 11842 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize);
13717 val != 0
13718 } 11843 }
13719 #[doc = "LIN break detection interrupt enable"] 11844 }
13720 pub fn set_lbdie(&mut self, val: bool) { 11845 impl Default for Ur10 {
13721 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 11846 fn default() -> Ur10 {
11847 Ur10(0)
13722 } 11848 }
13723 #[doc = "STOP bits"] 11849 }
13724 pub const fn stop(&self) -> super::vals::Stop { 11850 #[doc = "SYSCFG user register 7"]
13725 let val = (self.0 >> 12usize) & 0x03; 11851 #[repr(transparent)]
13726 super::vals::Stop(val as u8) 11852 #[derive(Copy, Clone, Eq, PartialEq)]
11853 pub struct Ur7(pub u32);
11854 impl Ur7 {
11855 #[doc = "Secured area start address for bank 1"]
11856 pub const fn sa_beg_1(&self) -> u16 {
11857 let val = (self.0 >> 0usize) & 0x0fff;
11858 val as u16
13727 } 11859 }
13728 #[doc = "STOP bits"] 11860 #[doc = "Secured area start address for bank 1"]
13729 pub fn set_stop(&mut self, val: super::vals::Stop) { 11861 pub fn set_sa_beg_1(&mut self, val: u16) {
13730 self.0 = (self.0 & !(0x03 << 12usize)) | (((val.0 as u32) & 0x03) << 12usize); 11862 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize);
13731 } 11863 }
13732 #[doc = "LIN mode enable"] 11864 #[doc = "Secured area end address for bank 1"]
13733 pub const fn linen(&self) -> bool { 11865 pub const fn sa_end_1(&self) -> u16 {
13734 let val = (self.0 >> 14usize) & 0x01; 11866 let val = (self.0 >> 16usize) & 0x0fff;
13735 val != 0 11867 val as u16
13736 } 11868 }
13737 #[doc = "LIN mode enable"] 11869 #[doc = "Secured area end address for bank 1"]
13738 pub fn set_linen(&mut self, val: bool) { 11870 pub fn set_sa_end_1(&mut self, val: u16) {
13739 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize); 11871 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize);
13740 } 11872 }
13741 } 11873 }
13742 impl Default for Cr2 { 11874 impl Default for Ur7 {
13743 fn default() -> Cr2 { 11875 fn default() -> Ur7 {
13744 Cr2(0) 11876 Ur7(0)
13745 } 11877 }
13746 } 11878 }
13747 #[doc = "Status register"] 11879 #[doc = "SYSCFG user register 17"]
13748 #[repr(transparent)] 11880 #[repr(transparent)]
13749 #[derive(Copy, Clone, Eq, PartialEq)] 11881 #[derive(Copy, Clone, Eq, PartialEq)]
13750 pub struct Sr(pub u32); 11882 pub struct Ur17(pub u32);
13751 impl Sr { 11883 impl Ur17 {
13752 #[doc = "Parity error"] 11884 #[doc = "I/O high speed / low voltage"]
13753 pub const fn pe(&self) -> bool { 11885 pub const fn io_hslv(&self) -> bool {
13754 let val = (self.0 >> 0usize) & 0x01; 11886 let val = (self.0 >> 0usize) & 0x01;
13755 val != 0 11887 val != 0
13756 } 11888 }
13757 #[doc = "Parity error"] 11889 #[doc = "I/O high speed / low voltage"]
13758 pub fn set_pe(&mut self, val: bool) { 11890 pub fn set_io_hslv(&mut self, val: bool) {
13759 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 11891 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
13760 } 11892 }
13761 #[doc = "Framing error"]
13762 pub const fn fe(&self) -> bool {
13763 let val = (self.0 >> 1usize) & 0x01;
13764 val != 0
13765 }
13766 #[doc = "Framing error"]
13767 pub fn set_fe(&mut self, val: bool) {
13768 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
13769 }
13770 #[doc = "Noise error flag"]
13771 pub const fn ne(&self) -> bool {
13772 let val = (self.0 >> 2usize) & 0x01;
13773 val != 0
13774 }
13775 #[doc = "Noise error flag"]
13776 pub fn set_ne(&mut self, val: bool) {
13777 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
13778 }
13779 #[doc = "Overrun error"]
13780 pub const fn ore(&self) -> bool {
13781 let val = (self.0 >> 3usize) & 0x01;
13782 val != 0
13783 }
13784 #[doc = "Overrun error"]
13785 pub fn set_ore(&mut self, val: bool) {
13786 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
13787 }
13788 #[doc = "IDLE line detected"]
13789 pub const fn idle(&self) -> bool {
13790 let val = (self.0 >> 4usize) & 0x01;
13791 val != 0
13792 }
13793 #[doc = "IDLE line detected"]
13794 pub fn set_idle(&mut self, val: bool) {
13795 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
13796 }
13797 #[doc = "Read data register not empty"]
13798 pub const fn rxne(&self) -> bool {
13799 let val = (self.0 >> 5usize) & 0x01;
13800 val != 0
13801 }
13802 #[doc = "Read data register not empty"]
13803 pub fn set_rxne(&mut self, val: bool) {
13804 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
13805 }
13806 #[doc = "Transmission complete"]
13807 pub const fn tc(&self) -> bool {
13808 let val = (self.0 >> 6usize) & 0x01;
13809 val != 0
13810 }
13811 #[doc = "Transmission complete"]
13812 pub fn set_tc(&mut self, val: bool) {
13813 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
13814 }
13815 #[doc = "Transmit data register empty"]
13816 pub const fn txe(&self) -> bool {
13817 let val = (self.0 >> 7usize) & 0x01;
13818 val != 0
13819 }
13820 #[doc = "Transmit data register empty"]
13821 pub fn set_txe(&mut self, val: bool) {
13822 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
13823 }
13824 #[doc = "LIN break detection flag"]
13825 pub const fn lbd(&self) -> bool {
13826 let val = (self.0 >> 8usize) & 0x01;
13827 val != 0
13828 }
13829 #[doc = "LIN break detection flag"]
13830 pub fn set_lbd(&mut self, val: bool) {
13831 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
13832 }
13833 } 11893 }
13834 impl Default for Sr { 11894 impl Default for Ur17 {
13835 fn default() -> Sr { 11895 fn default() -> Ur17 {
13836 Sr(0) 11896 Ur17(0)
13837 } 11897 }
13838 } 11898 }
13839 #[doc = "Baud rate register"] 11899 #[doc = "SYSCFG power control register"]
13840 #[repr(transparent)] 11900 #[repr(transparent)]
13841 #[derive(Copy, Clone, Eq, PartialEq)] 11901 #[derive(Copy, Clone, Eq, PartialEq)]
13842 pub struct Brr(pub u32); 11902 pub struct Pwrcr(pub u32);
13843 impl Brr { 11903 impl Pwrcr {
13844 #[doc = "fraction of USARTDIV"] 11904 #[doc = "Overdrive enable"]
13845 pub const fn div_fraction(&self) -> u8 { 11905 pub const fn oden(&self) -> u8 {
13846 let val = (self.0 >> 0usize) & 0x0f; 11906 let val = (self.0 >> 0usize) & 0x0f;
13847 val as u8 11907 val as u8
13848 } 11908 }
13849 #[doc = "fraction of USARTDIV"] 11909 #[doc = "Overdrive enable"]
13850 pub fn set_div_fraction(&mut self, val: u8) { 11910 pub fn set_oden(&mut self, val: u8) {
13851 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize); 11911 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
13852 } 11912 }
13853 #[doc = "mantissa of USARTDIV"]
13854 pub const fn div_mantissa(&self) -> u16 {
13855 let val = (self.0 >> 4usize) & 0x0fff;
13856 val as u16
13857 }
13858 #[doc = "mantissa of USARTDIV"]
13859 pub fn set_div_mantissa(&mut self, val: u16) {
13860 self.0 = (self.0 & !(0x0fff << 4usize)) | (((val as u32) & 0x0fff) << 4usize);
13861 }
13862 } 11913 }
13863 impl Default for Brr { 11914 impl Default for Pwrcr {
13864 fn default() -> Brr { 11915 fn default() -> Pwrcr {
13865 Brr(0) 11916 Pwrcr(0)
13866 } 11917 }
13867 } 11918 }
13868 #[doc = "Control register 3"] 11919 #[doc = "SYSCFG user register 16"]
13869 #[repr(transparent)] 11920 #[repr(transparent)]
13870 #[derive(Copy, Clone, Eq, PartialEq)] 11921 #[derive(Copy, Clone, Eq, PartialEq)]
13871 pub struct Cr3Usart(pub u32); 11922 pub struct Ur16(pub u32);
13872 impl Cr3Usart { 11923 impl Ur16 {
13873 #[doc = "Error interrupt enable"] 11924 #[doc = "Freeze independent watchdog in Stop mode"]
13874 pub const fn eie(&self) -> bool { 11925 pub const fn fziwdgstp(&self) -> bool {
13875 let val = (self.0 >> 0usize) & 0x01; 11926 let val = (self.0 >> 0usize) & 0x01;
13876 val != 0 11927 val != 0
13877 } 11928 }
13878 #[doc = "Error interrupt enable"] 11929 #[doc = "Freeze independent watchdog in Stop mode"]
13879 pub fn set_eie(&mut self, val: bool) { 11930 pub fn set_fziwdgstp(&mut self, val: bool) {
13880 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 11931 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
13881 } 11932 }
13882 #[doc = "IrDA mode enable"] 11933 #[doc = "Private key programmed"]
13883 pub const fn iren(&self) -> bool { 11934 pub const fn pkp(&self) -> bool {
13884 let val = (self.0 >> 1usize) & 0x01; 11935 let val = (self.0 >> 16usize) & 0x01;
13885 val != 0
13886 }
13887 #[doc = "IrDA mode enable"]
13888 pub fn set_iren(&mut self, val: bool) {
13889 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
13890 }
13891 #[doc = "IrDA low-power"]
13892 pub const fn irlp(&self) -> super::vals::Irlp {
13893 let val = (self.0 >> 2usize) & 0x01;
13894 super::vals::Irlp(val as u8)
13895 }
13896 #[doc = "IrDA low-power"]
13897 pub fn set_irlp(&mut self, val: super::vals::Irlp) {
13898 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
13899 }
13900 #[doc = "Half-duplex selection"]
13901 pub const fn hdsel(&self) -> super::vals::Hdsel {
13902 let val = (self.0 >> 3usize) & 0x01;
13903 super::vals::Hdsel(val as u8)
13904 }
13905 #[doc = "Half-duplex selection"]
13906 pub fn set_hdsel(&mut self, val: super::vals::Hdsel) {
13907 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
13908 }
13909 #[doc = "Smartcard NACK enable"]
13910 pub const fn nack(&self) -> bool {
13911 let val = (self.0 >> 4usize) & 0x01;
13912 val != 0
13913 }
13914 #[doc = "Smartcard NACK enable"]
13915 pub fn set_nack(&mut self, val: bool) {
13916 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
13917 }
13918 #[doc = "Smartcard mode enable"]
13919 pub const fn scen(&self) -> bool {
13920 let val = (self.0 >> 5usize) & 0x01;
13921 val != 0
13922 }
13923 #[doc = "Smartcard mode enable"]
13924 pub fn set_scen(&mut self, val: bool) {
13925 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
13926 }
13927 #[doc = "DMA enable receiver"]
13928 pub const fn dmar(&self) -> bool {
13929 let val = (self.0 >> 6usize) & 0x01;
13930 val != 0
13931 }
13932 #[doc = "DMA enable receiver"]
13933 pub fn set_dmar(&mut self, val: bool) {
13934 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
13935 }
13936 #[doc = "DMA enable transmitter"]
13937 pub const fn dmat(&self) -> bool {
13938 let val = (self.0 >> 7usize) & 0x01;
13939 val != 0
13940 }
13941 #[doc = "DMA enable transmitter"]
13942 pub fn set_dmat(&mut self, val: bool) {
13943 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
13944 }
13945 #[doc = "RTS enable"]
13946 pub const fn rtse(&self) -> bool {
13947 let val = (self.0 >> 8usize) & 0x01;
13948 val != 0
13949 }
13950 #[doc = "RTS enable"]
13951 pub fn set_rtse(&mut self, val: bool) {
13952 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
13953 }
13954 #[doc = "CTS enable"]
13955 pub const fn ctse(&self) -> bool {
13956 let val = (self.0 >> 9usize) & 0x01;
13957 val != 0
13958 }
13959 #[doc = "CTS enable"]
13960 pub fn set_ctse(&mut self, val: bool) {
13961 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
13962 }
13963 #[doc = "CTS interrupt enable"]
13964 pub const fn ctsie(&self) -> bool {
13965 let val = (self.0 >> 10usize) & 0x01;
13966 val != 0 11936 val != 0
13967 } 11937 }
13968 #[doc = "CTS interrupt enable"] 11938 #[doc = "Private key programmed"]
13969 pub fn set_ctsie(&mut self, val: bool) { 11939 pub fn set_pkp(&mut self, val: bool) {
13970 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize); 11940 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
13971 } 11941 }
13972 } 11942 }
13973 impl Default for Cr3Usart { 11943 impl Default for Ur16 {
13974 fn default() -> Cr3Usart { 11944 fn default() -> Ur16 {
13975 Cr3Usart(0) 11945 Ur16(0)
13976 } 11946 }
13977 } 11947 }
13978 #[doc = "Status register"] 11948 #[doc = "SYSCFG user register 15"]
13979 #[repr(transparent)] 11949 #[repr(transparent)]
13980 #[derive(Copy, Clone, Eq, PartialEq)] 11950 #[derive(Copy, Clone, Eq, PartialEq)]
13981 pub struct SrUsart(pub u32); 11951 pub struct Ur15(pub u32);
13982 impl SrUsart { 11952 impl Ur15 {
13983 #[doc = "Parity error"] 11953 #[doc = "Freeze independent watchdog in Standby mode"]
13984 pub const fn pe(&self) -> bool { 11954 pub const fn fziwdgstb(&self) -> bool {
13985 let val = (self.0 >> 0usize) & 0x01; 11955 let val = (self.0 >> 16usize) & 0x01;
13986 val != 0
13987 }
13988 #[doc = "Parity error"]
13989 pub fn set_pe(&mut self, val: bool) {
13990 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
13991 }
13992 #[doc = "Framing error"]
13993 pub const fn fe(&self) -> bool {
13994 let val = (self.0 >> 1usize) & 0x01;
13995 val != 0
13996 }
13997 #[doc = "Framing error"]
13998 pub fn set_fe(&mut self, val: bool) {
13999 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
14000 }
14001 #[doc = "Noise error flag"]
14002 pub const fn ne(&self) -> bool {
14003 let val = (self.0 >> 2usize) & 0x01;
14004 val != 0
14005 }
14006 #[doc = "Noise error flag"]
14007 pub fn set_ne(&mut self, val: bool) {
14008 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
14009 }
14010 #[doc = "Overrun error"]
14011 pub const fn ore(&self) -> bool {
14012 let val = (self.0 >> 3usize) & 0x01;
14013 val != 0
14014 }
14015 #[doc = "Overrun error"]
14016 pub fn set_ore(&mut self, val: bool) {
14017 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
14018 }
14019 #[doc = "IDLE line detected"]
14020 pub const fn idle(&self) -> bool {
14021 let val = (self.0 >> 4usize) & 0x01;
14022 val != 0
14023 }
14024 #[doc = "IDLE line detected"]
14025 pub fn set_idle(&mut self, val: bool) {
14026 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
14027 }
14028 #[doc = "Read data register not empty"]
14029 pub const fn rxne(&self) -> bool {
14030 let val = (self.0 >> 5usize) & 0x01;
14031 val != 0
14032 }
14033 #[doc = "Read data register not empty"]
14034 pub fn set_rxne(&mut self, val: bool) {
14035 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
14036 }
14037 #[doc = "Transmission complete"]
14038 pub const fn tc(&self) -> bool {
14039 let val = (self.0 >> 6usize) & 0x01;
14040 val != 0
14041 }
14042 #[doc = "Transmission complete"]
14043 pub fn set_tc(&mut self, val: bool) {
14044 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
14045 }
14046 #[doc = "Transmit data register empty"]
14047 pub const fn txe(&self) -> bool {
14048 let val = (self.0 >> 7usize) & 0x01;
14049 val != 0
14050 }
14051 #[doc = "Transmit data register empty"]
14052 pub fn set_txe(&mut self, val: bool) {
14053 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
14054 }
14055 #[doc = "LIN break detection flag"]
14056 pub const fn lbd(&self) -> bool {
14057 let val = (self.0 >> 8usize) & 0x01;
14058 val != 0
14059 }
14060 #[doc = "LIN break detection flag"]
14061 pub fn set_lbd(&mut self, val: bool) {
14062 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
14063 }
14064 #[doc = "CTS flag"]
14065 pub const fn cts(&self) -> bool {
14066 let val = (self.0 >> 9usize) & 0x01;
14067 val != 0 11956 val != 0
14068 } 11957 }
14069 #[doc = "CTS flag"] 11958 #[doc = "Freeze independent watchdog in Standby mode"]
14070 pub fn set_cts(&mut self, val: bool) { 11959 pub fn set_fziwdgstb(&mut self, val: bool) {
14071 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 11960 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
14072 } 11961 }
14073 } 11962 }
14074 impl Default for SrUsart { 11963 impl Default for Ur15 {
14075 fn default() -> SrUsart { 11964 fn default() -> Ur15 {
14076 SrUsart(0) 11965 Ur15(0)
14077 } 11966 }
14078 } 11967 }
14079 #[doc = "Control register 1"] 11968 #[doc = "SYSCFG user register 4"]
14080 #[repr(transparent)] 11969 #[repr(transparent)]
14081 #[derive(Copy, Clone, Eq, PartialEq)] 11970 #[derive(Copy, Clone, Eq, PartialEq)]
14082 pub struct Cr1(pub u32); 11971 pub struct Ur4(pub u32);
14083 impl Cr1 { 11972 impl Ur4 {
14084 #[doc = "Send break"] 11973 #[doc = "Mass Erase Protected Area Disabled for bank 1"]
14085 pub const fn sbk(&self) -> super::vals::Sbk { 11974 pub const fn mepad_1(&self) -> bool {
14086 let val = (self.0 >> 0usize) & 0x01; 11975 let val = (self.0 >> 16usize) & 0x01;
14087 super::vals::Sbk(val as u8)
14088 }
14089 #[doc = "Send break"]
14090 pub fn set_sbk(&mut self, val: super::vals::Sbk) {
14091 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
14092 }
14093 #[doc = "Receiver wakeup"]
14094 pub const fn rwu(&self) -> super::vals::Rwu {
14095 let val = (self.0 >> 1usize) & 0x01;
14096 super::vals::Rwu(val as u8)
14097 }
14098 #[doc = "Receiver wakeup"]
14099 pub fn set_rwu(&mut self, val: super::vals::Rwu) {
14100 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
14101 }
14102 #[doc = "Receiver enable"]
14103 pub const fn re(&self) -> bool {
14104 let val = (self.0 >> 2usize) & 0x01;
14105 val != 0
14106 }
14107 #[doc = "Receiver enable"]
14108 pub fn set_re(&mut self, val: bool) {
14109 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
14110 }
14111 #[doc = "Transmitter enable"]
14112 pub const fn te(&self) -> bool {
14113 let val = (self.0 >> 3usize) & 0x01;
14114 val != 0
14115 }
14116 #[doc = "Transmitter enable"]
14117 pub fn set_te(&mut self, val: bool) {
14118 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
14119 }
14120 #[doc = "IDLE interrupt enable"]
14121 pub const fn idleie(&self) -> bool {
14122 let val = (self.0 >> 4usize) & 0x01;
14123 val != 0
14124 }
14125 #[doc = "IDLE interrupt enable"]
14126 pub fn set_idleie(&mut self, val: bool) {
14127 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
14128 }
14129 #[doc = "RXNE interrupt enable"]
14130 pub const fn rxneie(&self) -> bool {
14131 let val = (self.0 >> 5usize) & 0x01;
14132 val != 0
14133 }
14134 #[doc = "RXNE interrupt enable"]
14135 pub fn set_rxneie(&mut self, val: bool) {
14136 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
14137 }
14138 #[doc = "Transmission complete interrupt enable"]
14139 pub const fn tcie(&self) -> bool {
14140 let val = (self.0 >> 6usize) & 0x01;
14141 val != 0
14142 }
14143 #[doc = "Transmission complete interrupt enable"]
14144 pub fn set_tcie(&mut self, val: bool) {
14145 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
14146 }
14147 #[doc = "TXE interrupt enable"]
14148 pub const fn txeie(&self) -> bool {
14149 let val = (self.0 >> 7usize) & 0x01;
14150 val != 0
14151 }
14152 #[doc = "TXE interrupt enable"]
14153 pub fn set_txeie(&mut self, val: bool) {
14154 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
14155 }
14156 #[doc = "PE interrupt enable"]
14157 pub const fn peie(&self) -> bool {
14158 let val = (self.0 >> 8usize) & 0x01;
14159 val != 0
14160 }
14161 #[doc = "PE interrupt enable"]
14162 pub fn set_peie(&mut self, val: bool) {
14163 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
14164 }
14165 #[doc = "Parity selection"]
14166 pub const fn ps(&self) -> super::vals::Ps {
14167 let val = (self.0 >> 9usize) & 0x01;
14168 super::vals::Ps(val as u8)
14169 }
14170 #[doc = "Parity selection"]
14171 pub fn set_ps(&mut self, val: super::vals::Ps) {
14172 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
14173 }
14174 #[doc = "Parity control enable"]
14175 pub const fn pce(&self) -> bool {
14176 let val = (self.0 >> 10usize) & 0x01;
14177 val != 0 11976 val != 0
14178 } 11977 }
14179 #[doc = "Parity control enable"] 11978 #[doc = "Mass Erase Protected Area Disabled for bank 1"]
14180 pub fn set_pce(&mut self, val: bool) { 11979 pub fn set_mepad_1(&mut self, val: bool) {
14181 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize); 11980 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
14182 }
14183 #[doc = "Wakeup method"]
14184 pub const fn wake(&self) -> super::vals::Wake {
14185 let val = (self.0 >> 11usize) & 0x01;
14186 super::vals::Wake(val as u8)
14187 } 11981 }
14188 #[doc = "Wakeup method"] 11982 }
14189 pub fn set_wake(&mut self, val: super::vals::Wake) { 11983 impl Default for Ur4 {
14190 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize); 11984 fn default() -> Ur4 {
11985 Ur4(0)
14191 } 11986 }
14192 #[doc = "Word length"] 11987 }
14193 pub const fn m(&self) -> super::vals::M { 11988 #[doc = "SYSCFG user register 13"]
14194 let val = (self.0 >> 12usize) & 0x01; 11989 #[repr(transparent)]
14195 super::vals::M(val as u8) 11990 #[derive(Copy, Clone, Eq, PartialEq)]
11991 pub struct Ur13(pub u32);
11992 impl Ur13 {
11993 #[doc = "Secured DTCM RAM Size"]
11994 pub const fn sdrs(&self) -> u8 {
11995 let val = (self.0 >> 0usize) & 0x03;
11996 val as u8
14196 } 11997 }
14197 #[doc = "Word length"] 11998 #[doc = "Secured DTCM RAM Size"]
14198 pub fn set_m(&mut self, val: super::vals::M) { 11999 pub fn set_sdrs(&mut self, val: u8) {
14199 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize); 12000 self.0 = (self.0 & !(0x03 << 0usize)) | (((val as u32) & 0x03) << 0usize);
14200 } 12001 }
14201 #[doc = "USART enable"] 12002 #[doc = "D1 Standby reset"]
14202 pub const fn ue(&self) -> bool { 12003 pub const fn d1sbrst(&self) -> bool {
14203 let val = (self.0 >> 13usize) & 0x01; 12004 let val = (self.0 >> 16usize) & 0x01;
14204 val != 0 12005 val != 0
14205 } 12006 }
14206 #[doc = "USART enable"] 12007 #[doc = "D1 Standby reset"]
14207 pub fn set_ue(&mut self, val: bool) { 12008 pub fn set_d1sbrst(&mut self, val: bool) {
14208 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize); 12009 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
14209 } 12010 }
14210 } 12011 }
14211 impl Default for Cr1 { 12012 impl Default for Ur13 {
14212 fn default() -> Cr1 { 12013 fn default() -> Ur13 {
14213 Cr1(0) 12014 Ur13(0)
14214 } 12015 }
14215 } 12016 }
14216 #[doc = "Control register 3"] 12017 #[doc = "SYSCFG user register 14"]
14217 #[repr(transparent)] 12018 #[repr(transparent)]
14218 #[derive(Copy, Clone, Eq, PartialEq)] 12019 #[derive(Copy, Clone, Eq, PartialEq)]
14219 pub struct Cr3(pub u32); 12020 pub struct Ur14(pub u32);
14220 impl Cr3 { 12021 impl Ur14 {
14221 #[doc = "Error interrupt enable"] 12022 #[doc = "D1 Stop Reset"]
14222 pub const fn eie(&self) -> bool { 12023 pub const fn d1stprst(&self) -> bool {
14223 let val = (self.0 >> 0usize) & 0x01; 12024 let val = (self.0 >> 0usize) & 0x01;
14224 val != 0 12025 val != 0
14225 } 12026 }
14226 #[doc = "Error interrupt enable"] 12027 #[doc = "D1 Stop Reset"]
14227 pub fn set_eie(&mut self, val: bool) { 12028 pub fn set_d1stprst(&mut self, val: bool) {
14228 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 12029 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
14229 } 12030 }
14230 #[doc = "IrDA mode enable"]
14231 pub const fn iren(&self) -> bool {
14232 let val = (self.0 >> 1usize) & 0x01;
14233 val != 0
14234 }
14235 #[doc = "IrDA mode enable"]
14236 pub fn set_iren(&mut self, val: bool) {
14237 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
14238 }
14239 #[doc = "IrDA low-power"]
14240 pub const fn irlp(&self) -> super::vals::Irlp {
14241 let val = (self.0 >> 2usize) & 0x01;
14242 super::vals::Irlp(val as u8)
14243 }
14244 #[doc = "IrDA low-power"]
14245 pub fn set_irlp(&mut self, val: super::vals::Irlp) {
14246 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
14247 }
14248 #[doc = "Half-duplex selection"]
14249 pub const fn hdsel(&self) -> super::vals::Hdsel {
14250 let val = (self.0 >> 3usize) & 0x01;
14251 super::vals::Hdsel(val as u8)
14252 }
14253 #[doc = "Half-duplex selection"]
14254 pub fn set_hdsel(&mut self, val: super::vals::Hdsel) {
14255 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
14256 }
14257 #[doc = "DMA enable receiver"]
14258 pub const fn dmar(&self) -> bool {
14259 let val = (self.0 >> 6usize) & 0x01;
14260 val != 0
14261 }
14262 #[doc = "DMA enable receiver"]
14263 pub fn set_dmar(&mut self, val: bool) {
14264 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
14265 }
14266 #[doc = "DMA enable transmitter"]
14267 pub const fn dmat(&self) -> bool {
14268 let val = (self.0 >> 7usize) & 0x01;
14269 val != 0
14270 }
14271 #[doc = "DMA enable transmitter"]
14272 pub fn set_dmat(&mut self, val: bool) {
14273 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
14274 }
14275 } 12031 }
14276 impl Default for Cr3 { 12032 impl Default for Ur14 {
14277 fn default() -> Cr3 { 12033 fn default() -> Ur14 {
14278 Cr3(0) 12034 Ur14(0)
14279 } 12035 }
14280 } 12036 }
14281 #[doc = "Data register"] 12037 #[doc = "SYSCFG package register"]
14282 #[repr(transparent)] 12038 #[repr(transparent)]
14283 #[derive(Copy, Clone, Eq, PartialEq)] 12039 #[derive(Copy, Clone, Eq, PartialEq)]
14284 pub struct Dr(pub u32); 12040 pub struct Pkgr(pub u32);
14285 impl Dr { 12041 impl Pkgr {
14286 #[doc = "Data value"] 12042 #[doc = "Package"]
14287 pub const fn dr(&self) -> u16 { 12043 pub const fn pkg(&self) -> u8 {
14288 let val = (self.0 >> 0usize) & 0x01ff; 12044 let val = (self.0 >> 0usize) & 0x0f;
14289 val as u16 12045 val as u8
14290 } 12046 }
14291 #[doc = "Data value"] 12047 #[doc = "Package"]
14292 pub fn set_dr(&mut self, val: u16) { 12048 pub fn set_pkg(&mut self, val: u8) {
14293 self.0 = (self.0 & !(0x01ff << 0usize)) | (((val as u32) & 0x01ff) << 0usize); 12049 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
14294 } 12050 }
14295 } 12051 }
14296 impl Default for Dr { 12052 impl Default for Pkgr {
14297 fn default() -> Dr { 12053 fn default() -> Pkgr {
14298 Dr(0) 12054 Pkgr(0)
14299 } 12055 }
14300 } 12056 }
14301 } 12057 #[doc = "external interrupt configuration register 2"]
14302}
14303pub mod dma_v1 {
14304 use crate::generic::*;
14305 #[doc = "DMA controller"]
14306 #[derive(Copy, Clone)]
14307 pub struct Dma(pub *mut u8);
14308 unsafe impl Send for Dma {}
14309 unsafe impl Sync for Dma {}
14310 impl Dma {
14311 #[doc = "DMA interrupt status register (DMA_ISR)"]
14312 pub fn isr(self) -> Reg<regs::Isr, R> {
14313 unsafe { Reg::from_ptr(self.0.add(0usize)) }
14314 }
14315 #[doc = "DMA interrupt flag clear register (DMA_IFCR)"]
14316 pub fn ifcr(self) -> Reg<regs::Ifcr, W> {
14317 unsafe { Reg::from_ptr(self.0.add(4usize)) }
14318 }
14319 #[doc = "Channel cluster: CCR?, CNDTR?, CPAR?, and CMAR? registers"]
14320 pub fn ch(self, n: usize) -> Ch {
14321 assert!(n < 7usize);
14322 unsafe { Ch(self.0.add(8usize + n * 20usize)) }
14323 }
14324 }
14325 #[doc = "Channel cluster: CCR?, CNDTR?, CPAR?, and CMAR? registers"]
14326 #[derive(Copy, Clone)]
14327 pub struct Ch(pub *mut u8);
14328 unsafe impl Send for Ch {}
14329 unsafe impl Sync for Ch {}
14330 impl Ch {
14331 #[doc = "DMA channel configuration register (DMA_CCR)"]
14332 pub fn cr(self) -> Reg<regs::Cr, RW> {
14333 unsafe { Reg::from_ptr(self.0.add(0usize)) }
14334 }
14335 #[doc = "DMA channel 1 number of data register"]
14336 pub fn ndtr(self) -> Reg<regs::Ndtr, RW> {
14337 unsafe { Reg::from_ptr(self.0.add(4usize)) }
14338 }
14339 #[doc = "DMA channel 1 peripheral address register"]
14340 pub fn par(self) -> Reg<u32, RW> {
14341 unsafe { Reg::from_ptr(self.0.add(8usize)) }
14342 }
14343 #[doc = "DMA channel 1 memory address register"]
14344 pub fn mar(self) -> Reg<u32, RW> {
14345 unsafe { Reg::from_ptr(self.0.add(12usize)) }
14346 }
14347 }
14348 pub mod regs {
14349 use crate::generic::*;
14350 #[doc = "DMA interrupt flag clear register (DMA_IFCR)"]
14351 #[repr(transparent)] 12058 #[repr(transparent)]
14352 #[derive(Copy, Clone, Eq, PartialEq)] 12059 #[derive(Copy, Clone, Eq, PartialEq)]
14353 pub struct Ifcr(pub u32); 12060 pub struct Exticr(pub u32);
14354 impl Ifcr { 12061 impl Exticr {
14355 #[doc = "Channel 1 Global interrupt clear"] 12062 #[doc = "EXTI x configuration (x = 4 to 7)"]
14356 pub fn cgif(&self, n: usize) -> bool { 12063 pub fn exti(&self, n: usize) -> u8 {
14357 assert!(n < 7usize); 12064 assert!(n < 4usize);
14358 let offs = 0usize + n * 4usize; 12065 let offs = 0usize + n * 4usize;
14359 let val = (self.0 >> offs) & 0x01; 12066 let val = (self.0 >> offs) & 0x0f;
14360 val != 0 12067 val as u8
14361 } 12068 }
14362 #[doc = "Channel 1 Global interrupt clear"] 12069 #[doc = "EXTI x configuration (x = 4 to 7)"]
14363 pub fn set_cgif(&mut self, n: usize, val: bool) { 12070 pub fn set_exti(&mut self, n: usize, val: u8) {
14364 assert!(n < 7usize); 12071 assert!(n < 4usize);
14365 let offs = 0usize + n * 4usize; 12072 let offs = 0usize + n * 4usize;
14366 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs); 12073 self.0 = (self.0 & !(0x0f << offs)) | (((val as u32) & 0x0f) << offs);
14367 }
14368 #[doc = "Channel 1 Transfer Complete clear"]
14369 pub fn ctcif(&self, n: usize) -> bool {
14370 assert!(n < 7usize);
14371 let offs = 1usize + n * 4usize;
14372 let val = (self.0 >> offs) & 0x01;
14373 val != 0
14374 }
14375 #[doc = "Channel 1 Transfer Complete clear"]
14376 pub fn set_ctcif(&mut self, n: usize, val: bool) {
14377 assert!(n < 7usize);
14378 let offs = 1usize + n * 4usize;
14379 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
14380 }
14381 #[doc = "Channel 1 Half Transfer clear"]
14382 pub fn chtif(&self, n: usize) -> bool {
14383 assert!(n < 7usize);
14384 let offs = 2usize + n * 4usize;
14385 let val = (self.0 >> offs) & 0x01;
14386 val != 0
14387 }
14388 #[doc = "Channel 1 Half Transfer clear"]
14389 pub fn set_chtif(&mut self, n: usize, val: bool) {
14390 assert!(n < 7usize);
14391 let offs = 2usize + n * 4usize;
14392 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
14393 }
14394 #[doc = "Channel 1 Transfer Error clear"]
14395 pub fn cteif(&self, n: usize) -> bool {
14396 assert!(n < 7usize);
14397 let offs = 3usize + n * 4usize;
14398 let val = (self.0 >> offs) & 0x01;
14399 val != 0
14400 }
14401 #[doc = "Channel 1 Transfer Error clear"]
14402 pub fn set_cteif(&mut self, n: usize, val: bool) {
14403 assert!(n < 7usize);
14404 let offs = 3usize + n * 4usize;
14405 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
14406 } 12074 }
14407 } 12075 }
14408 impl Default for Ifcr { 12076 impl Default for Exticr {
14409 fn default() -> Ifcr { 12077 fn default() -> Exticr {
14410 Ifcr(0) 12078 Exticr(0)
14411 } 12079 }
14412 } 12080 }
14413 #[doc = "DMA channel configuration register (DMA_CCR)"] 12081 #[doc = "SYSCFG user register 0"]
14414 #[repr(transparent)] 12082 #[repr(transparent)]
14415 #[derive(Copy, Clone, Eq, PartialEq)] 12083 #[derive(Copy, Clone, Eq, PartialEq)]
14416 pub struct Cr(pub u32); 12084 pub struct Ur0(pub u32);
14417 impl Cr { 12085 impl Ur0 {
14418 #[doc = "Channel enable"] 12086 #[doc = "Bank Swap"]
14419 pub const fn en(&self) -> bool { 12087 pub const fn bks(&self) -> bool {
14420 let val = (self.0 >> 0usize) & 0x01; 12088 let val = (self.0 >> 0usize) & 0x01;
14421 val != 0 12089 val != 0
14422 } 12090 }
14423 #[doc = "Channel enable"] 12091 #[doc = "Bank Swap"]
14424 pub fn set_en(&mut self, val: bool) { 12092 pub fn set_bks(&mut self, val: bool) {
14425 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 12093 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
14426 } 12094 }
14427 #[doc = "Transfer complete interrupt enable"] 12095 #[doc = "Readout protection"]
14428 pub const fn tcie(&self) -> bool { 12096 pub const fn rdp(&self) -> u8 {
14429 let val = (self.0 >> 1usize) & 0x01; 12097 let val = (self.0 >> 16usize) & 0xff;
14430 val != 0 12098 val as u8
14431 }
14432 #[doc = "Transfer complete interrupt enable"]
14433 pub fn set_tcie(&mut self, val: bool) {
14434 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
14435 }
14436 #[doc = "Half Transfer interrupt enable"]
14437 pub const fn htie(&self) -> bool {
14438 let val = (self.0 >> 2usize) & 0x01;
14439 val != 0
14440 }
14441 #[doc = "Half Transfer interrupt enable"]
14442 pub fn set_htie(&mut self, val: bool) {
14443 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
14444 }
14445 #[doc = "Transfer error interrupt enable"]
14446 pub const fn teie(&self) -> bool {
14447 let val = (self.0 >> 3usize) & 0x01;
14448 val != 0
14449 }
14450 #[doc = "Transfer error interrupt enable"]
14451 pub fn set_teie(&mut self, val: bool) {
14452 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
14453 }
14454 #[doc = "Data transfer direction"]
14455 pub const fn dir(&self) -> super::vals::Dir {
14456 let val = (self.0 >> 4usize) & 0x01;
14457 super::vals::Dir(val as u8)
14458 }
14459 #[doc = "Data transfer direction"]
14460 pub fn set_dir(&mut self, val: super::vals::Dir) {
14461 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
14462 }
14463 #[doc = "Circular mode"]
14464 pub const fn circ(&self) -> super::vals::Circ {
14465 let val = (self.0 >> 5usize) & 0x01;
14466 super::vals::Circ(val as u8)
14467 }
14468 #[doc = "Circular mode"]
14469 pub fn set_circ(&mut self, val: super::vals::Circ) {
14470 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
14471 }
14472 #[doc = "Peripheral increment mode"]
14473 pub const fn pinc(&self) -> super::vals::Inc {
14474 let val = (self.0 >> 6usize) & 0x01;
14475 super::vals::Inc(val as u8)
14476 }
14477 #[doc = "Peripheral increment mode"]
14478 pub fn set_pinc(&mut self, val: super::vals::Inc) {
14479 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
14480 }
14481 #[doc = "Memory increment mode"]
14482 pub const fn minc(&self) -> super::vals::Inc {
14483 let val = (self.0 >> 7usize) & 0x01;
14484 super::vals::Inc(val as u8)
14485 }
14486 #[doc = "Memory increment mode"]
14487 pub fn set_minc(&mut self, val: super::vals::Inc) {
14488 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
14489 }
14490 #[doc = "Peripheral size"]
14491 pub const fn psize(&self) -> super::vals::Size {
14492 let val = (self.0 >> 8usize) & 0x03;
14493 super::vals::Size(val as u8)
14494 }
14495 #[doc = "Peripheral size"]
14496 pub fn set_psize(&mut self, val: super::vals::Size) {
14497 self.0 = (self.0 & !(0x03 << 8usize)) | (((val.0 as u32) & 0x03) << 8usize);
14498 }
14499 #[doc = "Memory size"]
14500 pub const fn msize(&self) -> super::vals::Size {
14501 let val = (self.0 >> 10usize) & 0x03;
14502 super::vals::Size(val as u8)
14503 }
14504 #[doc = "Memory size"]
14505 pub fn set_msize(&mut self, val: super::vals::Size) {
14506 self.0 = (self.0 & !(0x03 << 10usize)) | (((val.0 as u32) & 0x03) << 10usize);
14507 }
14508 #[doc = "Channel Priority level"]
14509 pub const fn pl(&self) -> super::vals::Pl {
14510 let val = (self.0 >> 12usize) & 0x03;
14511 super::vals::Pl(val as u8)
14512 }
14513 #[doc = "Channel Priority level"]
14514 pub fn set_pl(&mut self, val: super::vals::Pl) {
14515 self.0 = (self.0 & !(0x03 << 12usize)) | (((val.0 as u32) & 0x03) << 12usize);
14516 }
14517 #[doc = "Memory to memory mode"]
14518 pub const fn mem2mem(&self) -> super::vals::Memmem {
14519 let val = (self.0 >> 14usize) & 0x01;
14520 super::vals::Memmem(val as u8)
14521 } 12099 }
14522 #[doc = "Memory to memory mode"] 12100 #[doc = "Readout protection"]
14523 pub fn set_mem2mem(&mut self, val: super::vals::Memmem) { 12101 pub fn set_rdp(&mut self, val: u8) {
14524 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 12102 self.0 = (self.0 & !(0xff << 16usize)) | (((val as u32) & 0xff) << 16usize);
14525 } 12103 }
14526 } 12104 }
14527 impl Default for Cr { 12105 impl Default for Ur0 {
14528 fn default() -> Cr { 12106 fn default() -> Ur0 {
14529 Cr(0) 12107 Ur0(0)
14530 } 12108 }
14531 } 12109 }
14532 #[doc = "DMA channel 1 number of data register"] 12110 #[doc = "SYSCFG user register 3"]
14533 #[repr(transparent)] 12111 #[repr(transparent)]
14534 #[derive(Copy, Clone, Eq, PartialEq)] 12112 #[derive(Copy, Clone, Eq, PartialEq)]
14535 pub struct Ndtr(pub u32); 12113 pub struct Ur3(pub u32);
14536 impl Ndtr { 12114 impl Ur3 {
14537 #[doc = "Number of data to transfer"] 12115 #[doc = "Boot Address 1"]
14538 pub const fn ndt(&self) -> u16 { 12116 pub const fn boot_add1(&self) -> u16 {
14539 let val = (self.0 >> 0usize) & 0xffff; 12117 let val = (self.0 >> 16usize) & 0xffff;
14540 val as u16 12118 val as u16
14541 } 12119 }
14542 #[doc = "Number of data to transfer"] 12120 #[doc = "Boot Address 1"]
14543 pub fn set_ndt(&mut self, val: u16) { 12121 pub fn set_boot_add1(&mut self, val: u16) {
14544 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize); 12122 self.0 = (self.0 & !(0xffff << 16usize)) | (((val as u32) & 0xffff) << 16usize);
14545 } 12123 }
14546 } 12124 }
14547 impl Default for Ndtr { 12125 impl Default for Ur3 {
14548 fn default() -> Ndtr { 12126 fn default() -> Ur3 {
14549 Ndtr(0) 12127 Ur3(0)
14550 } 12128 }
14551 } 12129 }
14552 #[doc = "DMA interrupt status register (DMA_ISR)"] 12130 #[doc = "SYSCFG user register 11"]
14553 #[repr(transparent)] 12131 #[repr(transparent)]
14554 #[derive(Copy, Clone, Eq, PartialEq)] 12132 #[derive(Copy, Clone, Eq, PartialEq)]
14555 pub struct Isr(pub u32); 12133 pub struct Ur11(pub u32);
14556 impl Isr { 12134 impl Ur11 {
14557 #[doc = "Channel 1 Global interrupt flag"] 12135 #[doc = "Secured area end address for bank 2"]
14558 pub fn gif(&self, n: usize) -> bool { 12136 pub const fn sa_end_2(&self) -> u16 {
14559 assert!(n < 7usize); 12137 let val = (self.0 >> 0usize) & 0x0fff;
14560 let offs = 0usize + n * 4usize; 12138 val as u16
14561 let val = (self.0 >> offs) & 0x01;
14562 val != 0
14563 }
14564 #[doc = "Channel 1 Global interrupt flag"]
14565 pub fn set_gif(&mut self, n: usize, val: bool) {
14566 assert!(n < 7usize);
14567 let offs = 0usize + n * 4usize;
14568 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
14569 }
14570 #[doc = "Channel 1 Transfer Complete flag"]
14571 pub fn tcif(&self, n: usize) -> bool {
14572 assert!(n < 7usize);
14573 let offs = 1usize + n * 4usize;
14574 let val = (self.0 >> offs) & 0x01;
14575 val != 0
14576 }
14577 #[doc = "Channel 1 Transfer Complete flag"]
14578 pub fn set_tcif(&mut self, n: usize, val: bool) {
14579 assert!(n < 7usize);
14580 let offs = 1usize + n * 4usize;
14581 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
14582 }
14583 #[doc = "Channel 1 Half Transfer Complete flag"]
14584 pub fn htif(&self, n: usize) -> bool {
14585 assert!(n < 7usize);
14586 let offs = 2usize + n * 4usize;
14587 let val = (self.0 >> offs) & 0x01;
14588 val != 0
14589 } 12139 }
14590 #[doc = "Channel 1 Half Transfer Complete flag"] 12140 #[doc = "Secured area end address for bank 2"]
14591 pub fn set_htif(&mut self, n: usize, val: bool) { 12141 pub fn set_sa_end_2(&mut self, val: u16) {
14592 assert!(n < 7usize); 12142 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize);
14593 let offs = 2usize + n * 4usize;
14594 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
14595 } 12143 }
14596 #[doc = "Channel 1 Transfer Error flag"] 12144 #[doc = "Independent Watchdog 1 mode"]
14597 pub fn teif(&self, n: usize) -> bool { 12145 pub const fn iwdg1m(&self) -> bool {
14598 assert!(n < 7usize); 12146 let val = (self.0 >> 16usize) & 0x01;
14599 let offs = 3usize + n * 4usize;
14600 let val = (self.0 >> offs) & 0x01;
14601 val != 0 12147 val != 0
14602 } 12148 }
14603 #[doc = "Channel 1 Transfer Error flag"] 12149 #[doc = "Independent Watchdog 1 mode"]
14604 pub fn set_teif(&mut self, n: usize, val: bool) { 12150 pub fn set_iwdg1m(&mut self, val: bool) {
14605 assert!(n < 7usize); 12151 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
14606 let offs = 3usize + n * 4usize;
14607 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
14608 } 12152 }
14609 } 12153 }
14610 impl Default for Isr { 12154 impl Default for Ur11 {
14611 fn default() -> Isr { 12155 fn default() -> Ur11 {
14612 Isr(0) 12156 Ur11(0)
14613 } 12157 }
14614 } 12158 }
14615 }
14616 pub mod vals {
14617 use crate::generic::*;
14618 #[repr(transparent)]
14619 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
14620 pub struct Size(pub u8);
14621 impl Size {
14622 #[doc = "8-bit size"]
14623 pub const BITS8: Self = Self(0);
14624 #[doc = "16-bit size"]
14625 pub const BITS16: Self = Self(0x01);
14626 #[doc = "32-bit size"]
14627 pub const BITS32: Self = Self(0x02);
14628 }
14629 #[repr(transparent)]
14630 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
14631 pub struct Inc(pub u8);
14632 impl Inc {
14633 #[doc = "Increment mode disabled"]
14634 pub const DISABLED: Self = Self(0);
14635 #[doc = "Increment mode enabled"]
14636 pub const ENABLED: Self = Self(0x01);
14637 }
14638 #[repr(transparent)]
14639 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
14640 pub struct Dir(pub u8);
14641 impl Dir {
14642 #[doc = "Read from peripheral"]
14643 pub const FROMPERIPHERAL: Self = Self(0);
14644 #[doc = "Read from memory"]
14645 pub const FROMMEMORY: Self = Self(0x01);
14646 }
14647 #[repr(transparent)]
14648 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
14649 pub struct Pl(pub u8);
14650 impl Pl {
14651 #[doc = "Low priority"]
14652 pub const LOW: Self = Self(0);
14653 #[doc = "Medium priority"]
14654 pub const MEDIUM: Self = Self(0x01);
14655 #[doc = "High priority"]
14656 pub const HIGH: Self = Self(0x02);
14657 #[doc = "Very high priority"]
14658 pub const VERYHIGH: Self = Self(0x03);
14659 }
14660 #[repr(transparent)]
14661 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
14662 pub struct Memmem(pub u8);
14663 impl Memmem {
14664 #[doc = "Memory to memory mode disabled"]
14665 pub const DISABLED: Self = Self(0);
14666 #[doc = "Memory to memory mode enabled"]
14667 pub const ENABLED: Self = Self(0x01);
14668 }
14669 #[repr(transparent)]
14670 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
14671 pub struct Circ(pub u8);
14672 impl Circ {
14673 #[doc = "Circular buffer disabled"]
14674 pub const DISABLED: Self = Self(0);
14675 #[doc = "Circular buffer enabled"]
14676 pub const ENABLED: Self = Self(0x01);
14677 }
14678 }
14679}
14680pub mod syscfg_h7 {
14681 use crate::generic::*;
14682 #[doc = "System configuration controller"]
14683 #[derive(Copy, Clone)]
14684 pub struct Syscfg(pub *mut u8);
14685 unsafe impl Send for Syscfg {}
14686 unsafe impl Sync for Syscfg {}
14687 impl Syscfg {
14688 #[doc = "peripheral mode configuration register"]
14689 pub fn pmcr(self) -> Reg<regs::Pmcr, RW> {
14690 unsafe { Reg::from_ptr(self.0.add(4usize)) }
14691 }
14692 #[doc = "external interrupt configuration register 1"]
14693 pub fn exticr(self, n: usize) -> Reg<regs::Exticr, RW> {
14694 assert!(n < 4usize);
14695 unsafe { Reg::from_ptr(self.0.add(8usize + n * 4usize)) }
14696 }
14697 #[doc = "compensation cell control/status register"] 12159 #[doc = "compensation cell control/status register"]
14698 pub fn cccsr(self) -> Reg<regs::Cccsr, RW> {
14699 unsafe { Reg::from_ptr(self.0.add(32usize)) }
14700 }
14701 #[doc = "SYSCFG compensation cell value register"]
14702 pub fn ccvr(self) -> Reg<regs::Ccvr, R> {
14703 unsafe { Reg::from_ptr(self.0.add(36usize)) }
14704 }
14705 #[doc = "SYSCFG compensation cell code register"]
14706 pub fn cccr(self) -> Reg<regs::Cccr, RW> {
14707 unsafe { Reg::from_ptr(self.0.add(40usize)) }
14708 }
14709 #[doc = "SYSCFG power control register"]
14710 pub fn pwrcr(self) -> Reg<regs::Pwrcr, RW> {
14711 unsafe { Reg::from_ptr(self.0.add(44usize)) }
14712 }
14713 #[doc = "SYSCFG package register"]
14714 pub fn pkgr(self) -> Reg<regs::Pkgr, R> {
14715 unsafe { Reg::from_ptr(self.0.add(292usize)) }
14716 }
14717 #[doc = "SYSCFG user register 0"]
14718 pub fn ur0(self) -> Reg<regs::Ur0, R> {
14719 unsafe { Reg::from_ptr(self.0.add(768usize)) }
14720 }
14721 #[doc = "SYSCFG user register 2"]
14722 pub fn ur2(self) -> Reg<regs::Ur2, RW> {
14723 unsafe { Reg::from_ptr(self.0.add(776usize)) }
14724 }
14725 #[doc = "SYSCFG user register 3"]
14726 pub fn ur3(self) -> Reg<regs::Ur3, RW> {
14727 unsafe { Reg::from_ptr(self.0.add(780usize)) }
14728 }
14729 #[doc = "SYSCFG user register 4"]
14730 pub fn ur4(self) -> Reg<regs::Ur4, R> {
14731 unsafe { Reg::from_ptr(self.0.add(784usize)) }
14732 }
14733 #[doc = "SYSCFG user register 5"]
14734 pub fn ur5(self) -> Reg<regs::Ur5, R> {
14735 unsafe { Reg::from_ptr(self.0.add(788usize)) }
14736 }
14737 #[doc = "SYSCFG user register 6"]
14738 pub fn ur6(self) -> Reg<regs::Ur6, R> {
14739 unsafe { Reg::from_ptr(self.0.add(792usize)) }
14740 }
14741 #[doc = "SYSCFG user register 7"]
14742 pub fn ur7(self) -> Reg<regs::Ur7, R> {
14743 unsafe { Reg::from_ptr(self.0.add(796usize)) }
14744 }
14745 #[doc = "SYSCFG user register 8"]
14746 pub fn ur8(self) -> Reg<regs::Ur8, R> {
14747 unsafe { Reg::from_ptr(self.0.add(800usize)) }
14748 }
14749 #[doc = "SYSCFG user register 9"]
14750 pub fn ur9(self) -> Reg<regs::Ur9, R> {
14751 unsafe { Reg::from_ptr(self.0.add(804usize)) }
14752 }
14753 #[doc = "SYSCFG user register 10"]
14754 pub fn ur10(self) -> Reg<regs::Ur10, R> {
14755 unsafe { Reg::from_ptr(self.0.add(808usize)) }
14756 }
14757 #[doc = "SYSCFG user register 11"]
14758 pub fn ur11(self) -> Reg<regs::Ur11, R> {
14759 unsafe { Reg::from_ptr(self.0.add(812usize)) }
14760 }
14761 #[doc = "SYSCFG user register 12"]
14762 pub fn ur12(self) -> Reg<regs::Ur12, R> {
14763 unsafe { Reg::from_ptr(self.0.add(816usize)) }
14764 }
14765 #[doc = "SYSCFG user register 13"]
14766 pub fn ur13(self) -> Reg<regs::Ur13, R> {
14767 unsafe { Reg::from_ptr(self.0.add(820usize)) }
14768 }
14769 #[doc = "SYSCFG user register 14"]
14770 pub fn ur14(self) -> Reg<regs::Ur14, RW> {
14771 unsafe { Reg::from_ptr(self.0.add(824usize)) }
14772 }
14773 #[doc = "SYSCFG user register 15"]
14774 pub fn ur15(self) -> Reg<regs::Ur15, R> {
14775 unsafe { Reg::from_ptr(self.0.add(828usize)) }
14776 }
14777 #[doc = "SYSCFG user register 16"]
14778 pub fn ur16(self) -> Reg<regs::Ur16, R> {
14779 unsafe { Reg::from_ptr(self.0.add(832usize)) }
14780 }
14781 #[doc = "SYSCFG user register 17"]
14782 pub fn ur17(self) -> Reg<regs::Ur17, R> {
14783 unsafe { Reg::from_ptr(self.0.add(836usize)) }
14784 }
14785 }
14786 pub mod regs {
14787 use crate::generic::*;
14788 #[doc = "SYSCFG user register 6"]
14789 #[repr(transparent)] 12160 #[repr(transparent)]
14790 #[derive(Copy, Clone, Eq, PartialEq)] 12161 #[derive(Copy, Clone, Eq, PartialEq)]
14791 pub struct Ur6(pub u32); 12162 pub struct Cccsr(pub u32);
14792 impl Ur6 { 12163 impl Cccsr {
14793 #[doc = "Protected area start address for bank 1"] 12164 #[doc = "enable"]
14794 pub const fn pa_beg_1(&self) -> u16 { 12165 pub const fn en(&self) -> bool {
14795 let val = (self.0 >> 0usize) & 0x0fff; 12166 let val = (self.0 >> 0usize) & 0x01;
14796 val as u16 12167 val != 0
14797 } 12168 }
14798 #[doc = "Protected area start address for bank 1"] 12169 #[doc = "enable"]
14799 pub fn set_pa_beg_1(&mut self, val: u16) { 12170 pub fn set_en(&mut self, val: bool) {
14800 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize); 12171 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
14801 } 12172 }
14802 #[doc = "Protected area end address for bank 1"] 12173 #[doc = "Code selection"]
14803 pub const fn pa_end_1(&self) -> u16 { 12174 pub const fn cs(&self) -> bool {
14804 let val = (self.0 >> 16usize) & 0x0fff; 12175 let val = (self.0 >> 1usize) & 0x01;
14805 val as u16 12176 val != 0
14806 } 12177 }
14807 #[doc = "Protected area end address for bank 1"] 12178 #[doc = "Code selection"]
14808 pub fn set_pa_end_1(&mut self, val: u16) { 12179 pub fn set_cs(&mut self, val: bool) {
14809 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize); 12180 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
14810 } 12181 }
14811 } 12182 #[doc = "Compensation cell ready flag"]
14812 impl Default for Ur6 { 12183 pub const fn ready(&self) -> bool {
14813 fn default() -> Ur6 { 12184 let val = (self.0 >> 8usize) & 0x01;
14814 Ur6(0) 12185 val != 0
14815 } 12186 }
14816 } 12187 #[doc = "Compensation cell ready flag"]
14817 #[doc = "SYSCFG user register 14"] 12188 pub fn set_ready(&mut self, val: bool) {
14818 #[repr(transparent)] 12189 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
14819 #[derive(Copy, Clone, Eq, PartialEq)] 12190 }
14820 pub struct Ur14(pub u32); 12191 #[doc = "High-speed at low-voltage"]
14821 impl Ur14 { 12192 pub const fn hslv(&self) -> bool {
14822 #[doc = "D1 Stop Reset"] 12193 let val = (self.0 >> 16usize) & 0x01;
14823 pub const fn d1stprst(&self) -> bool {
14824 let val = (self.0 >> 0usize) & 0x01;
14825 val != 0 12194 val != 0
14826 } 12195 }
14827 #[doc = "D1 Stop Reset"] 12196 #[doc = "High-speed at low-voltage"]
14828 pub fn set_d1stprst(&mut self, val: bool) { 12197 pub fn set_hslv(&mut self, val: bool) {
14829 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 12198 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
14830 } 12199 }
14831 } 12200 }
14832 impl Default for Ur14 { 12201 impl Default for Cccsr {
14833 fn default() -> Ur14 { 12202 fn default() -> Cccsr {
14834 Ur14(0) 12203 Cccsr(0)
14835 } 12204 }
14836 } 12205 }
14837 #[doc = "SYSCFG user register 5"] 12206 #[doc = "SYSCFG user register 5"]
@@ -14863,33 +12232,33 @@ pub mod syscfg_h7 {
14863 Ur5(0) 12232 Ur5(0)
14864 } 12233 }
14865 } 12234 }
14866 #[doc = "SYSCFG compensation cell code register"] 12235 #[doc = "SYSCFG compensation cell value register"]
14867 #[repr(transparent)] 12236 #[repr(transparent)]
14868 #[derive(Copy, Clone, Eq, PartialEq)] 12237 #[derive(Copy, Clone, Eq, PartialEq)]
14869 pub struct Cccr(pub u32); 12238 pub struct Ccvr(pub u32);
14870 impl Cccr { 12239 impl Ccvr {
14871 #[doc = "NMOS compensation code"] 12240 #[doc = "NMOS compensation value"]
14872 pub const fn ncc(&self) -> u8 { 12241 pub const fn ncv(&self) -> u8 {
14873 let val = (self.0 >> 0usize) & 0x0f; 12242 let val = (self.0 >> 0usize) & 0x0f;
14874 val as u8 12243 val as u8
14875 } 12244 }
14876 #[doc = "NMOS compensation code"] 12245 #[doc = "NMOS compensation value"]
14877 pub fn set_ncc(&mut self, val: u8) { 12246 pub fn set_ncv(&mut self, val: u8) {
14878 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize); 12247 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
14879 } 12248 }
14880 #[doc = "PMOS compensation code"] 12249 #[doc = "PMOS compensation value"]
14881 pub const fn pcc(&self) -> u8 { 12250 pub const fn pcv(&self) -> u8 {
14882 let val = (self.0 >> 4usize) & 0x0f; 12251 let val = (self.0 >> 4usize) & 0x0f;
14883 val as u8 12252 val as u8
14884 } 12253 }
14885 #[doc = "PMOS compensation code"] 12254 #[doc = "PMOS compensation value"]
14886 pub fn set_pcc(&mut self, val: u8) { 12255 pub fn set_pcv(&mut self, val: u8) {
14887 self.0 = (self.0 & !(0x0f << 4usize)) | (((val as u32) & 0x0f) << 4usize); 12256 self.0 = (self.0 & !(0x0f << 4usize)) | (((val as u32) & 0x0f) << 4usize);
14888 } 12257 }
14889 } 12258 }
14890 impl Default for Cccr { 12259 impl Default for Ccvr {
14891 fn default() -> Cccr { 12260 fn default() -> Ccvr {
14892 Cccr(0) 12261 Ccvr(0)
14893 } 12262 }
14894 } 12263 }
14895 #[doc = "SYSCFG user register 2"] 12264 #[doc = "SYSCFG user register 2"]
@@ -14921,71 +12290,33 @@ pub mod syscfg_h7 {
14921 Ur2(0) 12290 Ur2(0)
14922 } 12291 }
14923 } 12292 }
14924 #[doc = "compensation cell control/status register"] 12293 #[doc = "SYSCFG user register 8"]
14925 #[repr(transparent)] 12294 #[repr(transparent)]
14926 #[derive(Copy, Clone, Eq, PartialEq)] 12295 #[derive(Copy, Clone, Eq, PartialEq)]
14927 pub struct Cccsr(pub u32); 12296 pub struct Ur8(pub u32);
14928 impl Cccsr { 12297 impl Ur8 {
14929 #[doc = "enable"] 12298 #[doc = "Mass erase protected area disabled for bank 2"]
14930 pub const fn en(&self) -> bool { 12299 pub const fn mepad_2(&self) -> bool {
14931 let val = (self.0 >> 0usize) & 0x01; 12300 let val = (self.0 >> 0usize) & 0x01;
14932 val != 0 12301 val != 0
14933 } 12302 }
14934 #[doc = "enable"] 12303 #[doc = "Mass erase protected area disabled for bank 2"]
14935 pub fn set_en(&mut self, val: bool) { 12304 pub fn set_mepad_2(&mut self, val: bool) {
14936 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 12305 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
14937 } 12306 }
14938 #[doc = "Code selection"] 12307 #[doc = "Mass erase secured area disabled for bank 2"]
14939 pub const fn cs(&self) -> bool { 12308 pub const fn mesad_2(&self) -> bool {
14940 let val = (self.0 >> 1usize) & 0x01;
14941 val != 0
14942 }
14943 #[doc = "Code selection"]
14944 pub fn set_cs(&mut self, val: bool) {
14945 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
14946 }
14947 #[doc = "Compensation cell ready flag"]
14948 pub const fn ready(&self) -> bool {
14949 let val = (self.0 >> 8usize) & 0x01;
14950 val != 0
14951 }
14952 #[doc = "Compensation cell ready flag"]
14953 pub fn set_ready(&mut self, val: bool) {
14954 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
14955 }
14956 #[doc = "High-speed at low-voltage"]
14957 pub const fn hslv(&self) -> bool {
14958 let val = (self.0 >> 16usize) & 0x01;
14959 val != 0
14960 }
14961 #[doc = "High-speed at low-voltage"]
14962 pub fn set_hslv(&mut self, val: bool) {
14963 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
14964 }
14965 }
14966 impl Default for Cccsr {
14967 fn default() -> Cccsr {
14968 Cccsr(0)
14969 }
14970 }
14971 #[doc = "SYSCFG user register 4"]
14972 #[repr(transparent)]
14973 #[derive(Copy, Clone, Eq, PartialEq)]
14974 pub struct Ur4(pub u32);
14975 impl Ur4 {
14976 #[doc = "Mass Erase Protected Area Disabled for bank 1"]
14977 pub const fn mepad_1(&self) -> bool {
14978 let val = (self.0 >> 16usize) & 0x01; 12309 let val = (self.0 >> 16usize) & 0x01;
14979 val != 0 12310 val != 0
14980 } 12311 }
14981 #[doc = "Mass Erase Protected Area Disabled for bank 1"] 12312 #[doc = "Mass erase secured area disabled for bank 2"]
14982 pub fn set_mepad_1(&mut self, val: bool) { 12313 pub fn set_mesad_2(&mut self, val: bool) {
14983 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 12314 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
14984 } 12315 }
14985 } 12316 }
14986 impl Default for Ur4 { 12317 impl Default for Ur8 {
14987 fn default() -> Ur4 { 12318 fn default() -> Ur8 {
14988 Ur4(0) 12319 Ur8(0)
14989 } 12320 }
14990 } 12321 }
14991 #[doc = "SYSCFG user register 12"] 12322 #[doc = "SYSCFG user register 12"]
@@ -15154,351 +12485,502 @@ pub mod syscfg_h7 {
15154 Pmcr(0) 12485 Pmcr(0)
15155 } 12486 }
15156 } 12487 }
15157 #[doc = "SYSCFG user register 15"] 12488 #[doc = "SYSCFG compensation cell code register"]
15158 #[repr(transparent)] 12489 #[repr(transparent)]
15159 #[derive(Copy, Clone, Eq, PartialEq)] 12490 #[derive(Copy, Clone, Eq, PartialEq)]
15160 pub struct Ur15(pub u32); 12491 pub struct Cccr(pub u32);
15161 impl Ur15 { 12492 impl Cccr {
15162 #[doc = "Freeze independent watchdog in Standby mode"] 12493 #[doc = "NMOS compensation code"]
15163 pub const fn fziwdgstb(&self) -> bool { 12494 pub const fn ncc(&self) -> u8 {
12495 let val = (self.0 >> 0usize) & 0x0f;
12496 val as u8
12497 }
12498 #[doc = "NMOS compensation code"]
12499 pub fn set_ncc(&mut self, val: u8) {
12500 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
12501 }
12502 #[doc = "PMOS compensation code"]
12503 pub const fn pcc(&self) -> u8 {
12504 let val = (self.0 >> 4usize) & 0x0f;
12505 val as u8
12506 }
12507 #[doc = "PMOS compensation code"]
12508 pub fn set_pcc(&mut self, val: u8) {
12509 self.0 = (self.0 & !(0x0f << 4usize)) | (((val as u32) & 0x0f) << 4usize);
12510 }
12511 }
12512 impl Default for Cccr {
12513 fn default() -> Cccr {
12514 Cccr(0)
12515 }
12516 }
12517 }
12518}
12519pub mod syscfg_f4 {
12520 use crate::generic::*;
12521 #[doc = "System configuration controller"]
12522 #[derive(Copy, Clone)]
12523 pub struct Syscfg(pub *mut u8);
12524 unsafe impl Send for Syscfg {}
12525 unsafe impl Sync for Syscfg {}
12526 impl Syscfg {
12527 #[doc = "memory remap register"]
12528 pub fn memrm(self) -> Reg<regs::Memrm, RW> {
12529 unsafe { Reg::from_ptr(self.0.add(0usize)) }
12530 }
12531 #[doc = "peripheral mode configuration register"]
12532 pub fn pmc(self) -> Reg<regs::Pmc, RW> {
12533 unsafe { Reg::from_ptr(self.0.add(4usize)) }
12534 }
12535 #[doc = "external interrupt configuration register"]
12536 pub fn exticr(self, n: usize) -> Reg<regs::Exticr, RW> {
12537 assert!(n < 4usize);
12538 unsafe { Reg::from_ptr(self.0.add(8usize + n * 4usize)) }
12539 }
12540 #[doc = "Compensation cell control register"]
12541 pub fn cmpcr(self) -> Reg<regs::Cmpcr, R> {
12542 unsafe { Reg::from_ptr(self.0.add(32usize)) }
12543 }
12544 }
12545 pub mod regs {
12546 use crate::generic::*;
12547 #[doc = "peripheral mode configuration register"]
12548 #[repr(transparent)]
12549 #[derive(Copy, Clone, Eq, PartialEq)]
12550 pub struct Pmc(pub u32);
12551 impl Pmc {
12552 #[doc = "ADC1DC2"]
12553 pub const fn adc1dc2(&self) -> bool {
15164 let val = (self.0 >> 16usize) & 0x01; 12554 let val = (self.0 >> 16usize) & 0x01;
15165 val != 0 12555 val != 0
15166 } 12556 }
15167 #[doc = "Freeze independent watchdog in Standby mode"] 12557 #[doc = "ADC1DC2"]
15168 pub fn set_fziwdgstb(&mut self, val: bool) { 12558 pub fn set_adc1dc2(&mut self, val: bool) {
15169 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 12559 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
15170 } 12560 }
12561 #[doc = "ADC2DC2"]
12562 pub const fn adc2dc2(&self) -> bool {
12563 let val = (self.0 >> 17usize) & 0x01;
12564 val != 0
12565 }
12566 #[doc = "ADC2DC2"]
12567 pub fn set_adc2dc2(&mut self, val: bool) {
12568 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
12569 }
12570 #[doc = "ADC3DC2"]
12571 pub const fn adc3dc2(&self) -> bool {
12572 let val = (self.0 >> 18usize) & 0x01;
12573 val != 0
12574 }
12575 #[doc = "ADC3DC2"]
12576 pub fn set_adc3dc2(&mut self, val: bool) {
12577 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize);
12578 }
12579 #[doc = "Ethernet PHY interface selection"]
12580 pub const fn mii_rmii_sel(&self) -> bool {
12581 let val = (self.0 >> 23usize) & 0x01;
12582 val != 0
12583 }
12584 #[doc = "Ethernet PHY interface selection"]
12585 pub fn set_mii_rmii_sel(&mut self, val: bool) {
12586 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
12587 }
15171 } 12588 }
15172 impl Default for Ur15 { 12589 impl Default for Pmc {
15173 fn default() -> Ur15 { 12590 fn default() -> Pmc {
15174 Ur15(0) 12591 Pmc(0)
15175 } 12592 }
15176 } 12593 }
15177 #[doc = "SYSCFG user register 16"] 12594 #[doc = "Compensation cell control register"]
15178 #[repr(transparent)] 12595 #[repr(transparent)]
15179 #[derive(Copy, Clone, Eq, PartialEq)] 12596 #[derive(Copy, Clone, Eq, PartialEq)]
15180 pub struct Ur16(pub u32); 12597 pub struct Cmpcr(pub u32);
15181 impl Ur16 { 12598 impl Cmpcr {
15182 #[doc = "Freeze independent watchdog in Stop mode"] 12599 #[doc = "Compensation cell power-down"]
15183 pub const fn fziwdgstp(&self) -> bool { 12600 pub const fn cmp_pd(&self) -> bool {
15184 let val = (self.0 >> 0usize) & 0x01; 12601 let val = (self.0 >> 0usize) & 0x01;
15185 val != 0 12602 val != 0
15186 } 12603 }
15187 #[doc = "Freeze independent watchdog in Stop mode"] 12604 #[doc = "Compensation cell power-down"]
15188 pub fn set_fziwdgstp(&mut self, val: bool) { 12605 pub fn set_cmp_pd(&mut self, val: bool) {
15189 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 12606 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
15190 } 12607 }
15191 #[doc = "Private key programmed"] 12608 #[doc = "READY"]
15192 pub const fn pkp(&self) -> bool { 12609 pub const fn ready(&self) -> bool {
15193 let val = (self.0 >> 16usize) & 0x01; 12610 let val = (self.0 >> 8usize) & 0x01;
15194 val != 0 12611 val != 0
15195 } 12612 }
15196 #[doc = "Private key programmed"] 12613 #[doc = "READY"]
15197 pub fn set_pkp(&mut self, val: bool) { 12614 pub fn set_ready(&mut self, val: bool) {
15198 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 12615 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
15199 } 12616 }
15200 } 12617 }
15201 impl Default for Ur16 { 12618 impl Default for Cmpcr {
15202 fn default() -> Ur16 { 12619 fn default() -> Cmpcr {
15203 Ur16(0) 12620 Cmpcr(0)
15204 } 12621 }
15205 } 12622 }
15206 #[doc = "SYSCFG user register 13"] 12623 #[doc = "external interrupt configuration register"]
15207 #[repr(transparent)] 12624 #[repr(transparent)]
15208 #[derive(Copy, Clone, Eq, PartialEq)] 12625 #[derive(Copy, Clone, Eq, PartialEq)]
15209 pub struct Ur13(pub u32); 12626 pub struct Exticr(pub u32);
15210 impl Ur13 { 12627 impl Exticr {
15211 #[doc = "Secured DTCM RAM Size"] 12628 #[doc = "EXTI x configuration"]
15212 pub const fn sdrs(&self) -> u8 { 12629 pub fn exti(&self, n: usize) -> u8 {
15213 let val = (self.0 >> 0usize) & 0x03; 12630 assert!(n < 4usize);
12631 let offs = 0usize + n * 4usize;
12632 let val = (self.0 >> offs) & 0x0f;
15214 val as u8 12633 val as u8
15215 } 12634 }
15216 #[doc = "Secured DTCM RAM Size"] 12635 #[doc = "EXTI x configuration"]
15217 pub fn set_sdrs(&mut self, val: u8) { 12636 pub fn set_exti(&mut self, n: usize, val: u8) {
15218 self.0 = (self.0 & !(0x03 << 0usize)) | (((val as u32) & 0x03) << 0usize); 12637 assert!(n < 4usize);
15219 } 12638 let offs = 0usize + n * 4usize;
15220 #[doc = "D1 Standby reset"] 12639 self.0 = (self.0 & !(0x0f << offs)) | (((val as u32) & 0x0f) << offs);
15221 pub const fn d1sbrst(&self) -> bool {
15222 let val = (self.0 >> 16usize) & 0x01;
15223 val != 0
15224 }
15225 #[doc = "D1 Standby reset"]
15226 pub fn set_d1sbrst(&mut self, val: bool) {
15227 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
15228 } 12640 }
15229 } 12641 }
15230 impl Default for Ur13 { 12642 impl Default for Exticr {
15231 fn default() -> Ur13 { 12643 fn default() -> Exticr {
15232 Ur13(0) 12644 Exticr(0)
15233 } 12645 }
15234 } 12646 }
15235 #[doc = "SYSCFG package register"] 12647 #[doc = "memory remap register"]
15236 #[repr(transparent)] 12648 #[repr(transparent)]
15237 #[derive(Copy, Clone, Eq, PartialEq)] 12649 #[derive(Copy, Clone, Eq, PartialEq)]
15238 pub struct Pkgr(pub u32); 12650 pub struct Memrm(pub u32);
15239 impl Pkgr { 12651 impl Memrm {
15240 #[doc = "Package"] 12652 #[doc = "Memory mapping selection"]
15241 pub const fn pkg(&self) -> u8 { 12653 pub const fn mem_mode(&self) -> u8 {
15242 let val = (self.0 >> 0usize) & 0x0f; 12654 let val = (self.0 >> 0usize) & 0x07;
15243 val as u8 12655 val as u8
15244 } 12656 }
15245 #[doc = "Package"] 12657 #[doc = "Memory mapping selection"]
15246 pub fn set_pkg(&mut self, val: u8) { 12658 pub fn set_mem_mode(&mut self, val: u8) {
15247 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize); 12659 self.0 = (self.0 & !(0x07 << 0usize)) | (((val as u32) & 0x07) << 0usize);
12660 }
12661 #[doc = "Flash bank mode selection"]
12662 pub const fn fb_mode(&self) -> bool {
12663 let val = (self.0 >> 8usize) & 0x01;
12664 val != 0
12665 }
12666 #[doc = "Flash bank mode selection"]
12667 pub fn set_fb_mode(&mut self, val: bool) {
12668 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
12669 }
12670 #[doc = "FMC memory mapping swap"]
12671 pub const fn swp_fmc(&self) -> u8 {
12672 let val = (self.0 >> 10usize) & 0x03;
12673 val as u8
12674 }
12675 #[doc = "FMC memory mapping swap"]
12676 pub fn set_swp_fmc(&mut self, val: u8) {
12677 self.0 = (self.0 & !(0x03 << 10usize)) | (((val as u32) & 0x03) << 10usize);
15248 } 12678 }
15249 } 12679 }
15250 impl Default for Pkgr { 12680 impl Default for Memrm {
15251 fn default() -> Pkgr { 12681 fn default() -> Memrm {
15252 Pkgr(0) 12682 Memrm(0)
15253 } 12683 }
15254 } 12684 }
15255 #[doc = "SYSCFG user register 11"] 12685 }
12686}
12687pub mod syscfg_l4 {
12688 use crate::generic::*;
12689 #[doc = "System configuration controller"]
12690 #[derive(Copy, Clone)]
12691 pub struct Syscfg(pub *mut u8);
12692 unsafe impl Send for Syscfg {}
12693 unsafe impl Sync for Syscfg {}
12694 impl Syscfg {
12695 #[doc = "memory remap register"]
12696 pub fn memrmp(self) -> Reg<regs::Memrmp, RW> {
12697 unsafe { Reg::from_ptr(self.0.add(0usize)) }
12698 }
12699 #[doc = "configuration register 1"]
12700 pub fn cfgr1(self) -> Reg<regs::Cfgr1, RW> {
12701 unsafe { Reg::from_ptr(self.0.add(4usize)) }
12702 }
12703 #[doc = "external interrupt configuration register 1"]
12704 pub fn exticr(self, n: usize) -> Reg<regs::Exticr, RW> {
12705 assert!(n < 4usize);
12706 unsafe { Reg::from_ptr(self.0.add(8usize + n * 4usize)) }
12707 }
12708 #[doc = "SCSR"]
12709 pub fn scsr(self) -> Reg<regs::Scsr, RW> {
12710 unsafe { Reg::from_ptr(self.0.add(24usize)) }
12711 }
12712 #[doc = "CFGR2"]
12713 pub fn cfgr2(self) -> Reg<regs::Cfgr2, RW> {
12714 unsafe { Reg::from_ptr(self.0.add(28usize)) }
12715 }
12716 #[doc = "SWPR"]
12717 pub fn swpr(self) -> Reg<regs::Swpr, W> {
12718 unsafe { Reg::from_ptr(self.0.add(32usize)) }
12719 }
12720 #[doc = "SKR"]
12721 pub fn skr(self) -> Reg<regs::Skr, W> {
12722 unsafe { Reg::from_ptr(self.0.add(36usize)) }
12723 }
12724 }
12725 pub mod regs {
12726 use crate::generic::*;
12727 #[doc = "CFGR2"]
15256 #[repr(transparent)] 12728 #[repr(transparent)]
15257 #[derive(Copy, Clone, Eq, PartialEq)] 12729 #[derive(Copy, Clone, Eq, PartialEq)]
15258 pub struct Ur11(pub u32); 12730 pub struct Cfgr2(pub u32);
15259 impl Ur11 { 12731 impl Cfgr2 {
15260 #[doc = "Secured area end address for bank 2"] 12732 #[doc = "Cortex LOCKUP (Hardfault) output enable bit"]
15261 pub const fn sa_end_2(&self) -> u16 { 12733 pub const fn cll(&self) -> bool {
15262 let val = (self.0 >> 0usize) & 0x0fff; 12734 let val = (self.0 >> 0usize) & 0x01;
15263 val as u16 12735 val != 0
15264 } 12736 }
15265 #[doc = "Secured area end address for bank 2"] 12737 #[doc = "Cortex LOCKUP (Hardfault) output enable bit"]
15266 pub fn set_sa_end_2(&mut self, val: u16) { 12738 pub fn set_cll(&mut self, val: bool) {
15267 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize); 12739 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
15268 } 12740 }
15269 #[doc = "Independent Watchdog 1 mode"] 12741 #[doc = "SRAM2 parity lock bit"]
15270 pub const fn iwdg1m(&self) -> bool { 12742 pub const fn spl(&self) -> bool {
15271 let val = (self.0 >> 16usize) & 0x01; 12743 let val = (self.0 >> 1usize) & 0x01;
15272 val != 0 12744 val != 0
15273 } 12745 }
15274 #[doc = "Independent Watchdog 1 mode"] 12746 #[doc = "SRAM2 parity lock bit"]
15275 pub fn set_iwdg1m(&mut self, val: bool) { 12747 pub fn set_spl(&mut self, val: bool) {
15276 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 12748 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
12749 }
12750 #[doc = "PVD lock enable bit"]
12751 pub const fn pvdl(&self) -> bool {
12752 let val = (self.0 >> 2usize) & 0x01;
12753 val != 0
12754 }
12755 #[doc = "PVD lock enable bit"]
12756 pub fn set_pvdl(&mut self, val: bool) {
12757 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
12758 }
12759 #[doc = "ECC Lock"]
12760 pub const fn eccl(&self) -> bool {
12761 let val = (self.0 >> 3usize) & 0x01;
12762 val != 0
12763 }
12764 #[doc = "ECC Lock"]
12765 pub fn set_eccl(&mut self, val: bool) {
12766 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
12767 }
12768 #[doc = "SRAM2 parity error flag"]
12769 pub const fn spf(&self) -> bool {
12770 let val = (self.0 >> 8usize) & 0x01;
12771 val != 0
12772 }
12773 #[doc = "SRAM2 parity error flag"]
12774 pub fn set_spf(&mut self, val: bool) {
12775 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
15277 } 12776 }
15278 } 12777 }
15279 impl Default for Ur11 { 12778 impl Default for Cfgr2 {
15280 fn default() -> Ur11 { 12779 fn default() -> Cfgr2 {
15281 Ur11(0) 12780 Cfgr2(0)
15282 } 12781 }
15283 } 12782 }
15284 #[doc = "SYSCFG user register 3"] 12783 #[doc = "SKR"]
15285 #[repr(transparent)] 12784 #[repr(transparent)]
15286 #[derive(Copy, Clone, Eq, PartialEq)] 12785 #[derive(Copy, Clone, Eq, PartialEq)]
15287 pub struct Ur3(pub u32); 12786 pub struct Skr(pub u32);
15288 impl Ur3 { 12787 impl Skr {
15289 #[doc = "Boot Address 1"] 12788 #[doc = "SRAM2 write protection key for software erase"]
15290 pub const fn boot_add1(&self) -> u16 { 12789 pub const fn key(&self) -> u8 {
15291 let val = (self.0 >> 16usize) & 0xffff; 12790 let val = (self.0 >> 0usize) & 0xff;
15292 val as u16 12791 val as u8
15293 } 12792 }
15294 #[doc = "Boot Address 1"] 12793 #[doc = "SRAM2 write protection key for software erase"]
15295 pub fn set_boot_add1(&mut self, val: u16) { 12794 pub fn set_key(&mut self, val: u8) {
15296 self.0 = (self.0 & !(0xffff << 16usize)) | (((val as u32) & 0xffff) << 16usize); 12795 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
15297 } 12796 }
15298 } 12797 }
15299 impl Default for Ur3 { 12798 impl Default for Skr {
15300 fn default() -> Ur3 { 12799 fn default() -> Skr {
15301 Ur3(0) 12800 Skr(0)
15302 } 12801 }
15303 } 12802 }
15304 #[doc = "SYSCFG user register 7"] 12803 #[doc = "memory remap register"]
15305 #[repr(transparent)] 12804 #[repr(transparent)]
15306 #[derive(Copy, Clone, Eq, PartialEq)] 12805 #[derive(Copy, Clone, Eq, PartialEq)]
15307 pub struct Ur7(pub u32); 12806 pub struct Memrmp(pub u32);
15308 impl Ur7 { 12807 impl Memrmp {
15309 #[doc = "Secured area start address for bank 1"] 12808 #[doc = "Memory mapping selection"]
15310 pub const fn sa_beg_1(&self) -> u16 { 12809 pub const fn mem_mode(&self) -> u8 {
15311 let val = (self.0 >> 0usize) & 0x0fff; 12810 let val = (self.0 >> 0usize) & 0x07;
15312 val as u16 12811 val as u8
15313 } 12812 }
15314 #[doc = "Secured area start address for bank 1"] 12813 #[doc = "Memory mapping selection"]
15315 pub fn set_sa_beg_1(&mut self, val: u16) { 12814 pub fn set_mem_mode(&mut self, val: u8) {
15316 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize); 12815 self.0 = (self.0 & !(0x07 << 0usize)) | (((val as u32) & 0x07) << 0usize);
15317 } 12816 }
15318 #[doc = "Secured area end address for bank 1"] 12817 #[doc = "QUADSPI memory mapping swap"]
15319 pub const fn sa_end_1(&self) -> u16 { 12818 pub const fn qfs(&self) -> bool {
15320 let val = (self.0 >> 16usize) & 0x0fff; 12819 let val = (self.0 >> 3usize) & 0x01;
15321 val as u16 12820 val != 0
15322 } 12821 }
15323 #[doc = "Secured area end address for bank 1"] 12822 #[doc = "QUADSPI memory mapping swap"]
15324 pub fn set_sa_end_1(&mut self, val: u16) { 12823 pub fn set_qfs(&mut self, val: bool) {
15325 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize); 12824 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
12825 }
12826 #[doc = "Flash Bank mode selection"]
12827 pub const fn fb_mode(&self) -> bool {
12828 let val = (self.0 >> 8usize) & 0x01;
12829 val != 0
12830 }
12831 #[doc = "Flash Bank mode selection"]
12832 pub fn set_fb_mode(&mut self, val: bool) {
12833 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
15326 } 12834 }
15327 } 12835 }
15328 impl Default for Ur7 { 12836 impl Default for Memrmp {
15329 fn default() -> Ur7 { 12837 fn default() -> Memrmp {
15330 Ur7(0) 12838 Memrmp(0)
15331 } 12839 }
15332 } 12840 }
15333 #[doc = "SYSCFG user register 10"] 12841 #[doc = "SCSR"]
15334 #[repr(transparent)] 12842 #[repr(transparent)]
15335 #[derive(Copy, Clone, Eq, PartialEq)] 12843 #[derive(Copy, Clone, Eq, PartialEq)]
15336 pub struct Ur10(pub u32); 12844 pub struct Scsr(pub u32);
15337 impl Ur10 { 12845 impl Scsr {
15338 #[doc = "Protected area end address for bank 2"] 12846 #[doc = "SRAM2 Erase"]
15339 pub const fn pa_end_2(&self) -> u16 { 12847 pub const fn sram2er(&self) -> bool {
15340 let val = (self.0 >> 0usize) & 0x0fff; 12848 let val = (self.0 >> 0usize) & 0x01;
15341 val as u16 12849 val != 0
15342 } 12850 }
15343 #[doc = "Protected area end address for bank 2"] 12851 #[doc = "SRAM2 Erase"]
15344 pub fn set_pa_end_2(&mut self, val: u16) { 12852 pub fn set_sram2er(&mut self, val: bool) {
15345 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize); 12853 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
15346 } 12854 }
15347 #[doc = "Secured area start address for bank 2"] 12855 #[doc = "SRAM2 busy by erase operation"]
15348 pub const fn sa_beg_2(&self) -> u16 { 12856 pub const fn sram2bsy(&self) -> bool {
15349 let val = (self.0 >> 16usize) & 0x0fff; 12857 let val = (self.0 >> 1usize) & 0x01;
15350 val as u16 12858 val != 0
15351 } 12859 }
15352 #[doc = "Secured area start address for bank 2"] 12860 #[doc = "SRAM2 busy by erase operation"]
15353 pub fn set_sa_beg_2(&mut self, val: u16) { 12861 pub fn set_sram2bsy(&mut self, val: bool) {
15354 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize); 12862 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
15355 } 12863 }
15356 } 12864 }
15357 impl Default for Ur10 { 12865 impl Default for Scsr {
15358 fn default() -> Ur10 { 12866 fn default() -> Scsr {
15359 Ur10(0) 12867 Scsr(0)
15360 } 12868 }
15361 } 12869 }
15362 #[doc = "SYSCFG user register 17"] 12870 #[doc = "configuration register 1"]
15363 #[repr(transparent)] 12871 #[repr(transparent)]
15364 #[derive(Copy, Clone, Eq, PartialEq)] 12872 #[derive(Copy, Clone, Eq, PartialEq)]
15365 pub struct Ur17(pub u32); 12873 pub struct Cfgr1(pub u32);
15366 impl Ur17 { 12874 impl Cfgr1 {
15367 #[doc = "I/O high speed / low voltage"] 12875 #[doc = "Firewall disable"]
15368 pub const fn io_hslv(&self) -> bool { 12876 pub const fn fwdis(&self) -> bool {
15369 let val = (self.0 >> 0usize) & 0x01; 12877 let val = (self.0 >> 0usize) & 0x01;
15370 val != 0 12878 val != 0
15371 } 12879 }
15372 #[doc = "I/O high speed / low voltage"] 12880 #[doc = "Firewall disable"]
15373 pub fn set_io_hslv(&mut self, val: bool) { 12881 pub fn set_fwdis(&mut self, val: bool) {
15374 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 12882 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
15375 } 12883 }
15376 } 12884 #[doc = "I/O analog switch voltage booster enable"]
15377 impl Default for Ur17 { 12885 pub const fn boosten(&self) -> bool {
15378 fn default() -> Ur17 { 12886 let val = (self.0 >> 8usize) & 0x01;
15379 Ur17(0) 12887 val != 0
15380 } 12888 }
15381 } 12889 #[doc = "I/O analog switch voltage booster enable"]
15382 #[doc = "SYSCFG compensation cell value register"] 12890 pub fn set_boosten(&mut self, val: bool) {
15383 #[repr(transparent)] 12891 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
15384 #[derive(Copy, Clone, Eq, PartialEq)]
15385 pub struct Ccvr(pub u32);
15386 impl Ccvr {
15387 #[doc = "NMOS compensation value"]
15388 pub const fn ncv(&self) -> u8 {
15389 let val = (self.0 >> 0usize) & 0x0f;
15390 val as u8
15391 } 12892 }
15392 #[doc = "NMOS compensation value"] 12893 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB6"]
15393 pub fn set_ncv(&mut self, val: u8) { 12894 pub const fn i2c_pb6_fmp(&self) -> bool {
15394 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize); 12895 let val = (self.0 >> 16usize) & 0x01;
12896 val != 0
15395 } 12897 }
15396 #[doc = "PMOS compensation value"] 12898 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB6"]
15397 pub const fn pcv(&self) -> u8 { 12899 pub fn set_i2c_pb6_fmp(&mut self, val: bool) {
15398 let val = (self.0 >> 4usize) & 0x0f; 12900 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
15399 val as u8
15400 } 12901 }
15401 #[doc = "PMOS compensation value"] 12902 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB7"]
15402 pub fn set_pcv(&mut self, val: u8) { 12903 pub const fn i2c_pb7_fmp(&self) -> bool {
15403 self.0 = (self.0 & !(0x0f << 4usize)) | (((val as u32) & 0x0f) << 4usize); 12904 let val = (self.0 >> 17usize) & 0x01;
12905 val != 0
15404 } 12906 }
15405 } 12907 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB7"]
15406 impl Default for Ccvr { 12908 pub fn set_i2c_pb7_fmp(&mut self, val: bool) {
15407 fn default() -> Ccvr { 12909 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
15408 Ccvr(0)
15409 } 12910 }
15410 } 12911 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB8"]
15411 #[doc = "SYSCFG user register 9"] 12912 pub const fn i2c_pb8_fmp(&self) -> bool {
15412 #[repr(transparent)] 12913 let val = (self.0 >> 18usize) & 0x01;
15413 #[derive(Copy, Clone, Eq, PartialEq)] 12914 val != 0
15414 pub struct Ur9(pub u32);
15415 impl Ur9 {
15416 #[doc = "Write protection for flash bank 2"]
15417 pub const fn wrpn_2(&self) -> u8 {
15418 let val = (self.0 >> 0usize) & 0xff;
15419 val as u8
15420 } 12915 }
15421 #[doc = "Write protection for flash bank 2"] 12916 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB8"]
15422 pub fn set_wrpn_2(&mut self, val: u8) { 12917 pub fn set_i2c_pb8_fmp(&mut self, val: bool) {
15423 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize); 12918 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize);
15424 } 12919 }
15425 #[doc = "Protected area start address for bank 2"] 12920 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB9"]
15426 pub const fn pa_beg_2(&self) -> u16 { 12921 pub const fn i2c_pb9_fmp(&self) -> bool {
15427 let val = (self.0 >> 16usize) & 0x0fff; 12922 let val = (self.0 >> 19usize) & 0x01;
15428 val as u16 12923 val != 0
15429 } 12924 }
15430 #[doc = "Protected area start address for bank 2"] 12925 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB9"]
15431 pub fn set_pa_beg_2(&mut self, val: u16) { 12926 pub fn set_i2c_pb9_fmp(&mut self, val: bool) {
15432 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize); 12927 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize);
15433 } 12928 }
15434 } 12929 #[doc = "I2C1 Fast-mode Plus driving capability activation"]
15435 impl Default for Ur9 { 12930 pub const fn i2c1_fmp(&self) -> bool {
15436 fn default() -> Ur9 { 12931 let val = (self.0 >> 20usize) & 0x01;
15437 Ur9(0) 12932 val != 0
15438 } 12933 }
15439 } 12934 #[doc = "I2C1 Fast-mode Plus driving capability activation"]
15440 #[doc = "SYSCFG power control register"] 12935 pub fn set_i2c1_fmp(&mut self, val: bool) {
15441 #[repr(transparent)] 12936 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize);
15442 #[derive(Copy, Clone, Eq, PartialEq)]
15443 pub struct Pwrcr(pub u32);
15444 impl Pwrcr {
15445 #[doc = "Overdrive enable"]
15446 pub const fn oden(&self) -> u8 {
15447 let val = (self.0 >> 0usize) & 0x0f;
15448 val as u8
15449 } 12937 }
15450 #[doc = "Overdrive enable"] 12938 #[doc = "I2C2 Fast-mode Plus driving capability activation"]
15451 pub fn set_oden(&mut self, val: u8) { 12939 pub const fn i2c2_fmp(&self) -> bool {
15452 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize); 12940 let val = (self.0 >> 21usize) & 0x01;
12941 val != 0
15453 } 12942 }
15454 } 12943 #[doc = "I2C2 Fast-mode Plus driving capability activation"]
15455 impl Default for Pwrcr { 12944 pub fn set_i2c2_fmp(&mut self, val: bool) {
15456 fn default() -> Pwrcr { 12945 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
15457 Pwrcr(0)
15458 } 12946 }
15459 } 12947 #[doc = "I2C3 Fast-mode Plus driving capability activation"]
15460 #[doc = "SYSCFG user register 0"] 12948 pub const fn i2c3_fmp(&self) -> bool {
15461 #[repr(transparent)] 12949 let val = (self.0 >> 22usize) & 0x01;
15462 #[derive(Copy, Clone, Eq, PartialEq)]
15463 pub struct Ur0(pub u32);
15464 impl Ur0 {
15465 #[doc = "Bank Swap"]
15466 pub const fn bks(&self) -> bool {
15467 let val = (self.0 >> 0usize) & 0x01;
15468 val != 0 12950 val != 0
15469 } 12951 }
15470 #[doc = "Bank Swap"] 12952 #[doc = "I2C3 Fast-mode Plus driving capability activation"]
15471 pub fn set_bks(&mut self, val: bool) { 12953 pub fn set_i2c3_fmp(&mut self, val: bool) {
15472 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 12954 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
15473 } 12955 }
15474 #[doc = "Readout protection"] 12956 #[doc = "Floating Point Unit interrupts enable bits"]
15475 pub const fn rdp(&self) -> u8 { 12957 pub const fn fpu_ie(&self) -> u8 {
15476 let val = (self.0 >> 16usize) & 0xff; 12958 let val = (self.0 >> 26usize) & 0x3f;
15477 val as u8 12959 val as u8
15478 } 12960 }
15479 #[doc = "Readout protection"] 12961 #[doc = "Floating Point Unit interrupts enable bits"]
15480 pub fn set_rdp(&mut self, val: u8) { 12962 pub fn set_fpu_ie(&mut self, val: u8) {
15481 self.0 = (self.0 & !(0xff << 16usize)) | (((val as u32) & 0xff) << 16usize); 12963 self.0 = (self.0 & !(0x3f << 26usize)) | (((val as u32) & 0x3f) << 26usize);
15482 } 12964 }
15483 } 12965 }
15484 impl Default for Ur0 { 12966 impl Default for Cfgr1 {
15485 fn default() -> Ur0 { 12967 fn default() -> Cfgr1 {
15486 Ur0(0) 12968 Cfgr1(0)
15487 } 12969 }
15488 } 12970 }
15489 #[doc = "external interrupt configuration register 2"] 12971 #[doc = "external interrupt configuration register 4"]
15490 #[repr(transparent)] 12972 #[repr(transparent)]
15491 #[derive(Copy, Clone, Eq, PartialEq)] 12973 #[derive(Copy, Clone, Eq, PartialEq)]
15492 pub struct Exticr(pub u32); 12974 pub struct Exticr(pub u32);
15493 impl Exticr { 12975 impl Exticr {
15494 #[doc = "EXTI x configuration (x = 4 to 7)"] 12976 #[doc = "EXTI12 configuration bits"]
15495 pub fn exti(&self, n: usize) -> u8 { 12977 pub fn exti(&self, n: usize) -> u8 {
15496 assert!(n < 4usize); 12978 assert!(n < 4usize);
15497 let offs = 0usize + n * 4usize; 12979 let offs = 0usize + n * 4usize;
15498 let val = (self.0 >> offs) & 0x0f; 12980 let val = (self.0 >> offs) & 0x0f;
15499 val as u8 12981 val as u8
15500 } 12982 }
15501 #[doc = "EXTI x configuration (x = 4 to 7)"] 12983 #[doc = "EXTI12 configuration bits"]
15502 pub fn set_exti(&mut self, n: usize, val: u8) { 12984 pub fn set_exti(&mut self, n: usize, val: u8) {
15503 assert!(n < 4usize); 12985 assert!(n < 4usize);
15504 let offs = 0usize + n * 4usize; 12986 let offs = 0usize + n * 4usize;
@@ -15510,1705 +12992,1181 @@ pub mod syscfg_h7 {
15510 Exticr(0) 12992 Exticr(0)
15511 } 12993 }
15512 } 12994 }
15513 #[doc = "SYSCFG user register 8"] 12995 #[doc = "SWPR"]
15514 #[repr(transparent)] 12996 #[repr(transparent)]
15515 #[derive(Copy, Clone, Eq, PartialEq)] 12997 #[derive(Copy, Clone, Eq, PartialEq)]
15516 pub struct Ur8(pub u32); 12998 pub struct Swpr(pub u32);
15517 impl Ur8 { 12999 impl Swpr {
15518 #[doc = "Mass erase protected area disabled for bank 2"] 13000 #[doc = "SRAWM2 write protection."]
15519 pub const fn mepad_2(&self) -> bool { 13001 pub fn pwp(&self, n: usize) -> bool {
15520 let val = (self.0 >> 0usize) & 0x01; 13002 assert!(n < 32usize);
15521 val != 0 13003 let offs = 0usize + n * 1usize;
15522 } 13004 let val = (self.0 >> offs) & 0x01;
15523 #[doc = "Mass erase protected area disabled for bank 2"]
15524 pub fn set_mepad_2(&mut self, val: bool) {
15525 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
15526 }
15527 #[doc = "Mass erase secured area disabled for bank 2"]
15528 pub const fn mesad_2(&self) -> bool {
15529 let val = (self.0 >> 16usize) & 0x01;
15530 val != 0 13005 val != 0
15531 } 13006 }
15532 #[doc = "Mass erase secured area disabled for bank 2"] 13007 #[doc = "SRAWM2 write protection."]
15533 pub fn set_mesad_2(&mut self, val: bool) { 13008 pub fn set_pwp(&mut self, n: usize, val: bool) {
15534 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 13009 assert!(n < 32usize);
13010 let offs = 0usize + n * 1usize;
13011 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
15535 } 13012 }
15536 } 13013 }
15537 impl Default for Ur8 { 13014 impl Default for Swpr {
15538 fn default() -> Ur8 { 13015 fn default() -> Swpr {
15539 Ur8(0) 13016 Swpr(0)
15540 } 13017 }
15541 } 13018 }
15542 } 13019 }
15543} 13020}
15544pub mod timer_v1 { 13021pub mod gpio_v1 {
15545 use crate::generic::*; 13022 use crate::generic::*;
15546 #[doc = "General purpose 16-bit timer"] 13023 #[doc = "General purpose I/O"]
15547 #[derive(Copy, Clone)]
15548 pub struct TimGp16(pub *mut u8);
15549 unsafe impl Send for TimGp16 {}
15550 unsafe impl Sync for TimGp16 {}
15551 impl TimGp16 {
15552 #[doc = "control register 1"]
15553 pub fn cr1(self) -> Reg<regs::Cr1Gp, RW> {
15554 unsafe { Reg::from_ptr(self.0.add(0usize)) }
15555 }
15556 #[doc = "control register 2"]
15557 pub fn cr2(self) -> Reg<regs::Cr2Gp, RW> {
15558 unsafe { Reg::from_ptr(self.0.add(4usize)) }
15559 }
15560 #[doc = "slave mode control register"]
15561 pub fn smcr(self) -> Reg<regs::Smcr, RW> {
15562 unsafe { Reg::from_ptr(self.0.add(8usize)) }
15563 }
15564 #[doc = "DMA/Interrupt enable register"]
15565 pub fn dier(self) -> Reg<regs::DierGp, RW> {
15566 unsafe { Reg::from_ptr(self.0.add(12usize)) }
15567 }
15568 #[doc = "status register"]
15569 pub fn sr(self) -> Reg<regs::SrGp, RW> {
15570 unsafe { Reg::from_ptr(self.0.add(16usize)) }
15571 }
15572 #[doc = "event generation register"]
15573 pub fn egr(self) -> Reg<regs::EgrGp, W> {
15574 unsafe { Reg::from_ptr(self.0.add(20usize)) }
15575 }
15576 #[doc = "capture/compare mode register 1 (input mode)"]
15577 pub fn ccmr_input(self, n: usize) -> Reg<regs::CcmrInput, RW> {
15578 assert!(n < 2usize);
15579 unsafe { Reg::from_ptr(self.0.add(24usize + n * 4usize)) }
15580 }
15581 #[doc = "capture/compare mode register 1 (output mode)"]
15582 pub fn ccmr_output(self, n: usize) -> Reg<regs::CcmrOutput, RW> {
15583 assert!(n < 2usize);
15584 unsafe { Reg::from_ptr(self.0.add(24usize + n * 4usize)) }
15585 }
15586 #[doc = "capture/compare enable register"]
15587 pub fn ccer(self) -> Reg<regs::CcerGp, RW> {
15588 unsafe { Reg::from_ptr(self.0.add(32usize)) }
15589 }
15590 #[doc = "counter"]
15591 pub fn cnt(self) -> Reg<regs::Cnt16, RW> {
15592 unsafe { Reg::from_ptr(self.0.add(36usize)) }
15593 }
15594 #[doc = "prescaler"]
15595 pub fn psc(self) -> Reg<regs::Psc, RW> {
15596 unsafe { Reg::from_ptr(self.0.add(40usize)) }
15597 }
15598 #[doc = "auto-reload register"]
15599 pub fn arr(self) -> Reg<regs::Arr16, RW> {
15600 unsafe { Reg::from_ptr(self.0.add(44usize)) }
15601 }
15602 #[doc = "capture/compare register"]
15603 pub fn ccr(self, n: usize) -> Reg<regs::Ccr16, RW> {
15604 assert!(n < 4usize);
15605 unsafe { Reg::from_ptr(self.0.add(52usize + n * 4usize)) }
15606 }
15607 #[doc = "DMA control register"]
15608 pub fn dcr(self) -> Reg<regs::Dcr, RW> {
15609 unsafe { Reg::from_ptr(self.0.add(72usize)) }
15610 }
15611 #[doc = "DMA address for full transfer"]
15612 pub fn dmar(self) -> Reg<regs::Dmar, RW> {
15613 unsafe { Reg::from_ptr(self.0.add(76usize)) }
15614 }
15615 }
15616 #[doc = "Advanced-timers"]
15617 #[derive(Copy, Clone)] 13024 #[derive(Copy, Clone)]
15618 pub struct TimAdv(pub *mut u8); 13025 pub struct Gpio(pub *mut u8);
15619 unsafe impl Send for TimAdv {} 13026 unsafe impl Send for Gpio {}
15620 unsafe impl Sync for TimAdv {} 13027 unsafe impl Sync for Gpio {}
15621 impl TimAdv { 13028 impl Gpio {
15622 #[doc = "control register 1"] 13029 #[doc = "Port configuration register low (GPIOn_CRL)"]
15623 pub fn cr1(self) -> Reg<regs::Cr1Gp, RW> { 13030 pub fn cr(self, n: usize) -> Reg<regs::Cr, RW> {
15624 unsafe { Reg::from_ptr(self.0.add(0usize)) }
15625 }
15626 #[doc = "control register 2"]
15627 pub fn cr2(self) -> Reg<regs::Cr2Adv, RW> {
15628 unsafe { Reg::from_ptr(self.0.add(4usize)) }
15629 }
15630 #[doc = "slave mode control register"]
15631 pub fn smcr(self) -> Reg<regs::Smcr, RW> {
15632 unsafe { Reg::from_ptr(self.0.add(8usize)) }
15633 }
15634 #[doc = "DMA/Interrupt enable register"]
15635 pub fn dier(self) -> Reg<regs::DierAdv, RW> {
15636 unsafe { Reg::from_ptr(self.0.add(12usize)) }
15637 }
15638 #[doc = "status register"]
15639 pub fn sr(self) -> Reg<regs::SrAdv, RW> {
15640 unsafe { Reg::from_ptr(self.0.add(16usize)) }
15641 }
15642 #[doc = "event generation register"]
15643 pub fn egr(self) -> Reg<regs::EgrAdv, W> {
15644 unsafe { Reg::from_ptr(self.0.add(20usize)) }
15645 }
15646 #[doc = "capture/compare mode register 1 (input mode)"]
15647 pub fn ccmr_input(self, n: usize) -> Reg<regs::CcmrInput, RW> {
15648 assert!(n < 2usize);
15649 unsafe { Reg::from_ptr(self.0.add(24usize + n * 4usize)) }
15650 }
15651 #[doc = "capture/compare mode register 1 (output mode)"]
15652 pub fn ccmr_output(self, n: usize) -> Reg<regs::CcmrOutput, RW> {
15653 assert!(n < 2usize); 13031 assert!(n < 2usize);
15654 unsafe { Reg::from_ptr(self.0.add(24usize + n * 4usize)) } 13032 unsafe { Reg::from_ptr(self.0.add(0usize + n * 4usize)) }
15655 }
15656 #[doc = "capture/compare enable register"]
15657 pub fn ccer(self) -> Reg<regs::CcerAdv, RW> {
15658 unsafe { Reg::from_ptr(self.0.add(32usize)) }
15659 }
15660 #[doc = "counter"]
15661 pub fn cnt(self) -> Reg<regs::Cnt16, RW> {
15662 unsafe { Reg::from_ptr(self.0.add(36usize)) }
15663 }
15664 #[doc = "prescaler"]
15665 pub fn psc(self) -> Reg<regs::Psc, RW> {
15666 unsafe { Reg::from_ptr(self.0.add(40usize)) }
15667 }
15668 #[doc = "auto-reload register"]
15669 pub fn arr(self) -> Reg<regs::Arr16, RW> {
15670 unsafe { Reg::from_ptr(self.0.add(44usize)) }
15671 }
15672 #[doc = "repetition counter register"]
15673 pub fn rcr(self) -> Reg<regs::Rcr, RW> {
15674 unsafe { Reg::from_ptr(self.0.add(48usize)) }
15675 }
15676 #[doc = "capture/compare register"]
15677 pub fn ccr(self, n: usize) -> Reg<regs::Ccr16, RW> {
15678 assert!(n < 4usize);
15679 unsafe { Reg::from_ptr(self.0.add(52usize + n * 4usize)) }
15680 }
15681 #[doc = "break and dead-time register"]
15682 pub fn bdtr(self) -> Reg<regs::Bdtr, RW> {
15683 unsafe { Reg::from_ptr(self.0.add(68usize)) }
15684 }
15685 #[doc = "DMA control register"]
15686 pub fn dcr(self) -> Reg<regs::Dcr, RW> {
15687 unsafe { Reg::from_ptr(self.0.add(72usize)) }
15688 }
15689 #[doc = "DMA address for full transfer"]
15690 pub fn dmar(self) -> Reg<regs::Dmar, RW> {
15691 unsafe { Reg::from_ptr(self.0.add(76usize)) }
15692 }
15693 }
15694 #[doc = "General purpose 32-bit timer"]
15695 #[derive(Copy, Clone)]
15696 pub struct TimGp32(pub *mut u8);
15697 unsafe impl Send for TimGp32 {}
15698 unsafe impl Sync for TimGp32 {}
15699 impl TimGp32 {
15700 #[doc = "control register 1"]
15701 pub fn cr1(self) -> Reg<regs::Cr1Gp, RW> {
15702 unsafe { Reg::from_ptr(self.0.add(0usize)) }
15703 }
15704 #[doc = "control register 2"]
15705 pub fn cr2(self) -> Reg<regs::Cr2Gp, RW> {
15706 unsafe { Reg::from_ptr(self.0.add(4usize)) }
15707 } 13033 }
15708 #[doc = "slave mode control register"] 13034 #[doc = "Port input data register (GPIOn_IDR)"]
15709 pub fn smcr(self) -> Reg<regs::Smcr, RW> { 13035 pub fn idr(self) -> Reg<regs::Idr, R> {
15710 unsafe { Reg::from_ptr(self.0.add(8usize)) } 13036 unsafe { Reg::from_ptr(self.0.add(8usize)) }
15711 } 13037 }
15712 #[doc = "DMA/Interrupt enable register"] 13038 #[doc = "Port output data register (GPIOn_ODR)"]
15713 pub fn dier(self) -> Reg<regs::DierGp, RW> { 13039 pub fn odr(self) -> Reg<regs::Odr, RW> {
15714 unsafe { Reg::from_ptr(self.0.add(12usize)) } 13040 unsafe { Reg::from_ptr(self.0.add(12usize)) }
15715 } 13041 }
15716 #[doc = "status register"] 13042 #[doc = "Port bit set/reset register (GPIOn_BSRR)"]
15717 pub fn sr(self) -> Reg<regs::SrGp, RW> { 13043 pub fn bsrr(self) -> Reg<regs::Bsrr, W> {
15718 unsafe { Reg::from_ptr(self.0.add(16usize)) } 13044 unsafe { Reg::from_ptr(self.0.add(16usize)) }
15719 } 13045 }
15720 #[doc = "event generation register"] 13046 #[doc = "Port bit reset register (GPIOn_BRR)"]
15721 pub fn egr(self) -> Reg<regs::EgrGp, W> { 13047 pub fn brr(self) -> Reg<regs::Brr, W> {
15722 unsafe { Reg::from_ptr(self.0.add(20usize)) } 13048 unsafe { Reg::from_ptr(self.0.add(20usize)) }
15723 } 13049 }
15724 #[doc = "capture/compare mode register 1 (input mode)"] 13050 #[doc = "Port configuration lock register"]
15725 pub fn ccmr_input(self, n: usize) -> Reg<regs::CcmrInput, RW> { 13051 pub fn lckr(self) -> Reg<regs::Lckr, RW> {
15726 assert!(n < 2usize); 13052 unsafe { Reg::from_ptr(self.0.add(24usize)) }
15727 unsafe { Reg::from_ptr(self.0.add(24usize + n * 4usize)) }
15728 }
15729 #[doc = "capture/compare mode register 1 (output mode)"]
15730 pub fn ccmr_output(self, n: usize) -> Reg<regs::CcmrOutput, RW> {
15731 assert!(n < 2usize);
15732 unsafe { Reg::from_ptr(self.0.add(24usize + n * 4usize)) }
15733 }
15734 #[doc = "capture/compare enable register"]
15735 pub fn ccer(self) -> Reg<regs::CcerGp, RW> {
15736 unsafe { Reg::from_ptr(self.0.add(32usize)) }
15737 }
15738 #[doc = "counter"]
15739 pub fn cnt(self) -> Reg<regs::Cnt32, RW> {
15740 unsafe { Reg::from_ptr(self.0.add(36usize)) }
15741 }
15742 #[doc = "prescaler"]
15743 pub fn psc(self) -> Reg<regs::Psc, RW> {
15744 unsafe { Reg::from_ptr(self.0.add(40usize)) }
15745 }
15746 #[doc = "auto-reload register"]
15747 pub fn arr(self) -> Reg<regs::Arr32, RW> {
15748 unsafe { Reg::from_ptr(self.0.add(44usize)) }
15749 }
15750 #[doc = "capture/compare register"]
15751 pub fn ccr(self, n: usize) -> Reg<regs::Ccr32, RW> {
15752 assert!(n < 4usize);
15753 unsafe { Reg::from_ptr(self.0.add(52usize + n * 4usize)) }
15754 }
15755 #[doc = "DMA control register"]
15756 pub fn dcr(self) -> Reg<regs::Dcr, RW> {
15757 unsafe { Reg::from_ptr(self.0.add(72usize)) }
15758 }
15759 #[doc = "DMA address for full transfer"]
15760 pub fn dmar(self) -> Reg<regs::Dmar, RW> {
15761 unsafe { Reg::from_ptr(self.0.add(76usize)) }
15762 } 13053 }
15763 } 13054 }
15764 #[doc = "Basic timer"] 13055 pub mod vals {
15765 #[derive(Copy, Clone)] 13056 use crate::generic::*;
15766 pub struct TimBasic(pub *mut u8); 13057 #[repr(transparent)]
15767 unsafe impl Send for TimBasic {} 13058 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
15768 unsafe impl Sync for TimBasic {} 13059 pub struct Mode(pub u8);
15769 impl TimBasic { 13060 impl Mode {
15770 #[doc = "control register 1"] 13061 #[doc = "Input mode (reset state)"]
15771 pub fn cr1(self) -> Reg<regs::Cr1Basic, RW> { 13062 pub const INPUT: Self = Self(0);
15772 unsafe { Reg::from_ptr(self.0.add(0usize)) } 13063 #[doc = "Output mode 10 MHz"]
13064 pub const OUTPUT: Self = Self(0x01);
13065 #[doc = "Output mode 2 MHz"]
13066 pub const OUTPUT2: Self = Self(0x02);
13067 #[doc = "Output mode 50 MHz"]
13068 pub const OUTPUT50: Self = Self(0x03);
15773 } 13069 }
15774 #[doc = "control register 2"] 13070 #[repr(transparent)]
15775 pub fn cr2(self) -> Reg<regs::Cr2Basic, RW> { 13071 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
15776 unsafe { Reg::from_ptr(self.0.add(4usize)) } 13072 pub struct Lckk(pub u8);
13073 impl Lckk {
13074 #[doc = "Port configuration lock key not active"]
13075 pub const NOTACTIVE: Self = Self(0);
13076 #[doc = "Port configuration lock key active"]
13077 pub const ACTIVE: Self = Self(0x01);
15777 } 13078 }
15778 #[doc = "DMA/Interrupt enable register"] 13079 #[repr(transparent)]
15779 pub fn dier(self) -> Reg<regs::DierBasic, RW> { 13080 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
15780 unsafe { Reg::from_ptr(self.0.add(12usize)) } 13081 pub struct Odr(pub u8);
13082 impl Odr {
13083 #[doc = "Set output to logic low"]
13084 pub const LOW: Self = Self(0);
13085 #[doc = "Set output to logic high"]
13086 pub const HIGH: Self = Self(0x01);
15781 } 13087 }
15782 #[doc = "status register"] 13088 #[repr(transparent)]
15783 pub fn sr(self) -> Reg<regs::SrBasic, RW> { 13089 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
15784 unsafe { Reg::from_ptr(self.0.add(16usize)) } 13090 pub struct Brw(pub u8);
13091 impl Brw {
13092 #[doc = "No action on the corresponding ODx bit"]
13093 pub const NOACTION: Self = Self(0);
13094 #[doc = "Reset the ODx bit"]
13095 pub const RESET: Self = Self(0x01);
15785 } 13096 }
15786 #[doc = "event generation register"] 13097 #[repr(transparent)]
15787 pub fn egr(self) -> Reg<regs::EgrBasic, W> { 13098 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
15788 unsafe { Reg::from_ptr(self.0.add(20usize)) } 13099 pub struct Lck(pub u8);
13100 impl Lck {
13101 #[doc = "Port configuration not locked"]
13102 pub const UNLOCKED: Self = Self(0);
13103 #[doc = "Port configuration locked"]
13104 pub const LOCKED: Self = Self(0x01);
15789 } 13105 }
15790 #[doc = "counter"] 13106 #[repr(transparent)]
15791 pub fn cnt(self) -> Reg<regs::Cnt16, RW> { 13107 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
15792 unsafe { Reg::from_ptr(self.0.add(36usize)) } 13108 pub struct Cnf(pub u8);
13109 impl Cnf {
13110 #[doc = "Analog mode / Push-Pull mode"]
13111 pub const PUSHPULL: Self = Self(0);
13112 #[doc = "Floating input (reset state) / Open Drain-Mode"]
13113 pub const OPENDRAIN: Self = Self(0x01);
13114 #[doc = "Input with pull-up/pull-down / Alternate Function Push-Pull Mode"]
13115 pub const ALTPUSHPULL: Self = Self(0x02);
13116 #[doc = "Alternate Function Open-Drain Mode"]
13117 pub const ALTOPENDRAIN: Self = Self(0x03);
15793 } 13118 }
15794 #[doc = "prescaler"] 13119 #[repr(transparent)]
15795 pub fn psc(self) -> Reg<regs::Psc, RW> { 13120 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
15796 unsafe { Reg::from_ptr(self.0.add(40usize)) } 13121 pub struct Idr(pub u8);
13122 impl Idr {
13123 #[doc = "Input is logic low"]
13124 pub const LOW: Self = Self(0);
13125 #[doc = "Input is logic high"]
13126 pub const HIGH: Self = Self(0x01);
15797 } 13127 }
15798 #[doc = "auto-reload register"] 13128 #[repr(transparent)]
15799 pub fn arr(self) -> Reg<regs::Arr16, RW> { 13129 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
15800 unsafe { Reg::from_ptr(self.0.add(44usize)) } 13130 pub struct Bsw(pub u8);
13131 impl Bsw {
13132 #[doc = "No action on the corresponding ODx bit"]
13133 pub const NOACTION: Self = Self(0);
13134 #[doc = "Sets the corresponding ODRx bit"]
13135 pub const SET: Self = Self(0x01);
15801 } 13136 }
15802 } 13137 }
15803 pub mod regs { 13138 pub mod regs {
15804 use crate::generic::*; 13139 use crate::generic::*;
15805 #[doc = "capture/compare enable register"] 13140 #[doc = "Port configuration register (GPIOn_CRx)"]
15806 #[repr(transparent)] 13141 #[repr(transparent)]
15807 #[derive(Copy, Clone, Eq, PartialEq)] 13142 #[derive(Copy, Clone, Eq, PartialEq)]
15808 pub struct CcerGp(pub u32); 13143 pub struct Cr(pub u32);
15809 impl CcerGp { 13144 impl Cr {
15810 #[doc = "Capture/Compare 1 output enable"] 13145 #[doc = "Port n mode bits"]
15811 pub fn cce(&self, n: usize) -> bool { 13146 pub fn mode(&self, n: usize) -> super::vals::Mode {
15812 assert!(n < 4usize); 13147 assert!(n < 8usize);
15813 let offs = 0usize + n * 4usize; 13148 let offs = 0usize + n * 4usize;
15814 let val = (self.0 >> offs) & 0x01; 13149 let val = (self.0 >> offs) & 0x03;
15815 val != 0 13150 super::vals::Mode(val as u8)
15816 } 13151 }
15817 #[doc = "Capture/Compare 1 output enable"] 13152 #[doc = "Port n mode bits"]
15818 pub fn set_cce(&mut self, n: usize, val: bool) { 13153 pub fn set_mode(&mut self, n: usize, val: super::vals::Mode) {
15819 assert!(n < 4usize); 13154 assert!(n < 8usize);
15820 let offs = 0usize + n * 4usize; 13155 let offs = 0usize + n * 4usize;
15821 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs); 13156 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
15822 } 13157 }
15823 #[doc = "Capture/Compare 1 output Polarity"] 13158 #[doc = "Port n configuration bits"]
15824 pub fn ccp(&self, n: usize) -> bool { 13159 pub fn cnf(&self, n: usize) -> super::vals::Cnf {
15825 assert!(n < 4usize); 13160 assert!(n < 8usize);
15826 let offs = 1usize + n * 4usize; 13161 let offs = 2usize + n * 4usize;
15827 let val = (self.0 >> offs) & 0x01; 13162 let val = (self.0 >> offs) & 0x03;
15828 val != 0 13163 super::vals::Cnf(val as u8)
15829 } 13164 }
15830 #[doc = "Capture/Compare 1 output Polarity"] 13165 #[doc = "Port n configuration bits"]
15831 pub fn set_ccp(&mut self, n: usize, val: bool) { 13166 pub fn set_cnf(&mut self, n: usize, val: super::vals::Cnf) {
15832 assert!(n < 4usize); 13167 assert!(n < 8usize);
15833 let offs = 1usize + n * 4usize; 13168 let offs = 2usize + n * 4usize;
15834 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs); 13169 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
15835 } 13170 }
15836 #[doc = "Capture/Compare 1 output Polarity"] 13171 }
15837 pub fn ccnp(&self, n: usize) -> bool { 13172 impl Default for Cr {
15838 assert!(n < 4usize); 13173 fn default() -> Cr {
15839 let offs = 3usize + n * 4usize; 13174 Cr(0)
13175 }
13176 }
13177 #[doc = "Port configuration lock register"]
13178 #[repr(transparent)]
13179 #[derive(Copy, Clone, Eq, PartialEq)]
13180 pub struct Lckr(pub u32);
13181 impl Lckr {
13182 #[doc = "Port A Lock bit"]
13183 pub fn lck(&self, n: usize) -> super::vals::Lck {
13184 assert!(n < 16usize);
13185 let offs = 0usize + n * 1usize;
15840 let val = (self.0 >> offs) & 0x01; 13186 let val = (self.0 >> offs) & 0x01;
15841 val != 0 13187 super::vals::Lck(val as u8)
15842 } 13188 }
15843 #[doc = "Capture/Compare 1 output Polarity"] 13189 #[doc = "Port A Lock bit"]
15844 pub fn set_ccnp(&mut self, n: usize, val: bool) { 13190 pub fn set_lck(&mut self, n: usize, val: super::vals::Lck) {
15845 assert!(n < 4usize); 13191 assert!(n < 16usize);
15846 let offs = 3usize + n * 4usize; 13192 let offs = 0usize + n * 1usize;
15847 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs); 13193 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
13194 }
13195 #[doc = "Lock key"]
13196 pub const fn lckk(&self) -> super::vals::Lckk {
13197 let val = (self.0 >> 16usize) & 0x01;
13198 super::vals::Lckk(val as u8)
13199 }
13200 #[doc = "Lock key"]
13201 pub fn set_lckk(&mut self, val: super::vals::Lckk) {
13202 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
15848 } 13203 }
15849 } 13204 }
15850 impl Default for CcerGp { 13205 impl Default for Lckr {
15851 fn default() -> CcerGp { 13206 fn default() -> Lckr {
15852 CcerGp(0) 13207 Lckr(0)
15853 } 13208 }
15854 } 13209 }
15855 #[doc = "status register"] 13210 #[doc = "Port bit reset register (GPIOn_BRR)"]
15856 #[repr(transparent)] 13211 #[repr(transparent)]
15857 #[derive(Copy, Clone, Eq, PartialEq)] 13212 #[derive(Copy, Clone, Eq, PartialEq)]
15858 pub struct SrBasic(pub u32); 13213 pub struct Brr(pub u32);
15859 impl SrBasic { 13214 impl Brr {
15860 #[doc = "Update interrupt flag"] 13215 #[doc = "Reset bit"]
15861 pub const fn uif(&self) -> bool { 13216 pub fn br(&self, n: usize) -> bool {
15862 let val = (self.0 >> 0usize) & 0x01; 13217 assert!(n < 16usize);
13218 let offs = 0usize + n * 1usize;
13219 let val = (self.0 >> offs) & 0x01;
15863 val != 0 13220 val != 0
15864 } 13221 }
15865 #[doc = "Update interrupt flag"] 13222 #[doc = "Reset bit"]
15866 pub fn set_uif(&mut self, val: bool) { 13223 pub fn set_br(&mut self, n: usize, val: bool) {
15867 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 13224 assert!(n < 16usize);
13225 let offs = 0usize + n * 1usize;
13226 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
15868 } 13227 }
15869 } 13228 }
15870 impl Default for SrBasic { 13229 impl Default for Brr {
15871 fn default() -> SrBasic { 13230 fn default() -> Brr {
15872 SrBasic(0) 13231 Brr(0)
15873 } 13232 }
15874 } 13233 }
15875 #[doc = "control register 2"] 13234 #[doc = "Port bit set/reset register (GPIOn_BSRR)"]
15876 #[repr(transparent)] 13235 #[repr(transparent)]
15877 #[derive(Copy, Clone, Eq, PartialEq)] 13236 #[derive(Copy, Clone, Eq, PartialEq)]
15878 pub struct Cr2Gp(pub u32); 13237 pub struct Bsrr(pub u32);
15879 impl Cr2Gp { 13238 impl Bsrr {
15880 #[doc = "Capture/compare DMA selection"] 13239 #[doc = "Set bit"]
15881 pub const fn ccds(&self) -> super::vals::Ccds { 13240 pub fn bs(&self, n: usize) -> bool {
15882 let val = (self.0 >> 3usize) & 0x01; 13241 assert!(n < 16usize);
15883 super::vals::Ccds(val as u8) 13242 let offs = 0usize + n * 1usize;
15884 } 13243 let val = (self.0 >> offs) & 0x01;
15885 #[doc = "Capture/compare DMA selection"] 13244 val != 0
15886 pub fn set_ccds(&mut self, val: super::vals::Ccds) {
15887 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
15888 }
15889 #[doc = "Master mode selection"]
15890 pub const fn mms(&self) -> super::vals::Mms {
15891 let val = (self.0 >> 4usize) & 0x07;
15892 super::vals::Mms(val as u8)
15893 } 13245 }
15894 #[doc = "Master mode selection"] 13246 #[doc = "Set bit"]
15895 pub fn set_mms(&mut self, val: super::vals::Mms) { 13247 pub fn set_bs(&mut self, n: usize, val: bool) {
15896 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize); 13248 assert!(n < 16usize);
13249 let offs = 0usize + n * 1usize;
13250 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
15897 } 13251 }
15898 #[doc = "TI1 selection"] 13252 #[doc = "Reset bit"]
15899 pub const fn ti1s(&self) -> super::vals::Tis { 13253 pub fn br(&self, n: usize) -> bool {
15900 let val = (self.0 >> 7usize) & 0x01; 13254 assert!(n < 16usize);
15901 super::vals::Tis(val as u8) 13255 let offs = 16usize + n * 1usize;
13256 let val = (self.0 >> offs) & 0x01;
13257 val != 0
15902 } 13258 }
15903 #[doc = "TI1 selection"] 13259 #[doc = "Reset bit"]
15904 pub fn set_ti1s(&mut self, val: super::vals::Tis) { 13260 pub fn set_br(&mut self, n: usize, val: bool) {
15905 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 13261 assert!(n < 16usize);
13262 let offs = 16usize + n * 1usize;
13263 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
15906 } 13264 }
15907 } 13265 }
15908 impl Default for Cr2Gp { 13266 impl Default for Bsrr {
15909 fn default() -> Cr2Gp { 13267 fn default() -> Bsrr {
15910 Cr2Gp(0) 13268 Bsrr(0)
15911 } 13269 }
15912 } 13270 }
15913 #[doc = "control register 2"] 13271 #[doc = "Port input data register (GPIOn_IDR)"]
15914 #[repr(transparent)] 13272 #[repr(transparent)]
15915 #[derive(Copy, Clone, Eq, PartialEq)] 13273 #[derive(Copy, Clone, Eq, PartialEq)]
15916 pub struct Cr2Basic(pub u32); 13274 pub struct Idr(pub u32);
15917 impl Cr2Basic { 13275 impl Idr {
15918 #[doc = "Master mode selection"] 13276 #[doc = "Port input data"]
15919 pub const fn mms(&self) -> super::vals::Mms { 13277 pub fn idr(&self, n: usize) -> super::vals::Idr {
15920 let val = (self.0 >> 4usize) & 0x07; 13278 assert!(n < 16usize);
15921 super::vals::Mms(val as u8) 13279 let offs = 0usize + n * 1usize;
13280 let val = (self.0 >> offs) & 0x01;
13281 super::vals::Idr(val as u8)
15922 } 13282 }
15923 #[doc = "Master mode selection"] 13283 #[doc = "Port input data"]
15924 pub fn set_mms(&mut self, val: super::vals::Mms) { 13284 pub fn set_idr(&mut self, n: usize, val: super::vals::Idr) {
15925 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize); 13285 assert!(n < 16usize);
13286 let offs = 0usize + n * 1usize;
13287 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
15926 } 13288 }
15927 } 13289 }
15928 impl Default for Cr2Basic { 13290 impl Default for Idr {
15929 fn default() -> Cr2Basic { 13291 fn default() -> Idr {
15930 Cr2Basic(0) 13292 Idr(0)
15931 } 13293 }
15932 } 13294 }
15933 #[doc = "counter"] 13295 #[doc = "Port output data register (GPIOn_ODR)"]
15934 #[repr(transparent)] 13296 #[repr(transparent)]
15935 #[derive(Copy, Clone, Eq, PartialEq)] 13297 #[derive(Copy, Clone, Eq, PartialEq)]
15936 pub struct Cnt16(pub u32); 13298 pub struct Odr(pub u32);
15937 impl Cnt16 { 13299 impl Odr {
15938 #[doc = "counter value"] 13300 #[doc = "Port output data"]
15939 pub const fn cnt(&self) -> u16 { 13301 pub fn odr(&self, n: usize) -> super::vals::Odr {
15940 let val = (self.0 >> 0usize) & 0xffff; 13302 assert!(n < 16usize);
15941 val as u16 13303 let offs = 0usize + n * 1usize;
13304 let val = (self.0 >> offs) & 0x01;
13305 super::vals::Odr(val as u8)
15942 } 13306 }
15943 #[doc = "counter value"] 13307 #[doc = "Port output data"]
15944 pub fn set_cnt(&mut self, val: u16) { 13308 pub fn set_odr(&mut self, n: usize, val: super::vals::Odr) {
15945 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize); 13309 assert!(n < 16usize);
13310 let offs = 0usize + n * 1usize;
13311 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
15946 } 13312 }
15947 } 13313 }
15948 impl Default for Cnt16 { 13314 impl Default for Odr {
15949 fn default() -> Cnt16 { 13315 fn default() -> Odr {
15950 Cnt16(0) 13316 Odr(0)
15951 } 13317 }
15952 } 13318 }
15953 #[doc = "break and dead-time register"] 13319 }
13320}
13321pub mod i2c_v2 {
13322 use crate::generic::*;
13323 #[doc = "Inter-integrated circuit"]
13324 #[derive(Copy, Clone)]
13325 pub struct I2c(pub *mut u8);
13326 unsafe impl Send for I2c {}
13327 unsafe impl Sync for I2c {}
13328 impl I2c {
13329 #[doc = "Control register 1"]
13330 pub fn cr1(self) -> Reg<regs::Cr1, RW> {
13331 unsafe { Reg::from_ptr(self.0.add(0usize)) }
13332 }
13333 #[doc = "Control register 2"]
13334 pub fn cr2(self) -> Reg<regs::Cr2, RW> {
13335 unsafe { Reg::from_ptr(self.0.add(4usize)) }
13336 }
13337 #[doc = "Own address register 1"]
13338 pub fn oar1(self) -> Reg<regs::Oar1, RW> {
13339 unsafe { Reg::from_ptr(self.0.add(8usize)) }
13340 }
13341 #[doc = "Own address register 2"]
13342 pub fn oar2(self) -> Reg<regs::Oar2, RW> {
13343 unsafe { Reg::from_ptr(self.0.add(12usize)) }
13344 }
13345 #[doc = "Timing register"]
13346 pub fn timingr(self) -> Reg<regs::Timingr, RW> {
13347 unsafe { Reg::from_ptr(self.0.add(16usize)) }
13348 }
13349 #[doc = "Status register 1"]
13350 pub fn timeoutr(self) -> Reg<regs::Timeoutr, RW> {
13351 unsafe { Reg::from_ptr(self.0.add(20usize)) }
13352 }
13353 #[doc = "Interrupt and Status register"]
13354 pub fn isr(self) -> Reg<regs::Isr, RW> {
13355 unsafe { Reg::from_ptr(self.0.add(24usize)) }
13356 }
13357 #[doc = "Interrupt clear register"]
13358 pub fn icr(self) -> Reg<regs::Icr, W> {
13359 unsafe { Reg::from_ptr(self.0.add(28usize)) }
13360 }
13361 #[doc = "PEC register"]
13362 pub fn pecr(self) -> Reg<regs::Pecr, R> {
13363 unsafe { Reg::from_ptr(self.0.add(32usize)) }
13364 }
13365 #[doc = "Receive data register"]
13366 pub fn rxdr(self) -> Reg<regs::Rxdr, R> {
13367 unsafe { Reg::from_ptr(self.0.add(36usize)) }
13368 }
13369 #[doc = "Transmit data register"]
13370 pub fn txdr(self) -> Reg<regs::Txdr, RW> {
13371 unsafe { Reg::from_ptr(self.0.add(40usize)) }
13372 }
13373 }
13374 pub mod regs {
13375 use crate::generic::*;
13376 #[doc = "Receive data register"]
15954 #[repr(transparent)] 13377 #[repr(transparent)]
15955 #[derive(Copy, Clone, Eq, PartialEq)] 13378 #[derive(Copy, Clone, Eq, PartialEq)]
15956 pub struct Bdtr(pub u32); 13379 pub struct Rxdr(pub u32);
15957 impl Bdtr { 13380 impl Rxdr {
15958 #[doc = "Dead-time generator setup"] 13381 #[doc = "8-bit receive data"]
15959 pub const fn dtg(&self) -> u8 { 13382 pub const fn rxdata(&self) -> u8 {
15960 let val = (self.0 >> 0usize) & 0xff; 13383 let val = (self.0 >> 0usize) & 0xff;
15961 val as u8 13384 val as u8
15962 } 13385 }
15963 #[doc = "Dead-time generator setup"] 13386 #[doc = "8-bit receive data"]
15964 pub fn set_dtg(&mut self, val: u8) { 13387 pub fn set_rxdata(&mut self, val: u8) {
15965 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize); 13388 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
15966 } 13389 }
15967 #[doc = "Lock configuration"] 13390 }
15968 pub const fn lock(&self) -> u8 { 13391 impl Default for Rxdr {
15969 let val = (self.0 >> 8usize) & 0x03; 13392 fn default() -> Rxdr {
15970 val as u8 13393 Rxdr(0)
15971 } 13394 }
15972 #[doc = "Lock configuration"] 13395 }
15973 pub fn set_lock(&mut self, val: u8) { 13396 #[doc = "Control register 2"]
15974 self.0 = (self.0 & !(0x03 << 8usize)) | (((val as u32) & 0x03) << 8usize); 13397 #[repr(transparent)]
13398 #[derive(Copy, Clone, Eq, PartialEq)]
13399 pub struct Cr2(pub u32);
13400 impl Cr2 {
13401 #[doc = "Slave address bit (master mode)"]
13402 pub const fn sadd(&self) -> u16 {
13403 let val = (self.0 >> 0usize) & 0x03ff;
13404 val as u16
15975 } 13405 }
15976 #[doc = "Off-state selection for Idle mode"] 13406 #[doc = "Slave address bit (master mode)"]
15977 pub const fn ossi(&self) -> super::vals::Ossi { 13407 pub fn set_sadd(&mut self, val: u16) {
13408 self.0 = (self.0 & !(0x03ff << 0usize)) | (((val as u32) & 0x03ff) << 0usize);
13409 }
13410 #[doc = "Transfer direction (master mode)"]
13411 pub const fn rd_wrn(&self) -> super::vals::RdWrn {
15978 let val = (self.0 >> 10usize) & 0x01; 13412 let val = (self.0 >> 10usize) & 0x01;
15979 super::vals::Ossi(val as u8) 13413 super::vals::RdWrn(val as u8)
15980 } 13414 }
15981 #[doc = "Off-state selection for Idle mode"] 13415 #[doc = "Transfer direction (master mode)"]
15982 pub fn set_ossi(&mut self, val: super::vals::Ossi) { 13416 pub fn set_rd_wrn(&mut self, val: super::vals::RdWrn) {
15983 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize); 13417 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
15984 } 13418 }
15985 #[doc = "Off-state selection for Run mode"] 13419 #[doc = "10-bit addressing mode (master mode)"]
15986 pub const fn ossr(&self) -> super::vals::Ossr { 13420 pub const fn add10(&self) -> super::vals::Add {
15987 let val = (self.0 >> 11usize) & 0x01; 13421 let val = (self.0 >> 11usize) & 0x01;
15988 super::vals::Ossr(val as u8) 13422 super::vals::Add(val as u8)
15989 } 13423 }
15990 #[doc = "Off-state selection for Run mode"] 13424 #[doc = "10-bit addressing mode (master mode)"]
15991 pub fn set_ossr(&mut self, val: super::vals::Ossr) { 13425 pub fn set_add10(&mut self, val: super::vals::Add) {
15992 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize); 13426 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
15993 } 13427 }
15994 #[doc = "Break enable"] 13428 #[doc = "10-bit address header only read direction (master receiver mode)"]
15995 pub const fn bke(&self) -> bool { 13429 pub const fn head10r(&self) -> super::vals::Headr {
15996 let val = (self.0 >> 12usize) & 0x01; 13430 let val = (self.0 >> 12usize) & 0x01;
15997 val != 0 13431 super::vals::Headr(val as u8)
15998 } 13432 }
15999 #[doc = "Break enable"] 13433 #[doc = "10-bit address header only read direction (master receiver mode)"]
16000 pub fn set_bke(&mut self, val: bool) { 13434 pub fn set_head10r(&mut self, val: super::vals::Headr) {
16001 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize); 13435 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
16002 } 13436 }
16003 #[doc = "Break polarity"] 13437 #[doc = "Start generation"]
16004 pub const fn bkp(&self) -> bool { 13438 pub const fn start(&self) -> super::vals::Start {
16005 let val = (self.0 >> 13usize) & 0x01; 13439 let val = (self.0 >> 13usize) & 0x01;
16006 val != 0 13440 super::vals::Start(val as u8)
16007 } 13441 }
16008 #[doc = "Break polarity"] 13442 #[doc = "Start generation"]
16009 pub fn set_bkp(&mut self, val: bool) { 13443 pub fn set_start(&mut self, val: super::vals::Start) {
16010 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize); 13444 self.0 = (self.0 & !(0x01 << 13usize)) | (((val.0 as u32) & 0x01) << 13usize);
16011 } 13445 }
16012 #[doc = "Automatic output enable"] 13446 #[doc = "Stop generation (master mode)"]
16013 pub const fn aoe(&self) -> bool { 13447 pub const fn stop(&self) -> super::vals::Stop {
16014 let val = (self.0 >> 14usize) & 0x01; 13448 let val = (self.0 >> 14usize) & 0x01;
16015 val != 0 13449 super::vals::Stop(val as u8)
16016 } 13450 }
16017 #[doc = "Automatic output enable"] 13451 #[doc = "Stop generation (master mode)"]
16018 pub fn set_aoe(&mut self, val: bool) { 13452 pub fn set_stop(&mut self, val: super::vals::Stop) {
16019 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize); 13453 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
16020 } 13454 }
16021 #[doc = "Main output enable"] 13455 #[doc = "NACK generation (slave mode)"]
16022 pub const fn moe(&self) -> bool { 13456 pub const fn nack(&self) -> super::vals::Nack {
16023 let val = (self.0 >> 15usize) & 0x01; 13457 let val = (self.0 >> 15usize) & 0x01;
16024 val != 0 13458 super::vals::Nack(val as u8)
16025 }
16026 #[doc = "Main output enable"]
16027 pub fn set_moe(&mut self, val: bool) {
16028 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize);
16029 }
16030 }
16031 impl Default for Bdtr {
16032 fn default() -> Bdtr {
16033 Bdtr(0)
16034 }
16035 }
16036 #[doc = "capture/compare register 1"]
16037 #[repr(transparent)]
16038 #[derive(Copy, Clone, Eq, PartialEq)]
16039 pub struct Ccr16(pub u32);
16040 impl Ccr16 {
16041 #[doc = "Capture/Compare 1 value"]
16042 pub const fn ccr(&self) -> u16 {
16043 let val = (self.0 >> 0usize) & 0xffff;
16044 val as u16
16045 }
16046 #[doc = "Capture/Compare 1 value"]
16047 pub fn set_ccr(&mut self, val: u16) {
16048 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
16049 }
16050 }
16051 impl Default for Ccr16 {
16052 fn default() -> Ccr16 {
16053 Ccr16(0)
16054 }
16055 }
16056 #[doc = "capture/compare mode register 2 (output mode)"]
16057 #[repr(transparent)]
16058 #[derive(Copy, Clone, Eq, PartialEq)]
16059 pub struct CcmrOutput(pub u32);
16060 impl CcmrOutput {
16061 #[doc = "Capture/Compare 3 selection"]
16062 pub fn ccs(&self, n: usize) -> super::vals::CcmrOutputCcs {
16063 assert!(n < 2usize);
16064 let offs = 0usize + n * 8usize;
16065 let val = (self.0 >> offs) & 0x03;
16066 super::vals::CcmrOutputCcs(val as u8)
16067 }
16068 #[doc = "Capture/Compare 3 selection"]
16069 pub fn set_ccs(&mut self, n: usize, val: super::vals::CcmrOutputCcs) {
16070 assert!(n < 2usize);
16071 let offs = 0usize + n * 8usize;
16072 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
16073 }
16074 #[doc = "Output compare 3 fast enable"]
16075 pub fn ocfe(&self, n: usize) -> bool {
16076 assert!(n < 2usize);
16077 let offs = 2usize + n * 8usize;
16078 let val = (self.0 >> offs) & 0x01;
16079 val != 0
16080 }
16081 #[doc = "Output compare 3 fast enable"]
16082 pub fn set_ocfe(&mut self, n: usize, val: bool) {
16083 assert!(n < 2usize);
16084 let offs = 2usize + n * 8usize;
16085 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
16086 }
16087 #[doc = "Output compare 3 preload enable"]
16088 pub fn ocpe(&self, n: usize) -> super::vals::Ocpe {
16089 assert!(n < 2usize);
16090 let offs = 3usize + n * 8usize;
16091 let val = (self.0 >> offs) & 0x01;
16092 super::vals::Ocpe(val as u8)
16093 }
16094 #[doc = "Output compare 3 preload enable"]
16095 pub fn set_ocpe(&mut self, n: usize, val: super::vals::Ocpe) {
16096 assert!(n < 2usize);
16097 let offs = 3usize + n * 8usize;
16098 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
16099 }
16100 #[doc = "Output compare 3 mode"]
16101 pub fn ocm(&self, n: usize) -> super::vals::Ocm {
16102 assert!(n < 2usize);
16103 let offs = 4usize + n * 8usize;
16104 let val = (self.0 >> offs) & 0x07;
16105 super::vals::Ocm(val as u8)
16106 }
16107 #[doc = "Output compare 3 mode"]
16108 pub fn set_ocm(&mut self, n: usize, val: super::vals::Ocm) {
16109 assert!(n < 2usize);
16110 let offs = 4usize + n * 8usize;
16111 self.0 = (self.0 & !(0x07 << offs)) | (((val.0 as u32) & 0x07) << offs);
16112 }
16113 #[doc = "Output compare 3 clear enable"]
16114 pub fn occe(&self, n: usize) -> bool {
16115 assert!(n < 2usize);
16116 let offs = 7usize + n * 8usize;
16117 let val = (self.0 >> offs) & 0x01;
16118 val != 0
16119 }
16120 #[doc = "Output compare 3 clear enable"]
16121 pub fn set_occe(&mut self, n: usize, val: bool) {
16122 assert!(n < 2usize);
16123 let offs = 7usize + n * 8usize;
16124 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
16125 }
16126 }
16127 impl Default for CcmrOutput {
16128 fn default() -> CcmrOutput {
16129 CcmrOutput(0)
16130 } 13459 }
16131 } 13460 #[doc = "NACK generation (slave mode)"]
16132 #[doc = "counter"] 13461 pub fn set_nack(&mut self, val: super::vals::Nack) {
16133 #[repr(transparent)] 13462 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
16134 #[derive(Copy, Clone, Eq, PartialEq)]
16135 pub struct Cnt32(pub u32);
16136 impl Cnt32 {
16137 #[doc = "counter value"]
16138 pub const fn cnt(&self) -> u32 {
16139 let val = (self.0 >> 0usize) & 0xffff_ffff;
16140 val as u32
16141 } 13463 }
16142 #[doc = "counter value"] 13464 #[doc = "Number of bytes"]
16143 pub fn set_cnt(&mut self, val: u32) { 13465 pub const fn nbytes(&self) -> u8 {
16144 self.0 = 13466 let val = (self.0 >> 16usize) & 0xff;
16145 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize); 13467 val as u8
16146 } 13468 }
16147 } 13469 #[doc = "Number of bytes"]
16148 impl Default for Cnt32 { 13470 pub fn set_nbytes(&mut self, val: u8) {
16149 fn default() -> Cnt32 { 13471 self.0 = (self.0 & !(0xff << 16usize)) | (((val as u32) & 0xff) << 16usize);
16150 Cnt32(0)
16151 } 13472 }
16152 } 13473 #[doc = "NBYTES reload mode"]
16153 #[doc = "capture/compare mode register 1 (input mode)"] 13474 pub const fn reload(&self) -> super::vals::Reload {
16154 #[repr(transparent)] 13475 let val = (self.0 >> 24usize) & 0x01;
16155 #[derive(Copy, Clone, Eq, PartialEq)] 13476 super::vals::Reload(val as u8)
16156 pub struct CcmrInput(pub u32);
16157 impl CcmrInput {
16158 #[doc = "Capture/Compare 1 selection"]
16159 pub fn ccs(&self, n: usize) -> super::vals::CcmrInputCcs {
16160 assert!(n < 2usize);
16161 let offs = 0usize + n * 8usize;
16162 let val = (self.0 >> offs) & 0x03;
16163 super::vals::CcmrInputCcs(val as u8)
16164 } 13477 }
16165 #[doc = "Capture/Compare 1 selection"] 13478 #[doc = "NBYTES reload mode"]
16166 pub fn set_ccs(&mut self, n: usize, val: super::vals::CcmrInputCcs) { 13479 pub fn set_reload(&mut self, val: super::vals::Reload) {
16167 assert!(n < 2usize); 13480 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize);
16168 let offs = 0usize + n * 8usize;
16169 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
16170 } 13481 }
16171 #[doc = "Input capture 1 prescaler"] 13482 #[doc = "Automatic end mode (master mode)"]
16172 pub fn icpsc(&self, n: usize) -> u8 { 13483 pub const fn autoend(&self) -> super::vals::Autoend {
16173 assert!(n < 2usize); 13484 let val = (self.0 >> 25usize) & 0x01;
16174 let offs = 2usize + n * 8usize; 13485 super::vals::Autoend(val as u8)
16175 let val = (self.0 >> offs) & 0x03;
16176 val as u8
16177 } 13486 }
16178 #[doc = "Input capture 1 prescaler"] 13487 #[doc = "Automatic end mode (master mode)"]
16179 pub fn set_icpsc(&mut self, n: usize, val: u8) { 13488 pub fn set_autoend(&mut self, val: super::vals::Autoend) {
16180 assert!(n < 2usize); 13489 self.0 = (self.0 & !(0x01 << 25usize)) | (((val.0 as u32) & 0x01) << 25usize);
16181 let offs = 2usize + n * 8usize;
16182 self.0 = (self.0 & !(0x03 << offs)) | (((val as u32) & 0x03) << offs);
16183 } 13490 }
16184 #[doc = "Input capture 1 filter"] 13491 #[doc = "Packet error checking byte"]
16185 pub fn icf(&self, n: usize) -> super::vals::Icf { 13492 pub const fn pecbyte(&self) -> super::vals::Pecbyte {
16186 assert!(n < 2usize); 13493 let val = (self.0 >> 26usize) & 0x01;
16187 let offs = 4usize + n * 8usize; 13494 super::vals::Pecbyte(val as u8)
16188 let val = (self.0 >> offs) & 0x0f;
16189 super::vals::Icf(val as u8)
16190 } 13495 }
16191 #[doc = "Input capture 1 filter"] 13496 #[doc = "Packet error checking byte"]
16192 pub fn set_icf(&mut self, n: usize, val: super::vals::Icf) { 13497 pub fn set_pecbyte(&mut self, val: super::vals::Pecbyte) {
16193 assert!(n < 2usize); 13498 self.0 = (self.0 & !(0x01 << 26usize)) | (((val.0 as u32) & 0x01) << 26usize);
16194 let offs = 4usize + n * 8usize;
16195 self.0 = (self.0 & !(0x0f << offs)) | (((val.0 as u32) & 0x0f) << offs);
16196 } 13499 }
16197 } 13500 }
16198 impl Default for CcmrInput { 13501 impl Default for Cr2 {
16199 fn default() -> CcmrInput { 13502 fn default() -> Cr2 {
16200 CcmrInput(0) 13503 Cr2(0)
16201 } 13504 }
16202 } 13505 }
16203 #[doc = "status register"] 13506 #[doc = "Control register 1"]
16204 #[repr(transparent)] 13507 #[repr(transparent)]
16205 #[derive(Copy, Clone, Eq, PartialEq)] 13508 #[derive(Copy, Clone, Eq, PartialEq)]
16206 pub struct SrAdv(pub u32); 13509 pub struct Cr1(pub u32);
16207 impl SrAdv { 13510 impl Cr1 {
16208 #[doc = "Update interrupt flag"] 13511 #[doc = "Peripheral enable"]
16209 pub const fn uif(&self) -> bool { 13512 pub const fn pe(&self) -> bool {
16210 let val = (self.0 >> 0usize) & 0x01; 13513 let val = (self.0 >> 0usize) & 0x01;
16211 val != 0 13514 val != 0
16212 } 13515 }
16213 #[doc = "Update interrupt flag"] 13516 #[doc = "Peripheral enable"]
16214 pub fn set_uif(&mut self, val: bool) { 13517 pub fn set_pe(&mut self, val: bool) {
16215 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 13518 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
16216 } 13519 }
16217 #[doc = "Capture/compare 1 interrupt flag"] 13520 #[doc = "TX Interrupt enable"]
16218 pub fn ccif(&self, n: usize) -> bool { 13521 pub const fn txie(&self) -> bool {
16219 assert!(n < 4usize); 13522 let val = (self.0 >> 1usize) & 0x01;
16220 let offs = 1usize + n * 1usize;
16221 let val = (self.0 >> offs) & 0x01;
16222 val != 0
16223 }
16224 #[doc = "Capture/compare 1 interrupt flag"]
16225 pub fn set_ccif(&mut self, n: usize, val: bool) {
16226 assert!(n < 4usize);
16227 let offs = 1usize + n * 1usize;
16228 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
16229 }
16230 #[doc = "COM interrupt flag"]
16231 pub const fn comif(&self) -> bool {
16232 let val = (self.0 >> 5usize) & 0x01;
16233 val != 0
16234 }
16235 #[doc = "COM interrupt flag"]
16236 pub fn set_comif(&mut self, val: bool) {
16237 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
16238 }
16239 #[doc = "Trigger interrupt flag"]
16240 pub const fn tif(&self) -> bool {
16241 let val = (self.0 >> 6usize) & 0x01;
16242 val != 0
16243 }
16244 #[doc = "Trigger interrupt flag"]
16245 pub fn set_tif(&mut self, val: bool) {
16246 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
16247 }
16248 #[doc = "Break interrupt flag"]
16249 pub const fn bif(&self) -> bool {
16250 let val = (self.0 >> 7usize) & 0x01;
16251 val != 0 13523 val != 0
16252 } 13524 }
16253 #[doc = "Break interrupt flag"] 13525 #[doc = "TX Interrupt enable"]
16254 pub fn set_bif(&mut self, val: bool) { 13526 pub fn set_txie(&mut self, val: bool) {
16255 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 13527 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
16256 } 13528 }
16257 #[doc = "Capture/Compare 1 overcapture flag"] 13529 #[doc = "RX Interrupt enable"]
16258 pub fn ccof(&self, n: usize) -> bool { 13530 pub const fn rxie(&self) -> bool {
16259 assert!(n < 4usize); 13531 let val = (self.0 >> 2usize) & 0x01;
16260 let offs = 9usize + n * 1usize;
16261 let val = (self.0 >> offs) & 0x01;
16262 val != 0 13532 val != 0
16263 } 13533 }
16264 #[doc = "Capture/Compare 1 overcapture flag"] 13534 #[doc = "RX Interrupt enable"]
16265 pub fn set_ccof(&mut self, n: usize, val: bool) { 13535 pub fn set_rxie(&mut self, val: bool) {
16266 assert!(n < 4usize); 13536 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
16267 let offs = 9usize + n * 1usize;
16268 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
16269 }
16270 }
16271 impl Default for SrAdv {
16272 fn default() -> SrAdv {
16273 SrAdv(0)
16274 }
16275 }
16276 #[doc = "repetition counter register"]
16277 #[repr(transparent)]
16278 #[derive(Copy, Clone, Eq, PartialEq)]
16279 pub struct Rcr(pub u32);
16280 impl Rcr {
16281 #[doc = "Repetition counter value"]
16282 pub const fn rep(&self) -> u8 {
16283 let val = (self.0 >> 0usize) & 0xff;
16284 val as u8
16285 }
16286 #[doc = "Repetition counter value"]
16287 pub fn set_rep(&mut self, val: u8) {
16288 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
16289 }
16290 }
16291 impl Default for Rcr {
16292 fn default() -> Rcr {
16293 Rcr(0)
16294 }
16295 }
16296 #[doc = "DMA address for full transfer"]
16297 #[repr(transparent)]
16298 #[derive(Copy, Clone, Eq, PartialEq)]
16299 pub struct Dmar(pub u32);
16300 impl Dmar {
16301 #[doc = "DMA register for burst accesses"]
16302 pub const fn dmab(&self) -> u16 {
16303 let val = (self.0 >> 0usize) & 0xffff;
16304 val as u16
16305 }
16306 #[doc = "DMA register for burst accesses"]
16307 pub fn set_dmab(&mut self, val: u16) {
16308 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
16309 }
16310 }
16311 impl Default for Dmar {
16312 fn default() -> Dmar {
16313 Dmar(0)
16314 }
16315 }
16316 #[doc = "auto-reload register"]
16317 #[repr(transparent)]
16318 #[derive(Copy, Clone, Eq, PartialEq)]
16319 pub struct Arr32(pub u32);
16320 impl Arr32 {
16321 #[doc = "Auto-reload value"]
16322 pub const fn arr(&self) -> u32 {
16323 let val = (self.0 >> 0usize) & 0xffff_ffff;
16324 val as u32
16325 }
16326 #[doc = "Auto-reload value"]
16327 pub fn set_arr(&mut self, val: u32) {
16328 self.0 =
16329 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
16330 }
16331 }
16332 impl Default for Arr32 {
16333 fn default() -> Arr32 {
16334 Arr32(0)
16335 }
16336 }
16337 #[doc = "auto-reload register"]
16338 #[repr(transparent)]
16339 #[derive(Copy, Clone, Eq, PartialEq)]
16340 pub struct Arr16(pub u32);
16341 impl Arr16 {
16342 #[doc = "Auto-reload value"]
16343 pub const fn arr(&self) -> u16 {
16344 let val = (self.0 >> 0usize) & 0xffff;
16345 val as u16
16346 }
16347 #[doc = "Auto-reload value"]
16348 pub fn set_arr(&mut self, val: u16) {
16349 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
16350 }
16351 }
16352 impl Default for Arr16 {
16353 fn default() -> Arr16 {
16354 Arr16(0)
16355 } 13537 }
16356 } 13538 #[doc = "Address match interrupt enable (slave only)"]
16357 #[doc = "DMA/Interrupt enable register"] 13539 pub const fn addrie(&self) -> bool {
16358 #[repr(transparent)] 13540 let val = (self.0 >> 3usize) & 0x01;
16359 #[derive(Copy, Clone, Eq, PartialEq)]
16360 pub struct DierAdv(pub u32);
16361 impl DierAdv {
16362 #[doc = "Update interrupt enable"]
16363 pub const fn uie(&self) -> bool {
16364 let val = (self.0 >> 0usize) & 0x01;
16365 val != 0 13541 val != 0
16366 } 13542 }
16367 #[doc = "Update interrupt enable"] 13543 #[doc = "Address match interrupt enable (slave only)"]
16368 pub fn set_uie(&mut self, val: bool) { 13544 pub fn set_addrie(&mut self, val: bool) {
16369 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 13545 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
16370 } 13546 }
16371 #[doc = "Capture/Compare 1 interrupt enable"] 13547 #[doc = "Not acknowledge received interrupt enable"]
16372 pub fn ccie(&self, n: usize) -> bool { 13548 pub const fn nackie(&self) -> bool {
16373 assert!(n < 4usize); 13549 let val = (self.0 >> 4usize) & 0x01;
16374 let offs = 1usize + n * 1usize;
16375 let val = (self.0 >> offs) & 0x01;
16376 val != 0 13550 val != 0
16377 } 13551 }
16378 #[doc = "Capture/Compare 1 interrupt enable"] 13552 #[doc = "Not acknowledge received interrupt enable"]
16379 pub fn set_ccie(&mut self, n: usize, val: bool) { 13553 pub fn set_nackie(&mut self, val: bool) {
16380 assert!(n < 4usize); 13554 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
16381 let offs = 1usize + n * 1usize;
16382 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
16383 } 13555 }
16384 #[doc = "COM interrupt enable"] 13556 #[doc = "STOP detection Interrupt enable"]
16385 pub const fn comie(&self) -> bool { 13557 pub const fn stopie(&self) -> bool {
16386 let val = (self.0 >> 5usize) & 0x01; 13558 let val = (self.0 >> 5usize) & 0x01;
16387 val != 0 13559 val != 0
16388 } 13560 }
16389 #[doc = "COM interrupt enable"] 13561 #[doc = "STOP detection Interrupt enable"]
16390 pub fn set_comie(&mut self, val: bool) { 13562 pub fn set_stopie(&mut self, val: bool) {
16391 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 13563 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
16392 } 13564 }
16393 #[doc = "Trigger interrupt enable"] 13565 #[doc = "Transfer Complete interrupt enable"]
16394 pub const fn tie(&self) -> bool { 13566 pub const fn tcie(&self) -> bool {
16395 let val = (self.0 >> 6usize) & 0x01; 13567 let val = (self.0 >> 6usize) & 0x01;
16396 val != 0 13568 val != 0
16397 } 13569 }
16398 #[doc = "Trigger interrupt enable"] 13570 #[doc = "Transfer Complete interrupt enable"]
16399 pub fn set_tie(&mut self, val: bool) { 13571 pub fn set_tcie(&mut self, val: bool) {
16400 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 13572 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
16401 } 13573 }
16402 #[doc = "Break interrupt enable"] 13574 #[doc = "Error interrupts enable"]
16403 pub const fn bie(&self) -> bool { 13575 pub const fn errie(&self) -> bool {
16404 let val = (self.0 >> 7usize) & 0x01; 13576 let val = (self.0 >> 7usize) & 0x01;
16405 val != 0 13577 val != 0
16406 } 13578 }
16407 #[doc = "Break interrupt enable"] 13579 #[doc = "Error interrupts enable"]
16408 pub fn set_bie(&mut self, val: bool) { 13580 pub fn set_errie(&mut self, val: bool) {
16409 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 13581 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
16410 } 13582 }
16411 #[doc = "Update DMA request enable"] 13583 #[doc = "Digital noise filter"]
16412 pub const fn ude(&self) -> bool { 13584 pub const fn dnf(&self) -> super::vals::Dnf {
16413 let val = (self.0 >> 8usize) & 0x01; 13585 let val = (self.0 >> 8usize) & 0x0f;
16414 val != 0 13586 super::vals::Dnf(val as u8)
16415 }
16416 #[doc = "Update DMA request enable"]
16417 pub fn set_ude(&mut self, val: bool) {
16418 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
16419 }
16420 #[doc = "Capture/Compare 1 DMA request enable"]
16421 pub fn ccde(&self, n: usize) -> bool {
16422 assert!(n < 4usize);
16423 let offs = 9usize + n * 1usize;
16424 let val = (self.0 >> offs) & 0x01;
16425 val != 0
16426 } 13587 }
16427 #[doc = "Capture/Compare 1 DMA request enable"] 13588 #[doc = "Digital noise filter"]
16428 pub fn set_ccde(&mut self, n: usize, val: bool) { 13589 pub fn set_dnf(&mut self, val: super::vals::Dnf) {
16429 assert!(n < 4usize); 13590 self.0 = (self.0 & !(0x0f << 8usize)) | (((val.0 as u32) & 0x0f) << 8usize);
16430 let offs = 9usize + n * 1usize;
16431 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
16432 } 13591 }
16433 #[doc = "COM DMA request enable"] 13592 #[doc = "Analog noise filter OFF"]
16434 pub const fn comde(&self) -> bool { 13593 pub const fn anfoff(&self) -> bool {
16435 let val = (self.0 >> 13usize) & 0x01; 13594 let val = (self.0 >> 12usize) & 0x01;
16436 val != 0 13595 val != 0
16437 } 13596 }
16438 #[doc = "COM DMA request enable"] 13597 #[doc = "Analog noise filter OFF"]
16439 pub fn set_comde(&mut self, val: bool) { 13598 pub fn set_anfoff(&mut self, val: bool) {
16440 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize); 13599 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
16441 } 13600 }
16442 #[doc = "Trigger DMA request enable"] 13601 #[doc = "DMA transmission requests enable"]
16443 pub const fn tde(&self) -> bool { 13602 pub const fn txdmaen(&self) -> bool {
16444 let val = (self.0 >> 14usize) & 0x01; 13603 let val = (self.0 >> 14usize) & 0x01;
16445 val != 0 13604 val != 0
16446 } 13605 }
16447 #[doc = "Trigger DMA request enable"] 13606 #[doc = "DMA transmission requests enable"]
16448 pub fn set_tde(&mut self, val: bool) { 13607 pub fn set_txdmaen(&mut self, val: bool) {
16449 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize); 13608 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
16450 } 13609 }
16451 } 13610 #[doc = "DMA reception requests enable"]
16452 impl Default for DierAdv { 13611 pub const fn rxdmaen(&self) -> bool {
16453 fn default() -> DierAdv { 13612 let val = (self.0 >> 15usize) & 0x01;
16454 DierAdv(0)
16455 }
16456 }
16457 #[doc = "DMA/Interrupt enable register"]
16458 #[repr(transparent)]
16459 #[derive(Copy, Clone, Eq, PartialEq)]
16460 pub struct DierBasic(pub u32);
16461 impl DierBasic {
16462 #[doc = "Update interrupt enable"]
16463 pub const fn uie(&self) -> bool {
16464 let val = (self.0 >> 0usize) & 0x01;
16465 val != 0 13613 val != 0
16466 } 13614 }
16467 #[doc = "Update interrupt enable"] 13615 #[doc = "DMA reception requests enable"]
16468 pub fn set_uie(&mut self, val: bool) { 13616 pub fn set_rxdmaen(&mut self, val: bool) {
16469 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 13617 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize);
16470 } 13618 }
16471 #[doc = "Update DMA request enable"] 13619 #[doc = "Slave byte control"]
16472 pub const fn ude(&self) -> bool { 13620 pub const fn sbc(&self) -> bool {
16473 let val = (self.0 >> 8usize) & 0x01; 13621 let val = (self.0 >> 16usize) & 0x01;
16474 val != 0 13622 val != 0
16475 } 13623 }
16476 #[doc = "Update DMA request enable"] 13624 #[doc = "Slave byte control"]
16477 pub fn set_ude(&mut self, val: bool) { 13625 pub fn set_sbc(&mut self, val: bool) {
16478 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 13626 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
16479 }
16480 }
16481 impl Default for DierBasic {
16482 fn default() -> DierBasic {
16483 DierBasic(0)
16484 } 13627 }
16485 } 13628 #[doc = "Clock stretching disable"]
16486 #[doc = "capture/compare enable register"] 13629 pub const fn nostretch(&self) -> bool {
16487 #[repr(transparent)] 13630 let val = (self.0 >> 17usize) & 0x01;
16488 #[derive(Copy, Clone, Eq, PartialEq)]
16489 pub struct CcerAdv(pub u32);
16490 impl CcerAdv {
16491 #[doc = "Capture/Compare 1 output enable"]
16492 pub fn cce(&self, n: usize) -> bool {
16493 assert!(n < 4usize);
16494 let offs = 0usize + n * 4usize;
16495 let val = (self.0 >> offs) & 0x01;
16496 val != 0 13631 val != 0
16497 } 13632 }
16498 #[doc = "Capture/Compare 1 output enable"] 13633 #[doc = "Clock stretching disable"]
16499 pub fn set_cce(&mut self, n: usize, val: bool) { 13634 pub fn set_nostretch(&mut self, val: bool) {
16500 assert!(n < 4usize); 13635 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
16501 let offs = 0usize + n * 4usize;
16502 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
16503 } 13636 }
16504 #[doc = "Capture/Compare 1 output Polarity"] 13637 #[doc = "General call enable"]
16505 pub fn ccp(&self, n: usize) -> bool { 13638 pub const fn gcen(&self) -> bool {
16506 assert!(n < 4usize); 13639 let val = (self.0 >> 19usize) & 0x01;
16507 let offs = 1usize + n * 4usize;
16508 let val = (self.0 >> offs) & 0x01;
16509 val != 0 13640 val != 0
16510 } 13641 }
16511 #[doc = "Capture/Compare 1 output Polarity"] 13642 #[doc = "General call enable"]
16512 pub fn set_ccp(&mut self, n: usize, val: bool) { 13643 pub fn set_gcen(&mut self, val: bool) {
16513 assert!(n < 4usize); 13644 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize);
16514 let offs = 1usize + n * 4usize;
16515 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
16516 } 13645 }
16517 #[doc = "Capture/Compare 1 complementary output enable"] 13646 #[doc = "SMBus Host address enable"]
16518 pub fn ccne(&self, n: usize) -> bool { 13647 pub const fn smbhen(&self) -> bool {
16519 assert!(n < 4usize); 13648 let val = (self.0 >> 20usize) & 0x01;
16520 let offs = 2usize + n * 4usize;
16521 let val = (self.0 >> offs) & 0x01;
16522 val != 0 13649 val != 0
16523 } 13650 }
16524 #[doc = "Capture/Compare 1 complementary output enable"] 13651 #[doc = "SMBus Host address enable"]
16525 pub fn set_ccne(&mut self, n: usize, val: bool) { 13652 pub fn set_smbhen(&mut self, val: bool) {
16526 assert!(n < 4usize); 13653 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize);
16527 let offs = 2usize + n * 4usize;
16528 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
16529 } 13654 }
16530 #[doc = "Capture/Compare 1 output Polarity"] 13655 #[doc = "SMBus Device Default address enable"]
16531 pub fn ccnp(&self, n: usize) -> bool { 13656 pub const fn smbden(&self) -> bool {
16532 assert!(n < 4usize); 13657 let val = (self.0 >> 21usize) & 0x01;
16533 let offs = 3usize + n * 4usize;
16534 let val = (self.0 >> offs) & 0x01;
16535 val != 0 13658 val != 0
16536 } 13659 }
16537 #[doc = "Capture/Compare 1 output Polarity"] 13660 #[doc = "SMBus Device Default address enable"]
16538 pub fn set_ccnp(&mut self, n: usize, val: bool) { 13661 pub fn set_smbden(&mut self, val: bool) {
16539 assert!(n < 4usize); 13662 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
16540 let offs = 3usize + n * 4usize;
16541 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
16542 }
16543 }
16544 impl Default for CcerAdv {
16545 fn default() -> CcerAdv {
16546 CcerAdv(0)
16547 } 13663 }
16548 } 13664 #[doc = "SMBUS alert enable"]
16549 #[doc = "control register 1"] 13665 pub const fn alerten(&self) -> bool {
16550 #[repr(transparent)] 13666 let val = (self.0 >> 22usize) & 0x01;
16551 #[derive(Copy, Clone, Eq, PartialEq)]
16552 pub struct Cr1Gp(pub u32);
16553 impl Cr1Gp {
16554 #[doc = "Counter enable"]
16555 pub const fn cen(&self) -> bool {
16556 let val = (self.0 >> 0usize) & 0x01;
16557 val != 0 13667 val != 0
16558 } 13668 }
16559 #[doc = "Counter enable"] 13669 #[doc = "SMBUS alert enable"]
16560 pub fn set_cen(&mut self, val: bool) { 13670 pub fn set_alerten(&mut self, val: bool) {
16561 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 13671 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
16562 } 13672 }
16563 #[doc = "Update disable"] 13673 #[doc = "PEC enable"]
16564 pub const fn udis(&self) -> bool { 13674 pub const fn pecen(&self) -> bool {
16565 let val = (self.0 >> 1usize) & 0x01; 13675 let val = (self.0 >> 23usize) & 0x01;
16566 val != 0 13676 val != 0
16567 } 13677 }
16568 #[doc = "Update disable"] 13678 #[doc = "PEC enable"]
16569 pub fn set_udis(&mut self, val: bool) { 13679 pub fn set_pecen(&mut self, val: bool) {
16570 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 13680 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
16571 }
16572 #[doc = "Update request source"]
16573 pub const fn urs(&self) -> super::vals::Urs {
16574 let val = (self.0 >> 2usize) & 0x01;
16575 super::vals::Urs(val as u8)
16576 }
16577 #[doc = "Update request source"]
16578 pub fn set_urs(&mut self, val: super::vals::Urs) {
16579 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
16580 }
16581 #[doc = "One-pulse mode"]
16582 pub const fn opm(&self) -> super::vals::Opm {
16583 let val = (self.0 >> 3usize) & 0x01;
16584 super::vals::Opm(val as u8)
16585 }
16586 #[doc = "One-pulse mode"]
16587 pub fn set_opm(&mut self, val: super::vals::Opm) {
16588 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
16589 }
16590 #[doc = "Direction"]
16591 pub const fn dir(&self) -> super::vals::Dir {
16592 let val = (self.0 >> 4usize) & 0x01;
16593 super::vals::Dir(val as u8)
16594 }
16595 #[doc = "Direction"]
16596 pub fn set_dir(&mut self, val: super::vals::Dir) {
16597 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
16598 }
16599 #[doc = "Center-aligned mode selection"]
16600 pub const fn cms(&self) -> super::vals::Cms {
16601 let val = (self.0 >> 5usize) & 0x03;
16602 super::vals::Cms(val as u8)
16603 }
16604 #[doc = "Center-aligned mode selection"]
16605 pub fn set_cms(&mut self, val: super::vals::Cms) {
16606 self.0 = (self.0 & !(0x03 << 5usize)) | (((val.0 as u32) & 0x03) << 5usize);
16607 }
16608 #[doc = "Auto-reload preload enable"]
16609 pub const fn arpe(&self) -> super::vals::Arpe {
16610 let val = (self.0 >> 7usize) & 0x01;
16611 super::vals::Arpe(val as u8)
16612 } 13681 }
16613 #[doc = "Auto-reload preload enable"] 13682 }
16614 pub fn set_arpe(&mut self, val: super::vals::Arpe) { 13683 impl Default for Cr1 {
16615 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 13684 fn default() -> Cr1 {
13685 Cr1(0)
16616 } 13686 }
16617 #[doc = "Clock division"] 13687 }
16618 pub const fn ckd(&self) -> super::vals::Ckd { 13688 #[doc = "PEC register"]
16619 let val = (self.0 >> 8usize) & 0x03; 13689 #[repr(transparent)]
16620 super::vals::Ckd(val as u8) 13690 #[derive(Copy, Clone, Eq, PartialEq)]
13691 pub struct Pecr(pub u32);
13692 impl Pecr {
13693 #[doc = "Packet error checking register"]
13694 pub const fn pec(&self) -> u8 {
13695 let val = (self.0 >> 0usize) & 0xff;
13696 val as u8
16621 } 13697 }
16622 #[doc = "Clock division"] 13698 #[doc = "Packet error checking register"]
16623 pub fn set_ckd(&mut self, val: super::vals::Ckd) { 13699 pub fn set_pec(&mut self, val: u8) {
16624 self.0 = (self.0 & !(0x03 << 8usize)) | (((val.0 as u32) & 0x03) << 8usize); 13700 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
16625 } 13701 }
16626 } 13702 }
16627 impl Default for Cr1Gp { 13703 impl Default for Pecr {
16628 fn default() -> Cr1Gp { 13704 fn default() -> Pecr {
16629 Cr1Gp(0) 13705 Pecr(0)
16630 } 13706 }
16631 } 13707 }
16632 #[doc = "event generation register"] 13708 #[doc = "Interrupt clear register"]
16633 #[repr(transparent)] 13709 #[repr(transparent)]
16634 #[derive(Copy, Clone, Eq, PartialEq)] 13710 #[derive(Copy, Clone, Eq, PartialEq)]
16635 pub struct EgrAdv(pub u32); 13711 pub struct Icr(pub u32);
16636 impl EgrAdv { 13712 impl Icr {
16637 #[doc = "Update generation"] 13713 #[doc = "Address Matched flag clear"]
16638 pub const fn ug(&self) -> bool { 13714 pub const fn addrcf(&self) -> bool {
16639 let val = (self.0 >> 0usize) & 0x01; 13715 let val = (self.0 >> 3usize) & 0x01;
16640 val != 0 13716 val != 0
16641 } 13717 }
16642 #[doc = "Update generation"] 13718 #[doc = "Address Matched flag clear"]
16643 pub fn set_ug(&mut self, val: bool) { 13719 pub fn set_addrcf(&mut self, val: bool) {
16644 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 13720 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
16645 } 13721 }
16646 #[doc = "Capture/compare 1 generation"] 13722 #[doc = "Not Acknowledge flag clear"]
16647 pub fn ccg(&self, n: usize) -> bool { 13723 pub const fn nackcf(&self) -> bool {
16648 assert!(n < 4usize); 13724 let val = (self.0 >> 4usize) & 0x01;
16649 let offs = 1usize + n * 1usize;
16650 let val = (self.0 >> offs) & 0x01;
16651 val != 0 13725 val != 0
16652 } 13726 }
16653 #[doc = "Capture/compare 1 generation"] 13727 #[doc = "Not Acknowledge flag clear"]
16654 pub fn set_ccg(&mut self, n: usize, val: bool) { 13728 pub fn set_nackcf(&mut self, val: bool) {
16655 assert!(n < 4usize); 13729 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
16656 let offs = 1usize + n * 1usize;
16657 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
16658 } 13730 }
16659 #[doc = "Capture/Compare control update generation"] 13731 #[doc = "Stop detection flag clear"]
16660 pub const fn comg(&self) -> bool { 13732 pub const fn stopcf(&self) -> bool {
16661 let val = (self.0 >> 5usize) & 0x01; 13733 let val = (self.0 >> 5usize) & 0x01;
16662 val != 0 13734 val != 0
16663 } 13735 }
16664 #[doc = "Capture/Compare control update generation"] 13736 #[doc = "Stop detection flag clear"]
16665 pub fn set_comg(&mut self, val: bool) { 13737 pub fn set_stopcf(&mut self, val: bool) {
16666 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 13738 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
16667 } 13739 }
16668 #[doc = "Trigger generation"] 13740 #[doc = "Bus error flag clear"]
16669 pub const fn tg(&self) -> bool { 13741 pub const fn berrcf(&self) -> bool {
16670 let val = (self.0 >> 6usize) & 0x01; 13742 let val = (self.0 >> 8usize) & 0x01;
16671 val != 0 13743 val != 0
16672 } 13744 }
16673 #[doc = "Trigger generation"] 13745 #[doc = "Bus error flag clear"]
16674 pub fn set_tg(&mut self, val: bool) { 13746 pub fn set_berrcf(&mut self, val: bool) {
16675 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 13747 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
16676 } 13748 }
16677 #[doc = "Break generation"] 13749 #[doc = "Arbitration lost flag clear"]
16678 pub const fn bg(&self) -> bool { 13750 pub const fn arlocf(&self) -> bool {
16679 let val = (self.0 >> 7usize) & 0x01; 13751 let val = (self.0 >> 9usize) & 0x01;
16680 val != 0 13752 val != 0
16681 } 13753 }
16682 #[doc = "Break generation"] 13754 #[doc = "Arbitration lost flag clear"]
16683 pub fn set_bg(&mut self, val: bool) { 13755 pub fn set_arlocf(&mut self, val: bool) {
16684 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 13756 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
16685 }
16686 }
16687 impl Default for EgrAdv {
16688 fn default() -> EgrAdv {
16689 EgrAdv(0)
16690 } 13757 }
16691 } 13758 #[doc = "Overrun/Underrun flag clear"]
16692 #[doc = "control register 1"] 13759 pub const fn ovrcf(&self) -> bool {
16693 #[repr(transparent)] 13760 let val = (self.0 >> 10usize) & 0x01;
16694 #[derive(Copy, Clone, Eq, PartialEq)]
16695 pub struct Cr1Basic(pub u32);
16696 impl Cr1Basic {
16697 #[doc = "Counter enable"]
16698 pub const fn cen(&self) -> bool {
16699 let val = (self.0 >> 0usize) & 0x01;
16700 val != 0 13761 val != 0
16701 } 13762 }
16702 #[doc = "Counter enable"] 13763 #[doc = "Overrun/Underrun flag clear"]
16703 pub fn set_cen(&mut self, val: bool) { 13764 pub fn set_ovrcf(&mut self, val: bool) {
16704 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 13765 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
16705 } 13766 }
16706 #[doc = "Update disable"] 13767 #[doc = "PEC Error flag clear"]
16707 pub const fn udis(&self) -> bool { 13768 pub const fn peccf(&self) -> bool {
16708 let val = (self.0 >> 1usize) & 0x01; 13769 let val = (self.0 >> 11usize) & 0x01;
16709 val != 0 13770 val != 0
16710 } 13771 }
16711 #[doc = "Update disable"] 13772 #[doc = "PEC Error flag clear"]
16712 pub fn set_udis(&mut self, val: bool) { 13773 pub fn set_peccf(&mut self, val: bool) {
16713 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 13774 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
16714 }
16715 #[doc = "Update request source"]
16716 pub const fn urs(&self) -> super::vals::Urs {
16717 let val = (self.0 >> 2usize) & 0x01;
16718 super::vals::Urs(val as u8)
16719 }
16720 #[doc = "Update request source"]
16721 pub fn set_urs(&mut self, val: super::vals::Urs) {
16722 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
16723 }
16724 #[doc = "One-pulse mode"]
16725 pub const fn opm(&self) -> super::vals::Opm {
16726 let val = (self.0 >> 3usize) & 0x01;
16727 super::vals::Opm(val as u8)
16728 }
16729 #[doc = "One-pulse mode"]
16730 pub fn set_opm(&mut self, val: super::vals::Opm) {
16731 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
16732 }
16733 #[doc = "Auto-reload preload enable"]
16734 pub const fn arpe(&self) -> super::vals::Arpe {
16735 let val = (self.0 >> 7usize) & 0x01;
16736 super::vals::Arpe(val as u8)
16737 } 13775 }
16738 #[doc = "Auto-reload preload enable"] 13776 #[doc = "Timeout detection flag clear"]
16739 pub fn set_arpe(&mut self, val: super::vals::Arpe) { 13777 pub const fn timoutcf(&self) -> bool {
16740 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 13778 let val = (self.0 >> 12usize) & 0x01;
13779 val != 0
16741 } 13780 }
16742 } 13781 #[doc = "Timeout detection flag clear"]
16743 impl Default for Cr1Basic { 13782 pub fn set_timoutcf(&mut self, val: bool) {
16744 fn default() -> Cr1Basic { 13783 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
16745 Cr1Basic(0)
16746 } 13784 }
16747 } 13785 #[doc = "Alert flag clear"]
16748 #[doc = "capture/compare register 1"] 13786 pub const fn alertcf(&self) -> bool {
16749 #[repr(transparent)] 13787 let val = (self.0 >> 13usize) & 0x01;
16750 #[derive(Copy, Clone, Eq, PartialEq)] 13788 val != 0
16751 pub struct Ccr32(pub u32);
16752 impl Ccr32 {
16753 #[doc = "Capture/Compare 1 value"]
16754 pub const fn ccr(&self) -> u32 {
16755 let val = (self.0 >> 0usize) & 0xffff_ffff;
16756 val as u32
16757 } 13789 }
16758 #[doc = "Capture/Compare 1 value"] 13790 #[doc = "Alert flag clear"]
16759 pub fn set_ccr(&mut self, val: u32) { 13791 pub fn set_alertcf(&mut self, val: bool) {
16760 self.0 = 13792 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
16761 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
16762 } 13793 }
16763 } 13794 }
16764 impl Default for Ccr32 { 13795 impl Default for Icr {
16765 fn default() -> Ccr32 { 13796 fn default() -> Icr {
16766 Ccr32(0) 13797 Icr(0)
16767 } 13798 }
16768 } 13799 }
16769 #[doc = "status register"] 13800 #[doc = "Status register 1"]
16770 #[repr(transparent)] 13801 #[repr(transparent)]
16771 #[derive(Copy, Clone, Eq, PartialEq)] 13802 #[derive(Copy, Clone, Eq, PartialEq)]
16772 pub struct SrGp(pub u32); 13803 pub struct Timeoutr(pub u32);
16773 impl SrGp { 13804 impl Timeoutr {
16774 #[doc = "Update interrupt flag"] 13805 #[doc = "Bus timeout A"]
16775 pub const fn uif(&self) -> bool { 13806 pub const fn timeouta(&self) -> u16 {
16776 let val = (self.0 >> 0usize) & 0x01; 13807 let val = (self.0 >> 0usize) & 0x0fff;
16777 val != 0 13808 val as u16
16778 }
16779 #[doc = "Update interrupt flag"]
16780 pub fn set_uif(&mut self, val: bool) {
16781 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
16782 }
16783 #[doc = "Capture/compare 1 interrupt flag"]
16784 pub fn ccif(&self, n: usize) -> bool {
16785 assert!(n < 4usize);
16786 let offs = 1usize + n * 1usize;
16787 let val = (self.0 >> offs) & 0x01;
16788 val != 0
16789 } 13809 }
16790 #[doc = "Capture/compare 1 interrupt flag"] 13810 #[doc = "Bus timeout A"]
16791 pub fn set_ccif(&mut self, n: usize, val: bool) { 13811 pub fn set_timeouta(&mut self, val: u16) {
16792 assert!(n < 4usize); 13812 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize);
16793 let offs = 1usize + n * 1usize;
16794 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
16795 } 13813 }
16796 #[doc = "COM interrupt flag"] 13814 #[doc = "Idle clock timeout detection"]
16797 pub const fn comif(&self) -> bool { 13815 pub const fn tidle(&self) -> bool {
16798 let val = (self.0 >> 5usize) & 0x01; 13816 let val = (self.0 >> 12usize) & 0x01;
16799 val != 0 13817 val != 0
16800 } 13818 }
16801 #[doc = "COM interrupt flag"] 13819 #[doc = "Idle clock timeout detection"]
16802 pub fn set_comif(&mut self, val: bool) { 13820 pub fn set_tidle(&mut self, val: bool) {
16803 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 13821 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
16804 } 13822 }
16805 #[doc = "Trigger interrupt flag"] 13823 #[doc = "Clock timeout enable"]
16806 pub const fn tif(&self) -> bool { 13824 pub const fn timouten(&self) -> bool {
16807 let val = (self.0 >> 6usize) & 0x01; 13825 let val = (self.0 >> 15usize) & 0x01;
16808 val != 0 13826 val != 0
16809 } 13827 }
16810 #[doc = "Trigger interrupt flag"] 13828 #[doc = "Clock timeout enable"]
16811 pub fn set_tif(&mut self, val: bool) { 13829 pub fn set_timouten(&mut self, val: bool) {
16812 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 13830 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize);
16813 } 13831 }
16814 #[doc = "Break interrupt flag"] 13832 #[doc = "Bus timeout B"]
16815 pub const fn bif(&self) -> bool { 13833 pub const fn timeoutb(&self) -> u16 {
16816 let val = (self.0 >> 7usize) & 0x01; 13834 let val = (self.0 >> 16usize) & 0x0fff;
16817 val != 0 13835 val as u16
16818 } 13836 }
16819 #[doc = "Break interrupt flag"] 13837 #[doc = "Bus timeout B"]
16820 pub fn set_bif(&mut self, val: bool) { 13838 pub fn set_timeoutb(&mut self, val: u16) {
16821 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 13839 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize);
16822 } 13840 }
16823 #[doc = "Capture/Compare 1 overcapture flag"] 13841 #[doc = "Extended clock timeout enable"]
16824 pub fn ccof(&self, n: usize) -> bool { 13842 pub const fn texten(&self) -> bool {
16825 assert!(n < 4usize); 13843 let val = (self.0 >> 31usize) & 0x01;
16826 let offs = 9usize + n * 1usize;
16827 let val = (self.0 >> offs) & 0x01;
16828 val != 0 13844 val != 0
16829 } 13845 }
16830 #[doc = "Capture/Compare 1 overcapture flag"] 13846 #[doc = "Extended clock timeout enable"]
16831 pub fn set_ccof(&mut self, n: usize, val: bool) { 13847 pub fn set_texten(&mut self, val: bool) {
16832 assert!(n < 4usize); 13848 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize);
16833 let offs = 9usize + n * 1usize;
16834 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
16835 } 13849 }
16836 } 13850 }
16837 impl Default for SrGp { 13851 impl Default for Timeoutr {
16838 fn default() -> SrGp { 13852 fn default() -> Timeoutr {
16839 SrGp(0) 13853 Timeoutr(0)
16840 } 13854 }
16841 } 13855 }
16842 #[doc = "event generation register"] 13856 #[doc = "Own address register 1"]
16843 #[repr(transparent)] 13857 #[repr(transparent)]
16844 #[derive(Copy, Clone, Eq, PartialEq)] 13858 #[derive(Copy, Clone, Eq, PartialEq)]
16845 pub struct EgrGp(pub u32); 13859 pub struct Oar1(pub u32);
16846 impl EgrGp { 13860 impl Oar1 {
16847 #[doc = "Update generation"] 13861 #[doc = "Interface address"]
16848 pub const fn ug(&self) -> bool { 13862 pub const fn oa1(&self) -> u16 {
16849 let val = (self.0 >> 0usize) & 0x01; 13863 let val = (self.0 >> 0usize) & 0x03ff;
16850 val != 0 13864 val as u16
16851 }
16852 #[doc = "Update generation"]
16853 pub fn set_ug(&mut self, val: bool) {
16854 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
16855 }
16856 #[doc = "Capture/compare 1 generation"]
16857 pub fn ccg(&self, n: usize) -> bool {
16858 assert!(n < 4usize);
16859 let offs = 1usize + n * 1usize;
16860 let val = (self.0 >> offs) & 0x01;
16861 val != 0
16862 }
16863 #[doc = "Capture/compare 1 generation"]
16864 pub fn set_ccg(&mut self, n: usize, val: bool) {
16865 assert!(n < 4usize);
16866 let offs = 1usize + n * 1usize;
16867 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
16868 }
16869 #[doc = "Capture/Compare control update generation"]
16870 pub const fn comg(&self) -> bool {
16871 let val = (self.0 >> 5usize) & 0x01;
16872 val != 0
16873 } 13865 }
16874 #[doc = "Capture/Compare control update generation"] 13866 #[doc = "Interface address"]
16875 pub fn set_comg(&mut self, val: bool) { 13867 pub fn set_oa1(&mut self, val: u16) {
16876 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 13868 self.0 = (self.0 & !(0x03ff << 0usize)) | (((val as u32) & 0x03ff) << 0usize);
16877 } 13869 }
16878 #[doc = "Trigger generation"] 13870 #[doc = "Own Address 1 10-bit mode"]
16879 pub const fn tg(&self) -> bool { 13871 pub const fn oa1mode(&self) -> super::vals::Oamode {
16880 let val = (self.0 >> 6usize) & 0x01; 13872 let val = (self.0 >> 10usize) & 0x01;
16881 val != 0 13873 super::vals::Oamode(val as u8)
16882 } 13874 }
16883 #[doc = "Trigger generation"] 13875 #[doc = "Own Address 1 10-bit mode"]
16884 pub fn set_tg(&mut self, val: bool) { 13876 pub fn set_oa1mode(&mut self, val: super::vals::Oamode) {
16885 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 13877 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
16886 } 13878 }
16887 #[doc = "Break generation"] 13879 #[doc = "Own Address 1 enable"]
16888 pub const fn bg(&self) -> bool { 13880 pub const fn oa1en(&self) -> bool {
16889 let val = (self.0 >> 7usize) & 0x01; 13881 let val = (self.0 >> 15usize) & 0x01;
16890 val != 0 13882 val != 0
16891 } 13883 }
16892 #[doc = "Break generation"] 13884 #[doc = "Own Address 1 enable"]
16893 pub fn set_bg(&mut self, val: bool) { 13885 pub fn set_oa1en(&mut self, val: bool) {
16894 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 13886 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize);
16895 } 13887 }
16896 } 13888 }
16897 impl Default for EgrGp { 13889 impl Default for Oar1 {
16898 fn default() -> EgrGp { 13890 fn default() -> Oar1 {
16899 EgrGp(0) 13891 Oar1(0)
16900 } 13892 }
16901 } 13893 }
16902 #[doc = "event generation register"] 13894 #[doc = "Own address register 2"]
16903 #[repr(transparent)] 13895 #[repr(transparent)]
16904 #[derive(Copy, Clone, Eq, PartialEq)] 13896 #[derive(Copy, Clone, Eq, PartialEq)]
16905 pub struct EgrBasic(pub u32); 13897 pub struct Oar2(pub u32);
16906 impl EgrBasic { 13898 impl Oar2 {
16907 #[doc = "Update generation"] 13899 #[doc = "Interface address"]
16908 pub const fn ug(&self) -> bool { 13900 pub const fn oa2(&self) -> u8 {
16909 let val = (self.0 >> 0usize) & 0x01; 13901 let val = (self.0 >> 1usize) & 0x7f;
13902 val as u8
13903 }
13904 #[doc = "Interface address"]
13905 pub fn set_oa2(&mut self, val: u8) {
13906 self.0 = (self.0 & !(0x7f << 1usize)) | (((val as u32) & 0x7f) << 1usize);
13907 }
13908 #[doc = "Own Address 2 masks"]
13909 pub const fn oa2msk(&self) -> super::vals::Oamsk {
13910 let val = (self.0 >> 8usize) & 0x07;
13911 super::vals::Oamsk(val as u8)
13912 }
13913 #[doc = "Own Address 2 masks"]
13914 pub fn set_oa2msk(&mut self, val: super::vals::Oamsk) {
13915 self.0 = (self.0 & !(0x07 << 8usize)) | (((val.0 as u32) & 0x07) << 8usize);
13916 }
13917 #[doc = "Own Address 2 enable"]
13918 pub const fn oa2en(&self) -> bool {
13919 let val = (self.0 >> 15usize) & 0x01;
16910 val != 0 13920 val != 0
16911 } 13921 }
16912 #[doc = "Update generation"] 13922 #[doc = "Own Address 2 enable"]
16913 pub fn set_ug(&mut self, val: bool) { 13923 pub fn set_oa2en(&mut self, val: bool) {
16914 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 13924 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize);
16915 } 13925 }
16916 } 13926 }
16917 impl Default for EgrBasic { 13927 impl Default for Oar2 {
16918 fn default() -> EgrBasic { 13928 fn default() -> Oar2 {
16919 EgrBasic(0) 13929 Oar2(0)
16920 } 13930 }
16921 } 13931 }
16922 #[doc = "slave mode control register"] 13932 #[doc = "Timing register"]
16923 #[repr(transparent)] 13933 #[repr(transparent)]
16924 #[derive(Copy, Clone, Eq, PartialEq)] 13934 #[derive(Copy, Clone, Eq, PartialEq)]
16925 pub struct Smcr(pub u32); 13935 pub struct Timingr(pub u32);
16926 impl Smcr { 13936 impl Timingr {
16927 #[doc = "Slave mode selection"] 13937 #[doc = "SCL low period (master mode)"]
16928 pub const fn sms(&self) -> super::vals::Sms { 13938 pub const fn scll(&self) -> u8 {
16929 let val = (self.0 >> 0usize) & 0x07; 13939 let val = (self.0 >> 0usize) & 0xff;
16930 super::vals::Sms(val as u8) 13940 val as u8
16931 }
16932 #[doc = "Slave mode selection"]
16933 pub fn set_sms(&mut self, val: super::vals::Sms) {
16934 self.0 = (self.0 & !(0x07 << 0usize)) | (((val.0 as u32) & 0x07) << 0usize);
16935 } 13941 }
16936 #[doc = "Trigger selection"] 13942 #[doc = "SCL low period (master mode)"]
16937 pub const fn ts(&self) -> super::vals::Ts { 13943 pub fn set_scll(&mut self, val: u8) {
16938 let val = (self.0 >> 4usize) & 0x07; 13944 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
16939 super::vals::Ts(val as u8)
16940 } 13945 }
16941 #[doc = "Trigger selection"] 13946 #[doc = "SCL high period (master mode)"]
16942 pub fn set_ts(&mut self, val: super::vals::Ts) { 13947 pub const fn sclh(&self) -> u8 {
16943 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize); 13948 let val = (self.0 >> 8usize) & 0xff;
13949 val as u8
16944 } 13950 }
16945 #[doc = "Master/Slave mode"] 13951 #[doc = "SCL high period (master mode)"]
16946 pub const fn msm(&self) -> super::vals::Msm { 13952 pub fn set_sclh(&mut self, val: u8) {
16947 let val = (self.0 >> 7usize) & 0x01; 13953 self.0 = (self.0 & !(0xff << 8usize)) | (((val as u32) & 0xff) << 8usize);
16948 super::vals::Msm(val as u8)
16949 } 13954 }
16950 #[doc = "Master/Slave mode"] 13955 #[doc = "Data hold time"]
16951 pub fn set_msm(&mut self, val: super::vals::Msm) { 13956 pub const fn sdadel(&self) -> u8 {
16952 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 13957 let val = (self.0 >> 16usize) & 0x0f;
13958 val as u8
16953 } 13959 }
16954 #[doc = "External trigger filter"] 13960 #[doc = "Data hold time"]
16955 pub const fn etf(&self) -> super::vals::Etf { 13961 pub fn set_sdadel(&mut self, val: u8) {
16956 let val = (self.0 >> 8usize) & 0x0f; 13962 self.0 = (self.0 & !(0x0f << 16usize)) | (((val as u32) & 0x0f) << 16usize);
16957 super::vals::Etf(val as u8)
16958 } 13963 }
16959 #[doc = "External trigger filter"] 13964 #[doc = "Data setup time"]
16960 pub fn set_etf(&mut self, val: super::vals::Etf) { 13965 pub const fn scldel(&self) -> u8 {
16961 self.0 = (self.0 & !(0x0f << 8usize)) | (((val.0 as u32) & 0x0f) << 8usize); 13966 let val = (self.0 >> 20usize) & 0x0f;
13967 val as u8
16962 } 13968 }
16963 #[doc = "External trigger prescaler"] 13969 #[doc = "Data setup time"]
16964 pub const fn etps(&self) -> super::vals::Etps { 13970 pub fn set_scldel(&mut self, val: u8) {
16965 let val = (self.0 >> 12usize) & 0x03; 13971 self.0 = (self.0 & !(0x0f << 20usize)) | (((val as u32) & 0x0f) << 20usize);
16966 super::vals::Etps(val as u8)
16967 } 13972 }
16968 #[doc = "External trigger prescaler"] 13973 #[doc = "Timing prescaler"]
16969 pub fn set_etps(&mut self, val: super::vals::Etps) { 13974 pub const fn presc(&self) -> u8 {
16970 self.0 = (self.0 & !(0x03 << 12usize)) | (((val.0 as u32) & 0x03) << 12usize); 13975 let val = (self.0 >> 28usize) & 0x0f;
13976 val as u8
16971 } 13977 }
16972 #[doc = "External clock enable"] 13978 #[doc = "Timing prescaler"]
16973 pub const fn ece(&self) -> super::vals::Ece { 13979 pub fn set_presc(&mut self, val: u8) {
16974 let val = (self.0 >> 14usize) & 0x01; 13980 self.0 = (self.0 & !(0x0f << 28usize)) | (((val as u32) & 0x0f) << 28usize);
16975 super::vals::Ece(val as u8)
16976 } 13981 }
16977 #[doc = "External clock enable"] 13982 }
16978 pub fn set_ece(&mut self, val: super::vals::Ece) { 13983 impl Default for Timingr {
16979 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 13984 fn default() -> Timingr {
13985 Timingr(0)
16980 } 13986 }
16981 #[doc = "External trigger polarity"] 13987 }
16982 pub const fn etp(&self) -> super::vals::Etp { 13988 #[doc = "Transmit data register"]
16983 let val = (self.0 >> 15usize) & 0x01; 13989 #[repr(transparent)]
16984 super::vals::Etp(val as u8) 13990 #[derive(Copy, Clone, Eq, PartialEq)]
13991 pub struct Txdr(pub u32);
13992 impl Txdr {
13993 #[doc = "8-bit transmit data"]
13994 pub const fn txdata(&self) -> u8 {
13995 let val = (self.0 >> 0usize) & 0xff;
13996 val as u8
16985 } 13997 }
16986 #[doc = "External trigger polarity"] 13998 #[doc = "8-bit transmit data"]
16987 pub fn set_etp(&mut self, val: super::vals::Etp) { 13999 pub fn set_txdata(&mut self, val: u8) {
16988 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize); 14000 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
16989 } 14001 }
16990 } 14002 }
16991 impl Default for Smcr { 14003 impl Default for Txdr {
16992 fn default() -> Smcr { 14004 fn default() -> Txdr {
16993 Smcr(0) 14005 Txdr(0)
16994 } 14006 }
16995 } 14007 }
16996 #[doc = "control register 2"] 14008 #[doc = "Interrupt and Status register"]
16997 #[repr(transparent)] 14009 #[repr(transparent)]
16998 #[derive(Copy, Clone, Eq, PartialEq)] 14010 #[derive(Copy, Clone, Eq, PartialEq)]
16999 pub struct Cr2Adv(pub u32); 14011 pub struct Isr(pub u32);
17000 impl Cr2Adv { 14012 impl Isr {
17001 #[doc = "Capture/compare preloaded control"] 14013 #[doc = "Transmit data register empty (transmitters)"]
17002 pub const fn ccpc(&self) -> bool { 14014 pub const fn txe(&self) -> bool {
17003 let val = (self.0 >> 0usize) & 0x01; 14015 let val = (self.0 >> 0usize) & 0x01;
17004 val != 0 14016 val != 0
17005 } 14017 }
17006 #[doc = "Capture/compare preloaded control"] 14018 #[doc = "Transmit data register empty (transmitters)"]
17007 pub fn set_ccpc(&mut self, val: bool) { 14019 pub fn set_txe(&mut self, val: bool) {
17008 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 14020 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
17009 } 14021 }
17010 #[doc = "Capture/compare control update selection"] 14022 #[doc = "Transmit interrupt status (transmitters)"]
17011 pub const fn ccus(&self) -> bool { 14023 pub const fn txis(&self) -> bool {
14024 let val = (self.0 >> 1usize) & 0x01;
14025 val != 0
14026 }
14027 #[doc = "Transmit interrupt status (transmitters)"]
14028 pub fn set_txis(&mut self, val: bool) {
14029 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
14030 }
14031 #[doc = "Receive data register not empty (receivers)"]
14032 pub const fn rxne(&self) -> bool {
17012 let val = (self.0 >> 2usize) & 0x01; 14033 let val = (self.0 >> 2usize) & 0x01;
17013 val != 0 14034 val != 0
17014 } 14035 }
17015 #[doc = "Capture/compare control update selection"] 14036 #[doc = "Receive data register not empty (receivers)"]
17016 pub fn set_ccus(&mut self, val: bool) { 14037 pub fn set_rxne(&mut self, val: bool) {
17017 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 14038 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
17018 } 14039 }
17019 #[doc = "Capture/compare DMA selection"] 14040 #[doc = "Address matched (slave mode)"]
17020 pub const fn ccds(&self) -> super::vals::Ccds { 14041 pub const fn addr(&self) -> bool {
17021 let val = (self.0 >> 3usize) & 0x01; 14042 let val = (self.0 >> 3usize) & 0x01;
17022 super::vals::Ccds(val as u8)
17023 }
17024 #[doc = "Capture/compare DMA selection"]
17025 pub fn set_ccds(&mut self, val: super::vals::Ccds) {
17026 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
17027 }
17028 #[doc = "Master mode selection"]
17029 pub const fn mms(&self) -> super::vals::Mms {
17030 let val = (self.0 >> 4usize) & 0x07;
17031 super::vals::Mms(val as u8)
17032 }
17033 #[doc = "Master mode selection"]
17034 pub fn set_mms(&mut self, val: super::vals::Mms) {
17035 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize);
17036 }
17037 #[doc = "TI1 selection"]
17038 pub const fn ti1s(&self) -> super::vals::Tis {
17039 let val = (self.0 >> 7usize) & 0x01;
17040 super::vals::Tis(val as u8)
17041 }
17042 #[doc = "TI1 selection"]
17043 pub fn set_ti1s(&mut self, val: super::vals::Tis) {
17044 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
17045 }
17046 #[doc = "Output Idle state 1"]
17047 pub fn ois(&self, n: usize) -> bool {
17048 assert!(n < 4usize);
17049 let offs = 8usize + n * 2usize;
17050 let val = (self.0 >> offs) & 0x01;
17051 val != 0 14043 val != 0
17052 } 14044 }
17053 #[doc = "Output Idle state 1"] 14045 #[doc = "Address matched (slave mode)"]
17054 pub fn set_ois(&mut self, n: usize, val: bool) { 14046 pub fn set_addr(&mut self, val: bool) {
17055 assert!(n < 4usize); 14047 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
17056 let offs = 8usize + n * 2usize;
17057 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
17058 } 14048 }
17059 #[doc = "Output Idle state 1"] 14049 #[doc = "Not acknowledge received flag"]
17060 pub const fn ois1n(&self) -> bool { 14050 pub const fn nackf(&self) -> bool {
17061 let val = (self.0 >> 9usize) & 0x01; 14051 let val = (self.0 >> 4usize) & 0x01;
17062 val != 0 14052 val != 0
17063 } 14053 }
17064 #[doc = "Output Idle state 1"] 14054 #[doc = "Not acknowledge received flag"]
17065 pub fn set_ois1n(&mut self, val: bool) { 14055 pub fn set_nackf(&mut self, val: bool) {
17066 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 14056 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
17067 } 14057 }
17068 #[doc = "Output Idle state 2"] 14058 #[doc = "Stop detection flag"]
17069 pub const fn ois2n(&self) -> bool { 14059 pub const fn stopf(&self) -> bool {
17070 let val = (self.0 >> 11usize) & 0x01; 14060 let val = (self.0 >> 5usize) & 0x01;
17071 val != 0 14061 val != 0
17072 } 14062 }
17073 #[doc = "Output Idle state 2"] 14063 #[doc = "Stop detection flag"]
17074 pub fn set_ois2n(&mut self, val: bool) { 14064 pub fn set_stopf(&mut self, val: bool) {
17075 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize); 14065 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
17076 } 14066 }
17077 #[doc = "Output Idle state 3"] 14067 #[doc = "Transfer Complete (master mode)"]
17078 pub const fn ois3n(&self) -> bool { 14068 pub const fn tc(&self) -> bool {
17079 let val = (self.0 >> 13usize) & 0x01; 14069 let val = (self.0 >> 6usize) & 0x01;
17080 val != 0 14070 val != 0
17081 } 14071 }
17082 #[doc = "Output Idle state 3"] 14072 #[doc = "Transfer Complete (master mode)"]
17083 pub fn set_ois3n(&mut self, val: bool) { 14073 pub fn set_tc(&mut self, val: bool) {
17084 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize); 14074 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
17085 }
17086 }
17087 impl Default for Cr2Adv {
17088 fn default() -> Cr2Adv {
17089 Cr2Adv(0)
17090 } 14075 }
17091 } 14076 #[doc = "Transfer Complete Reload"]
17092 #[doc = "DMA/Interrupt enable register"] 14077 pub const fn tcr(&self) -> bool {
17093 #[repr(transparent)] 14078 let val = (self.0 >> 7usize) & 0x01;
17094 #[derive(Copy, Clone, Eq, PartialEq)]
17095 pub struct DierGp(pub u32);
17096 impl DierGp {
17097 #[doc = "Update interrupt enable"]
17098 pub const fn uie(&self) -> bool {
17099 let val = (self.0 >> 0usize) & 0x01;
17100 val != 0 14079 val != 0
17101 } 14080 }
17102 #[doc = "Update interrupt enable"] 14081 #[doc = "Transfer Complete Reload"]
17103 pub fn set_uie(&mut self, val: bool) { 14082 pub fn set_tcr(&mut self, val: bool) {
17104 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 14083 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
17105 } 14084 }
17106 #[doc = "Capture/Compare 1 interrupt enable"] 14085 #[doc = "Bus error"]
17107 pub fn ccie(&self, n: usize) -> bool { 14086 pub const fn berr(&self) -> bool {
17108 assert!(n < 4usize); 14087 let val = (self.0 >> 8usize) & 0x01;
17109 let offs = 1usize + n * 1usize;
17110 let val = (self.0 >> offs) & 0x01;
17111 val != 0 14088 val != 0
17112 } 14089 }
17113 #[doc = "Capture/Compare 1 interrupt enable"] 14090 #[doc = "Bus error"]
17114 pub fn set_ccie(&mut self, n: usize, val: bool) { 14091 pub fn set_berr(&mut self, val: bool) {
17115 assert!(n < 4usize); 14092 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
17116 let offs = 1usize + n * 1usize;
17117 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
17118 } 14093 }
17119 #[doc = "Trigger interrupt enable"] 14094 #[doc = "Arbitration lost"]
17120 pub const fn tie(&self) -> bool { 14095 pub const fn arlo(&self) -> bool {
17121 let val = (self.0 >> 6usize) & 0x01; 14096 let val = (self.0 >> 9usize) & 0x01;
17122 val != 0 14097 val != 0
17123 } 14098 }
17124 #[doc = "Trigger interrupt enable"] 14099 #[doc = "Arbitration lost"]
17125 pub fn set_tie(&mut self, val: bool) { 14100 pub fn set_arlo(&mut self, val: bool) {
17126 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 14101 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
17127 } 14102 }
17128 #[doc = "Update DMA request enable"] 14103 #[doc = "Overrun/Underrun (slave mode)"]
17129 pub const fn ude(&self) -> bool { 14104 pub const fn ovr(&self) -> bool {
17130 let val = (self.0 >> 8usize) & 0x01; 14105 let val = (self.0 >> 10usize) & 0x01;
17131 val != 0 14106 val != 0
17132 } 14107 }
17133 #[doc = "Update DMA request enable"] 14108 #[doc = "Overrun/Underrun (slave mode)"]
17134 pub fn set_ude(&mut self, val: bool) { 14109 pub fn set_ovr(&mut self, val: bool) {
17135 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 14110 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
17136 } 14111 }
17137 #[doc = "Capture/Compare 1 DMA request enable"] 14112 #[doc = "PEC Error in reception"]
17138 pub fn ccde(&self, n: usize) -> bool { 14113 pub const fn pecerr(&self) -> super::vals::Pecerr {
17139 assert!(n < 4usize); 14114 let val = (self.0 >> 11usize) & 0x01;
17140 let offs = 9usize + n * 1usize; 14115 super::vals::Pecerr(val as u8)
17141 let val = (self.0 >> offs) & 0x01;
17142 val != 0
17143 } 14116 }
17144 #[doc = "Capture/Compare 1 DMA request enable"] 14117 #[doc = "PEC Error in reception"]
17145 pub fn set_ccde(&mut self, n: usize, val: bool) { 14118 pub fn set_pecerr(&mut self, val: super::vals::Pecerr) {
17146 assert!(n < 4usize); 14119 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
17147 let offs = 9usize + n * 1usize;
17148 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
17149 } 14120 }
17150 #[doc = "Trigger DMA request enable"] 14121 #[doc = "Timeout or t_low detection flag"]
17151 pub const fn tde(&self) -> bool { 14122 pub const fn timeout(&self) -> bool {
17152 let val = (self.0 >> 14usize) & 0x01; 14123 let val = (self.0 >> 12usize) & 0x01;
17153 val != 0 14124 val != 0
17154 } 14125 }
17155 #[doc = "Trigger DMA request enable"] 14126 #[doc = "Timeout or t_low detection flag"]
17156 pub fn set_tde(&mut self, val: bool) { 14127 pub fn set_timeout(&mut self, val: bool) {
17157 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize); 14128 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
17158 } 14129 }
17159 } 14130 #[doc = "SMBus alert"]
17160 impl Default for DierGp { 14131 pub const fn alert(&self) -> bool {
17161 fn default() -> DierGp { 14132 let val = (self.0 >> 13usize) & 0x01;
17162 DierGp(0) 14133 val != 0
17163 } 14134 }
17164 } 14135 #[doc = "SMBus alert"]
17165 #[doc = "prescaler"] 14136 pub fn set_alert(&mut self, val: bool) {
17166 #[repr(transparent)] 14137 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
17167 #[derive(Copy, Clone, Eq, PartialEq)]
17168 pub struct Psc(pub u32);
17169 impl Psc {
17170 #[doc = "Prescaler value"]
17171 pub const fn psc(&self) -> u16 {
17172 let val = (self.0 >> 0usize) & 0xffff;
17173 val as u16
17174 } 14138 }
17175 #[doc = "Prescaler value"] 14139 #[doc = "Bus busy"]
17176 pub fn set_psc(&mut self, val: u16) { 14140 pub const fn busy(&self) -> bool {
17177 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize); 14141 let val = (self.0 >> 15usize) & 0x01;
14142 val != 0
17178 } 14143 }
17179 } 14144 #[doc = "Bus busy"]
17180 impl Default for Psc { 14145 pub fn set_busy(&mut self, val: bool) {
17181 fn default() -> Psc { 14146 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize);
17182 Psc(0)
17183 } 14147 }
17184 } 14148 #[doc = "Transfer direction (Slave mode)"]
17185 #[doc = "DMA control register"] 14149 pub const fn dir(&self) -> super::vals::Dir {
17186 #[repr(transparent)] 14150 let val = (self.0 >> 16usize) & 0x01;
17187 #[derive(Copy, Clone, Eq, PartialEq)] 14151 super::vals::Dir(val as u8)
17188 pub struct Dcr(pub u32);
17189 impl Dcr {
17190 #[doc = "DMA base address"]
17191 pub const fn dba(&self) -> u8 {
17192 let val = (self.0 >> 0usize) & 0x1f;
17193 val as u8
17194 } 14152 }
17195 #[doc = "DMA base address"] 14153 #[doc = "Transfer direction (Slave mode)"]
17196 pub fn set_dba(&mut self, val: u8) { 14154 pub fn set_dir(&mut self, val: super::vals::Dir) {
17197 self.0 = (self.0 & !(0x1f << 0usize)) | (((val as u32) & 0x1f) << 0usize); 14155 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
17198 } 14156 }
17199 #[doc = "DMA burst length"] 14157 #[doc = "Address match code (Slave mode)"]
17200 pub const fn dbl(&self) -> u8 { 14158 pub const fn addcode(&self) -> u8 {
17201 let val = (self.0 >> 8usize) & 0x1f; 14159 let val = (self.0 >> 17usize) & 0x7f;
17202 val as u8 14160 val as u8
17203 } 14161 }
17204 #[doc = "DMA burst length"] 14162 #[doc = "Address match code (Slave mode)"]
17205 pub fn set_dbl(&mut self, val: u8) { 14163 pub fn set_addcode(&mut self, val: u8) {
17206 self.0 = (self.0 & !(0x1f << 8usize)) | (((val as u32) & 0x1f) << 8usize); 14164 self.0 = (self.0 & !(0x7f << 17usize)) | (((val as u32) & 0x7f) << 17usize);
17207 } 14165 }
17208 } 14166 }
17209 impl Default for Dcr { 14167 impl Default for Isr {
17210 fn default() -> Dcr { 14168 fn default() -> Isr {
17211 Dcr(0) 14169 Isr(0)
17212 } 14170 }
17213 } 14171 }
17214 } 14172 }
@@ -17216,3367 +14174,4114 @@ pub mod timer_v1 {
17216 use crate::generic::*; 14174 use crate::generic::*;
17217 #[repr(transparent)] 14175 #[repr(transparent)]
17218 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 14176 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17219 pub struct Mms(pub u8); 14177 pub struct Start(pub u8);
17220 impl Mms { 14178 impl Start {
17221 #[doc = "The UG bit from the TIMx_EGR register is used as trigger output"] 14179 #[doc = "No Start generation"]
17222 pub const RESET: Self = Self(0); 14180 pub const NOSTART: Self = Self(0);
17223 #[doc = "The counter enable signal, CNT_EN, is used as trigger output"] 14181 #[doc = "Restart/Start generation"]
17224 pub const ENABLE: Self = Self(0x01); 14182 pub const START: Self = Self(0x01);
17225 #[doc = "The update event is selected as trigger output"]
17226 pub const UPDATE: Self = Self(0x02);
17227 #[doc = "The trigger output send a positive pulse when the CC1IF flag it to be set, as soon as a capture or a compare match occurred"]
17228 pub const COMPAREPULSE: Self = Self(0x03);
17229 #[doc = "OC1REF signal is used as trigger output"]
17230 pub const COMPAREOC1: Self = Self(0x04);
17231 #[doc = "OC2REF signal is used as trigger output"]
17232 pub const COMPAREOC2: Self = Self(0x05);
17233 #[doc = "OC3REF signal is used as trigger output"]
17234 pub const COMPAREOC3: Self = Self(0x06);
17235 #[doc = "OC4REF signal is used as trigger output"]
17236 pub const COMPAREOC4: Self = Self(0x07);
17237 }
17238 #[repr(transparent)]
17239 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17240 pub struct Dir(pub u8);
17241 impl Dir {
17242 #[doc = "Counter used as upcounter"]
17243 pub const UP: Self = Self(0);
17244 #[doc = "Counter used as downcounter"]
17245 pub const DOWN: Self = Self(0x01);
17246 }
17247 #[repr(transparent)]
17248 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17249 pub struct Ckd(pub u8);
17250 impl Ckd {
17251 #[doc = "t_DTS = t_CK_INT"]
17252 pub const DIV1: Self = Self(0);
17253 #[doc = "t_DTS = 2 × t_CK_INT"]
17254 pub const DIV2: Self = Self(0x01);
17255 #[doc = "t_DTS = 4 × t_CK_INT"]
17256 pub const DIV4: Self = Self(0x02);
17257 }
17258 #[repr(transparent)]
17259 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17260 pub struct Ts(pub u8);
17261 impl Ts {
17262 #[doc = "Internal Trigger 0 (ITR0)"]
17263 pub const ITR0: Self = Self(0);
17264 #[doc = "Internal Trigger 1 (ITR1)"]
17265 pub const ITR1: Self = Self(0x01);
17266 #[doc = "Internal Trigger 2 (ITR2)"]
17267 pub const ITR2: Self = Self(0x02);
17268 #[doc = "TI1 Edge Detector (TI1F_ED)"]
17269 pub const TI1F_ED: Self = Self(0x04);
17270 #[doc = "Filtered Timer Input 1 (TI1FP1)"]
17271 pub const TI1FP1: Self = Self(0x05);
17272 #[doc = "Filtered Timer Input 2 (TI2FP2)"]
17273 pub const TI2FP2: Self = Self(0x06);
17274 #[doc = "External Trigger input (ETRF)"]
17275 pub const ETRF: Self = Self(0x07);
17276 }
17277 #[repr(transparent)]
17278 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17279 pub struct Ccds(pub u8);
17280 impl Ccds {
17281 #[doc = "CCx DMA request sent when CCx event occurs"]
17282 pub const ONCOMPARE: Self = Self(0);
17283 #[doc = "CCx DMA request sent when update event occurs"]
17284 pub const ONUPDATE: Self = Self(0x01);
17285 }
17286 #[repr(transparent)]
17287 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17288 pub struct Ossi(pub u8);
17289 impl Ossi {
17290 #[doc = "When inactive, OC/OCN outputs are disabled"]
17291 pub const DISABLED: Self = Self(0);
17292 #[doc = "When inactive, OC/OCN outputs are forced to idle level"]
17293 pub const IDLELEVEL: Self = Self(0x01);
17294 }
17295 #[repr(transparent)]
17296 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17297 pub struct Sms(pub u8);
17298 impl Sms {
17299 #[doc = "Slave mode disabled - if CEN = ‘1 then the prescaler is clocked directly by the internal clock."]
17300 pub const DISABLED: Self = Self(0);
17301 #[doc = "Encoder mode 1 - Counter counts up/down on TI2FP1 edge depending on TI1FP2 level."]
17302 pub const ENCODER_MODE_1: Self = Self(0x01);
17303 #[doc = "Encoder mode 2 - Counter counts up/down on TI1FP2 edge depending on TI2FP1 level."]
17304 pub const ENCODER_MODE_2: Self = Self(0x02);
17305 #[doc = "Encoder mode 3 - Counter counts up/down on both TI1FP1 and TI2FP2 edges depending on the level of the other input."]
17306 pub const ENCODER_MODE_3: Self = Self(0x03);
17307 #[doc = "Reset Mode - Rising edge of the selected trigger input (TRGI) reinitializes the counter and generates an update of the registers."]
17308 pub const RESET_MODE: Self = Self(0x04);
17309 #[doc = "Gated Mode - The counter clock is enabled when the trigger input (TRGI) is high. The counter stops (but is not reset) as soon as the trigger becomes low. Both start and stop of the counter are controlled."]
17310 pub const GATED_MODE: Self = Self(0x05);
17311 #[doc = "Trigger Mode - The counter starts at a rising edge of the trigger TRGI (but it is not reset). Only the start of the counter is controlled."]
17312 pub const TRIGGER_MODE: Self = Self(0x06);
17313 #[doc = "External Clock Mode 1 - Rising edges of the selected trigger (TRGI) clock the counter."]
17314 pub const EXT_CLOCK_MODE: Self = Self(0x07);
17315 }
17316 #[repr(transparent)]
17317 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17318 pub struct Tis(pub u8);
17319 impl Tis {
17320 #[doc = "The TIMx_CH1 pin is connected to TI1 input"]
17321 pub const NORMAL: Self = Self(0);
17322 #[doc = "The TIMx_CH1, CH2, CH3 pins are connected to TI1 input"]
17323 pub const XOR: Self = Self(0x01);
17324 }
17325 #[repr(transparent)]
17326 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17327 pub struct Etf(pub u8);
17328 impl Etf {
17329 #[doc = "No filter, sampling is done at fDTS"]
17330 pub const NOFILTER: Self = Self(0);
17331 #[doc = "fSAMPLING=fCK_INT, N=2"]
17332 pub const FCK_INT_N2: Self = Self(0x01);
17333 #[doc = "fSAMPLING=fCK_INT, N=4"]
17334 pub const FCK_INT_N4: Self = Self(0x02);
17335 #[doc = "fSAMPLING=fCK_INT, N=8"]
17336 pub const FCK_INT_N8: Self = Self(0x03);
17337 #[doc = "fSAMPLING=fDTS/2, N=6"]
17338 pub const FDTS_DIV2_N6: Self = Self(0x04);
17339 #[doc = "fSAMPLING=fDTS/2, N=8"]
17340 pub const FDTS_DIV2_N8: Self = Self(0x05);
17341 #[doc = "fSAMPLING=fDTS/4, N=6"]
17342 pub const FDTS_DIV4_N6: Self = Self(0x06);
17343 #[doc = "fSAMPLING=fDTS/4, N=8"]
17344 pub const FDTS_DIV4_N8: Self = Self(0x07);
17345 #[doc = "fSAMPLING=fDTS/8, N=6"]
17346 pub const FDTS_DIV8_N6: Self = Self(0x08);
17347 #[doc = "fSAMPLING=fDTS/8, N=8"]
17348 pub const FDTS_DIV8_N8: Self = Self(0x09);
17349 #[doc = "fSAMPLING=fDTS/16, N=5"]
17350 pub const FDTS_DIV16_N5: Self = Self(0x0a);
17351 #[doc = "fSAMPLING=fDTS/16, N=6"]
17352 pub const FDTS_DIV16_N6: Self = Self(0x0b);
17353 #[doc = "fSAMPLING=fDTS/16, N=8"]
17354 pub const FDTS_DIV16_N8: Self = Self(0x0c);
17355 #[doc = "fSAMPLING=fDTS/32, N=5"]
17356 pub const FDTS_DIV32_N5: Self = Self(0x0d);
17357 #[doc = "fSAMPLING=fDTS/32, N=6"]
17358 pub const FDTS_DIV32_N6: Self = Self(0x0e);
17359 #[doc = "fSAMPLING=fDTS/32, N=8"]
17360 pub const FDTS_DIV32_N8: Self = Self(0x0f);
17361 }
17362 #[repr(transparent)]
17363 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17364 pub struct CcmrInputCcs(pub u8);
17365 impl CcmrInputCcs {
17366 #[doc = "CCx channel is configured as input, normal mapping: ICx mapped to TIx"]
17367 pub const TI4: Self = Self(0x01);
17368 #[doc = "CCx channel is configured as input, alternate mapping (switches 1 with 2, 3 with 4)"]
17369 pub const TI3: Self = Self(0x02);
17370 #[doc = "CCx channel is configured as input, ICx is mapped on TRC"]
17371 pub const TRC: Self = Self(0x03);
17372 } 14183 }
17373 #[repr(transparent)] 14184 #[repr(transparent)]
17374 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 14185 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17375 pub struct Ossr(pub u8); 14186 pub struct Nack(pub u8);
17376 impl Ossr { 14187 impl Nack {
17377 #[doc = "When inactive, OC/OCN outputs are disabled"] 14188 #[doc = "an ACK is sent after current received byte"]
17378 pub const DISABLED: Self = Self(0); 14189 pub const ACK: Self = Self(0);
17379 #[doc = "When inactive, OC/OCN outputs are enabled with their inactive level"] 14190 #[doc = "a NACK is sent after current received byte"]
17380 pub const IDLELEVEL: Self = Self(0x01); 14191 pub const NACK: Self = Self(0x01);
17381 } 14192 }
17382 #[repr(transparent)] 14193 #[repr(transparent)]
17383 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 14194 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17384 pub struct Msm(pub u8); 14195 pub struct Headr(pub u8);
17385 impl Msm { 14196 impl Headr {
17386 #[doc = "No action"] 14197 #[doc = "The master sends the complete 10 bit slave address read sequence"]
17387 pub const NOSYNC: Self = Self(0); 14198 pub const COMPLETE: Self = Self(0);
17388 #[doc = "The effect of an event on the trigger input (TRGI) is delayed to allow a perfect synchronization between the current timer and its slaves (through TRGO). It is useful if we want to synchronize several timers on a single external event."] 14199 #[doc = "The master only sends the 1st 7 bits of the 10 bit address, followed by Read direction"]
17389 pub const SYNC: Self = Self(0x01); 14200 pub const PARTIAL: Self = Self(0x01);
17390 } 14201 }
17391 #[repr(transparent)] 14202 #[repr(transparent)]
17392 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 14203 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17393 pub struct Ocm(pub u8); 14204 pub struct Oamsk(pub u8);
17394 impl Ocm { 14205 impl Oamsk {
17395 #[doc = "The comparison between the output compare register TIMx_CCRy and the counter TIMx_CNT has no effect on the outputs"] 14206 #[doc = "No mask"]
17396 pub const FROZEN: Self = Self(0); 14207 pub const NOMASK: Self = Self(0);
17397 #[doc = "Set channel to active level on match. OCyREF signal is forced high when the counter matches the capture/compare register"] 14208 #[doc = "OA2[1]
17398 pub const ACTIVEONMATCH: Self = Self(0x01); 14209is masked and don’t care. Only OA2[7:2]
17399 #[doc = "Set channel to inactive level on match. OCyREF signal is forced low when the counter matches the capture/compare register"] 14210are compared"]
17400 pub const INACTIVEONMATCH: Self = Self(0x02); 14211 pub const MASK1: Self = Self(0x01);
17401 #[doc = "OCyREF toggles when TIMx_CNT=TIMx_CCRy"] 14212 #[doc = "OA2[2:1]
17402 pub const TOGGLE: Self = Self(0x03); 14213are masked and don’t care. Only OA2[7:3]
17403 #[doc = "OCyREF is forced low"] 14214are compared"]
17404 pub const FORCEINACTIVE: Self = Self(0x04); 14215 pub const MASK2: Self = Self(0x02);
17405 #[doc = "OCyREF is forced high"] 14216 #[doc = "OA2[3:1]
17406 pub const FORCEACTIVE: Self = Self(0x05); 14217are masked and don’t care. Only OA2[7:4]
17407 #[doc = "In upcounting, channel is active as long as TIMx_CNT<TIMx_CCRy else inactive. In downcounting, channel is inactive as long as TIMx_CNT>TIMx_CCRy else active"] 14218are compared"]
17408 pub const PWMMODE1: Self = Self(0x06); 14219 pub const MASK3: Self = Self(0x03);
17409 #[doc = "Inversely to PwmMode1"] 14220 #[doc = "OA2[4:1]
17410 pub const PWMMODE2: Self = Self(0x07); 14221are masked and don’t care. Only OA2[7:5]
14222are compared"]
14223 pub const MASK4: Self = Self(0x04);
14224 #[doc = "OA2[5:1]
14225are masked and don’t care. Only OA2[7:6]
14226are compared"]
14227 pub const MASK5: Self = Self(0x05);
14228 #[doc = "OA2[6:1]
14229are masked and don’t care. Only OA2[7]
14230is compared."]
14231 pub const MASK6: Self = Self(0x06);
14232 #[doc = "OA2[7:1]
14233are masked and don’t care. No comparison is done, and all (except reserved) 7-bit received addresses are acknowledged"]
14234 pub const MASK7: Self = Self(0x07);
17411 } 14235 }
17412 #[repr(transparent)] 14236 #[repr(transparent)]
17413 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 14237 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17414 pub struct Icf(pub u8); 14238 pub struct Dnf(pub u8);
17415 impl Icf { 14239 impl Dnf {
17416 #[doc = "No filter, sampling is done at fDTS"] 14240 #[doc = "Digital filter disabled"]
17417 pub const NOFILTER: Self = Self(0); 14241 pub const NOFILTER: Self = Self(0);
17418 #[doc = "fSAMPLING=fCK_INT, N=2"] 14242 #[doc = "Digital filter enabled and filtering capability up to 1 tI2CCLK"]
17419 pub const FCK_INT_N2: Self = Self(0x01); 14243 pub const FILTER1: Self = Self(0x01);
17420 #[doc = "fSAMPLING=fCK_INT, N=4"] 14244 #[doc = "Digital filter enabled and filtering capability up to 2 tI2CCLK"]
17421 pub const FCK_INT_N4: Self = Self(0x02); 14245 pub const FILTER2: Self = Self(0x02);
17422 #[doc = "fSAMPLING=fCK_INT, N=8"] 14246 #[doc = "Digital filter enabled and filtering capability up to 3 tI2CCLK"]
17423 pub const FCK_INT_N8: Self = Self(0x03); 14247 pub const FILTER3: Self = Self(0x03);
17424 #[doc = "fSAMPLING=fDTS/2, N=6"] 14248 #[doc = "Digital filter enabled and filtering capability up to 4 tI2CCLK"]
17425 pub const FDTS_DIV2_N6: Self = Self(0x04); 14249 pub const FILTER4: Self = Self(0x04);
17426 #[doc = "fSAMPLING=fDTS/2, N=8"] 14250 #[doc = "Digital filter enabled and filtering capability up to 5 tI2CCLK"]
17427 pub const FDTS_DIV2_N8: Self = Self(0x05); 14251 pub const FILTER5: Self = Self(0x05);
17428 #[doc = "fSAMPLING=fDTS/4, N=6"] 14252 #[doc = "Digital filter enabled and filtering capability up to 6 tI2CCLK"]
17429 pub const FDTS_DIV4_N6: Self = Self(0x06); 14253 pub const FILTER6: Self = Self(0x06);
17430 #[doc = "fSAMPLING=fDTS/4, N=8"] 14254 #[doc = "Digital filter enabled and filtering capability up to 7 tI2CCLK"]
17431 pub const FDTS_DIV4_N8: Self = Self(0x07); 14255 pub const FILTER7: Self = Self(0x07);
17432 #[doc = "fSAMPLING=fDTS/8, N=6"] 14256 #[doc = "Digital filter enabled and filtering capability up to 8 tI2CCLK"]
17433 pub const FDTS_DIV8_N6: Self = Self(0x08); 14257 pub const FILTER8: Self = Self(0x08);
17434 #[doc = "fSAMPLING=fDTS/8, N=8"] 14258 #[doc = "Digital filter enabled and filtering capability up to 9 tI2CCLK"]
17435 pub const FDTS_DIV8_N8: Self = Self(0x09); 14259 pub const FILTER9: Self = Self(0x09);
17436 #[doc = "fSAMPLING=fDTS/16, N=5"] 14260 #[doc = "Digital filter enabled and filtering capability up to 10 tI2CCLK"]
17437 pub const FDTS_DIV16_N5: Self = Self(0x0a); 14261 pub const FILTER10: Self = Self(0x0a);
17438 #[doc = "fSAMPLING=fDTS/16, N=6"] 14262 #[doc = "Digital filter enabled and filtering capability up to 11 tI2CCLK"]
17439 pub const FDTS_DIV16_N6: Self = Self(0x0b); 14263 pub const FILTER11: Self = Self(0x0b);
17440 #[doc = "fSAMPLING=fDTS/16, N=8"] 14264 #[doc = "Digital filter enabled and filtering capability up to 12 tI2CCLK"]
17441 pub const FDTS_DIV16_N8: Self = Self(0x0c); 14265 pub const FILTER12: Self = Self(0x0c);
17442 #[doc = "fSAMPLING=fDTS/32, N=5"] 14266 #[doc = "Digital filter enabled and filtering capability up to 13 tI2CCLK"]
17443 pub const FDTS_DIV32_N5: Self = Self(0x0d); 14267 pub const FILTER13: Self = Self(0x0d);
17444 #[doc = "fSAMPLING=fDTS/32, N=6"] 14268 #[doc = "Digital filter enabled and filtering capability up to 14 tI2CCLK"]
17445 pub const FDTS_DIV32_N6: Self = Self(0x0e); 14269 pub const FILTER14: Self = Self(0x0e);
17446 #[doc = "fSAMPLING=fDTS/32, N=8"] 14270 #[doc = "Digital filter enabled and filtering capability up to 15 tI2CCLK"]
17447 pub const FDTS_DIV32_N8: Self = Self(0x0f); 14271 pub const FILTER15: Self = Self(0x0f);
17448 } 14272 }
17449 #[repr(transparent)] 14273 #[repr(transparent)]
17450 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 14274 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17451 pub struct Etps(pub u8); 14275 pub struct Pecerr(pub u8);
17452 impl Etps { 14276 impl Pecerr {
17453 #[doc = "Prescaler OFF"] 14277 #[doc = "Received PEC does match with PEC register"]
17454 pub const DIV1: Self = Self(0); 14278 pub const MATCH: Self = Self(0);
17455 #[doc = "ETRP frequency divided by 2"] 14279 #[doc = "Received PEC does not match with PEC register"]
17456 pub const DIV2: Self = Self(0x01); 14280 pub const NOMATCH: Self = Self(0x01);
17457 #[doc = "ETRP frequency divided by 4"]
17458 pub const DIV4: Self = Self(0x02);
17459 #[doc = "ETRP frequency divided by 8"]
17460 pub const DIV8: Self = Self(0x03);
17461 } 14281 }
17462 #[repr(transparent)] 14282 #[repr(transparent)]
17463 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 14283 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17464 pub struct Urs(pub u8); 14284 pub struct Pecbyte(pub u8);
17465 impl Urs { 14285 impl Pecbyte {
17466 #[doc = "Any of counter overflow/underflow, setting UG, or update through slave mode, generates an update interrupt or DMA request"] 14286 #[doc = "No PEC transfer"]
17467 pub const ANYEVENT: Self = Self(0); 14287 pub const NOPEC: Self = Self(0);
17468 #[doc = "Only counter overflow/underflow generates an update interrupt or DMA request"] 14288 #[doc = "PEC transmission/reception is requested"]
17469 pub const COUNTERONLY: Self = Self(0x01); 14289 pub const PEC: Self = Self(0x01);
17470 } 14290 }
17471 #[repr(transparent)] 14291 #[repr(transparent)]
17472 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 14292 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17473 pub struct Ece(pub u8); 14293 pub struct Autoend(pub u8);
17474 impl Ece { 14294 impl Autoend {
17475 #[doc = "External clock mode 2 disabled"] 14295 #[doc = "Software end mode: TC flag is set when NBYTES data are transferred, stretching SCL low"]
17476 pub const DISABLED: Self = Self(0); 14296 pub const SOFTWARE: Self = Self(0);
17477 #[doc = "External clock mode 2 enabled. The counter is clocked by any active edge on the ETRF signal."] 14297 #[doc = "Automatic end mode: a STOP condition is automatically sent when NBYTES data are transferred"]
17478 pub const ENABLED: Self = Self(0x01); 14298 pub const AUTOMATIC: Self = Self(0x01);
17479 } 14299 }
17480 #[repr(transparent)] 14300 #[repr(transparent)]
17481 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 14301 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17482 pub struct CcmrOutputCcs(pub u8); 14302 pub struct RdWrn(pub u8);
17483 impl CcmrOutputCcs { 14303 impl RdWrn {
17484 #[doc = "CCx channel is configured as output"] 14304 #[doc = "Master requests a write transfer"]
17485 pub const OUTPUT: Self = Self(0); 14305 pub const WRITE: Self = Self(0);
14306 #[doc = "Master requests a read transfer"]
14307 pub const READ: Self = Self(0x01);
17486 } 14308 }
17487 #[repr(transparent)] 14309 #[repr(transparent)]
17488 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 14310 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17489 pub struct Etp(pub u8); 14311 pub struct Stop(pub u8);
17490 impl Etp { 14312 impl Stop {
17491 #[doc = "ETR is noninverted, active at high level or rising edge"] 14313 #[doc = "No Stop generation"]
17492 pub const NOTINVERTED: Self = Self(0); 14314 pub const NOSTOP: Self = Self(0);
17493 #[doc = "ETR is inverted, active at low level or falling edge"] 14315 #[doc = "Stop generation after current byte transfer"]
17494 pub const INVERTED: Self = Self(0x01); 14316 pub const STOP: Self = Self(0x01);
17495 } 14317 }
17496 #[repr(transparent)] 14318 #[repr(transparent)]
17497 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 14319 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17498 pub struct Opm(pub u8); 14320 pub struct Add(pub u8);
17499 impl Opm { 14321 impl Add {
17500 #[doc = "Counter is not stopped at update event"] 14322 #[doc = "The master operates in 7-bit addressing mode"]
17501 pub const DISABLED: Self = Self(0); 14323 pub const BIT7: Self = Self(0);
17502 #[doc = "Counter stops counting at the next update event (clearing the CEN bit)"] 14324 #[doc = "The master operates in 10-bit addressing mode"]
17503 pub const ENABLED: Self = Self(0x01); 14325 pub const BIT10: Self = Self(0x01);
17504 } 14326 }
17505 #[repr(transparent)] 14327 #[repr(transparent)]
17506 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 14328 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17507 pub struct Arpe(pub u8); 14329 pub struct Dir(pub u8);
17508 impl Arpe { 14330 impl Dir {
17509 #[doc = "TIMx_APRR register is not buffered"] 14331 #[doc = "Write transfer, slave enters receiver mode"]
17510 pub const DISABLED: Self = Self(0); 14332 pub const WRITE: Self = Self(0);
17511 #[doc = "TIMx_APRR register is buffered"] 14333 #[doc = "Read transfer, slave enters transmitter mode"]
17512 pub const ENABLED: Self = Self(0x01); 14334 pub const READ: Self = Self(0x01);
17513 } 14335 }
17514 #[repr(transparent)] 14336 #[repr(transparent)]
17515 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 14337 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17516 pub struct Ocpe(pub u8); 14338 pub struct Reload(pub u8);
17517 impl Ocpe { 14339 impl Reload {
17518 #[doc = "Preload register on CCR2 disabled. New values written to CCR2 are taken into account immediately"] 14340 #[doc = "The transfer is completed after the NBYTES data transfer (STOP or RESTART will follow)"]
17519 pub const DISABLED: Self = Self(0); 14341 pub const COMPLETED: Self = Self(0);
17520 #[doc = "Preload register on CCR2 enabled. Preload value is loaded into active register on each update event"] 14342 #[doc = "The transfer is not completed after the NBYTES data transfer (NBYTES will be reloaded)"]
17521 pub const ENABLED: Self = Self(0x01); 14343 pub const NOTCOMPLETED: Self = Self(0x01);
17522 } 14344 }
17523 #[repr(transparent)] 14345 #[repr(transparent)]
17524 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 14346 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
17525 pub struct Cms(pub u8); 14347 pub struct Oamode(pub u8);
17526 impl Cms { 14348 impl Oamode {
17527 #[doc = "The counter counts up or down depending on the direction bit"] 14349 #[doc = "Own address 1 is a 7-bit address"]
17528 pub const EDGEALIGNED: Self = Self(0); 14350 pub const BIT7: Self = Self(0);
17529 #[doc = "The counter counts up and down alternatively. Output compare interrupt flags are set only when the counter is counting down."] 14351 #[doc = "Own address 1 is a 10-bit address"]
17530 pub const CENTERALIGNED1: Self = Self(0x01); 14352 pub const BIT10: Self = Self(0x01);
17531 #[doc = "The counter counts up and down alternatively. Output compare interrupt flags are set only when the counter is counting up."]
17532 pub const CENTERALIGNED2: Self = Self(0x02);
17533 #[doc = "The counter counts up and down alternatively. Output compare interrupt flags are set both when the counter is counting up or down."]
17534 pub const CENTERALIGNED3: Self = Self(0x03);
17535 } 14353 }
17536 } 14354 }
17537} 14355}
17538pub mod rcc_l0 { 14356pub mod sdmmc_v2 {
17539 use crate::generic::*; 14357 use crate::generic::*;
17540 #[doc = "Reset and clock control"] 14358 #[doc = "SDMMC"]
17541 #[derive(Copy, Clone)] 14359 #[derive(Copy, Clone)]
17542 pub struct Rcc(pub *mut u8); 14360 pub struct Sdmmc(pub *mut u8);
17543 unsafe impl Send for Rcc {} 14361 unsafe impl Send for Sdmmc {}
17544 unsafe impl Sync for Rcc {} 14362 unsafe impl Sync for Sdmmc {}
17545 impl Rcc { 14363 impl Sdmmc {
17546 #[doc = "Clock control register"] 14364 #[doc = "SDMMC power control register"]
17547 pub fn cr(self) -> Reg<regs::Cr, RW> { 14365 pub fn power(self) -> Reg<regs::Power, RW> {
17548 unsafe { Reg::from_ptr(self.0.add(0usize)) } 14366 unsafe { Reg::from_ptr(self.0.add(0usize)) }
17549 } 14367 }
17550 #[doc = "Internal clock sources calibration register"] 14368 #[doc = "The SDMMC_CLKCR register controls the SDMMC_CK output clock, the SDMMC_RX_CLK receive clock, and the bus width."]
17551 pub fn icscr(self) -> Reg<regs::Icscr, RW> { 14369 pub fn clkcr(self) -> Reg<regs::Clkcr, RW> {
17552 unsafe { Reg::from_ptr(self.0.add(4usize)) } 14370 unsafe { Reg::from_ptr(self.0.add(4usize)) }
17553 } 14371 }
17554 #[doc = "Clock recovery RC register"] 14372 #[doc = "The SDMMC_ARGR register contains a 32-bit command argument, which is sent to a card as part of a command message."]
17555 pub fn crrcr(self) -> Reg<regs::Crrcr, RW> { 14373 pub fn argr(self) -> Reg<regs::Argr, RW> {
17556 unsafe { Reg::from_ptr(self.0.add(8usize)) } 14374 unsafe { Reg::from_ptr(self.0.add(8usize)) }
17557 } 14375 }
17558 #[doc = "Clock configuration register"] 14376 #[doc = "The SDMMC_CMDR register contains the command index and command type bits. The command index is sent to a card as part of a command message. The command type bits control the command path state machine (CPSM)."]
17559 pub fn cfgr(self) -> Reg<regs::Cfgr, RW> { 14377 pub fn cmdr(self) -> Reg<regs::Cmdr, RW> {
17560 unsafe { Reg::from_ptr(self.0.add(12usize)) } 14378 unsafe { Reg::from_ptr(self.0.add(12usize)) }
17561 } 14379 }
17562 #[doc = "Clock interrupt enable register"] 14380 #[doc = "SDMMC command response register"]
17563 pub fn cier(self) -> Reg<regs::Cier, R> { 14381 pub fn respcmdr(self) -> Reg<regs::Respcmdr, R> {
17564 unsafe { Reg::from_ptr(self.0.add(16usize)) } 14382 unsafe { Reg::from_ptr(self.0.add(16usize)) }
17565 } 14383 }
17566 #[doc = "Clock interrupt flag register"] 14384 #[doc = "The SDMMC_RESP1/2/3/4R registers contain the status of a card, which is part of the received response."]
17567 pub fn cifr(self) -> Reg<regs::Cifr, R> { 14385 pub fn respr(self, n: usize) -> Reg<regs::Resp1r, R> {
17568 unsafe { Reg::from_ptr(self.0.add(20usize)) } 14386 assert!(n < 4usize);
17569 } 14387 unsafe { Reg::from_ptr(self.0.add(20usize + n * 4usize)) }
17570 #[doc = "Clock interrupt clear register"]
17571 pub fn cicr(self) -> Reg<regs::Cicr, R> {
17572 unsafe { Reg::from_ptr(self.0.add(24usize)) }
17573 }
17574 #[doc = "GPIO reset register"]
17575 pub fn ioprstr(self) -> Reg<regs::Ioprstr, RW> {
17576 unsafe { Reg::from_ptr(self.0.add(28usize)) }
17577 }
17578 #[doc = "AHB peripheral reset register"]
17579 pub fn ahbrstr(self) -> Reg<regs::Ahbrstr, RW> {
17580 unsafe { Reg::from_ptr(self.0.add(32usize)) }
17581 } 14388 }
17582 #[doc = "APB2 peripheral reset register"] 14389 #[doc = "The SDMMC_DTIMER register contains the data timeout period, in card bus clock periods. A counter loads the value from the SDMMC_DTIMER register, and starts decrementing when the data path state machine (DPSM) enters the Wait_R or Busy state. If the timer reaches 0 while the DPSM is in either of these states, the timeout status flag is set."]
17583 pub fn apb2rstr(self) -> Reg<regs::Apb2rstr, RW> { 14390 pub fn dtimer(self) -> Reg<regs::Dtimer, RW> {
17584 unsafe { Reg::from_ptr(self.0.add(36usize)) } 14391 unsafe { Reg::from_ptr(self.0.add(36usize)) }
17585 } 14392 }
17586 #[doc = "APB1 peripheral reset register"] 14393 #[doc = "The SDMMC_DLENR register contains the number of data bytes to be transferred. The value is loaded into the data counter when data transfer starts."]
17587 pub fn apb1rstr(self) -> Reg<regs::Apb1rstr, RW> { 14394 pub fn dlenr(self) -> Reg<regs::Dlenr, RW> {
17588 unsafe { Reg::from_ptr(self.0.add(40usize)) } 14395 unsafe { Reg::from_ptr(self.0.add(40usize)) }
17589 } 14396 }
17590 #[doc = "GPIO clock enable register"] 14397 #[doc = "The SDMMC_DCTRL register control the data path state machine (DPSM)."]
17591 pub fn iopenr(self) -> Reg<regs::Iopenr, RW> { 14398 pub fn dctrl(self) -> Reg<regs::Dctrl, RW> {
17592 unsafe { Reg::from_ptr(self.0.add(44usize)) } 14399 unsafe { Reg::from_ptr(self.0.add(44usize)) }
17593 } 14400 }
17594 #[doc = "AHB peripheral clock enable register"] 14401 #[doc = "The SDMMC_DCNTR register loads the value from the data length register (see SDMMC_DLENR) when the DPSM moves from the Idle state to the Wait_R or Wait_S state. As data is transferred, the counter decrements the value until it reaches 0. The DPSM then moves to the Idle state and when there has been no error, the data status end flag (DATAEND) is set."]
17595 pub fn ahbenr(self) -> Reg<regs::Ahbenr, RW> { 14402 pub fn dcntr(self) -> Reg<regs::Dcntr, R> {
17596 unsafe { Reg::from_ptr(self.0.add(48usize)) } 14403 unsafe { Reg::from_ptr(self.0.add(48usize)) }
17597 } 14404 }
17598 #[doc = "APB2 peripheral clock enable register"] 14405 #[doc = "The SDMMC_STAR register is a read-only register. It contains two types of flag:Static flags (bits [29,21,11:0]): these bits remain asserted until they are cleared by writing to the SDMMC interrupt Clear register (see SDMMC_ICR)Dynamic flags (bits [20:12]): these bits change state depending on the state of the underlying logic (for example, FIFO full and empty flags are asserted and de-asserted as data while written to the FIFO)"]
17599 pub fn apb2enr(self) -> Reg<regs::Apb2enr, RW> { 14406 pub fn star(self) -> Reg<regs::Star, R> {
17600 unsafe { Reg::from_ptr(self.0.add(52usize)) } 14407 unsafe { Reg::from_ptr(self.0.add(52usize)) }
17601 } 14408 }
17602 #[doc = "APB1 peripheral clock enable register"] 14409 #[doc = "The SDMMC_ICR register is a write-only register. Writing a bit with 1 clears the corresponding bit in the SDMMC_STAR status register."]
17603 pub fn apb1enr(self) -> Reg<regs::Apb1enr, RW> { 14410 pub fn icr(self) -> Reg<regs::Icr, RW> {
17604 unsafe { Reg::from_ptr(self.0.add(56usize)) } 14411 unsafe { Reg::from_ptr(self.0.add(56usize)) }
17605 } 14412 }
17606 #[doc = "GPIO clock enable in sleep mode register"] 14413 #[doc = "The interrupt mask register determines which status flags generate an interrupt request by setting the corresponding bit to 1."]
17607 pub fn iopsmen(self) -> Reg<regs::Iopsmen, RW> { 14414 pub fn maskr(self) -> Reg<regs::Maskr, RW> {
17608 unsafe { Reg::from_ptr(self.0.add(60usize)) } 14415 unsafe { Reg::from_ptr(self.0.add(60usize)) }
17609 } 14416 }
17610 #[doc = "AHB peripheral clock enable in sleep mode register"] 14417 #[doc = "The SDMMC_ACKTIMER register contains the acknowledgment timeout period, in SDMMC_CK bus clock periods. A counter loads the value from the SDMMC_ACKTIMER register, and starts decrementing when the data path state machine (DPSM) enters the Wait_Ack state. If the timer reaches 0 while the DPSM is in this states, the acknowledgment timeout status flag is set."]
17611 pub fn ahbsmenr(self) -> Reg<regs::Ahbsmenr, RW> { 14418 pub fn acktimer(self) -> Reg<regs::Acktimer, RW> {
17612 unsafe { Reg::from_ptr(self.0.add(64usize)) } 14419 unsafe { Reg::from_ptr(self.0.add(64usize)) }
17613 } 14420 }
17614 #[doc = "APB2 peripheral clock enable in sleep mode register"] 14421 #[doc = "The receive and transmit FIFOs can be read or written as 32-bit wide registers. The FIFOs contain 32 entries on 32 sequential addresses. This allows the CPU to use its load and store multiple operands to read from/write to the FIFO."]
17615 pub fn apb2smenr(self) -> Reg<regs::Apb2smenr, RW> { 14422 pub fn idmactrlr(self) -> Reg<regs::Idmactrlr, RW> {
17616 unsafe { Reg::from_ptr(self.0.add(68usize)) } 14423 unsafe { Reg::from_ptr(self.0.add(80usize)) }
17617 } 14424 }
17618 #[doc = "APB1 peripheral clock enable in sleep mode register"] 14425 #[doc = "The SDMMC_IDMABSIZER register contains the buffers size when in double buffer configuration."]
17619 pub fn apb1smenr(self) -> Reg<regs::Apb1smenr, RW> { 14426 pub fn idmabsizer(self) -> Reg<regs::Idmabsizer, RW> {
17620 unsafe { Reg::from_ptr(self.0.add(72usize)) } 14427 unsafe { Reg::from_ptr(self.0.add(84usize)) }
17621 } 14428 }
17622 #[doc = "Clock configuration register"] 14429 #[doc = "The SDMMC_IDMABASE0R register contains the memory buffer base address in single buffer configuration and the buffer 0 base address in double buffer configuration."]
17623 pub fn ccipr(self) -> Reg<regs::Ccipr, RW> { 14430 pub fn idmabase0r(self) -> Reg<regs::Idmabase0r, RW> {
17624 unsafe { Reg::from_ptr(self.0.add(76usize)) } 14431 unsafe { Reg::from_ptr(self.0.add(88usize)) }
17625 } 14432 }
17626 #[doc = "Control and status register"] 14433 #[doc = "The SDMMC_IDMABASE1R register contains the double buffer configuration second buffer memory base address."]
17627 pub fn csr(self) -> Reg<regs::Csr, RW> { 14434 pub fn idmabase1r(self) -> Reg<regs::Idmabase1r, RW> {
17628 unsafe { Reg::from_ptr(self.0.add(80usize)) } 14435 unsafe { Reg::from_ptr(self.0.add(92usize)) }
14436 }
14437 #[doc = "The receive and transmit FIFOs can be only read or written as word (32-bit) wide registers. The FIFOs contain 16 entries on sequential addresses. This allows the CPU to use its load and store multiple operands to read from/write to the FIFO.When accessing SDMMC_FIFOR with half word or byte access an AHB bus fault is generated."]
14438 pub fn fifor(self) -> Reg<regs::Fifor, RW> {
14439 unsafe { Reg::from_ptr(self.0.add(128usize)) }
14440 }
14441 #[doc = "SDMMC IP version register"]
14442 pub fn ver(self) -> Reg<regs::Ver, R> {
14443 unsafe { Reg::from_ptr(self.0.add(1012usize)) }
14444 }
14445 #[doc = "SDMMC IP identification register"]
14446 pub fn id(self) -> Reg<regs::Id, R> {
14447 unsafe { Reg::from_ptr(self.0.add(1016usize)) }
17629 } 14448 }
17630 } 14449 }
17631 pub mod regs { 14450 pub mod regs {
17632 use crate::generic::*; 14451 use crate::generic::*;
17633 #[doc = "APB1 peripheral clock enable register"] 14452 #[doc = "The SDMMC_RESP1/2/3/4R registers contain the status of a card, which is part of the received response."]
17634 #[repr(transparent)] 14453 #[repr(transparent)]
17635 #[derive(Copy, Clone, Eq, PartialEq)] 14454 #[derive(Copy, Clone, Eq, PartialEq)]
17636 pub struct Apb1enr(pub u32); 14455 pub struct Resp2r(pub u32);
17637 impl Apb1enr { 14456 impl Resp2r {
17638 #[doc = "Timer2 clock enable bit"] 14457 #[doc = "see Table404."]
17639 pub const fn tim2en(&self) -> super::vals::Lptimen { 14458 pub const fn cardstatus2(&self) -> u32 {
14459 let val = (self.0 >> 0usize) & 0xffff_ffff;
14460 val as u32
14461 }
14462 #[doc = "see Table404."]
14463 pub fn set_cardstatus2(&mut self, val: u32) {
14464 self.0 =
14465 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
14466 }
14467 }
14468 impl Default for Resp2r {
14469 fn default() -> Resp2r {
14470 Resp2r(0)
14471 }
14472 }
14473 #[doc = "The SDMMC_ICR register is a write-only register. Writing a bit with 1 clears the corresponding bit in the SDMMC_STAR status register."]
14474 #[repr(transparent)]
14475 #[derive(Copy, Clone, Eq, PartialEq)]
14476 pub struct Icr(pub u32);
14477 impl Icr {
14478 #[doc = "CCRCFAIL flag clear bit Set by software to clear the CCRCFAIL flag."]
14479 pub const fn ccrcfailc(&self) -> bool {
17640 let val = (self.0 >> 0usize) & 0x01; 14480 let val = (self.0 >> 0usize) & 0x01;
17641 super::vals::Lptimen(val as u8) 14481 val != 0
17642 } 14482 }
17643 #[doc = "Timer2 clock enable bit"] 14483 #[doc = "CCRCFAIL flag clear bit Set by software to clear the CCRCFAIL flag."]
17644 pub fn set_tim2en(&mut self, val: super::vals::Lptimen) { 14484 pub fn set_ccrcfailc(&mut self, val: bool) {
17645 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 14485 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
17646 } 14486 }
17647 #[doc = "Timer3 clock enable bit"] 14487 #[doc = "DCRCFAIL flag clear bit Set by software to clear the DCRCFAIL flag."]
17648 pub const fn tim3en(&self) -> super::vals::Lptimen { 14488 pub const fn dcrcfailc(&self) -> bool {
17649 let val = (self.0 >> 1usize) & 0x01; 14489 let val = (self.0 >> 1usize) & 0x01;
17650 super::vals::Lptimen(val as u8) 14490 val != 0
17651 } 14491 }
17652 #[doc = "Timer3 clock enable bit"] 14492 #[doc = "DCRCFAIL flag clear bit Set by software to clear the DCRCFAIL flag."]
17653 pub fn set_tim3en(&mut self, val: super::vals::Lptimen) { 14493 pub fn set_dcrcfailc(&mut self, val: bool) {
17654 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 14494 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
17655 } 14495 }
17656 #[doc = "Timer 6 clock enable bit"] 14496 #[doc = "CTIMEOUT flag clear bit Set by software to clear the CTIMEOUT flag."]
17657 pub const fn tim6en(&self) -> super::vals::Lptimen { 14497 pub const fn ctimeoutc(&self) -> bool {
14498 let val = (self.0 >> 2usize) & 0x01;
14499 val != 0
14500 }
14501 #[doc = "CTIMEOUT flag clear bit Set by software to clear the CTIMEOUT flag."]
14502 pub fn set_ctimeoutc(&mut self, val: bool) {
14503 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
14504 }
14505 #[doc = "DTIMEOUT flag clear bit Set by software to clear the DTIMEOUT flag."]
14506 pub const fn dtimeoutc(&self) -> bool {
14507 let val = (self.0 >> 3usize) & 0x01;
14508 val != 0
14509 }
14510 #[doc = "DTIMEOUT flag clear bit Set by software to clear the DTIMEOUT flag."]
14511 pub fn set_dtimeoutc(&mut self, val: bool) {
14512 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
14513 }
14514 #[doc = "TXUNDERR flag clear bit Set by software to clear TXUNDERR flag."]
14515 pub const fn txunderrc(&self) -> bool {
17658 let val = (self.0 >> 4usize) & 0x01; 14516 let val = (self.0 >> 4usize) & 0x01;
17659 super::vals::Lptimen(val as u8) 14517 val != 0
17660 } 14518 }
17661 #[doc = "Timer 6 clock enable bit"] 14519 #[doc = "TXUNDERR flag clear bit Set by software to clear TXUNDERR flag."]
17662 pub fn set_tim6en(&mut self, val: super::vals::Lptimen) { 14520 pub fn set_txunderrc(&mut self, val: bool) {
17663 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 14521 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
17664 } 14522 }
17665 #[doc = "Timer 7 clock enable bit"] 14523 #[doc = "RXOVERR flag clear bit Set by software to clear the RXOVERR flag."]
17666 pub const fn tim7en(&self) -> super::vals::Lptimen { 14524 pub const fn rxoverrc(&self) -> bool {
17667 let val = (self.0 >> 5usize) & 0x01; 14525 let val = (self.0 >> 5usize) & 0x01;
17668 super::vals::Lptimen(val as u8) 14526 val != 0
17669 } 14527 }
17670 #[doc = "Timer 7 clock enable bit"] 14528 #[doc = "RXOVERR flag clear bit Set by software to clear the RXOVERR flag."]
17671 pub fn set_tim7en(&mut self, val: super::vals::Lptimen) { 14529 pub fn set_rxoverrc(&mut self, val: bool) {
17672 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 14530 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
17673 } 14531 }
17674 #[doc = "Window watchdog clock enable bit"] 14532 #[doc = "CMDREND flag clear bit Set by software to clear the CMDREND flag."]
17675 pub const fn wwdgen(&self) -> super::vals::Lptimen { 14533 pub const fn cmdrendc(&self) -> bool {
17676 let val = (self.0 >> 11usize) & 0x01; 14534 let val = (self.0 >> 6usize) & 0x01;
17677 super::vals::Lptimen(val as u8) 14535 val != 0
17678 } 14536 }
17679 #[doc = "Window watchdog clock enable bit"] 14537 #[doc = "CMDREND flag clear bit Set by software to clear the CMDREND flag."]
17680 pub fn set_wwdgen(&mut self, val: super::vals::Lptimen) { 14538 pub fn set_cmdrendc(&mut self, val: bool) {
17681 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize); 14539 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
17682 } 14540 }
17683 #[doc = "SPI2 clock enable bit"] 14541 #[doc = "CMDSENT flag clear bit Set by software to clear the CMDSENT flag."]
17684 pub const fn spi2en(&self) -> super::vals::Lptimen { 14542 pub const fn cmdsentc(&self) -> bool {
17685 let val = (self.0 >> 14usize) & 0x01; 14543 let val = (self.0 >> 7usize) & 0x01;
17686 super::vals::Lptimen(val as u8) 14544 val != 0
17687 } 14545 }
17688 #[doc = "SPI2 clock enable bit"] 14546 #[doc = "CMDSENT flag clear bit Set by software to clear the CMDSENT flag."]
17689 pub fn set_spi2en(&mut self, val: super::vals::Lptimen) { 14547 pub fn set_cmdsentc(&mut self, val: bool) {
17690 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 14548 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
17691 } 14549 }
17692 #[doc = "UART2 clock enable bit"] 14550 #[doc = "DATAEND flag clear bit Set by software to clear the DATAEND flag."]
17693 pub const fn usart2en(&self) -> super::vals::Lptimen { 14551 pub const fn dataendc(&self) -> bool {
17694 let val = (self.0 >> 17usize) & 0x01; 14552 let val = (self.0 >> 8usize) & 0x01;
17695 super::vals::Lptimen(val as u8) 14553 val != 0
17696 } 14554 }
17697 #[doc = "UART2 clock enable bit"] 14555 #[doc = "DATAEND flag clear bit Set by software to clear the DATAEND flag."]
17698 pub fn set_usart2en(&mut self, val: super::vals::Lptimen) { 14556 pub fn set_dataendc(&mut self, val: bool) {
17699 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize); 14557 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
17700 } 14558 }
17701 #[doc = "LPUART1 clock enable bit"] 14559 #[doc = "DHOLD flag clear bit Set by software to clear the DHOLD flag."]
17702 pub const fn lpuart1en(&self) -> super::vals::Lptimen { 14560 pub const fn dholdc(&self) -> bool {
17703 let val = (self.0 >> 18usize) & 0x01; 14561 let val = (self.0 >> 9usize) & 0x01;
17704 super::vals::Lptimen(val as u8) 14562 val != 0
17705 } 14563 }
17706 #[doc = "LPUART1 clock enable bit"] 14564 #[doc = "DHOLD flag clear bit Set by software to clear the DHOLD flag."]
17707 pub fn set_lpuart1en(&mut self, val: super::vals::Lptimen) { 14565 pub fn set_dholdc(&mut self, val: bool) {
17708 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize); 14566 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
17709 } 14567 }
17710 #[doc = "USART4 clock enable bit"] 14568 #[doc = "DBCKEND flag clear bit Set by software to clear the DBCKEND flag."]
17711 pub const fn usart4en(&self) -> super::vals::Lptimen { 14569 pub const fn dbckendc(&self) -> bool {
17712 let val = (self.0 >> 19usize) & 0x01; 14570 let val = (self.0 >> 10usize) & 0x01;
17713 super::vals::Lptimen(val as u8) 14571 val != 0
17714 } 14572 }
17715 #[doc = "USART4 clock enable bit"] 14573 #[doc = "DBCKEND flag clear bit Set by software to clear the DBCKEND flag."]
17716 pub fn set_usart4en(&mut self, val: super::vals::Lptimen) { 14574 pub fn set_dbckendc(&mut self, val: bool) {
17717 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize); 14575 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
17718 } 14576 }
17719 #[doc = "USART5 clock enable bit"] 14577 #[doc = "DABORT flag clear bit Set by software to clear the DABORT flag."]
17720 pub const fn usart5en(&self) -> super::vals::Lptimen { 14578 pub const fn dabortc(&self) -> bool {
17721 let val = (self.0 >> 20usize) & 0x01; 14579 let val = (self.0 >> 11usize) & 0x01;
17722 super::vals::Lptimen(val as u8) 14580 val != 0
17723 } 14581 }
17724 #[doc = "USART5 clock enable bit"] 14582 #[doc = "DABORT flag clear bit Set by software to clear the DABORT flag."]
17725 pub fn set_usart5en(&mut self, val: super::vals::Lptimen) { 14583 pub fn set_dabortc(&mut self, val: bool) {
17726 self.0 = (self.0 & !(0x01 << 20usize)) | (((val.0 as u32) & 0x01) << 20usize); 14584 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
17727 } 14585 }
17728 #[doc = "I2C1 clock enable bit"] 14586 #[doc = "BUSYD0END flag clear bit Set by software to clear the BUSYD0END flag."]
17729 pub const fn i2c1en(&self) -> super::vals::Lptimen { 14587 pub const fn busyd0endc(&self) -> bool {
17730 let val = (self.0 >> 21usize) & 0x01; 14588 let val = (self.0 >> 21usize) & 0x01;
17731 super::vals::Lptimen(val as u8) 14589 val != 0
17732 } 14590 }
17733 #[doc = "I2C1 clock enable bit"] 14591 #[doc = "BUSYD0END flag clear bit Set by software to clear the BUSYD0END flag."]
17734 pub fn set_i2c1en(&mut self, val: super::vals::Lptimen) { 14592 pub fn set_busyd0endc(&mut self, val: bool) {
17735 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize); 14593 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
17736 } 14594 }
17737 #[doc = "I2C2 clock enable bit"] 14595 #[doc = "SDIOIT flag clear bit Set by software to clear the SDIOIT flag."]
17738 pub const fn i2c2en(&self) -> super::vals::Lptimen { 14596 pub const fn sdioitc(&self) -> bool {
17739 let val = (self.0 >> 22usize) & 0x01; 14597 let val = (self.0 >> 22usize) & 0x01;
17740 super::vals::Lptimen(val as u8) 14598 val != 0
17741 } 14599 }
17742 #[doc = "I2C2 clock enable bit"] 14600 #[doc = "SDIOIT flag clear bit Set by software to clear the SDIOIT flag."]
17743 pub fn set_i2c2en(&mut self, val: super::vals::Lptimen) { 14601 pub fn set_sdioitc(&mut self, val: bool) {
17744 self.0 = (self.0 & !(0x01 << 22usize)) | (((val.0 as u32) & 0x01) << 22usize); 14602 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
17745 } 14603 }
17746 #[doc = "USB clock enable bit"] 14604 #[doc = "ACKFAIL flag clear bit Set by software to clear the ACKFAIL flag."]
17747 pub const fn usben(&self) -> super::vals::Lptimen { 14605 pub const fn ackfailc(&self) -> bool {
17748 let val = (self.0 >> 23usize) & 0x01; 14606 let val = (self.0 >> 23usize) & 0x01;
17749 super::vals::Lptimen(val as u8) 14607 val != 0
17750 } 14608 }
17751 #[doc = "USB clock enable bit"] 14609 #[doc = "ACKFAIL flag clear bit Set by software to clear the ACKFAIL flag."]
17752 pub fn set_usben(&mut self, val: super::vals::Lptimen) { 14610 pub fn set_ackfailc(&mut self, val: bool) {
17753 self.0 = (self.0 & !(0x01 << 23usize)) | (((val.0 as u32) & 0x01) << 23usize); 14611 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
17754 } 14612 }
17755 #[doc = "Clock recovery system clock enable bit"] 14613 #[doc = "ACKTIMEOUT flag clear bit Set by software to clear the ACKTIMEOUT flag."]
17756 pub const fn crsen(&self) -> super::vals::Lptimen { 14614 pub const fn acktimeoutc(&self) -> bool {
17757 let val = (self.0 >> 27usize) & 0x01; 14615 let val = (self.0 >> 24usize) & 0x01;
17758 super::vals::Lptimen(val as u8) 14616 val != 0
17759 } 14617 }
17760 #[doc = "Clock recovery system clock enable bit"] 14618 #[doc = "ACKTIMEOUT flag clear bit Set by software to clear the ACKTIMEOUT flag."]
17761 pub fn set_crsen(&mut self, val: super::vals::Lptimen) { 14619 pub fn set_acktimeoutc(&mut self, val: bool) {
17762 self.0 = (self.0 & !(0x01 << 27usize)) | (((val.0 as u32) & 0x01) << 27usize); 14620 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize);
17763 } 14621 }
17764 #[doc = "Power interface clock enable bit"] 14622 #[doc = "VSWEND flag clear bit Set by software to clear the VSWEND flag."]
17765 pub const fn pwren(&self) -> super::vals::Lptimen { 14623 pub const fn vswendc(&self) -> bool {
17766 let val = (self.0 >> 28usize) & 0x01; 14624 let val = (self.0 >> 25usize) & 0x01;
17767 super::vals::Lptimen(val as u8) 14625 val != 0
17768 } 14626 }
17769 #[doc = "Power interface clock enable bit"] 14627 #[doc = "VSWEND flag clear bit Set by software to clear the VSWEND flag."]
17770 pub fn set_pwren(&mut self, val: super::vals::Lptimen) { 14628 pub fn set_vswendc(&mut self, val: bool) {
17771 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize); 14629 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize);
17772 } 14630 }
17773 #[doc = "DAC interface clock enable bit"] 14631 #[doc = "CKSTOP flag clear bit Set by software to clear the CKSTOP flag."]
17774 pub const fn dacen(&self) -> super::vals::Lptimen { 14632 pub const fn ckstopc(&self) -> bool {
17775 let val = (self.0 >> 29usize) & 0x01; 14633 let val = (self.0 >> 26usize) & 0x01;
17776 super::vals::Lptimen(val as u8) 14634 val != 0
17777 } 14635 }
17778 #[doc = "DAC interface clock enable bit"] 14636 #[doc = "CKSTOP flag clear bit Set by software to clear the CKSTOP flag."]
17779 pub fn set_dacen(&mut self, val: super::vals::Lptimen) { 14637 pub fn set_ckstopc(&mut self, val: bool) {
17780 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize); 14638 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
17781 } 14639 }
17782 #[doc = "I2C3 clock enable bit"] 14640 #[doc = "IDMA transfer error clear bit Set by software to clear the IDMATE flag."]
17783 pub const fn i2c3en(&self) -> super::vals::Lptimen { 14641 pub const fn idmatec(&self) -> bool {
17784 let val = (self.0 >> 30usize) & 0x01; 14642 let val = (self.0 >> 27usize) & 0x01;
17785 super::vals::Lptimen(val as u8) 14643 val != 0
17786 } 14644 }
17787 #[doc = "I2C3 clock enable bit"] 14645 #[doc = "IDMA transfer error clear bit Set by software to clear the IDMATE flag."]
17788 pub fn set_i2c3en(&mut self, val: super::vals::Lptimen) { 14646 pub fn set_idmatec(&mut self, val: bool) {
17789 self.0 = (self.0 & !(0x01 << 30usize)) | (((val.0 as u32) & 0x01) << 30usize); 14647 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize);
17790 } 14648 }
17791 #[doc = "Low power timer clock enable bit"] 14649 #[doc = "IDMA buffer transfer complete clear bit Set by software to clear the IDMABTC flag."]
17792 pub const fn lptim1en(&self) -> super::vals::Lptimen { 14650 pub const fn idmabtcc(&self) -> bool {
17793 let val = (self.0 >> 31usize) & 0x01; 14651 let val = (self.0 >> 28usize) & 0x01;
17794 super::vals::Lptimen(val as u8) 14652 val != 0
17795 } 14653 }
17796 #[doc = "Low power timer clock enable bit"] 14654 #[doc = "IDMA buffer transfer complete clear bit Set by software to clear the IDMABTC flag."]
17797 pub fn set_lptim1en(&mut self, val: super::vals::Lptimen) { 14655 pub fn set_idmabtcc(&mut self, val: bool) {
17798 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize); 14656 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize);
17799 } 14657 }
17800 } 14658 }
17801 impl Default for Apb1enr { 14659 impl Default for Icr {
17802 fn default() -> Apb1enr { 14660 fn default() -> Icr {
17803 Apb1enr(0) 14661 Icr(0)
17804 } 14662 }
17805 } 14663 }
17806 #[doc = "AHB peripheral reset register"] 14664 #[doc = "The receive and transmit FIFOs can be read or written as 32-bit wide registers. The FIFOs contain 32 entries on 32 sequential addresses. This allows the CPU to use its load and store multiple operands to read from/write to the FIFO."]
17807 #[repr(transparent)] 14665 #[repr(transparent)]
17808 #[derive(Copy, Clone, Eq, PartialEq)] 14666 #[derive(Copy, Clone, Eq, PartialEq)]
17809 pub struct Ahbrstr(pub u32); 14667 pub struct Idmactrlr(pub u32);
17810 impl Ahbrstr { 14668 impl Idmactrlr {
17811 #[doc = "DMA reset"] 14669 #[doc = "IDMA enable This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
17812 pub const fn dmarst(&self) -> bool { 14670 pub const fn idmaen(&self) -> bool {
17813 let val = (self.0 >> 0usize) & 0x01; 14671 let val = (self.0 >> 0usize) & 0x01;
17814 val != 0 14672 val != 0
17815 } 14673 }
17816 #[doc = "DMA reset"] 14674 #[doc = "IDMA enable This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
17817 pub fn set_dmarst(&mut self, val: bool) { 14675 pub fn set_idmaen(&mut self, val: bool) {
17818 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 14676 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
17819 } 14677 }
17820 #[doc = "Memory interface reset"] 14678 #[doc = "Buffer mode selection. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
17821 pub const fn mifrst(&self) -> bool { 14679 pub const fn idmabmode(&self) -> bool {
17822 let val = (self.0 >> 8usize) & 0x01; 14680 let val = (self.0 >> 1usize) & 0x01;
17823 val != 0 14681 val != 0
17824 } 14682 }
17825 #[doc = "Memory interface reset"] 14683 #[doc = "Buffer mode selection. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
17826 pub fn set_mifrst(&mut self, val: bool) { 14684 pub fn set_idmabmode(&mut self, val: bool) {
17827 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 14685 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
17828 } 14686 }
17829 #[doc = "Test integration module reset"] 14687 #[doc = "Double buffer mode active buffer indication This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0). When IDMA is enabled this bit is toggled by hardware."]
17830 pub const fn crcrst(&self) -> bool { 14688 pub const fn idmabact(&self) -> bool {
17831 let val = (self.0 >> 12usize) & 0x01; 14689 let val = (self.0 >> 2usize) & 0x01;
17832 val != 0 14690 val != 0
17833 } 14691 }
17834 #[doc = "Test integration module reset"] 14692 #[doc = "Double buffer mode active buffer indication This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0). When IDMA is enabled this bit is toggled by hardware."]
17835 pub fn set_crcrst(&mut self, val: bool) { 14693 pub fn set_idmabact(&mut self, val: bool) {
17836 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize); 14694 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
17837 } 14695 }
17838 #[doc = "Touch Sensing reset"] 14696 }
17839 pub const fn touchrst(&self) -> bool { 14697 impl Default for Idmactrlr {
17840 let val = (self.0 >> 16usize) & 0x01; 14698 fn default() -> Idmactrlr {
17841 val != 0 14699 Idmactrlr(0)
17842 } 14700 }
17843 #[doc = "Touch Sensing reset"] 14701 }
17844 pub fn set_touchrst(&mut self, val: bool) { 14702 #[doc = "The SDMMC_RESP1/2/3/4R registers contain the status of a card, which is part of the received response."]
17845 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 14703 #[repr(transparent)]
14704 #[derive(Copy, Clone, Eq, PartialEq)]
14705 pub struct Resp3r(pub u32);
14706 impl Resp3r {
14707 #[doc = "see Table404."]
14708 pub const fn cardstatus3(&self) -> u32 {
14709 let val = (self.0 >> 0usize) & 0xffff_ffff;
14710 val as u32
17846 } 14711 }
17847 #[doc = "Random Number Generator module reset"] 14712 #[doc = "see Table404."]
17848 pub const fn rngrst(&self) -> bool { 14713 pub fn set_cardstatus3(&mut self, val: u32) {
17849 let val = (self.0 >> 20usize) & 0x01; 14714 self.0 =
17850 val != 0 14715 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
17851 } 14716 }
17852 #[doc = "Random Number Generator module reset"] 14717 }
17853 pub fn set_rngrst(&mut self, val: bool) { 14718 impl Default for Resp3r {
17854 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize); 14719 fn default() -> Resp3r {
14720 Resp3r(0)
17855 } 14721 }
17856 #[doc = "Crypto module reset"] 14722 }
17857 pub const fn cryprst(&self) -> bool { 14723 #[doc = "The SDMMC_DTIMER register contains the data timeout period, in card bus clock periods. A counter loads the value from the SDMMC_DTIMER register, and starts decrementing when the data path state machine (DPSM) enters the Wait_R or Busy state. If the timer reaches 0 while the DPSM is in either of these states, the timeout status flag is set."]
17858 let val = (self.0 >> 24usize) & 0x01; 14724 #[repr(transparent)]
17859 val != 0 14725 #[derive(Copy, Clone, Eq, PartialEq)]
14726 pub struct Dtimer(pub u32);
14727 impl Dtimer {
14728 #[doc = "Data and R1b busy timeout period This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0). Data and R1b busy timeout period expressed in card bus clock periods."]
14729 pub const fn datatime(&self) -> u32 {
14730 let val = (self.0 >> 0usize) & 0xffff_ffff;
14731 val as u32
17860 } 14732 }
17861 #[doc = "Crypto module reset"] 14733 #[doc = "Data and R1b busy timeout period This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0). Data and R1b busy timeout period expressed in card bus clock periods."]
17862 pub fn set_cryprst(&mut self, val: bool) { 14734 pub fn set_datatime(&mut self, val: u32) {
17863 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize); 14735 self.0 =
14736 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
17864 } 14737 }
17865 } 14738 }
17866 impl Default for Ahbrstr { 14739 impl Default for Dtimer {
17867 fn default() -> Ahbrstr { 14740 fn default() -> Dtimer {
17868 Ahbrstr(0) 14741 Dtimer(0)
17869 } 14742 }
17870 } 14743 }
17871 #[doc = "GPIO reset register"] 14744 #[doc = "SDMMC power control register"]
17872 #[repr(transparent)] 14745 #[repr(transparent)]
17873 #[derive(Copy, Clone, Eq, PartialEq)] 14746 #[derive(Copy, Clone, Eq, PartialEq)]
17874 pub struct Ioprstr(pub u32); 14747 pub struct Power(pub u32);
17875 impl Ioprstr { 14748 impl Power {
17876 #[doc = "I/O port A reset"] 14749 #[doc = "SDMMC state control bits. These bits can only be written when the SDMMC is not in the power-on state (PWRCTRL?11). These bits are used to define the functional state of the SDMMC signals: Any further write will be ignored, PWRCTRL value will keep 11."]
17877 pub const fn ioparst(&self) -> super::vals::Iophrst { 14750 pub const fn pwrctrl(&self) -> u8 {
17878 let val = (self.0 >> 0usize) & 0x01; 14751 let val = (self.0 >> 0usize) & 0x03;
17879 super::vals::Iophrst(val as u8) 14752 val as u8
17880 }
17881 #[doc = "I/O port A reset"]
17882 pub fn set_ioparst(&mut self, val: super::vals::Iophrst) {
17883 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
17884 }
17885 #[doc = "I/O port B reset"]
17886 pub const fn iopbrst(&self) -> super::vals::Iophrst {
17887 let val = (self.0 >> 1usize) & 0x01;
17888 super::vals::Iophrst(val as u8)
17889 } 14753 }
17890 #[doc = "I/O port B reset"] 14754 #[doc = "SDMMC state control bits. These bits can only be written when the SDMMC is not in the power-on state (PWRCTRL?11). These bits are used to define the functional state of the SDMMC signals: Any further write will be ignored, PWRCTRL value will keep 11."]
17891 pub fn set_iopbrst(&mut self, val: super::vals::Iophrst) { 14755 pub fn set_pwrctrl(&mut self, val: u8) {
17892 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 14756 self.0 = (self.0 & !(0x03 << 0usize)) | (((val as u32) & 0x03) << 0usize);
17893 } 14757 }
17894 #[doc = "I/O port A reset"] 14758 #[doc = "Voltage switch sequence start. This bit is used to start the timing critical section of the voltage switch sequence:"]
17895 pub const fn iopcrst(&self) -> super::vals::Iophrst { 14759 pub const fn vswitch(&self) -> bool {
17896 let val = (self.0 >> 2usize) & 0x01; 14760 let val = (self.0 >> 2usize) & 0x01;
17897 super::vals::Iophrst(val as u8) 14761 val != 0
17898 } 14762 }
17899 #[doc = "I/O port A reset"] 14763 #[doc = "Voltage switch sequence start. This bit is used to start the timing critical section of the voltage switch sequence:"]
17900 pub fn set_iopcrst(&mut self, val: super::vals::Iophrst) { 14764 pub fn set_vswitch(&mut self, val: bool) {
17901 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize); 14765 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
17902 } 14766 }
17903 #[doc = "I/O port D reset"] 14767 #[doc = "Voltage switch procedure enable. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). This bit is used to stop the SDMMC_CK after the voltage switch command response:"]
17904 pub const fn iopdrst(&self) -> super::vals::Iophrst { 14768 pub const fn vswitchen(&self) -> bool {
17905 let val = (self.0 >> 3usize) & 0x01; 14769 let val = (self.0 >> 3usize) & 0x01;
17906 super::vals::Iophrst(val as u8) 14770 val != 0
17907 } 14771 }
17908 #[doc = "I/O port D reset"] 14772 #[doc = "Voltage switch procedure enable. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). This bit is used to stop the SDMMC_CK after the voltage switch command response:"]
17909 pub fn set_iopdrst(&mut self, val: super::vals::Iophrst) { 14773 pub fn set_vswitchen(&mut self, val: bool) {
17910 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize); 14774 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
17911 } 14775 }
17912 #[doc = "I/O port E reset"] 14776 #[doc = "Data and command direction signals polarity selection. This bit can only be written when the SDMMC is in the power-off state (PWRCTRL = 00)."]
17913 pub const fn ioperst(&self) -> super::vals::Iophrst { 14777 pub const fn dirpol(&self) -> bool {
17914 let val = (self.0 >> 4usize) & 0x01; 14778 let val = (self.0 >> 4usize) & 0x01;
17915 super::vals::Iophrst(val as u8) 14779 val != 0
17916 } 14780 }
17917 #[doc = "I/O port E reset"] 14781 #[doc = "Data and command direction signals polarity selection. This bit can only be written when the SDMMC is in the power-off state (PWRCTRL = 00)."]
17918 pub fn set_ioperst(&mut self, val: super::vals::Iophrst) { 14782 pub fn set_dirpol(&mut self, val: bool) {
17919 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 14783 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
17920 } 14784 }
17921 #[doc = "I/O port H reset"] 14785 }
17922 pub const fn iophrst(&self) -> super::vals::Iophrst { 14786 impl Default for Power {
17923 let val = (self.0 >> 7usize) & 0x01; 14787 fn default() -> Power {
17924 super::vals::Iophrst(val as u8) 14788 Power(0)
17925 } 14789 }
17926 #[doc = "I/O port H reset"] 14790 }
17927 pub fn set_iophrst(&mut self, val: super::vals::Iophrst) { 14791 #[doc = "The SDMMC_ARGR register contains a 32-bit command argument, which is sent to a card as part of a command message."]
17928 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 14792 #[repr(transparent)]
14793 #[derive(Copy, Clone, Eq, PartialEq)]
14794 pub struct Argr(pub u32);
14795 impl Argr {
14796 #[doc = "Command argument. These bits can only be written by firmware when CPSM is disabled (CPSMEN = 0). Command argument sent to a card as part of a command message. If a command contains an argument, it must be loaded into this register before writing a command to the command register."]
14797 pub const fn cmdarg(&self) -> u32 {
14798 let val = (self.0 >> 0usize) & 0xffff_ffff;
14799 val as u32
14800 }
14801 #[doc = "Command argument. These bits can only be written by firmware when CPSM is disabled (CPSMEN = 0). Command argument sent to a card as part of a command message. If a command contains an argument, it must be loaded into this register before writing a command to the command register."]
14802 pub fn set_cmdarg(&mut self, val: u32) {
14803 self.0 =
14804 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
17929 } 14805 }
17930 } 14806 }
17931 impl Default for Ioprstr { 14807 impl Default for Argr {
17932 fn default() -> Ioprstr { 14808 fn default() -> Argr {
17933 Ioprstr(0) 14809 Argr(0)
17934 } 14810 }
17935 } 14811 }
17936 #[doc = "APB2 peripheral clock enable in sleep mode register"] 14812 #[doc = "The SDMMC_DCNTR register loads the value from the data length register (see SDMMC_DLENR) when the DPSM moves from the Idle state to the Wait_R or Wait_S state. As data is transferred, the counter decrements the value until it reaches 0. The DPSM then moves to the Idle state and when there has been no error, the data status end flag (DATAEND) is set."]
17937 #[repr(transparent)] 14813 #[repr(transparent)]
17938 #[derive(Copy, Clone, Eq, PartialEq)] 14814 #[derive(Copy, Clone, Eq, PartialEq)]
17939 pub struct Apb2smenr(pub u32); 14815 pub struct Dcntr(pub u32);
17940 impl Apb2smenr { 14816 impl Dcntr {
17941 #[doc = "System configuration controller clock enable during sleep mode bit"] 14817 #[doc = "Data count value When read, the number of remaining data bytes to be transferred is returned. Write has no effect."]
17942 pub const fn syscfgsmen(&self) -> super::vals::Dbgsmen { 14818 pub const fn datacount(&self) -> u32 {
14819 let val = (self.0 >> 0usize) & 0x01ff_ffff;
14820 val as u32
14821 }
14822 #[doc = "Data count value When read, the number of remaining data bytes to be transferred is returned. Write has no effect."]
14823 pub fn set_datacount(&mut self, val: u32) {
14824 self.0 =
14825 (self.0 & !(0x01ff_ffff << 0usize)) | (((val as u32) & 0x01ff_ffff) << 0usize);
14826 }
14827 }
14828 impl Default for Dcntr {
14829 fn default() -> Dcntr {
14830 Dcntr(0)
14831 }
14832 }
14833 #[doc = "The SDMMC_DCTRL register control the data path state machine (DPSM)."]
14834 #[repr(transparent)]
14835 #[derive(Copy, Clone, Eq, PartialEq)]
14836 pub struct Dctrl(pub u32);
14837 impl Dctrl {
14838 #[doc = "Data transfer enable bit This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0). This bit is cleared by Hardware when data transfer completes. This bit shall only be used to transfer data when no associated data transfer command is used, i.e. shall not be used with SD or eMMC cards."]
14839 pub const fn dten(&self) -> bool {
17943 let val = (self.0 >> 0usize) & 0x01; 14840 let val = (self.0 >> 0usize) & 0x01;
17944 super::vals::Dbgsmen(val as u8) 14841 val != 0
17945 } 14842 }
17946 #[doc = "System configuration controller clock enable during sleep mode bit"] 14843 #[doc = "Data transfer enable bit This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0). This bit is cleared by Hardware when data transfer completes. This bit shall only be used to transfer data when no associated data transfer command is used, i.e. shall not be used with SD or eMMC cards."]
17947 pub fn set_syscfgsmen(&mut self, val: super::vals::Dbgsmen) { 14844 pub fn set_dten(&mut self, val: bool) {
17948 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 14845 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
17949 } 14846 }
17950 #[doc = "TIM21 timer clock enable during sleep mode bit"] 14847 #[doc = "Data transfer direction selection This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
17951 pub const fn tim21smen(&self) -> super::vals::Dbgsmen { 14848 pub const fn dtdir(&self) -> bool {
17952 let val = (self.0 >> 2usize) & 0x01; 14849 let val = (self.0 >> 1usize) & 0x01;
17953 super::vals::Dbgsmen(val as u8) 14850 val != 0
17954 } 14851 }
17955 #[doc = "TIM21 timer clock enable during sleep mode bit"] 14852 #[doc = "Data transfer direction selection This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
17956 pub fn set_tim21smen(&mut self, val: super::vals::Dbgsmen) { 14853 pub fn set_dtdir(&mut self, val: bool) {
17957 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize); 14854 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
17958 } 14855 }
17959 #[doc = "TIM22 timer clock enable during sleep mode bit"] 14856 #[doc = "Data transfer mode selection. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
17960 pub const fn tim22smen(&self) -> super::vals::Dbgsmen { 14857 pub const fn dtmode(&self) -> u8 {
17961 let val = (self.0 >> 5usize) & 0x01; 14858 let val = (self.0 >> 2usize) & 0x03;
17962 super::vals::Dbgsmen(val as u8) 14859 val as u8
17963 } 14860 }
17964 #[doc = "TIM22 timer clock enable during sleep mode bit"] 14861 #[doc = "Data transfer mode selection. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
17965 pub fn set_tim22smen(&mut self, val: super::vals::Dbgsmen) { 14862 pub fn set_dtmode(&mut self, val: u8) {
17966 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 14863 self.0 = (self.0 & !(0x03 << 2usize)) | (((val as u32) & 0x03) << 2usize);
17967 } 14864 }
17968 #[doc = "ADC clock enable during sleep mode bit"] 14865 #[doc = "Data block size This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0). Define the data block length when the block data transfer mode is selected: When DATALENGTH is not a multiple of DBLOCKSIZE, the transfered data is truncated at a multiple of DBLOCKSIZE. (Any remain data will not be transfered.) When DDR = 1, DBLOCKSIZE = 0000 shall not be used. (No data will be transfered)"]
17969 pub const fn adcsmen(&self) -> super::vals::Dbgsmen { 14866 pub const fn dblocksize(&self) -> u8 {
14867 let val = (self.0 >> 4usize) & 0x0f;
14868 val as u8
14869 }
14870 #[doc = "Data block size This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0). Define the data block length when the block data transfer mode is selected: When DATALENGTH is not a multiple of DBLOCKSIZE, the transfered data is truncated at a multiple of DBLOCKSIZE. (Any remain data will not be transfered.) When DDR = 1, DBLOCKSIZE = 0000 shall not be used. (No data will be transfered)"]
14871 pub fn set_dblocksize(&mut self, val: u8) {
14872 self.0 = (self.0 & !(0x0f << 4usize)) | (((val as u32) & 0x0f) << 4usize);
14873 }
14874 #[doc = "Read wait start. If this bit is set, read wait operation starts."]
14875 pub const fn rwstart(&self) -> bool {
14876 let val = (self.0 >> 8usize) & 0x01;
14877 val != 0
14878 }
14879 #[doc = "Read wait start. If this bit is set, read wait operation starts."]
14880 pub fn set_rwstart(&mut self, val: bool) {
14881 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
14882 }
14883 #[doc = "Read wait stop This bit is written by firmware and auto cleared by hardware when the DPSM moves from the READ_WAIT state to the WAIT_R or IDLE state."]
14884 pub const fn rwstop(&self) -> bool {
17970 let val = (self.0 >> 9usize) & 0x01; 14885 let val = (self.0 >> 9usize) & 0x01;
17971 super::vals::Dbgsmen(val as u8) 14886 val != 0
17972 } 14887 }
17973 #[doc = "ADC clock enable during sleep mode bit"] 14888 #[doc = "Read wait stop This bit is written by firmware and auto cleared by hardware when the DPSM moves from the READ_WAIT state to the WAIT_R or IDLE state."]
17974 pub fn set_adcsmen(&mut self, val: super::vals::Dbgsmen) { 14889 pub fn set_rwstop(&mut self, val: bool) {
17975 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize); 14890 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
17976 } 14891 }
17977 #[doc = "SPI1 clock enable during sleep mode bit"] 14892 #[doc = "Read wait mode. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
17978 pub const fn spi1smen(&self) -> super::vals::Dbgsmen { 14893 pub const fn rwmod(&self) -> bool {
14894 let val = (self.0 >> 10usize) & 0x01;
14895 val != 0
14896 }
14897 #[doc = "Read wait mode. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
14898 pub fn set_rwmod(&mut self, val: bool) {
14899 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
14900 }
14901 #[doc = "SD I/O interrupt enable functions This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0). If this bit is set, the DPSM enables the SD I/O card specific interrupt operation."]
14902 pub const fn sdioen(&self) -> bool {
14903 let val = (self.0 >> 11usize) & 0x01;
14904 val != 0
14905 }
14906 #[doc = "SD I/O interrupt enable functions This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0). If this bit is set, the DPSM enables the SD I/O card specific interrupt operation."]
14907 pub fn set_sdioen(&mut self, val: bool) {
14908 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
14909 }
14910 #[doc = "Enable the reception of the boot acknowledgment. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
14911 pub const fn bootacken(&self) -> bool {
17979 let val = (self.0 >> 12usize) & 0x01; 14912 let val = (self.0 >> 12usize) & 0x01;
17980 super::vals::Dbgsmen(val as u8) 14913 val != 0
17981 } 14914 }
17982 #[doc = "SPI1 clock enable during sleep mode bit"] 14915 #[doc = "Enable the reception of the boot acknowledgment. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
17983 pub fn set_spi1smen(&mut self, val: super::vals::Dbgsmen) { 14916 pub fn set_bootacken(&mut self, val: bool) {
17984 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize); 14917 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
17985 } 14918 }
17986 #[doc = "USART1 clock enable during sleep mode bit"] 14919 #[doc = "FIFO reset, will flush any remaining data. This bit can only be written by firmware when IDMAEN= 0 and DPSM is active (DPSMACT = 1). This bit will only take effect when a transfer error or transfer hold occurs."]
17987 pub const fn usart1smen(&self) -> super::vals::Dbgsmen { 14920 pub const fn fiforst(&self) -> bool {
17988 let val = (self.0 >> 14usize) & 0x01; 14921 let val = (self.0 >> 13usize) & 0x01;
17989 super::vals::Dbgsmen(val as u8) 14922 val != 0
17990 } 14923 }
17991 #[doc = "USART1 clock enable during sleep mode bit"] 14924 #[doc = "FIFO reset, will flush any remaining data. This bit can only be written by firmware when IDMAEN= 0 and DPSM is active (DPSMACT = 1). This bit will only take effect when a transfer error or transfer hold occurs."]
17992 pub fn set_usart1smen(&mut self, val: super::vals::Dbgsmen) { 14925 pub fn set_fiforst(&mut self, val: bool) {
17993 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 14926 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
17994 } 14927 }
17995 #[doc = "DBG clock enable during sleep mode bit"] 14928 }
17996 pub const fn dbgsmen(&self) -> super::vals::Dbgsmen { 14929 impl Default for Dctrl {
17997 let val = (self.0 >> 22usize) & 0x01; 14930 fn default() -> Dctrl {
17998 super::vals::Dbgsmen(val as u8) 14931 Dctrl(0)
17999 } 14932 }
18000 #[doc = "DBG clock enable during sleep mode bit"] 14933 }
18001 pub fn set_dbgsmen(&mut self, val: super::vals::Dbgsmen) { 14934 #[doc = "The receive and transmit FIFOs can be only read or written as word (32-bit) wide registers. The FIFOs contain 16 entries on sequential addresses. This allows the CPU to use its load and store multiple operands to read from/write to the FIFO.When accessing SDMMC_FIFOR with half word or byte access an AHB bus fault is generated."]
18002 self.0 = (self.0 & !(0x01 << 22usize)) | (((val.0 as u32) & 0x01) << 22usize); 14935 #[repr(transparent)]
14936 #[derive(Copy, Clone, Eq, PartialEq)]
14937 pub struct Fifor(pub u32);
14938 impl Fifor {
14939 #[doc = "Receive and transmit FIFO data This register can only be read or written by firmware when the DPSM is active (DPSMACT=1). The FIFO data occupies 16 entries of 32-bit words."]
14940 pub const fn fifodata(&self) -> u32 {
14941 let val = (self.0 >> 0usize) & 0xffff_ffff;
14942 val as u32
14943 }
14944 #[doc = "Receive and transmit FIFO data This register can only be read or written by firmware when the DPSM is active (DPSMACT=1). The FIFO data occupies 16 entries of 32-bit words."]
14945 pub fn set_fifodata(&mut self, val: u32) {
14946 self.0 =
14947 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
18003 } 14948 }
18004 } 14949 }
18005 impl Default for Apb2smenr { 14950 impl Default for Fifor {
18006 fn default() -> Apb2smenr { 14951 fn default() -> Fifor {
18007 Apb2smenr(0) 14952 Fifor(0)
18008 } 14953 }
18009 } 14954 }
18010 #[doc = "GPIO clock enable in sleep mode register"] 14955 #[doc = "The interrupt mask register determines which status flags generate an interrupt request by setting the corresponding bit to 1."]
18011 #[repr(transparent)] 14956 #[repr(transparent)]
18012 #[derive(Copy, Clone, Eq, PartialEq)] 14957 #[derive(Copy, Clone, Eq, PartialEq)]
18013 pub struct Iopsmen(pub u32); 14958 pub struct Maskr(pub u32);
18014 impl Iopsmen { 14959 impl Maskr {
18015 #[doc = "IOPASMEN"] 14960 #[doc = "Command CRC fail interrupt enable Set and cleared by software to enable/disable interrupt caused by command CRC failure."]
18016 pub const fn iopasmen(&self) -> super::vals::Iophsmen { 14961 pub const fn ccrcfailie(&self) -> bool {
18017 let val = (self.0 >> 0usize) & 0x01; 14962 let val = (self.0 >> 0usize) & 0x01;
18018 super::vals::Iophsmen(val as u8) 14963 val != 0
18019 } 14964 }
18020 #[doc = "IOPASMEN"] 14965 #[doc = "Command CRC fail interrupt enable Set and cleared by software to enable/disable interrupt caused by command CRC failure."]
18021 pub fn set_iopasmen(&mut self, val: super::vals::Iophsmen) { 14966 pub fn set_ccrcfailie(&mut self, val: bool) {
18022 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 14967 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
18023 } 14968 }
18024 #[doc = "IOPBSMEN"] 14969 #[doc = "Data CRC fail interrupt enable Set and cleared by software to enable/disable interrupt caused by data CRC failure."]
18025 pub const fn iopbsmen(&self) -> super::vals::Iophsmen { 14970 pub const fn dcrcfailie(&self) -> bool {
18026 let val = (self.0 >> 1usize) & 0x01; 14971 let val = (self.0 >> 1usize) & 0x01;
18027 super::vals::Iophsmen(val as u8) 14972 val != 0
18028 } 14973 }
18029 #[doc = "IOPBSMEN"] 14974 #[doc = "Data CRC fail interrupt enable Set and cleared by software to enable/disable interrupt caused by data CRC failure."]
18030 pub fn set_iopbsmen(&mut self, val: super::vals::Iophsmen) { 14975 pub fn set_dcrcfailie(&mut self, val: bool) {
18031 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 14976 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
18032 } 14977 }
18033 #[doc = "IOPCSMEN"] 14978 #[doc = "Command timeout interrupt enable Set and cleared by software to enable/disable interrupt caused by command timeout."]
18034 pub const fn iopcsmen(&self) -> super::vals::Iophsmen { 14979 pub const fn ctimeoutie(&self) -> bool {
18035 let val = (self.0 >> 2usize) & 0x01; 14980 let val = (self.0 >> 2usize) & 0x01;
18036 super::vals::Iophsmen(val as u8) 14981 val != 0
18037 } 14982 }
18038 #[doc = "IOPCSMEN"] 14983 #[doc = "Command timeout interrupt enable Set and cleared by software to enable/disable interrupt caused by command timeout."]
18039 pub fn set_iopcsmen(&mut self, val: super::vals::Iophsmen) { 14984 pub fn set_ctimeoutie(&mut self, val: bool) {
18040 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize); 14985 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
18041 } 14986 }
18042 #[doc = "IOPDSMEN"] 14987 #[doc = "Data timeout interrupt enable Set and cleared by software to enable/disable interrupt caused by data timeout."]
18043 pub const fn iopdsmen(&self) -> super::vals::Iophsmen { 14988 pub const fn dtimeoutie(&self) -> bool {
18044 let val = (self.0 >> 3usize) & 0x01; 14989 let val = (self.0 >> 3usize) & 0x01;
18045 super::vals::Iophsmen(val as u8) 14990 val != 0
18046 } 14991 }
18047 #[doc = "IOPDSMEN"] 14992 #[doc = "Data timeout interrupt enable Set and cleared by software to enable/disable interrupt caused by data timeout."]
18048 pub fn set_iopdsmen(&mut self, val: super::vals::Iophsmen) { 14993 pub fn set_dtimeoutie(&mut self, val: bool) {
18049 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize); 14994 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
18050 } 14995 }
18051 #[doc = "Port E clock enable during Sleep mode bit"] 14996 #[doc = "Tx FIFO underrun error interrupt enable Set and cleared by software to enable/disable interrupt caused by Tx FIFO underrun error."]
18052 pub const fn iopesmen(&self) -> super::vals::Iophsmen { 14997 pub const fn txunderrie(&self) -> bool {
18053 let val = (self.0 >> 4usize) & 0x01; 14998 let val = (self.0 >> 4usize) & 0x01;
18054 super::vals::Iophsmen(val as u8) 14999 val != 0
18055 } 15000 }
18056 #[doc = "Port E clock enable during Sleep mode bit"] 15001 #[doc = "Tx FIFO underrun error interrupt enable Set and cleared by software to enable/disable interrupt caused by Tx FIFO underrun error."]
18057 pub fn set_iopesmen(&mut self, val: super::vals::Iophsmen) { 15002 pub fn set_txunderrie(&mut self, val: bool) {
18058 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 15003 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
18059 } 15004 }
18060 #[doc = "IOPHSMEN"] 15005 #[doc = "Rx FIFO overrun error interrupt enable Set and cleared by software to enable/disable interrupt caused by Rx FIFO overrun error."]
18061 pub const fn iophsmen(&self) -> super::vals::Iophsmen { 15006 pub const fn rxoverrie(&self) -> bool {
15007 let val = (self.0 >> 5usize) & 0x01;
15008 val != 0
15009 }
15010 #[doc = "Rx FIFO overrun error interrupt enable Set and cleared by software to enable/disable interrupt caused by Rx FIFO overrun error."]
15011 pub fn set_rxoverrie(&mut self, val: bool) {
15012 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
15013 }
15014 #[doc = "Command response received interrupt enable Set and cleared by software to enable/disable interrupt caused by receiving command response."]
15015 pub const fn cmdrendie(&self) -> bool {
15016 let val = (self.0 >> 6usize) & 0x01;
15017 val != 0
15018 }
15019 #[doc = "Command response received interrupt enable Set and cleared by software to enable/disable interrupt caused by receiving command response."]
15020 pub fn set_cmdrendie(&mut self, val: bool) {
15021 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
15022 }
15023 #[doc = "Command sent interrupt enable Set and cleared by software to enable/disable interrupt caused by sending command."]
15024 pub const fn cmdsentie(&self) -> bool {
18062 let val = (self.0 >> 7usize) & 0x01; 15025 let val = (self.0 >> 7usize) & 0x01;
18063 super::vals::Iophsmen(val as u8) 15026 val != 0
18064 } 15027 }
18065 #[doc = "IOPHSMEN"] 15028 #[doc = "Command sent interrupt enable Set and cleared by software to enable/disable interrupt caused by sending command."]
18066 pub fn set_iophsmen(&mut self, val: super::vals::Iophsmen) { 15029 pub fn set_cmdsentie(&mut self, val: bool) {
18067 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 15030 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
18068 } 15031 }
18069 } 15032 #[doc = "Data end interrupt enable Set and cleared by software to enable/disable interrupt caused by data end."]
18070 impl Default for Iopsmen { 15033 pub const fn dataendie(&self) -> bool {
18071 fn default() -> Iopsmen { 15034 let val = (self.0 >> 8usize) & 0x01;
18072 Iopsmen(0) 15035 val != 0
18073 } 15036 }
18074 } 15037 #[doc = "Data end interrupt enable Set and cleared by software to enable/disable interrupt caused by data end."]
18075 #[doc = "GPIO clock enable register"] 15038 pub fn set_dataendie(&mut self, val: bool) {
18076 #[repr(transparent)] 15039 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
18077 #[derive(Copy, Clone, Eq, PartialEq)]
18078 pub struct Iopenr(pub u32);
18079 impl Iopenr {
18080 #[doc = "IO port A clock enable bit"]
18081 pub const fn iopaen(&self) -> super::vals::Iophen {
18082 let val = (self.0 >> 0usize) & 0x01;
18083 super::vals::Iophen(val as u8)
18084 } 15040 }
18085 #[doc = "IO port A clock enable bit"] 15041 #[doc = "Data hold interrupt enable Set and cleared by software to enable/disable the interrupt generated when sending new data is hold in the DPSM Wait_S state."]
18086 pub fn set_iopaen(&mut self, val: super::vals::Iophen) { 15042 pub const fn dholdie(&self) -> bool {
18087 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 15043 let val = (self.0 >> 9usize) & 0x01;
15044 val != 0
18088 } 15045 }
18089 #[doc = "IO port B clock enable bit"] 15046 #[doc = "Data hold interrupt enable Set and cleared by software to enable/disable the interrupt generated when sending new data is hold in the DPSM Wait_S state."]
18090 pub const fn iopben(&self) -> super::vals::Iophen { 15047 pub fn set_dholdie(&mut self, val: bool) {
18091 let val = (self.0 >> 1usize) & 0x01; 15048 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
18092 super::vals::Iophen(val as u8)
18093 } 15049 }
18094 #[doc = "IO port B clock enable bit"] 15050 #[doc = "Data block end interrupt enable Set and cleared by software to enable/disable interrupt caused by data block end."]
18095 pub fn set_iopben(&mut self, val: super::vals::Iophen) { 15051 pub const fn dbckendie(&self) -> bool {
18096 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 15052 let val = (self.0 >> 10usize) & 0x01;
15053 val != 0
18097 } 15054 }
18098 #[doc = "IO port A clock enable bit"] 15055 #[doc = "Data block end interrupt enable Set and cleared by software to enable/disable interrupt caused by data block end."]
18099 pub const fn iopcen(&self) -> super::vals::Iophen { 15056 pub fn set_dbckendie(&mut self, val: bool) {
18100 let val = (self.0 >> 2usize) & 0x01; 15057 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
18101 super::vals::Iophen(val as u8)
18102 } 15058 }
18103 #[doc = "IO port A clock enable bit"] 15059 #[doc = "Data transfer aborted interrupt enable Set and cleared by software to enable/disable interrupt caused by a data transfer being aborted."]
18104 pub fn set_iopcen(&mut self, val: super::vals::Iophen) { 15060 pub const fn dabortie(&self) -> bool {
18105 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize); 15061 let val = (self.0 >> 11usize) & 0x01;
15062 val != 0
18106 } 15063 }
18107 #[doc = "I/O port D clock enable bit"] 15064 #[doc = "Data transfer aborted interrupt enable Set and cleared by software to enable/disable interrupt caused by a data transfer being aborted."]
18108 pub const fn iopden(&self) -> super::vals::Iophen { 15065 pub fn set_dabortie(&mut self, val: bool) {
18109 let val = (self.0 >> 3usize) & 0x01; 15066 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
18110 super::vals::Iophen(val as u8)
18111 } 15067 }
18112 #[doc = "I/O port D clock enable bit"] 15068 #[doc = "Tx FIFO half empty interrupt enable Set and cleared by software to enable/disable interrupt caused by Tx FIFO half empty."]
18113 pub fn set_iopden(&mut self, val: super::vals::Iophen) { 15069 pub const fn txfifoheie(&self) -> bool {
18114 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize); 15070 let val = (self.0 >> 14usize) & 0x01;
15071 val != 0
18115 } 15072 }
18116 #[doc = "I/O port E clock enable bit"] 15073 #[doc = "Tx FIFO half empty interrupt enable Set and cleared by software to enable/disable interrupt caused by Tx FIFO half empty."]
18117 pub const fn iopeen(&self) -> super::vals::Iophen { 15074 pub fn set_txfifoheie(&mut self, val: bool) {
18118 let val = (self.0 >> 4usize) & 0x01; 15075 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
18119 super::vals::Iophen(val as u8)
18120 } 15076 }
18121 #[doc = "I/O port E clock enable bit"] 15077 #[doc = "Rx FIFO half full interrupt enable Set and cleared by software to enable/disable interrupt caused by Rx FIFO half full."]
18122 pub fn set_iopeen(&mut self, val: super::vals::Iophen) { 15078 pub const fn rxfifohfie(&self) -> bool {
18123 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 15079 let val = (self.0 >> 15usize) & 0x01;
15080 val != 0
18124 } 15081 }
18125 #[doc = "I/O port H clock enable bit"] 15082 #[doc = "Rx FIFO half full interrupt enable Set and cleared by software to enable/disable interrupt caused by Rx FIFO half full."]
18126 pub const fn iophen(&self) -> super::vals::Iophen { 15083 pub fn set_rxfifohfie(&mut self, val: bool) {
18127 let val = (self.0 >> 7usize) & 0x01; 15084 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize);
18128 super::vals::Iophen(val as u8)
18129 } 15085 }
18130 #[doc = "I/O port H clock enable bit"] 15086 #[doc = "Rx FIFO full interrupt enable Set and cleared by software to enable/disable interrupt caused by Rx FIFO full."]
18131 pub fn set_iophen(&mut self, val: super::vals::Iophen) { 15087 pub const fn rxfifofie(&self) -> bool {
18132 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 15088 let val = (self.0 >> 17usize) & 0x01;
15089 val != 0
18133 } 15090 }
18134 } 15091 #[doc = "Rx FIFO full interrupt enable Set and cleared by software to enable/disable interrupt caused by Rx FIFO full."]
18135 impl Default for Iopenr { 15092 pub fn set_rxfifofie(&mut self, val: bool) {
18136 fn default() -> Iopenr { 15093 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
18137 Iopenr(0)
18138 } 15094 }
18139 } 15095 #[doc = "Tx FIFO empty interrupt enable Set and cleared by software to enable/disable interrupt caused by Tx FIFO empty."]
18140 #[doc = "Clock interrupt enable register"] 15096 pub const fn txfifoeie(&self) -> bool {
18141 #[repr(transparent)] 15097 let val = (self.0 >> 18usize) & 0x01;
18142 #[derive(Copy, Clone, Eq, PartialEq)] 15098 val != 0
18143 pub struct Cier(pub u32);
18144 impl Cier {
18145 #[doc = "LSI ready interrupt flag"]
18146 pub const fn lsirdyie(&self) -> super::vals::Hsirdyie {
18147 let val = (self.0 >> 0usize) & 0x01;
18148 super::vals::Hsirdyie(val as u8)
18149 } 15099 }
18150 #[doc = "LSI ready interrupt flag"] 15100 #[doc = "Tx FIFO empty interrupt enable Set and cleared by software to enable/disable interrupt caused by Tx FIFO empty."]
18151 pub fn set_lsirdyie(&mut self, val: super::vals::Hsirdyie) { 15101 pub fn set_txfifoeie(&mut self, val: bool) {
18152 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 15102 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize);
18153 } 15103 }
18154 #[doc = "LSE ready interrupt flag"] 15104 #[doc = "BUSYD0END interrupt enable Set and cleared by software to enable/disable the interrupt generated when SDMMC_D0 signal changes from busy to NOT busy following a CMD response."]
18155 pub const fn lserdyie(&self) -> super::vals::Hsirdyie { 15105 pub const fn busyd0endie(&self) -> bool {
18156 let val = (self.0 >> 1usize) & 0x01; 15106 let val = (self.0 >> 21usize) & 0x01;
18157 super::vals::Hsirdyie(val as u8) 15107 val != 0
18158 } 15108 }
18159 #[doc = "LSE ready interrupt flag"] 15109 #[doc = "BUSYD0END interrupt enable Set and cleared by software to enable/disable the interrupt generated when SDMMC_D0 signal changes from busy to NOT busy following a CMD response."]
18160 pub fn set_lserdyie(&mut self, val: super::vals::Hsirdyie) { 15110 pub fn set_busyd0endie(&mut self, val: bool) {
18161 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 15111 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
18162 } 15112 }
18163 #[doc = "HSI16 ready interrupt flag"] 15113 #[doc = "SDIO mode interrupt received interrupt enable Set and cleared by software to enable/disable the interrupt generated when receiving the SDIO mode interrupt."]
18164 pub const fn hsi16rdyie(&self) -> super::vals::Hsirdyie { 15114 pub const fn sdioitie(&self) -> bool {
18165 let val = (self.0 >> 2usize) & 0x01; 15115 let val = (self.0 >> 22usize) & 0x01;
18166 super::vals::Hsirdyie(val as u8) 15116 val != 0
18167 } 15117 }
18168 #[doc = "HSI16 ready interrupt flag"] 15118 #[doc = "SDIO mode interrupt received interrupt enable Set and cleared by software to enable/disable the interrupt generated when receiving the SDIO mode interrupt."]
18169 pub fn set_hsi16rdyie(&mut self, val: super::vals::Hsirdyie) { 15119 pub fn set_sdioitie(&mut self, val: bool) {
18170 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize); 15120 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
18171 } 15121 }
18172 #[doc = "HSE ready interrupt flag"] 15122 #[doc = "Acknowledgment Fail interrupt enable Set and cleared by software to enable/disable interrupt caused by acknowledgment Fail."]
18173 pub const fn hserdyie(&self) -> super::vals::Hsirdyie { 15123 pub const fn ackfailie(&self) -> bool {
18174 let val = (self.0 >> 3usize) & 0x01; 15124 let val = (self.0 >> 23usize) & 0x01;
18175 super::vals::Hsirdyie(val as u8) 15125 val != 0
18176 } 15126 }
18177 #[doc = "HSE ready interrupt flag"] 15127 #[doc = "Acknowledgment Fail interrupt enable Set and cleared by software to enable/disable interrupt caused by acknowledgment Fail."]
18178 pub fn set_hserdyie(&mut self, val: super::vals::Hsirdyie) { 15128 pub fn set_ackfailie(&mut self, val: bool) {
18179 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize); 15129 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
18180 } 15130 }
18181 #[doc = "PLL ready interrupt flag"] 15131 #[doc = "Acknowledgment timeout interrupt enable Set and cleared by software to enable/disable interrupt caused by acknowledgment timeout."]
18182 pub const fn pllrdyie(&self) -> super::vals::Hsirdyie { 15132 pub const fn acktimeoutie(&self) -> bool {
18183 let val = (self.0 >> 4usize) & 0x01; 15133 let val = (self.0 >> 24usize) & 0x01;
18184 super::vals::Hsirdyie(val as u8) 15134 val != 0
18185 } 15135 }
18186 #[doc = "PLL ready interrupt flag"] 15136 #[doc = "Acknowledgment timeout interrupt enable Set and cleared by software to enable/disable interrupt caused by acknowledgment timeout."]
18187 pub fn set_pllrdyie(&mut self, val: super::vals::Hsirdyie) { 15137 pub fn set_acktimeoutie(&mut self, val: bool) {
18188 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 15138 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize);
18189 } 15139 }
18190 #[doc = "MSI ready interrupt flag"] 15140 #[doc = "Voltage switch critical timing section completion interrupt enable Set and cleared by software to enable/disable the interrupt generated when voltage switch critical timing section completion."]
18191 pub const fn msirdyie(&self) -> super::vals::Hsirdyie { 15141 pub const fn vswendie(&self) -> bool {
18192 let val = (self.0 >> 5usize) & 0x01; 15142 let val = (self.0 >> 25usize) & 0x01;
18193 super::vals::Hsirdyie(val as u8) 15143 val != 0
18194 } 15144 }
18195 #[doc = "MSI ready interrupt flag"] 15145 #[doc = "Voltage switch critical timing section completion interrupt enable Set and cleared by software to enable/disable the interrupt generated when voltage switch critical timing section completion."]
18196 pub fn set_msirdyie(&mut self, val: super::vals::Hsirdyie) { 15146 pub fn set_vswendie(&mut self, val: bool) {
18197 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 15147 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize);
18198 } 15148 }
18199 #[doc = "HSI48 ready interrupt flag"] 15149 #[doc = "Voltage Switch clock stopped interrupt enable Set and cleared by software to enable/disable interrupt caused by Voltage Switch clock stopped."]
18200 pub const fn hsi48rdyie(&self) -> super::vals::Hsirdyie { 15150 pub const fn ckstopie(&self) -> bool {
18201 let val = (self.0 >> 6usize) & 0x01; 15151 let val = (self.0 >> 26usize) & 0x01;
18202 super::vals::Hsirdyie(val as u8) 15152 val != 0
18203 } 15153 }
18204 #[doc = "HSI48 ready interrupt flag"] 15154 #[doc = "Voltage Switch clock stopped interrupt enable Set and cleared by software to enable/disable interrupt caused by Voltage Switch clock stopped."]
18205 pub fn set_hsi48rdyie(&mut self, val: super::vals::Hsirdyie) { 15155 pub fn set_ckstopie(&mut self, val: bool) {
18206 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize); 15156 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
18207 } 15157 }
18208 #[doc = "LSE CSS interrupt flag"] 15158 #[doc = "IDMA buffer transfer complete interrupt enable Set and cleared by software to enable/disable the interrupt generated when the IDMA has transferred all data belonging to a memory buffer."]
18209 pub const fn csslse(&self) -> super::vals::Csslse { 15159 pub const fn idmabtcie(&self) -> bool {
18210 let val = (self.0 >> 7usize) & 0x01; 15160 let val = (self.0 >> 28usize) & 0x01;
18211 super::vals::Csslse(val as u8) 15161 val != 0
18212 } 15162 }
18213 #[doc = "LSE CSS interrupt flag"] 15163 #[doc = "IDMA buffer transfer complete interrupt enable Set and cleared by software to enable/disable the interrupt generated when the IDMA has transferred all data belonging to a memory buffer."]
18214 pub fn set_csslse(&mut self, val: super::vals::Csslse) { 15164 pub fn set_idmabtcie(&mut self, val: bool) {
18215 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 15165 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize);
18216 } 15166 }
18217 } 15167 }
18218 impl Default for Cier { 15168 impl Default for Maskr {
18219 fn default() -> Cier { 15169 fn default() -> Maskr {
18220 Cier(0) 15170 Maskr(0)
18221 } 15171 }
18222 } 15172 }
18223 #[doc = "Clock recovery RC register"] 15173 #[doc = "The SDMMC_CMDR register contains the command index and command type bits. The command index is sent to a card as part of a command message. The command type bits control the command path state machine (CPSM)."]
18224 #[repr(transparent)] 15174 #[repr(transparent)]
18225 #[derive(Copy, Clone, Eq, PartialEq)] 15175 #[derive(Copy, Clone, Eq, PartialEq)]
18226 pub struct Crrcr(pub u32); 15176 pub struct Cmdr(pub u32);
18227 impl Crrcr { 15177 impl Cmdr {
18228 #[doc = "48MHz HSI clock enable bit"] 15178 #[doc = "Command index. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). The command index is sent to the card as part of a command message."]
18229 pub const fn hsi48on(&self) -> bool { 15179 pub const fn cmdindex(&self) -> u8 {
18230 let val = (self.0 >> 0usize) & 0x01; 15180 let val = (self.0 >> 0usize) & 0x3f;
18231 val != 0 15181 val as u8
18232 } 15182 }
18233 #[doc = "48MHz HSI clock enable bit"] 15183 #[doc = "Command index. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). The command index is sent to the card as part of a command message."]
18234 pub fn set_hsi48on(&mut self, val: bool) { 15184 pub fn set_cmdindex(&mut self, val: u8) {
18235 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 15185 self.0 = (self.0 & !(0x3f << 0usize)) | (((val as u32) & 0x3f) << 0usize);
18236 } 15186 }
18237 #[doc = "48MHz HSI clock ready flag"] 15187 #[doc = "The CPSM treats the command as a data transfer command, stops the interrupt period, and signals DataEnable to the DPSM This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). If this bit is set, the CPSM issues an end of interrupt period and issues DataEnable signal to the DPSM when the command is sent."]
18238 pub const fn hsi48rdy(&self) -> bool { 15188 pub const fn cmdtrans(&self) -> bool {
18239 let val = (self.0 >> 1usize) & 0x01; 15189 let val = (self.0 >> 6usize) & 0x01;
18240 val != 0 15190 val != 0
18241 } 15191 }
18242 #[doc = "48MHz HSI clock ready flag"] 15192 #[doc = "The CPSM treats the command as a data transfer command, stops the interrupt period, and signals DataEnable to the DPSM This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). If this bit is set, the CPSM issues an end of interrupt period and issues DataEnable signal to the DPSM when the command is sent."]
18243 pub fn set_hsi48rdy(&mut self, val: bool) { 15193 pub fn set_cmdtrans(&mut self, val: bool) {
18244 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 15194 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
18245 } 15195 }
18246 #[doc = "48 MHz HSI clock divided by 6 output enable"] 15196 #[doc = "The CPSM treats the command as a Stop Transmission command and signals Abort to the DPSM. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). If this bit is set, the CPSM issues the Abort signal to the DPSM when the command is sent."]
18247 pub const fn hsi48div6en(&self) -> bool { 15197 pub const fn cmdstop(&self) -> bool {
18248 let val = (self.0 >> 2usize) & 0x01; 15198 let val = (self.0 >> 7usize) & 0x01;
18249 val != 0 15199 val != 0
18250 } 15200 }
18251 #[doc = "48 MHz HSI clock divided by 6 output enable"] 15201 #[doc = "The CPSM treats the command as a Stop Transmission command and signals Abort to the DPSM. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). If this bit is set, the CPSM issues the Abort signal to the DPSM when the command is sent."]
18252 pub fn set_hsi48div6en(&mut self, val: bool) { 15202 pub fn set_cmdstop(&mut self, val: bool) {
18253 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 15203 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
18254 } 15204 }
18255 #[doc = "48 MHz HSI clock calibration"] 15205 #[doc = "Wait for response bits. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). They are used to configure whether the CPSM is to wait for a response, and if yes, which kind of response."]
18256 pub const fn hsi48cal(&self) -> u8 { 15206 pub const fn waitresp(&self) -> u8 {
18257 let val = (self.0 >> 8usize) & 0xff; 15207 let val = (self.0 >> 8usize) & 0x03;
18258 val as u8 15208 val as u8
18259 } 15209 }
18260 #[doc = "48 MHz HSI clock calibration"] 15210 #[doc = "Wait for response bits. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). They are used to configure whether the CPSM is to wait for a response, and if yes, which kind of response."]
18261 pub fn set_hsi48cal(&mut self, val: u8) { 15211 pub fn set_waitresp(&mut self, val: u8) {
18262 self.0 = (self.0 & !(0xff << 8usize)) | (((val as u32) & 0xff) << 8usize); 15212 self.0 = (self.0 & !(0x03 << 8usize)) | (((val as u32) & 0x03) << 8usize);
18263 } 15213 }
18264 } 15214 #[doc = "CPSM waits for interrupt request. If this bit is set, the CPSM disables command timeout and waits for an card interrupt request (Response). If this bit is cleared in the CPSM Wait state, will cause the abort of the interrupt mode."]
18265 impl Default for Crrcr { 15215 pub const fn waitint(&self) -> bool {
18266 fn default() -> Crrcr { 15216 let val = (self.0 >> 10usize) & 0x01;
18267 Crrcr(0) 15217 val != 0
18268 } 15218 }
18269 } 15219 #[doc = "CPSM waits for interrupt request. If this bit is set, the CPSM disables command timeout and waits for an card interrupt request (Response). If this bit is cleared in the CPSM Wait state, will cause the abort of the interrupt mode."]
18270 #[doc = "Internal clock sources calibration register"] 15220 pub fn set_waitint(&mut self, val: bool) {
18271 #[repr(transparent)] 15221 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
18272 #[derive(Copy, Clone, Eq, PartialEq)]
18273 pub struct Icscr(pub u32);
18274 impl Icscr {
18275 #[doc = "nternal high speed clock calibration"]
18276 pub const fn hsi16cal(&self) -> u8 {
18277 let val = (self.0 >> 0usize) & 0xff;
18278 val as u8
18279 } 15222 }
18280 #[doc = "nternal high speed clock calibration"] 15223 #[doc = "CPSM Waits for end of data transfer (CmdPend internal signal) from DPSM. This bit when set, the CPSM waits for the end of data transfer trigger before it starts sending a command. WAITPEND is only taken into account when DTMODE = MMC stream data transfer, WIDBUS = 1-bit wide bus mode, DPSMACT = 1 and DTDIR = from host to card."]
18281 pub fn set_hsi16cal(&mut self, val: u8) { 15224 pub const fn waitpend(&self) -> bool {
18282 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize); 15225 let val = (self.0 >> 11usize) & 0x01;
15226 val != 0
18283 } 15227 }
18284 #[doc = "High speed internal clock trimming"] 15228 #[doc = "CPSM Waits for end of data transfer (CmdPend internal signal) from DPSM. This bit when set, the CPSM waits for the end of data transfer trigger before it starts sending a command. WAITPEND is only taken into account when DTMODE = MMC stream data transfer, WIDBUS = 1-bit wide bus mode, DPSMACT = 1 and DTDIR = from host to card."]
18285 pub const fn hsi16trim(&self) -> u8 { 15229 pub fn set_waitpend(&mut self, val: bool) {
18286 let val = (self.0 >> 8usize) & 0x1f; 15230 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
18287 val as u8
18288 } 15231 }
18289 #[doc = "High speed internal clock trimming"] 15232 #[doc = "Command path state machine (CPSM) Enable bit This bit is written 1 by firmware, and cleared by hardware when the CPSM enters the Idle state. If this bit is set, the CPSM is enabled. When DTEN = 1, no command will be transfered nor boot procedure will be started. CPSMEN is cleared to 0."]
18290 pub fn set_hsi16trim(&mut self, val: u8) { 15233 pub const fn cpsmen(&self) -> bool {
18291 self.0 = (self.0 & !(0x1f << 8usize)) | (((val as u32) & 0x1f) << 8usize); 15234 let val = (self.0 >> 12usize) & 0x01;
15235 val != 0
18292 } 15236 }
18293 #[doc = "MSI clock ranges"] 15237 #[doc = "Command path state machine (CPSM) Enable bit This bit is written 1 by firmware, and cleared by hardware when the CPSM enters the Idle state. If this bit is set, the CPSM is enabled. When DTEN = 1, no command will be transfered nor boot procedure will be started. CPSMEN is cleared to 0."]
18294 pub const fn msirange(&self) -> super::vals::Msirange { 15238 pub fn set_cpsmen(&mut self, val: bool) {
18295 let val = (self.0 >> 13usize) & 0x07; 15239 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
18296 super::vals::Msirange(val as u8)
18297 } 15240 }
18298 #[doc = "MSI clock ranges"] 15241 #[doc = "Hold new data block transmission and reception in the DPSM. If this bit is set, the DPSM will not move from the Wait_S state to the Send state or from the Wait_R state to the Receive state."]
18299 pub fn set_msirange(&mut self, val: super::vals::Msirange) { 15242 pub const fn dthold(&self) -> bool {
18300 self.0 = (self.0 & !(0x07 << 13usize)) | (((val.0 as u32) & 0x07) << 13usize); 15243 let val = (self.0 >> 13usize) & 0x01;
15244 val != 0
18301 } 15245 }
18302 #[doc = "MSI clock calibration"] 15246 #[doc = "Hold new data block transmission and reception in the DPSM. If this bit is set, the DPSM will not move from the Wait_S state to the Send state or from the Wait_R state to the Receive state."]
18303 pub const fn msical(&self) -> u8 { 15247 pub fn set_dthold(&mut self, val: bool) {
18304 let val = (self.0 >> 16usize) & 0xff; 15248 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
18305 val as u8
18306 } 15249 }
18307 #[doc = "MSI clock calibration"] 15250 #[doc = "Select the boot mode procedure to be used. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0)"]
18308 pub fn set_msical(&mut self, val: u8) { 15251 pub const fn bootmode(&self) -> bool {
18309 self.0 = (self.0 & !(0xff << 16usize)) | (((val as u32) & 0xff) << 16usize); 15252 let val = (self.0 >> 14usize) & 0x01;
15253 val != 0
18310 } 15254 }
18311 #[doc = "MSI clock trimming"] 15255 #[doc = "Select the boot mode procedure to be used. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0)"]
18312 pub const fn msitrim(&self) -> u8 { 15256 pub fn set_bootmode(&mut self, val: bool) {
18313 let val = (self.0 >> 24usize) & 0xff; 15257 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
15258 }
15259 #[doc = "Enable boot mode procedure."]
15260 pub const fn booten(&self) -> bool {
15261 let val = (self.0 >> 15usize) & 0x01;
15262 val != 0
15263 }
15264 #[doc = "Enable boot mode procedure."]
15265 pub fn set_booten(&mut self, val: bool) {
15266 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize);
15267 }
15268 #[doc = "The CPSM treats the command as a Suspend or Resume command and signals interrupt period start/end. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). CMDSUSPEND = 1 and CMDTRANS = 0 Suspend command, start interrupt period when response bit BS=0. CMDSUSPEND = 1 and CMDTRANS = 1 Resume command with data, end interrupt period when response bit DF=1."]
15269 pub const fn cmdsuspend(&self) -> bool {
15270 let val = (self.0 >> 16usize) & 0x01;
15271 val != 0
15272 }
15273 #[doc = "The CPSM treats the command as a Suspend or Resume command and signals interrupt period start/end. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). CMDSUSPEND = 1 and CMDTRANS = 0 Suspend command, start interrupt period when response bit BS=0. CMDSUSPEND = 1 and CMDTRANS = 1 Resume command with data, end interrupt period when response bit DF=1."]
15274 pub fn set_cmdsuspend(&mut self, val: bool) {
15275 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
15276 }
15277 }
15278 impl Default for Cmdr {
15279 fn default() -> Cmdr {
15280 Cmdr(0)
15281 }
15282 }
15283 #[doc = "The SDMMC_IDMABSIZER register contains the buffers size when in double buffer configuration."]
15284 #[repr(transparent)]
15285 #[derive(Copy, Clone, Eq, PartialEq)]
15286 pub struct Idmabsizer(pub u32);
15287 impl Idmabsizer {
15288 #[doc = "Number of transfers per buffer. This 8-bit value shall be multiplied by 8 to get the size of the buffer in 32-bit words and by 32 to get the size of the buffer in bytes. Example: IDMABNDT = 0x01: buffer size = 8 words = 32 bytes. These bits can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
15289 pub const fn idmabndt(&self) -> u8 {
15290 let val = (self.0 >> 5usize) & 0xff;
18314 val as u8 15291 val as u8
18315 } 15292 }
18316 #[doc = "MSI clock trimming"] 15293 #[doc = "Number of transfers per buffer. This 8-bit value shall be multiplied by 8 to get the size of the buffer in 32-bit words and by 32 to get the size of the buffer in bytes. Example: IDMABNDT = 0x01: buffer size = 8 words = 32 bytes. These bits can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
18317 pub fn set_msitrim(&mut self, val: u8) { 15294 pub fn set_idmabndt(&mut self, val: u8) {
18318 self.0 = (self.0 & !(0xff << 24usize)) | (((val as u32) & 0xff) << 24usize); 15295 self.0 = (self.0 & !(0xff << 5usize)) | (((val as u32) & 0xff) << 5usize);
18319 } 15296 }
18320 } 15297 }
18321 impl Default for Icscr { 15298 impl Default for Idmabsizer {
18322 fn default() -> Icscr { 15299 fn default() -> Idmabsizer {
18323 Icscr(0) 15300 Idmabsizer(0)
18324 } 15301 }
18325 } 15302 }
18326 #[doc = "Control and status register"] 15303 #[doc = "The SDMMC_RESP1/2/3/4R registers contain the status of a card, which is part of the received response."]
18327 #[repr(transparent)] 15304 #[repr(transparent)]
18328 #[derive(Copy, Clone, Eq, PartialEq)] 15305 #[derive(Copy, Clone, Eq, PartialEq)]
18329 pub struct Csr(pub u32); 15306 pub struct Resp1r(pub u32);
18330 impl Csr { 15307 impl Resp1r {
18331 #[doc = "Internal low-speed oscillator enable"] 15308 #[doc = "see Table 432"]
18332 pub const fn lsion(&self) -> super::vals::Csslseon { 15309 pub const fn cardstatus1(&self) -> u32 {
15310 let val = (self.0 >> 0usize) & 0xffff_ffff;
15311 val as u32
15312 }
15313 #[doc = "see Table 432"]
15314 pub fn set_cardstatus1(&mut self, val: u32) {
15315 self.0 =
15316 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
15317 }
15318 }
15319 impl Default for Resp1r {
15320 fn default() -> Resp1r {
15321 Resp1r(0)
15322 }
15323 }
15324 #[doc = "The SDMMC_STAR register is a read-only register. It contains two types of flag:Static flags (bits [29,21,11:0]): these bits remain asserted until they are cleared by writing to the SDMMC interrupt Clear register (see SDMMC_ICR)Dynamic flags (bits [20:12]): these bits change state depending on the state of the underlying logic (for example, FIFO full and empty flags are asserted and de-asserted as data while written to the FIFO)"]
15325 #[repr(transparent)]
15326 #[derive(Copy, Clone, Eq, PartialEq)]
15327 pub struct Star(pub u32);
15328 impl Star {
15329 #[doc = "Command response received (CRC check failed). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15330 pub const fn ccrcfail(&self) -> bool {
18333 let val = (self.0 >> 0usize) & 0x01; 15331 let val = (self.0 >> 0usize) & 0x01;
18334 super::vals::Csslseon(val as u8) 15332 val != 0
18335 } 15333 }
18336 #[doc = "Internal low-speed oscillator enable"] 15334 #[doc = "Command response received (CRC check failed). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18337 pub fn set_lsion(&mut self, val: super::vals::Csslseon) { 15335 pub fn set_ccrcfail(&mut self, val: bool) {
18338 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 15336 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
18339 } 15337 }
18340 #[doc = "Internal low-speed oscillator ready bit"] 15338 #[doc = "Data block sent/received (CRC check failed). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18341 pub const fn lsirdy(&self) -> super::vals::Lserdy { 15339 pub const fn dcrcfail(&self) -> bool {
18342 let val = (self.0 >> 1usize) & 0x01; 15340 let val = (self.0 >> 1usize) & 0x01;
18343 super::vals::Lserdy(val as u8) 15341 val != 0
18344 } 15342 }
18345 #[doc = "Internal low-speed oscillator ready bit"] 15343 #[doc = "Data block sent/received (CRC check failed). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18346 pub fn set_lsirdy(&mut self, val: super::vals::Lserdy) { 15344 pub fn set_dcrcfail(&mut self, val: bool) {
18347 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 15345 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
18348 } 15346 }
18349 #[doc = "External low-speed oscillator enable bit"] 15347 #[doc = "Command response timeout. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR. The Command Timeout period has a fixed value of 64 SDMMC_CK clock periods."]
18350 pub const fn lseon(&self) -> super::vals::Csslseon { 15348 pub const fn ctimeout(&self) -> bool {
15349 let val = (self.0 >> 2usize) & 0x01;
15350 val != 0
15351 }
15352 #[doc = "Command response timeout. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR. The Command Timeout period has a fixed value of 64 SDMMC_CK clock periods."]
15353 pub fn set_ctimeout(&mut self, val: bool) {
15354 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
15355 }
15356 #[doc = "Data timeout. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15357 pub const fn dtimeout(&self) -> bool {
15358 let val = (self.0 >> 3usize) & 0x01;
15359 val != 0
15360 }
15361 #[doc = "Data timeout. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15362 pub fn set_dtimeout(&mut self, val: bool) {
15363 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
15364 }
15365 #[doc = "Transmit FIFO underrun error or IDMA read transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15366 pub const fn txunderr(&self) -> bool {
15367 let val = (self.0 >> 4usize) & 0x01;
15368 val != 0
15369 }
15370 #[doc = "Transmit FIFO underrun error or IDMA read transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15371 pub fn set_txunderr(&mut self, val: bool) {
15372 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
15373 }
15374 #[doc = "Received FIFO overrun error or IDMA write transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15375 pub const fn rxoverr(&self) -> bool {
15376 let val = (self.0 >> 5usize) & 0x01;
15377 val != 0
15378 }
15379 #[doc = "Received FIFO overrun error or IDMA write transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15380 pub fn set_rxoverr(&mut self, val: bool) {
15381 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
15382 }
15383 #[doc = "Command response received (CRC check passed, or no CRC). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15384 pub const fn cmdrend(&self) -> bool {
15385 let val = (self.0 >> 6usize) & 0x01;
15386 val != 0
15387 }
15388 #[doc = "Command response received (CRC check passed, or no CRC). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15389 pub fn set_cmdrend(&mut self, val: bool) {
15390 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
15391 }
15392 #[doc = "Command sent (no response required). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15393 pub const fn cmdsent(&self) -> bool {
15394 let val = (self.0 >> 7usize) & 0x01;
15395 val != 0
15396 }
15397 #[doc = "Command sent (no response required). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15398 pub fn set_cmdsent(&mut self, val: bool) {
15399 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
15400 }
15401 #[doc = "Data transfer ended correctly. (data counter, DATACOUNT is zero and no errors occur). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15402 pub const fn dataend(&self) -> bool {
18351 let val = (self.0 >> 8usize) & 0x01; 15403 let val = (self.0 >> 8usize) & 0x01;
18352 super::vals::Csslseon(val as u8) 15404 val != 0
18353 } 15405 }
18354 #[doc = "External low-speed oscillator enable bit"] 15406 #[doc = "Data transfer ended correctly. (data counter, DATACOUNT is zero and no errors occur). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18355 pub fn set_lseon(&mut self, val: super::vals::Csslseon) { 15407 pub fn set_dataend(&mut self, val: bool) {
18356 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize); 15408 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
18357 } 15409 }
18358 #[doc = "External low-speed oscillator ready bit"] 15410 #[doc = "Data transfer Hold. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18359 pub const fn lserdy(&self) -> super::vals::Lserdy { 15411 pub const fn dhold(&self) -> bool {
18360 let val = (self.0 >> 9usize) & 0x01; 15412 let val = (self.0 >> 9usize) & 0x01;
18361 super::vals::Lserdy(val as u8) 15413 val != 0
18362 } 15414 }
18363 #[doc = "External low-speed oscillator ready bit"] 15415 #[doc = "Data transfer Hold. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18364 pub fn set_lserdy(&mut self, val: super::vals::Lserdy) { 15416 pub fn set_dhold(&mut self, val: bool) {
18365 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize); 15417 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
18366 } 15418 }
18367 #[doc = "External low-speed oscillator bypass bit"] 15419 #[doc = "Data block sent/received. (CRC check passed) and DPSM moves to the READWAIT state. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18368 pub const fn lsebyp(&self) -> super::vals::Lsebyp { 15420 pub const fn dbckend(&self) -> bool {
18369 let val = (self.0 >> 10usize) & 0x01; 15421 let val = (self.0 >> 10usize) & 0x01;
18370 super::vals::Lsebyp(val as u8) 15422 val != 0
18371 } 15423 }
18372 #[doc = "External low-speed oscillator bypass bit"] 15424 #[doc = "Data block sent/received. (CRC check passed) and DPSM moves to the READWAIT state. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18373 pub fn set_lsebyp(&mut self, val: super::vals::Lsebyp) { 15425 pub fn set_dbckend(&mut self, val: bool) {
18374 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize); 15426 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
18375 } 15427 }
18376 #[doc = "LSEDRV"] 15428 #[doc = "Data transfer aborted by CMD12. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18377 pub const fn lsedrv(&self) -> super::vals::Lsedrv { 15429 pub const fn dabort(&self) -> bool {
18378 let val = (self.0 >> 11usize) & 0x03; 15430 let val = (self.0 >> 11usize) & 0x01;
18379 super::vals::Lsedrv(val as u8) 15431 val != 0
18380 } 15432 }
18381 #[doc = "LSEDRV"] 15433 #[doc = "Data transfer aborted by CMD12. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18382 pub fn set_lsedrv(&mut self, val: super::vals::Lsedrv) { 15434 pub fn set_dabort(&mut self, val: bool) {
18383 self.0 = (self.0 & !(0x03 << 11usize)) | (((val.0 as u32) & 0x03) << 11usize); 15435 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
18384 } 15436 }
18385 #[doc = "CSSLSEON"] 15437 #[doc = "Data path state machine active, i.e. not in Idle state. This is a hardware status flag only, does not generate an interrupt."]
18386 pub const fn csslseon(&self) -> super::vals::Csslseon { 15438 pub const fn dpsmact(&self) -> bool {
15439 let val = (self.0 >> 12usize) & 0x01;
15440 val != 0
15441 }
15442 #[doc = "Data path state machine active, i.e. not in Idle state. This is a hardware status flag only, does not generate an interrupt."]
15443 pub fn set_dpsmact(&mut self, val: bool) {
15444 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
15445 }
15446 #[doc = "Command path state machine active, i.e. not in Idle state. This is a hardware status flag only, does not generate an interrupt."]
15447 pub const fn cpsmact(&self) -> bool {
18387 let val = (self.0 >> 13usize) & 0x01; 15448 let val = (self.0 >> 13usize) & 0x01;
18388 super::vals::Csslseon(val as u8) 15449 val != 0
18389 } 15450 }
18390 #[doc = "CSSLSEON"] 15451 #[doc = "Command path state machine active, i.e. not in Idle state. This is a hardware status flag only, does not generate an interrupt."]
18391 pub fn set_csslseon(&mut self, val: super::vals::Csslseon) { 15452 pub fn set_cpsmact(&mut self, val: bool) {
18392 self.0 = (self.0 & !(0x01 << 13usize)) | (((val.0 as u32) & 0x01) << 13usize); 15453 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
18393 } 15454 }
18394 #[doc = "CSS on LSE failure detection flag"] 15455 #[doc = "Transmit FIFO half empty At least half the number of words can be written into the FIFO. This bit is cleared when the FIFO becomes half+1 full."]
18395 pub const fn csslsed(&self) -> super::vals::Csslsed { 15456 pub const fn txfifohe(&self) -> bool {
18396 let val = (self.0 >> 14usize) & 0x01; 15457 let val = (self.0 >> 14usize) & 0x01;
18397 super::vals::Csslsed(val as u8) 15458 val != 0
18398 } 15459 }
18399 #[doc = "CSS on LSE failure detection flag"] 15460 #[doc = "Transmit FIFO half empty At least half the number of words can be written into the FIFO. This bit is cleared when the FIFO becomes half+1 full."]
18400 pub fn set_csslsed(&mut self, val: super::vals::Csslsed) { 15461 pub fn set_txfifohe(&mut self, val: bool) {
18401 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 15462 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
18402 } 15463 }
18403 #[doc = "RTC and LCD clock source selection bits"] 15464 #[doc = "Receive FIFO half full There are at least half the number of words in the FIFO. This bit is cleared when the FIFO becomes half+1 empty."]
18404 pub const fn rtcsel(&self) -> super::vals::Rtcsel { 15465 pub const fn rxfifohf(&self) -> bool {
18405 let val = (self.0 >> 16usize) & 0x03; 15466 let val = (self.0 >> 15usize) & 0x01;
18406 super::vals::Rtcsel(val as u8) 15467 val != 0
18407 } 15468 }
18408 #[doc = "RTC and LCD clock source selection bits"] 15469 #[doc = "Receive FIFO half full There are at least half the number of words in the FIFO. This bit is cleared when the FIFO becomes half+1 empty."]
18409 pub fn set_rtcsel(&mut self, val: super::vals::Rtcsel) { 15470 pub fn set_rxfifohf(&mut self, val: bool) {
18410 self.0 = (self.0 & !(0x03 << 16usize)) | (((val.0 as u32) & 0x03) << 16usize); 15471 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize);
18411 } 15472 }
18412 #[doc = "RTC clock enable bit"] 15473 #[doc = "Transmit FIFO full This is a hardware status flag only, does not generate an interrupt. This bit is cleared when one FIFO location becomes empty."]
18413 pub const fn rtcen(&self) -> super::vals::Rtcen { 15474 pub const fn txfifof(&self) -> bool {
15475 let val = (self.0 >> 16usize) & 0x01;
15476 val != 0
15477 }
15478 #[doc = "Transmit FIFO full This is a hardware status flag only, does not generate an interrupt. This bit is cleared when one FIFO location becomes empty."]
15479 pub fn set_txfifof(&mut self, val: bool) {
15480 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
15481 }
15482 #[doc = "Receive FIFO full This bit is cleared when one FIFO location becomes empty."]
15483 pub const fn rxfifof(&self) -> bool {
15484 let val = (self.0 >> 17usize) & 0x01;
15485 val != 0
15486 }
15487 #[doc = "Receive FIFO full This bit is cleared when one FIFO location becomes empty."]
15488 pub fn set_rxfifof(&mut self, val: bool) {
15489 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
15490 }
15491 #[doc = "Transmit FIFO empty This bit is cleared when one FIFO location becomes full."]
15492 pub const fn txfifoe(&self) -> bool {
18414 let val = (self.0 >> 18usize) & 0x01; 15493 let val = (self.0 >> 18usize) & 0x01;
18415 super::vals::Rtcen(val as u8) 15494 val != 0
18416 } 15495 }
18417 #[doc = "RTC clock enable bit"] 15496 #[doc = "Transmit FIFO empty This bit is cleared when one FIFO location becomes full."]
18418 pub fn set_rtcen(&mut self, val: super::vals::Rtcen) { 15497 pub fn set_txfifoe(&mut self, val: bool) {
18419 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize); 15498 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize);
18420 } 15499 }
18421 #[doc = "RTC software reset bit"] 15500 #[doc = "Receive FIFO empty This is a hardware status flag only, does not generate an interrupt. This bit is cleared when one FIFO location becomes full."]
18422 pub const fn rtcrst(&self) -> bool { 15501 pub const fn rxfifoe(&self) -> bool {
18423 let val = (self.0 >> 19usize) & 0x01; 15502 let val = (self.0 >> 19usize) & 0x01;
18424 val != 0 15503 val != 0
18425 } 15504 }
18426 #[doc = "RTC software reset bit"] 15505 #[doc = "Receive FIFO empty This is a hardware status flag only, does not generate an interrupt. This bit is cleared when one FIFO location becomes full."]
18427 pub fn set_rtcrst(&mut self, val: bool) { 15506 pub fn set_rxfifoe(&mut self, val: bool) {
18428 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize); 15507 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize);
18429 } 15508 }
18430 #[doc = "Remove reset flag"] 15509 #[doc = "Inverted value of SDMMC_D0 line (Busy), sampled at the end of a CMD response and a second time 2 SDMMC_CK cycles after the CMD response. This bit is reset to not busy when the SDMMCD0 line changes from busy to not busy. This bit does not signal busy due to data transfer. This is a hardware status flag only, it does not generate an interrupt."]
18431 pub const fn rmvf(&self) -> bool { 15510 pub const fn busyd0(&self) -> bool {
15511 let val = (self.0 >> 20usize) & 0x01;
15512 val != 0
15513 }
15514 #[doc = "Inverted value of SDMMC_D0 line (Busy), sampled at the end of a CMD response and a second time 2 SDMMC_CK cycles after the CMD response. This bit is reset to not busy when the SDMMCD0 line changes from busy to not busy. This bit does not signal busy due to data transfer. This is a hardware status flag only, it does not generate an interrupt."]
15515 pub fn set_busyd0(&mut self, val: bool) {
15516 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize);
15517 }
15518 #[doc = "end of SDMMC_D0 Busy following a CMD response detected. This indicates only end of busy following a CMD response. This bit does not signal busy due to data transfer. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15519 pub const fn busyd0end(&self) -> bool {
15520 let val = (self.0 >> 21usize) & 0x01;
15521 val != 0
15522 }
15523 #[doc = "end of SDMMC_D0 Busy following a CMD response detected. This indicates only end of busy following a CMD response. This bit does not signal busy due to data transfer. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15524 pub fn set_busyd0end(&mut self, val: bool) {
15525 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
15526 }
15527 #[doc = "SDIO interrupt received. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15528 pub const fn sdioit(&self) -> bool {
15529 let val = (self.0 >> 22usize) & 0x01;
15530 val != 0
15531 }
15532 #[doc = "SDIO interrupt received. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15533 pub fn set_sdioit(&mut self, val: bool) {
15534 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
15535 }
15536 #[doc = "Boot acknowledgment received (boot acknowledgment check fail). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15537 pub const fn ackfail(&self) -> bool {
15538 let val = (self.0 >> 23usize) & 0x01;
15539 val != 0
15540 }
15541 #[doc = "Boot acknowledgment received (boot acknowledgment check fail). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15542 pub fn set_ackfail(&mut self, val: bool) {
15543 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
15544 }
15545 #[doc = "Boot acknowledgment timeout. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
15546 pub const fn acktimeout(&self) -> bool {
18432 let val = (self.0 >> 24usize) & 0x01; 15547 let val = (self.0 >> 24usize) & 0x01;
18433 val != 0 15548 val != 0
18434 } 15549 }
18435 #[doc = "Remove reset flag"] 15550 #[doc = "Boot acknowledgment timeout. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18436 pub fn set_rmvf(&mut self, val: bool) { 15551 pub fn set_acktimeout(&mut self, val: bool) {
18437 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize); 15552 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize);
18438 } 15553 }
18439 #[doc = "OBLRSTF"] 15554 #[doc = "Voltage switch critical timing section completion. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18440 pub const fn oblrstf(&self) -> bool { 15555 pub const fn vswend(&self) -> bool {
18441 let val = (self.0 >> 25usize) & 0x01; 15556 let val = (self.0 >> 25usize) & 0x01;
18442 val != 0 15557 val != 0
18443 } 15558 }
18444 #[doc = "OBLRSTF"] 15559 #[doc = "Voltage switch critical timing section completion. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18445 pub fn set_oblrstf(&mut self, val: bool) { 15560 pub fn set_vswend(&mut self, val: bool) {
18446 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize); 15561 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize);
18447 } 15562 }
18448 #[doc = "PIN reset flag"] 15563 #[doc = "SDMMC_CK stopped in Voltage switch procedure. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18449 pub const fn pinrstf(&self) -> bool { 15564 pub const fn ckstop(&self) -> bool {
18450 let val = (self.0 >> 26usize) & 0x01; 15565 let val = (self.0 >> 26usize) & 0x01;
18451 val != 0 15566 val != 0
18452 } 15567 }
18453 #[doc = "PIN reset flag"] 15568 #[doc = "SDMMC_CK stopped in Voltage switch procedure. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18454 pub fn set_pinrstf(&mut self, val: bool) { 15569 pub fn set_ckstop(&mut self, val: bool) {
18455 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize); 15570 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
18456 } 15571 }
18457 #[doc = "POR/PDR reset flag"] 15572 #[doc = "IDMA transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18458 pub const fn porrstf(&self) -> bool { 15573 pub const fn idmate(&self) -> bool {
18459 let val = (self.0 >> 27usize) & 0x01; 15574 let val = (self.0 >> 27usize) & 0x01;
18460 val != 0 15575 val != 0
18461 } 15576 }
18462 #[doc = "POR/PDR reset flag"] 15577 #[doc = "IDMA transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18463 pub fn set_porrstf(&mut self, val: bool) { 15578 pub fn set_idmate(&mut self, val: bool) {
18464 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize); 15579 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize);
18465 } 15580 }
18466 #[doc = "Software reset flag"] 15581 #[doc = "IDMA buffer transfer complete. interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18467 pub const fn sftrstf(&self) -> bool { 15582 pub const fn idmabtc(&self) -> bool {
18468 let val = (self.0 >> 28usize) & 0x01; 15583 let val = (self.0 >> 28usize) & 0x01;
18469 val != 0 15584 val != 0
18470 } 15585 }
18471 #[doc = "Software reset flag"] 15586 #[doc = "IDMA buffer transfer complete. interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
18472 pub fn set_sftrstf(&mut self, val: bool) { 15587 pub fn set_idmabtc(&mut self, val: bool) {
18473 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize); 15588 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize);
18474 } 15589 }
18475 #[doc = "Independent watchdog reset flag"] 15590 }
18476 pub const fn iwdgrstf(&self) -> bool { 15591 impl Default for Star {
18477 let val = (self.0 >> 29usize) & 0x01; 15592 fn default() -> Star {
18478 val != 0 15593 Star(0)
18479 }
18480 #[doc = "Independent watchdog reset flag"]
18481 pub fn set_iwdgrstf(&mut self, val: bool) {
18482 self.0 = (self.0 & !(0x01 << 29usize)) | (((val as u32) & 0x01) << 29usize);
18483 }
18484 #[doc = "Window watchdog reset flag"]
18485 pub const fn wwdgrstf(&self) -> bool {
18486 let val = (self.0 >> 30usize) & 0x01;
18487 val != 0
18488 }
18489 #[doc = "Window watchdog reset flag"]
18490 pub fn set_wwdgrstf(&mut self, val: bool) {
18491 self.0 = (self.0 & !(0x01 << 30usize)) | (((val as u32) & 0x01) << 30usize);
18492 } 15594 }
18493 #[doc = "Low-power reset flag"] 15595 }
18494 pub const fn lpwrrstf(&self) -> bool { 15596 #[doc = "The SDMMC_IDMABASE0R register contains the memory buffer base address in single buffer configuration and the buffer 0 base address in double buffer configuration."]
18495 let val = (self.0 >> 31usize) & 0x01; 15597 #[repr(transparent)]
18496 val != 0 15598 #[derive(Copy, Clone, Eq, PartialEq)]
15599 pub struct Idmabase0r(pub u32);
15600 impl Idmabase0r {
15601 #[doc = "Buffer 0 memory base address bits [31:2], shall be word aligned (bit [1:0]
15602are always 0 and read only). This register can be written by firmware when DPSM is inactive (DPSMACT = 0), and can dynamically be written by firmware when DPSM active (DPSMACT = 1) and memory buffer 0 is inactive (IDMABACT = 1)."]
15603 pub const fn idmabase0(&self) -> u32 {
15604 let val = (self.0 >> 0usize) & 0xffff_ffff;
15605 val as u32
18497 } 15606 }
18498 #[doc = "Low-power reset flag"] 15607 #[doc = "Buffer 0 memory base address bits [31:2], shall be word aligned (bit [1:0]
18499 pub fn set_lpwrrstf(&mut self, val: bool) { 15608are always 0 and read only). This register can be written by firmware when DPSM is inactive (DPSMACT = 0), and can dynamically be written by firmware when DPSM active (DPSMACT = 1) and memory buffer 0 is inactive (IDMABACT = 1)."]
18500 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize); 15609 pub fn set_idmabase0(&mut self, val: u32) {
15610 self.0 =
15611 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
18501 } 15612 }
18502 } 15613 }
18503 impl Default for Csr { 15614 impl Default for Idmabase0r {
18504 fn default() -> Csr { 15615 fn default() -> Idmabase0r {
18505 Csr(0) 15616 Idmabase0r(0)
18506 } 15617 }
18507 } 15618 }
18508 #[doc = "Clock configuration register"] 15619 #[doc = "SDMMC IP version register"]
18509 #[repr(transparent)] 15620 #[repr(transparent)]
18510 #[derive(Copy, Clone, Eq, PartialEq)] 15621 #[derive(Copy, Clone, Eq, PartialEq)]
18511 pub struct Ccipr(pub u32); 15622 pub struct Ver(pub u32);
18512 impl Ccipr { 15623 impl Ver {
18513 #[doc = "USART1 clock source selection bits"] 15624 #[doc = "IP minor revision number."]
18514 pub const fn usart1sel(&self) -> super::vals::Lpuartsel { 15625 pub const fn minrev(&self) -> u8 {
18515 let val = (self.0 >> 0usize) & 0x03; 15626 let val = (self.0 >> 0usize) & 0x0f;
18516 super::vals::Lpuartsel(val as u8) 15627 val as u8
18517 }
18518 #[doc = "USART1 clock source selection bits"]
18519 pub fn set_usart1sel(&mut self, val: super::vals::Lpuartsel) {
18520 self.0 = (self.0 & !(0x03 << 0usize)) | (((val.0 as u32) & 0x03) << 0usize);
18521 } 15628 }
18522 #[doc = "USART2 clock source selection bits"] 15629 #[doc = "IP minor revision number."]
18523 pub const fn usart2sel(&self) -> super::vals::Lpuartsel { 15630 pub fn set_minrev(&mut self, val: u8) {
18524 let val = (self.0 >> 2usize) & 0x03; 15631 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
18525 super::vals::Lpuartsel(val as u8)
18526 } 15632 }
18527 #[doc = "USART2 clock source selection bits"] 15633 #[doc = "IP major revision number."]
18528 pub fn set_usart2sel(&mut self, val: super::vals::Lpuartsel) { 15634 pub const fn majrev(&self) -> u8 {
18529 self.0 = (self.0 & !(0x03 << 2usize)) | (((val.0 as u32) & 0x03) << 2usize); 15635 let val = (self.0 >> 4usize) & 0x0f;
15636 val as u8
18530 } 15637 }
18531 #[doc = "LPUART1 clock source selection bits"] 15638 #[doc = "IP major revision number."]
18532 pub const fn lpuart1sel(&self) -> super::vals::Lpuartsel { 15639 pub fn set_majrev(&mut self, val: u8) {
18533 let val = (self.0 >> 10usize) & 0x03; 15640 self.0 = (self.0 & !(0x0f << 4usize)) | (((val as u32) & 0x0f) << 4usize);
18534 super::vals::Lpuartsel(val as u8)
18535 } 15641 }
18536 #[doc = "LPUART1 clock source selection bits"] 15642 }
18537 pub fn set_lpuart1sel(&mut self, val: super::vals::Lpuartsel) { 15643 impl Default for Ver {
18538 self.0 = (self.0 & !(0x03 << 10usize)) | (((val.0 as u32) & 0x03) << 10usize); 15644 fn default() -> Ver {
15645 Ver(0)
18539 } 15646 }
18540 #[doc = "I2C1 clock source selection bits"] 15647 }
18541 pub const fn i2c1sel(&self) -> super::vals::Icsel { 15648 #[doc = "The SDMMC_ACKTIMER register contains the acknowledgment timeout period, in SDMMC_CK bus clock periods. A counter loads the value from the SDMMC_ACKTIMER register, and starts decrementing when the data path state machine (DPSM) enters the Wait_Ack state. If the timer reaches 0 while the DPSM is in this states, the acknowledgment timeout status flag is set."]
18542 let val = (self.0 >> 12usize) & 0x03; 15649 #[repr(transparent)]
18543 super::vals::Icsel(val as u8) 15650 #[derive(Copy, Clone, Eq, PartialEq)]
15651 pub struct Acktimer(pub u32);
15652 impl Acktimer {
15653 #[doc = "Boot acknowledgment timeout period This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). Boot acknowledgment timeout period expressed in card bus clock periods."]
15654 pub const fn acktime(&self) -> u32 {
15655 let val = (self.0 >> 0usize) & 0x01ff_ffff;
15656 val as u32
18544 } 15657 }
18545 #[doc = "I2C1 clock source selection bits"] 15658 #[doc = "Boot acknowledgment timeout period This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). Boot acknowledgment timeout period expressed in card bus clock periods."]
18546 pub fn set_i2c1sel(&mut self, val: super::vals::Icsel) { 15659 pub fn set_acktime(&mut self, val: u32) {
18547 self.0 = (self.0 & !(0x03 << 12usize)) | (((val.0 as u32) & 0x03) << 12usize); 15660 self.0 =
15661 (self.0 & !(0x01ff_ffff << 0usize)) | (((val as u32) & 0x01ff_ffff) << 0usize);
18548 } 15662 }
18549 #[doc = "I2C3 clock source selection bits"] 15663 }
18550 pub const fn i2c3sel(&self) -> super::vals::Icsel { 15664 impl Default for Acktimer {
18551 let val = (self.0 >> 16usize) & 0x03; 15665 fn default() -> Acktimer {
18552 super::vals::Icsel(val as u8) 15666 Acktimer(0)
18553 } 15667 }
18554 #[doc = "I2C3 clock source selection bits"] 15668 }
18555 pub fn set_i2c3sel(&mut self, val: super::vals::Icsel) { 15669 #[doc = "SDMMC IP identification register"]
18556 self.0 = (self.0 & !(0x03 << 16usize)) | (((val.0 as u32) & 0x03) << 16usize); 15670 #[repr(transparent)]
15671 #[derive(Copy, Clone, Eq, PartialEq)]
15672 pub struct Id(pub u32);
15673 impl Id {
15674 #[doc = "SDMMC IP identification."]
15675 pub const fn ip_id(&self) -> u32 {
15676 let val = (self.0 >> 0usize) & 0xffff_ffff;
15677 val as u32
18557 } 15678 }
18558 #[doc = "Low Power Timer clock source selection bits"] 15679 #[doc = "SDMMC IP identification."]
18559 pub const fn lptim1sel(&self) -> super::vals::Lptimsel { 15680 pub fn set_ip_id(&mut self, val: u32) {
18560 let val = (self.0 >> 18usize) & 0x03; 15681 self.0 =
18561 super::vals::Lptimsel(val as u8) 15682 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
18562 } 15683 }
18563 #[doc = "Low Power Timer clock source selection bits"] 15684 }
18564 pub fn set_lptim1sel(&mut self, val: super::vals::Lptimsel) { 15685 impl Default for Id {
18565 self.0 = (self.0 & !(0x03 << 18usize)) | (((val.0 as u32) & 0x03) << 18usize); 15686 fn default() -> Id {
15687 Id(0)
18566 } 15688 }
18567 #[doc = "48 MHz HSI48 clock source selection bit"] 15689 }
18568 pub const fn hsi48msel(&self) -> bool { 15690 #[doc = "The SDMMC_IDMABASE1R register contains the double buffer configuration second buffer memory base address."]
18569 let val = (self.0 >> 26usize) & 0x01; 15691 #[repr(transparent)]
18570 val != 0 15692 #[derive(Copy, Clone, Eq, PartialEq)]
15693 pub struct Idmabase1r(pub u32);
15694 impl Idmabase1r {
15695 #[doc = "Buffer 1 memory base address, shall be word aligned (bit [1:0]
15696are always 0 and read only). This register can be written by firmware when DPSM is inactive (DPSMACT = 0), and can dynamically be written by firmware when DPSM active (DPSMACT = 1) and memory buffer 1 is inactive (IDMABACT = 0)."]
15697 pub const fn idmabase1(&self) -> u32 {
15698 let val = (self.0 >> 0usize) & 0xffff_ffff;
15699 val as u32
18571 } 15700 }
18572 #[doc = "48 MHz HSI48 clock source selection bit"] 15701 #[doc = "Buffer 1 memory base address, shall be word aligned (bit [1:0]
18573 pub fn set_hsi48msel(&mut self, val: bool) { 15702are always 0 and read only). This register can be written by firmware when DPSM is inactive (DPSMACT = 0), and can dynamically be written by firmware when DPSM active (DPSMACT = 1) and memory buffer 1 is inactive (IDMABACT = 0)."]
18574 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize); 15703 pub fn set_idmabase1(&mut self, val: u32) {
15704 self.0 =
15705 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
18575 } 15706 }
18576 } 15707 }
18577 impl Default for Ccipr { 15708 impl Default for Idmabase1r {
18578 fn default() -> Ccipr { 15709 fn default() -> Idmabase1r {
18579 Ccipr(0) 15710 Idmabase1r(0)
18580 } 15711 }
18581 } 15712 }
18582 #[doc = "APB1 peripheral clock enable in sleep mode register"] 15713 #[doc = "SDMMC command response register"]
18583 #[repr(transparent)] 15714 #[repr(transparent)]
18584 #[derive(Copy, Clone, Eq, PartialEq)] 15715 #[derive(Copy, Clone, Eq, PartialEq)]
18585 pub struct Apb1smenr(pub u32); 15716 pub struct Respcmdr(pub u32);
18586 impl Apb1smenr { 15717 impl Respcmdr {
18587 #[doc = "Timer2 clock enable during sleep mode bit"] 15718 #[doc = "Response command index"]
18588 pub const fn tim2smen(&self) -> super::vals::Lptimsmen { 15719 pub const fn respcmd(&self) -> u8 {
18589 let val = (self.0 >> 0usize) & 0x01; 15720 let val = (self.0 >> 0usize) & 0x3f;
18590 super::vals::Lptimsmen(val as u8) 15721 val as u8
18591 }
18592 #[doc = "Timer2 clock enable during sleep mode bit"]
18593 pub fn set_tim2smen(&mut self, val: super::vals::Lptimsmen) {
18594 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
18595 } 15722 }
18596 #[doc = "Timer3 clock enable during Sleep mode bit"] 15723 #[doc = "Response command index"]
18597 pub const fn tim3smen(&self) -> super::vals::Lptimsmen { 15724 pub fn set_respcmd(&mut self, val: u8) {
18598 let val = (self.0 >> 1usize) & 0x01; 15725 self.0 = (self.0 & !(0x3f << 0usize)) | (((val as u32) & 0x3f) << 0usize);
18599 super::vals::Lptimsmen(val as u8)
18600 } 15726 }
18601 #[doc = "Timer3 clock enable during Sleep mode bit"] 15727 }
18602 pub fn set_tim3smen(&mut self, val: super::vals::Lptimsmen) { 15728 impl Default for Respcmdr {
18603 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 15729 fn default() -> Respcmdr {
15730 Respcmdr(0)
18604 } 15731 }
18605 #[doc = "Timer 6 clock enable during sleep mode bit"] 15732 }
18606 pub const fn tim6smen(&self) -> super::vals::Lptimsmen { 15733 #[doc = "The SDMMC_CLKCR register controls the SDMMC_CK output clock, the SDMMC_RX_CLK receive clock, and the bus width."]
18607 let val = (self.0 >> 4usize) & 0x01; 15734 #[repr(transparent)]
18608 super::vals::Lptimsmen(val as u8) 15735 #[derive(Copy, Clone, Eq, PartialEq)]
15736 pub struct Clkcr(pub u32);
15737 impl Clkcr {
15738 #[doc = "Clock divide factor This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0). This field defines the divide factor between the input clock (SDMMCCLK) and the output clock (SDMMC_CK): SDMMC_CK frequency = SDMMCCLK / [2 * CLKDIV]. 0xx: etc.. xxx: etc.."]
15739 pub const fn clkdiv(&self) -> u16 {
15740 let val = (self.0 >> 0usize) & 0x03ff;
15741 val as u16
18609 } 15742 }
18610 #[doc = "Timer 6 clock enable during sleep mode bit"] 15743 #[doc = "Clock divide factor This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0). This field defines the divide factor between the input clock (SDMMCCLK) and the output clock (SDMMC_CK): SDMMC_CK frequency = SDMMCCLK / [2 * CLKDIV]. 0xx: etc.. xxx: etc.."]
18611 pub fn set_tim6smen(&mut self, val: super::vals::Lptimsmen) { 15744 pub fn set_clkdiv(&mut self, val: u16) {
18612 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 15745 self.0 = (self.0 & !(0x03ff << 0usize)) | (((val as u32) & 0x03ff) << 0usize);
18613 } 15746 }
18614 #[doc = "Timer 7 clock enable during Sleep mode bit"] 15747 #[doc = "Power saving configuration bit This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0) For power saving, the SDMMC_CK clock output can be disabled when the bus is idle by setting PWRSAV:"]
18615 pub const fn tim7smen(&self) -> super::vals::Lptimsmen { 15748 pub const fn pwrsav(&self) -> bool {
18616 let val = (self.0 >> 5usize) & 0x01; 15749 let val = (self.0 >> 12usize) & 0x01;
18617 super::vals::Lptimsmen(val as u8) 15750 val != 0
18618 } 15751 }
18619 #[doc = "Timer 7 clock enable during Sleep mode bit"] 15752 #[doc = "Power saving configuration bit This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0) For power saving, the SDMMC_CK clock output can be disabled when the bus is idle by setting PWRSAV:"]
18620 pub fn set_tim7smen(&mut self, val: super::vals::Lptimsmen) { 15753 pub fn set_pwrsav(&mut self, val: bool) {
18621 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 15754 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
18622 } 15755 }
18623 #[doc = "Window watchdog clock enable during sleep mode bit"] 15756 #[doc = "Wide bus mode enable bit This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0)"]
18624 pub const fn wwdgsmen(&self) -> super::vals::Lptimsmen { 15757 pub const fn widbus(&self) -> u8 {
18625 let val = (self.0 >> 11usize) & 0x01; 15758 let val = (self.0 >> 14usize) & 0x03;
18626 super::vals::Lptimsmen(val as u8) 15759 val as u8
18627 } 15760 }
18628 #[doc = "Window watchdog clock enable during sleep mode bit"] 15761 #[doc = "Wide bus mode enable bit This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0)"]
18629 pub fn set_wwdgsmen(&mut self, val: super::vals::Lptimsmen) { 15762 pub fn set_widbus(&mut self, val: u8) {
18630 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize); 15763 self.0 = (self.0 & !(0x03 << 14usize)) | (((val as u32) & 0x03) << 14usize);
18631 } 15764 }
18632 #[doc = "SPI2 clock enable during sleep mode bit"] 15765 #[doc = "SDMMC_CK dephasing selection bit for data and Command. This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0). When clock division = 1 (CLKDIV = 0), this bit has no effect. Data and Command change on SDMMC_CK falling edge. When clock division &gt;1 (CLKDIV &gt; 0) &amp; DDR = 0: - SDMMC_CK edge occurs on SDMMCCLK rising edge. When clock division >1 (CLKDIV > 0) & DDR = 1: - Data changed on the SDMMCCLK falling edge succeeding a SDMMC_CK edge. - SDMMC_CK edge occurs on SDMMCCLK rising edge. - Data changed on the SDMMC_CK falling edge succeeding a SDMMC_CK edge. - SDMMC_CK edge occurs on SDMMCCLK rising edge."]
18633 pub const fn spi2smen(&self) -> super::vals::Lptimsmen { 15766 pub const fn negedge(&self) -> bool {
18634 let val = (self.0 >> 14usize) & 0x01; 15767 let val = (self.0 >> 16usize) & 0x01;
18635 super::vals::Lptimsmen(val as u8) 15768 val != 0
18636 } 15769 }
18637 #[doc = "SPI2 clock enable during sleep mode bit"] 15770 #[doc = "SDMMC_CK dephasing selection bit for data and Command. This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0). When clock division = 1 (CLKDIV = 0), this bit has no effect. Data and Command change on SDMMC_CK falling edge. When clock division &gt;1 (CLKDIV &gt; 0) &amp; DDR = 0: - SDMMC_CK edge occurs on SDMMCCLK rising edge. When clock division >1 (CLKDIV > 0) & DDR = 1: - Data changed on the SDMMCCLK falling edge succeeding a SDMMC_CK edge. - SDMMC_CK edge occurs on SDMMCCLK rising edge. - Data changed on the SDMMC_CK falling edge succeeding a SDMMC_CK edge. - SDMMC_CK edge occurs on SDMMCCLK rising edge."]
18638 pub fn set_spi2smen(&mut self, val: super::vals::Lptimsmen) { 15771 pub fn set_negedge(&mut self, val: bool) {
18639 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 15772 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
18640 } 15773 }
18641 #[doc = "UART2 clock enable during sleep mode bit"] 15774 #[doc = "Hardware flow control enable This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0) When Hardware flow control is enabled, the meaning of the TXFIFOE and RXFIFOF flags change, please see SDMMC status register definition in Section56.8.11."]
18642 pub const fn usart2smen(&self) -> super::vals::Lptimsmen { 15775 pub const fn hwfc_en(&self) -> bool {
18643 let val = (self.0 >> 17usize) & 0x01; 15776 let val = (self.0 >> 17usize) & 0x01;
18644 super::vals::Lptimsmen(val as u8) 15777 val != 0
18645 } 15778 }
18646 #[doc = "UART2 clock enable during sleep mode bit"] 15779 #[doc = "Hardware flow control enable This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0) When Hardware flow control is enabled, the meaning of the TXFIFOE and RXFIFOF flags change, please see SDMMC status register definition in Section56.8.11."]
18647 pub fn set_usart2smen(&mut self, val: super::vals::Lptimsmen) { 15780 pub fn set_hwfc_en(&mut self, val: bool) {
18648 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize); 15781 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
18649 } 15782 }
18650 #[doc = "LPUART1 clock enable during sleep mode bit"] 15783 #[doc = "Data rate signaling selection This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0) DDR rate shall only be selected with 4-bit or 8-bit wide bus mode. (WIDBUS &gt; 00). DDR = 1 has no effect when WIDBUS = 00 (1-bit wide bus). DDR rate shall only be selected with clock division &gt;1. (CLKDIV &gt; 0)"]
18651 pub const fn lpuart1smen(&self) -> super::vals::Lptimsmen { 15784 pub const fn ddr(&self) -> bool {
18652 let val = (self.0 >> 18usize) & 0x01; 15785 let val = (self.0 >> 18usize) & 0x01;
18653 super::vals::Lptimsmen(val as u8) 15786 val != 0
18654 } 15787 }
18655 #[doc = "LPUART1 clock enable during sleep mode bit"] 15788 #[doc = "Data rate signaling selection This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0) DDR rate shall only be selected with 4-bit or 8-bit wide bus mode. (WIDBUS &gt; 00). DDR = 1 has no effect when WIDBUS = 00 (1-bit wide bus). DDR rate shall only be selected with clock division &gt;1. (CLKDIV &gt; 0)"]
18656 pub fn set_lpuart1smen(&mut self, val: super::vals::Lptimsmen) { 15789 pub fn set_ddr(&mut self, val: bool) {
18657 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize); 15790 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize);
18658 } 15791 }
18659 #[doc = "USART4 clock enable during Sleep mode bit"] 15792 #[doc = "Bus speed mode selection between DS, HS, SDR12, SDR25 and SDR50, DDR50, SDR104. This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0)"]
18660 pub const fn usart4smen(&self) -> super::vals::Lptimsmen { 15793 pub const fn busspeed(&self) -> bool {
18661 let val = (self.0 >> 19usize) & 0x01; 15794 let val = (self.0 >> 19usize) & 0x01;
18662 super::vals::Lptimsmen(val as u8) 15795 val != 0
18663 } 15796 }
18664 #[doc = "USART4 clock enable during Sleep mode bit"] 15797 #[doc = "Bus speed mode selection between DS, HS, SDR12, SDR25 and SDR50, DDR50, SDR104. This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0)"]
18665 pub fn set_usart4smen(&mut self, val: super::vals::Lptimsmen) { 15798 pub fn set_busspeed(&mut self, val: bool) {
18666 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize); 15799 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize);
18667 } 15800 }
18668 #[doc = "USART5 clock enable during Sleep mode bit"] 15801 #[doc = "Receive clock selection. These bits can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0)"]
18669 pub const fn usart5smen(&self) -> super::vals::Lptimsmen { 15802 pub const fn selclkrx(&self) -> u8 {
18670 let val = (self.0 >> 20usize) & 0x01; 15803 let val = (self.0 >> 20usize) & 0x03;
18671 super::vals::Lptimsmen(val as u8) 15804 val as u8
18672 } 15805 }
18673 #[doc = "USART5 clock enable during Sleep mode bit"] 15806 #[doc = "Receive clock selection. These bits can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0)"]
18674 pub fn set_usart5smen(&mut self, val: super::vals::Lptimsmen) { 15807 pub fn set_selclkrx(&mut self, val: u8) {
18675 self.0 = (self.0 & !(0x01 << 20usize)) | (((val.0 as u32) & 0x01) << 20usize); 15808 self.0 = (self.0 & !(0x03 << 20usize)) | (((val as u32) & 0x03) << 20usize);
18676 } 15809 }
18677 #[doc = "I2C1 clock enable during sleep mode bit"] 15810 }
18678 pub const fn i2c1smen(&self) -> super::vals::Lptimsmen { 15811 impl Default for Clkcr {
18679 let val = (self.0 >> 21usize) & 0x01; 15812 fn default() -> Clkcr {
18680 super::vals::Lptimsmen(val as u8) 15813 Clkcr(0)
18681 } 15814 }
18682 #[doc = "I2C1 clock enable during sleep mode bit"] 15815 }
18683 pub fn set_i2c1smen(&mut self, val: super::vals::Lptimsmen) { 15816 #[doc = "The SDMMC_DLENR register contains the number of data bytes to be transferred. The value is loaded into the data counter when data transfer starts."]
18684 self.0 = (self.0 & !(0x01 << 21usize)) | (((val.0 as u32) & 0x01) << 21usize); 15817 #[repr(transparent)]
15818 #[derive(Copy, Clone, Eq, PartialEq)]
15819 pub struct Dlenr(pub u32);
15820 impl Dlenr {
15821 #[doc = "Data length value This register can only be written by firmware when DPSM is inactive (DPSMACT = 0). Number of data bytes to be transferred. When DDR = 1 DATALENGTH is truncated to a multiple of 2. (The last odd byte is not transfered) When DATALENGTH = 0 no data will be transfered, when requested by a CPSMEN and CMDTRANS = 1 also no command will be transfered. DTEN and CPSMEN are cleared to 0."]
15822 pub const fn datalength(&self) -> u32 {
15823 let val = (self.0 >> 0usize) & 0x01ff_ffff;
15824 val as u32
18685 } 15825 }
18686 #[doc = "I2C2 clock enable during sleep mode bit"] 15826 #[doc = "Data length value This register can only be written by firmware when DPSM is inactive (DPSMACT = 0). Number of data bytes to be transferred. When DDR = 1 DATALENGTH is truncated to a multiple of 2. (The last odd byte is not transfered) When DATALENGTH = 0 no data will be transfered, when requested by a CPSMEN and CMDTRANS = 1 also no command will be transfered. DTEN and CPSMEN are cleared to 0."]
18687 pub const fn i2c2smen(&self) -> super::vals::Lptimsmen { 15827 pub fn set_datalength(&mut self, val: u32) {
18688 let val = (self.0 >> 22usize) & 0x01; 15828 self.0 =
18689 super::vals::Lptimsmen(val as u8) 15829 (self.0 & !(0x01ff_ffff << 0usize)) | (((val as u32) & 0x01ff_ffff) << 0usize);
18690 } 15830 }
18691 #[doc = "I2C2 clock enable during sleep mode bit"] 15831 }
18692 pub fn set_i2c2smen(&mut self, val: super::vals::Lptimsmen) { 15832 impl Default for Dlenr {
18693 self.0 = (self.0 & !(0x01 << 22usize)) | (((val.0 as u32) & 0x01) << 22usize); 15833 fn default() -> Dlenr {
15834 Dlenr(0)
18694 } 15835 }
18695 #[doc = "USB clock enable during sleep mode bit"] 15836 }
18696 pub const fn usbsmen(&self) -> super::vals::Lptimsmen { 15837 #[doc = "The SDMMC_RESP1/2/3/4R registers contain the status of a card, which is part of the received response."]
18697 let val = (self.0 >> 23usize) & 0x01; 15838 #[repr(transparent)]
18698 super::vals::Lptimsmen(val as u8) 15839 #[derive(Copy, Clone, Eq, PartialEq)]
15840 pub struct Resp4r(pub u32);
15841 impl Resp4r {
15842 #[doc = "see Table404."]
15843 pub const fn cardstatus4(&self) -> u32 {
15844 let val = (self.0 >> 0usize) & 0xffff_ffff;
15845 val as u32
18699 } 15846 }
18700 #[doc = "USB clock enable during sleep mode bit"] 15847 #[doc = "see Table404."]
18701 pub fn set_usbsmen(&mut self, val: super::vals::Lptimsmen) { 15848 pub fn set_cardstatus4(&mut self, val: u32) {
18702 self.0 = (self.0 & !(0x01 << 23usize)) | (((val.0 as u32) & 0x01) << 23usize); 15849 self.0 =
15850 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
18703 } 15851 }
18704 #[doc = "Clock recovery system clock enable during sleep mode bit"] 15852 }
18705 pub const fn crssmen(&self) -> super::vals::Lptimsmen { 15853 impl Default for Resp4r {
18706 let val = (self.0 >> 27usize) & 0x01; 15854 fn default() -> Resp4r {
18707 super::vals::Lptimsmen(val as u8) 15855 Resp4r(0)
18708 } 15856 }
18709 #[doc = "Clock recovery system clock enable during sleep mode bit"] 15857 }
18710 pub fn set_crssmen(&mut self, val: super::vals::Lptimsmen) { 15858 }
18711 self.0 = (self.0 & !(0x01 << 27usize)) | (((val.0 as u32) & 0x01) << 27usize); 15859}
15860pub mod flash_h7 {
15861 use crate::generic::*;
15862 #[doc = "Flash"]
15863 #[derive(Copy, Clone)]
15864 pub struct Flash(pub *mut u8);
15865 unsafe impl Send for Flash {}
15866 unsafe impl Sync for Flash {}
15867 impl Flash {
15868 #[doc = "Access control register"]
15869 pub fn acr(self) -> Reg<regs::Acr, RW> {
15870 unsafe { Reg::from_ptr(self.0.add(0usize)) }
15871 }
15872 #[doc = "Cluster BANK%s, containing KEYR?, CR?, SR?, CCR?, PRAR_CUR?, PRAR_PRG?, SCAR_CUR?, SCAR_PRG?, WPSN_CUR?R, WPSN_PRG?R, CRCCR?, CRCSADD?R, CRCEADD?R, ECC_FA?R"]
15873 pub fn bank(self, n: usize) -> Bank {
15874 assert!(n < 2usize);
15875 unsafe { Bank(self.0.add(4usize + n * 256usize)) }
15876 }
15877 #[doc = "FLASH option key register"]
15878 pub fn optkeyr(self) -> Reg<regs::Optkeyr, RW> {
15879 unsafe { Reg::from_ptr(self.0.add(8usize)) }
15880 }
15881 #[doc = "FLASH option control register"]
15882 pub fn optcr(self) -> Reg<regs::Optcr, RW> {
15883 unsafe { Reg::from_ptr(self.0.add(24usize)) }
15884 }
15885 #[doc = "FLASH option status register"]
15886 pub fn optsr_cur(self) -> Reg<regs::OptsrCur, RW> {
15887 unsafe { Reg::from_ptr(self.0.add(28usize)) }
15888 }
15889 #[doc = "FLASH option status register"]
15890 pub fn optsr_prg(self) -> Reg<regs::OptsrPrg, RW> {
15891 unsafe { Reg::from_ptr(self.0.add(32usize)) }
15892 }
15893 #[doc = "FLASH option clear control register"]
15894 pub fn optccr(self) -> Reg<regs::Optccr, W> {
15895 unsafe { Reg::from_ptr(self.0.add(36usize)) }
15896 }
15897 #[doc = "FLASH register with boot address"]
15898 pub fn boot_curr(self) -> Reg<regs::BootCurr, R> {
15899 unsafe { Reg::from_ptr(self.0.add(64usize)) }
15900 }
15901 #[doc = "FLASH register with boot address"]
15902 pub fn boot_prgr(self) -> Reg<regs::BootPrgr, RW> {
15903 unsafe { Reg::from_ptr(self.0.add(68usize)) }
15904 }
15905 #[doc = "FLASH CRC data register"]
15906 pub fn crcdatar(self) -> Reg<regs::Crcdatar, RW> {
15907 unsafe { Reg::from_ptr(self.0.add(92usize)) }
15908 }
15909 }
15910 #[doc = "Cluster BANK%s, containing KEYR?, CR?, SR?, CCR?, PRAR_CUR?, PRAR_PRG?, SCAR_CUR?, SCAR_PRG?, WPSN_CUR?R, WPSN_PRG?R, CRCCR?, CRCSADD?R, CRCEADD?R, ECC_FA?R"]
15911 #[derive(Copy, Clone)]
15912 pub struct Bank(pub *mut u8);
15913 unsafe impl Send for Bank {}
15914 unsafe impl Sync for Bank {}
15915 impl Bank {
15916 #[doc = "FLASH key register for bank 1"]
15917 pub fn keyr(self) -> Reg<regs::Keyr, W> {
15918 unsafe { Reg::from_ptr(self.0.add(0usize)) }
15919 }
15920 #[doc = "FLASH control register for bank 1"]
15921 pub fn cr(self) -> Reg<regs::Cr, RW> {
15922 unsafe { Reg::from_ptr(self.0.add(8usize)) }
15923 }
15924 #[doc = "FLASH status register for bank 1"]
15925 pub fn sr(self) -> Reg<regs::Sr, RW> {
15926 unsafe { Reg::from_ptr(self.0.add(12usize)) }
15927 }
15928 #[doc = "FLASH clear control register for bank 1"]
15929 pub fn ccr(self) -> Reg<regs::Ccr, RW> {
15930 unsafe { Reg::from_ptr(self.0.add(16usize)) }
15931 }
15932 #[doc = "FLASH protection address for bank 1"]
15933 pub fn prar_cur(self) -> Reg<regs::PrarCur, R> {
15934 unsafe { Reg::from_ptr(self.0.add(36usize)) }
15935 }
15936 #[doc = "FLASH protection address for bank 1"]
15937 pub fn prar_prg(self) -> Reg<regs::PrarPrg, RW> {
15938 unsafe { Reg::from_ptr(self.0.add(40usize)) }
15939 }
15940 #[doc = "FLASH secure address for bank 1"]
15941 pub fn scar_cur(self) -> Reg<regs::ScarCur, RW> {
15942 unsafe { Reg::from_ptr(self.0.add(44usize)) }
15943 }
15944 #[doc = "FLASH secure address for bank 1"]
15945 pub fn scar_prg(self) -> Reg<regs::ScarPrg, RW> {
15946 unsafe { Reg::from_ptr(self.0.add(48usize)) }
15947 }
15948 #[doc = "FLASH write sector protection for bank 1"]
15949 pub fn wpsn_curr(self) -> Reg<regs::WpsnCurr, R> {
15950 unsafe { Reg::from_ptr(self.0.add(52usize)) }
15951 }
15952 #[doc = "FLASH write sector protection for bank 1"]
15953 pub fn wpsn_prgr(self) -> Reg<regs::WpsnPrgr, RW> {
15954 unsafe { Reg::from_ptr(self.0.add(56usize)) }
15955 }
15956 #[doc = "FLASH CRC control register for bank 1"]
15957 pub fn crccr(self) -> Reg<regs::Crccr, RW> {
15958 unsafe { Reg::from_ptr(self.0.add(76usize)) }
15959 }
15960 #[doc = "FLASH CRC start address register for bank 1"]
15961 pub fn crcsaddr(self) -> Reg<regs::Crcsaddr, RW> {
15962 unsafe { Reg::from_ptr(self.0.add(80usize)) }
15963 }
15964 #[doc = "FLASH CRC end address register for bank 1"]
15965 pub fn crceaddr(self) -> Reg<regs::Crceaddr, RW> {
15966 unsafe { Reg::from_ptr(self.0.add(84usize)) }
15967 }
15968 #[doc = "FLASH ECC fail address for bank 1"]
15969 pub fn far(self) -> Reg<regs::Far, R> {
15970 unsafe { Reg::from_ptr(self.0.add(92usize)) }
15971 }
15972 }
15973 pub mod regs {
15974 use crate::generic::*;
15975 #[doc = "FLASH CRC start address register for bank 1"]
15976 #[repr(transparent)]
15977 #[derive(Copy, Clone, Eq, PartialEq)]
15978 pub struct Crcsaddr(pub u32);
15979 impl Crcsaddr {
15980 #[doc = "CRC start address on bank 1"]
15981 pub const fn crc_start_addr(&self) -> u32 {
15982 let val = (self.0 >> 0usize) & 0xffff_ffff;
15983 val as u32
18712 } 15984 }
18713 #[doc = "Power interface clock enable during sleep mode bit"] 15985 #[doc = "CRC start address on bank 1"]
18714 pub const fn pwrsmen(&self) -> super::vals::Lptimsmen { 15986 pub fn set_crc_start_addr(&mut self, val: u32) {
18715 let val = (self.0 >> 28usize) & 0x01; 15987 self.0 =
18716 super::vals::Lptimsmen(val as u8) 15988 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
18717 } 15989 }
18718 #[doc = "Power interface clock enable during sleep mode bit"] 15990 }
18719 pub fn set_pwrsmen(&mut self, val: super::vals::Lptimsmen) { 15991 impl Default for Crcsaddr {
18720 self.0 = (self.0 & !(0x01 << 28usize)) | (((val.0 as u32) & 0x01) << 28usize); 15992 fn default() -> Crcsaddr {
15993 Crcsaddr(0)
18721 } 15994 }
18722 #[doc = "DAC interface clock enable during sleep mode bit"] 15995 }
18723 pub const fn dacsmen(&self) -> super::vals::Lptimsmen { 15996 #[doc = "FLASH option status register"]
18724 let val = (self.0 >> 29usize) & 0x01; 15997 #[repr(transparent)]
18725 super::vals::Lptimsmen(val as u8) 15998 #[derive(Copy, Clone, Eq, PartialEq)]
15999 pub struct OptsrPrg(pub u32);
16000 impl OptsrPrg {
16001 #[doc = "BOR reset level option configuration bits"]
16002 pub const fn bor_lev(&self) -> u8 {
16003 let val = (self.0 >> 2usize) & 0x03;
16004 val as u8
18726 } 16005 }
18727 #[doc = "DAC interface clock enable during sleep mode bit"] 16006 #[doc = "BOR reset level option configuration bits"]
18728 pub fn set_dacsmen(&mut self, val: super::vals::Lptimsmen) { 16007 pub fn set_bor_lev(&mut self, val: u8) {
18729 self.0 = (self.0 & !(0x01 << 29usize)) | (((val.0 as u32) & 0x01) << 29usize); 16008 self.0 = (self.0 & !(0x03 << 2usize)) | (((val as u32) & 0x03) << 2usize);
18730 } 16009 }
18731 #[doc = "2C3 clock enable during Sleep mode bit"] 16010 #[doc = "IWDG1 option configuration bit"]
18732 pub const fn i2c3smen(&self) -> super::vals::Lptimsmen { 16011 pub const fn iwdg1_hw(&self) -> bool {
18733 let val = (self.0 >> 30usize) & 0x01; 16012 let val = (self.0 >> 4usize) & 0x01;
18734 super::vals::Lptimsmen(val as u8) 16013 val != 0
18735 } 16014 }
18736 #[doc = "2C3 clock enable during Sleep mode bit"] 16015 #[doc = "IWDG1 option configuration bit"]
18737 pub fn set_i2c3smen(&mut self, val: super::vals::Lptimsmen) { 16016 pub fn set_iwdg1_hw(&mut self, val: bool) {
18738 self.0 = (self.0 & !(0x01 << 30usize)) | (((val.0 as u32) & 0x01) << 30usize); 16017 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
18739 } 16018 }
18740 #[doc = "Low power timer clock enable during sleep mode bit"] 16019 #[doc = "Option byte erase after D1 DStop option configuration bit"]
18741 pub const fn lptim1smen(&self) -> super::vals::Lptimsmen { 16020 pub const fn n_rst_stop_d1(&self) -> bool {
18742 let val = (self.0 >> 31usize) & 0x01; 16021 let val = (self.0 >> 6usize) & 0x01;
18743 super::vals::Lptimsmen(val as u8) 16022 val != 0
18744 } 16023 }
18745 #[doc = "Low power timer clock enable during sleep mode bit"] 16024 #[doc = "Option byte erase after D1 DStop option configuration bit"]
18746 pub fn set_lptim1smen(&mut self, val: super::vals::Lptimsmen) { 16025 pub fn set_n_rst_stop_d1(&mut self, val: bool) {
18747 self.0 = (self.0 & !(0x01 << 31usize)) | (((val.0 as u32) & 0x01) << 31usize); 16026 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
18748 } 16027 }
18749 } 16028 #[doc = "Option byte erase after D1 DStandby option configuration bit"]
18750 impl Default for Apb1smenr { 16029 pub const fn n_rst_stby_d1(&self) -> bool {
18751 fn default() -> Apb1smenr { 16030 let val = (self.0 >> 7usize) & 0x01;
18752 Apb1smenr(0) 16031 val != 0
18753 } 16032 }
18754 } 16033 #[doc = "Option byte erase after D1 DStandby option configuration bit"]
18755 #[doc = "AHB peripheral clock enable register"] 16034 pub fn set_n_rst_stby_d1(&mut self, val: bool) {
18756 #[repr(transparent)] 16035 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
18757 #[derive(Copy, Clone, Eq, PartialEq)]
18758 pub struct Ahbenr(pub u32);
18759 impl Ahbenr {
18760 #[doc = "DMA clock enable bit"]
18761 pub const fn dmaen(&self) -> super::vals::Crypen {
18762 let val = (self.0 >> 0usize) & 0x01;
18763 super::vals::Crypen(val as u8)
18764 } 16036 }
18765 #[doc = "DMA clock enable bit"] 16037 #[doc = "Readout protection level option configuration byte"]
18766 pub fn set_dmaen(&mut self, val: super::vals::Crypen) { 16038 pub const fn rdp(&self) -> u8 {
18767 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 16039 let val = (self.0 >> 8usize) & 0xff;
16040 val as u8
18768 } 16041 }
18769 #[doc = "NVM interface clock enable bit"] 16042 #[doc = "Readout protection level option configuration byte"]
18770 pub const fn mifen(&self) -> super::vals::Crypen { 16043 pub fn set_rdp(&mut self, val: u8) {
18771 let val = (self.0 >> 8usize) & 0x01; 16044 self.0 = (self.0 & !(0xff << 8usize)) | (((val as u32) & 0xff) << 8usize);
18772 super::vals::Crypen(val as u8)
18773 } 16045 }
18774 #[doc = "NVM interface clock enable bit"] 16046 #[doc = "IWDG Stop mode freeze option configuration bit"]
18775 pub fn set_mifen(&mut self, val: super::vals::Crypen) { 16047 pub const fn fz_iwdg_stop(&self) -> bool {
18776 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize); 16048 let val = (self.0 >> 17usize) & 0x01;
16049 val != 0
18777 } 16050 }
18778 #[doc = "CRC clock enable bit"] 16051 #[doc = "IWDG Stop mode freeze option configuration bit"]
18779 pub const fn crcen(&self) -> super::vals::Crypen { 16052 pub fn set_fz_iwdg_stop(&mut self, val: bool) {
18780 let val = (self.0 >> 12usize) & 0x01; 16053 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
18781 super::vals::Crypen(val as u8)
18782 } 16054 }
18783 #[doc = "CRC clock enable bit"] 16055 #[doc = "IWDG Standby mode freeze option configuration bit"]
18784 pub fn set_crcen(&mut self, val: super::vals::Crypen) { 16056 pub const fn fz_iwdg_sdby(&self) -> bool {
18785 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize); 16057 let val = (self.0 >> 18usize) & 0x01;
16058 val != 0
18786 } 16059 }
18787 #[doc = "Touch Sensing clock enable bit"] 16060 #[doc = "IWDG Standby mode freeze option configuration bit"]
18788 pub const fn touchen(&self) -> super::vals::Crypen { 16061 pub fn set_fz_iwdg_sdby(&mut self, val: bool) {
18789 let val = (self.0 >> 16usize) & 0x01; 16062 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize);
18790 super::vals::Crypen(val as u8)
18791 } 16063 }
18792 #[doc = "Touch Sensing clock enable bit"] 16064 #[doc = "DTCM size select option configuration bits"]
18793 pub fn set_touchen(&mut self, val: super::vals::Crypen) { 16065 pub const fn st_ram_size(&self) -> u8 {
18794 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize); 16066 let val = (self.0 >> 19usize) & 0x03;
16067 val as u8
18795 } 16068 }
18796 #[doc = "Random Number Generator clock enable bit"] 16069 #[doc = "DTCM size select option configuration bits"]
18797 pub const fn rngen(&self) -> super::vals::Crypen { 16070 pub fn set_st_ram_size(&mut self, val: u8) {
18798 let val = (self.0 >> 20usize) & 0x01; 16071 self.0 = (self.0 & !(0x03 << 19usize)) | (((val as u32) & 0x03) << 19usize);
18799 super::vals::Crypen(val as u8)
18800 } 16072 }
18801 #[doc = "Random Number Generator clock enable bit"] 16073 #[doc = "Security option configuration bit"]
18802 pub fn set_rngen(&mut self, val: super::vals::Crypen) { 16074 pub const fn security(&self) -> bool {
18803 self.0 = (self.0 & !(0x01 << 20usize)) | (((val.0 as u32) & 0x01) << 20usize); 16075 let val = (self.0 >> 21usize) & 0x01;
16076 val != 0
18804 } 16077 }
18805 #[doc = "Crypto clock enable bit"] 16078 #[doc = "Security option configuration bit"]
18806 pub const fn crypen(&self) -> super::vals::Crypen { 16079 pub fn set_security(&mut self, val: bool) {
18807 let val = (self.0 >> 24usize) & 0x01; 16080 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
18808 super::vals::Crypen(val as u8)
18809 } 16081 }
18810 #[doc = "Crypto clock enable bit"] 16082 #[doc = "User option configuration bit 1"]
18811 pub fn set_crypen(&mut self, val: super::vals::Crypen) { 16083 pub const fn rss1(&self) -> bool {
18812 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize); 16084 let val = (self.0 >> 26usize) & 0x01;
16085 val != 0
18813 } 16086 }
18814 } 16087 #[doc = "User option configuration bit 1"]
18815 impl Default for Ahbenr { 16088 pub fn set_rss1(&mut self, val: bool) {
18816 fn default() -> Ahbenr { 16089 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
18817 Ahbenr(0)
18818 } 16090 }
18819 } 16091 #[doc = "User option configuration bit 2"]
18820 #[doc = "Clock interrupt clear register"] 16092 pub const fn rss2(&self) -> bool {
18821 #[repr(transparent)] 16093 let val = (self.0 >> 27usize) & 0x01;
18822 #[derive(Copy, Clone, Eq, PartialEq)]
18823 pub struct Cicr(pub u32);
18824 impl Cicr {
18825 #[doc = "LSI ready Interrupt clear"]
18826 pub const fn lsirdyc(&self) -> bool {
18827 let val = (self.0 >> 0usize) & 0x01;
18828 val != 0 16094 val != 0
18829 } 16095 }
18830 #[doc = "LSI ready Interrupt clear"] 16096 #[doc = "User option configuration bit 2"]
18831 pub fn set_lsirdyc(&mut self, val: bool) { 16097 pub fn set_rss2(&mut self, val: bool) {
18832 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 16098 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize);
18833 } 16099 }
18834 #[doc = "LSE ready Interrupt clear"] 16100 #[doc = "I/O high-speed at low-voltage (PRODUCT_BELOW_25V)"]
18835 pub const fn lserdyc(&self) -> bool { 16101 pub const fn io_hslv(&self) -> bool {
18836 let val = (self.0 >> 1usize) & 0x01; 16102 let val = (self.0 >> 29usize) & 0x01;
18837 val != 0 16103 val != 0
18838 } 16104 }
18839 #[doc = "LSE ready Interrupt clear"] 16105 #[doc = "I/O high-speed at low-voltage (PRODUCT_BELOW_25V)"]
18840 pub fn set_lserdyc(&mut self, val: bool) { 16106 pub fn set_io_hslv(&mut self, val: bool) {
18841 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 16107 self.0 = (self.0 & !(0x01 << 29usize)) | (((val as u32) & 0x01) << 29usize);
18842 } 16108 }
18843 #[doc = "HSI16 ready Interrupt clear"] 16109 #[doc = "Bank swapping option configuration bit"]
18844 pub const fn hsi16rdyc(&self) -> bool { 16110 pub const fn swap_bank_opt(&self) -> bool {
18845 let val = (self.0 >> 2usize) & 0x01; 16111 let val = (self.0 >> 31usize) & 0x01;
18846 val != 0 16112 val != 0
18847 } 16113 }
18848 #[doc = "HSI16 ready Interrupt clear"] 16114 #[doc = "Bank swapping option configuration bit"]
18849 pub fn set_hsi16rdyc(&mut self, val: bool) { 16115 pub fn set_swap_bank_opt(&mut self, val: bool) {
18850 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 16116 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize);
18851 } 16117 }
18852 #[doc = "HSE ready Interrupt clear"] 16118 }
18853 pub const fn hserdyc(&self) -> bool { 16119 impl Default for OptsrPrg {
18854 let val = (self.0 >> 3usize) & 0x01; 16120 fn default() -> OptsrPrg {
16121 OptsrPrg(0)
16122 }
16123 }
16124 #[doc = "FLASH option status register"]
16125 #[repr(transparent)]
16126 #[derive(Copy, Clone, Eq, PartialEq)]
16127 pub struct OptsrCur(pub u32);
16128 impl OptsrCur {
16129 #[doc = "Option byte change ongoing flag"]
16130 pub const fn opt_busy(&self) -> bool {
16131 let val = (self.0 >> 0usize) & 0x01;
18855 val != 0 16132 val != 0
18856 } 16133 }
18857 #[doc = "HSE ready Interrupt clear"] 16134 #[doc = "Option byte change ongoing flag"]
18858 pub fn set_hserdyc(&mut self, val: bool) { 16135 pub fn set_opt_busy(&mut self, val: bool) {
18859 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize); 16136 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
18860 } 16137 }
18861 #[doc = "PLL ready Interrupt clear"] 16138 #[doc = "Brownout level option status bit"]
18862 pub const fn pllrdyc(&self) -> bool { 16139 pub const fn bor_lev(&self) -> u8 {
18863 let val = (self.0 >> 4usize) & 0x01; 16140 let val = (self.0 >> 2usize) & 0x03;
18864 val != 0 16141 val as u8
18865 } 16142 }
18866 #[doc = "PLL ready Interrupt clear"] 16143 #[doc = "Brownout level option status bit"]
18867 pub fn set_pllrdyc(&mut self, val: bool) { 16144 pub fn set_bor_lev(&mut self, val: u8) {
18868 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 16145 self.0 = (self.0 & !(0x03 << 2usize)) | (((val as u32) & 0x03) << 2usize);
18869 } 16146 }
18870 #[doc = "MSI ready Interrupt clear"] 16147 #[doc = "IWDG1 control option status bit"]
18871 pub const fn msirdyc(&self) -> bool { 16148 pub const fn iwdg1_hw(&self) -> bool {
18872 let val = (self.0 >> 5usize) & 0x01; 16149 let val = (self.0 >> 4usize) & 0x01;
18873 val != 0 16150 val != 0
18874 } 16151 }
18875 #[doc = "MSI ready Interrupt clear"] 16152 #[doc = "IWDG1 control option status bit"]
18876 pub fn set_msirdyc(&mut self, val: bool) { 16153 pub fn set_iwdg1_hw(&mut self, val: bool) {
18877 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 16154 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
18878 } 16155 }
18879 #[doc = "HSI48 ready Interrupt clear"] 16156 #[doc = "D1 DStop entry reset option status bit"]
18880 pub const fn hsi48rdyc(&self) -> bool { 16157 pub const fn n_rst_stop_d1(&self) -> bool {
18881 let val = (self.0 >> 6usize) & 0x01; 16158 let val = (self.0 >> 6usize) & 0x01;
18882 val != 0 16159 val != 0
18883 } 16160 }
18884 #[doc = "HSI48 ready Interrupt clear"] 16161 #[doc = "D1 DStop entry reset option status bit"]
18885 pub fn set_hsi48rdyc(&mut self, val: bool) { 16162 pub fn set_n_rst_stop_d1(&mut self, val: bool) {
18886 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 16163 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
18887 } 16164 }
18888 #[doc = "LSE Clock Security System Interrupt clear"] 16165 #[doc = "D1 DStandby entry reset option status bit"]
18889 pub const fn csslsec(&self) -> bool { 16166 pub const fn n_rst_stby_d1(&self) -> bool {
18890 let val = (self.0 >> 7usize) & 0x01; 16167 let val = (self.0 >> 7usize) & 0x01;
18891 val != 0 16168 val != 0
18892 } 16169 }
18893 #[doc = "LSE Clock Security System Interrupt clear"] 16170 #[doc = "D1 DStandby entry reset option status bit"]
18894 pub fn set_csslsec(&mut self, val: bool) { 16171 pub fn set_n_rst_stby_d1(&mut self, val: bool) {
18895 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 16172 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
18896 } 16173 }
18897 #[doc = "Clock Security System Interrupt clear"] 16174 #[doc = "Readout protection level option status byte"]
18898 pub const fn csshsec(&self) -> bool { 16175 pub const fn rdp(&self) -> u8 {
18899 let val = (self.0 >> 8usize) & 0x01; 16176 let val = (self.0 >> 8usize) & 0xff;
18900 val != 0 16177 val as u8
18901 } 16178 }
18902 #[doc = "Clock Security System Interrupt clear"] 16179 #[doc = "Readout protection level option status byte"]
18903 pub fn set_csshsec(&mut self, val: bool) { 16180 pub fn set_rdp(&mut self, val: u8) {
18904 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 16181 self.0 = (self.0 & !(0xff << 8usize)) | (((val as u32) & 0xff) << 8usize);
18905 } 16182 }
18906 } 16183 #[doc = "IWDG Stop mode freeze option status bit"]
18907 impl Default for Cicr { 16184 pub const fn fz_iwdg_stop(&self) -> bool {
18908 fn default() -> Cicr { 16185 let val = (self.0 >> 17usize) & 0x01;
18909 Cicr(0) 16186 val != 0
18910 } 16187 }
18911 } 16188 #[doc = "IWDG Stop mode freeze option status bit"]
18912 #[doc = "Clock interrupt flag register"] 16189 pub fn set_fz_iwdg_stop(&mut self, val: bool) {
18913 #[repr(transparent)] 16190 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
18914 #[derive(Copy, Clone, Eq, PartialEq)] 16191 }
18915 pub struct Cifr(pub u32); 16192 #[doc = "IWDG Standby mode freeze option status bit"]
18916 impl Cifr { 16193 pub const fn fz_iwdg_sdby(&self) -> bool {
18917 #[doc = "LSI ready interrupt flag"] 16194 let val = (self.0 >> 18usize) & 0x01;
18918 pub const fn lsirdyf(&self) -> bool {
18919 let val = (self.0 >> 0usize) & 0x01;
18920 val != 0 16195 val != 0
18921 } 16196 }
18922 #[doc = "LSI ready interrupt flag"] 16197 #[doc = "IWDG Standby mode freeze option status bit"]
18923 pub fn set_lsirdyf(&mut self, val: bool) { 16198 pub fn set_fz_iwdg_sdby(&mut self, val: bool) {
18924 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 16199 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize);
18925 } 16200 }
18926 #[doc = "LSE ready interrupt flag"] 16201 #[doc = "DTCM RAM size option status"]
18927 pub const fn lserdyf(&self) -> bool { 16202 pub const fn st_ram_size(&self) -> u8 {
18928 let val = (self.0 >> 1usize) & 0x01; 16203 let val = (self.0 >> 19usize) & 0x03;
16204 val as u8
16205 }
16206 #[doc = "DTCM RAM size option status"]
16207 pub fn set_st_ram_size(&mut self, val: u8) {
16208 self.0 = (self.0 & !(0x03 << 19usize)) | (((val as u32) & 0x03) << 19usize);
16209 }
16210 #[doc = "Security enable option status bit"]
16211 pub const fn security(&self) -> bool {
16212 let val = (self.0 >> 21usize) & 0x01;
18929 val != 0 16213 val != 0
18930 } 16214 }
18931 #[doc = "LSE ready interrupt flag"] 16215 #[doc = "Security enable option status bit"]
18932 pub fn set_lserdyf(&mut self, val: bool) { 16216 pub fn set_security(&mut self, val: bool) {
18933 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 16217 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
18934 } 16218 }
18935 #[doc = "HSI16 ready interrupt flag"] 16219 #[doc = "User option bit 1"]
18936 pub const fn hsi16rdyf(&self) -> bool { 16220 pub const fn rss1(&self) -> bool {
18937 let val = (self.0 >> 2usize) & 0x01; 16221 let val = (self.0 >> 26usize) & 0x01;
18938 val != 0 16222 val != 0
18939 } 16223 }
18940 #[doc = "HSI16 ready interrupt flag"] 16224 #[doc = "User option bit 1"]
18941 pub fn set_hsi16rdyf(&mut self, val: bool) { 16225 pub fn set_rss1(&mut self, val: bool) {
18942 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 16226 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
18943 } 16227 }
18944 #[doc = "HSE ready interrupt flag"] 16228 #[doc = "Device personalization status bit"]
18945 pub const fn hserdyf(&self) -> bool { 16229 pub const fn perso_ok(&self) -> bool {
18946 let val = (self.0 >> 3usize) & 0x01; 16230 let val = (self.0 >> 28usize) & 0x01;
18947 val != 0 16231 val != 0
18948 } 16232 }
18949 #[doc = "HSE ready interrupt flag"] 16233 #[doc = "Device personalization status bit"]
18950 pub fn set_hserdyf(&mut self, val: bool) { 16234 pub fn set_perso_ok(&mut self, val: bool) {
18951 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize); 16235 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize);
18952 } 16236 }
18953 #[doc = "PLL ready interrupt flag"] 16237 #[doc = "I/O high-speed at low-voltage status bit (PRODUCT_BELOW_25V)"]
18954 pub const fn pllrdyf(&self) -> bool { 16238 pub const fn io_hslv(&self) -> bool {
18955 let val = (self.0 >> 4usize) & 0x01; 16239 let val = (self.0 >> 29usize) & 0x01;
18956 val != 0 16240 val != 0
18957 } 16241 }
18958 #[doc = "PLL ready interrupt flag"] 16242 #[doc = "I/O high-speed at low-voltage status bit (PRODUCT_BELOW_25V)"]
18959 pub fn set_pllrdyf(&mut self, val: bool) { 16243 pub fn set_io_hslv(&mut self, val: bool) {
18960 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 16244 self.0 = (self.0 & !(0x01 << 29usize)) | (((val as u32) & 0x01) << 29usize);
18961 } 16245 }
18962 #[doc = "MSI ready interrupt flag"] 16246 #[doc = "Option byte change error flag"]
18963 pub const fn msirdyf(&self) -> bool { 16247 pub const fn optchangeerr(&self) -> bool {
18964 let val = (self.0 >> 5usize) & 0x01; 16248 let val = (self.0 >> 30usize) & 0x01;
18965 val != 0 16249 val != 0
18966 } 16250 }
18967 #[doc = "MSI ready interrupt flag"] 16251 #[doc = "Option byte change error flag"]
18968 pub fn set_msirdyf(&mut self, val: bool) { 16252 pub fn set_optchangeerr(&mut self, val: bool) {
18969 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 16253 self.0 = (self.0 & !(0x01 << 30usize)) | (((val as u32) & 0x01) << 30usize);
18970 } 16254 }
18971 #[doc = "HSI48 ready interrupt flag"] 16255 #[doc = "Bank swapping option status bit"]
18972 pub const fn hsi48rdyf(&self) -> bool { 16256 pub const fn swap_bank_opt(&self) -> bool {
18973 let val = (self.0 >> 6usize) & 0x01; 16257 let val = (self.0 >> 31usize) & 0x01;
18974 val != 0 16258 val != 0
18975 } 16259 }
18976 #[doc = "HSI48 ready interrupt flag"] 16260 #[doc = "Bank swapping option status bit"]
18977 pub fn set_hsi48rdyf(&mut self, val: bool) { 16261 pub fn set_swap_bank_opt(&mut self, val: bool) {
18978 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 16262 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize);
18979 } 16263 }
18980 #[doc = "LSE Clock Security System Interrupt flag"] 16264 }
18981 pub const fn csslsef(&self) -> super::vals::Csslsef { 16265 impl Default for OptsrCur {
18982 let val = (self.0 >> 7usize) & 0x01; 16266 fn default() -> OptsrCur {
18983 super::vals::Csslsef(val as u8) 16267 OptsrCur(0)
18984 } 16268 }
18985 #[doc = "LSE Clock Security System Interrupt flag"] 16269 }
18986 pub fn set_csslsef(&mut self, val: super::vals::Csslsef) { 16270 #[doc = "FLASH write sector protection for bank 1"]
18987 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 16271 #[repr(transparent)]
16272 #[derive(Copy, Clone, Eq, PartialEq)]
16273 pub struct WpsnPrgr(pub u32);
16274 impl WpsnPrgr {
16275 #[doc = "Bank 1 sector write protection configuration byte"]
16276 pub const fn wrpsn(&self) -> u8 {
16277 let val = (self.0 >> 0usize) & 0xff;
16278 val as u8
18988 } 16279 }
18989 #[doc = "Clock Security System Interrupt flag"] 16280 #[doc = "Bank 1 sector write protection configuration byte"]
18990 pub const fn csshsef(&self) -> super::vals::Csshsef { 16281 pub fn set_wrpsn(&mut self, val: u8) {
18991 let val = (self.0 >> 8usize) & 0x01; 16282 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
18992 super::vals::Csshsef(val as u8)
18993 } 16283 }
18994 #[doc = "Clock Security System Interrupt flag"] 16284 }
18995 pub fn set_csshsef(&mut self, val: super::vals::Csshsef) { 16285 impl Default for WpsnPrgr {
18996 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize); 16286 fn default() -> WpsnPrgr {
16287 WpsnPrgr(0)
18997 } 16288 }
18998 } 16289 }
18999 impl Default for Cifr { 16290 #[doc = "FLASH CRC end address register for bank 1"]
19000 fn default() -> Cifr { 16291 #[repr(transparent)]
19001 Cifr(0) 16292 #[derive(Copy, Clone, Eq, PartialEq)]
16293 pub struct Crceaddr(pub u32);
16294 impl Crceaddr {
16295 #[doc = "CRC end address on bank 1"]
16296 pub const fn crc_end_addr(&self) -> u32 {
16297 let val = (self.0 >> 0usize) & 0xffff_ffff;
16298 val as u32
16299 }
16300 #[doc = "CRC end address on bank 1"]
16301 pub fn set_crc_end_addr(&mut self, val: u32) {
16302 self.0 =
16303 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
19002 } 16304 }
19003 } 16305 }
19004 #[doc = "APB1 peripheral reset register"] 16306 impl Default for Crceaddr {
16307 fn default() -> Crceaddr {
16308 Crceaddr(0)
16309 }
16310 }
16311 #[doc = "FLASH control register for bank 1"]
19005 #[repr(transparent)] 16312 #[repr(transparent)]
19006 #[derive(Copy, Clone, Eq, PartialEq)] 16313 #[derive(Copy, Clone, Eq, PartialEq)]
19007 pub struct Apb1rstr(pub u32); 16314 pub struct Cr(pub u32);
19008 impl Apb1rstr { 16315 impl Cr {
19009 #[doc = "Timer2 reset"] 16316 #[doc = "Bank 1 configuration lock bit"]
19010 pub const fn tim2rst(&self) -> bool { 16317 pub const fn lock(&self) -> bool {
19011 let val = (self.0 >> 0usize) & 0x01; 16318 let val = (self.0 >> 0usize) & 0x01;
19012 val != 0 16319 val != 0
19013 } 16320 }
19014 #[doc = "Timer2 reset"] 16321 #[doc = "Bank 1 configuration lock bit"]
19015 pub fn set_tim2rst(&mut self, val: bool) { 16322 pub fn set_lock(&mut self, val: bool) {
19016 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 16323 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
19017 } 16324 }
19018 #[doc = "Timer3 reset"] 16325 #[doc = "Bank 1 program enable bit"]
19019 pub const fn tim3rst(&self) -> bool { 16326 pub const fn pg(&self) -> bool {
19020 let val = (self.0 >> 1usize) & 0x01; 16327 let val = (self.0 >> 1usize) & 0x01;
19021 val != 0 16328 val != 0
19022 } 16329 }
19023 #[doc = "Timer3 reset"] 16330 #[doc = "Bank 1 program enable bit"]
19024 pub fn set_tim3rst(&mut self, val: bool) { 16331 pub fn set_pg(&mut self, val: bool) {
19025 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 16332 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
19026 } 16333 }
19027 #[doc = "Timer 6 reset"] 16334 #[doc = "Bank 1 sector erase request"]
19028 pub const fn tim6rst(&self) -> bool { 16335 pub const fn ser(&self) -> bool {
19029 let val = (self.0 >> 4usize) & 0x01; 16336 let val = (self.0 >> 2usize) & 0x01;
19030 val != 0 16337 val != 0
19031 } 16338 }
19032 #[doc = "Timer 6 reset"] 16339 #[doc = "Bank 1 sector erase request"]
19033 pub fn set_tim6rst(&mut self, val: bool) { 16340 pub fn set_ser(&mut self, val: bool) {
19034 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 16341 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
19035 } 16342 }
19036 #[doc = "Timer 7 reset"] 16343 #[doc = "Bank 1 erase request"]
19037 pub const fn tim7rst(&self) -> bool { 16344 pub const fn ber(&self) -> bool {
19038 let val = (self.0 >> 5usize) & 0x01; 16345 let val = (self.0 >> 3usize) & 0x01;
19039 val != 0 16346 val != 0
19040 } 16347 }
19041 #[doc = "Timer 7 reset"] 16348 #[doc = "Bank 1 erase request"]
19042 pub fn set_tim7rst(&mut self, val: bool) { 16349 pub fn set_ber(&mut self, val: bool) {
19043 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 16350 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
19044 } 16351 }
19045 #[doc = "Window watchdog reset"] 16352 #[doc = "Bank 1 program size"]
19046 pub const fn wwdrst(&self) -> bool { 16353 pub const fn psize(&self) -> u8 {
19047 let val = (self.0 >> 11usize) & 0x01; 16354 let val = (self.0 >> 4usize) & 0x03;
16355 val as u8
16356 }
16357 #[doc = "Bank 1 program size"]
16358 pub fn set_psize(&mut self, val: u8) {
16359 self.0 = (self.0 & !(0x03 << 4usize)) | (((val as u32) & 0x03) << 4usize);
16360 }
16361 #[doc = "Bank 1 write forcing control bit"]
16362 pub const fn fw(&self) -> bool {
16363 let val = (self.0 >> 6usize) & 0x01;
19048 val != 0 16364 val != 0
19049 } 16365 }
19050 #[doc = "Window watchdog reset"] 16366 #[doc = "Bank 1 write forcing control bit"]
19051 pub fn set_wwdrst(&mut self, val: bool) { 16367 pub fn set_fw(&mut self, val: bool) {
19052 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize); 16368 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
19053 } 16369 }
19054 #[doc = "SPI2 reset"] 16370 #[doc = "Bank 1 bank or sector erase start control bit"]
19055 pub const fn spi2rst(&self) -> bool { 16371 pub const fn start(&self) -> bool {
19056 let val = (self.0 >> 14usize) & 0x01; 16372 let val = (self.0 >> 7usize) & 0x01;
19057 val != 0 16373 val != 0
19058 } 16374 }
19059 #[doc = "SPI2 reset"] 16375 #[doc = "Bank 1 bank or sector erase start control bit"]
19060 pub fn set_spi2rst(&mut self, val: bool) { 16376 pub fn set_start(&mut self, val: bool) {
19061 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize); 16377 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
19062 } 16378 }
19063 #[doc = "UART2 reset"] 16379 #[doc = "Bank 1 sector erase selection number"]
19064 pub const fn lpuart12rst(&self) -> bool { 16380 pub const fn snb(&self) -> u8 {
16381 let val = (self.0 >> 8usize) & 0x07;
16382 val as u8
16383 }
16384 #[doc = "Bank 1 sector erase selection number"]
16385 pub fn set_snb(&mut self, val: u8) {
16386 self.0 = (self.0 & !(0x07 << 8usize)) | (((val as u32) & 0x07) << 8usize);
16387 }
16388 #[doc = "Bank 1 CRC control bit"]
16389 pub const fn crc_en(&self) -> bool {
16390 let val = (self.0 >> 15usize) & 0x01;
16391 val != 0
16392 }
16393 #[doc = "Bank 1 CRC control bit"]
16394 pub fn set_crc_en(&mut self, val: bool) {
16395 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize);
16396 }
16397 #[doc = "Bank 1 end-of-program interrupt control bit"]
16398 pub const fn eopie(&self) -> bool {
16399 let val = (self.0 >> 16usize) & 0x01;
16400 val != 0
16401 }
16402 #[doc = "Bank 1 end-of-program interrupt control bit"]
16403 pub fn set_eopie(&mut self, val: bool) {
16404 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
16405 }
16406 #[doc = "Bank 1 write protection error interrupt enable bit"]
16407 pub const fn wrperrie(&self) -> bool {
19065 let val = (self.0 >> 17usize) & 0x01; 16408 let val = (self.0 >> 17usize) & 0x01;
19066 val != 0 16409 val != 0
19067 } 16410 }
19068 #[doc = "UART2 reset"] 16411 #[doc = "Bank 1 write protection error interrupt enable bit"]
19069 pub fn set_lpuart12rst(&mut self, val: bool) { 16412 pub fn set_wrperrie(&mut self, val: bool) {
19070 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize); 16413 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
19071 } 16414 }
19072 #[doc = "LPUART1 reset"] 16415 #[doc = "Bank 1 programming sequence error interrupt enable bit"]
19073 pub const fn lpuart1rst(&self) -> bool { 16416 pub const fn pgserrie(&self) -> bool {
19074 let val = (self.0 >> 18usize) & 0x01; 16417 let val = (self.0 >> 18usize) & 0x01;
19075 val != 0 16418 val != 0
19076 } 16419 }
19077 #[doc = "LPUART1 reset"] 16420 #[doc = "Bank 1 programming sequence error interrupt enable bit"]
19078 pub fn set_lpuart1rst(&mut self, val: bool) { 16421 pub fn set_pgserrie(&mut self, val: bool) {
19079 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize); 16422 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize);
19080 } 16423 }
19081 #[doc = "USART4 reset"] 16424 #[doc = "Bank 1 strobe error interrupt enable bit"]
19082 pub const fn usart4rst(&self) -> bool { 16425 pub const fn strberrie(&self) -> bool {
19083 let val = (self.0 >> 19usize) & 0x01; 16426 let val = (self.0 >> 19usize) & 0x01;
19084 val != 0 16427 val != 0
19085 } 16428 }
19086 #[doc = "USART4 reset"] 16429 #[doc = "Bank 1 strobe error interrupt enable bit"]
19087 pub fn set_usart4rst(&mut self, val: bool) { 16430 pub fn set_strberrie(&mut self, val: bool) {
19088 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize); 16431 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize);
19089 } 16432 }
19090 #[doc = "USART5 reset"] 16433 #[doc = "Bank 1 inconsistency error interrupt enable bit"]
19091 pub const fn usart5rst(&self) -> bool { 16434 pub const fn incerrie(&self) -> bool {
19092 let val = (self.0 >> 20usize) & 0x01;
19093 val != 0
19094 }
19095 #[doc = "USART5 reset"]
19096 pub fn set_usart5rst(&mut self, val: bool) {
19097 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize);
19098 }
19099 #[doc = "I2C1 reset"]
19100 pub const fn i2c1rst(&self) -> bool {
19101 let val = (self.0 >> 21usize) & 0x01; 16435 let val = (self.0 >> 21usize) & 0x01;
19102 val != 0 16436 val != 0
19103 } 16437 }
19104 #[doc = "I2C1 reset"] 16438 #[doc = "Bank 1 inconsistency error interrupt enable bit"]
19105 pub fn set_i2c1rst(&mut self, val: bool) { 16439 pub fn set_incerrie(&mut self, val: bool) {
19106 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize); 16440 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
19107 } 16441 }
19108 #[doc = "I2C2 reset"] 16442 #[doc = "Bank 1 write/erase error interrupt enable bit"]
19109 pub const fn i2c2rst(&self) -> bool { 16443 pub const fn operrie(&self) -> bool {
19110 let val = (self.0 >> 22usize) & 0x01; 16444 let val = (self.0 >> 22usize) & 0x01;
19111 val != 0 16445 val != 0
19112 } 16446 }
19113 #[doc = "I2C2 reset"] 16447 #[doc = "Bank 1 write/erase error interrupt enable bit"]
19114 pub fn set_i2c2rst(&mut self, val: bool) { 16448 pub fn set_operrie(&mut self, val: bool) {
19115 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize); 16449 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
19116 } 16450 }
19117 #[doc = "USB reset"] 16451 #[doc = "Bank 1 read protection error interrupt enable bit"]
19118 pub const fn usbrst(&self) -> bool { 16452 pub const fn rdperrie(&self) -> bool {
19119 let val = (self.0 >> 23usize) & 0x01; 16453 let val = (self.0 >> 23usize) & 0x01;
19120 val != 0 16454 val != 0
19121 } 16455 }
19122 #[doc = "USB reset"] 16456 #[doc = "Bank 1 read protection error interrupt enable bit"]
19123 pub fn set_usbrst(&mut self, val: bool) { 16457 pub fn set_rdperrie(&mut self, val: bool) {
19124 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize); 16458 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
19125 } 16459 }
19126 #[doc = "Clock recovery system reset"] 16460 #[doc = "Bank 1 secure error interrupt enable bit"]
19127 pub const fn crsrst(&self) -> bool { 16461 pub const fn rdserrie(&self) -> bool {
19128 let val = (self.0 >> 27usize) & 0x01; 16462 let val = (self.0 >> 24usize) & 0x01;
19129 val != 0 16463 val != 0
19130 } 16464 }
19131 #[doc = "Clock recovery system reset"] 16465 #[doc = "Bank 1 secure error interrupt enable bit"]
19132 pub fn set_crsrst(&mut self, val: bool) { 16466 pub fn set_rdserrie(&mut self, val: bool) {
19133 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize); 16467 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize);
19134 } 16468 }
19135 #[doc = "Power interface reset"] 16469 #[doc = "Bank 1 ECC single correction error interrupt enable bit"]
19136 pub const fn pwrrst(&self) -> bool { 16470 pub const fn sneccerrie(&self) -> bool {
19137 let val = (self.0 >> 28usize) & 0x01; 16471 let val = (self.0 >> 25usize) & 0x01;
19138 val != 0 16472 val != 0
19139 } 16473 }
19140 #[doc = "Power interface reset"] 16474 #[doc = "Bank 1 ECC single correction error interrupt enable bit"]
19141 pub fn set_pwrrst(&mut self, val: bool) { 16475 pub fn set_sneccerrie(&mut self, val: bool) {
19142 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize); 16476 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize);
19143 } 16477 }
19144 #[doc = "DAC interface reset"] 16478 #[doc = "Bank 1 ECC double detection error interrupt enable bit"]
19145 pub const fn dacrst(&self) -> bool { 16479 pub const fn dbeccerrie(&self) -> bool {
19146 let val = (self.0 >> 29usize) & 0x01; 16480 let val = (self.0 >> 26usize) & 0x01;
19147 val != 0 16481 val != 0
19148 } 16482 }
19149 #[doc = "DAC interface reset"] 16483 #[doc = "Bank 1 ECC double detection error interrupt enable bit"]
19150 pub fn set_dacrst(&mut self, val: bool) { 16484 pub fn set_dbeccerrie(&mut self, val: bool) {
19151 self.0 = (self.0 & !(0x01 << 29usize)) | (((val as u32) & 0x01) << 29usize); 16485 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
19152 } 16486 }
19153 #[doc = "I2C3 reset"] 16487 #[doc = "Bank 1 end of CRC calculation interrupt enable bit"]
19154 pub const fn i2c3rst(&self) -> bool { 16488 pub const fn crcendie(&self) -> bool {
19155 let val = (self.0 >> 30usize) & 0x01; 16489 let val = (self.0 >> 27usize) & 0x01;
19156 val != 0 16490 val != 0
19157 } 16491 }
19158 #[doc = "I2C3 reset"] 16492 #[doc = "Bank 1 end of CRC calculation interrupt enable bit"]
19159 pub fn set_i2c3rst(&mut self, val: bool) { 16493 pub fn set_crcendie(&mut self, val: bool) {
19160 self.0 = (self.0 & !(0x01 << 30usize)) | (((val as u32) & 0x01) << 30usize); 16494 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize);
19161 } 16495 }
19162 #[doc = "Low power timer reset"] 16496 }
19163 pub const fn lptim1rst(&self) -> bool { 16497 impl Default for Cr {
19164 let val = (self.0 >> 31usize) & 0x01; 16498 fn default() -> Cr {
16499 Cr(0)
16500 }
16501 }
16502 #[doc = "FLASH option clear control register"]
16503 #[repr(transparent)]
16504 #[derive(Copy, Clone, Eq, PartialEq)]
16505 pub struct Optccr(pub u32);
16506 impl Optccr {
16507 #[doc = "OPTCHANGEERR reset bit"]
16508 pub const fn clr_optchangeerr(&self) -> bool {
16509 let val = (self.0 >> 30usize) & 0x01;
19165 val != 0 16510 val != 0
19166 } 16511 }
19167 #[doc = "Low power timer reset"] 16512 #[doc = "OPTCHANGEERR reset bit"]
19168 pub fn set_lptim1rst(&mut self, val: bool) { 16513 pub fn set_clr_optchangeerr(&mut self, val: bool) {
19169 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize); 16514 self.0 = (self.0 & !(0x01 << 30usize)) | (((val as u32) & 0x01) << 30usize);
19170 } 16515 }
19171 } 16516 }
19172 impl Default for Apb1rstr { 16517 impl Default for Optccr {
19173 fn default() -> Apb1rstr { 16518 fn default() -> Optccr {
19174 Apb1rstr(0) 16519 Optccr(0)
19175 } 16520 }
19176 } 16521 }
19177 #[doc = "Clock configuration register"] 16522 #[doc = "FLASH CRC control register for bank 1"]
19178 #[repr(transparent)] 16523 #[repr(transparent)]
19179 #[derive(Copy, Clone, Eq, PartialEq)] 16524 #[derive(Copy, Clone, Eq, PartialEq)]
19180 pub struct Cfgr(pub u32); 16525 pub struct Crccr(pub u32);
19181 impl Cfgr { 16526 impl Crccr {
19182 #[doc = "System clock switch"] 16527 #[doc = "Bank 1 CRC sector number"]
19183 pub const fn sw(&self) -> super::vals::Sw { 16528 pub const fn crc_sect(&self) -> u8 {
19184 let val = (self.0 >> 0usize) & 0x03; 16529 let val = (self.0 >> 0usize) & 0x07;
19185 super::vals::Sw(val as u8) 16530 val as u8
19186 } 16531 }
19187 #[doc = "System clock switch"] 16532 #[doc = "Bank 1 CRC sector number"]
19188 pub fn set_sw(&mut self, val: super::vals::Sw) { 16533 pub fn set_crc_sect(&mut self, val: u8) {
19189 self.0 = (self.0 & !(0x03 << 0usize)) | (((val.0 as u32) & 0x03) << 0usize); 16534 self.0 = (self.0 & !(0x07 << 0usize)) | (((val as u32) & 0x07) << 0usize);
19190 } 16535 }
19191 #[doc = "System clock switch status"] 16536 #[doc = "Bank 1 CRC select bit"]
19192 pub const fn sws(&self) -> super::vals::Sws { 16537 pub const fn all_bank(&self) -> bool {
19193 let val = (self.0 >> 2usize) & 0x03; 16538 let val = (self.0 >> 7usize) & 0x01;
19194 super::vals::Sws(val as u8) 16539 val != 0
19195 } 16540 }
19196 #[doc = "System clock switch status"] 16541 #[doc = "Bank 1 CRC select bit"]
19197 pub fn set_sws(&mut self, val: super::vals::Sws) { 16542 pub fn set_all_bank(&mut self, val: bool) {
19198 self.0 = (self.0 & !(0x03 << 2usize)) | (((val.0 as u32) & 0x03) << 2usize); 16543 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
19199 } 16544 }
19200 #[doc = "AHB prescaler"] 16545 #[doc = "Bank 1 CRC sector mode select bit"]
19201 pub const fn hpre(&self) -> super::vals::Hpre { 16546 pub const fn crc_by_sect(&self) -> bool {
19202 let val = (self.0 >> 4usize) & 0x0f; 16547 let val = (self.0 >> 8usize) & 0x01;
19203 super::vals::Hpre(val as u8) 16548 val != 0
19204 } 16549 }
19205 #[doc = "AHB prescaler"] 16550 #[doc = "Bank 1 CRC sector mode select bit"]
19206 pub fn set_hpre(&mut self, val: super::vals::Hpre) { 16551 pub fn set_crc_by_sect(&mut self, val: bool) {
19207 self.0 = (self.0 & !(0x0f << 4usize)) | (((val.0 as u32) & 0x0f) << 4usize); 16552 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
19208 } 16553 }
19209 #[doc = "APB low-speed prescaler (APB1)"] 16554 #[doc = "Bank 1 CRC sector select bit"]
19210 pub fn ppre(&self, n: usize) -> super::vals::Ppre { 16555 pub const fn add_sect(&self) -> bool {
19211 assert!(n < 2usize); 16556 let val = (self.0 >> 9usize) & 0x01;
19212 let offs = 8usize + n * 3usize; 16557 val != 0
19213 let val = (self.0 >> offs) & 0x07;
19214 super::vals::Ppre(val as u8)
19215 } 16558 }
19216 #[doc = "APB low-speed prescaler (APB1)"] 16559 #[doc = "Bank 1 CRC sector select bit"]
19217 pub fn set_ppre(&mut self, n: usize, val: super::vals::Ppre) { 16560 pub fn set_add_sect(&mut self, val: bool) {
19218 assert!(n < 2usize); 16561 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
19219 let offs = 8usize + n * 3usize;
19220 self.0 = (self.0 & !(0x07 << offs)) | (((val.0 as u32) & 0x07) << offs);
19221 } 16562 }
19222 #[doc = "Wake-up from stop clock selection"] 16563 #[doc = "Bank 1 CRC sector list clear bit"]
19223 pub const fn stopwuck(&self) -> super::vals::Stopwuck { 16564 pub const fn clean_sect(&self) -> bool {
19224 let val = (self.0 >> 15usize) & 0x01; 16565 let val = (self.0 >> 10usize) & 0x01;
19225 super::vals::Stopwuck(val as u8) 16566 val != 0
19226 } 16567 }
19227 #[doc = "Wake-up from stop clock selection"] 16568 #[doc = "Bank 1 CRC sector list clear bit"]
19228 pub fn set_stopwuck(&mut self, val: super::vals::Stopwuck) { 16569 pub fn set_clean_sect(&mut self, val: bool) {
19229 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize); 16570 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
19230 } 16571 }
19231 #[doc = "PLL entry clock source"] 16572 #[doc = "Bank 1 CRC start bit"]
19232 pub const fn pllsrc(&self) -> super::vals::Pllsrc { 16573 pub const fn start_crc(&self) -> bool {
19233 let val = (self.0 >> 16usize) & 0x01; 16574 let val = (self.0 >> 16usize) & 0x01;
19234 super::vals::Pllsrc(val as u8) 16575 val != 0
19235 }
19236 #[doc = "PLL entry clock source"]
19237 pub fn set_pllsrc(&mut self, val: super::vals::Pllsrc) {
19238 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
19239 }
19240 #[doc = "PLL multiplication factor"]
19241 pub const fn pllmul(&self) -> super::vals::Pllmul {
19242 let val = (self.0 >> 18usize) & 0x0f;
19243 super::vals::Pllmul(val as u8)
19244 }
19245 #[doc = "PLL multiplication factor"]
19246 pub fn set_pllmul(&mut self, val: super::vals::Pllmul) {
19247 self.0 = (self.0 & !(0x0f << 18usize)) | (((val.0 as u32) & 0x0f) << 18usize);
19248 }
19249 #[doc = "PLL output division"]
19250 pub const fn plldiv(&self) -> super::vals::Plldiv {
19251 let val = (self.0 >> 22usize) & 0x03;
19252 super::vals::Plldiv(val as u8)
19253 } 16576 }
19254 #[doc = "PLL output division"] 16577 #[doc = "Bank 1 CRC start bit"]
19255 pub fn set_plldiv(&mut self, val: super::vals::Plldiv) { 16578 pub fn set_start_crc(&mut self, val: bool) {
19256 self.0 = (self.0 & !(0x03 << 22usize)) | (((val.0 as u32) & 0x03) << 22usize); 16579 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
19257 } 16580 }
19258 #[doc = "Microcontroller clock output selection"] 16581 #[doc = "Bank 1 CRC clear bit"]
19259 pub const fn mcosel(&self) -> super::vals::Mcosel { 16582 pub const fn clean_crc(&self) -> bool {
19260 let val = (self.0 >> 24usize) & 0x0f; 16583 let val = (self.0 >> 17usize) & 0x01;
19261 super::vals::Mcosel(val as u8) 16584 val != 0
19262 } 16585 }
19263 #[doc = "Microcontroller clock output selection"] 16586 #[doc = "Bank 1 CRC clear bit"]
19264 pub fn set_mcosel(&mut self, val: super::vals::Mcosel) { 16587 pub fn set_clean_crc(&mut self, val: bool) {
19265 self.0 = (self.0 & !(0x0f << 24usize)) | (((val.0 as u32) & 0x0f) << 24usize); 16588 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
19266 } 16589 }
19267 #[doc = "Microcontroller clock output prescaler"] 16590 #[doc = "Bank 1 CRC burst size"]
19268 pub const fn mcopre(&self) -> super::vals::Mcopre { 16591 pub const fn crc_burst(&self) -> u8 {
19269 let val = (self.0 >> 28usize) & 0x07; 16592 let val = (self.0 >> 20usize) & 0x03;
19270 super::vals::Mcopre(val as u8) 16593 val as u8
19271 } 16594 }
19272 #[doc = "Microcontroller clock output prescaler"] 16595 #[doc = "Bank 1 CRC burst size"]
19273 pub fn set_mcopre(&mut self, val: super::vals::Mcopre) { 16596 pub fn set_crc_burst(&mut self, val: u8) {
19274 self.0 = (self.0 & !(0x07 << 28usize)) | (((val.0 as u32) & 0x07) << 28usize); 16597 self.0 = (self.0 & !(0x03 << 20usize)) | (((val as u32) & 0x03) << 20usize);
19275 } 16598 }
19276 } 16599 }
19277 impl Default for Cfgr { 16600 impl Default for Crccr {
19278 fn default() -> Cfgr { 16601 fn default() -> Crccr {
19279 Cfgr(0) 16602 Crccr(0)
19280 } 16603 }
19281 } 16604 }
19282 #[doc = "APB2 peripheral reset register"] 16605 #[doc = "FLASH clear control register for bank 1"]
19283 #[repr(transparent)] 16606 #[repr(transparent)]
19284 #[derive(Copy, Clone, Eq, PartialEq)] 16607 #[derive(Copy, Clone, Eq, PartialEq)]
19285 pub struct Apb2rstr(pub u32); 16608 pub struct Ccr(pub u32);
19286 impl Apb2rstr { 16609 impl Ccr {
19287 #[doc = "System configuration controller reset"] 16610 #[doc = "Bank 1 EOP1 flag clear bit"]
19288 pub const fn syscfgrst(&self) -> bool { 16611 pub const fn clr_eop(&self) -> bool {
19289 let val = (self.0 >> 0usize) & 0x01; 16612 let val = (self.0 >> 16usize) & 0x01;
19290 val != 0 16613 val != 0
19291 } 16614 }
19292 #[doc = "System configuration controller reset"] 16615 #[doc = "Bank 1 EOP1 flag clear bit"]
19293 pub fn set_syscfgrst(&mut self, val: bool) { 16616 pub fn set_clr_eop(&mut self, val: bool) {
19294 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 16617 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
19295 } 16618 }
19296 #[doc = "TIM21 timer reset"] 16619 #[doc = "Bank 1 WRPERR1 flag clear bit"]
19297 pub const fn tim21rst(&self) -> bool { 16620 pub const fn clr_wrperr(&self) -> bool {
19298 let val = (self.0 >> 2usize) & 0x01; 16621 let val = (self.0 >> 17usize) & 0x01;
19299 val != 0 16622 val != 0
19300 } 16623 }
19301 #[doc = "TIM21 timer reset"] 16624 #[doc = "Bank 1 WRPERR1 flag clear bit"]
19302 pub fn set_tim21rst(&mut self, val: bool) { 16625 pub fn set_clr_wrperr(&mut self, val: bool) {
19303 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 16626 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
19304 } 16627 }
19305 #[doc = "TIM22 timer reset"] 16628 #[doc = "Bank 1 PGSERR1 flag clear bi"]
19306 pub const fn tim22rst(&self) -> bool { 16629 pub const fn clr_pgserr(&self) -> bool {
19307 let val = (self.0 >> 5usize) & 0x01; 16630 let val = (self.0 >> 18usize) & 0x01;
19308 val != 0 16631 val != 0
19309 } 16632 }
19310 #[doc = "TIM22 timer reset"] 16633 #[doc = "Bank 1 PGSERR1 flag clear bi"]
19311 pub fn set_tim22rst(&mut self, val: bool) { 16634 pub fn set_clr_pgserr(&mut self, val: bool) {
19312 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 16635 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize);
19313 } 16636 }
19314 #[doc = "ADC interface reset"] 16637 #[doc = "Bank 1 STRBERR1 flag clear bit"]
19315 pub const fn adcrst(&self) -> bool { 16638 pub const fn clr_strberr(&self) -> bool {
19316 let val = (self.0 >> 9usize) & 0x01; 16639 let val = (self.0 >> 19usize) & 0x01;
19317 val != 0 16640 val != 0
19318 } 16641 }
19319 #[doc = "ADC interface reset"] 16642 #[doc = "Bank 1 STRBERR1 flag clear bit"]
19320 pub fn set_adcrst(&mut self, val: bool) { 16643 pub fn set_clr_strberr(&mut self, val: bool) {
19321 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 16644 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize);
19322 } 16645 }
19323 #[doc = "SPI 1 reset"] 16646 #[doc = "Bank 1 INCERR1 flag clear bit"]
19324 pub const fn spi1rst(&self) -> bool { 16647 pub const fn clr_incerr(&self) -> bool {
19325 let val = (self.0 >> 12usize) & 0x01; 16648 let val = (self.0 >> 21usize) & 0x01;
19326 val != 0 16649 val != 0
19327 } 16650 }
19328 #[doc = "SPI 1 reset"] 16651 #[doc = "Bank 1 INCERR1 flag clear bit"]
19329 pub fn set_spi1rst(&mut self, val: bool) { 16652 pub fn set_clr_incerr(&mut self, val: bool) {
19330 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize); 16653 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
19331 } 16654 }
19332 #[doc = "USART1 reset"] 16655 #[doc = "Bank 1 OPERR1 flag clear bit"]
19333 pub const fn usart1rst(&self) -> bool { 16656 pub const fn clr_operr(&self) -> bool {
19334 let val = (self.0 >> 14usize) & 0x01; 16657 let val = (self.0 >> 22usize) & 0x01;
19335 val != 0 16658 val != 0
19336 } 16659 }
19337 #[doc = "USART1 reset"] 16660 #[doc = "Bank 1 OPERR1 flag clear bit"]
19338 pub fn set_usart1rst(&mut self, val: bool) { 16661 pub fn set_clr_operr(&mut self, val: bool) {
19339 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize); 16662 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
19340 } 16663 }
19341 #[doc = "DBG reset"] 16664 #[doc = "Bank 1 RDPERR1 flag clear bit"]
19342 pub const fn dbgrst(&self) -> bool { 16665 pub const fn clr_rdperr(&self) -> bool {
19343 let val = (self.0 >> 22usize) & 0x01; 16666 let val = (self.0 >> 23usize) & 0x01;
19344 val != 0 16667 val != 0
19345 } 16668 }
19346 #[doc = "DBG reset"] 16669 #[doc = "Bank 1 RDPERR1 flag clear bit"]
19347 pub fn set_dbgrst(&mut self, val: bool) { 16670 pub fn set_clr_rdperr(&mut self, val: bool) {
19348 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize); 16671 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
16672 }
16673 #[doc = "Bank 1 RDSERR1 flag clear bit"]
16674 pub const fn clr_rdserr(&self) -> bool {
16675 let val = (self.0 >> 24usize) & 0x01;
16676 val != 0
16677 }
16678 #[doc = "Bank 1 RDSERR1 flag clear bit"]
16679 pub fn set_clr_rdserr(&mut self, val: bool) {
16680 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize);
16681 }
16682 #[doc = "Bank 1 SNECCERR1 flag clear bit"]
16683 pub const fn clr_sneccerr(&self) -> bool {
16684 let val = (self.0 >> 25usize) & 0x01;
16685 val != 0
16686 }
16687 #[doc = "Bank 1 SNECCERR1 flag clear bit"]
16688 pub fn set_clr_sneccerr(&mut self, val: bool) {
16689 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize);
16690 }
16691 #[doc = "Bank 1 DBECCERR1 flag clear bit"]
16692 pub const fn clr_dbeccerr(&self) -> bool {
16693 let val = (self.0 >> 26usize) & 0x01;
16694 val != 0
16695 }
16696 #[doc = "Bank 1 DBECCERR1 flag clear bit"]
16697 pub fn set_clr_dbeccerr(&mut self, val: bool) {
16698 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
16699 }
16700 #[doc = "Bank 1 CRCEND1 flag clear bit"]
16701 pub const fn clr_crcend(&self) -> bool {
16702 let val = (self.0 >> 27usize) & 0x01;
16703 val != 0
16704 }
16705 #[doc = "Bank 1 CRCEND1 flag clear bit"]
16706 pub fn set_clr_crcend(&mut self, val: bool) {
16707 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize);
19349 } 16708 }
19350 } 16709 }
19351 impl Default for Apb2rstr { 16710 impl Default for Ccr {
19352 fn default() -> Apb2rstr { 16711 fn default() -> Ccr {
19353 Apb2rstr(0) 16712 Ccr(0)
19354 } 16713 }
19355 } 16714 }
19356 #[doc = "APB2 peripheral clock enable register"] 16715 #[doc = "FLASH ECC fail address for bank 1"]
19357 #[repr(transparent)] 16716 #[repr(transparent)]
19358 #[derive(Copy, Clone, Eq, PartialEq)] 16717 #[derive(Copy, Clone, Eq, PartialEq)]
19359 pub struct Apb2enr(pub u32); 16718 pub struct Far(pub u32);
19360 impl Apb2enr { 16719 impl Far {
19361 #[doc = "System configuration controller clock enable bit"] 16720 #[doc = "Bank 1 ECC error address"]
19362 pub const fn syscfgen(&self) -> super::vals::Dbgen { 16721 pub const fn fail_ecc_addr(&self) -> u16 {
19363 let val = (self.0 >> 0usize) & 0x01; 16722 let val = (self.0 >> 0usize) & 0x7fff;
19364 super::vals::Dbgen(val as u8) 16723 val as u16
19365 }
19366 #[doc = "System configuration controller clock enable bit"]
19367 pub fn set_syscfgen(&mut self, val: super::vals::Dbgen) {
19368 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
19369 }
19370 #[doc = "TIM21 timer clock enable bit"]
19371 pub const fn tim21en(&self) -> super::vals::Dbgen {
19372 let val = (self.0 >> 2usize) & 0x01;
19373 super::vals::Dbgen(val as u8)
19374 }
19375 #[doc = "TIM21 timer clock enable bit"]
19376 pub fn set_tim21en(&mut self, val: super::vals::Dbgen) {
19377 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
19378 } 16724 }
19379 #[doc = "TIM22 timer clock enable bit"] 16725 #[doc = "Bank 1 ECC error address"]
19380 pub const fn tim22en(&self) -> super::vals::Dbgen { 16726 pub fn set_fail_ecc_addr(&mut self, val: u16) {
19381 let val = (self.0 >> 5usize) & 0x01; 16727 self.0 = (self.0 & !(0x7fff << 0usize)) | (((val as u32) & 0x7fff) << 0usize);
19382 super::vals::Dbgen(val as u8)
19383 } 16728 }
19384 #[doc = "TIM22 timer clock enable bit"] 16729 }
19385 pub fn set_tim22en(&mut self, val: super::vals::Dbgen) { 16730 impl Default for Far {
19386 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 16731 fn default() -> Far {
16732 Far(0)
19387 } 16733 }
19388 #[doc = "MiFaRe Firewall clock enable bit"] 16734 }
19389 pub const fn mifien(&self) -> super::vals::Dbgen { 16735 #[doc = "FLASH register with boot address"]
19390 let val = (self.0 >> 7usize) & 0x01; 16736 #[repr(transparent)]
19391 super::vals::Dbgen(val as u8) 16737 #[derive(Copy, Clone, Eq, PartialEq)]
16738 pub struct BootCurr(pub u32);
16739 impl BootCurr {
16740 #[doc = "Boot address 0"]
16741 pub const fn boot_add0(&self) -> u16 {
16742 let val = (self.0 >> 0usize) & 0xffff;
16743 val as u16
19392 } 16744 }
19393 #[doc = "MiFaRe Firewall clock enable bit"] 16745 #[doc = "Boot address 0"]
19394 pub fn set_mifien(&mut self, val: super::vals::Dbgen) { 16746 pub fn set_boot_add0(&mut self, val: u16) {
19395 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 16747 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
19396 } 16748 }
19397 #[doc = "ADC clock enable bit"] 16749 #[doc = "Boot address 1"]
19398 pub const fn adcen(&self) -> super::vals::Dbgen { 16750 pub const fn boot_add1(&self) -> u16 {
19399 let val = (self.0 >> 9usize) & 0x01; 16751 let val = (self.0 >> 16usize) & 0xffff;
19400 super::vals::Dbgen(val as u8) 16752 val as u16
19401 } 16753 }
19402 #[doc = "ADC clock enable bit"] 16754 #[doc = "Boot address 1"]
19403 pub fn set_adcen(&mut self, val: super::vals::Dbgen) { 16755 pub fn set_boot_add1(&mut self, val: u16) {
19404 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize); 16756 self.0 = (self.0 & !(0xffff << 16usize)) | (((val as u32) & 0xffff) << 16usize);
19405 } 16757 }
19406 #[doc = "SPI1 clock enable bit"] 16758 }
19407 pub const fn spi1en(&self) -> super::vals::Dbgen { 16759 impl Default for BootCurr {
19408 let val = (self.0 >> 12usize) & 0x01; 16760 fn default() -> BootCurr {
19409 super::vals::Dbgen(val as u8) 16761 BootCurr(0)
19410 } 16762 }
19411 #[doc = "SPI1 clock enable bit"] 16763 }
19412 pub fn set_spi1en(&mut self, val: super::vals::Dbgen) { 16764 #[doc = "FLASH CRC data register"]
19413 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize); 16765 #[repr(transparent)]
16766 #[derive(Copy, Clone, Eq, PartialEq)]
16767 pub struct Crcdatar(pub u32);
16768 impl Crcdatar {
16769 #[doc = "CRC result"]
16770 pub const fn crc_data(&self) -> u32 {
16771 let val = (self.0 >> 0usize) & 0xffff_ffff;
16772 val as u32
19414 } 16773 }
19415 #[doc = "USART1 clock enable bit"] 16774 #[doc = "CRC result"]
19416 pub const fn usart1en(&self) -> super::vals::Dbgen { 16775 pub fn set_crc_data(&mut self, val: u32) {
19417 let val = (self.0 >> 14usize) & 0x01; 16776 self.0 =
19418 super::vals::Dbgen(val as u8) 16777 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
19419 } 16778 }
19420 #[doc = "USART1 clock enable bit"] 16779 }
19421 pub fn set_usart1en(&mut self, val: super::vals::Dbgen) { 16780 impl Default for Crcdatar {
19422 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 16781 fn default() -> Crcdatar {
16782 Crcdatar(0)
19423 } 16783 }
19424 #[doc = "DBG clock enable bit"] 16784 }
19425 pub const fn dbgen(&self) -> super::vals::Dbgen { 16785 #[doc = "FLASH option key register"]
19426 let val = (self.0 >> 22usize) & 0x01; 16786 #[repr(transparent)]
19427 super::vals::Dbgen(val as u8) 16787 #[derive(Copy, Clone, Eq, PartialEq)]
16788 pub struct Optkeyr(pub u32);
16789 impl Optkeyr {
16790 #[doc = "Unlock key option bytes"]
16791 pub const fn optkeyr(&self) -> u32 {
16792 let val = (self.0 >> 0usize) & 0xffff_ffff;
16793 val as u32
19428 } 16794 }
19429 #[doc = "DBG clock enable bit"] 16795 #[doc = "Unlock key option bytes"]
19430 pub fn set_dbgen(&mut self, val: super::vals::Dbgen) { 16796 pub fn set_optkeyr(&mut self, val: u32) {
19431 self.0 = (self.0 & !(0x01 << 22usize)) | (((val.0 as u32) & 0x01) << 22usize); 16797 self.0 =
16798 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
19432 } 16799 }
19433 } 16800 }
19434 impl Default for Apb2enr { 16801 impl Default for Optkeyr {
19435 fn default() -> Apb2enr { 16802 fn default() -> Optkeyr {
19436 Apb2enr(0) 16803 Optkeyr(0)
19437 } 16804 }
19438 } 16805 }
19439 #[doc = "AHB peripheral clock enable in sleep mode register"] 16806 #[doc = "FLASH secure address for bank 1"]
19440 #[repr(transparent)] 16807 #[repr(transparent)]
19441 #[derive(Copy, Clone, Eq, PartialEq)] 16808 #[derive(Copy, Clone, Eq, PartialEq)]
19442 pub struct Ahbsmenr(pub u32); 16809 pub struct ScarPrg(pub u32);
19443 impl Ahbsmenr { 16810 impl ScarPrg {
19444 #[doc = "DMA clock enable during sleep mode bit"] 16811 #[doc = "Bank 1 lowest secure protected address configuration"]
19445 pub const fn dmasmen(&self) -> super::vals::Dmasmen { 16812 pub const fn sec_area_start(&self) -> u16 {
19446 let val = (self.0 >> 0usize) & 0x01; 16813 let val = (self.0 >> 0usize) & 0x0fff;
19447 super::vals::Dmasmen(val as u8) 16814 val as u16
19448 } 16815 }
19449 #[doc = "DMA clock enable during sleep mode bit"] 16816 #[doc = "Bank 1 lowest secure protected address configuration"]
19450 pub fn set_dmasmen(&mut self, val: super::vals::Dmasmen) { 16817 pub fn set_sec_area_start(&mut self, val: u16) {
19451 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 16818 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize);
19452 } 16819 }
19453 #[doc = "NVM interface clock enable during sleep mode bit"] 16820 #[doc = "Bank 1 highest secure protected address configuration"]
19454 pub const fn mifsmen(&self) -> super::vals::Mifsmen { 16821 pub const fn sec_area_end(&self) -> u16 {
19455 let val = (self.0 >> 8usize) & 0x01; 16822 let val = (self.0 >> 16usize) & 0x0fff;
19456 super::vals::Mifsmen(val as u8) 16823 val as u16
19457 } 16824 }
19458 #[doc = "NVM interface clock enable during sleep mode bit"] 16825 #[doc = "Bank 1 highest secure protected address configuration"]
19459 pub fn set_mifsmen(&mut self, val: super::vals::Mifsmen) { 16826 pub fn set_sec_area_end(&mut self, val: u16) {
19460 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize); 16827 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize);
19461 } 16828 }
19462 #[doc = "SRAM interface clock enable during sleep mode bit"] 16829 #[doc = "Bank 1 secure protected erase enable option configuration bit"]
19463 pub const fn sramsmen(&self) -> super::vals::Sramsmen { 16830 pub const fn dmes(&self) -> bool {
19464 let val = (self.0 >> 9usize) & 0x01; 16831 let val = (self.0 >> 31usize) & 0x01;
19465 super::vals::Sramsmen(val as u8) 16832 val != 0
19466 } 16833 }
19467 #[doc = "SRAM interface clock enable during sleep mode bit"] 16834 #[doc = "Bank 1 secure protected erase enable option configuration bit"]
19468 pub fn set_sramsmen(&mut self, val: super::vals::Sramsmen) { 16835 pub fn set_dmes(&mut self, val: bool) {
19469 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize); 16836 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize);
19470 } 16837 }
19471 #[doc = "CRC clock enable during sleep mode bit"] 16838 }
19472 pub const fn crcsmen(&self) -> super::vals::Crcsmen { 16839 impl Default for ScarPrg {
19473 let val = (self.0 >> 12usize) & 0x01; 16840 fn default() -> ScarPrg {
19474 super::vals::Crcsmen(val as u8) 16841 ScarPrg(0)
19475 } 16842 }
19476 #[doc = "CRC clock enable during sleep mode bit"] 16843 }
19477 pub fn set_crcsmen(&mut self, val: super::vals::Crcsmen) { 16844 #[doc = "FLASH key register for bank 1"]
19478 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize); 16845 #[repr(transparent)]
16846 #[derive(Copy, Clone, Eq, PartialEq)]
16847 pub struct Keyr(pub u32);
16848 impl Keyr {
16849 #[doc = "Bank 1 access configuration unlock key"]
16850 pub const fn keyr(&self) -> u32 {
16851 let val = (self.0 >> 0usize) & 0xffff_ffff;
16852 val as u32
19479 } 16853 }
19480 #[doc = "Touch Sensing clock enable during sleep mode bit"] 16854 #[doc = "Bank 1 access configuration unlock key"]
19481 pub const fn touchsmen(&self) -> bool { 16855 pub fn set_keyr(&mut self, val: u32) {
19482 let val = (self.0 >> 16usize) & 0x01; 16856 self.0 =
19483 val != 0 16857 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
19484 } 16858 }
19485 #[doc = "Touch Sensing clock enable during sleep mode bit"] 16859 }
19486 pub fn set_touchsmen(&mut self, val: bool) { 16860 impl Default for Keyr {
19487 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 16861 fn default() -> Keyr {
16862 Keyr(0)
19488 } 16863 }
19489 #[doc = "Random Number Generator clock enable during sleep mode bit"] 16864 }
19490 pub const fn rngsmen(&self) -> bool { 16865 #[doc = "Access control register"]
19491 let val = (self.0 >> 20usize) & 0x01; 16866 #[repr(transparent)]
19492 val != 0 16867 #[derive(Copy, Clone, Eq, PartialEq)]
16868 pub struct Acr(pub u32);
16869 impl Acr {
16870 #[doc = "Read latency"]
16871 pub const fn latency(&self) -> u8 {
16872 let val = (self.0 >> 0usize) & 0x07;
16873 val as u8
19493 } 16874 }
19494 #[doc = "Random Number Generator clock enable during sleep mode bit"] 16875 #[doc = "Read latency"]
19495 pub fn set_rngsmen(&mut self, val: bool) { 16876 pub fn set_latency(&mut self, val: u8) {
19496 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize); 16877 self.0 = (self.0 & !(0x07 << 0usize)) | (((val as u32) & 0x07) << 0usize);
19497 } 16878 }
19498 #[doc = "Crypto clock enable during sleep mode bit"] 16879 #[doc = "Flash signal delay"]
19499 pub const fn crypsmen(&self) -> super::vals::Crypsmen { 16880 pub const fn wrhighfreq(&self) -> u8 {
19500 let val = (self.0 >> 24usize) & 0x01; 16881 let val = (self.0 >> 4usize) & 0x03;
19501 super::vals::Crypsmen(val as u8) 16882 val as u8
19502 } 16883 }
19503 #[doc = "Crypto clock enable during sleep mode bit"] 16884 #[doc = "Flash signal delay"]
19504 pub fn set_crypsmen(&mut self, val: super::vals::Crypsmen) { 16885 pub fn set_wrhighfreq(&mut self, val: u8) {
19505 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize); 16886 self.0 = (self.0 & !(0x03 << 4usize)) | (((val as u32) & 0x03) << 4usize);
19506 } 16887 }
19507 } 16888 }
19508 impl Default for Ahbsmenr { 16889 impl Default for Acr {
19509 fn default() -> Ahbsmenr { 16890 fn default() -> Acr {
19510 Ahbsmenr(0) 16891 Acr(0)
19511 } 16892 }
19512 } 16893 }
19513 #[doc = "Clock control register"] 16894 #[doc = "FLASH status register for bank 1"]
19514 #[repr(transparent)] 16895 #[repr(transparent)]
19515 #[derive(Copy, Clone, Eq, PartialEq)] 16896 #[derive(Copy, Clone, Eq, PartialEq)]
19516 pub struct Cr(pub u32); 16897 pub struct Sr(pub u32);
19517 impl Cr { 16898 impl Sr {
19518 #[doc = "16 MHz high-speed internal clock enable"] 16899 #[doc = "Bank 1 ongoing program flag"]
19519 pub const fn hsi16on(&self) -> super::vals::Pllon { 16900 pub const fn bsy(&self) -> bool {
19520 let val = (self.0 >> 0usize) & 0x01; 16901 let val = (self.0 >> 0usize) & 0x01;
19521 super::vals::Pllon(val as u8) 16902 val != 0
19522 } 16903 }
19523 #[doc = "16 MHz high-speed internal clock enable"] 16904 #[doc = "Bank 1 ongoing program flag"]
19524 pub fn set_hsi16on(&mut self, val: super::vals::Pllon) { 16905 pub fn set_bsy(&mut self, val: bool) {
19525 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 16906 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
19526 } 16907 }
19527 #[doc = "High-speed internal clock enable bit for some IP kernels"] 16908 #[doc = "Bank 1 write buffer not empty flag"]
19528 pub const fn hsi16keron(&self) -> super::vals::Pllon { 16909 pub const fn wbne(&self) -> bool {
19529 let val = (self.0 >> 1usize) & 0x01; 16910 let val = (self.0 >> 1usize) & 0x01;
19530 super::vals::Pllon(val as u8) 16911 val != 0
19531 } 16912 }
19532 #[doc = "High-speed internal clock enable bit for some IP kernels"] 16913 #[doc = "Bank 1 write buffer not empty flag"]
19533 pub fn set_hsi16keron(&mut self, val: super::vals::Pllon) { 16914 pub fn set_wbne(&mut self, val: bool) {
19534 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 16915 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
19535 } 16916 }
19536 #[doc = "Internal high-speed clock ready flag"] 16917 #[doc = "Bank 1 wait queue flag"]
19537 pub const fn hsi16rdyf(&self) -> bool { 16918 pub const fn qw(&self) -> bool {
19538 let val = (self.0 >> 2usize) & 0x01; 16919 let val = (self.0 >> 2usize) & 0x01;
19539 val != 0 16920 val != 0
19540 } 16921 }
19541 #[doc = "Internal high-speed clock ready flag"] 16922 #[doc = "Bank 1 wait queue flag"]
19542 pub fn set_hsi16rdyf(&mut self, val: bool) { 16923 pub fn set_qw(&mut self, val: bool) {
19543 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 16924 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
19544 } 16925 }
19545 #[doc = "HSI16DIVEN"] 16926 #[doc = "Bank 1 CRC busy flag"]
19546 pub const fn hsi16diven(&self) -> super::vals::Hsidiven { 16927 pub const fn crc_busy(&self) -> bool {
19547 let val = (self.0 >> 3usize) & 0x01; 16928 let val = (self.0 >> 3usize) & 0x01;
19548 super::vals::Hsidiven(val as u8) 16929 val != 0
19549 } 16930 }
19550 #[doc = "HSI16DIVEN"] 16931 #[doc = "Bank 1 CRC busy flag"]
19551 pub fn set_hsi16diven(&mut self, val: super::vals::Hsidiven) { 16932 pub fn set_crc_busy(&mut self, val: bool) {
19552 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize); 16933 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
19553 } 16934 }
19554 #[doc = "HSI16DIVF"] 16935 #[doc = "Bank 1 end-of-program flag"]
19555 pub const fn hsi16divf(&self) -> bool { 16936 pub const fn eop(&self) -> bool {
19556 let val = (self.0 >> 4usize) & 0x01; 16937 let val = (self.0 >> 16usize) & 0x01;
19557 val != 0 16938 val != 0
19558 } 16939 }
19559 #[doc = "HSI16DIVF"] 16940 #[doc = "Bank 1 end-of-program flag"]
19560 pub fn set_hsi16divf(&mut self, val: bool) { 16941 pub fn set_eop(&mut self, val: bool) {
19561 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 16942 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
19562 } 16943 }
19563 #[doc = "16 MHz high-speed internal clock output enable"] 16944 #[doc = "Bank 1 write protection error flag"]
19564 pub const fn hsi16outen(&self) -> super::vals::Hsiouten { 16945 pub const fn wrperr(&self) -> bool {
19565 let val = (self.0 >> 5usize) & 0x01; 16946 let val = (self.0 >> 17usize) & 0x01;
19566 super::vals::Hsiouten(val as u8) 16947 val != 0
19567 } 16948 }
19568 #[doc = "16 MHz high-speed internal clock output enable"] 16949 #[doc = "Bank 1 write protection error flag"]
19569 pub fn set_hsi16outen(&mut self, val: super::vals::Hsiouten) { 16950 pub fn set_wrperr(&mut self, val: bool) {
19570 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 16951 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
19571 } 16952 }
19572 #[doc = "MSI clock enable bit"] 16953 #[doc = "Bank 1 programming sequence error flag"]
19573 pub const fn msion(&self) -> super::vals::Pllon { 16954 pub const fn pgserr(&self) -> bool {
19574 let val = (self.0 >> 8usize) & 0x01; 16955 let val = (self.0 >> 18usize) & 0x01;
19575 super::vals::Pllon(val as u8) 16956 val != 0
19576 } 16957 }
19577 #[doc = "MSI clock enable bit"] 16958 #[doc = "Bank 1 programming sequence error flag"]
19578 pub fn set_msion(&mut self, val: super::vals::Pllon) { 16959 pub fn set_pgserr(&mut self, val: bool) {
19579 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize); 16960 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize);
19580 } 16961 }
19581 #[doc = "MSI clock ready flag"] 16962 #[doc = "Bank 1 strobe error flag"]
19582 pub const fn msirdy(&self) -> bool { 16963 pub const fn strberr(&self) -> bool {
19583 let val = (self.0 >> 9usize) & 0x01; 16964 let val = (self.0 >> 19usize) & 0x01;
19584 val != 0 16965 val != 0
19585 } 16966 }
19586 #[doc = "MSI clock ready flag"] 16967 #[doc = "Bank 1 strobe error flag"]
19587 pub fn set_msirdy(&mut self, val: bool) { 16968 pub fn set_strberr(&mut self, val: bool) {
19588 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 16969 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize);
19589 } 16970 }
19590 #[doc = "HSE clock enable bit"] 16971 #[doc = "Bank 1 inconsistency error flag"]
19591 pub const fn hseon(&self) -> super::vals::Pllon { 16972 pub const fn incerr(&self) -> bool {
19592 let val = (self.0 >> 16usize) & 0x01; 16973 let val = (self.0 >> 21usize) & 0x01;
19593 super::vals::Pllon(val as u8) 16974 val != 0
19594 } 16975 }
19595 #[doc = "HSE clock enable bit"] 16976 #[doc = "Bank 1 inconsistency error flag"]
19596 pub fn set_hseon(&mut self, val: super::vals::Pllon) { 16977 pub fn set_incerr(&mut self, val: bool) {
19597 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize); 16978 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
19598 } 16979 }
19599 #[doc = "HSE clock ready flag"] 16980 #[doc = "Bank 1 write/erase error flag"]
19600 pub const fn hserdy(&self) -> bool { 16981 pub const fn operr(&self) -> bool {
19601 let val = (self.0 >> 17usize) & 0x01; 16982 let val = (self.0 >> 22usize) & 0x01;
19602 val != 0 16983 val != 0
19603 } 16984 }
19604 #[doc = "HSE clock ready flag"] 16985 #[doc = "Bank 1 write/erase error flag"]
19605 pub fn set_hserdy(&mut self, val: bool) { 16986 pub fn set_operr(&mut self, val: bool) {
19606 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize); 16987 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
19607 } 16988 }
19608 #[doc = "HSE clock bypass bit"] 16989 #[doc = "Bank 1 read protection error flag"]
19609 pub const fn hsebyp(&self) -> super::vals::Hsebyp { 16990 pub const fn rdperr(&self) -> bool {
19610 let val = (self.0 >> 18usize) & 0x01; 16991 let val = (self.0 >> 23usize) & 0x01;
19611 super::vals::Hsebyp(val as u8) 16992 val != 0
19612 } 16993 }
19613 #[doc = "HSE clock bypass bit"] 16994 #[doc = "Bank 1 read protection error flag"]
19614 pub fn set_hsebyp(&mut self, val: super::vals::Hsebyp) { 16995 pub fn set_rdperr(&mut self, val: bool) {
19615 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize); 16996 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
19616 } 16997 }
19617 #[doc = "Clock security system on HSE enable bit"] 16998 #[doc = "Bank 1 secure error flag"]
19618 pub const fn csshseon(&self) -> super::vals::Pllon { 16999 pub const fn rdserr(&self) -> bool {
19619 let val = (self.0 >> 19usize) & 0x01; 17000 let val = (self.0 >> 24usize) & 0x01;
19620 super::vals::Pllon(val as u8) 17001 val != 0
19621 } 17002 }
19622 #[doc = "Clock security system on HSE enable bit"] 17003 #[doc = "Bank 1 secure error flag"]
19623 pub fn set_csshseon(&mut self, val: super::vals::Pllon) { 17004 pub fn set_rdserr(&mut self, val: bool) {
19624 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize); 17005 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize);
19625 } 17006 }
19626 #[doc = "TC/LCD prescaler"] 17007 #[doc = "Bank 1 single correction error flag"]
19627 pub const fn rtcpre(&self) -> super::vals::Rtcpre { 17008 pub const fn sneccerr1(&self) -> bool {
19628 let val = (self.0 >> 20usize) & 0x03; 17009 let val = (self.0 >> 25usize) & 0x01;
19629 super::vals::Rtcpre(val as u8) 17010 val != 0
19630 } 17011 }
19631 #[doc = "TC/LCD prescaler"] 17012 #[doc = "Bank 1 single correction error flag"]
19632 pub fn set_rtcpre(&mut self, val: super::vals::Rtcpre) { 17013 pub fn set_sneccerr1(&mut self, val: bool) {
19633 self.0 = (self.0 & !(0x03 << 20usize)) | (((val.0 as u32) & 0x03) << 20usize); 17014 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize);
19634 } 17015 }
19635 #[doc = "PLL enable bit"] 17016 #[doc = "Bank 1 ECC double detection error flag"]
19636 pub const fn pllon(&self) -> super::vals::Pllon { 17017 pub const fn dbeccerr(&self) -> bool {
19637 let val = (self.0 >> 24usize) & 0x01; 17018 let val = (self.0 >> 26usize) & 0x01;
19638 super::vals::Pllon(val as u8) 17019 val != 0
19639 } 17020 }
19640 #[doc = "PLL enable bit"] 17021 #[doc = "Bank 1 ECC double detection error flag"]
19641 pub fn set_pllon(&mut self, val: super::vals::Pllon) { 17022 pub fn set_dbeccerr(&mut self, val: bool) {
19642 self.0 = (self.0 & !(0x01 << 24usize)) | (((val.0 as u32) & 0x01) << 24usize); 17023 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
19643 } 17024 }
19644 #[doc = "PLL clock ready flag"] 17025 #[doc = "Bank 1 CRC-complete flag"]
19645 pub const fn pllrdy(&self) -> bool { 17026 pub const fn crcend(&self) -> bool {
19646 let val = (self.0 >> 25usize) & 0x01; 17027 let val = (self.0 >> 27usize) & 0x01;
19647 val != 0 17028 val != 0
19648 } 17029 }
19649 #[doc = "PLL clock ready flag"] 17030 #[doc = "Bank 1 CRC-complete flag"]
19650 pub fn set_pllrdy(&mut self, val: bool) { 17031 pub fn set_crcend(&mut self, val: bool) {
19651 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize); 17032 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize);
19652 } 17033 }
19653 } 17034 }
19654 impl Default for Cr { 17035 impl Default for Sr {
19655 fn default() -> Cr { 17036 fn default() -> Sr {
19656 Cr(0) 17037 Sr(0)
19657 } 17038 }
19658 } 17039 }
19659 } 17040 #[doc = "FLASH protection address for bank 1"]
19660 pub mod vals {
19661 use crate::generic::*;
19662 #[repr(transparent)]
19663 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
19664 pub struct Lserdy(pub u8);
19665 impl Lserdy {
19666 #[doc = "Oscillator not ready"]
19667 pub const NOTREADY: Self = Self(0);
19668 #[doc = "Oscillator ready"]
19669 pub const READY: Self = Self(0x01);
19670 }
19671 #[repr(transparent)]
19672 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
19673 pub struct Csslsed(pub u8);
19674 impl Csslsed {
19675 #[doc = "No failure detected on LSE (32 kHz oscillator)"]
19676 pub const NOFAILURE: Self = Self(0);
19677 #[doc = "Failure detected on LSE (32 kHz oscillator)"]
19678 pub const FAILURE: Self = Self(0x01);
19679 }
19680 #[repr(transparent)]
19681 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
19682 pub struct Hserdyr(pub u8);
19683 impl Hserdyr {
19684 #[doc = "Oscillator is not stable"]
19685 pub const NOTREADY: Self = Self(0);
19686 #[doc = "Oscillator is stable"]
19687 pub const READY: Self = Self(0x01);
19688 }
19689 #[repr(transparent)]
19690 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
19691 pub struct Csshsef(pub u8);
19692 impl Csshsef {
19693 #[doc = "No clock security interrupt caused by HSE clock failure"]
19694 pub const NOCLOCK: Self = Self(0);
19695 #[doc = "Clock security interrupt caused by HSE clock failure"]
19696 pub const CLOCK: Self = Self(0x01);
19697 }
19698 #[repr(transparent)]
19699 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
19700 pub struct Csslseon(pub u8);
19701 impl Csslseon {
19702 #[doc = "Oscillator OFF"]
19703 pub const OFF: Self = Self(0);
19704 #[doc = "Oscillator ON"]
19705 pub const ON: Self = Self(0x01);
19706 }
19707 #[repr(transparent)]
19708 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
19709 pub struct Mcosel(pub u8);
19710 impl Mcosel {
19711 #[doc = "No clock"]
19712 pub const NOCLOCK: Self = Self(0);
19713 #[doc = "SYSCLK clock selected"]
19714 pub const SYSCLK: Self = Self(0x01);
19715 #[doc = "HSI oscillator clock selected"]
19716 pub const HSI16: Self = Self(0x02);
19717 #[doc = "MSI oscillator clock selected"]
19718 pub const MSI: Self = Self(0x03);
19719 #[doc = "HSE oscillator clock selected"]
19720 pub const HSE: Self = Self(0x04);
19721 #[doc = "PLL clock selected"]
19722 pub const PLL: Self = Self(0x05);
19723 #[doc = "LSI oscillator clock selected"]
19724 pub const LSI: Self = Self(0x06);
19725 #[doc = "LSE oscillator clock selected"]
19726 pub const LSE: Self = Self(0x07);
19727 }
19728 #[repr(transparent)]
19729 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
19730 pub struct Hsiouten(pub u8);
19731 impl Hsiouten {
19732 #[doc = "HSI output clock disabled"]
19733 pub const DISABLED: Self = Self(0);
19734 #[doc = "HSI output clock enabled"]
19735 pub const ENABLED: Self = Self(0x01);
19736 }
19737 #[repr(transparent)]
19738 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
19739 pub struct Lptimen(pub u8);
19740 impl Lptimen {
19741 #[doc = "Clock disabled"]
19742 pub const DISABLED: Self = Self(0);
19743 #[doc = "Clock enabled"]
19744 pub const ENABLED: Self = Self(0x01);
19745 }
19746 #[repr(transparent)]
19747 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
19748 pub struct Hsidivfr(pub u8);
19749 impl Hsidivfr {
19750 #[doc = "16 MHz HSI clock not divided"]
19751 pub const NOTDIVIDED: Self = Self(0);
19752 #[doc = "16 MHz HSI clock divided by 4"]
19753 pub const DIV4: Self = Self(0x01);
19754 }
19755 #[repr(transparent)]
19756 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
19757 pub struct Csslsef(pub u8);
19758 impl Csslsef {
19759 #[doc = "No failure detected on LSE clock failure"]
19760 pub const NOFAILURE: Self = Self(0);
19761 #[doc = "Failure detected on LSE clock failure"]
19762 pub const FAILURE: Self = Self(0x01);
19763 }
19764 #[repr(transparent)]
19765 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
19766 pub struct Lptimsel(pub u8);
19767 impl Lptimsel {
19768 #[doc = "APB clock selected as Timer clock"]
19769 pub const APB: Self = Self(0);
19770 #[doc = "LSI clock selected as Timer clock"]
19771 pub const LSI: Self = Self(0x01);
19772 #[doc = "HSI16 clock selected as Timer clock"]
19773 pub const HSI16: Self = Self(0x02);
19774 #[doc = "LSE clock selected as Timer clock"]
19775 pub const LSE: Self = Self(0x03);
19776 }
19777 #[repr(transparent)] 17041 #[repr(transparent)]
19778 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17042 #[derive(Copy, Clone, Eq, PartialEq)]
19779 pub struct Rtcen(pub u8); 17043 pub struct PrarCur(pub u32);
19780 impl Rtcen { 17044 impl PrarCur {
19781 #[doc = "RTC clock disabled"] 17045 #[doc = "Bank 1 lowest PCROP protected address"]
19782 pub const DISABLED: Self = Self(0); 17046 pub const fn prot_area_start(&self) -> u16 {
19783 #[doc = "RTC clock enabled"] 17047 let val = (self.0 >> 0usize) & 0x0fff;
19784 pub const ENABLED: Self = Self(0x01); 17048 val as u16
17049 }
17050 #[doc = "Bank 1 lowest PCROP protected address"]
17051 pub fn set_prot_area_start(&mut self, val: u16) {
17052 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize);
17053 }
17054 #[doc = "Bank 1 highest PCROP protected address"]
17055 pub const fn prot_area_end(&self) -> u16 {
17056 let val = (self.0 >> 16usize) & 0x0fff;
17057 val as u16
17058 }
17059 #[doc = "Bank 1 highest PCROP protected address"]
17060 pub fn set_prot_area_end(&mut self, val: u16) {
17061 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize);
17062 }
17063 #[doc = "Bank 1 PCROP protected erase enable option status bit"]
17064 pub const fn dmep(&self) -> bool {
17065 let val = (self.0 >> 31usize) & 0x01;
17066 val != 0
17067 }
17068 #[doc = "Bank 1 PCROP protected erase enable option status bit"]
17069 pub fn set_dmep(&mut self, val: bool) {
17070 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize);
17071 }
19785 } 17072 }
19786 #[repr(transparent)] 17073 impl Default for PrarCur {
19787 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17074 fn default() -> PrarCur {
19788 pub struct Iophrst(pub u8); 17075 PrarCur(0)
19789 impl Iophrst { 17076 }
19790 #[doc = "Reset I/O port"]
19791 pub const RESET: Self = Self(0x01);
19792 } 17077 }
17078 #[doc = "FLASH register with boot address"]
19793 #[repr(transparent)] 17079 #[repr(transparent)]
19794 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17080 #[derive(Copy, Clone, Eq, PartialEq)]
19795 pub struct Hsirdyie(pub u8); 17081 pub struct BootPrgr(pub u32);
19796 impl Hsirdyie { 17082 impl BootPrgr {
19797 #[doc = "Ready interrupt disabled"] 17083 #[doc = "Boot address 0"]
19798 pub const DISABLED: Self = Self(0); 17084 pub const fn boot_add0(&self) -> u16 {
19799 #[doc = "Ready interrupt enabled"] 17085 let val = (self.0 >> 0usize) & 0xffff;
19800 pub const ENABLED: Self = Self(0x01); 17086 val as u16
17087 }
17088 #[doc = "Boot address 0"]
17089 pub fn set_boot_add0(&mut self, val: u16) {
17090 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
17091 }
17092 #[doc = "Boot address 1"]
17093 pub const fn boot_add1(&self) -> u16 {
17094 let val = (self.0 >> 16usize) & 0xffff;
17095 val as u16
17096 }
17097 #[doc = "Boot address 1"]
17098 pub fn set_boot_add1(&mut self, val: u16) {
17099 self.0 = (self.0 & !(0xffff << 16usize)) | (((val as u32) & 0xffff) << 16usize);
17100 }
19801 } 17101 }
19802 #[repr(transparent)] 17102 impl Default for BootPrgr {
19803 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17103 fn default() -> BootPrgr {
19804 pub struct Iophen(pub u8); 17104 BootPrgr(0)
19805 impl Iophen { 17105 }
19806 #[doc = "Port clock disabled"]
19807 pub const DISABLED: Self = Self(0);
19808 #[doc = "Port clock enabled"]
19809 pub const ENABLED: Self = Self(0x01);
19810 } 17106 }
17107 #[doc = "FLASH write sector protection for bank 1"]
19811 #[repr(transparent)] 17108 #[repr(transparent)]
19812 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17109 #[derive(Copy, Clone, Eq, PartialEq)]
19813 pub struct Csslse(pub u8); 17110 pub struct WpsnCurr(pub u32);
19814 impl Csslse { 17111 impl WpsnCurr {
19815 #[doc = "LSE CSS interrupt disabled"] 17112 #[doc = "Bank 1 sector write protection option status byte"]
19816 pub const DISABLED: Self = Self(0); 17113 pub const fn wrpsn(&self) -> u8 {
19817 #[doc = "LSE CSS interrupt enabled"] 17114 let val = (self.0 >> 0usize) & 0xff;
19818 pub const ENABLED: Self = Self(0x01); 17115 val as u8
17116 }
17117 #[doc = "Bank 1 sector write protection option status byte"]
17118 pub fn set_wrpsn(&mut self, val: u8) {
17119 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
17120 }
19819 } 17121 }
19820 #[repr(transparent)] 17122 impl Default for WpsnCurr {
19821 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17123 fn default() -> WpsnCurr {
19822 pub struct Rtcrstw(pub u8); 17124 WpsnCurr(0)
19823 impl Rtcrstw { 17125 }
19824 #[doc = "Resets the RTC peripheral"]
19825 pub const RESET: Self = Self(0x01);
19826 } 17126 }
17127 #[doc = "FLASH secure address for bank 1"]
19827 #[repr(transparent)] 17128 #[repr(transparent)]
19828 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17129 #[derive(Copy, Clone, Eq, PartialEq)]
19829 pub struct Mifsmen(pub u8); 17130 pub struct ScarCur(pub u32);
19830 impl Mifsmen { 17131 impl ScarCur {
19831 #[doc = "NVM interface clock disabled in Sleep mode"] 17132 #[doc = "Bank 1 lowest secure protected address"]
19832 pub const DISABLED: Self = Self(0); 17133 pub const fn sec_area_start(&self) -> u16 {
19833 #[doc = "NVM interface clock enabled in Sleep mode"] 17134 let val = (self.0 >> 0usize) & 0x0fff;
19834 pub const ENABLED: Self = Self(0x01); 17135 val as u16
17136 }
17137 #[doc = "Bank 1 lowest secure protected address"]
17138 pub fn set_sec_area_start(&mut self, val: u16) {
17139 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize);
17140 }
17141 #[doc = "Bank 1 highest secure protected address"]
17142 pub const fn sec_area_end(&self) -> u16 {
17143 let val = (self.0 >> 16usize) & 0x0fff;
17144 val as u16
17145 }
17146 #[doc = "Bank 1 highest secure protected address"]
17147 pub fn set_sec_area_end(&mut self, val: u16) {
17148 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize);
17149 }
17150 #[doc = "Bank 1 secure protected erase enable option status bit"]
17151 pub const fn dmes(&self) -> bool {
17152 let val = (self.0 >> 31usize) & 0x01;
17153 val != 0
17154 }
17155 #[doc = "Bank 1 secure protected erase enable option status bit"]
17156 pub fn set_dmes(&mut self, val: bool) {
17157 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize);
17158 }
19835 } 17159 }
19836 #[repr(transparent)] 17160 impl Default for ScarCur {
19837 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17161 fn default() -> ScarCur {
19838 pub struct Dmasmen(pub u8); 17162 ScarCur(0)
19839 impl Dmasmen { 17163 }
19840 #[doc = "DMA clock disabled in Sleep mode"]
19841 pub const DISABLED: Self = Self(0);
19842 #[doc = "DMA clock enabled in Sleep mode"]
19843 pub const ENABLED: Self = Self(0x01);
19844 } 17164 }
17165 #[doc = "FLASH option control register"]
19845 #[repr(transparent)] 17166 #[repr(transparent)]
19846 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17167 #[derive(Copy, Clone, Eq, PartialEq)]
19847 pub struct Ppre(pub u8); 17168 pub struct Optcr(pub u32);
19848 impl Ppre { 17169 impl Optcr {
19849 #[doc = "HCLK not divided"] 17170 #[doc = "FLASH_OPTCR lock option configuration bit"]
19850 pub const DIV1: Self = Self(0); 17171 pub const fn optlock(&self) -> bool {
19851 #[doc = "HCLK divided by 2"] 17172 let val = (self.0 >> 0usize) & 0x01;
19852 pub const DIV2: Self = Self(0x04); 17173 val != 0
19853 #[doc = "HCLK divided by 4"] 17174 }
19854 pub const DIV4: Self = Self(0x05); 17175 #[doc = "FLASH_OPTCR lock option configuration bit"]
19855 #[doc = "HCLK divided by 8"] 17176 pub fn set_optlock(&mut self, val: bool) {
19856 pub const DIV8: Self = Self(0x06); 17177 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
19857 #[doc = "HCLK divided by 16"] 17178 }
19858 pub const DIV16: Self = Self(0x07); 17179 #[doc = "Option byte start change option configuration bit"]
17180 pub const fn optstart(&self) -> bool {
17181 let val = (self.0 >> 1usize) & 0x01;
17182 val != 0
17183 }
17184 #[doc = "Option byte start change option configuration bit"]
17185 pub fn set_optstart(&mut self, val: bool) {
17186 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
17187 }
17188 #[doc = "Flash mass erase enable bit"]
17189 pub const fn mer(&self) -> bool {
17190 let val = (self.0 >> 4usize) & 0x01;
17191 val != 0
17192 }
17193 #[doc = "Flash mass erase enable bit"]
17194 pub fn set_mer(&mut self, val: bool) {
17195 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
17196 }
17197 #[doc = "Option byte change error interrupt enable bit"]
17198 pub const fn optchangeerrie(&self) -> bool {
17199 let val = (self.0 >> 30usize) & 0x01;
17200 val != 0
17201 }
17202 #[doc = "Option byte change error interrupt enable bit"]
17203 pub fn set_optchangeerrie(&mut self, val: bool) {
17204 self.0 = (self.0 & !(0x01 << 30usize)) | (((val as u32) & 0x01) << 30usize);
17205 }
17206 #[doc = "Bank swapping configuration bit"]
17207 pub const fn swap_bank(&self) -> bool {
17208 let val = (self.0 >> 31usize) & 0x01;
17209 val != 0
17210 }
17211 #[doc = "Bank swapping configuration bit"]
17212 pub fn set_swap_bank(&mut self, val: bool) {
17213 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize);
17214 }
19859 } 17215 }
19860 #[repr(transparent)] 17216 impl Default for Optcr {
19861 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17217 fn default() -> Optcr {
19862 pub struct Lsedrv(pub u8); 17218 Optcr(0)
19863 impl Lsedrv { 17219 }
19864 #[doc = "Lowest drive"]
19865 pub const LOW: Self = Self(0);
19866 #[doc = "Medium low drive"]
19867 pub const MEDIUMLOW: Self = Self(0x01);
19868 #[doc = "Medium high drive"]
19869 pub const MEDIUMHIGH: Self = Self(0x02);
19870 #[doc = "Highest drive"]
19871 pub const HIGH: Self = Self(0x03);
19872 } 17220 }
17221 #[doc = "FLASH protection address for bank 1"]
19873 #[repr(transparent)] 17222 #[repr(transparent)]
19874 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17223 #[derive(Copy, Clone, Eq, PartialEq)]
19875 pub struct Hpre(pub u8); 17224 pub struct PrarPrg(pub u32);
19876 impl Hpre { 17225 impl PrarPrg {
19877 #[doc = "system clock not divided"] 17226 #[doc = "Bank 1 lowest PCROP protected address configuration"]
19878 pub const DIV1: Self = Self(0); 17227 pub const fn prot_area_start(&self) -> u16 {
19879 #[doc = "system clock divided by 2"] 17228 let val = (self.0 >> 0usize) & 0x0fff;
19880 pub const DIV2: Self = Self(0x08); 17229 val as u16
19881 #[doc = "system clock divided by 4"] 17230 }
19882 pub const DIV4: Self = Self(0x09); 17231 #[doc = "Bank 1 lowest PCROP protected address configuration"]
19883 #[doc = "system clock divided by 8"] 17232 pub fn set_prot_area_start(&mut self, val: u16) {
19884 pub const DIV8: Self = Self(0x0a); 17233 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize);
19885 #[doc = "system clock divided by 16"] 17234 }
19886 pub const DIV16: Self = Self(0x0b); 17235 #[doc = "Bank 1 highest PCROP protected address configuration"]
19887 #[doc = "system clock divided by 64"] 17236 pub const fn prot_area_end(&self) -> u16 {
19888 pub const DIV64: Self = Self(0x0c); 17237 let val = (self.0 >> 16usize) & 0x0fff;
19889 #[doc = "system clock divided by 128"] 17238 val as u16
19890 pub const DIV128: Self = Self(0x0d); 17239 }
19891 #[doc = "system clock divided by 256"] 17240 #[doc = "Bank 1 highest PCROP protected address configuration"]
19892 pub const DIV256: Self = Self(0x0e); 17241 pub fn set_prot_area_end(&mut self, val: u16) {
19893 #[doc = "system clock divided by 512"] 17242 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize);
19894 pub const DIV512: Self = Self(0x0f); 17243 }
17244 #[doc = "Bank 1 PCROP protected erase enable option configuration bit"]
17245 pub const fn dmep(&self) -> bool {
17246 let val = (self.0 >> 31usize) & 0x01;
17247 val != 0
17248 }
17249 #[doc = "Bank 1 PCROP protected erase enable option configuration bit"]
17250 pub fn set_dmep(&mut self, val: bool) {
17251 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize);
17252 }
19895 } 17253 }
19896 #[repr(transparent)] 17254 impl Default for PrarPrg {
19897 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17255 fn default() -> PrarPrg {
19898 pub struct Hsi16rdyfr(pub u8); 17256 PrarPrg(0)
19899 impl Hsi16rdyfr { 17257 }
19900 #[doc = "HSI 16 MHz oscillator not ready"]
19901 pub const NOTREADY: Self = Self(0);
19902 #[doc = "HSI 16 MHz oscillator ready"]
19903 pub const READY: Self = Self(0x01);
19904 } 17258 }
19905 #[repr(transparent)] 17259 }
19906 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17260}
19907 pub struct Lsebyp(pub u8); 17261pub mod spi_v2 {
19908 impl Lsebyp { 17262 use crate::generic::*;
19909 #[doc = "LSE oscillator not bypassed"] 17263 #[doc = "Serial peripheral interface"]
19910 pub const NOTBYPASSED: Self = Self(0); 17264 #[derive(Copy, Clone)]
19911 #[doc = "LSE oscillator bypassed"] 17265 pub struct Spi(pub *mut u8);
19912 pub const BYPASSED: Self = Self(0x01); 17266 unsafe impl Send for Spi {}
17267 unsafe impl Sync for Spi {}
17268 impl Spi {
17269 #[doc = "control register 1"]
17270 pub fn cr1(self) -> Reg<regs::Cr1, RW> {
17271 unsafe { Reg::from_ptr(self.0.add(0usize)) }
19913 } 17272 }
19914 #[repr(transparent)] 17273 #[doc = "control register 2"]
19915 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17274 pub fn cr2(self) -> Reg<regs::Cr2, RW> {
19916 pub struct Dbgsmen(pub u8); 17275 unsafe { Reg::from_ptr(self.0.add(4usize)) }
19917 impl Dbgsmen {
19918 #[doc = "Clock disabled"]
19919 pub const DISABLED: Self = Self(0);
19920 #[doc = "Clock enabled"]
19921 pub const ENABLED: Self = Self(0x01);
19922 } 17276 }
19923 #[repr(transparent)] 17277 #[doc = "status register"]
19924 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17278 pub fn sr(self) -> Reg<regs::Sr, RW> {
19925 pub struct Msirange(pub u8); 17279 unsafe { Reg::from_ptr(self.0.add(8usize)) }
19926 impl Msirange {
19927 #[doc = "range 0 around 65.536 kHz"]
19928 pub const RANGE0: Self = Self(0);
19929 #[doc = "range 1 around 131.072 kHz"]
19930 pub const RANGE1: Self = Self(0x01);
19931 #[doc = "range 2 around 262.144 kHz"]
19932 pub const RANGE2: Self = Self(0x02);
19933 #[doc = "range 3 around 524.288 kHz"]
19934 pub const RANGE3: Self = Self(0x03);
19935 #[doc = "range 4 around 1.048 MHz"]
19936 pub const RANGE4: Self = Self(0x04);
19937 #[doc = "range 5 around 2.097 MHz (reset value)"]
19938 pub const RANGE5: Self = Self(0x05);
19939 #[doc = "range 6 around 4.194 MHz"]
19940 pub const RANGE6: Self = Self(0x06);
19941 #[doc = "not allowed"]
19942 pub const RANGE7: Self = Self(0x07);
19943 } 17280 }
19944 #[repr(transparent)] 17281 #[doc = "data register"]
19945 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17282 pub fn dr(self) -> Reg<regs::Dr, RW> {
19946 pub struct Csshsecw(pub u8); 17283 unsafe { Reg::from_ptr(self.0.add(12usize)) }
19947 impl Csshsecw {
19948 #[doc = "Clear interrupt flag"]
19949 pub const CLEAR: Self = Self(0x01);
19950 } 17284 }
19951 #[repr(transparent)] 17285 #[doc = "CRC polynomial register"]
19952 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17286 pub fn crcpr(self) -> Reg<regs::Crcpr, RW> {
19953 pub struct Hsidiven(pub u8); 17287 unsafe { Reg::from_ptr(self.0.add(16usize)) }
19954 impl Hsidiven {
19955 #[doc = "no 16 MHz HSI division requested"]
19956 pub const NOTDIVIDED: Self = Self(0);
19957 #[doc = "16 MHz HSI division by 4 requested"]
19958 pub const DIV4: Self = Self(0x01);
19959 } 17288 }
19960 #[repr(transparent)] 17289 #[doc = "RX CRC register"]
19961 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17290 pub fn rxcrcr(self) -> Reg<regs::Rxcrcr, R> {
19962 pub struct Cryprstw(pub u8); 17291 unsafe { Reg::from_ptr(self.0.add(20usize)) }
19963 impl Cryprstw {
19964 #[doc = "Reset the module"]
19965 pub const RESET: Self = Self(0x01);
19966 } 17292 }
19967 #[repr(transparent)] 17293 #[doc = "TX CRC register"]
19968 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17294 pub fn txcrcr(self) -> Reg<regs::Txcrcr, R> {
19969 pub struct Sw(pub u8); 17295 unsafe { Reg::from_ptr(self.0.add(24usize)) }
19970 impl Sw {
19971 #[doc = "MSI oscillator used as system clock"]
19972 pub const MSI: Self = Self(0);
19973 #[doc = "HSI oscillator used as system clock"]
19974 pub const HSI16: Self = Self(0x01);
19975 #[doc = "HSE oscillator used as system clock"]
19976 pub const HSE: Self = Self(0x02);
19977 #[doc = "PLL used as system clock"]
19978 pub const PLL: Self = Self(0x03);
19979 } 17296 }
17297 }
17298 pub mod vals {
17299 use crate::generic::*;
19980 #[repr(transparent)] 17300 #[repr(transparent)]
19981 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17301 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
19982 pub struct Crypen(pub u8); 17302 pub struct LdmaTx(pub u8);
19983 impl Crypen { 17303 impl LdmaTx {
19984 #[doc = "Clock disabled"] 17304 #[doc = "Number of data to transfer for transmit is even"]
19985 pub const DISABLED: Self = Self(0); 17305 pub const EVEN: Self = Self(0);
19986 #[doc = "Clock enabled"] 17306 #[doc = "Number of data to transfer for transmit is odd"]
19987 pub const ENABLED: Self = Self(0x01); 17307 pub const ODD: Self = Self(0x01);
19988 } 17308 }
19989 #[repr(transparent)] 17309 #[repr(transparent)]
19990 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17310 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
19991 pub struct Dbgrstw(pub u8); 17311 pub struct LdmaRx(pub u8);
19992 impl Dbgrstw { 17312 impl LdmaRx {
19993 #[doc = "Reset the module"] 17313 #[doc = "Number of data to transfer for receive is even"]
19994 pub const RESET: Self = Self(0x01); 17314 pub const EVEN: Self = Self(0);
17315 #[doc = "Number of data to transfer for receive is odd"]
17316 pub const ODD: Self = Self(0x01);
19995 } 17317 }
19996 #[repr(transparent)] 17318 #[repr(transparent)]
19997 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17319 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
19998 pub struct Lpuartsel(pub u8); 17320 pub struct Crcl(pub u8);
19999 impl Lpuartsel { 17321 impl Crcl {
20000 #[doc = "APB clock selected as peripheral clock"] 17322 #[doc = "8-bit CRC length"]
20001 pub const APB: Self = Self(0); 17323 pub const EIGHTBIT: Self = Self(0);
20002 #[doc = "System clock selected as peripheral clock"] 17324 #[doc = "16-bit CRC length"]
20003 pub const SYSTEM: Self = Self(0x01); 17325 pub const SIXTEENBIT: Self = Self(0x01);
20004 #[doc = "HSI16 clock selected as peripheral clock"]
20005 pub const HSI16: Self = Self(0x02);
20006 #[doc = "LSE clock selected as peripheral clock"]
20007 pub const LSE: Self = Self(0x03);
20008 } 17326 }
20009 #[repr(transparent)] 17327 #[repr(transparent)]
20010 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17328 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20011 pub struct Plldiv(pub u8); 17329 pub struct Rxonly(pub u8);
20012 impl Plldiv { 17330 impl Rxonly {
20013 #[doc = "PLLVCO / 2"] 17331 #[doc = "Full duplex (Transmit and receive)"]
20014 pub const DIV2: Self = Self(0x01); 17332 pub const FULLDUPLEX: Self = Self(0);
20015 #[doc = "PLLVCO / 3"] 17333 #[doc = "Output disabled (Receive-only mode)"]
20016 pub const DIV3: Self = Self(0x02); 17334 pub const OUTPUTDISABLED: Self = Self(0x01);
20017 #[doc = "PLLVCO / 4"]
20018 pub const DIV4: Self = Self(0x03);
20019 } 17335 }
20020 #[repr(transparent)] 17336 #[repr(transparent)]
20021 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17337 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20022 pub struct Hsi48rdyfr(pub u8); 17338 pub struct Lsbfirst(pub u8);
20023 impl Hsi48rdyfr { 17339 impl Lsbfirst {
20024 #[doc = "No clock ready interrupt"] 17340 #[doc = "Data is transmitted/received with the MSB first"]
20025 pub const NOTINTERRUPTED: Self = Self(0); 17341 pub const MSBFIRST: Self = Self(0);
20026 #[doc = "Clock ready interrupt"] 17342 #[doc = "Data is transmitted/received with the LSB first"]
20027 pub const INTERRUPTED: Self = Self(0x01); 17343 pub const LSBFIRST: Self = Self(0x01);
20028 } 17344 }
20029 #[repr(transparent)] 17345 #[repr(transparent)]
20030 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17346 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20031 pub struct Sramsmen(pub u8); 17347 pub struct Ftlvlr(pub u8);
20032 impl Sramsmen { 17348 impl Ftlvlr {
20033 #[doc = "NVM interface clock disabled in Sleep mode"] 17349 #[doc = "Tx FIFO Empty"]
20034 pub const DISABLED: Self = Self(0); 17350 pub const EMPTY: Self = Self(0);
20035 #[doc = "NVM interface clock enabled in Sleep mode"] 17351 #[doc = "Tx 1/4 FIFO"]
20036 pub const ENABLED: Self = Self(0x01); 17352 pub const QUARTER: Self = Self(0x01);
17353 #[doc = "Tx 1/2 FIFO"]
17354 pub const HALF: Self = Self(0x02);
17355 #[doc = "Tx FIFO full"]
17356 pub const FULL: Self = Self(0x03);
20037 } 17357 }
20038 #[repr(transparent)] 17358 #[repr(transparent)]
20039 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17359 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20040 pub struct Iophsmen(pub u8); 17360 pub struct Frlvlr(pub u8);
20041 impl Iophsmen { 17361 impl Frlvlr {
20042 #[doc = "Port x clock is disabled in Sleep mode"] 17362 #[doc = "Rx FIFO Empty"]
20043 pub const DISABLED: Self = Self(0); 17363 pub const EMPTY: Self = Self(0);
20044 #[doc = "Port x clock is enabled in Sleep mode (if enabled by IOPHEN)"] 17364 #[doc = "Rx 1/4 FIFO"]
20045 pub const ENABLED: Self = Self(0x01); 17365 pub const QUARTER: Self = Self(0x01);
17366 #[doc = "Rx 1/2 FIFO"]
17367 pub const HALF: Self = Self(0x02);
17368 #[doc = "Rx FIFO full"]
17369 pub const FULL: Self = Self(0x03);
20046 } 17370 }
20047 #[repr(transparent)] 17371 #[repr(transparent)]
20048 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17372 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20049 pub struct Icsel(pub u8); 17373 pub struct Cpol(pub u8);
20050 impl Icsel { 17374 impl Cpol {
20051 #[doc = "APB clock selected as peripheral clock"] 17375 #[doc = "CK to 0 when idle"]
20052 pub const APB: Self = Self(0); 17376 pub const IDLELOW: Self = Self(0);
20053 #[doc = "System clock selected as peripheral clock"] 17377 #[doc = "CK to 1 when idle"]
20054 pub const SYSTEM: Self = Self(0x01); 17378 pub const IDLEHIGH: Self = Self(0x01);
20055 #[doc = "HSI16 clock selected as peripheral clock"]
20056 pub const HSI16: Self = Self(0x02);
20057 } 17379 }
20058 #[repr(transparent)] 17380 #[repr(transparent)]
20059 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17381 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20060 pub struct Rtcsel(pub u8); 17382 pub struct Bidimode(pub u8);
20061 impl Rtcsel { 17383 impl Bidimode {
20062 #[doc = "No clock"] 17384 #[doc = "2-line unidirectional data mode selected"]
20063 pub const NOCLOCK: Self = Self(0); 17385 pub const UNIDIRECTIONAL: Self = Self(0);
20064 #[doc = "LSE oscillator clock used as RTC clock"] 17386 #[doc = "1-line bidirectional data mode selected"]
20065 pub const LSE: Self = Self(0x01); 17387 pub const BIDIRECTIONAL: Self = Self(0x01);
20066 #[doc = "LSI oscillator clock used as RTC clock"]
20067 pub const LSI: Self = Self(0x02);
20068 #[doc = "HSE oscillator clock divided by a programmable prescaler (selection through the RTCPRE[1:0]
20069bits in the RCC clock control register (RCC_CR)) used as the RTC clock"]
20070 pub const HSE: Self = Self(0x03);
20071 } 17388 }
20072 #[repr(transparent)] 17389 #[repr(transparent)]
20073 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17390 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20074 pub struct Pllsrc(pub u8); 17391 pub struct Ds(pub u8);
20075 impl Pllsrc { 17392 impl Ds {
20076 #[doc = "HSI selected as PLL input clock"] 17393 #[doc = "4-bit"]
20077 pub const HSI16: Self = Self(0); 17394 pub const FOURBIT: Self = Self(0x03);
20078 #[doc = "HSE selected as PLL input clock"] 17395 #[doc = "5-bit"]
20079 pub const HSE: Self = Self(0x01); 17396 pub const FIVEBIT: Self = Self(0x04);
17397 #[doc = "6-bit"]
17398 pub const SIXBIT: Self = Self(0x05);
17399 #[doc = "7-bit"]
17400 pub const SEVENBIT: Self = Self(0x06);
17401 #[doc = "8-bit"]
17402 pub const EIGHTBIT: Self = Self(0x07);
17403 #[doc = "9-bit"]
17404 pub const NINEBIT: Self = Self(0x08);
17405 #[doc = "10-bit"]
17406 pub const TENBIT: Self = Self(0x09);
17407 #[doc = "11-bit"]
17408 pub const ELEVENBIT: Self = Self(0x0a);
17409 #[doc = "12-bit"]
17410 pub const TWELVEBIT: Self = Self(0x0b);
17411 #[doc = "13-bit"]
17412 pub const THIRTEENBIT: Self = Self(0x0c);
17413 #[doc = "14-bit"]
17414 pub const FOURTEENBIT: Self = Self(0x0d);
17415 #[doc = "15-bit"]
17416 pub const FIFTEENBIT: Self = Self(0x0e);
17417 #[doc = "16-bit"]
17418 pub const SIXTEENBIT: Self = Self(0x0f);
20080 } 17419 }
20081 #[repr(transparent)] 17420 #[repr(transparent)]
20082 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17421 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20083 pub struct Pllon(pub u8); 17422 pub struct Crcnext(pub u8);
20084 impl Pllon { 17423 impl Crcnext {
20085 #[doc = "Clock disabled"] 17424 #[doc = "Next transmit value is from Tx buffer"]
20086 pub const DISABLED: Self = Self(0); 17425 pub const TXBUFFER: Self = Self(0);
20087 #[doc = "Clock enabled"] 17426 #[doc = "Next transmit value is from Tx CRC register"]
20088 pub const ENABLED: Self = Self(0x01); 17427 pub const CRC: Self = Self(0x01);
20089 } 17428 }
20090 #[repr(transparent)] 17429 #[repr(transparent)]
20091 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17430 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20092 pub struct Hsebyp(pub u8); 17431 pub struct Frer(pub u8);
20093 impl Hsebyp { 17432 impl Frer {
20094 #[doc = "HSE oscillator not bypassed"] 17433 #[doc = "No frame format error"]
20095 pub const NOTBYPASSED: Self = Self(0); 17434 pub const NOERROR: Self = Self(0);
20096 #[doc = "HSE oscillator bypassed"] 17435 #[doc = "A frame format error occurred"]
20097 pub const BYPASSED: Self = Self(0x01); 17436 pub const ERROR: Self = Self(0x01);
20098 } 17437 }
20099 #[repr(transparent)] 17438 #[repr(transparent)]
20100 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17439 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20101 pub struct Pllmul(pub u8); 17440 pub struct Mstr(pub u8);
20102 impl Pllmul { 17441 impl Mstr {
20103 #[doc = "PLL clock entry x 3"] 17442 #[doc = "Slave configuration"]
20104 pub const MUL3: Self = Self(0); 17443 pub const SLAVE: Self = Self(0);
20105 #[doc = "PLL clock entry x 4"] 17444 #[doc = "Master configuration"]
20106 pub const MUL4: Self = Self(0x01); 17445 pub const MASTER: Self = Self(0x01);
20107 #[doc = "PLL clock entry x 6"]
20108 pub const MUL6: Self = Self(0x02);
20109 #[doc = "PLL clock entry x 8"]
20110 pub const MUL8: Self = Self(0x03);
20111 #[doc = "PLL clock entry x 12"]
20112 pub const MUL12: Self = Self(0x04);
20113 #[doc = "PLL clock entry x 16"]
20114 pub const MUL16: Self = Self(0x05);
20115 #[doc = "PLL clock entry x 24"]
20116 pub const MUL24: Self = Self(0x06);
20117 #[doc = "PLL clock entry x 32"]
20118 pub const MUL32: Self = Self(0x07);
20119 #[doc = "PLL clock entry x 48"]
20120 pub const MUL48: Self = Self(0x08);
20121 } 17446 }
20122 #[repr(transparent)] 17447 #[repr(transparent)]
20123 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17448 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20124 pub struct Rtcpre(pub u8); 17449 pub struct Br(pub u8);
20125 impl Rtcpre { 17450 impl Br {
20126 #[doc = "HSE divided by 2"] 17451 #[doc = "f_PCLK / 2"]
20127 pub const DIV2: Self = Self(0); 17452 pub const DIV2: Self = Self(0);
20128 #[doc = "HSE divided by 4"] 17453 #[doc = "f_PCLK / 4"]
20129 pub const DIV4: Self = Self(0x01); 17454 pub const DIV4: Self = Self(0x01);
20130 #[doc = "HSE divided by 8"] 17455 #[doc = "f_PCLK / 8"]
20131 pub const DIV8: Self = Self(0x02); 17456 pub const DIV8: Self = Self(0x02);
20132 #[doc = "HSE divided by 16"] 17457 #[doc = "f_PCLK / 16"]
20133 pub const DIV16: Self = Self(0x03); 17458 pub const DIV16: Self = Self(0x03);
17459 #[doc = "f_PCLK / 32"]
17460 pub const DIV32: Self = Self(0x04);
17461 #[doc = "f_PCLK / 64"]
17462 pub const DIV64: Self = Self(0x05);
17463 #[doc = "f_PCLK / 128"]
17464 pub const DIV128: Self = Self(0x06);
17465 #[doc = "f_PCLK / 256"]
17466 pub const DIV256: Self = Self(0x07);
20134 } 17467 }
20135 #[repr(transparent)] 17468 #[repr(transparent)]
20136 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17469 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20137 pub struct Lptimsmen(pub u8); 17470 pub struct Cpha(pub u8);
20138 impl Lptimsmen { 17471 impl Cpha {
20139 #[doc = "Clock disabled"] 17472 #[doc = "The first clock transition is the first data capture edge"]
20140 pub const DISABLED: Self = Self(0); 17473 pub const FIRSTEDGE: Self = Self(0);
20141 #[doc = "Clock enabled"] 17474 #[doc = "The second clock transition is the first data capture edge"]
20142 pub const ENABLED: Self = Self(0x01); 17475 pub const SECONDEDGE: Self = Self(0x01);
20143 }
20144 #[repr(transparent)]
20145 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20146 pub struct Lptimrstw(pub u8);
20147 impl Lptimrstw {
20148 #[doc = "Reset the module"]
20149 pub const RESET: Self = Self(0x01);
20150 }
20151 #[repr(transparent)]
20152 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20153 pub struct Pllrdyr(pub u8);
20154 impl Pllrdyr {
20155 #[doc = "PLL unlocked"]
20156 pub const UNLOCKED: Self = Self(0);
20157 #[doc = "PLL locked"]
20158 pub const LOCKED: Self = Self(0x01);
20159 } 17476 }
20160 #[repr(transparent)] 17477 #[repr(transparent)]
20161 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17478 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20162 pub struct Lpwrrstfr(pub u8); 17479 pub struct Frf(pub u8);
20163 impl Lpwrrstfr { 17480 impl Frf {
20164 #[doc = "No reset has occured"] 17481 #[doc = "SPI Motorola mode"]
20165 pub const NORESET: Self = Self(0); 17482 pub const MOTOROLA: Self = Self(0);
20166 #[doc = "A reset has occured"] 17483 #[doc = "SPI TI mode"]
20167 pub const RESET: Self = Self(0x01); 17484 pub const TI: Self = Self(0x01);
20168 } 17485 }
20169 #[repr(transparent)] 17486 #[repr(transparent)]
20170 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17487 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20171 pub struct Dbgen(pub u8); 17488 pub struct Frxth(pub u8);
20172 impl Dbgen { 17489 impl Frxth {
20173 #[doc = "Clock disabled"] 17490 #[doc = "RXNE event is generated if the FIFO level is greater than or equal to 1/2 (16-bit)"]
20174 pub const DISABLED: Self = Self(0); 17491 pub const HALF: Self = Self(0);
20175 #[doc = "Clock enabled"] 17492 #[doc = "RXNE event is generated if the FIFO level is greater than or equal to 1/4 (8-bit)"]
20176 pub const ENABLED: Self = Self(0x01); 17493 pub const QUARTER: Self = Self(0x01);
20177 } 17494 }
20178 #[repr(transparent)] 17495 #[repr(transparent)]
20179 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17496 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20180 pub struct Rmvfw(pub u8); 17497 pub struct Bidioe(pub u8);
20181 impl Rmvfw { 17498 impl Bidioe {
20182 #[doc = "Clears the reset flag"] 17499 #[doc = "Output disabled (receive-only mode)"]
20183 pub const CLEAR: Self = Self(0x01); 17500 pub const OUTPUTDISABLED: Self = Self(0);
17501 #[doc = "Output enabled (transmit-only mode)"]
17502 pub const OUTPUTENABLED: Self = Self(0x01);
20184 } 17503 }
17504 }
17505 pub mod regs {
17506 use crate::generic::*;
17507 #[doc = "RX CRC register"]
20185 #[repr(transparent)] 17508 #[repr(transparent)]
20186 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17509 #[derive(Copy, Clone, Eq, PartialEq)]
20187 pub struct Sws(pub u8); 17510 pub struct Rxcrcr(pub u32);
20188 impl Sws { 17511 impl Rxcrcr {
20189 #[doc = "MSI oscillator used as system clock"] 17512 #[doc = "Rx CRC register"]
20190 pub const MSI: Self = Self(0); 17513 pub const fn rx_crc(&self) -> u16 {
20191 #[doc = "HSI oscillator used as system clock"] 17514 let val = (self.0 >> 0usize) & 0xffff;
20192 pub const HSI16: Self = Self(0x01); 17515 val as u16
20193 #[doc = "HSE oscillator used as system clock"] 17516 }
20194 pub const HSE: Self = Self(0x02); 17517 #[doc = "Rx CRC register"]
20195 #[doc = "PLL used as system clock"] 17518 pub fn set_rx_crc(&mut self, val: u16) {
20196 pub const PLL: Self = Self(0x03); 17519 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
17520 }
20197 } 17521 }
20198 #[repr(transparent)] 17522 impl Default for Rxcrcr {
20199 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17523 fn default() -> Rxcrcr {
20200 pub struct Mcopre(pub u8); 17524 Rxcrcr(0)
20201 impl Mcopre { 17525 }
20202 #[doc = "No division"]
20203 pub const DIV1: Self = Self(0);
20204 #[doc = "Division by 2"]
20205 pub const DIV2: Self = Self(0x01);
20206 #[doc = "Division by 4"]
20207 pub const DIV4: Self = Self(0x02);
20208 #[doc = "Division by 8"]
20209 pub const DIV8: Self = Self(0x03);
20210 #[doc = "Division by 16"]
20211 pub const DIV16: Self = Self(0x04);
20212 } 17526 }
17527 #[doc = "CRC polynomial register"]
20213 #[repr(transparent)] 17528 #[repr(transparent)]
20214 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17529 #[derive(Copy, Clone, Eq, PartialEq)]
20215 pub struct Crypsmen(pub u8); 17530 pub struct Crcpr(pub u32);
20216 impl Crypsmen { 17531 impl Crcpr {
20217 #[doc = "Crypto clock disabled in Sleep mode"] 17532 #[doc = "CRC polynomial register"]
20218 pub const DISABLED: Self = Self(0); 17533 pub const fn crcpoly(&self) -> u16 {
20219 #[doc = "Crypto clock enabled in Sleep mode"] 17534 let val = (self.0 >> 0usize) & 0xffff;
20220 pub const ENABLED: Self = Self(0x01); 17535 val as u16
17536 }
17537 #[doc = "CRC polynomial register"]
17538 pub fn set_crcpoly(&mut self, val: u16) {
17539 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
17540 }
20221 } 17541 }
20222 #[repr(transparent)] 17542 impl Default for Crcpr {
20223 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17543 fn default() -> Crcpr {
20224 pub struct Stopwuck(pub u8); 17544 Crcpr(0)
20225 impl Stopwuck { 17545 }
20226 #[doc = "Internal 64 KHz to 4 MHz (MSI) oscillator selected as wake-up from Stop clock"]
20227 pub const MSI: Self = Self(0);
20228 #[doc = "Internal 16 MHz (HSI) oscillator selected as wake-up from Stop clock (or HSI16/4 if HSI16DIVEN=1)"]
20229 pub const HSI16: Self = Self(0x01);
20230 } 17546 }
17547 #[doc = "control register 1"]
20231 #[repr(transparent)] 17548 #[repr(transparent)]
20232 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 17549 #[derive(Copy, Clone, Eq, PartialEq)]
20233 pub struct Crcsmen(pub u8); 17550 pub struct Cr1(pub u32);
20234 impl Crcsmen { 17551 impl Cr1 {
20235 #[doc = "Test integration module clock disabled in Sleep mode"] 17552 #[doc = "Clock phase"]
20236 pub const DISABLED: Self = Self(0); 17553 pub const fn cpha(&self) -> super::vals::Cpha {
20237 #[doc = "Test integration module clock enabled in Sleep mode (if enabled by CRCEN)"] 17554 let val = (self.0 >> 0usize) & 0x01;
20238 pub const ENABLED: Self = Self(0x01); 17555 super::vals::Cpha(val as u8)
20239 } 17556 }
20240 } 17557 #[doc = "Clock phase"]
20241} 17558 pub fn set_cpha(&mut self, val: super::vals::Cpha) {
20242pub mod usart_v2 { 17559 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
20243 use crate::generic::*; 17560 }
20244 #[doc = "Universal synchronous asynchronous receiver transmitter"] 17561 #[doc = "Clock polarity"]
20245 #[derive(Copy, Clone)] 17562 pub const fn cpol(&self) -> super::vals::Cpol {
20246 pub struct Usart(pub *mut u8); 17563 let val = (self.0 >> 1usize) & 0x01;
20247 unsafe impl Send for Usart {} 17564 super::vals::Cpol(val as u8)
20248 unsafe impl Sync for Usart {} 17565 }
20249 impl Usart { 17566 #[doc = "Clock polarity"]
20250 #[doc = "Control register 1"] 17567 pub fn set_cpol(&mut self, val: super::vals::Cpol) {
20251 pub fn cr1(self) -> Reg<regs::Cr1, RW> { 17568 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
20252 unsafe { Reg::from_ptr(self.0.add(0usize)) } 17569 }
20253 } 17570 #[doc = "Master selection"]
20254 #[doc = "Control register 2"] 17571 pub const fn mstr(&self) -> super::vals::Mstr {
20255 pub fn cr2(self) -> Reg<regs::Cr2, RW> { 17572 let val = (self.0 >> 2usize) & 0x01;
20256 unsafe { Reg::from_ptr(self.0.add(4usize)) } 17573 super::vals::Mstr(val as u8)
20257 } 17574 }
20258 #[doc = "Control register 3"] 17575 #[doc = "Master selection"]
20259 pub fn cr3(self) -> Reg<regs::Cr3, RW> { 17576 pub fn set_mstr(&mut self, val: super::vals::Mstr) {
20260 unsafe { Reg::from_ptr(self.0.add(8usize)) } 17577 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
20261 } 17578 }
20262 #[doc = "Baud rate register"] 17579 #[doc = "Baud rate control"]
20263 pub fn brr(self) -> Reg<regs::Brr, RW> { 17580 pub const fn br(&self) -> super::vals::Br {
20264 unsafe { Reg::from_ptr(self.0.add(12usize)) } 17581 let val = (self.0 >> 3usize) & 0x07;
20265 } 17582 super::vals::Br(val as u8)
20266 #[doc = "Guard time and prescaler register"] 17583 }
20267 pub fn gtpr(self) -> Reg<regs::Gtpr, RW> { 17584 #[doc = "Baud rate control"]
20268 unsafe { Reg::from_ptr(self.0.add(16usize)) } 17585 pub fn set_br(&mut self, val: super::vals::Br) {
20269 } 17586 self.0 = (self.0 & !(0x07 << 3usize)) | (((val.0 as u32) & 0x07) << 3usize);
20270 #[doc = "Receiver timeout register"] 17587 }
20271 pub fn rtor(self) -> Reg<regs::Rtor, RW> { 17588 #[doc = "SPI enable"]
20272 unsafe { Reg::from_ptr(self.0.add(20usize)) } 17589 pub const fn spe(&self) -> bool {
20273 } 17590 let val = (self.0 >> 6usize) & 0x01;
20274 #[doc = "Request register"] 17591 val != 0
20275 pub fn rqr(self) -> Reg<regs::Rqr, W> { 17592 }
20276 unsafe { Reg::from_ptr(self.0.add(24usize)) } 17593 #[doc = "SPI enable"]
20277 } 17594 pub fn set_spe(&mut self, val: bool) {
20278 #[doc = "Interrupt & status register"] 17595 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
20279 pub fn isr(self) -> Reg<regs::Ixr, R> { 17596 }
20280 unsafe { Reg::from_ptr(self.0.add(28usize)) } 17597 #[doc = "Frame format"]
20281 } 17598 pub const fn lsbfirst(&self) -> super::vals::Lsbfirst {
20282 #[doc = "Interrupt flag clear register"] 17599 let val = (self.0 >> 7usize) & 0x01;
20283 pub fn icr(self) -> Reg<regs::Ixr, W> { 17600 super::vals::Lsbfirst(val as u8)
20284 unsafe { Reg::from_ptr(self.0.add(32usize)) } 17601 }
20285 } 17602 #[doc = "Frame format"]
20286 #[doc = "Receive data register"] 17603 pub fn set_lsbfirst(&mut self, val: super::vals::Lsbfirst) {
20287 pub fn rdr(self) -> Reg<regs::Dr, R> { 17604 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
20288 unsafe { Reg::from_ptr(self.0.add(36usize)) } 17605 }
17606 #[doc = "Internal slave select"]
17607 pub const fn ssi(&self) -> bool {
17608 let val = (self.0 >> 8usize) & 0x01;
17609 val != 0
17610 }
17611 #[doc = "Internal slave select"]
17612 pub fn set_ssi(&mut self, val: bool) {
17613 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
17614 }
17615 #[doc = "Software slave management"]
17616 pub const fn ssm(&self) -> bool {
17617 let val = (self.0 >> 9usize) & 0x01;
17618 val != 0
17619 }
17620 #[doc = "Software slave management"]
17621 pub fn set_ssm(&mut self, val: bool) {
17622 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
17623 }
17624 #[doc = "Receive only"]
17625 pub const fn rxonly(&self) -> super::vals::Rxonly {
17626 let val = (self.0 >> 10usize) & 0x01;
17627 super::vals::Rxonly(val as u8)
17628 }
17629 #[doc = "Receive only"]
17630 pub fn set_rxonly(&mut self, val: super::vals::Rxonly) {
17631 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
17632 }
17633 #[doc = "CRC length"]
17634 pub const fn crcl(&self) -> super::vals::Crcl {
17635 let val = (self.0 >> 11usize) & 0x01;
17636 super::vals::Crcl(val as u8)
17637 }
17638 #[doc = "CRC length"]
17639 pub fn set_crcl(&mut self, val: super::vals::Crcl) {
17640 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
17641 }
17642 #[doc = "CRC transfer next"]
17643 pub const fn crcnext(&self) -> super::vals::Crcnext {
17644 let val = (self.0 >> 12usize) & 0x01;
17645 super::vals::Crcnext(val as u8)
17646 }
17647 #[doc = "CRC transfer next"]
17648 pub fn set_crcnext(&mut self, val: super::vals::Crcnext) {
17649 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
17650 }
17651 #[doc = "Hardware CRC calculation enable"]
17652 pub const fn crcen(&self) -> bool {
17653 let val = (self.0 >> 13usize) & 0x01;
17654 val != 0
17655 }
17656 #[doc = "Hardware CRC calculation enable"]
17657 pub fn set_crcen(&mut self, val: bool) {
17658 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
17659 }
17660 #[doc = "Output enable in bidirectional mode"]
17661 pub const fn bidioe(&self) -> super::vals::Bidioe {
17662 let val = (self.0 >> 14usize) & 0x01;
17663 super::vals::Bidioe(val as u8)
17664 }
17665 #[doc = "Output enable in bidirectional mode"]
17666 pub fn set_bidioe(&mut self, val: super::vals::Bidioe) {
17667 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
17668 }
17669 #[doc = "Bidirectional data mode enable"]
17670 pub const fn bidimode(&self) -> super::vals::Bidimode {
17671 let val = (self.0 >> 15usize) & 0x01;
17672 super::vals::Bidimode(val as u8)
17673 }
17674 #[doc = "Bidirectional data mode enable"]
17675 pub fn set_bidimode(&mut self, val: super::vals::Bidimode) {
17676 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
17677 }
20289 } 17678 }
20290 #[doc = "Transmit data register"] 17679 impl Default for Cr1 {
20291 pub fn tdr(self) -> Reg<regs::Dr, RW> { 17680 fn default() -> Cr1 {
20292 unsafe { Reg::from_ptr(self.0.add(40usize)) } 17681 Cr1(0)
17682 }
20293 } 17683 }
20294 } 17684 #[doc = "control register 2"]
20295 pub mod regs {
20296 use crate::generic::*;
20297 #[doc = "Interrupt & status register"]
20298 #[repr(transparent)] 17685 #[repr(transparent)]
20299 #[derive(Copy, Clone, Eq, PartialEq)] 17686 #[derive(Copy, Clone, Eq, PartialEq)]
20300 pub struct Ixr(pub u32); 17687 pub struct Cr2(pub u32);
20301 impl Ixr { 17688 impl Cr2 {
20302 #[doc = "Parity error"] 17689 #[doc = "Rx buffer DMA enable"]
20303 pub const fn pe(&self) -> bool { 17690 pub const fn rxdmaen(&self) -> bool {
20304 let val = (self.0 >> 0usize) & 0x01; 17691 let val = (self.0 >> 0usize) & 0x01;
20305 val != 0 17692 val != 0
20306 } 17693 }
20307 #[doc = "Parity error"] 17694 #[doc = "Rx buffer DMA enable"]
20308 pub fn set_pe(&mut self, val: bool) { 17695 pub fn set_rxdmaen(&mut self, val: bool) {
20309 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 17696 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
20310 } 17697 }
20311 #[doc = "Framing error"] 17698 #[doc = "Tx buffer DMA enable"]
20312 pub const fn fe(&self) -> bool { 17699 pub const fn txdmaen(&self) -> bool {
20313 let val = (self.0 >> 1usize) & 0x01; 17700 let val = (self.0 >> 1usize) & 0x01;
20314 val != 0 17701 val != 0
20315 } 17702 }
20316 #[doc = "Framing error"] 17703 #[doc = "Tx buffer DMA enable"]
20317 pub fn set_fe(&mut self, val: bool) { 17704 pub fn set_txdmaen(&mut self, val: bool) {
20318 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 17705 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
20319 } 17706 }
20320 #[doc = "Noise detected flag"] 17707 #[doc = "SS output enable"]
20321 pub const fn nf(&self) -> bool { 17708 pub const fn ssoe(&self) -> bool {
20322 let val = (self.0 >> 2usize) & 0x01; 17709 let val = (self.0 >> 2usize) & 0x01;
20323 val != 0 17710 val != 0
20324 } 17711 }
20325 #[doc = "Noise detected flag"] 17712 #[doc = "SS output enable"]
20326 pub fn set_nf(&mut self, val: bool) { 17713 pub fn set_ssoe(&mut self, val: bool) {
20327 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 17714 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
20328 } 17715 }
20329 #[doc = "Overrun error"] 17716 #[doc = "NSS pulse management"]
20330 pub const fn ore(&self) -> bool { 17717 pub const fn nssp(&self) -> bool {
20331 let val = (self.0 >> 3usize) & 0x01; 17718 let val = (self.0 >> 3usize) & 0x01;
20332 val != 0 17719 val != 0
20333 } 17720 }
20334 #[doc = "Overrun error"] 17721 #[doc = "NSS pulse management"]
20335 pub fn set_ore(&mut self, val: bool) { 17722 pub fn set_nssp(&mut self, val: bool) {
20336 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize); 17723 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
20337 } 17724 }
20338 #[doc = "Idle line detected"] 17725 #[doc = "Frame format"]
20339 pub const fn idle(&self) -> bool { 17726 pub const fn frf(&self) -> super::vals::Frf {
20340 let val = (self.0 >> 4usize) & 0x01; 17727 let val = (self.0 >> 4usize) & 0x01;
17728 super::vals::Frf(val as u8)
17729 }
17730 #[doc = "Frame format"]
17731 pub fn set_frf(&mut self, val: super::vals::Frf) {
17732 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
17733 }
17734 #[doc = "Error interrupt enable"]
17735 pub const fn errie(&self) -> bool {
17736 let val = (self.0 >> 5usize) & 0x01;
20341 val != 0 17737 val != 0
20342 } 17738 }
20343 #[doc = "Idle line detected"] 17739 #[doc = "Error interrupt enable"]
20344 pub fn set_idle(&mut self, val: bool) { 17740 pub fn set_errie(&mut self, val: bool) {
20345 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 17741 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
20346 } 17742 }
20347 #[doc = "Read data register not empty"] 17743 #[doc = "RX buffer not empty interrupt enable"]
17744 pub const fn rxneie(&self) -> bool {
17745 let val = (self.0 >> 6usize) & 0x01;
17746 val != 0
17747 }
17748 #[doc = "RX buffer not empty interrupt enable"]
17749 pub fn set_rxneie(&mut self, val: bool) {
17750 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
17751 }
17752 #[doc = "Tx buffer empty interrupt enable"]
17753 pub const fn txeie(&self) -> bool {
17754 let val = (self.0 >> 7usize) & 0x01;
17755 val != 0
17756 }
17757 #[doc = "Tx buffer empty interrupt enable"]
17758 pub fn set_txeie(&mut self, val: bool) {
17759 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
17760 }
17761 #[doc = "Data size"]
17762 pub const fn ds(&self) -> super::vals::Ds {
17763 let val = (self.0 >> 8usize) & 0x0f;
17764 super::vals::Ds(val as u8)
17765 }
17766 #[doc = "Data size"]
17767 pub fn set_ds(&mut self, val: super::vals::Ds) {
17768 self.0 = (self.0 & !(0x0f << 8usize)) | (((val.0 as u32) & 0x0f) << 8usize);
17769 }
17770 #[doc = "FIFO reception threshold"]
17771 pub const fn frxth(&self) -> super::vals::Frxth {
17772 let val = (self.0 >> 12usize) & 0x01;
17773 super::vals::Frxth(val as u8)
17774 }
17775 #[doc = "FIFO reception threshold"]
17776 pub fn set_frxth(&mut self, val: super::vals::Frxth) {
17777 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
17778 }
17779 #[doc = "Last DMA transfer for reception"]
17780 pub const fn ldma_rx(&self) -> super::vals::LdmaRx {
17781 let val = (self.0 >> 13usize) & 0x01;
17782 super::vals::LdmaRx(val as u8)
17783 }
17784 #[doc = "Last DMA transfer for reception"]
17785 pub fn set_ldma_rx(&mut self, val: super::vals::LdmaRx) {
17786 self.0 = (self.0 & !(0x01 << 13usize)) | (((val.0 as u32) & 0x01) << 13usize);
17787 }
17788 #[doc = "Last DMA transfer for transmission"]
17789 pub const fn ldma_tx(&self) -> super::vals::LdmaTx {
17790 let val = (self.0 >> 14usize) & 0x01;
17791 super::vals::LdmaTx(val as u8)
17792 }
17793 #[doc = "Last DMA transfer for transmission"]
17794 pub fn set_ldma_tx(&mut self, val: super::vals::LdmaTx) {
17795 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
17796 }
17797 }
17798 impl Default for Cr2 {
17799 fn default() -> Cr2 {
17800 Cr2(0)
17801 }
17802 }
17803 #[doc = "status register"]
17804 #[repr(transparent)]
17805 #[derive(Copy, Clone, Eq, PartialEq)]
17806 pub struct Sr(pub u32);
17807 impl Sr {
17808 #[doc = "Receive buffer not empty"]
20348 pub const fn rxne(&self) -> bool { 17809 pub const fn rxne(&self) -> bool {
20349 let val = (self.0 >> 5usize) & 0x01; 17810 let val = (self.0 >> 0usize) & 0x01;
20350 val != 0 17811 val != 0
20351 } 17812 }
20352 #[doc = "Read data register not empty"] 17813 #[doc = "Receive buffer not empty"]
20353 pub fn set_rxne(&mut self, val: bool) { 17814 pub fn set_rxne(&mut self, val: bool) {
17815 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
17816 }
17817 #[doc = "Transmit buffer empty"]
17818 pub const fn txe(&self) -> bool {
17819 let val = (self.0 >> 1usize) & 0x01;
17820 val != 0
17821 }
17822 #[doc = "Transmit buffer empty"]
17823 pub fn set_txe(&mut self, val: bool) {
17824 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
17825 }
17826 #[doc = "CRC error flag"]
17827 pub const fn crcerr(&self) -> bool {
17828 let val = (self.0 >> 4usize) & 0x01;
17829 val != 0
17830 }
17831 #[doc = "CRC error flag"]
17832 pub fn set_crcerr(&mut self, val: bool) {
17833 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
17834 }
17835 #[doc = "Mode fault"]
17836 pub const fn modf(&self) -> bool {
17837 let val = (self.0 >> 5usize) & 0x01;
17838 val != 0
17839 }
17840 #[doc = "Mode fault"]
17841 pub fn set_modf(&mut self, val: bool) {
20354 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 17842 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
20355 } 17843 }
20356 #[doc = "Transmission complete"] 17844 #[doc = "Overrun flag"]
20357 pub const fn tc(&self) -> bool { 17845 pub const fn ovr(&self) -> bool {
20358 let val = (self.0 >> 6usize) & 0x01; 17846 let val = (self.0 >> 6usize) & 0x01;
20359 val != 0 17847 val != 0
20360 } 17848 }
20361 #[doc = "Transmission complete"] 17849 #[doc = "Overrun flag"]
20362 pub fn set_tc(&mut self, val: bool) { 17850 pub fn set_ovr(&mut self, val: bool) {
20363 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 17851 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
20364 } 17852 }
20365 #[doc = "Transmit data register empty"] 17853 #[doc = "Busy flag"]
20366 pub const fn txe(&self) -> bool { 17854 pub const fn bsy(&self) -> bool {
20367 let val = (self.0 >> 7usize) & 0x01; 17855 let val = (self.0 >> 7usize) & 0x01;
20368 val != 0 17856 val != 0
20369 } 17857 }
20370 #[doc = "Transmit data register empty"] 17858 #[doc = "Busy flag"]
20371 pub fn set_txe(&mut self, val: bool) { 17859 pub fn set_bsy(&mut self, val: bool) {
20372 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 17860 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
20373 } 17861 }
20374 #[doc = "LIN break detection flag"] 17862 #[doc = "Frame format error"]
20375 pub const fn lbdf(&self) -> bool { 17863 pub const fn fre(&self) -> bool {
20376 let val = (self.0 >> 8usize) & 0x01; 17864 let val = (self.0 >> 8usize) & 0x01;
20377 val != 0 17865 val != 0
20378 } 17866 }
20379 #[doc = "LIN break detection flag"] 17867 #[doc = "Frame format error"]
20380 pub fn set_lbdf(&mut self, val: bool) { 17868 pub fn set_fre(&mut self, val: bool) {
20381 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 17869 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
20382 } 17870 }
20383 #[doc = "CTS interrupt flag"] 17871 #[doc = "FIFO reception level"]
20384 pub const fn ctsif(&self) -> bool { 17872 pub const fn frlvl(&self) -> u8 {
17873 let val = (self.0 >> 9usize) & 0x03;
17874 val as u8
17875 }
17876 #[doc = "FIFO reception level"]
17877 pub fn set_frlvl(&mut self, val: u8) {
17878 self.0 = (self.0 & !(0x03 << 9usize)) | (((val as u32) & 0x03) << 9usize);
17879 }
17880 #[doc = "FIFO Transmission Level"]
17881 pub const fn ftlvl(&self) -> u8 {
17882 let val = (self.0 >> 11usize) & 0x03;
17883 val as u8
17884 }
17885 #[doc = "FIFO Transmission Level"]
17886 pub fn set_ftlvl(&mut self, val: u8) {
17887 self.0 = (self.0 & !(0x03 << 11usize)) | (((val as u32) & 0x03) << 11usize);
17888 }
17889 }
17890 impl Default for Sr {
17891 fn default() -> Sr {
17892 Sr(0)
17893 }
17894 }
17895 #[doc = "TX CRC register"]
17896 #[repr(transparent)]
17897 #[derive(Copy, Clone, Eq, PartialEq)]
17898 pub struct Txcrcr(pub u32);
17899 impl Txcrcr {
17900 #[doc = "Tx CRC register"]
17901 pub const fn tx_crc(&self) -> u16 {
17902 let val = (self.0 >> 0usize) & 0xffff;
17903 val as u16
17904 }
17905 #[doc = "Tx CRC register"]
17906 pub fn set_tx_crc(&mut self, val: u16) {
17907 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
17908 }
17909 }
17910 impl Default for Txcrcr {
17911 fn default() -> Txcrcr {
17912 Txcrcr(0)
17913 }
17914 }
17915 #[doc = "data register"]
17916 #[repr(transparent)]
17917 #[derive(Copy, Clone, Eq, PartialEq)]
17918 pub struct Dr(pub u32);
17919 impl Dr {
17920 #[doc = "Data register"]
17921 pub const fn dr(&self) -> u16 {
17922 let val = (self.0 >> 0usize) & 0xffff;
17923 val as u16
17924 }
17925 #[doc = "Data register"]
17926 pub fn set_dr(&mut self, val: u16) {
17927 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
17928 }
17929 }
17930 impl Default for Dr {
17931 fn default() -> Dr {
17932 Dr(0)
17933 }
17934 }
17935 }
17936}
17937pub mod syscfg_l0 {
17938 use crate::generic::*;
17939 #[doc = "System configuration controller"]
17940 #[derive(Copy, Clone)]
17941 pub struct Syscfg(pub *mut u8);
17942 unsafe impl Send for Syscfg {}
17943 unsafe impl Sync for Syscfg {}
17944 impl Syscfg {
17945 #[doc = "configuration register 1"]
17946 pub fn cfgr1(self) -> Reg<regs::Cfgr1, RW> {
17947 unsafe { Reg::from_ptr(self.0.add(0usize)) }
17948 }
17949 #[doc = "CFGR2"]
17950 pub fn cfgr2(self) -> Reg<regs::Cfgr2, RW> {
17951 unsafe { Reg::from_ptr(self.0.add(4usize)) }
17952 }
17953 #[doc = "external interrupt configuration register"]
17954 pub fn exticr(self, n: usize) -> Reg<regs::Exticr, RW> {
17955 assert!(n < 4usize);
17956 unsafe { Reg::from_ptr(self.0.add(8usize + n * 4usize)) }
17957 }
17958 #[doc = "CFGR3"]
17959 pub fn cfgr3(self) -> Reg<regs::Cfgr3, RW> {
17960 unsafe { Reg::from_ptr(self.0.add(32usize)) }
17961 }
17962 }
17963 pub mod regs {
17964 use crate::generic::*;
17965 #[doc = "CFGR2"]
17966 #[repr(transparent)]
17967 #[derive(Copy, Clone, Eq, PartialEq)]
17968 pub struct Cfgr2(pub u32);
17969 impl Cfgr2 {
17970 #[doc = "Firewall disable bit"]
17971 pub const fn fwdis(&self) -> bool {
17972 let val = (self.0 >> 0usize) & 0x01;
17973 val != 0
17974 }
17975 #[doc = "Firewall disable bit"]
17976 pub fn set_fwdis(&mut self, val: bool) {
17977 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
17978 }
17979 #[doc = "Fm+ drive capability on PB6 enable bit"]
17980 pub const fn i2c_pb6_fmp(&self) -> bool {
17981 let val = (self.0 >> 8usize) & 0x01;
17982 val != 0
17983 }
17984 #[doc = "Fm+ drive capability on PB6 enable bit"]
17985 pub fn set_i2c_pb6_fmp(&mut self, val: bool) {
17986 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
17987 }
17988 #[doc = "Fm+ drive capability on PB7 enable bit"]
17989 pub const fn i2c_pb7_fmp(&self) -> bool {
20385 let val = (self.0 >> 9usize) & 0x01; 17990 let val = (self.0 >> 9usize) & 0x01;
20386 val != 0 17991 val != 0
20387 } 17992 }
20388 #[doc = "CTS interrupt flag"] 17993 #[doc = "Fm+ drive capability on PB7 enable bit"]
20389 pub fn set_ctsif(&mut self, val: bool) { 17994 pub fn set_i2c_pb7_fmp(&mut self, val: bool) {
20390 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 17995 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
20391 } 17996 }
20392 #[doc = "CTS flag"] 17997 #[doc = "Fm+ drive capability on PB8 enable bit"]
20393 pub const fn cts(&self) -> bool { 17998 pub const fn i2c_pb8_fmp(&self) -> bool {
20394 let val = (self.0 >> 10usize) & 0x01; 17999 let val = (self.0 >> 10usize) & 0x01;
20395 val != 0 18000 val != 0
20396 } 18001 }
20397 #[doc = "CTS flag"] 18002 #[doc = "Fm+ drive capability on PB8 enable bit"]
20398 pub fn set_cts(&mut self, val: bool) { 18003 pub fn set_i2c_pb8_fmp(&mut self, val: bool) {
20399 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize); 18004 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
20400 } 18005 }
20401 #[doc = "Receiver timeout"] 18006 #[doc = "Fm+ drive capability on PB9 enable bit"]
20402 pub const fn rtof(&self) -> bool { 18007 pub const fn i2c_pb9_fmp(&self) -> bool {
20403 let val = (self.0 >> 11usize) & 0x01; 18008 let val = (self.0 >> 11usize) & 0x01;
20404 val != 0 18009 val != 0
20405 } 18010 }
20406 #[doc = "Receiver timeout"] 18011 #[doc = "Fm+ drive capability on PB9 enable bit"]
20407 pub fn set_rtof(&mut self, val: bool) { 18012 pub fn set_i2c_pb9_fmp(&mut self, val: bool) {
20408 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize); 18013 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
20409 } 18014 }
20410 #[doc = "End of block flag"] 18015 #[doc = "I2C1 Fm+ drive capability enable bit"]
20411 pub const fn eobf(&self) -> bool { 18016 pub const fn i2c1_fmp(&self) -> bool {
20412 let val = (self.0 >> 12usize) & 0x01; 18017 let val = (self.0 >> 12usize) & 0x01;
20413 val != 0 18018 val != 0
20414 } 18019 }
20415 #[doc = "End of block flag"] 18020 #[doc = "I2C1 Fm+ drive capability enable bit"]
20416 pub fn set_eobf(&mut self, val: bool) { 18021 pub fn set_i2c1_fmp(&mut self, val: bool) {
20417 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize); 18022 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
20418 } 18023 }
20419 #[doc = "Auto baud rate error"] 18024 #[doc = "I2C2 Fm+ drive capability enable bit"]
20420 pub const fn abre(&self) -> bool { 18025 pub const fn i2c2_fmp(&self) -> bool {
18026 let val = (self.0 >> 13usize) & 0x01;
18027 val != 0
18028 }
18029 #[doc = "I2C2 Fm+ drive capability enable bit"]
18030 pub fn set_i2c2_fmp(&mut self, val: bool) {
18031 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
18032 }
18033 #[doc = "I2C3 Fm+ drive capability enable bit"]
18034 pub const fn i2c3_fmp(&self) -> bool {
20421 let val = (self.0 >> 14usize) & 0x01; 18035 let val = (self.0 >> 14usize) & 0x01;
20422 val != 0 18036 val != 0
20423 } 18037 }
20424 #[doc = "Auto baud rate error"] 18038 #[doc = "I2C3 Fm+ drive capability enable bit"]
20425 pub fn set_abre(&mut self, val: bool) { 18039 pub fn set_i2c3_fmp(&mut self, val: bool) {
20426 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize); 18040 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
20427 } 18041 }
20428 #[doc = "Auto baud rate flag"] 18042 }
20429 pub const fn abrf(&self) -> bool { 18043 impl Default for Cfgr2 {
20430 let val = (self.0 >> 15usize) & 0x01; 18044 fn default() -> Cfgr2 {
20431 val != 0 18045 Cfgr2(0)
20432 } 18046 }
20433 #[doc = "Auto baud rate flag"] 18047 }
20434 pub fn set_abrf(&mut self, val: bool) { 18048 #[doc = "external interrupt configuration register 1-4"]
20435 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize); 18049 #[repr(transparent)]
18050 #[derive(Copy, Clone, Eq, PartialEq)]
18051 pub struct Exticr(pub u32);
18052 impl Exticr {
18053 #[doc = "EXTI configuration bits"]
18054 pub fn exti(&self, n: usize) -> u8 {
18055 assert!(n < 4usize);
18056 let offs = 0usize + n * 4usize;
18057 let val = (self.0 >> offs) & 0x0f;
18058 val as u8
20436 } 18059 }
20437 #[doc = "Busy flag"] 18060 #[doc = "EXTI configuration bits"]
20438 pub const fn busy(&self) -> bool { 18061 pub fn set_exti(&mut self, n: usize, val: u8) {
20439 let val = (self.0 >> 16usize) & 0x01; 18062 assert!(n < 4usize);
18063 let offs = 0usize + n * 4usize;
18064 self.0 = (self.0 & !(0x0f << offs)) | (((val as u32) & 0x0f) << offs);
18065 }
18066 }
18067 impl Default for Exticr {
18068 fn default() -> Exticr {
18069 Exticr(0)
18070 }
18071 }
18072 #[doc = "CFGR3"]
18073 #[repr(transparent)]
18074 #[derive(Copy, Clone, Eq, PartialEq)]
18075 pub struct Cfgr3(pub u32);
18076 impl Cfgr3 {
18077 #[doc = "VREFINT enable and scaler control for COMP2 enable bit"]
18078 pub const fn en_vrefint(&self) -> bool {
18079 let val = (self.0 >> 0usize) & 0x01;
20440 val != 0 18080 val != 0
20441 } 18081 }
20442 #[doc = "Busy flag"] 18082 #[doc = "VREFINT enable and scaler control for COMP2 enable bit"]
20443 pub fn set_busy(&mut self, val: bool) { 18083 pub fn set_en_vrefint(&mut self, val: bool) {
20444 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 18084 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
20445 } 18085 }
20446 #[doc = "character match flag"] 18086 #[doc = "VREFINT_ADC connection bit"]
20447 pub const fn cmf(&self) -> bool { 18087 pub const fn sel_vref_out(&self) -> u8 {
20448 let val = (self.0 >> 17usize) & 0x01; 18088 let val = (self.0 >> 4usize) & 0x03;
18089 val as u8
18090 }
18091 #[doc = "VREFINT_ADC connection bit"]
18092 pub fn set_sel_vref_out(&mut self, val: u8) {
18093 self.0 = (self.0 & !(0x03 << 4usize)) | (((val as u32) & 0x03) << 4usize);
18094 }
18095 #[doc = "VREFINT reference for ADC enable bit"]
18096 pub const fn enbuf_vrefint_adc(&self) -> bool {
18097 let val = (self.0 >> 8usize) & 0x01;
20449 val != 0 18098 val != 0
20450 } 18099 }
20451 #[doc = "character match flag"] 18100 #[doc = "VREFINT reference for ADC enable bit"]
20452 pub fn set_cmf(&mut self, val: bool) { 18101 pub fn set_enbuf_vrefint_adc(&mut self, val: bool) {
20453 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize); 18102 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
20454 } 18103 }
20455 #[doc = "Send break flag"] 18104 #[doc = "Temperature sensor reference for ADC enable bit"]
20456 pub const fn sbkf(&self) -> bool { 18105 pub const fn enbuf_sensor_adc(&self) -> bool {
20457 let val = (self.0 >> 18usize) & 0x01; 18106 let val = (self.0 >> 9usize) & 0x01;
20458 val != 0 18107 val != 0
20459 } 18108 }
20460 #[doc = "Send break flag"] 18109 #[doc = "Temperature sensor reference for ADC enable bit"]
20461 pub fn set_sbkf(&mut self, val: bool) { 18110 pub fn set_enbuf_sensor_adc(&mut self, val: bool) {
20462 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize); 18111 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
20463 } 18112 }
20464 #[doc = "Receiver wakeup from Mute mode"] 18113 #[doc = "VREFINT reference for COMP2 scaler enable bit"]
20465 pub const fn rwu(&self) -> bool { 18114 pub const fn enbuf_vrefint_comp2(&self) -> bool {
20466 let val = (self.0 >> 19usize) & 0x01; 18115 let val = (self.0 >> 12usize) & 0x01;
20467 val != 0 18116 val != 0
20468 } 18117 }
20469 #[doc = "Receiver wakeup from Mute mode"] 18118 #[doc = "VREFINT reference for COMP2 scaler enable bit"]
20470 pub fn set_rwu(&mut self, val: bool) { 18119 pub fn set_enbuf_vrefint_comp2(&mut self, val: bool) {
20471 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize); 18120 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
20472 } 18121 }
20473 #[doc = "Wakeup from Stop mode flag"] 18122 #[doc = "VREFINT reference for HSI48 oscillator enable bit"]
20474 pub const fn wuf(&self) -> bool { 18123 pub const fn enref_hsi48(&self) -> bool {
20475 let val = (self.0 >> 20usize) & 0x01; 18124 let val = (self.0 >> 13usize) & 0x01;
20476 val != 0 18125 val != 0
20477 } 18126 }
20478 #[doc = "Wakeup from Stop mode flag"] 18127 #[doc = "VREFINT reference for HSI48 oscillator enable bit"]
20479 pub fn set_wuf(&mut self, val: bool) { 18128 pub fn set_enref_hsi48(&mut self, val: bool) {
20480 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize); 18129 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
20481 } 18130 }
20482 #[doc = "Transmit enable acknowledge flag"] 18131 #[doc = "VREFINT ready flag"]
20483 pub const fn teack(&self) -> bool { 18132 pub const fn vrefint_rdyf(&self) -> bool {
20484 let val = (self.0 >> 21usize) & 0x01; 18133 let val = (self.0 >> 30usize) & 0x01;
20485 val != 0 18134 val != 0
20486 } 18135 }
20487 #[doc = "Transmit enable acknowledge flag"] 18136 #[doc = "VREFINT ready flag"]
20488 pub fn set_teack(&mut self, val: bool) { 18137 pub fn set_vrefint_rdyf(&mut self, val: bool) {
20489 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize); 18138 self.0 = (self.0 & !(0x01 << 30usize)) | (((val as u32) & 0x01) << 30usize);
20490 } 18139 }
20491 #[doc = "Receive enable acknowledge flag"] 18140 #[doc = "SYSCFG_CFGR3 lock bit"]
20492 pub const fn reack(&self) -> bool { 18141 pub const fn ref_lock(&self) -> bool {
20493 let val = (self.0 >> 22usize) & 0x01; 18142 let val = (self.0 >> 31usize) & 0x01;
20494 val != 0 18143 val != 0
20495 } 18144 }
20496 #[doc = "Receive enable acknowledge flag"] 18145 #[doc = "SYSCFG_CFGR3 lock bit"]
20497 pub fn set_reack(&mut self, val: bool) { 18146 pub fn set_ref_lock(&mut self, val: bool) {
20498 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize); 18147 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize);
20499 } 18148 }
20500 } 18149 }
20501 impl Default for Ixr { 18150 impl Default for Cfgr3 {
20502 fn default() -> Ixr { 18151 fn default() -> Cfgr3 {
20503 Ixr(0) 18152 Cfgr3(0)
20504 } 18153 }
20505 } 18154 }
20506 #[doc = "Receiver timeout register"] 18155 #[doc = "configuration register 1"]
20507 #[repr(transparent)] 18156 #[repr(transparent)]
20508 #[derive(Copy, Clone, Eq, PartialEq)] 18157 #[derive(Copy, Clone, Eq, PartialEq)]
20509 pub struct Rtor(pub u32); 18158 pub struct Cfgr1(pub u32);
20510 impl Rtor { 18159 impl Cfgr1 {
20511 #[doc = "Receiver timeout value"] 18160 #[doc = "Memory mapping selection bits"]
20512 pub const fn rto(&self) -> u32 { 18161 pub const fn mem_mode(&self) -> u8 {
20513 let val = (self.0 >> 0usize) & 0x00ff_ffff; 18162 let val = (self.0 >> 0usize) & 0x03;
20514 val as u32 18163 val as u8
20515 } 18164 }
20516 #[doc = "Receiver timeout value"] 18165 #[doc = "Memory mapping selection bits"]
20517 pub fn set_rto(&mut self, val: u32) { 18166 pub fn set_mem_mode(&mut self, val: u8) {
20518 self.0 = 18167 self.0 = (self.0 & !(0x03 << 0usize)) | (((val as u32) & 0x03) << 0usize);
20519 (self.0 & !(0x00ff_ffff << 0usize)) | (((val as u32) & 0x00ff_ffff) << 0usize);
20520 } 18168 }
20521 #[doc = "Block Length"] 18169 #[doc = "User bank swapping"]
20522 pub const fn blen(&self) -> u8 { 18170 pub const fn ufb(&self) -> bool {
20523 let val = (self.0 >> 24usize) & 0xff; 18171 let val = (self.0 >> 3usize) & 0x01;
18172 val != 0
18173 }
18174 #[doc = "User bank swapping"]
18175 pub fn set_ufb(&mut self, val: bool) {
18176 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
18177 }
18178 #[doc = "Boot mode selected by the boot pins status bits"]
18179 pub const fn boot_mode(&self) -> u8 {
18180 let val = (self.0 >> 8usize) & 0x03;
20524 val as u8 18181 val as u8
20525 } 18182 }
20526 #[doc = "Block Length"] 18183 #[doc = "Boot mode selected by the boot pins status bits"]
20527 pub fn set_blen(&mut self, val: u8) { 18184 pub fn set_boot_mode(&mut self, val: u8) {
20528 self.0 = (self.0 & !(0xff << 24usize)) | (((val as u32) & 0xff) << 24usize); 18185 self.0 = (self.0 & !(0x03 << 8usize)) | (((val as u32) & 0x03) << 8usize);
20529 } 18186 }
20530 } 18187 }
20531 impl Default for Rtor { 18188 impl Default for Cfgr1 {
20532 fn default() -> Rtor { 18189 fn default() -> Cfgr1 {
20533 Rtor(0) 18190 Cfgr1(0)
20534 } 18191 }
20535 } 18192 }
18193 }
18194}
18195pub mod usart_v1 {
18196 use crate::generic::*;
18197 #[doc = "Universal asynchronous receiver transmitter"]
18198 #[derive(Copy, Clone)]
18199 pub struct Uart(pub *mut u8);
18200 unsafe impl Send for Uart {}
18201 unsafe impl Sync for Uart {}
18202 impl Uart {
18203 #[doc = "Status register"]
18204 pub fn sr(self) -> Reg<regs::Sr, RW> {
18205 unsafe { Reg::from_ptr(self.0.add(0usize)) }
18206 }
18207 #[doc = "Data register"]
18208 pub fn dr(self) -> Reg<regs::Dr, RW> {
18209 unsafe { Reg::from_ptr(self.0.add(4usize)) }
18210 }
20536 #[doc = "Baud rate register"] 18211 #[doc = "Baud rate register"]
20537 #[repr(transparent)] 18212 pub fn brr(self) -> Reg<regs::Brr, RW> {
20538 #[derive(Copy, Clone, Eq, PartialEq)] 18213 unsafe { Reg::from_ptr(self.0.add(8usize)) }
20539 pub struct Brr(pub u32);
20540 impl Brr {
20541 #[doc = "mantissa of USARTDIV"]
20542 pub const fn brr(&self) -> u16 {
20543 let val = (self.0 >> 0usize) & 0xffff;
20544 val as u16
20545 }
20546 #[doc = "mantissa of USARTDIV"]
20547 pub fn set_brr(&mut self, val: u16) {
20548 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
20549 }
20550 } 18214 }
20551 impl Default for Brr { 18215 #[doc = "Control register 1"]
20552 fn default() -> Brr { 18216 pub fn cr1(self) -> Reg<regs::Cr1, RW> {
20553 Brr(0) 18217 unsafe { Reg::from_ptr(self.0.add(12usize)) }
20554 } 18218 }
18219 #[doc = "Control register 2"]
18220 pub fn cr2(self) -> Reg<regs::Cr2, RW> {
18221 unsafe { Reg::from_ptr(self.0.add(16usize)) }
18222 }
18223 #[doc = "Control register 3"]
18224 pub fn cr3(self) -> Reg<regs::Cr3, RW> {
18225 unsafe { Reg::from_ptr(self.0.add(20usize)) }
18226 }
18227 }
18228 #[doc = "Universal synchronous asynchronous receiver transmitter"]
18229 #[derive(Copy, Clone)]
18230 pub struct Usart(pub *mut u8);
18231 unsafe impl Send for Usart {}
18232 unsafe impl Sync for Usart {}
18233 impl Usart {
18234 #[doc = "Status register"]
18235 pub fn sr(self) -> Reg<regs::Sr, RW> {
18236 unsafe { Reg::from_ptr(self.0.add(0usize)) }
18237 }
18238 #[doc = "Data register"]
18239 pub fn dr(self) -> Reg<regs::Dr, RW> {
18240 unsafe { Reg::from_ptr(self.0.add(4usize)) }
18241 }
18242 #[doc = "Baud rate register"]
18243 pub fn brr(self) -> Reg<regs::Brr, RW> {
18244 unsafe { Reg::from_ptr(self.0.add(8usize)) }
18245 }
18246 #[doc = "Control register 1"]
18247 pub fn cr1(self) -> Reg<regs::Cr1, RW> {
18248 unsafe { Reg::from_ptr(self.0.add(12usize)) }
20555 } 18249 }
20556 #[doc = "Control register 2"] 18250 #[doc = "Control register 2"]
18251 pub fn cr2(self) -> Reg<regs::Cr2Usart, RW> {
18252 unsafe { Reg::from_ptr(self.0.add(16usize)) }
18253 }
18254 #[doc = "Control register 3"]
18255 pub fn cr3(self) -> Reg<regs::Cr3Usart, RW> {
18256 unsafe { Reg::from_ptr(self.0.add(20usize)) }
18257 }
18258 #[doc = "Guard time and prescaler register"]
18259 pub fn gtpr(self) -> Reg<regs::Gtpr, RW> {
18260 unsafe { Reg::from_ptr(self.0.add(24usize)) }
18261 }
18262 }
18263 pub mod regs {
18264 use crate::generic::*;
18265 #[doc = "Control register 2"]
20557 #[repr(transparent)] 18266 #[repr(transparent)]
20558 #[derive(Copy, Clone, Eq, PartialEq)] 18267 #[derive(Copy, Clone, Eq, PartialEq)]
20559 pub struct Cr2(pub u32); 18268 pub struct Cr2(pub u32);
20560 impl Cr2 { 18269 impl Cr2 {
20561 #[doc = "7-bit Address Detection/4-bit Address Detection"] 18270 #[doc = "Address of the USART node"]
20562 pub fn addm(&self, n: usize) -> super::vals::Addm { 18271 pub const fn add(&self) -> u8 {
20563 assert!(n < 1usize); 18272 let val = (self.0 >> 0usize) & 0x0f;
20564 let offs = 4usize + n * 0usize; 18273 val as u8
20565 let val = (self.0 >> offs) & 0x01;
20566 super::vals::Addm(val as u8)
20567 } 18274 }
20568 #[doc = "7-bit Address Detection/4-bit Address Detection"] 18275 #[doc = "Address of the USART node"]
20569 pub fn set_addm(&mut self, n: usize, val: super::vals::Addm) { 18276 pub fn set_add(&mut self, val: u8) {
20570 assert!(n < 1usize); 18277 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
20571 let offs = 4usize + n * 0usize;
20572 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
20573 } 18278 }
20574 #[doc = "LIN break detection length"] 18279 #[doc = "lin break detection length"]
20575 pub const fn lbdl(&self) -> super::vals::Lbdl { 18280 pub const fn lbdl(&self) -> super::vals::Lbdl {
20576 let val = (self.0 >> 5usize) & 0x01; 18281 let val = (self.0 >> 5usize) & 0x01;
20577 super::vals::Lbdl(val as u8) 18282 super::vals::Lbdl(val as u8)
20578 } 18283 }
20579 #[doc = "LIN break detection length"] 18284 #[doc = "lin break detection length"]
20580 pub fn set_lbdl(&mut self, val: super::vals::Lbdl) { 18285 pub fn set_lbdl(&mut self, val: super::vals::Lbdl) {
20581 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 18286 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
20582 } 18287 }
@@ -20589,42 +18294,6 @@ pub mod usart_v2 {
20589 pub fn set_lbdie(&mut self, val: bool) { 18294 pub fn set_lbdie(&mut self, val: bool) {
20590 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 18295 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
20591 } 18296 }
20592 #[doc = "Last bit clock pulse"]
20593 pub const fn lbcl(&self) -> super::vals::Lbcl {
20594 let val = (self.0 >> 8usize) & 0x01;
20595 super::vals::Lbcl(val as u8)
20596 }
20597 #[doc = "Last bit clock pulse"]
20598 pub fn set_lbcl(&mut self, val: super::vals::Lbcl) {
20599 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
20600 }
20601 #[doc = "Clock phase"]
20602 pub const fn cpha(&self) -> super::vals::Cpha {
20603 let val = (self.0 >> 9usize) & 0x01;
20604 super::vals::Cpha(val as u8)
20605 }
20606 #[doc = "Clock phase"]
20607 pub fn set_cpha(&mut self, val: super::vals::Cpha) {
20608 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
20609 }
20610 #[doc = "Clock polarity"]
20611 pub const fn cpol(&self) -> super::vals::Cpol {
20612 let val = (self.0 >> 10usize) & 0x01;
20613 super::vals::Cpol(val as u8)
20614 }
20615 #[doc = "Clock polarity"]
20616 pub fn set_cpol(&mut self, val: super::vals::Cpol) {
20617 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
20618 }
20619 #[doc = "Clock enable"]
20620 pub const fn clken(&self) -> bool {
20621 let val = (self.0 >> 11usize) & 0x01;
20622 val != 0
20623 }
20624 #[doc = "Clock enable"]
20625 pub fn set_clken(&mut self, val: bool) {
20626 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
20627 }
20628 #[doc = "STOP bits"] 18297 #[doc = "STOP bits"]
20629 pub const fn stop(&self) -> super::vals::Stop { 18298 pub const fn stop(&self) -> super::vals::Stop {
20630 let val = (self.0 >> 12usize) & 0x03; 18299 let val = (self.0 >> 12usize) & 0x03;
@@ -20643,147 +18312,39 @@ pub mod usart_v2 {
20643 pub fn set_linen(&mut self, val: bool) { 18312 pub fn set_linen(&mut self, val: bool) {
20644 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize); 18313 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
20645 } 18314 }
20646 #[doc = "Swap TX/RX pins"]
20647 pub const fn swap(&self) -> super::vals::Swap {
20648 let val = (self.0 >> 15usize) & 0x01;
20649 super::vals::Swap(val as u8)
20650 }
20651 #[doc = "Swap TX/RX pins"]
20652 pub fn set_swap(&mut self, val: super::vals::Swap) {
20653 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
20654 }
20655 #[doc = "RX pin active level inversion"]
20656 pub const fn rxinv(&self) -> super::vals::Rxinv {
20657 let val = (self.0 >> 16usize) & 0x01;
20658 super::vals::Rxinv(val as u8)
20659 }
20660 #[doc = "RX pin active level inversion"]
20661 pub fn set_rxinv(&mut self, val: super::vals::Rxinv) {
20662 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
20663 }
20664 #[doc = "TX pin active level inversion"]
20665 pub const fn txinv(&self) -> super::vals::Txinv {
20666 let val = (self.0 >> 17usize) & 0x01;
20667 super::vals::Txinv(val as u8)
20668 }
20669 #[doc = "TX pin active level inversion"]
20670 pub fn set_txinv(&mut self, val: super::vals::Txinv) {
20671 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize);
20672 }
20673 #[doc = "Binary data inversion"]
20674 pub const fn datainv(&self) -> super::vals::Datainv {
20675 let val = (self.0 >> 18usize) & 0x01;
20676 super::vals::Datainv(val as u8)
20677 }
20678 #[doc = "Binary data inversion"]
20679 pub fn set_datainv(&mut self, val: super::vals::Datainv) {
20680 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
20681 }
20682 #[doc = "Most significant bit first"]
20683 pub const fn msbfirst(&self) -> super::vals::Msbfirst {
20684 let val = (self.0 >> 19usize) & 0x01;
20685 super::vals::Msbfirst(val as u8)
20686 }
20687 #[doc = "Most significant bit first"]
20688 pub fn set_msbfirst(&mut self, val: super::vals::Msbfirst) {
20689 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
20690 }
20691 #[doc = "Auto baud rate enable"]
20692 pub const fn abren(&self) -> bool {
20693 let val = (self.0 >> 20usize) & 0x01;
20694 val != 0
20695 }
20696 #[doc = "Auto baud rate enable"]
20697 pub fn set_abren(&mut self, val: bool) {
20698 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize);
20699 }
20700 #[doc = "Auto baud rate mode"]
20701 pub const fn abrmod(&self) -> super::vals::Abrmod {
20702 let val = (self.0 >> 21usize) & 0x03;
20703 super::vals::Abrmod(val as u8)
20704 }
20705 #[doc = "Auto baud rate mode"]
20706 pub fn set_abrmod(&mut self, val: super::vals::Abrmod) {
20707 self.0 = (self.0 & !(0x03 << 21usize)) | (((val.0 as u32) & 0x03) << 21usize);
20708 }
20709 #[doc = "Receiver timeout enable"]
20710 pub const fn rtoen(&self) -> bool {
20711 let val = (self.0 >> 23usize) & 0x01;
20712 val != 0
20713 }
20714 #[doc = "Receiver timeout enable"]
20715 pub fn set_rtoen(&mut self, val: bool) {
20716 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
20717 }
20718 #[doc = "Address of the USART node"]
20719 pub const fn add(&self) -> u8 {
20720 let val = (self.0 >> 24usize) & 0xff;
20721 val as u8
20722 }
20723 #[doc = "Address of the USART node"]
20724 pub fn set_add(&mut self, val: u8) {
20725 self.0 = (self.0 & !(0xff << 24usize)) | (((val as u32) & 0xff) << 24usize);
20726 }
20727 } 18315 }
20728 impl Default for Cr2 { 18316 impl Default for Cr2 {
20729 fn default() -> Cr2 { 18317 fn default() -> Cr2 {
20730 Cr2(0) 18318 Cr2(0)
20731 } 18319 }
20732 } 18320 }
20733 #[doc = "Request register"] 18321 #[doc = "Guard time and prescaler register"]
20734 #[repr(transparent)] 18322 #[repr(transparent)]
20735 #[derive(Copy, Clone, Eq, PartialEq)] 18323 #[derive(Copy, Clone, Eq, PartialEq)]
20736 pub struct Rqr(pub u32); 18324 pub struct Gtpr(pub u32);
20737 impl Rqr { 18325 impl Gtpr {
20738 #[doc = "Auto baud rate request"] 18326 #[doc = "Prescaler value"]
20739 pub const fn abrrq(&self) -> super::vals::Abrrq { 18327 pub const fn psc(&self) -> u8 {
20740 let val = (self.0 >> 0usize) & 0x01; 18328 let val = (self.0 >> 0usize) & 0xff;
20741 super::vals::Abrrq(val as u8) 18329 val as u8
20742 }
20743 #[doc = "Auto baud rate request"]
20744 pub fn set_abrrq(&mut self, val: super::vals::Abrrq) {
20745 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
20746 }
20747 #[doc = "Send break request"]
20748 pub const fn sbkrq(&self) -> super::vals::Sbkrq {
20749 let val = (self.0 >> 1usize) & 0x01;
20750 super::vals::Sbkrq(val as u8)
20751 }
20752 #[doc = "Send break request"]
20753 pub fn set_sbkrq(&mut self, val: super::vals::Sbkrq) {
20754 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
20755 }
20756 #[doc = "Mute mode request"]
20757 pub const fn mmrq(&self) -> super::vals::Mmrq {
20758 let val = (self.0 >> 2usize) & 0x01;
20759 super::vals::Mmrq(val as u8)
20760 }
20761 #[doc = "Mute mode request"]
20762 pub fn set_mmrq(&mut self, val: super::vals::Mmrq) {
20763 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
20764 }
20765 #[doc = "Receive data flush request"]
20766 pub const fn rxfrq(&self) -> super::vals::Rxfrq {
20767 let val = (self.0 >> 3usize) & 0x01;
20768 super::vals::Rxfrq(val as u8)
20769 } 18330 }
20770 #[doc = "Receive data flush request"] 18331 #[doc = "Prescaler value"]
20771 pub fn set_rxfrq(&mut self, val: super::vals::Rxfrq) { 18332 pub fn set_psc(&mut self, val: u8) {
20772 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize); 18333 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
20773 } 18334 }
20774 #[doc = "Transmit data flush request"] 18335 #[doc = "Guard time value"]
20775 pub const fn txfrq(&self) -> super::vals::Txfrq { 18336 pub const fn gt(&self) -> u8 {
20776 let val = (self.0 >> 4usize) & 0x01; 18337 let val = (self.0 >> 8usize) & 0xff;
20777 super::vals::Txfrq(val as u8) 18338 val as u8
20778 } 18339 }
20779 #[doc = "Transmit data flush request"] 18340 #[doc = "Guard time value"]
20780 pub fn set_txfrq(&mut self, val: super::vals::Txfrq) { 18341 pub fn set_gt(&mut self, val: u8) {
20781 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 18342 self.0 = (self.0 & !(0xff << 8usize)) | (((val as u32) & 0xff) << 8usize);
20782 } 18343 }
20783 } 18344 }
20784 impl Default for Rqr { 18345 impl Default for Gtpr {
20785 fn default() -> Rqr { 18346 fn default() -> Gtpr {
20786 Rqr(0) 18347 Gtpr(0)
20787 } 18348 }
20788 } 18349 }
20789 #[doc = "Data register"] 18350 #[doc = "Data register"]
@@ -20791,12 +18352,12 @@ pub mod usart_v2 {
20791 #[derive(Copy, Clone, Eq, PartialEq)] 18352 #[derive(Copy, Clone, Eq, PartialEq)]
20792 pub struct Dr(pub u32); 18353 pub struct Dr(pub u32);
20793 impl Dr { 18354 impl Dr {
20794 #[doc = "data value"] 18355 #[doc = "Data value"]
20795 pub const fn dr(&self) -> u16 { 18356 pub const fn dr(&self) -> u16 {
20796 let val = (self.0 >> 0usize) & 0x01ff; 18357 let val = (self.0 >> 0usize) & 0x01ff;
20797 val as u16 18358 val as u16
20798 } 18359 }
20799 #[doc = "data value"] 18360 #[doc = "Data value"]
20800 pub fn set_dr(&mut self, val: u16) { 18361 pub fn set_dr(&mut self, val: u16) {
20801 self.0 = (self.0 & !(0x01ff << 0usize)) | (((val as u32) & 0x01ff) << 0usize); 18362 self.0 = (self.0 & !(0x01ff << 0usize)) | (((val as u32) & 0x01ff) << 0usize);
20802 } 18363 }
@@ -20806,40 +18367,103 @@ pub mod usart_v2 {
20806 Dr(0) 18367 Dr(0)
20807 } 18368 }
20808 } 18369 }
20809 #[doc = "Guard time and prescaler register"] 18370 #[doc = "Control register 2"]
20810 #[repr(transparent)] 18371 #[repr(transparent)]
20811 #[derive(Copy, Clone, Eq, PartialEq)] 18372 #[derive(Copy, Clone, Eq, PartialEq)]
20812 pub struct Gtpr(pub u32); 18373 pub struct Cr2Usart(pub u32);
20813 impl Gtpr { 18374 impl Cr2Usart {
20814 #[doc = "Prescaler value"] 18375 #[doc = "Address of the USART node"]
20815 pub const fn psc(&self) -> u8 { 18376 pub const fn add(&self) -> u8 {
20816 let val = (self.0 >> 0usize) & 0xff; 18377 let val = (self.0 >> 0usize) & 0x0f;
20817 val as u8 18378 val as u8
20818 } 18379 }
20819 #[doc = "Prescaler value"] 18380 #[doc = "Address of the USART node"]
20820 pub fn set_psc(&mut self, val: u8) { 18381 pub fn set_add(&mut self, val: u8) {
20821 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize); 18382 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
20822 } 18383 }
20823 #[doc = "Guard time value"] 18384 #[doc = "lin break detection length"]
20824 pub const fn gt(&self) -> u8 { 18385 pub const fn lbdl(&self) -> super::vals::Lbdl {
20825 let val = (self.0 >> 8usize) & 0xff; 18386 let val = (self.0 >> 5usize) & 0x01;
20826 val as u8 18387 super::vals::Lbdl(val as u8)
20827 } 18388 }
20828 #[doc = "Guard time value"] 18389 #[doc = "lin break detection length"]
20829 pub fn set_gt(&mut self, val: u8) { 18390 pub fn set_lbdl(&mut self, val: super::vals::Lbdl) {
20830 self.0 = (self.0 & !(0xff << 8usize)) | (((val as u32) & 0xff) << 8usize); 18391 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
18392 }
18393 #[doc = "LIN break detection interrupt enable"]
18394 pub const fn lbdie(&self) -> bool {
18395 let val = (self.0 >> 6usize) & 0x01;
18396 val != 0
18397 }
18398 #[doc = "LIN break detection interrupt enable"]
18399 pub fn set_lbdie(&mut self, val: bool) {
18400 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
18401 }
18402 #[doc = "Last bit clock pulse"]
18403 pub const fn lbcl(&self) -> bool {
18404 let val = (self.0 >> 8usize) & 0x01;
18405 val != 0
18406 }
18407 #[doc = "Last bit clock pulse"]
18408 pub fn set_lbcl(&mut self, val: bool) {
18409 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
18410 }
18411 #[doc = "Clock phase"]
18412 pub const fn cpha(&self) -> super::vals::Cpha {
18413 let val = (self.0 >> 9usize) & 0x01;
18414 super::vals::Cpha(val as u8)
18415 }
18416 #[doc = "Clock phase"]
18417 pub fn set_cpha(&mut self, val: super::vals::Cpha) {
18418 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
18419 }
18420 #[doc = "Clock polarity"]
18421 pub const fn cpol(&self) -> super::vals::Cpol {
18422 let val = (self.0 >> 10usize) & 0x01;
18423 super::vals::Cpol(val as u8)
18424 }
18425 #[doc = "Clock polarity"]
18426 pub fn set_cpol(&mut self, val: super::vals::Cpol) {
18427 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
18428 }
18429 #[doc = "Clock enable"]
18430 pub const fn clken(&self) -> bool {
18431 let val = (self.0 >> 11usize) & 0x01;
18432 val != 0
18433 }
18434 #[doc = "Clock enable"]
18435 pub fn set_clken(&mut self, val: bool) {
18436 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
18437 }
18438 #[doc = "STOP bits"]
18439 pub const fn stop(&self) -> super::vals::Stop {
18440 let val = (self.0 >> 12usize) & 0x03;
18441 super::vals::Stop(val as u8)
18442 }
18443 #[doc = "STOP bits"]
18444 pub fn set_stop(&mut self, val: super::vals::Stop) {
18445 self.0 = (self.0 & !(0x03 << 12usize)) | (((val.0 as u32) & 0x03) << 12usize);
18446 }
18447 #[doc = "LIN mode enable"]
18448 pub const fn linen(&self) -> bool {
18449 let val = (self.0 >> 14usize) & 0x01;
18450 val != 0
18451 }
18452 #[doc = "LIN mode enable"]
18453 pub fn set_linen(&mut self, val: bool) {
18454 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
20831 } 18455 }
20832 } 18456 }
20833 impl Default for Gtpr { 18457 impl Default for Cr2Usart {
20834 fn default() -> Gtpr { 18458 fn default() -> Cr2Usart {
20835 Gtpr(0) 18459 Cr2Usart(0)
20836 } 18460 }
20837 } 18461 }
20838 #[doc = "Control register 3"] 18462 #[doc = "Control register 3"]
20839 #[repr(transparent)] 18463 #[repr(transparent)]
20840 #[derive(Copy, Clone, Eq, PartialEq)] 18464 #[derive(Copy, Clone, Eq, PartialEq)]
20841 pub struct Cr3(pub u32); 18465 pub struct Cr3Usart(pub u32);
20842 impl Cr3 { 18466 impl Cr3Usart {
20843 #[doc = "Error interrupt enable"] 18467 #[doc = "Error interrupt enable"]
20844 pub const fn eie(&self) -> bool { 18468 pub const fn eie(&self) -> bool {
20845 let val = (self.0 >> 0usize) & 0x01; 18469 let val = (self.0 >> 0usize) & 0x01;
@@ -20939,77 +18563,263 @@ pub mod usart_v2 {
20939 pub fn set_ctsie(&mut self, val: bool) { 18563 pub fn set_ctsie(&mut self, val: bool) {
20940 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize); 18564 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
20941 } 18565 }
20942 #[doc = "One sample bit method enable"] 18566 }
20943 pub const fn onebit(&self) -> super::vals::Onebit { 18567 impl Default for Cr3Usart {
20944 let val = (self.0 >> 11usize) & 0x01; 18568 fn default() -> Cr3Usart {
20945 super::vals::Onebit(val as u8) 18569 Cr3Usart(0)
20946 } 18570 }
20947 #[doc = "One sample bit method enable"] 18571 }
20948 pub fn set_onebit(&mut self, val: super::vals::Onebit) { 18572 #[doc = "Status register"]
20949 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize); 18573 #[repr(transparent)]
18574 #[derive(Copy, Clone, Eq, PartialEq)]
18575 pub struct Sr(pub u32);
18576 impl Sr {
18577 #[doc = "Parity error"]
18578 pub const fn pe(&self) -> bool {
18579 let val = (self.0 >> 0usize) & 0x01;
18580 val != 0
20950 } 18581 }
20951 #[doc = "Overrun Disable"] 18582 #[doc = "Parity error"]
20952 pub const fn ovrdis(&self) -> super::vals::Ovrdis { 18583 pub fn set_pe(&mut self, val: bool) {
20953 let val = (self.0 >> 12usize) & 0x01; 18584 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
20954 super::vals::Ovrdis(val as u8)
20955 } 18585 }
20956 #[doc = "Overrun Disable"] 18586 #[doc = "Framing error"]
20957 pub fn set_ovrdis(&mut self, val: super::vals::Ovrdis) { 18587 pub const fn fe(&self) -> bool {
20958 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize); 18588 let val = (self.0 >> 1usize) & 0x01;
18589 val != 0
20959 } 18590 }
20960 #[doc = "DMA Disable on Reception Error"] 18591 #[doc = "Framing error"]
20961 pub const fn ddre(&self) -> bool { 18592 pub fn set_fe(&mut self, val: bool) {
20962 let val = (self.0 >> 13usize) & 0x01; 18593 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
18594 }
18595 #[doc = "Noise error flag"]
18596 pub const fn ne(&self) -> bool {
18597 let val = (self.0 >> 2usize) & 0x01;
20963 val != 0 18598 val != 0
20964 } 18599 }
20965 #[doc = "DMA Disable on Reception Error"] 18600 #[doc = "Noise error flag"]
20966 pub fn set_ddre(&mut self, val: bool) { 18601 pub fn set_ne(&mut self, val: bool) {
20967 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize); 18602 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
20968 } 18603 }
20969 #[doc = "Driver enable mode"] 18604 #[doc = "Overrun error"]
20970 pub const fn dem(&self) -> bool { 18605 pub const fn ore(&self) -> bool {
20971 let val = (self.0 >> 14usize) & 0x01; 18606 let val = (self.0 >> 3usize) & 0x01;
20972 val != 0 18607 val != 0
20973 } 18608 }
20974 #[doc = "Driver enable mode"] 18609 #[doc = "Overrun error"]
20975 pub fn set_dem(&mut self, val: bool) { 18610 pub fn set_ore(&mut self, val: bool) {
20976 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize); 18611 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
20977 } 18612 }
20978 #[doc = "Driver enable polarity selection"] 18613 #[doc = "IDLE line detected"]
20979 pub const fn dep(&self) -> super::vals::Dep { 18614 pub const fn idle(&self) -> bool {
20980 let val = (self.0 >> 15usize) & 0x01; 18615 let val = (self.0 >> 4usize) & 0x01;
20981 super::vals::Dep(val as u8) 18616 val != 0
20982 } 18617 }
20983 #[doc = "Driver enable polarity selection"] 18618 #[doc = "IDLE line detected"]
20984 pub fn set_dep(&mut self, val: super::vals::Dep) { 18619 pub fn set_idle(&mut self, val: bool) {
20985 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize); 18620 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
20986 } 18621 }
20987 #[doc = "Smartcard auto-retry count"] 18622 #[doc = "Read data register not empty"]
20988 pub const fn scarcnt(&self) -> u8 { 18623 pub const fn rxne(&self) -> bool {
20989 let val = (self.0 >> 17usize) & 0x07; 18624 let val = (self.0 >> 5usize) & 0x01;
20990 val as u8 18625 val != 0
20991 } 18626 }
20992 #[doc = "Smartcard auto-retry count"] 18627 #[doc = "Read data register not empty"]
20993 pub fn set_scarcnt(&mut self, val: u8) { 18628 pub fn set_rxne(&mut self, val: bool) {
20994 self.0 = (self.0 & !(0x07 << 17usize)) | (((val as u32) & 0x07) << 17usize); 18629 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
20995 } 18630 }
20996 #[doc = "Wakeup from Stop mode interrupt flag selection"] 18631 #[doc = "Transmission complete"]
20997 pub const fn wus(&self) -> super::vals::Wus { 18632 pub const fn tc(&self) -> bool {
20998 let val = (self.0 >> 20usize) & 0x03; 18633 let val = (self.0 >> 6usize) & 0x01;
20999 super::vals::Wus(val as u8) 18634 val != 0
21000 } 18635 }
21001 #[doc = "Wakeup from Stop mode interrupt flag selection"] 18636 #[doc = "Transmission complete"]
21002 pub fn set_wus(&mut self, val: super::vals::Wus) { 18637 pub fn set_tc(&mut self, val: bool) {
21003 self.0 = (self.0 & !(0x03 << 20usize)) | (((val.0 as u32) & 0x03) << 20usize); 18638 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
21004 } 18639 }
21005 #[doc = "Wakeup from Stop mode interrupt enable"] 18640 #[doc = "Transmit data register empty"]
21006 pub const fn wufie(&self) -> bool { 18641 pub const fn txe(&self) -> bool {
21007 let val = (self.0 >> 22usize) & 0x01; 18642 let val = (self.0 >> 7usize) & 0x01;
21008 val != 0 18643 val != 0
21009 } 18644 }
21010 #[doc = "Wakeup from Stop mode interrupt enable"] 18645 #[doc = "Transmit data register empty"]
21011 pub fn set_wufie(&mut self, val: bool) { 18646 pub fn set_txe(&mut self, val: bool) {
21012 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize); 18647 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
18648 }
18649 #[doc = "LIN break detection flag"]
18650 pub const fn lbd(&self) -> bool {
18651 let val = (self.0 >> 8usize) & 0x01;
18652 val != 0
18653 }
18654 #[doc = "LIN break detection flag"]
18655 pub fn set_lbd(&mut self, val: bool) {
18656 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
18657 }
18658 }
18659 impl Default for Sr {
18660 fn default() -> Sr {
18661 Sr(0)
18662 }
18663 }
18664 #[doc = "Status register"]
18665 #[repr(transparent)]
18666 #[derive(Copy, Clone, Eq, PartialEq)]
18667 pub struct SrUsart(pub u32);
18668 impl SrUsart {
18669 #[doc = "Parity error"]
18670 pub const fn pe(&self) -> bool {
18671 let val = (self.0 >> 0usize) & 0x01;
18672 val != 0
18673 }
18674 #[doc = "Parity error"]
18675 pub fn set_pe(&mut self, val: bool) {
18676 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
18677 }
18678 #[doc = "Framing error"]
18679 pub const fn fe(&self) -> bool {
18680 let val = (self.0 >> 1usize) & 0x01;
18681 val != 0
18682 }
18683 #[doc = "Framing error"]
18684 pub fn set_fe(&mut self, val: bool) {
18685 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
18686 }
18687 #[doc = "Noise error flag"]
18688 pub const fn ne(&self) -> bool {
18689 let val = (self.0 >> 2usize) & 0x01;
18690 val != 0
18691 }
18692 #[doc = "Noise error flag"]
18693 pub fn set_ne(&mut self, val: bool) {
18694 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
18695 }
18696 #[doc = "Overrun error"]
18697 pub const fn ore(&self) -> bool {
18698 let val = (self.0 >> 3usize) & 0x01;
18699 val != 0
18700 }
18701 #[doc = "Overrun error"]
18702 pub fn set_ore(&mut self, val: bool) {
18703 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
18704 }
18705 #[doc = "IDLE line detected"]
18706 pub const fn idle(&self) -> bool {
18707 let val = (self.0 >> 4usize) & 0x01;
18708 val != 0
18709 }
18710 #[doc = "IDLE line detected"]
18711 pub fn set_idle(&mut self, val: bool) {
18712 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
18713 }
18714 #[doc = "Read data register not empty"]
18715 pub const fn rxne(&self) -> bool {
18716 let val = (self.0 >> 5usize) & 0x01;
18717 val != 0
18718 }
18719 #[doc = "Read data register not empty"]
18720 pub fn set_rxne(&mut self, val: bool) {
18721 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
18722 }
18723 #[doc = "Transmission complete"]
18724 pub const fn tc(&self) -> bool {
18725 let val = (self.0 >> 6usize) & 0x01;
18726 val != 0
18727 }
18728 #[doc = "Transmission complete"]
18729 pub fn set_tc(&mut self, val: bool) {
18730 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
18731 }
18732 #[doc = "Transmit data register empty"]
18733 pub const fn txe(&self) -> bool {
18734 let val = (self.0 >> 7usize) & 0x01;
18735 val != 0
18736 }
18737 #[doc = "Transmit data register empty"]
18738 pub fn set_txe(&mut self, val: bool) {
18739 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
18740 }
18741 #[doc = "LIN break detection flag"]
18742 pub const fn lbd(&self) -> bool {
18743 let val = (self.0 >> 8usize) & 0x01;
18744 val != 0
18745 }
18746 #[doc = "LIN break detection flag"]
18747 pub fn set_lbd(&mut self, val: bool) {
18748 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
18749 }
18750 #[doc = "CTS flag"]
18751 pub const fn cts(&self) -> bool {
18752 let val = (self.0 >> 9usize) & 0x01;
18753 val != 0
18754 }
18755 #[doc = "CTS flag"]
18756 pub fn set_cts(&mut self, val: bool) {
18757 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
18758 }
18759 }
18760 impl Default for SrUsart {
18761 fn default() -> SrUsart {
18762 SrUsart(0)
18763 }
18764 }
18765 #[doc = "Control register 3"]
18766 #[repr(transparent)]
18767 #[derive(Copy, Clone, Eq, PartialEq)]
18768 pub struct Cr3(pub u32);
18769 impl Cr3 {
18770 #[doc = "Error interrupt enable"]
18771 pub const fn eie(&self) -> bool {
18772 let val = (self.0 >> 0usize) & 0x01;
18773 val != 0
18774 }
18775 #[doc = "Error interrupt enable"]
18776 pub fn set_eie(&mut self, val: bool) {
18777 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
18778 }
18779 #[doc = "IrDA mode enable"]
18780 pub const fn iren(&self) -> bool {
18781 let val = (self.0 >> 1usize) & 0x01;
18782 val != 0
18783 }
18784 #[doc = "IrDA mode enable"]
18785 pub fn set_iren(&mut self, val: bool) {
18786 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
18787 }
18788 #[doc = "IrDA low-power"]
18789 pub const fn irlp(&self) -> super::vals::Irlp {
18790 let val = (self.0 >> 2usize) & 0x01;
18791 super::vals::Irlp(val as u8)
18792 }
18793 #[doc = "IrDA low-power"]
18794 pub fn set_irlp(&mut self, val: super::vals::Irlp) {
18795 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
18796 }
18797 #[doc = "Half-duplex selection"]
18798 pub const fn hdsel(&self) -> super::vals::Hdsel {
18799 let val = (self.0 >> 3usize) & 0x01;
18800 super::vals::Hdsel(val as u8)
18801 }
18802 #[doc = "Half-duplex selection"]
18803 pub fn set_hdsel(&mut self, val: super::vals::Hdsel) {
18804 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
18805 }
18806 #[doc = "DMA enable receiver"]
18807 pub const fn dmar(&self) -> bool {
18808 let val = (self.0 >> 6usize) & 0x01;
18809 val != 0
18810 }
18811 #[doc = "DMA enable receiver"]
18812 pub fn set_dmar(&mut self, val: bool) {
18813 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
18814 }
18815 #[doc = "DMA enable transmitter"]
18816 pub const fn dmat(&self) -> bool {
18817 let val = (self.0 >> 7usize) & 0x01;
18818 val != 0
18819 }
18820 #[doc = "DMA enable transmitter"]
18821 pub fn set_dmat(&mut self, val: bool) {
18822 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
21013 } 18823 }
21014 } 18824 }
21015 impl Default for Cr3 { 18825 impl Default for Cr3 {
@@ -21022,23 +18832,23 @@ pub mod usart_v2 {
21022 #[derive(Copy, Clone, Eq, PartialEq)] 18832 #[derive(Copy, Clone, Eq, PartialEq)]
21023 pub struct Cr1(pub u32); 18833 pub struct Cr1(pub u32);
21024 impl Cr1 { 18834 impl Cr1 {
21025 #[doc = "USART enable"] 18835 #[doc = "Send break"]
21026 pub const fn ue(&self) -> bool { 18836 pub const fn sbk(&self) -> super::vals::Sbk {
21027 let val = (self.0 >> 0usize) & 0x01; 18837 let val = (self.0 >> 0usize) & 0x01;
21028 val != 0 18838 super::vals::Sbk(val as u8)
21029 } 18839 }
21030 #[doc = "USART enable"] 18840 #[doc = "Send break"]
21031 pub fn set_ue(&mut self, val: bool) { 18841 pub fn set_sbk(&mut self, val: super::vals::Sbk) {
21032 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 18842 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
21033 } 18843 }
21034 #[doc = "USART enable in Stop mode"] 18844 #[doc = "Receiver wakeup"]
21035 pub const fn uesm(&self) -> bool { 18845 pub const fn rwu(&self) -> super::vals::Rwu {
21036 let val = (self.0 >> 1usize) & 0x01; 18846 let val = (self.0 >> 1usize) & 0x01;
21037 val != 0 18847 super::vals::Rwu(val as u8)
21038 } 18848 }
21039 #[doc = "USART enable in Stop mode"] 18849 #[doc = "Receiver wakeup"]
21040 pub fn set_uesm(&mut self, val: bool) { 18850 pub fn set_rwu(&mut self, val: super::vals::Rwu) {
21041 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 18851 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
21042 } 18852 }
21043 #[doc = "Receiver enable"] 18853 #[doc = "Receiver enable"]
21044 pub const fn re(&self) -> bool { 18854 pub const fn re(&self) -> bool {
@@ -21085,12 +18895,12 @@ pub mod usart_v2 {
21085 pub fn set_tcie(&mut self, val: bool) { 18895 pub fn set_tcie(&mut self, val: bool) {
21086 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 18896 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
21087 } 18897 }
21088 #[doc = "interrupt enable"] 18898 #[doc = "TXE interrupt enable"]
21089 pub const fn txeie(&self) -> bool { 18899 pub const fn txeie(&self) -> bool {
21090 let val = (self.0 >> 7usize) & 0x01; 18900 let val = (self.0 >> 7usize) & 0x01;
21091 val != 0 18901 val != 0
21092 } 18902 }
21093 #[doc = "interrupt enable"] 18903 #[doc = "TXE interrupt enable"]
21094 pub fn set_txeie(&mut self, val: bool) { 18904 pub fn set_txeie(&mut self, val: bool) {
21095 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 18905 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
21096 } 18906 }
@@ -21121,104 +18931,66 @@ pub mod usart_v2 {
21121 pub fn set_pce(&mut self, val: bool) { 18931 pub fn set_pce(&mut self, val: bool) {
21122 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize); 18932 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
21123 } 18933 }
21124 #[doc = "Receiver wakeup method"] 18934 #[doc = "Wakeup method"]
21125 pub const fn wake(&self) -> bool { 18935 pub const fn wake(&self) -> super::vals::Wake {
21126 let val = (self.0 >> 11usize) & 0x01; 18936 let val = (self.0 >> 11usize) & 0x01;
21127 val != 0 18937 super::vals::Wake(val as u8)
21128 }
21129 #[doc = "Receiver wakeup method"]
21130 pub fn set_wake(&mut self, val: bool) {
21131 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
21132 }
21133 #[doc = "Word length"]
21134 pub const fn m0(&self) -> super::vals::M0 {
21135 let val = (self.0 >> 12usize) & 0x01;
21136 super::vals::M0(val as u8)
21137 } 18938 }
21138 #[doc = "Word length"] 18939 #[doc = "Wakeup method"]
21139 pub fn set_m0(&mut self, val: super::vals::M0) { 18940 pub fn set_wake(&mut self, val: super::vals::Wake) {
21140 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize); 18941 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
21141 } 18942 }
21142 #[doc = "Word length"] 18943 #[doc = "Word length"]
21143 pub const fn m1(&self) -> super::vals::M1 { 18944 pub const fn m(&self) -> super::vals::M {
21144 let val = (self.0 >> 12usize) & 0x01; 18945 let val = (self.0 >> 12usize) & 0x01;
21145 super::vals::M1(val as u8) 18946 super::vals::M(val as u8)
21146 } 18947 }
21147 #[doc = "Word length"] 18948 #[doc = "Word length"]
21148 pub fn set_m1(&mut self, val: super::vals::M1) { 18949 pub fn set_m(&mut self, val: super::vals::M) {
21149 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize); 18950 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
21150 } 18951 }
21151 #[doc = "Mute mode enable"] 18952 #[doc = "USART enable"]
21152 pub const fn mme(&self) -> bool { 18953 pub const fn ue(&self) -> bool {
21153 let val = (self.0 >> 13usize) & 0x01; 18954 let val = (self.0 >> 13usize) & 0x01;
21154 val != 0 18955 val != 0
21155 } 18956 }
21156 #[doc = "Mute mode enable"] 18957 #[doc = "USART enable"]
21157 pub fn set_mme(&mut self, val: bool) { 18958 pub fn set_ue(&mut self, val: bool) {
21158 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize); 18959 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
21159 } 18960 }
21160 #[doc = "Character match interrupt enable"] 18961 }
21161 pub const fn cmie(&self) -> bool { 18962 impl Default for Cr1 {
21162 let val = (self.0 >> 14usize) & 0x01; 18963 fn default() -> Cr1 {
21163 val != 0 18964 Cr1(0)
21164 }
21165 #[doc = "Character match interrupt enable"]
21166 pub fn set_cmie(&mut self, val: bool) {
21167 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
21168 }
21169 #[doc = "Oversampling mode"]
21170 pub fn over(&self, n: usize) -> super::vals::Over {
21171 assert!(n < 1usize);
21172 let offs = 15usize + n * 0usize;
21173 let val = (self.0 >> offs) & 0x01;
21174 super::vals::Over(val as u8)
21175 }
21176 #[doc = "Oversampling mode"]
21177 pub fn set_over(&mut self, n: usize, val: super::vals::Over) {
21178 assert!(n < 1usize);
21179 let offs = 15usize + n * 0usize;
21180 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
21181 }
21182 #[doc = "Driver Enable deassertion time"]
21183 pub const fn dedt(&self) -> u8 {
21184 let val = (self.0 >> 16usize) & 0x1f;
21185 val as u8
21186 }
21187 #[doc = "Driver Enable deassertion time"]
21188 pub fn set_dedt(&mut self, val: u8) {
21189 self.0 = (self.0 & !(0x1f << 16usize)) | (((val as u32) & 0x1f) << 16usize);
21190 } 18965 }
21191 #[doc = "Driver Enable assertion time"] 18966 }
21192 pub const fn deat(&self) -> u8 { 18967 #[doc = "Baud rate register"]
21193 let val = (self.0 >> 21usize) & 0x1f; 18968 #[repr(transparent)]
18969 #[derive(Copy, Clone, Eq, PartialEq)]
18970 pub struct Brr(pub u32);
18971 impl Brr {
18972 #[doc = "fraction of USARTDIV"]
18973 pub const fn div_fraction(&self) -> u8 {
18974 let val = (self.0 >> 0usize) & 0x0f;
21194 val as u8 18975 val as u8
21195 } 18976 }
21196 #[doc = "Driver Enable assertion time"] 18977 #[doc = "fraction of USARTDIV"]
21197 pub fn set_deat(&mut self, val: u8) { 18978 pub fn set_div_fraction(&mut self, val: u8) {
21198 self.0 = (self.0 & !(0x1f << 21usize)) | (((val as u32) & 0x1f) << 21usize); 18979 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
21199 }
21200 #[doc = "Receiver timeout interrupt enable"]
21201 pub const fn rtoie(&self) -> bool {
21202 let val = (self.0 >> 26usize) & 0x01;
21203 val != 0
21204 }
21205 #[doc = "Receiver timeout interrupt enable"]
21206 pub fn set_rtoie(&mut self, val: bool) {
21207 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
21208 } 18980 }
21209 #[doc = "End of Block interrupt enable"] 18981 #[doc = "mantissa of USARTDIV"]
21210 pub const fn eobie(&self) -> bool { 18982 pub const fn div_mantissa(&self) -> u16 {
21211 let val = (self.0 >> 27usize) & 0x01; 18983 let val = (self.0 >> 4usize) & 0x0fff;
21212 val != 0 18984 val as u16
21213 } 18985 }
21214 #[doc = "End of Block interrupt enable"] 18986 #[doc = "mantissa of USARTDIV"]
21215 pub fn set_eobie(&mut self, val: bool) { 18987 pub fn set_div_mantissa(&mut self, val: u16) {
21216 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize); 18988 self.0 = (self.0 & !(0x0fff << 4usize)) | (((val as u32) & 0x0fff) << 4usize);
21217 } 18989 }
21218 } 18990 }
21219 impl Default for Cr1 { 18991 impl Default for Brr {
21220 fn default() -> Cr1 { 18992 fn default() -> Brr {
21221 Cr1(0) 18993 Brr(0)
21222 } 18994 }
21223 } 18995 }
21224 } 18996 }
@@ -21226,132 +18998,66 @@ pub mod usart_v2 {
21226 use crate::generic::*; 18998 use crate::generic::*;
21227 #[repr(transparent)] 18999 #[repr(transparent)]
21228 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19000 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21229 pub struct Dep(pub u8); 19001 pub struct M(pub u8);
21230 impl Dep { 19002 impl M {
21231 #[doc = "DE signal is active high"] 19003 #[doc = "8 data bits"]
21232 pub const HIGH: Self = Self(0); 19004 pub const M8: Self = Self(0);
21233 #[doc = "DE signal is active low"] 19005 #[doc = "9 data bits"]
21234 pub const LOW: Self = Self(0x01); 19006 pub const M9: Self = Self(0x01);
21235 }
21236 #[repr(transparent)]
21237 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21238 pub struct Addm(pub u8);
21239 impl Addm {
21240 #[doc = "4-bit address detection"]
21241 pub const BIT4: Self = Self(0);
21242 #[doc = "7-bit address detection"]
21243 pub const BIT7: Self = Self(0x01);
21244 }
21245 #[repr(transparent)]
21246 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21247 pub struct Wus(pub u8);
21248 impl Wus {
21249 #[doc = "WUF active on address match"]
21250 pub const ADDRESS: Self = Self(0);
21251 #[doc = "WuF active on Start bit detection"]
21252 pub const START: Self = Self(0x02);
21253 #[doc = "WUF active on RXNE"]
21254 pub const RXNE: Self = Self(0x03);
21255 }
21256 #[repr(transparent)]
21257 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21258 pub struct Rxfrq(pub u8);
21259 impl Rxfrq {
21260 #[doc = "clears the RXNE flag. This allows to discard the received data without reading it, and avoid an overrun condition"]
21261 pub const DISCARD: Self = Self(0x01);
21262 }
21263 #[repr(transparent)]
21264 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21265 pub struct Ddre(pub u8);
21266 impl Ddre {
21267 #[doc = "DMA is not disabled in case of reception error"]
21268 pub const NOTDISABLED: Self = Self(0);
21269 #[doc = "DMA is disabled following a reception error"]
21270 pub const DISABLED: Self = Self(0x01);
21271 }
21272 #[repr(transparent)]
21273 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21274 pub struct Ps(pub u8);
21275 impl Ps {
21276 #[doc = "Even parity"]
21277 pub const EVEN: Self = Self(0);
21278 #[doc = "Odd parity"]
21279 pub const ODD: Self = Self(0x01);
21280 }
21281 #[repr(transparent)]
21282 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21283 pub struct Cpol(pub u8);
21284 impl Cpol {
21285 #[doc = "Steady low value on CK pin outside transmission window"]
21286 pub const LOW: Self = Self(0);
21287 #[doc = "Steady high value on CK pin outside transmission window"]
21288 pub const HIGH: Self = Self(0x01);
21289 } 19007 }
21290 #[repr(transparent)] 19008 #[repr(transparent)]
21291 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19009 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21292 pub struct Onebit(pub u8); 19010 pub struct Lbdl(pub u8);
21293 impl Onebit { 19011 impl Lbdl {
21294 #[doc = "Three sample bit method"] 19012 #[doc = "10-bit break detection"]
21295 pub const SAMPLE3: Self = Self(0); 19013 pub const LBDL10: Self = Self(0);
21296 #[doc = "One sample bit method"] 19014 #[doc = "11-bit break detection"]
21297 pub const SAMPLE1: Self = Self(0x01); 19015 pub const LBDL11: Self = Self(0x01);
21298 } 19016 }
21299 #[repr(transparent)] 19017 #[repr(transparent)]
21300 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19018 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21301 pub struct Msbfirst(pub u8); 19019 pub struct Irlp(pub u8);
21302 impl Msbfirst { 19020 impl Irlp {
21303 #[doc = "data is transmitted/received with data bit 0 first, following the start bit"] 19021 #[doc = "Normal mode"]
21304 pub const LSB: Self = Self(0); 19022 pub const NORMAL: Self = Self(0);
21305 #[doc = "data is transmitted/received with MSB (bit 7/8/9) first, following the start bit"] 19023 #[doc = "Low-power mode"]
21306 pub const MSB: Self = Self(0x01); 19024 pub const LOWPOWER: Self = Self(0x01);
21307 } 19025 }
21308 #[repr(transparent)] 19026 #[repr(transparent)]
21309 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19027 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21310 pub struct Mmrq(pub u8); 19028 pub struct Rwu(pub u8);
21311 impl Mmrq { 19029 impl Rwu {
21312 #[doc = "Puts the USART in mute mode and sets the RWU flag"] 19030 #[doc = "Receiver in active mode"]
19031 pub const ACTIVE: Self = Self(0);
19032 #[doc = "Receiver in mute mode"]
21313 pub const MUTE: Self = Self(0x01); 19033 pub const MUTE: Self = Self(0x01);
21314 } 19034 }
21315 #[repr(transparent)] 19035 #[repr(transparent)]
21316 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19036 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21317 pub struct Txinv(pub u8); 19037 pub struct Hdsel(pub u8);
21318 impl Txinv { 19038 impl Hdsel {
21319 #[doc = "TX pin signal works using the standard logic levels"] 19039 #[doc = "Half duplex mode is not selected"]
21320 pub const STANDARD: Self = Self(0); 19040 pub const FULLDUPLEX: Self = Self(0);
21321 #[doc = "TX pin signal values are inverted"] 19041 #[doc = "Half duplex mode is selected"]
21322 pub const INVERTED: Self = Self(0x01); 19042 pub const HALFDUPLEX: Self = Self(0x01);
21323 }
21324 #[repr(transparent)]
21325 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21326 pub struct Ovrdis(pub u8);
21327 impl Ovrdis {
21328 #[doc = "Overrun Error Flag, ORE, is set when received data is not read before receiving new data"]
21329 pub const ENABLED: Self = Self(0);
21330 #[doc = "Overrun functionality is disabled. If new data is received while the RXNE flag is still set the ORE flag is not set and the new received data overwrites the previous content of the RDR register"]
21331 pub const DISABLED: Self = Self(0x01);
21332 }
21333 #[repr(transparent)]
21334 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21335 pub struct Lbdl(pub u8);
21336 impl Lbdl {
21337 #[doc = "10-bit break detection"]
21338 pub const BIT10: Self = Self(0);
21339 #[doc = "11-bit break detection"]
21340 pub const BIT11: Self = Self(0x01);
21341 } 19043 }
21342 #[repr(transparent)] 19044 #[repr(transparent)]
21343 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19045 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21344 pub struct Sbkrq(pub u8); 19046 pub struct Sbk(pub u8);
21345 impl Sbkrq { 19047 impl Sbk {
21346 #[doc = "sets the SBKF flag and request to send a BREAK on the line, as soon as the transmit machine is available"] 19048 #[doc = "No break character is transmitted"]
19049 pub const NOBREAK: Self = Self(0);
19050 #[doc = "Break character transmitted"]
21347 pub const BREAK: Self = Self(0x01); 19051 pub const BREAK: Self = Self(0x01);
21348 } 19052 }
21349 #[repr(transparent)] 19053 #[repr(transparent)]
21350 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19054 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21351 pub struct Abrrq(pub u8); 19055 pub struct Wake(pub u8);
21352 impl Abrrq { 19056 impl Wake {
21353 #[doc = "resets the ABRF flag in the USART_ISR and request an automatic baud rate measurement on the next received data frame"] 19057 #[doc = "USART wakeup on idle line"]
21354 pub const REQUEST: Self = Self(0x01); 19058 pub const IDLELINE: Self = Self(0);
19059 #[doc = "USART wakeup on address mark"]
19060 pub const ADDRESSMARK: Self = Self(0x01);
21355 } 19061 }
21356 #[repr(transparent)] 19062 #[repr(transparent)]
21357 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19063 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
@@ -21359,24 +19065,15 @@ pub mod usart_v2 {
21359 impl Stop { 19065 impl Stop {
21360 #[doc = "1 stop bit"] 19066 #[doc = "1 stop bit"]
21361 pub const STOP1: Self = Self(0); 19067 pub const STOP1: Self = Self(0);
21362 #[doc = "0.5 stop bit"] 19068 #[doc = "0.5 stop bits"]
21363 pub const STOP0P5: Self = Self(0x01); 19069 pub const STOP0P5: Self = Self(0x01);
21364 #[doc = "2 stop bit"] 19070 #[doc = "2 stop bits"]
21365 pub const STOP2: Self = Self(0x02); 19071 pub const STOP2: Self = Self(0x02);
21366 #[doc = "1.5 stop bit"] 19072 #[doc = "1.5 stop bits"]
21367 pub const STOP1P5: Self = Self(0x03); 19073 pub const STOP1P5: Self = Self(0x03);
21368 } 19074 }
21369 #[repr(transparent)] 19075 #[repr(transparent)]
21370 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19076 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21371 pub struct M1(pub u8);
21372 impl M1 {
21373 #[doc = "Use M0 to set the data bits"]
21374 pub const M0: Self = Self(0);
21375 #[doc = "1 start bit, 7 data bits, n stop bits"]
21376 pub const BIT7: Self = Self(0x01);
21377 }
21378 #[repr(transparent)]
21379 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21380 pub struct Cpha(pub u8); 19077 pub struct Cpha(pub u8);
21381 impl Cpha { 19078 impl Cpha {
21382 #[doc = "The first clock transition is the first data capture edge"] 19079 #[doc = "The first clock transition is the first data capture edge"]
@@ -21386,180 +19083,245 @@ pub mod usart_v2 {
21386 } 19083 }
21387 #[repr(transparent)] 19084 #[repr(transparent)]
21388 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19085 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21389 pub struct M0(pub u8); 19086 pub struct Cpol(pub u8);
21390 impl M0 { 19087 impl Cpol {
21391 #[doc = "1 start bit, 8 data bits, n stop bits"] 19088 #[doc = "Steady low value on CK pin outside transmission window"]
21392 pub const BIT8: Self = Self(0); 19089 pub const LOW: Self = Self(0);
21393 #[doc = "1 start bit, 9 data bits, n stop bits"] 19090 #[doc = "Steady high value on CK pin outside transmission window"]
21394 pub const BIT9: Self = Self(0x01); 19091 pub const HIGH: Self = Self(0x01);
21395 } 19092 }
21396 #[repr(transparent)] 19093 #[repr(transparent)]
21397 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19094 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21398 pub struct Irlp(pub u8); 19095 pub struct Ps(pub u8);
21399 impl Irlp { 19096 impl Ps {
21400 #[doc = "Normal mode"] 19097 #[doc = "Even parity"]
21401 pub const NORMAL: Self = Self(0); 19098 pub const EVEN: Self = Self(0);
21402 #[doc = "Low-power mode"] 19099 #[doc = "Odd parity"]
21403 pub const LOWPOWER: Self = Self(0x01); 19100 pub const ODD: Self = Self(0x01);
19101 }
19102 }
19103}
19104pub mod gpio_v2 {
19105 use crate::generic::*;
19106 #[doc = "General-purpose I/Os"]
19107 #[derive(Copy, Clone)]
19108 pub struct Gpio(pub *mut u8);
19109 unsafe impl Send for Gpio {}
19110 unsafe impl Sync for Gpio {}
19111 impl Gpio {
19112 #[doc = "GPIO port mode register"]
19113 pub fn moder(self) -> Reg<regs::Moder, RW> {
19114 unsafe { Reg::from_ptr(self.0.add(0usize)) }
19115 }
19116 #[doc = "GPIO port output type register"]
19117 pub fn otyper(self) -> Reg<regs::Otyper, RW> {
19118 unsafe { Reg::from_ptr(self.0.add(4usize)) }
21404 } 19119 }
19120 #[doc = "GPIO port output speed register"]
19121 pub fn ospeedr(self) -> Reg<regs::Ospeedr, RW> {
19122 unsafe { Reg::from_ptr(self.0.add(8usize)) }
19123 }
19124 #[doc = "GPIO port pull-up/pull-down register"]
19125 pub fn pupdr(self) -> Reg<regs::Pupdr, RW> {
19126 unsafe { Reg::from_ptr(self.0.add(12usize)) }
19127 }
19128 #[doc = "GPIO port input data register"]
19129 pub fn idr(self) -> Reg<regs::Idr, R> {
19130 unsafe { Reg::from_ptr(self.0.add(16usize)) }
19131 }
19132 #[doc = "GPIO port output data register"]
19133 pub fn odr(self) -> Reg<regs::Odr, RW> {
19134 unsafe { Reg::from_ptr(self.0.add(20usize)) }
19135 }
19136 #[doc = "GPIO port bit set/reset register"]
19137 pub fn bsrr(self) -> Reg<regs::Bsrr, W> {
19138 unsafe { Reg::from_ptr(self.0.add(24usize)) }
19139 }
19140 #[doc = "GPIO port configuration lock register"]
19141 pub fn lckr(self) -> Reg<regs::Lckr, RW> {
19142 unsafe { Reg::from_ptr(self.0.add(28usize)) }
19143 }
19144 #[doc = "GPIO alternate function register (low, high)"]
19145 pub fn afr(self, n: usize) -> Reg<regs::Afr, RW> {
19146 assert!(n < 2usize);
19147 unsafe { Reg::from_ptr(self.0.add(32usize + n * 4usize)) }
19148 }
19149 }
19150 pub mod vals {
19151 use crate::generic::*;
21405 #[repr(transparent)] 19152 #[repr(transparent)]
21406 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19153 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21407 pub struct Over(pub u8); 19154 pub struct Moder(pub u8);
21408 impl Over { 19155 impl Moder {
21409 #[doc = "Oversampling by 16"] 19156 #[doc = "Input mode (reset state)"]
21410 pub const OVERSAMPLING16: Self = Self(0); 19157 pub const INPUT: Self = Self(0);
21411 #[doc = "Oversampling by 8"] 19158 #[doc = "General purpose output mode"]
21412 pub const OVERSAMPLING8: Self = Self(0x01); 19159 pub const OUTPUT: Self = Self(0x01);
19160 #[doc = "Alternate function mode"]
19161 pub const ALTERNATE: Self = Self(0x02);
19162 #[doc = "Analog mode"]
19163 pub const ANALOG: Self = Self(0x03);
21413 } 19164 }
21414 #[repr(transparent)] 19165 #[repr(transparent)]
21415 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19166 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21416 pub struct Rxinv(pub u8); 19167 pub struct Odr(pub u8);
21417 impl Rxinv { 19168 impl Odr {
21418 #[doc = "RX pin signal works using the standard logic levels"] 19169 #[doc = "Set output to logic low"]
21419 pub const STANDARD: Self = Self(0); 19170 pub const LOW: Self = Self(0);
21420 #[doc = "RX pin signal values are inverted"] 19171 #[doc = "Set output to logic high"]
21421 pub const INVERTED: Self = Self(0x01); 19172 pub const HIGH: Self = Self(0x01);
21422 } 19173 }
21423 #[repr(transparent)] 19174 #[repr(transparent)]
21424 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19175 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21425 pub struct Abrmod(pub u8); 19176 pub struct Ot(pub u8);
21426 impl Abrmod { 19177 impl Ot {
21427 #[doc = "Measurement of the start bit is used to detect the baud rate"] 19178 #[doc = "Output push-pull (reset state)"]
21428 pub const START: Self = Self(0); 19179 pub const PUSHPULL: Self = Self(0);
21429 #[doc = "Falling edge to falling edge measurement"] 19180 #[doc = "Output open-drain"]
21430 pub const EDGE: Self = Self(0x01); 19181 pub const OPENDRAIN: Self = Self(0x01);
21431 #[doc = "0x7F frame detection"]
21432 pub const FRAME7F: Self = Self(0x02);
21433 #[doc = "0x55 frame detection"]
21434 pub const FRAME55: Self = Self(0x03);
21435 } 19182 }
21436 #[repr(transparent)] 19183 #[repr(transparent)]
21437 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19184 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21438 pub struct Datainv(pub u8); 19185 pub struct Brw(pub u8);
21439 impl Datainv { 19186 impl Brw {
21440 #[doc = "Logical data from the data register are send/received in positive/direct logic"] 19187 #[doc = "Resets the corresponding ODRx bit"]
21441 pub const POSITIVE: Self = Self(0); 19188 pub const RESET: Self = Self(0x01);
21442 #[doc = "Logical data from the data register are send/received in negative/inverse logic"]
21443 pub const NEGATIVE: Self = Self(0x01);
21444 } 19189 }
21445 #[repr(transparent)] 19190 #[repr(transparent)]
21446 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19191 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21447 pub struct Swap(pub u8); 19192 pub struct Lck(pub u8);
21448 impl Swap { 19193 impl Lck {
21449 #[doc = "TX/RX pins are used as defined in standard pinout"] 19194 #[doc = "Port configuration not locked"]
21450 pub const STANDARD: Self = Self(0); 19195 pub const UNLOCKED: Self = Self(0);
21451 #[doc = "The TX and RX pins functions are swapped"] 19196 #[doc = "Port configuration locked"]
21452 pub const SWAPPED: Self = Self(0x01); 19197 pub const LOCKED: Self = Self(0x01);
21453 } 19198 }
21454 #[repr(transparent)] 19199 #[repr(transparent)]
21455 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19200 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21456 pub struct Lbcl(pub u8); 19201 pub struct Idr(pub u8);
21457 impl Lbcl { 19202 impl Idr {
21458 #[doc = "The clock pulse of the last data bit is not output to the CK pin"] 19203 #[doc = "Input is logic low"]
21459 pub const NOTOUTPUT: Self = Self(0); 19204 pub const LOW: Self = Self(0);
21460 #[doc = "The clock pulse of the last data bit is output to the CK pin"] 19205 #[doc = "Input is logic high"]
21461 pub const OUTPUT: Self = Self(0x01); 19206 pub const HIGH: Self = Self(0x01);
21462 } 19207 }
21463 #[repr(transparent)] 19208 #[repr(transparent)]
21464 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19209 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21465 pub struct Txfrq(pub u8); 19210 pub struct Ospeedr(pub u8);
21466 impl Txfrq { 19211 impl Ospeedr {
21467 #[doc = "Set the TXE flags. This allows to discard the transmit data"] 19212 #[doc = "Low speed"]
21468 pub const DISCARD: Self = Self(0x01); 19213 pub const LOWSPEED: Self = Self(0);
19214 #[doc = "Medium speed"]
19215 pub const MEDIUMSPEED: Self = Self(0x01);
19216 #[doc = "High speed"]
19217 pub const HIGHSPEED: Self = Self(0x02);
19218 #[doc = "Very high speed"]
19219 pub const VERYHIGHSPEED: Self = Self(0x03);
21469 } 19220 }
21470 #[repr(transparent)] 19221 #[repr(transparent)]
21471 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19222 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21472 pub struct Hdsel(pub u8); 19223 pub struct Afr(pub u8);
21473 impl Hdsel { 19224 impl Afr {
21474 #[doc = "Half duplex mode is not selected"] 19225 #[doc = "AF0"]
21475 pub const NOTSELECTED: Self = Self(0); 19226 pub const AF0: Self = Self(0);
21476 #[doc = "Half duplex mode is selected"] 19227 #[doc = "AF1"]
21477 pub const SELECTED: Self = Self(0x01); 19228 pub const AF1: Self = Self(0x01);
19229 #[doc = "AF2"]
19230 pub const AF2: Self = Self(0x02);
19231 #[doc = "AF3"]
19232 pub const AF3: Self = Self(0x03);
19233 #[doc = "AF4"]
19234 pub const AF4: Self = Self(0x04);
19235 #[doc = "AF5"]
19236 pub const AF5: Self = Self(0x05);
19237 #[doc = "AF6"]
19238 pub const AF6: Self = Self(0x06);
19239 #[doc = "AF7"]
19240 pub const AF7: Self = Self(0x07);
19241 #[doc = "AF8"]
19242 pub const AF8: Self = Self(0x08);
19243 #[doc = "AF9"]
19244 pub const AF9: Self = Self(0x09);
19245 #[doc = "AF10"]
19246 pub const AF10: Self = Self(0x0a);
19247 #[doc = "AF11"]
19248 pub const AF11: Self = Self(0x0b);
19249 #[doc = "AF12"]
19250 pub const AF12: Self = Self(0x0c);
19251 #[doc = "AF13"]
19252 pub const AF13: Self = Self(0x0d);
19253 #[doc = "AF14"]
19254 pub const AF14: Self = Self(0x0e);
19255 #[doc = "AF15"]
19256 pub const AF15: Self = Self(0x0f);
21478 } 19257 }
21479 #[repr(transparent)] 19258 #[repr(transparent)]
21480 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19259 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21481 pub struct Wake(pub u8); 19260 pub struct Lckk(pub u8);
21482 impl Wake { 19261 impl Lckk {
21483 #[doc = "Idle line"] 19262 #[doc = "Port configuration lock key not active"]
21484 pub const IDLE: Self = Self(0); 19263 pub const NOTACTIVE: Self = Self(0);
21485 #[doc = "Address mask"] 19264 #[doc = "Port configuration lock key active"]
21486 pub const ADDRESS: Self = Self(0x01); 19265 pub const ACTIVE: Self = Self(0x01);
21487 }
21488 }
21489}
21490pub mod gpio_v1 {
21491 use crate::generic::*;
21492 #[doc = "General purpose I/O"]
21493 #[derive(Copy, Clone)]
21494 pub struct Gpio(pub *mut u8);
21495 unsafe impl Send for Gpio {}
21496 unsafe impl Sync for Gpio {}
21497 impl Gpio {
21498 #[doc = "Port configuration register low (GPIOn_CRL)"]
21499 pub fn cr(self, n: usize) -> Reg<regs::Cr, RW> {
21500 assert!(n < 2usize);
21501 unsafe { Reg::from_ptr(self.0.add(0usize + n * 4usize)) }
21502 }
21503 #[doc = "Port input data register (GPIOn_IDR)"]
21504 pub fn idr(self) -> Reg<regs::Idr, R> {
21505 unsafe { Reg::from_ptr(self.0.add(8usize)) }
21506 }
21507 #[doc = "Port output data register (GPIOn_ODR)"]
21508 pub fn odr(self) -> Reg<regs::Odr, RW> {
21509 unsafe { Reg::from_ptr(self.0.add(12usize)) }
21510 }
21511 #[doc = "Port bit set/reset register (GPIOn_BSRR)"]
21512 pub fn bsrr(self) -> Reg<regs::Bsrr, W> {
21513 unsafe { Reg::from_ptr(self.0.add(16usize)) }
21514 } 19266 }
21515 #[doc = "Port bit reset register (GPIOn_BRR)"] 19267 #[repr(transparent)]
21516 pub fn brr(self) -> Reg<regs::Brr, W> { 19268 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21517 unsafe { Reg::from_ptr(self.0.add(20usize)) } 19269 pub struct Bsw(pub u8);
19270 impl Bsw {
19271 #[doc = "Sets the corresponding ODRx bit"]
19272 pub const SET: Self = Self(0x01);
21518 } 19273 }
21519 #[doc = "Port configuration lock register"] 19274 #[repr(transparent)]
21520 pub fn lckr(self) -> Reg<regs::Lckr, RW> { 19275 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21521 unsafe { Reg::from_ptr(self.0.add(24usize)) } 19276 pub struct Pupdr(pub u8);
19277 impl Pupdr {
19278 #[doc = "No pull-up, pull-down"]
19279 pub const FLOATING: Self = Self(0);
19280 #[doc = "Pull-up"]
19281 pub const PULLUP: Self = Self(0x01);
19282 #[doc = "Pull-down"]
19283 pub const PULLDOWN: Self = Self(0x02);
21522 } 19284 }
21523 } 19285 }
21524 pub mod regs { 19286 pub mod regs {
21525 use crate::generic::*; 19287 use crate::generic::*;
21526 #[doc = "Port output data register (GPIOn_ODR)"] 19288 #[doc = "GPIO port output speed register"]
21527 #[repr(transparent)] 19289 #[repr(transparent)]
21528 #[derive(Copy, Clone, Eq, PartialEq)] 19290 #[derive(Copy, Clone, Eq, PartialEq)]
21529 pub struct Odr(pub u32); 19291 pub struct Ospeedr(pub u32);
21530 impl Odr { 19292 impl Ospeedr {
21531 #[doc = "Port output data"] 19293 #[doc = "Port x configuration bits (y = 0..15)"]
21532 pub fn odr(&self, n: usize) -> super::vals::Odr { 19294 pub fn ospeedr(&self, n: usize) -> super::vals::Ospeedr {
21533 assert!(n < 16usize); 19295 assert!(n < 16usize);
21534 let offs = 0usize + n * 1usize; 19296 let offs = 0usize + n * 2usize;
21535 let val = (self.0 >> offs) & 0x01; 19297 let val = (self.0 >> offs) & 0x03;
21536 super::vals::Odr(val as u8) 19298 super::vals::Ospeedr(val as u8)
21537 } 19299 }
21538 #[doc = "Port output data"] 19300 #[doc = "Port x configuration bits (y = 0..15)"]
21539 pub fn set_odr(&mut self, n: usize, val: super::vals::Odr) { 19301 pub fn set_ospeedr(&mut self, n: usize, val: super::vals::Ospeedr) {
21540 assert!(n < 16usize); 19302 assert!(n < 16usize);
21541 let offs = 0usize + n * 1usize; 19303 let offs = 0usize + n * 2usize;
21542 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs); 19304 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
21543 } 19305 }
21544 } 19306 }
21545 impl Default for Odr { 19307 impl Default for Ospeedr {
21546 fn default() -> Odr { 19308 fn default() -> Ospeedr {
21547 Odr(0) 19309 Ospeedr(0)
21548 } 19310 }
21549 } 19311 }
21550 #[doc = "Port input data register (GPIOn_IDR)"] 19312 #[doc = "GPIO port input data register"]
21551 #[repr(transparent)] 19313 #[repr(transparent)]
21552 #[derive(Copy, Clone, Eq, PartialEq)] 19314 #[derive(Copy, Clone, Eq, PartialEq)]
21553 pub struct Idr(pub u32); 19315 pub struct Idr(pub u32);
21554 impl Idr { 19316 impl Idr {
21555 #[doc = "Port input data"] 19317 #[doc = "Port input data (y = 0..15)"]
21556 pub fn idr(&self, n: usize) -> super::vals::Idr { 19318 pub fn idr(&self, n: usize) -> super::vals::Idr {
21557 assert!(n < 16usize); 19319 assert!(n < 16usize);
21558 let offs = 0usize + n * 1usize; 19320 let offs = 0usize + n * 1usize;
21559 let val = (self.0 >> offs) & 0x01; 19321 let val = (self.0 >> offs) & 0x01;
21560 super::vals::Idr(val as u8) 19322 super::vals::Idr(val as u8)
21561 } 19323 }
21562 #[doc = "Port input data"] 19324 #[doc = "Port input data (y = 0..15)"]
21563 pub fn set_idr(&mut self, n: usize, val: super::vals::Idr) { 19325 pub fn set_idr(&mut self, n: usize, val: super::vals::Idr) {
21564 assert!(n < 16usize); 19326 assert!(n < 16usize);
21565 let offs = 0usize + n * 1usize; 19327 let offs = 0usize + n * 1usize;
@@ -21571,56 +19333,56 @@ pub mod gpio_v1 {
21571 Idr(0) 19333 Idr(0)
21572 } 19334 }
21573 } 19335 }
21574 #[doc = "Port bit reset register (GPIOn_BRR)"] 19336 #[doc = "GPIO port mode register"]
21575 #[repr(transparent)] 19337 #[repr(transparent)]
21576 #[derive(Copy, Clone, Eq, PartialEq)] 19338 #[derive(Copy, Clone, Eq, PartialEq)]
21577 pub struct Brr(pub u32); 19339 pub struct Moder(pub u32);
21578 impl Brr { 19340 impl Moder {
21579 #[doc = "Reset bit"] 19341 #[doc = "Port x configuration bits (y = 0..15)"]
21580 pub fn br(&self, n: usize) -> bool { 19342 pub fn moder(&self, n: usize) -> super::vals::Moder {
21581 assert!(n < 16usize); 19343 assert!(n < 16usize);
21582 let offs = 0usize + n * 1usize; 19344 let offs = 0usize + n * 2usize;
21583 let val = (self.0 >> offs) & 0x01; 19345 let val = (self.0 >> offs) & 0x03;
21584 val != 0 19346 super::vals::Moder(val as u8)
21585 } 19347 }
21586 #[doc = "Reset bit"] 19348 #[doc = "Port x configuration bits (y = 0..15)"]
21587 pub fn set_br(&mut self, n: usize, val: bool) { 19349 pub fn set_moder(&mut self, n: usize, val: super::vals::Moder) {
21588 assert!(n < 16usize); 19350 assert!(n < 16usize);
21589 let offs = 0usize + n * 1usize; 19351 let offs = 0usize + n * 2usize;
21590 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs); 19352 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
21591 } 19353 }
21592 } 19354 }
21593 impl Default for Brr { 19355 impl Default for Moder {
21594 fn default() -> Brr { 19356 fn default() -> Moder {
21595 Brr(0) 19357 Moder(0)
21596 } 19358 }
21597 } 19359 }
21598 #[doc = "Port bit set/reset register (GPIOn_BSRR)"] 19360 #[doc = "GPIO port bit set/reset register"]
21599 #[repr(transparent)] 19361 #[repr(transparent)]
21600 #[derive(Copy, Clone, Eq, PartialEq)] 19362 #[derive(Copy, Clone, Eq, PartialEq)]
21601 pub struct Bsrr(pub u32); 19363 pub struct Bsrr(pub u32);
21602 impl Bsrr { 19364 impl Bsrr {
21603 #[doc = "Set bit"] 19365 #[doc = "Port x set bit y (y= 0..15)"]
21604 pub fn bs(&self, n: usize) -> bool { 19366 pub fn bs(&self, n: usize) -> bool {
21605 assert!(n < 16usize); 19367 assert!(n < 16usize);
21606 let offs = 0usize + n * 1usize; 19368 let offs = 0usize + n * 1usize;
21607 let val = (self.0 >> offs) & 0x01; 19369 let val = (self.0 >> offs) & 0x01;
21608 val != 0 19370 val != 0
21609 } 19371 }
21610 #[doc = "Set bit"] 19372 #[doc = "Port x set bit y (y= 0..15)"]
21611 pub fn set_bs(&mut self, n: usize, val: bool) { 19373 pub fn set_bs(&mut self, n: usize, val: bool) {
21612 assert!(n < 16usize); 19374 assert!(n < 16usize);
21613 let offs = 0usize + n * 1usize; 19375 let offs = 0usize + n * 1usize;
21614 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs); 19376 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
21615 } 19377 }
21616 #[doc = "Reset bit"] 19378 #[doc = "Port x set bit y (y= 0..15)"]
21617 pub fn br(&self, n: usize) -> bool { 19379 pub fn br(&self, n: usize) -> bool {
21618 assert!(n < 16usize); 19380 assert!(n < 16usize);
21619 let offs = 16usize + n * 1usize; 19381 let offs = 16usize + n * 1usize;
21620 let val = (self.0 >> offs) & 0x01; 19382 let val = (self.0 >> offs) & 0x01;
21621 val != 0 19383 val != 0
21622 } 19384 }
21623 #[doc = "Reset bit"] 19385 #[doc = "Port x set bit y (y= 0..15)"]
21624 pub fn set_br(&mut self, n: usize, val: bool) { 19386 pub fn set_br(&mut self, n: usize, val: bool) {
21625 assert!(n < 16usize); 19387 assert!(n < 16usize);
21626 let offs = 16usize + n * 1usize; 19388 let offs = 16usize + n * 1usize;
@@ -21632,67 +19394,102 @@ pub mod gpio_v1 {
21632 Bsrr(0) 19394 Bsrr(0)
21633 } 19395 }
21634 } 19396 }
21635 #[doc = "Port configuration register (GPIOn_CRx)"] 19397 #[doc = "GPIO port output type register"]
21636 #[repr(transparent)] 19398 #[repr(transparent)]
21637 #[derive(Copy, Clone, Eq, PartialEq)] 19399 #[derive(Copy, Clone, Eq, PartialEq)]
21638 pub struct Cr(pub u32); 19400 pub struct Otyper(pub u32);
21639 impl Cr { 19401 impl Otyper {
21640 #[doc = "Port n mode bits"] 19402 #[doc = "Port x configuration bits (y = 0..15)"]
21641 pub fn mode(&self, n: usize) -> super::vals::Mode { 19403 pub fn ot(&self, n: usize) -> super::vals::Ot {
21642 assert!(n < 8usize); 19404 assert!(n < 16usize);
21643 let offs = 0usize + n * 4usize; 19405 let offs = 0usize + n * 1usize;
19406 let val = (self.0 >> offs) & 0x01;
19407 super::vals::Ot(val as u8)
19408 }
19409 #[doc = "Port x configuration bits (y = 0..15)"]
19410 pub fn set_ot(&mut self, n: usize, val: super::vals::Ot) {
19411 assert!(n < 16usize);
19412 let offs = 0usize + n * 1usize;
19413 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
19414 }
19415 }
19416 impl Default for Otyper {
19417 fn default() -> Otyper {
19418 Otyper(0)
19419 }
19420 }
19421 #[doc = "GPIO port pull-up/pull-down register"]
19422 #[repr(transparent)]
19423 #[derive(Copy, Clone, Eq, PartialEq)]
19424 pub struct Pupdr(pub u32);
19425 impl Pupdr {
19426 #[doc = "Port x configuration bits (y = 0..15)"]
19427 pub fn pupdr(&self, n: usize) -> super::vals::Pupdr {
19428 assert!(n < 16usize);
19429 let offs = 0usize + n * 2usize;
21644 let val = (self.0 >> offs) & 0x03; 19430 let val = (self.0 >> offs) & 0x03;
21645 super::vals::Mode(val as u8) 19431 super::vals::Pupdr(val as u8)
21646 } 19432 }
21647 #[doc = "Port n mode bits"] 19433 #[doc = "Port x configuration bits (y = 0..15)"]
21648 pub fn set_mode(&mut self, n: usize, val: super::vals::Mode) { 19434 pub fn set_pupdr(&mut self, n: usize, val: super::vals::Pupdr) {
21649 assert!(n < 8usize); 19435 assert!(n < 16usize);
21650 let offs = 0usize + n * 4usize; 19436 let offs = 0usize + n * 2usize;
21651 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs); 19437 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
21652 } 19438 }
21653 #[doc = "Port n configuration bits"] 19439 }
21654 pub fn cnf(&self, n: usize) -> super::vals::Cnf { 19440 impl Default for Pupdr {
19441 fn default() -> Pupdr {
19442 Pupdr(0)
19443 }
19444 }
19445 #[doc = "GPIO alternate function register"]
19446 #[repr(transparent)]
19447 #[derive(Copy, Clone, Eq, PartialEq)]
19448 pub struct Afr(pub u32);
19449 impl Afr {
19450 #[doc = "Alternate function selection for port x bit y (y = 0..15)"]
19451 pub fn afr(&self, n: usize) -> super::vals::Afr {
21655 assert!(n < 8usize); 19452 assert!(n < 8usize);
21656 let offs = 2usize + n * 4usize; 19453 let offs = 0usize + n * 4usize;
21657 let val = (self.0 >> offs) & 0x03; 19454 let val = (self.0 >> offs) & 0x0f;
21658 super::vals::Cnf(val as u8) 19455 super::vals::Afr(val as u8)
21659 } 19456 }
21660 #[doc = "Port n configuration bits"] 19457 #[doc = "Alternate function selection for port x bit y (y = 0..15)"]
21661 pub fn set_cnf(&mut self, n: usize, val: super::vals::Cnf) { 19458 pub fn set_afr(&mut self, n: usize, val: super::vals::Afr) {
21662 assert!(n < 8usize); 19459 assert!(n < 8usize);
21663 let offs = 2usize + n * 4usize; 19460 let offs = 0usize + n * 4usize;
21664 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs); 19461 self.0 = (self.0 & !(0x0f << offs)) | (((val.0 as u32) & 0x0f) << offs);
21665 } 19462 }
21666 } 19463 }
21667 impl Default for Cr { 19464 impl Default for Afr {
21668 fn default() -> Cr { 19465 fn default() -> Afr {
21669 Cr(0) 19466 Afr(0)
21670 } 19467 }
21671 } 19468 }
21672 #[doc = "Port configuration lock register"] 19469 #[doc = "GPIO port configuration lock register"]
21673 #[repr(transparent)] 19470 #[repr(transparent)]
21674 #[derive(Copy, Clone, Eq, PartialEq)] 19471 #[derive(Copy, Clone, Eq, PartialEq)]
21675 pub struct Lckr(pub u32); 19472 pub struct Lckr(pub u32);
21676 impl Lckr { 19473 impl Lckr {
21677 #[doc = "Port A Lock bit"] 19474 #[doc = "Port x lock bit y (y= 0..15)"]
21678 pub fn lck(&self, n: usize) -> super::vals::Lck { 19475 pub fn lck(&self, n: usize) -> super::vals::Lck {
21679 assert!(n < 16usize); 19476 assert!(n < 16usize);
21680 let offs = 0usize + n * 1usize; 19477 let offs = 0usize + n * 1usize;
21681 let val = (self.0 >> offs) & 0x01; 19478 let val = (self.0 >> offs) & 0x01;
21682 super::vals::Lck(val as u8) 19479 super::vals::Lck(val as u8)
21683 } 19480 }
21684 #[doc = "Port A Lock bit"] 19481 #[doc = "Port x lock bit y (y= 0..15)"]
21685 pub fn set_lck(&mut self, n: usize, val: super::vals::Lck) { 19482 pub fn set_lck(&mut self, n: usize, val: super::vals::Lck) {
21686 assert!(n < 16usize); 19483 assert!(n < 16usize);
21687 let offs = 0usize + n * 1usize; 19484 let offs = 0usize + n * 1usize;
21688 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs); 19485 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
21689 } 19486 }
21690 #[doc = "Lock key"] 19487 #[doc = "Port x lock bit y (y= 0..15)"]
21691 pub const fn lckk(&self) -> super::vals::Lckk { 19488 pub const fn lckk(&self) -> super::vals::Lckk {
21692 let val = (self.0 >> 16usize) & 0x01; 19489 let val = (self.0 >> 16usize) & 0x01;
21693 super::vals::Lckk(val as u8) 19490 super::vals::Lckk(val as u8)
21694 } 19491 }
21695 #[doc = "Lock key"] 19492 #[doc = "Port x lock bit y (y= 0..15)"]
21696 pub fn set_lckk(&mut self, val: super::vals::Lckk) { 19493 pub fn set_lckk(&mut self, val: super::vals::Lckk) {
21697 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize); 19494 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
21698 } 19495 }
@@ -21702,3360 +19499,4090 @@ pub mod gpio_v1 {
21702 Lckr(0) 19499 Lckr(0)
21703 } 19500 }
21704 } 19501 }
21705 } 19502 #[doc = "GPIO port output data register"]
21706 pub mod vals {
21707 use crate::generic::*;
21708 #[repr(transparent)]
21709 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21710 pub struct Lck(pub u8);
21711 impl Lck {
21712 #[doc = "Port configuration not locked"]
21713 pub const UNLOCKED: Self = Self(0);
21714 #[doc = "Port configuration locked"]
21715 pub const LOCKED: Self = Self(0x01);
21716 }
21717 #[repr(transparent)]
21718 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21719 pub struct Lckk(pub u8);
21720 impl Lckk {
21721 #[doc = "Port configuration lock key not active"]
21722 pub const NOTACTIVE: Self = Self(0);
21723 #[doc = "Port configuration lock key active"]
21724 pub const ACTIVE: Self = Self(0x01);
21725 }
21726 #[repr(transparent)] 19503 #[repr(transparent)]
21727 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19504 #[derive(Copy, Clone, Eq, PartialEq)]
21728 pub struct Odr(pub u8); 19505 pub struct Odr(pub u32);
21729 impl Odr { 19506 impl Odr {
21730 #[doc = "Set output to logic low"] 19507 #[doc = "Port output data (y = 0..15)"]
21731 pub const LOW: Self = Self(0); 19508 pub fn odr(&self, n: usize) -> super::vals::Odr {
21732 #[doc = "Set output to logic high"] 19509 assert!(n < 16usize);
21733 pub const HIGH: Self = Self(0x01); 19510 let offs = 0usize + n * 1usize;
21734 } 19511 let val = (self.0 >> offs) & 0x01;
21735 #[repr(transparent)] 19512 super::vals::Odr(val as u8)
21736 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19513 }
21737 pub struct Brw(pub u8); 19514 #[doc = "Port output data (y = 0..15)"]
21738 impl Brw { 19515 pub fn set_odr(&mut self, n: usize, val: super::vals::Odr) {
21739 #[doc = "No action on the corresponding ODx bit"] 19516 assert!(n < 16usize);
21740 pub const NOACTION: Self = Self(0); 19517 let offs = 0usize + n * 1usize;
21741 #[doc = "Reset the ODx bit"] 19518 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
21742 pub const RESET: Self = Self(0x01); 19519 }
21743 }
21744 #[repr(transparent)]
21745 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21746 pub struct Bsw(pub u8);
21747 impl Bsw {
21748 #[doc = "No action on the corresponding ODx bit"]
21749 pub const NOACTION: Self = Self(0);
21750 #[doc = "Sets the corresponding ODRx bit"]
21751 pub const SET: Self = Self(0x01);
21752 }
21753 #[repr(transparent)]
21754 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21755 pub struct Mode(pub u8);
21756 impl Mode {
21757 #[doc = "Input mode (reset state)"]
21758 pub const INPUT: Self = Self(0);
21759 #[doc = "Output mode 10 MHz"]
21760 pub const OUTPUT: Self = Self(0x01);
21761 #[doc = "Output mode 2 MHz"]
21762 pub const OUTPUT2: Self = Self(0x02);
21763 #[doc = "Output mode 50 MHz"]
21764 pub const OUTPUT50: Self = Self(0x03);
21765 }
21766 #[repr(transparent)]
21767 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21768 pub struct Idr(pub u8);
21769 impl Idr {
21770 #[doc = "Input is logic low"]
21771 pub const LOW: Self = Self(0);
21772 #[doc = "Input is logic high"]
21773 pub const HIGH: Self = Self(0x01);
21774 } 19520 }
21775 #[repr(transparent)] 19521 impl Default for Odr {
21776 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 19522 fn default() -> Odr {
21777 pub struct Cnf(pub u8); 19523 Odr(0)
21778 impl Cnf { 19524 }
21779 #[doc = "Analog mode / Push-Pull mode"]
21780 pub const PUSHPULL: Self = Self(0);
21781 #[doc = "Floating input (reset state) / Open Drain-Mode"]
21782 pub const OPENDRAIN: Self = Self(0x01);
21783 #[doc = "Input with pull-up/pull-down / Alternate Function Push-Pull Mode"]
21784 pub const ALTPUSHPULL: Self = Self(0x02);
21785 #[doc = "Alternate Function Open-Drain Mode"]
21786 pub const ALTOPENDRAIN: Self = Self(0x03);
21787 } 19525 }
21788 } 19526 }
21789} 19527}
21790pub mod sdmmc_v2 { 19528pub mod spi_v1 {
21791 use crate::generic::*; 19529 use crate::generic::*;
21792 #[doc = "SDMMC"] 19530 #[doc = "Serial peripheral interface"]
21793 #[derive(Copy, Clone)] 19531 #[derive(Copy, Clone)]
21794 pub struct Sdmmc(pub *mut u8); 19532 pub struct Spi(pub *mut u8);
21795 unsafe impl Send for Sdmmc {} 19533 unsafe impl Send for Spi {}
21796 unsafe impl Sync for Sdmmc {} 19534 unsafe impl Sync for Spi {}
21797 impl Sdmmc { 19535 impl Spi {
21798 #[doc = "SDMMC power control register"] 19536 #[doc = "control register 1"]
21799 pub fn power(self) -> Reg<regs::Power, RW> { 19537 pub fn cr1(self) -> Reg<regs::Cr1, RW> {
21800 unsafe { Reg::from_ptr(self.0.add(0usize)) } 19538 unsafe { Reg::from_ptr(self.0.add(0usize)) }
21801 } 19539 }
21802 #[doc = "The SDMMC_CLKCR register controls the SDMMC_CK output clock, the SDMMC_RX_CLK receive clock, and the bus width."] 19540 #[doc = "control register 2"]
21803 pub fn clkcr(self) -> Reg<regs::Clkcr, RW> { 19541 pub fn cr2(self) -> Reg<regs::Cr2, RW> {
21804 unsafe { Reg::from_ptr(self.0.add(4usize)) } 19542 unsafe { Reg::from_ptr(self.0.add(4usize)) }
21805 } 19543 }
21806 #[doc = "The SDMMC_ARGR register contains a 32-bit command argument, which is sent to a card as part of a command message."] 19544 #[doc = "status register"]
21807 pub fn argr(self) -> Reg<regs::Argr, RW> { 19545 pub fn sr(self) -> Reg<regs::Sr, RW> {
21808 unsafe { Reg::from_ptr(self.0.add(8usize)) } 19546 unsafe { Reg::from_ptr(self.0.add(8usize)) }
21809 } 19547 }
21810 #[doc = "The SDMMC_CMDR register contains the command index and command type bits. The command index is sent to a card as part of a command message. The command type bits control the command path state machine (CPSM)."] 19548 #[doc = "data register"]
21811 pub fn cmdr(self) -> Reg<regs::Cmdr, RW> { 19549 pub fn dr(self) -> Reg<regs::Dr, RW> {
21812 unsafe { Reg::from_ptr(self.0.add(12usize)) } 19550 unsafe { Reg::from_ptr(self.0.add(12usize)) }
21813 } 19551 }
21814 #[doc = "SDMMC command response register"] 19552 #[doc = "CRC polynomial register"]
21815 pub fn respcmdr(self) -> Reg<regs::Respcmdr, R> { 19553 pub fn crcpr(self) -> Reg<regs::Crcpr, RW> {
21816 unsafe { Reg::from_ptr(self.0.add(16usize)) } 19554 unsafe { Reg::from_ptr(self.0.add(16usize)) }
21817 } 19555 }
21818 #[doc = "The SDMMC_RESP1/2/3/4R registers contain the status of a card, which is part of the received response."] 19556 #[doc = "RX CRC register"]
21819 pub fn respr(self, n: usize) -> Reg<regs::Resp1r, R> { 19557 pub fn rxcrcr(self) -> Reg<regs::Rxcrcr, R> {
21820 assert!(n < 4usize); 19558 unsafe { Reg::from_ptr(self.0.add(20usize)) }
21821 unsafe { Reg::from_ptr(self.0.add(20usize + n * 4usize)) }
21822 }
21823 #[doc = "The SDMMC_DTIMER register contains the data timeout period, in card bus clock periods. A counter loads the value from the SDMMC_DTIMER register, and starts decrementing when the data path state machine (DPSM) enters the Wait_R or Busy state. If the timer reaches 0 while the DPSM is in either of these states, the timeout status flag is set."]
21824 pub fn dtimer(self) -> Reg<regs::Dtimer, RW> {
21825 unsafe { Reg::from_ptr(self.0.add(36usize)) }
21826 }
21827 #[doc = "The SDMMC_DLENR register contains the number of data bytes to be transferred. The value is loaded into the data counter when data transfer starts."]
21828 pub fn dlenr(self) -> Reg<regs::Dlenr, RW> {
21829 unsafe { Reg::from_ptr(self.0.add(40usize)) }
21830 }
21831 #[doc = "The SDMMC_DCTRL register control the data path state machine (DPSM)."]
21832 pub fn dctrl(self) -> Reg<regs::Dctrl, RW> {
21833 unsafe { Reg::from_ptr(self.0.add(44usize)) }
21834 }
21835 #[doc = "The SDMMC_DCNTR register loads the value from the data length register (see SDMMC_DLENR) when the DPSM moves from the Idle state to the Wait_R or Wait_S state. As data is transferred, the counter decrements the value until it reaches 0. The DPSM then moves to the Idle state and when there has been no error, the data status end flag (DATAEND) is set."]
21836 pub fn dcntr(self) -> Reg<regs::Dcntr, R> {
21837 unsafe { Reg::from_ptr(self.0.add(48usize)) }
21838 }
21839 #[doc = "The SDMMC_STAR register is a read-only register. It contains two types of flag:Static flags (bits [29,21,11:0]): these bits remain asserted until they are cleared by writing to the SDMMC interrupt Clear register (see SDMMC_ICR)Dynamic flags (bits [20:12]): these bits change state depending on the state of the underlying logic (for example, FIFO full and empty flags are asserted and de-asserted as data while written to the FIFO)"]
21840 pub fn star(self) -> Reg<regs::Star, R> {
21841 unsafe { Reg::from_ptr(self.0.add(52usize)) }
21842 }
21843 #[doc = "The SDMMC_ICR register is a write-only register. Writing a bit with 1 clears the corresponding bit in the SDMMC_STAR status register."]
21844 pub fn icr(self) -> Reg<regs::Icr, RW> {
21845 unsafe { Reg::from_ptr(self.0.add(56usize)) }
21846 }
21847 #[doc = "The interrupt mask register determines which status flags generate an interrupt request by setting the corresponding bit to 1."]
21848 pub fn maskr(self) -> Reg<regs::Maskr, RW> {
21849 unsafe { Reg::from_ptr(self.0.add(60usize)) }
21850 }
21851 #[doc = "The SDMMC_ACKTIMER register contains the acknowledgment timeout period, in SDMMC_CK bus clock periods. A counter loads the value from the SDMMC_ACKTIMER register, and starts decrementing when the data path state machine (DPSM) enters the Wait_Ack state. If the timer reaches 0 while the DPSM is in this states, the acknowledgment timeout status flag is set."]
21852 pub fn acktimer(self) -> Reg<regs::Acktimer, RW> {
21853 unsafe { Reg::from_ptr(self.0.add(64usize)) }
21854 }
21855 #[doc = "The receive and transmit FIFOs can be read or written as 32-bit wide registers. The FIFOs contain 32 entries on 32 sequential addresses. This allows the CPU to use its load and store multiple operands to read from/write to the FIFO."]
21856 pub fn idmactrlr(self) -> Reg<regs::Idmactrlr, RW> {
21857 unsafe { Reg::from_ptr(self.0.add(80usize)) }
21858 }
21859 #[doc = "The SDMMC_IDMABSIZER register contains the buffers size when in double buffer configuration."]
21860 pub fn idmabsizer(self) -> Reg<regs::Idmabsizer, RW> {
21861 unsafe { Reg::from_ptr(self.0.add(84usize)) }
21862 }
21863 #[doc = "The SDMMC_IDMABASE0R register contains the memory buffer base address in single buffer configuration and the buffer 0 base address in double buffer configuration."]
21864 pub fn idmabase0r(self) -> Reg<regs::Idmabase0r, RW> {
21865 unsafe { Reg::from_ptr(self.0.add(88usize)) }
21866 }
21867 #[doc = "The SDMMC_IDMABASE1R register contains the double buffer configuration second buffer memory base address."]
21868 pub fn idmabase1r(self) -> Reg<regs::Idmabase1r, RW> {
21869 unsafe { Reg::from_ptr(self.0.add(92usize)) }
21870 }
21871 #[doc = "The receive and transmit FIFOs can be only read or written as word (32-bit) wide registers. The FIFOs contain 16 entries on sequential addresses. This allows the CPU to use its load and store multiple operands to read from/write to the FIFO.When accessing SDMMC_FIFOR with half word or byte access an AHB bus fault is generated."]
21872 pub fn fifor(self) -> Reg<regs::Fifor, RW> {
21873 unsafe { Reg::from_ptr(self.0.add(128usize)) }
21874 }
21875 #[doc = "SDMMC IP version register"]
21876 pub fn ver(self) -> Reg<regs::Ver, R> {
21877 unsafe { Reg::from_ptr(self.0.add(1012usize)) }
21878 } 19559 }
21879 #[doc = "SDMMC IP identification register"] 19560 #[doc = "TX CRC register"]
21880 pub fn id(self) -> Reg<regs::Id, R> { 19561 pub fn txcrcr(self) -> Reg<regs::Txcrcr, R> {
21881 unsafe { Reg::from_ptr(self.0.add(1016usize)) } 19562 unsafe { Reg::from_ptr(self.0.add(24usize)) }
21882 } 19563 }
21883 } 19564 }
21884 pub mod regs { 19565 pub mod regs {
21885 use crate::generic::*; 19566 use crate::generic::*;
21886 #[doc = "The SDMMC_STAR register is a read-only register. It contains two types of flag:Static flags (bits [29,21,11:0]): these bits remain asserted until they are cleared by writing to the SDMMC interrupt Clear register (see SDMMC_ICR)Dynamic flags (bits [20:12]): these bits change state depending on the state of the underlying logic (for example, FIFO full and empty flags are asserted and de-asserted as data while written to the FIFO)"] 19567 #[doc = "status register"]
21887 #[repr(transparent)] 19568 #[repr(transparent)]
21888 #[derive(Copy, Clone, Eq, PartialEq)] 19569 #[derive(Copy, Clone, Eq, PartialEq)]
21889 pub struct Star(pub u32); 19570 pub struct Sr(pub u32);
21890 impl Star { 19571 impl Sr {
21891 #[doc = "Command response received (CRC check failed). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19572 #[doc = "Receive buffer not empty"]
21892 pub const fn ccrcfail(&self) -> bool { 19573 pub const fn rxne(&self) -> bool {
21893 let val = (self.0 >> 0usize) & 0x01; 19574 let val = (self.0 >> 0usize) & 0x01;
21894 val != 0 19575 val != 0
21895 } 19576 }
21896 #[doc = "Command response received (CRC check failed). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19577 #[doc = "Receive buffer not empty"]
21897 pub fn set_ccrcfail(&mut self, val: bool) { 19578 pub fn set_rxne(&mut self, val: bool) {
21898 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 19579 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
21899 } 19580 }
21900 #[doc = "Data block sent/received (CRC check failed). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19581 #[doc = "Transmit buffer empty"]
21901 pub const fn dcrcfail(&self) -> bool { 19582 pub const fn txe(&self) -> bool {
21902 let val = (self.0 >> 1usize) & 0x01; 19583 let val = (self.0 >> 1usize) & 0x01;
21903 val != 0 19584 val != 0
21904 } 19585 }
21905 #[doc = "Data block sent/received (CRC check failed). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19586 #[doc = "Transmit buffer empty"]
21906 pub fn set_dcrcfail(&mut self, val: bool) { 19587 pub fn set_txe(&mut self, val: bool) {
21907 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 19588 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
21908 } 19589 }
21909 #[doc = "Command response timeout. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR. The Command Timeout period has a fixed value of 64 SDMMC_CK clock periods."] 19590 #[doc = "CRC error flag"]
21910 pub const fn ctimeout(&self) -> bool { 19591 pub const fn crcerr(&self) -> bool {
21911 let val = (self.0 >> 2usize) & 0x01;
21912 val != 0
21913 }
21914 #[doc = "Command response timeout. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR. The Command Timeout period has a fixed value of 64 SDMMC_CK clock periods."]
21915 pub fn set_ctimeout(&mut self, val: bool) {
21916 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
21917 }
21918 #[doc = "Data timeout. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
21919 pub const fn dtimeout(&self) -> bool {
21920 let val = (self.0 >> 3usize) & 0x01;
21921 val != 0
21922 }
21923 #[doc = "Data timeout. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
21924 pub fn set_dtimeout(&mut self, val: bool) {
21925 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
21926 }
21927 #[doc = "Transmit FIFO underrun error or IDMA read transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
21928 pub const fn txunderr(&self) -> bool {
21929 let val = (self.0 >> 4usize) & 0x01; 19592 let val = (self.0 >> 4usize) & 0x01;
21930 val != 0 19593 val != 0
21931 } 19594 }
21932 #[doc = "Transmit FIFO underrun error or IDMA read transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19595 #[doc = "CRC error flag"]
21933 pub fn set_txunderr(&mut self, val: bool) { 19596 pub fn set_crcerr(&mut self, val: bool) {
21934 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 19597 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
21935 } 19598 }
21936 #[doc = "Received FIFO overrun error or IDMA write transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19599 #[doc = "Mode fault"]
21937 pub const fn rxoverr(&self) -> bool { 19600 pub const fn modf(&self) -> bool {
21938 let val = (self.0 >> 5usize) & 0x01; 19601 let val = (self.0 >> 5usize) & 0x01;
21939 val != 0 19602 val != 0
21940 } 19603 }
21941 #[doc = "Received FIFO overrun error or IDMA write transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19604 #[doc = "Mode fault"]
21942 pub fn set_rxoverr(&mut self, val: bool) { 19605 pub fn set_modf(&mut self, val: bool) {
21943 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 19606 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
21944 } 19607 }
21945 #[doc = "Command response received (CRC check passed, or no CRC). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19608 #[doc = "Overrun flag"]
21946 pub const fn cmdrend(&self) -> bool { 19609 pub const fn ovr(&self) -> bool {
21947 let val = (self.0 >> 6usize) & 0x01; 19610 let val = (self.0 >> 6usize) & 0x01;
21948 val != 0 19611 val != 0
21949 } 19612 }
21950 #[doc = "Command response received (CRC check passed, or no CRC). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19613 #[doc = "Overrun flag"]
21951 pub fn set_cmdrend(&mut self, val: bool) { 19614 pub fn set_ovr(&mut self, val: bool) {
21952 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 19615 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
21953 } 19616 }
21954 #[doc = "Command sent (no response required). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19617 #[doc = "Busy flag"]
21955 pub const fn cmdsent(&self) -> bool { 19618 pub const fn bsy(&self) -> bool {
21956 let val = (self.0 >> 7usize) & 0x01; 19619 let val = (self.0 >> 7usize) & 0x01;
21957 val != 0 19620 val != 0
21958 } 19621 }
21959 #[doc = "Command sent (no response required). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19622 #[doc = "Busy flag"]
21960 pub fn set_cmdsent(&mut self, val: bool) { 19623 pub fn set_bsy(&mut self, val: bool) {
21961 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 19624 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
21962 } 19625 }
21963 #[doc = "Data transfer ended correctly. (data counter, DATACOUNT is zero and no errors occur). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19626 #[doc = "TI frame format error"]
21964 pub const fn dataend(&self) -> bool { 19627 pub const fn fre(&self) -> bool {
21965 let val = (self.0 >> 8usize) & 0x01; 19628 let val = (self.0 >> 8usize) & 0x01;
21966 val != 0 19629 val != 0
21967 } 19630 }
21968 #[doc = "Data transfer ended correctly. (data counter, DATACOUNT is zero and no errors occur). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19631 #[doc = "TI frame format error"]
21969 pub fn set_dataend(&mut self, val: bool) { 19632 pub fn set_fre(&mut self, val: bool) {
21970 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 19633 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
21971 } 19634 }
21972 #[doc = "Data transfer Hold. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19635 }
21973 pub const fn dhold(&self) -> bool { 19636 impl Default for Sr {
21974 let val = (self.0 >> 9usize) & 0x01; 19637 fn default() -> Sr {
19638 Sr(0)
19639 }
19640 }
19641 #[doc = "control register 2"]
19642 #[repr(transparent)]
19643 #[derive(Copy, Clone, Eq, PartialEq)]
19644 pub struct Cr2(pub u32);
19645 impl Cr2 {
19646 #[doc = "Rx buffer DMA enable"]
19647 pub const fn rxdmaen(&self) -> bool {
19648 let val = (self.0 >> 0usize) & 0x01;
21975 val != 0 19649 val != 0
21976 } 19650 }
21977 #[doc = "Data transfer Hold. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19651 #[doc = "Rx buffer DMA enable"]
21978 pub fn set_dhold(&mut self, val: bool) { 19652 pub fn set_rxdmaen(&mut self, val: bool) {
21979 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 19653 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
21980 } 19654 }
21981 #[doc = "Data block sent/received. (CRC check passed) and DPSM moves to the READWAIT state. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19655 #[doc = "Tx buffer DMA enable"]
21982 pub const fn dbckend(&self) -> bool { 19656 pub const fn txdmaen(&self) -> bool {
21983 let val = (self.0 >> 10usize) & 0x01; 19657 let val = (self.0 >> 1usize) & 0x01;
21984 val != 0 19658 val != 0
21985 } 19659 }
21986 #[doc = "Data block sent/received. (CRC check passed) and DPSM moves to the READWAIT state. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19660 #[doc = "Tx buffer DMA enable"]
21987 pub fn set_dbckend(&mut self, val: bool) { 19661 pub fn set_txdmaen(&mut self, val: bool) {
21988 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize); 19662 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
21989 } 19663 }
21990 #[doc = "Data transfer aborted by CMD12. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19664 #[doc = "SS output enable"]
21991 pub const fn dabort(&self) -> bool { 19665 pub const fn ssoe(&self) -> bool {
21992 let val = (self.0 >> 11usize) & 0x01; 19666 let val = (self.0 >> 2usize) & 0x01;
21993 val != 0 19667 val != 0
21994 } 19668 }
21995 #[doc = "Data transfer aborted by CMD12. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19669 #[doc = "SS output enable"]
21996 pub fn set_dabort(&mut self, val: bool) { 19670 pub fn set_ssoe(&mut self, val: bool) {
21997 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize); 19671 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
21998 } 19672 }
21999 #[doc = "Data path state machine active, i.e. not in Idle state. This is a hardware status flag only, does not generate an interrupt."] 19673 #[doc = "Frame format"]
22000 pub const fn dpsmact(&self) -> bool { 19674 pub const fn frf(&self) -> super::vals::Frf {
22001 let val = (self.0 >> 12usize) & 0x01; 19675 let val = (self.0 >> 4usize) & 0x01;
22002 val != 0 19676 super::vals::Frf(val as u8)
22003 } 19677 }
22004 #[doc = "Data path state machine active, i.e. not in Idle state. This is a hardware status flag only, does not generate an interrupt."] 19678 #[doc = "Frame format"]
22005 pub fn set_dpsmact(&mut self, val: bool) { 19679 pub fn set_frf(&mut self, val: super::vals::Frf) {
22006 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize); 19680 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
22007 } 19681 }
22008 #[doc = "Command path state machine active, i.e. not in Idle state. This is a hardware status flag only, does not generate an interrupt."] 19682 #[doc = "Error interrupt enable"]
22009 pub const fn cpsmact(&self) -> bool { 19683 pub const fn errie(&self) -> bool {
22010 let val = (self.0 >> 13usize) & 0x01; 19684 let val = (self.0 >> 5usize) & 0x01;
22011 val != 0 19685 val != 0
22012 } 19686 }
22013 #[doc = "Command path state machine active, i.e. not in Idle state. This is a hardware status flag only, does not generate an interrupt."] 19687 #[doc = "Error interrupt enable"]
22014 pub fn set_cpsmact(&mut self, val: bool) { 19688 pub fn set_errie(&mut self, val: bool) {
22015 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize); 19689 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
22016 } 19690 }
22017 #[doc = "Transmit FIFO half empty At least half the number of words can be written into the FIFO. This bit is cleared when the FIFO becomes half+1 full."] 19691 #[doc = "RX buffer not empty interrupt enable"]
22018 pub const fn txfifohe(&self) -> bool { 19692 pub const fn rxneie(&self) -> bool {
22019 let val = (self.0 >> 14usize) & 0x01; 19693 let val = (self.0 >> 6usize) & 0x01;
22020 val != 0 19694 val != 0
22021 } 19695 }
22022 #[doc = "Transmit FIFO half empty At least half the number of words can be written into the FIFO. This bit is cleared when the FIFO becomes half+1 full."] 19696 #[doc = "RX buffer not empty interrupt enable"]
22023 pub fn set_txfifohe(&mut self, val: bool) { 19697 pub fn set_rxneie(&mut self, val: bool) {
22024 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize); 19698 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
22025 } 19699 }
22026 #[doc = "Receive FIFO half full There are at least half the number of words in the FIFO. This bit is cleared when the FIFO becomes half+1 empty."] 19700 #[doc = "Tx buffer empty interrupt enable"]
22027 pub const fn rxfifohf(&self) -> bool { 19701 pub const fn txeie(&self) -> bool {
22028 let val = (self.0 >> 15usize) & 0x01; 19702 let val = (self.0 >> 7usize) & 0x01;
22029 val != 0 19703 val != 0
22030 } 19704 }
22031 #[doc = "Receive FIFO half full There are at least half the number of words in the FIFO. This bit is cleared when the FIFO becomes half+1 empty."] 19705 #[doc = "Tx buffer empty interrupt enable"]
22032 pub fn set_rxfifohf(&mut self, val: bool) { 19706 pub fn set_txeie(&mut self, val: bool) {
22033 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize); 19707 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
22034 } 19708 }
22035 #[doc = "Transmit FIFO full This is a hardware status flag only, does not generate an interrupt. This bit is cleared when one FIFO location becomes empty."] 19709 }
22036 pub const fn txfifof(&self) -> bool { 19710 impl Default for Cr2 {
22037 let val = (self.0 >> 16usize) & 0x01; 19711 fn default() -> Cr2 {
22038 val != 0 19712 Cr2(0)
22039 } 19713 }
22040 #[doc = "Transmit FIFO full This is a hardware status flag only, does not generate an interrupt. This bit is cleared when one FIFO location becomes empty."] 19714 }
22041 pub fn set_txfifof(&mut self, val: bool) { 19715 #[doc = "RX CRC register"]
22042 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 19716 #[repr(transparent)]
19717 #[derive(Copy, Clone, Eq, PartialEq)]
19718 pub struct Rxcrcr(pub u32);
19719 impl Rxcrcr {
19720 #[doc = "Rx CRC register"]
19721 pub const fn rx_crc(&self) -> u16 {
19722 let val = (self.0 >> 0usize) & 0xffff;
19723 val as u16
22043 } 19724 }
22044 #[doc = "Receive FIFO full This bit is cleared when one FIFO location becomes empty."] 19725 #[doc = "Rx CRC register"]
22045 pub const fn rxfifof(&self) -> bool { 19726 pub fn set_rx_crc(&mut self, val: u16) {
22046 let val = (self.0 >> 17usize) & 0x01; 19727 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
22047 val != 0
22048 } 19728 }
22049 #[doc = "Receive FIFO full This bit is cleared when one FIFO location becomes empty."] 19729 }
22050 pub fn set_rxfifof(&mut self, val: bool) { 19730 impl Default for Rxcrcr {
22051 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize); 19731 fn default() -> Rxcrcr {
19732 Rxcrcr(0)
22052 } 19733 }
22053 #[doc = "Transmit FIFO empty This bit is cleared when one FIFO location becomes full."] 19734 }
22054 pub const fn txfifoe(&self) -> bool { 19735 #[doc = "control register 1"]
22055 let val = (self.0 >> 18usize) & 0x01; 19736 #[repr(transparent)]
22056 val != 0 19737 #[derive(Copy, Clone, Eq, PartialEq)]
19738 pub struct Cr1(pub u32);
19739 impl Cr1 {
19740 #[doc = "Clock phase"]
19741 pub const fn cpha(&self) -> super::vals::Cpha {
19742 let val = (self.0 >> 0usize) & 0x01;
19743 super::vals::Cpha(val as u8)
22057 } 19744 }
22058 #[doc = "Transmit FIFO empty This bit is cleared when one FIFO location becomes full."] 19745 #[doc = "Clock phase"]
22059 pub fn set_txfifoe(&mut self, val: bool) { 19746 pub fn set_cpha(&mut self, val: super::vals::Cpha) {
22060 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize); 19747 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
22061 } 19748 }
22062 #[doc = "Receive FIFO empty This is a hardware status flag only, does not generate an interrupt. This bit is cleared when one FIFO location becomes full."] 19749 #[doc = "Clock polarity"]
22063 pub const fn rxfifoe(&self) -> bool { 19750 pub const fn cpol(&self) -> super::vals::Cpol {
22064 let val = (self.0 >> 19usize) & 0x01; 19751 let val = (self.0 >> 1usize) & 0x01;
22065 val != 0 19752 super::vals::Cpol(val as u8)
22066 } 19753 }
22067 #[doc = "Receive FIFO empty This is a hardware status flag only, does not generate an interrupt. This bit is cleared when one FIFO location becomes full."] 19754 #[doc = "Clock polarity"]
22068 pub fn set_rxfifoe(&mut self, val: bool) { 19755 pub fn set_cpol(&mut self, val: super::vals::Cpol) {
22069 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize); 19756 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
22070 } 19757 }
22071 #[doc = "Inverted value of SDMMC_D0 line (Busy), sampled at the end of a CMD response and a second time 2 SDMMC_CK cycles after the CMD response. This bit is reset to not busy when the SDMMCD0 line changes from busy to not busy. This bit does not signal busy due to data transfer. This is a hardware status flag only, it does not generate an interrupt."] 19758 #[doc = "Master selection"]
22072 pub const fn busyd0(&self) -> bool { 19759 pub const fn mstr(&self) -> super::vals::Mstr {
22073 let val = (self.0 >> 20usize) & 0x01; 19760 let val = (self.0 >> 2usize) & 0x01;
22074 val != 0 19761 super::vals::Mstr(val as u8)
22075 } 19762 }
22076 #[doc = "Inverted value of SDMMC_D0 line (Busy), sampled at the end of a CMD response and a second time 2 SDMMC_CK cycles after the CMD response. This bit is reset to not busy when the SDMMCD0 line changes from busy to not busy. This bit does not signal busy due to data transfer. This is a hardware status flag only, it does not generate an interrupt."] 19763 #[doc = "Master selection"]
22077 pub fn set_busyd0(&mut self, val: bool) { 19764 pub fn set_mstr(&mut self, val: super::vals::Mstr) {
22078 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize); 19765 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
22079 } 19766 }
22080 #[doc = "end of SDMMC_D0 Busy following a CMD response detected. This indicates only end of busy following a CMD response. This bit does not signal busy due to data transfer. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19767 #[doc = "Baud rate control"]
22081 pub const fn busyd0end(&self) -> bool { 19768 pub const fn br(&self) -> super::vals::Br {
22082 let val = (self.0 >> 21usize) & 0x01; 19769 let val = (self.0 >> 3usize) & 0x07;
22083 val != 0 19770 super::vals::Br(val as u8)
22084 } 19771 }
22085 #[doc = "end of SDMMC_D0 Busy following a CMD response detected. This indicates only end of busy following a CMD response. This bit does not signal busy due to data transfer. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19772 #[doc = "Baud rate control"]
22086 pub fn set_busyd0end(&mut self, val: bool) { 19773 pub fn set_br(&mut self, val: super::vals::Br) {
22087 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize); 19774 self.0 = (self.0 & !(0x07 << 3usize)) | (((val.0 as u32) & 0x07) << 3usize);
22088 } 19775 }
22089 #[doc = "SDIO interrupt received. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19776 #[doc = "SPI enable"]
22090 pub const fn sdioit(&self) -> bool { 19777 pub const fn spe(&self) -> bool {
22091 let val = (self.0 >> 22usize) & 0x01; 19778 let val = (self.0 >> 6usize) & 0x01;
22092 val != 0 19779 val != 0
22093 } 19780 }
22094 #[doc = "SDIO interrupt received. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19781 #[doc = "SPI enable"]
22095 pub fn set_sdioit(&mut self, val: bool) { 19782 pub fn set_spe(&mut self, val: bool) {
22096 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize); 19783 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
22097 } 19784 }
22098 #[doc = "Boot acknowledgment received (boot acknowledgment check fail). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19785 #[doc = "Frame format"]
22099 pub const fn ackfail(&self) -> bool { 19786 pub const fn lsbfirst(&self) -> super::vals::Lsbfirst {
22100 let val = (self.0 >> 23usize) & 0x01; 19787 let val = (self.0 >> 7usize) & 0x01;
22101 val != 0 19788 super::vals::Lsbfirst(val as u8)
22102 } 19789 }
22103 #[doc = "Boot acknowledgment received (boot acknowledgment check fail). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19790 #[doc = "Frame format"]
22104 pub fn set_ackfail(&mut self, val: bool) { 19791 pub fn set_lsbfirst(&mut self, val: super::vals::Lsbfirst) {
22105 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize); 19792 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
22106 } 19793 }
22107 #[doc = "Boot acknowledgment timeout. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19794 #[doc = "Internal slave select"]
22108 pub const fn acktimeout(&self) -> bool { 19795 pub const fn ssi(&self) -> bool {
22109 let val = (self.0 >> 24usize) & 0x01; 19796 let val = (self.0 >> 8usize) & 0x01;
22110 val != 0 19797 val != 0
22111 } 19798 }
22112 #[doc = "Boot acknowledgment timeout. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19799 #[doc = "Internal slave select"]
22113 pub fn set_acktimeout(&mut self, val: bool) { 19800 pub fn set_ssi(&mut self, val: bool) {
22114 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize); 19801 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
22115 } 19802 }
22116 #[doc = "Voltage switch critical timing section completion. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19803 #[doc = "Software slave management"]
22117 pub const fn vswend(&self) -> bool { 19804 pub const fn ssm(&self) -> bool {
22118 let val = (self.0 >> 25usize) & 0x01; 19805 let val = (self.0 >> 9usize) & 0x01;
22119 val != 0 19806 val != 0
22120 } 19807 }
22121 #[doc = "Voltage switch critical timing section completion. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19808 #[doc = "Software slave management"]
22122 pub fn set_vswend(&mut self, val: bool) { 19809 pub fn set_ssm(&mut self, val: bool) {
22123 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize); 19810 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
22124 } 19811 }
22125 #[doc = "SDMMC_CK stopped in Voltage switch procedure. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19812 #[doc = "Receive only"]
22126 pub const fn ckstop(&self) -> bool { 19813 pub const fn rxonly(&self) -> super::vals::Rxonly {
22127 let val = (self.0 >> 26usize) & 0x01; 19814 let val = (self.0 >> 10usize) & 0x01;
22128 val != 0 19815 super::vals::Rxonly(val as u8)
22129 } 19816 }
22130 #[doc = "SDMMC_CK stopped in Voltage switch procedure. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19817 #[doc = "Receive only"]
22131 pub fn set_ckstop(&mut self, val: bool) { 19818 pub fn set_rxonly(&mut self, val: super::vals::Rxonly) {
22132 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize); 19819 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
22133 } 19820 }
22134 #[doc = "IDMA transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19821 #[doc = "Data frame format"]
22135 pub const fn idmate(&self) -> bool { 19822 pub const fn dff(&self) -> super::vals::Dff {
22136 let val = (self.0 >> 27usize) & 0x01; 19823 let val = (self.0 >> 11usize) & 0x01;
22137 val != 0 19824 super::vals::Dff(val as u8)
22138 } 19825 }
22139 #[doc = "IDMA transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19826 #[doc = "Data frame format"]
22140 pub fn set_idmate(&mut self, val: bool) { 19827 pub fn set_dff(&mut self, val: super::vals::Dff) {
22141 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize); 19828 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
22142 } 19829 }
22143 #[doc = "IDMA buffer transfer complete. interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19830 #[doc = "CRC transfer next"]
22144 pub const fn idmabtc(&self) -> bool { 19831 pub const fn crcnext(&self) -> super::vals::Crcnext {
22145 let val = (self.0 >> 28usize) & 0x01; 19832 let val = (self.0 >> 12usize) & 0x01;
22146 val != 0 19833 super::vals::Crcnext(val as u8)
22147 } 19834 }
22148 #[doc = "IDMA buffer transfer complete. interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 19835 #[doc = "CRC transfer next"]
22149 pub fn set_idmabtc(&mut self, val: bool) { 19836 pub fn set_crcnext(&mut self, val: super::vals::Crcnext) {
22150 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize); 19837 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
22151 } 19838 }
22152 } 19839 #[doc = "Hardware CRC calculation enable"]
22153 impl Default for Star { 19840 pub const fn crcen(&self) -> bool {
22154 fn default() -> Star { 19841 let val = (self.0 >> 13usize) & 0x01;
22155 Star(0) 19842 val != 0
22156 } 19843 }
22157 } 19844 #[doc = "Hardware CRC calculation enable"]
22158 #[doc = "SDMMC IP identification register"] 19845 pub fn set_crcen(&mut self, val: bool) {
22159 #[repr(transparent)] 19846 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
22160 #[derive(Copy, Clone, Eq, PartialEq)]
22161 pub struct Id(pub u32);
22162 impl Id {
22163 #[doc = "SDMMC IP identification."]
22164 pub const fn ip_id(&self) -> u32 {
22165 let val = (self.0 >> 0usize) & 0xffff_ffff;
22166 val as u32
22167 } 19847 }
22168 #[doc = "SDMMC IP identification."] 19848 #[doc = "Output enable in bidirectional mode"]
22169 pub fn set_ip_id(&mut self, val: u32) { 19849 pub const fn bidioe(&self) -> super::vals::Bidioe {
22170 self.0 = 19850 let val = (self.0 >> 14usize) & 0x01;
22171 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize); 19851 super::vals::Bidioe(val as u8)
22172 } 19852 }
22173 } 19853 #[doc = "Output enable in bidirectional mode"]
22174 impl Default for Id { 19854 pub fn set_bidioe(&mut self, val: super::vals::Bidioe) {
22175 fn default() -> Id { 19855 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
22176 Id(0)
22177 } 19856 }
22178 } 19857 #[doc = "Bidirectional data mode enable"]
22179 #[doc = "The SDMMC_RESP1/2/3/4R registers contain the status of a card, which is part of the received response."] 19858 pub const fn bidimode(&self) -> super::vals::Bidimode {
22180 #[repr(transparent)] 19859 let val = (self.0 >> 15usize) & 0x01;
22181 #[derive(Copy, Clone, Eq, PartialEq)] 19860 super::vals::Bidimode(val as u8)
22182 pub struct Resp2r(pub u32);
22183 impl Resp2r {
22184 #[doc = "see Table404."]
22185 pub const fn cardstatus2(&self) -> u32 {
22186 let val = (self.0 >> 0usize) & 0xffff_ffff;
22187 val as u32
22188 } 19861 }
22189 #[doc = "see Table404."] 19862 #[doc = "Bidirectional data mode enable"]
22190 pub fn set_cardstatus2(&mut self, val: u32) { 19863 pub fn set_bidimode(&mut self, val: super::vals::Bidimode) {
22191 self.0 = 19864 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
22192 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
22193 } 19865 }
22194 } 19866 }
22195 impl Default for Resp2r { 19867 impl Default for Cr1 {
22196 fn default() -> Resp2r { 19868 fn default() -> Cr1 {
22197 Resp2r(0) 19869 Cr1(0)
22198 } 19870 }
22199 } 19871 }
22200 #[doc = "The SDMMC_IDMABSIZER register contains the buffers size when in double buffer configuration."] 19872 #[doc = "CRC polynomial register"]
22201 #[repr(transparent)] 19873 #[repr(transparent)]
22202 #[derive(Copy, Clone, Eq, PartialEq)] 19874 #[derive(Copy, Clone, Eq, PartialEq)]
22203 pub struct Idmabsizer(pub u32); 19875 pub struct Crcpr(pub u32);
22204 impl Idmabsizer { 19876 impl Crcpr {
22205 #[doc = "Number of transfers per buffer. This 8-bit value shall be multiplied by 8 to get the size of the buffer in 32-bit words and by 32 to get the size of the buffer in bytes. Example: IDMABNDT = 0x01: buffer size = 8 words = 32 bytes. These bits can only be written by firmware when DPSM is inactive (DPSMACT = 0)."] 19877 #[doc = "CRC polynomial register"]
22206 pub const fn idmabndt(&self) -> u8 { 19878 pub const fn crcpoly(&self) -> u16 {
22207 let val = (self.0 >> 5usize) & 0xff; 19879 let val = (self.0 >> 0usize) & 0xffff;
22208 val as u8 19880 val as u16
22209 } 19881 }
22210 #[doc = "Number of transfers per buffer. This 8-bit value shall be multiplied by 8 to get the size of the buffer in 32-bit words and by 32 to get the size of the buffer in bytes. Example: IDMABNDT = 0x01: buffer size = 8 words = 32 bytes. These bits can only be written by firmware when DPSM is inactive (DPSMACT = 0)."] 19882 #[doc = "CRC polynomial register"]
22211 pub fn set_idmabndt(&mut self, val: u8) { 19883 pub fn set_crcpoly(&mut self, val: u16) {
22212 self.0 = (self.0 & !(0xff << 5usize)) | (((val as u32) & 0xff) << 5usize); 19884 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
22213 } 19885 }
22214 } 19886 }
22215 impl Default for Idmabsizer { 19887 impl Default for Crcpr {
22216 fn default() -> Idmabsizer { 19888 fn default() -> Crcpr {
22217 Idmabsizer(0) 19889 Crcpr(0)
22218 } 19890 }
22219 } 19891 }
22220 #[doc = "The SDMMC_ARGR register contains a 32-bit command argument, which is sent to a card as part of a command message."] 19892 #[doc = "TX CRC register"]
22221 #[repr(transparent)] 19893 #[repr(transparent)]
22222 #[derive(Copy, Clone, Eq, PartialEq)] 19894 #[derive(Copy, Clone, Eq, PartialEq)]
22223 pub struct Argr(pub u32); 19895 pub struct Txcrcr(pub u32);
22224 impl Argr { 19896 impl Txcrcr {
22225 #[doc = "Command argument. These bits can only be written by firmware when CPSM is disabled (CPSMEN = 0). Command argument sent to a card as part of a command message. If a command contains an argument, it must be loaded into this register before writing a command to the command register."] 19897 #[doc = "Tx CRC register"]
22226 pub const fn cmdarg(&self) -> u32 { 19898 pub const fn tx_crc(&self) -> u16 {
22227 let val = (self.0 >> 0usize) & 0xffff_ffff; 19899 let val = (self.0 >> 0usize) & 0xffff;
22228 val as u32 19900 val as u16
22229 } 19901 }
22230 #[doc = "Command argument. These bits can only be written by firmware when CPSM is disabled (CPSMEN = 0). Command argument sent to a card as part of a command message. If a command contains an argument, it must be loaded into this register before writing a command to the command register."] 19902 #[doc = "Tx CRC register"]
22231 pub fn set_cmdarg(&mut self, val: u32) { 19903 pub fn set_tx_crc(&mut self, val: u16) {
22232 self.0 = 19904 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
22233 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
22234 } 19905 }
22235 } 19906 }
22236 impl Default for Argr { 19907 impl Default for Txcrcr {
22237 fn default() -> Argr { 19908 fn default() -> Txcrcr {
22238 Argr(0) 19909 Txcrcr(0)
22239 } 19910 }
22240 } 19911 }
22241 #[doc = "The SDMMC_RESP1/2/3/4R registers contain the status of a card, which is part of the received response."] 19912 #[doc = "data register"]
22242 #[repr(transparent)] 19913 #[repr(transparent)]
22243 #[derive(Copy, Clone, Eq, PartialEq)] 19914 #[derive(Copy, Clone, Eq, PartialEq)]
22244 pub struct Resp4r(pub u32); 19915 pub struct Dr(pub u32);
22245 impl Resp4r { 19916 impl Dr {
22246 #[doc = "see Table404."] 19917 #[doc = "Data register"]
22247 pub const fn cardstatus4(&self) -> u32 { 19918 pub const fn dr(&self) -> u16 {
22248 let val = (self.0 >> 0usize) & 0xffff_ffff; 19919 let val = (self.0 >> 0usize) & 0xffff;
22249 val as u32 19920 val as u16
22250 } 19921 }
22251 #[doc = "see Table404."] 19922 #[doc = "Data register"]
22252 pub fn set_cardstatus4(&mut self, val: u32) { 19923 pub fn set_dr(&mut self, val: u16) {
22253 self.0 = 19924 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
22254 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
22255 } 19925 }
22256 } 19926 }
22257 impl Default for Resp4r { 19927 impl Default for Dr {
22258 fn default() -> Resp4r { 19928 fn default() -> Dr {
22259 Resp4r(0) 19929 Dr(0)
22260 } 19930 }
22261 } 19931 }
22262 #[doc = "The SDMMC_CLKCR register controls the SDMMC_CK output clock, the SDMMC_RX_CLK receive clock, and the bus width."] 19932 }
19933 pub mod vals {
19934 use crate::generic::*;
22263 #[repr(transparent)] 19935 #[repr(transparent)]
22264 #[derive(Copy, Clone, Eq, PartialEq)] 19936 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22265 pub struct Clkcr(pub u32); 19937 pub struct Cpha(pub u8);
22266 impl Clkcr { 19938 impl Cpha {
22267 #[doc = "Clock divide factor This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0). This field defines the divide factor between the input clock (SDMMCCLK) and the output clock (SDMMC_CK): SDMMC_CK frequency = SDMMCCLK / [2 * CLKDIV]. 0xx: etc.. xxx: etc.."] 19939 #[doc = "The first clock transition is the first data capture edge"]
22268 pub const fn clkdiv(&self) -> u16 { 19940 pub const FIRSTEDGE: Self = Self(0);
22269 let val = (self.0 >> 0usize) & 0x03ff; 19941 #[doc = "The second clock transition is the first data capture edge"]
22270 val as u16 19942 pub const SECONDEDGE: Self = Self(0x01);
22271 }
22272 #[doc = "Clock divide factor This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0). This field defines the divide factor between the input clock (SDMMCCLK) and the output clock (SDMMC_CK): SDMMC_CK frequency = SDMMCCLK / [2 * CLKDIV]. 0xx: etc.. xxx: etc.."]
22273 pub fn set_clkdiv(&mut self, val: u16) {
22274 self.0 = (self.0 & !(0x03ff << 0usize)) | (((val as u32) & 0x03ff) << 0usize);
22275 }
22276 #[doc = "Power saving configuration bit This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0) For power saving, the SDMMC_CK clock output can be disabled when the bus is idle by setting PWRSAV:"]
22277 pub const fn pwrsav(&self) -> bool {
22278 let val = (self.0 >> 12usize) & 0x01;
22279 val != 0
22280 }
22281 #[doc = "Power saving configuration bit This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0) For power saving, the SDMMC_CK clock output can be disabled when the bus is idle by setting PWRSAV:"]
22282 pub fn set_pwrsav(&mut self, val: bool) {
22283 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
22284 }
22285 #[doc = "Wide bus mode enable bit This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0)"]
22286 pub const fn widbus(&self) -> u8 {
22287 let val = (self.0 >> 14usize) & 0x03;
22288 val as u8
22289 }
22290 #[doc = "Wide bus mode enable bit This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0)"]
22291 pub fn set_widbus(&mut self, val: u8) {
22292 self.0 = (self.0 & !(0x03 << 14usize)) | (((val as u32) & 0x03) << 14usize);
22293 }
22294 #[doc = "SDMMC_CK dephasing selection bit for data and Command. This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0). When clock division = 1 (CLKDIV = 0), this bit has no effect. Data and Command change on SDMMC_CK falling edge. When clock division &gt;1 (CLKDIV &gt; 0) &amp; DDR = 0: - SDMMC_CK edge occurs on SDMMCCLK rising edge. When clock division >1 (CLKDIV > 0) & DDR = 1: - Data changed on the SDMMCCLK falling edge succeeding a SDMMC_CK edge. - SDMMC_CK edge occurs on SDMMCCLK rising edge. - Data changed on the SDMMC_CK falling edge succeeding a SDMMC_CK edge. - SDMMC_CK edge occurs on SDMMCCLK rising edge."]
22295 pub const fn negedge(&self) -> bool {
22296 let val = (self.0 >> 16usize) & 0x01;
22297 val != 0
22298 }
22299 #[doc = "SDMMC_CK dephasing selection bit for data and Command. This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0). When clock division = 1 (CLKDIV = 0), this bit has no effect. Data and Command change on SDMMC_CK falling edge. When clock division &gt;1 (CLKDIV &gt; 0) &amp; DDR = 0: - SDMMC_CK edge occurs on SDMMCCLK rising edge. When clock division >1 (CLKDIV > 0) & DDR = 1: - Data changed on the SDMMCCLK falling edge succeeding a SDMMC_CK edge. - SDMMC_CK edge occurs on SDMMCCLK rising edge. - Data changed on the SDMMC_CK falling edge succeeding a SDMMC_CK edge. - SDMMC_CK edge occurs on SDMMCCLK rising edge."]
22300 pub fn set_negedge(&mut self, val: bool) {
22301 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
22302 }
22303 #[doc = "Hardware flow control enable This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0) When Hardware flow control is enabled, the meaning of the TXFIFOE and RXFIFOF flags change, please see SDMMC status register definition in Section56.8.11."]
22304 pub const fn hwfc_en(&self) -> bool {
22305 let val = (self.0 >> 17usize) & 0x01;
22306 val != 0
22307 }
22308 #[doc = "Hardware flow control enable This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0) When Hardware flow control is enabled, the meaning of the TXFIFOE and RXFIFOF flags change, please see SDMMC status register definition in Section56.8.11."]
22309 pub fn set_hwfc_en(&mut self, val: bool) {
22310 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
22311 }
22312 #[doc = "Data rate signaling selection This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0) DDR rate shall only be selected with 4-bit or 8-bit wide bus mode. (WIDBUS &gt; 00). DDR = 1 has no effect when WIDBUS = 00 (1-bit wide bus). DDR rate shall only be selected with clock division &gt;1. (CLKDIV &gt; 0)"]
22313 pub const fn ddr(&self) -> bool {
22314 let val = (self.0 >> 18usize) & 0x01;
22315 val != 0
22316 }
22317 #[doc = "Data rate signaling selection This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0) DDR rate shall only be selected with 4-bit or 8-bit wide bus mode. (WIDBUS &gt; 00). DDR = 1 has no effect when WIDBUS = 00 (1-bit wide bus). DDR rate shall only be selected with clock division &gt;1. (CLKDIV &gt; 0)"]
22318 pub fn set_ddr(&mut self, val: bool) {
22319 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize);
22320 }
22321 #[doc = "Bus speed mode selection between DS, HS, SDR12, SDR25 and SDR50, DDR50, SDR104. This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0)"]
22322 pub const fn busspeed(&self) -> bool {
22323 let val = (self.0 >> 19usize) & 0x01;
22324 val != 0
22325 }
22326 #[doc = "Bus speed mode selection between DS, HS, SDR12, SDR25 and SDR50, DDR50, SDR104. This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0)"]
22327 pub fn set_busspeed(&mut self, val: bool) {
22328 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize);
22329 }
22330 #[doc = "Receive clock selection. These bits can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0)"]
22331 pub const fn selclkrx(&self) -> u8 {
22332 let val = (self.0 >> 20usize) & 0x03;
22333 val as u8
22334 }
22335 #[doc = "Receive clock selection. These bits can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0)"]
22336 pub fn set_selclkrx(&mut self, val: u8) {
22337 self.0 = (self.0 & !(0x03 << 20usize)) | (((val as u32) & 0x03) << 20usize);
22338 }
22339 } 19943 }
22340 impl Default for Clkcr { 19944 #[repr(transparent)]
22341 fn default() -> Clkcr { 19945 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22342 Clkcr(0) 19946 pub struct Bidimode(pub u8);
22343 } 19947 impl Bidimode {
19948 #[doc = "2-line unidirectional data mode selected"]
19949 pub const UNIDIRECTIONAL: Self = Self(0);
19950 #[doc = "1-line bidirectional data mode selected"]
19951 pub const BIDIRECTIONAL: Self = Self(0x01);
22344 } 19952 }
22345 #[doc = "The SDMMC_IDMABASE1R register contains the double buffer configuration second buffer memory base address."]
22346 #[repr(transparent)] 19953 #[repr(transparent)]
22347 #[derive(Copy, Clone, Eq, PartialEq)] 19954 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22348 pub struct Idmabase1r(pub u32); 19955 pub struct Iscfg(pub u8);
22349 impl Idmabase1r { 19956 impl Iscfg {
22350 #[doc = "Buffer 1 memory base address, shall be word aligned (bit [1:0] 19957 #[doc = "Slave - transmit"]
22351are always 0 and read only). This register can be written by firmware when DPSM is inactive (DPSMACT = 0), and can dynamically be written by firmware when DPSM active (DPSMACT = 1) and memory buffer 1 is inactive (IDMABACT = 0)."] 19958 pub const SLAVETX: Self = Self(0);
22352 pub const fn idmabase1(&self) -> u32 { 19959 #[doc = "Slave - receive"]
22353 let val = (self.0 >> 0usize) & 0xffff_ffff; 19960 pub const SLAVERX: Self = Self(0x01);
22354 val as u32 19961 #[doc = "Master - transmit"]
22355 } 19962 pub const MASTERTX: Self = Self(0x02);
22356 #[doc = "Buffer 1 memory base address, shall be word aligned (bit [1:0] 19963 #[doc = "Master - receive"]
22357are always 0 and read only). This register can be written by firmware when DPSM is inactive (DPSMACT = 0), and can dynamically be written by firmware when DPSM active (DPSMACT = 1) and memory buffer 1 is inactive (IDMABACT = 0)."] 19964 pub const MASTERRX: Self = Self(0x03);
22358 pub fn set_idmabase1(&mut self, val: u32) {
22359 self.0 =
22360 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
22361 }
22362 } 19965 }
22363 impl Default for Idmabase1r { 19966 #[repr(transparent)]
22364 fn default() -> Idmabase1r { 19967 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22365 Idmabase1r(0) 19968 pub struct Cpol(pub u8);
22366 } 19969 impl Cpol {
19970 #[doc = "CK to 0 when idle"]
19971 pub const IDLELOW: Self = Self(0);
19972 #[doc = "CK to 1 when idle"]
19973 pub const IDLEHIGH: Self = Self(0x01);
22367 } 19974 }
22368 #[doc = "The receive and transmit FIFOs can be only read or written as word (32-bit) wide registers. The FIFOs contain 16 entries on sequential addresses. This allows the CPU to use its load and store multiple operands to read from/write to the FIFO.When accessing SDMMC_FIFOR with half word or byte access an AHB bus fault is generated."]
22369 #[repr(transparent)] 19975 #[repr(transparent)]
22370 #[derive(Copy, Clone, Eq, PartialEq)] 19976 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22371 pub struct Fifor(pub u32); 19977 pub struct Crcnext(pub u8);
22372 impl Fifor { 19978 impl Crcnext {
22373 #[doc = "Receive and transmit FIFO data This register can only be read or written by firmware when the DPSM is active (DPSMACT=1). The FIFO data occupies 16 entries of 32-bit words."] 19979 #[doc = "Next transmit value is from Tx buffer"]
22374 pub const fn fifodata(&self) -> u32 { 19980 pub const TXBUFFER: Self = Self(0);
22375 let val = (self.0 >> 0usize) & 0xffff_ffff; 19981 #[doc = "Next transmit value is from Tx CRC register"]
22376 val as u32 19982 pub const CRC: Self = Self(0x01);
22377 }
22378 #[doc = "Receive and transmit FIFO data This register can only be read or written by firmware when the DPSM is active (DPSMACT=1). The FIFO data occupies 16 entries of 32-bit words."]
22379 pub fn set_fifodata(&mut self, val: u32) {
22380 self.0 =
22381 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
22382 }
22383 } 19983 }
22384 impl Default for Fifor { 19984 #[repr(transparent)]
22385 fn default() -> Fifor { 19985 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22386 Fifor(0) 19986 pub struct Br(pub u8);
22387 } 19987 impl Br {
19988 #[doc = "f_PCLK / 2"]
19989 pub const DIV2: Self = Self(0);
19990 #[doc = "f_PCLK / 4"]
19991 pub const DIV4: Self = Self(0x01);
19992 #[doc = "f_PCLK / 8"]
19993 pub const DIV8: Self = Self(0x02);
19994 #[doc = "f_PCLK / 16"]
19995 pub const DIV16: Self = Self(0x03);
19996 #[doc = "f_PCLK / 32"]
19997 pub const DIV32: Self = Self(0x04);
19998 #[doc = "f_PCLK / 64"]
19999 pub const DIV64: Self = Self(0x05);
20000 #[doc = "f_PCLK / 128"]
20001 pub const DIV128: Self = Self(0x06);
20002 #[doc = "f_PCLK / 256"]
20003 pub const DIV256: Self = Self(0x07);
22388 } 20004 }
22389 #[doc = "The SDMMC_DLENR register contains the number of data bytes to be transferred. The value is loaded into the data counter when data transfer starts."]
22390 #[repr(transparent)] 20005 #[repr(transparent)]
22391 #[derive(Copy, Clone, Eq, PartialEq)] 20006 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22392 pub struct Dlenr(pub u32); 20007 pub struct Mstr(pub u8);
22393 impl Dlenr { 20008 impl Mstr {
22394 #[doc = "Data length value This register can only be written by firmware when DPSM is inactive (DPSMACT = 0). Number of data bytes to be transferred. When DDR = 1 DATALENGTH is truncated to a multiple of 2. (The last odd byte is not transfered) When DATALENGTH = 0 no data will be transfered, when requested by a CPSMEN and CMDTRANS = 1 also no command will be transfered. DTEN and CPSMEN are cleared to 0."] 20009 #[doc = "Slave configuration"]
22395 pub const fn datalength(&self) -> u32 { 20010 pub const SLAVE: Self = Self(0);
22396 let val = (self.0 >> 0usize) & 0x01ff_ffff; 20011 #[doc = "Master configuration"]
22397 val as u32 20012 pub const MASTER: Self = Self(0x01);
22398 }
22399 #[doc = "Data length value This register can only be written by firmware when DPSM is inactive (DPSMACT = 0). Number of data bytes to be transferred. When DDR = 1 DATALENGTH is truncated to a multiple of 2. (The last odd byte is not transfered) When DATALENGTH = 0 no data will be transfered, when requested by a CPSMEN and CMDTRANS = 1 also no command will be transfered. DTEN and CPSMEN are cleared to 0."]
22400 pub fn set_datalength(&mut self, val: u32) {
22401 self.0 =
22402 (self.0 & !(0x01ff_ffff << 0usize)) | (((val as u32) & 0x01ff_ffff) << 0usize);
22403 }
22404 } 20013 }
22405 impl Default for Dlenr { 20014 #[repr(transparent)]
22406 fn default() -> Dlenr { 20015 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22407 Dlenr(0) 20016 pub struct Lsbfirst(pub u8);
22408 } 20017 impl Lsbfirst {
20018 #[doc = "Data is transmitted/received with the MSB first"]
20019 pub const MSBFIRST: Self = Self(0);
20020 #[doc = "Data is transmitted/received with the LSB first"]
20021 pub const LSBFIRST: Self = Self(0x01);
22409 } 20022 }
22410 #[doc = "The SDMMC_DTIMER register contains the data timeout period, in card bus clock periods. A counter loads the value from the SDMMC_DTIMER register, and starts decrementing when the data path state machine (DPSM) enters the Wait_R or Busy state. If the timer reaches 0 while the DPSM is in either of these states, the timeout status flag is set."]
22411 #[repr(transparent)] 20023 #[repr(transparent)]
22412 #[derive(Copy, Clone, Eq, PartialEq)] 20024 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22413 pub struct Dtimer(pub u32); 20025 pub struct Rxonly(pub u8);
22414 impl Dtimer { 20026 impl Rxonly {
22415 #[doc = "Data and R1b busy timeout period This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0). Data and R1b busy timeout period expressed in card bus clock periods."] 20027 #[doc = "Full duplex (Transmit and receive)"]
22416 pub const fn datatime(&self) -> u32 { 20028 pub const FULLDUPLEX: Self = Self(0);
22417 let val = (self.0 >> 0usize) & 0xffff_ffff; 20029 #[doc = "Output disabled (Receive-only mode)"]
22418 val as u32 20030 pub const OUTPUTDISABLED: Self = Self(0x01);
22419 }
22420 #[doc = "Data and R1b busy timeout period This bit can only be written when the CPSM and DPSM are not active (CPSMACT = 0 and DPSMACT = 0). Data and R1b busy timeout period expressed in card bus clock periods."]
22421 pub fn set_datatime(&mut self, val: u32) {
22422 self.0 =
22423 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
22424 }
22425 } 20031 }
22426 impl Default for Dtimer { 20032 #[repr(transparent)]
22427 fn default() -> Dtimer { 20033 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22428 Dtimer(0) 20034 pub struct Frf(pub u8);
22429 } 20035 impl Frf {
20036 #[doc = "SPI Motorola mode"]
20037 pub const MOTOROLA: Self = Self(0);
20038 #[doc = "SPI TI mode"]
20039 pub const TI: Self = Self(0x01);
22430 } 20040 }
22431 #[doc = "The SDMMC_ACKTIMER register contains the acknowledgment timeout period, in SDMMC_CK bus clock periods. A counter loads the value from the SDMMC_ACKTIMER register, and starts decrementing when the data path state machine (DPSM) enters the Wait_Ack state. If the timer reaches 0 while the DPSM is in this states, the acknowledgment timeout status flag is set."]
22432 #[repr(transparent)] 20041 #[repr(transparent)]
22433 #[derive(Copy, Clone, Eq, PartialEq)] 20042 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22434 pub struct Acktimer(pub u32); 20043 pub struct Dff(pub u8);
22435 impl Acktimer { 20044 impl Dff {
22436 #[doc = "Boot acknowledgment timeout period This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). Boot acknowledgment timeout period expressed in card bus clock periods."] 20045 #[doc = "8-bit data frame format is selected for transmission/reception"]
22437 pub const fn acktime(&self) -> u32 { 20046 pub const EIGHTBIT: Self = Self(0);
22438 let val = (self.0 >> 0usize) & 0x01ff_ffff; 20047 #[doc = "16-bit data frame format is selected for transmission/reception"]
22439 val as u32 20048 pub const SIXTEENBIT: Self = Self(0x01);
22440 }
22441 #[doc = "Boot acknowledgment timeout period This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). Boot acknowledgment timeout period expressed in card bus clock periods."]
22442 pub fn set_acktime(&mut self, val: u32) {
22443 self.0 =
22444 (self.0 & !(0x01ff_ffff << 0usize)) | (((val as u32) & 0x01ff_ffff) << 0usize);
22445 }
22446 } 20049 }
22447 impl Default for Acktimer { 20050 #[repr(transparent)]
22448 fn default() -> Acktimer { 20051 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22449 Acktimer(0) 20052 pub struct Frer(pub u8);
22450 } 20053 impl Frer {
20054 #[doc = "No frame format error"]
20055 pub const NOERROR: Self = Self(0);
20056 #[doc = "A frame format error occurred"]
20057 pub const ERROR: Self = Self(0x01);
22451 } 20058 }
22452 #[doc = "The SDMMC_RESP1/2/3/4R registers contain the status of a card, which is part of the received response."]
22453 #[repr(transparent)] 20059 #[repr(transparent)]
22454 #[derive(Copy, Clone, Eq, PartialEq)] 20060 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22455 pub struct Resp1r(pub u32); 20061 pub struct Bidioe(pub u8);
22456 impl Resp1r { 20062 impl Bidioe {
22457 #[doc = "see Table 432"] 20063 #[doc = "Output disabled (receive-only mode)"]
22458 pub const fn cardstatus1(&self) -> u32 { 20064 pub const OUTPUTDISABLED: Self = Self(0);
22459 let val = (self.0 >> 0usize) & 0xffff_ffff; 20065 #[doc = "Output enabled (transmit-only mode)"]
22460 val as u32 20066 pub const OUTPUTENABLED: Self = Self(0x01);
22461 }
22462 #[doc = "see Table 432"]
22463 pub fn set_cardstatus1(&mut self, val: u32) {
22464 self.0 =
22465 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
22466 }
22467 } 20067 }
22468 impl Default for Resp1r { 20068 }
22469 fn default() -> Resp1r { 20069}
22470 Resp1r(0) 20070pub mod generic {
20071 use core::marker::PhantomData;
20072 #[derive(Copy, Clone)]
20073 pub struct RW;
20074 #[derive(Copy, Clone)]
20075 pub struct R;
20076 #[derive(Copy, Clone)]
20077 pub struct W;
20078 mod sealed {
20079 use super::*;
20080 pub trait Access {}
20081 impl Access for R {}
20082 impl Access for W {}
20083 impl Access for RW {}
20084 }
20085 pub trait Access: sealed::Access + Copy {}
20086 impl Access for R {}
20087 impl Access for W {}
20088 impl Access for RW {}
20089 pub trait Read: Access {}
20090 impl Read for RW {}
20091 impl Read for R {}
20092 pub trait Write: Access {}
20093 impl Write for RW {}
20094 impl Write for W {}
20095 #[derive(Copy, Clone)]
20096 pub struct Reg<T: Copy, A: Access> {
20097 ptr: *mut u8,
20098 phantom: PhantomData<*mut (T, A)>,
20099 }
20100 unsafe impl<T: Copy, A: Access> Send for Reg<T, A> {}
20101 unsafe impl<T: Copy, A: Access> Sync for Reg<T, A> {}
20102 impl<T: Copy, A: Access> Reg<T, A> {
20103 pub fn from_ptr(ptr: *mut u8) -> Self {
20104 Self {
20105 ptr,
20106 phantom: PhantomData,
22471 } 20107 }
22472 } 20108 }
22473 #[doc = "SDMMC power control register"] 20109 pub fn ptr(&self) -> *mut T {
20110 self.ptr as _
20111 }
20112 }
20113 impl<T: Copy, A: Read> Reg<T, A> {
20114 pub unsafe fn read(&self) -> T {
20115 (self.ptr as *mut T).read_volatile()
20116 }
20117 }
20118 impl<T: Copy, A: Write> Reg<T, A> {
20119 pub unsafe fn write_value(&self, val: T) {
20120 (self.ptr as *mut T).write_volatile(val)
20121 }
20122 }
20123 impl<T: Default + Copy, A: Write> Reg<T, A> {
20124 pub unsafe fn write<R>(&self, f: impl FnOnce(&mut T) -> R) -> R {
20125 let mut val = Default::default();
20126 let res = f(&mut val);
20127 self.write_value(val);
20128 res
20129 }
20130 }
20131 impl<T: Copy, A: Read + Write> Reg<T, A> {
20132 pub unsafe fn modify<R>(&self, f: impl FnOnce(&mut T) -> R) -> R {
20133 let mut val = self.read();
20134 let res = f(&mut val);
20135 self.write_value(val);
20136 res
20137 }
20138 }
20139}
20140pub mod dma_v2 {
20141 use crate::generic::*;
20142 #[doc = "DMA controller"]
20143 #[derive(Copy, Clone)]
20144 pub struct Dma(pub *mut u8);
20145 unsafe impl Send for Dma {}
20146 unsafe impl Sync for Dma {}
20147 impl Dma {
20148 #[doc = "low interrupt status register"]
20149 pub fn isr(self, n: usize) -> Reg<regs::Ixr, R> {
20150 assert!(n < 2usize);
20151 unsafe { Reg::from_ptr(self.0.add(0usize + n * 4usize)) }
20152 }
20153 #[doc = "low interrupt flag clear register"]
20154 pub fn ifcr(self, n: usize) -> Reg<regs::Ixr, W> {
20155 assert!(n < 2usize);
20156 unsafe { Reg::from_ptr(self.0.add(8usize + n * 4usize)) }
20157 }
20158 #[doc = "Stream cluster: S?CR, S?NDTR, S?M0AR, S?M1AR and S?FCR registers"]
20159 pub fn st(self, n: usize) -> St {
20160 assert!(n < 8usize);
20161 unsafe { St(self.0.add(16usize + n * 24usize)) }
20162 }
20163 }
20164 #[doc = "Stream cluster: S?CR, S?NDTR, S?M0AR, S?M1AR and S?FCR registers"]
20165 #[derive(Copy, Clone)]
20166 pub struct St(pub *mut u8);
20167 unsafe impl Send for St {}
20168 unsafe impl Sync for St {}
20169 impl St {
20170 #[doc = "stream x configuration register"]
20171 pub fn cr(self) -> Reg<regs::Cr, RW> {
20172 unsafe { Reg::from_ptr(self.0.add(0usize)) }
20173 }
20174 #[doc = "stream x number of data register"]
20175 pub fn ndtr(self) -> Reg<regs::Ndtr, RW> {
20176 unsafe { Reg::from_ptr(self.0.add(4usize)) }
20177 }
20178 #[doc = "stream x peripheral address register"]
20179 pub fn par(self) -> Reg<u32, RW> {
20180 unsafe { Reg::from_ptr(self.0.add(8usize)) }
20181 }
20182 #[doc = "stream x memory 0 address register"]
20183 pub fn m0ar(self) -> Reg<u32, RW> {
20184 unsafe { Reg::from_ptr(self.0.add(12usize)) }
20185 }
20186 #[doc = "stream x memory 1 address register"]
20187 pub fn m1ar(self) -> Reg<u32, RW> {
20188 unsafe { Reg::from_ptr(self.0.add(16usize)) }
20189 }
20190 #[doc = "stream x FIFO control register"]
20191 pub fn fcr(self) -> Reg<regs::Fcr, RW> {
20192 unsafe { Reg::from_ptr(self.0.add(20usize)) }
20193 }
20194 }
20195 pub mod regs {
20196 use crate::generic::*;
20197 #[doc = "interrupt register"]
22474 #[repr(transparent)] 20198 #[repr(transparent)]
22475 #[derive(Copy, Clone, Eq, PartialEq)] 20199 #[derive(Copy, Clone, Eq, PartialEq)]
22476 pub struct Power(pub u32); 20200 pub struct Ixr(pub u32);
22477 impl Power { 20201 impl Ixr {
22478 #[doc = "SDMMC state control bits. These bits can only be written when the SDMMC is not in the power-on state (PWRCTRL?11). These bits are used to define the functional state of the SDMMC signals: Any further write will be ignored, PWRCTRL value will keep 11."] 20202 #[doc = "Stream x FIFO error interrupt flag (x=3..0)"]
22479 pub const fn pwrctrl(&self) -> u8 { 20203 pub fn feif(&self, n: usize) -> bool {
22480 let val = (self.0 >> 0usize) & 0x03; 20204 assert!(n < 4usize);
22481 val as u8 20205 let offs = 0usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
20206 let val = (self.0 >> offs) & 0x01;
20207 val != 0
22482 } 20208 }
22483 #[doc = "SDMMC state control bits. These bits can only be written when the SDMMC is not in the power-on state (PWRCTRL?11). These bits are used to define the functional state of the SDMMC signals: Any further write will be ignored, PWRCTRL value will keep 11."] 20209 #[doc = "Stream x FIFO error interrupt flag (x=3..0)"]
22484 pub fn set_pwrctrl(&mut self, val: u8) { 20210 pub fn set_feif(&mut self, n: usize, val: bool) {
22485 self.0 = (self.0 & !(0x03 << 0usize)) | (((val as u32) & 0x03) << 0usize); 20211 assert!(n < 4usize);
20212 let offs = 0usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
20213 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
22486 } 20214 }
22487 #[doc = "Voltage switch sequence start. This bit is used to start the timing critical section of the voltage switch sequence:"] 20215 #[doc = "Stream x direct mode error interrupt flag (x=3..0)"]
22488 pub const fn vswitch(&self) -> bool { 20216 pub fn dmeif(&self, n: usize) -> bool {
22489 let val = (self.0 >> 2usize) & 0x01; 20217 assert!(n < 4usize);
20218 let offs = 2usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
20219 let val = (self.0 >> offs) & 0x01;
22490 val != 0 20220 val != 0
22491 } 20221 }
22492 #[doc = "Voltage switch sequence start. This bit is used to start the timing critical section of the voltage switch sequence:"] 20222 #[doc = "Stream x direct mode error interrupt flag (x=3..0)"]
22493 pub fn set_vswitch(&mut self, val: bool) { 20223 pub fn set_dmeif(&mut self, n: usize, val: bool) {
22494 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 20224 assert!(n < 4usize);
20225 let offs = 2usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
20226 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
22495 } 20227 }
22496 #[doc = "Voltage switch procedure enable. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). This bit is used to stop the SDMMC_CK after the voltage switch command response:"] 20228 #[doc = "Stream x transfer error interrupt flag (x=3..0)"]
22497 pub const fn vswitchen(&self) -> bool { 20229 pub fn teif(&self, n: usize) -> bool {
22498 let val = (self.0 >> 3usize) & 0x01; 20230 assert!(n < 4usize);
20231 let offs = 3usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
20232 let val = (self.0 >> offs) & 0x01;
22499 val != 0 20233 val != 0
22500 } 20234 }
22501 #[doc = "Voltage switch procedure enable. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). This bit is used to stop the SDMMC_CK after the voltage switch command response:"] 20235 #[doc = "Stream x transfer error interrupt flag (x=3..0)"]
22502 pub fn set_vswitchen(&mut self, val: bool) { 20236 pub fn set_teif(&mut self, n: usize, val: bool) {
22503 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize); 20237 assert!(n < 4usize);
20238 let offs = 3usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
20239 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
22504 } 20240 }
22505 #[doc = "Data and command direction signals polarity selection. This bit can only be written when the SDMMC is in the power-off state (PWRCTRL = 00)."] 20241 #[doc = "Stream x half transfer interrupt flag (x=3..0)"]
22506 pub const fn dirpol(&self) -> bool { 20242 pub fn htif(&self, n: usize) -> bool {
22507 let val = (self.0 >> 4usize) & 0x01; 20243 assert!(n < 4usize);
20244 let offs = 4usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
20245 let val = (self.0 >> offs) & 0x01;
22508 val != 0 20246 val != 0
22509 } 20247 }
22510 #[doc = "Data and command direction signals polarity selection. This bit can only be written when the SDMMC is in the power-off state (PWRCTRL = 00)."] 20248 #[doc = "Stream x half transfer interrupt flag (x=3..0)"]
22511 pub fn set_dirpol(&mut self, val: bool) { 20249 pub fn set_htif(&mut self, n: usize, val: bool) {
22512 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 20250 assert!(n < 4usize);
20251 let offs = 4usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
20252 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
20253 }
20254 #[doc = "Stream x transfer complete interrupt flag (x = 3..0)"]
20255 pub fn tcif(&self, n: usize) -> bool {
20256 assert!(n < 4usize);
20257 let offs = 5usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
20258 let val = (self.0 >> offs) & 0x01;
20259 val != 0
20260 }
20261 #[doc = "Stream x transfer complete interrupt flag (x = 3..0)"]
20262 pub fn set_tcif(&mut self, n: usize, val: bool) {
20263 assert!(n < 4usize);
20264 let offs = 5usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
20265 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
22513 } 20266 }
22514 } 20267 }
22515 impl Default for Power { 20268 impl Default for Ixr {
22516 fn default() -> Power { 20269 fn default() -> Ixr {
22517 Power(0) 20270 Ixr(0)
22518 } 20271 }
22519 } 20272 }
22520 #[doc = "The SDMMC_IDMABASE0R register contains the memory buffer base address in single buffer configuration and the buffer 0 base address in double buffer configuration."] 20273 #[doc = "stream x number of data register"]
22521 #[repr(transparent)] 20274 #[repr(transparent)]
22522 #[derive(Copy, Clone, Eq, PartialEq)] 20275 #[derive(Copy, Clone, Eq, PartialEq)]
22523 pub struct Idmabase0r(pub u32); 20276 pub struct Ndtr(pub u32);
22524 impl Idmabase0r { 20277 impl Ndtr {
22525 #[doc = "Buffer 0 memory base address bits [31:2], shall be word aligned (bit [1:0] 20278 #[doc = "Number of data items to transfer"]
22526are always 0 and read only). This register can be written by firmware when DPSM is inactive (DPSMACT = 0), and can dynamically be written by firmware when DPSM active (DPSMACT = 1) and memory buffer 0 is inactive (IDMABACT = 1)."] 20279 pub const fn ndt(&self) -> u16 {
22527 pub const fn idmabase0(&self) -> u32 { 20280 let val = (self.0 >> 0usize) & 0xffff;
22528 let val = (self.0 >> 0usize) & 0xffff_ffff; 20281 val as u16
22529 val as u32
22530 } 20282 }
22531 #[doc = "Buffer 0 memory base address bits [31:2], shall be word aligned (bit [1:0] 20283 #[doc = "Number of data items to transfer"]
22532are always 0 and read only). This register can be written by firmware when DPSM is inactive (DPSMACT = 0), and can dynamically be written by firmware when DPSM active (DPSMACT = 1) and memory buffer 0 is inactive (IDMABACT = 1)."] 20284 pub fn set_ndt(&mut self, val: u16) {
22533 pub fn set_idmabase0(&mut self, val: u32) { 20285 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
22534 self.0 =
22535 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
22536 } 20286 }
22537 } 20287 }
22538 impl Default for Idmabase0r { 20288 impl Default for Ndtr {
22539 fn default() -> Idmabase0r { 20289 fn default() -> Ndtr {
22540 Idmabase0r(0) 20290 Ndtr(0)
22541 } 20291 }
22542 } 20292 }
22543 #[doc = "The SDMMC_CMDR register contains the command index and command type bits. The command index is sent to a card as part of a command message. The command type bits control the command path state machine (CPSM)."] 20293 #[doc = "stream x FIFO control register"]
22544 #[repr(transparent)] 20294 #[repr(transparent)]
22545 #[derive(Copy, Clone, Eq, PartialEq)] 20295 #[derive(Copy, Clone, Eq, PartialEq)]
22546 pub struct Cmdr(pub u32); 20296 pub struct Fcr(pub u32);
22547 impl Cmdr { 20297 impl Fcr {
22548 #[doc = "Command index. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). The command index is sent to the card as part of a command message."] 20298 #[doc = "FIFO threshold selection"]
22549 pub const fn cmdindex(&self) -> u8 { 20299 pub const fn fth(&self) -> super::vals::Fth {
22550 let val = (self.0 >> 0usize) & 0x3f; 20300 let val = (self.0 >> 0usize) & 0x03;
22551 val as u8 20301 super::vals::Fth(val as u8)
22552 }
22553 #[doc = "Command index. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). The command index is sent to the card as part of a command message."]
22554 pub fn set_cmdindex(&mut self, val: u8) {
22555 self.0 = (self.0 & !(0x3f << 0usize)) | (((val as u32) & 0x3f) << 0usize);
22556 }
22557 #[doc = "The CPSM treats the command as a data transfer command, stops the interrupt period, and signals DataEnable to the DPSM This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). If this bit is set, the CPSM issues an end of interrupt period and issues DataEnable signal to the DPSM when the command is sent."]
22558 pub const fn cmdtrans(&self) -> bool {
22559 let val = (self.0 >> 6usize) & 0x01;
22560 val != 0
22561 }
22562 #[doc = "The CPSM treats the command as a data transfer command, stops the interrupt period, and signals DataEnable to the DPSM This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). If this bit is set, the CPSM issues an end of interrupt period and issues DataEnable signal to the DPSM when the command is sent."]
22563 pub fn set_cmdtrans(&mut self, val: bool) {
22564 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
22565 }
22566 #[doc = "The CPSM treats the command as a Stop Transmission command and signals Abort to the DPSM. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). If this bit is set, the CPSM issues the Abort signal to the DPSM when the command is sent."]
22567 pub const fn cmdstop(&self) -> bool {
22568 let val = (self.0 >> 7usize) & 0x01;
22569 val != 0
22570 }
22571 #[doc = "The CPSM treats the command as a Stop Transmission command and signals Abort to the DPSM. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). If this bit is set, the CPSM issues the Abort signal to the DPSM when the command is sent."]
22572 pub fn set_cmdstop(&mut self, val: bool) {
22573 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
22574 }
22575 #[doc = "Wait for response bits. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). They are used to configure whether the CPSM is to wait for a response, and if yes, which kind of response."]
22576 pub const fn waitresp(&self) -> u8 {
22577 let val = (self.0 >> 8usize) & 0x03;
22578 val as u8
22579 }
22580 #[doc = "Wait for response bits. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). They are used to configure whether the CPSM is to wait for a response, and if yes, which kind of response."]
22581 pub fn set_waitresp(&mut self, val: u8) {
22582 self.0 = (self.0 & !(0x03 << 8usize)) | (((val as u32) & 0x03) << 8usize);
22583 }
22584 #[doc = "CPSM waits for interrupt request. If this bit is set, the CPSM disables command timeout and waits for an card interrupt request (Response). If this bit is cleared in the CPSM Wait state, will cause the abort of the interrupt mode."]
22585 pub const fn waitint(&self) -> bool {
22586 let val = (self.0 >> 10usize) & 0x01;
22587 val != 0
22588 }
22589 #[doc = "CPSM waits for interrupt request. If this bit is set, the CPSM disables command timeout and waits for an card interrupt request (Response). If this bit is cleared in the CPSM Wait state, will cause the abort of the interrupt mode."]
22590 pub fn set_waitint(&mut self, val: bool) {
22591 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
22592 }
22593 #[doc = "CPSM Waits for end of data transfer (CmdPend internal signal) from DPSM. This bit when set, the CPSM waits for the end of data transfer trigger before it starts sending a command. WAITPEND is only taken into account when DTMODE = MMC stream data transfer, WIDBUS = 1-bit wide bus mode, DPSMACT = 1 and DTDIR = from host to card."]
22594 pub const fn waitpend(&self) -> bool {
22595 let val = (self.0 >> 11usize) & 0x01;
22596 val != 0
22597 }
22598 #[doc = "CPSM Waits for end of data transfer (CmdPend internal signal) from DPSM. This bit when set, the CPSM waits for the end of data transfer trigger before it starts sending a command. WAITPEND is only taken into account when DTMODE = MMC stream data transfer, WIDBUS = 1-bit wide bus mode, DPSMACT = 1 and DTDIR = from host to card."]
22599 pub fn set_waitpend(&mut self, val: bool) {
22600 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
22601 }
22602 #[doc = "Command path state machine (CPSM) Enable bit This bit is written 1 by firmware, and cleared by hardware when the CPSM enters the Idle state. If this bit is set, the CPSM is enabled. When DTEN = 1, no command will be transfered nor boot procedure will be started. CPSMEN is cleared to 0."]
22603 pub const fn cpsmen(&self) -> bool {
22604 let val = (self.0 >> 12usize) & 0x01;
22605 val != 0
22606 }
22607 #[doc = "Command path state machine (CPSM) Enable bit This bit is written 1 by firmware, and cleared by hardware when the CPSM enters the Idle state. If this bit is set, the CPSM is enabled. When DTEN = 1, no command will be transfered nor boot procedure will be started. CPSMEN is cleared to 0."]
22608 pub fn set_cpsmen(&mut self, val: bool) {
22609 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
22610 }
22611 #[doc = "Hold new data block transmission and reception in the DPSM. If this bit is set, the DPSM will not move from the Wait_S state to the Send state or from the Wait_R state to the Receive state."]
22612 pub const fn dthold(&self) -> bool {
22613 let val = (self.0 >> 13usize) & 0x01;
22614 val != 0
22615 } 20302 }
22616 #[doc = "Hold new data block transmission and reception in the DPSM. If this bit is set, the DPSM will not move from the Wait_S state to the Send state or from the Wait_R state to the Receive state."] 20303 #[doc = "FIFO threshold selection"]
22617 pub fn set_dthold(&mut self, val: bool) { 20304 pub fn set_fth(&mut self, val: super::vals::Fth) {
22618 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize); 20305 self.0 = (self.0 & !(0x03 << 0usize)) | (((val.0 as u32) & 0x03) << 0usize);
22619 } 20306 }
22620 #[doc = "Select the boot mode procedure to be used. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0)"] 20307 #[doc = "Direct mode disable"]
22621 pub const fn bootmode(&self) -> bool { 20308 pub const fn dmdis(&self) -> super::vals::Dmdis {
22622 let val = (self.0 >> 14usize) & 0x01; 20309 let val = (self.0 >> 2usize) & 0x01;
22623 val != 0 20310 super::vals::Dmdis(val as u8)
22624 } 20311 }
22625 #[doc = "Select the boot mode procedure to be used. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0)"] 20312 #[doc = "Direct mode disable"]
22626 pub fn set_bootmode(&mut self, val: bool) { 20313 pub fn set_dmdis(&mut self, val: super::vals::Dmdis) {
22627 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize); 20314 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
22628 } 20315 }
22629 #[doc = "Enable boot mode procedure."] 20316 #[doc = "FIFO status"]
22630 pub const fn booten(&self) -> bool { 20317 pub const fn fs(&self) -> super::vals::Fs {
22631 let val = (self.0 >> 15usize) & 0x01; 20318 let val = (self.0 >> 3usize) & 0x07;
22632 val != 0 20319 super::vals::Fs(val as u8)
22633 } 20320 }
22634 #[doc = "Enable boot mode procedure."] 20321 #[doc = "FIFO status"]
22635 pub fn set_booten(&mut self, val: bool) { 20322 pub fn set_fs(&mut self, val: super::vals::Fs) {
22636 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize); 20323 self.0 = (self.0 & !(0x07 << 3usize)) | (((val.0 as u32) & 0x07) << 3usize);
22637 } 20324 }
22638 #[doc = "The CPSM treats the command as a Suspend or Resume command and signals interrupt period start/end. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). CMDSUSPEND = 1 and CMDTRANS = 0 Suspend command, start interrupt period when response bit BS=0. CMDSUSPEND = 1 and CMDTRANS = 1 Resume command with data, end interrupt period when response bit DF=1."] 20325 #[doc = "FIFO error interrupt enable"]
22639 pub const fn cmdsuspend(&self) -> bool { 20326 pub const fn feie(&self) -> bool {
22640 let val = (self.0 >> 16usize) & 0x01; 20327 let val = (self.0 >> 7usize) & 0x01;
22641 val != 0 20328 val != 0
22642 } 20329 }
22643 #[doc = "The CPSM treats the command as a Suspend or Resume command and signals interrupt period start/end. This bit can only be written by firmware when CPSM is disabled (CPSMEN = 0). CMDSUSPEND = 1 and CMDTRANS = 0 Suspend command, start interrupt period when response bit BS=0. CMDSUSPEND = 1 and CMDTRANS = 1 Resume command with data, end interrupt period when response bit DF=1."] 20330 #[doc = "FIFO error interrupt enable"]
22644 pub fn set_cmdsuspend(&mut self, val: bool) { 20331 pub fn set_feie(&mut self, val: bool) {
22645 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 20332 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
22646 }
22647 }
22648 impl Default for Cmdr {
22649 fn default() -> Cmdr {
22650 Cmdr(0)
22651 }
22652 }
22653 #[doc = "The SDMMC_RESP1/2/3/4R registers contain the status of a card, which is part of the received response."]
22654 #[repr(transparent)]
22655 #[derive(Copy, Clone, Eq, PartialEq)]
22656 pub struct Resp3r(pub u32);
22657 impl Resp3r {
22658 #[doc = "see Table404."]
22659 pub const fn cardstatus3(&self) -> u32 {
22660 let val = (self.0 >> 0usize) & 0xffff_ffff;
22661 val as u32
22662 }
22663 #[doc = "see Table404."]
22664 pub fn set_cardstatus3(&mut self, val: u32) {
22665 self.0 =
22666 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
22667 } 20333 }
22668 } 20334 }
22669 impl Default for Resp3r { 20335 impl Default for Fcr {
22670 fn default() -> Resp3r { 20336 fn default() -> Fcr {
22671 Resp3r(0) 20337 Fcr(0)
22672 } 20338 }
22673 } 20339 }
22674 #[doc = "The SDMMC_ICR register is a write-only register. Writing a bit with 1 clears the corresponding bit in the SDMMC_STAR status register."] 20340 #[doc = "stream x configuration register"]
22675 #[repr(transparent)] 20341 #[repr(transparent)]
22676 #[derive(Copy, Clone, Eq, PartialEq)] 20342 #[derive(Copy, Clone, Eq, PartialEq)]
22677 pub struct Icr(pub u32); 20343 pub struct Cr(pub u32);
22678 impl Icr { 20344 impl Cr {
22679 #[doc = "CCRCFAIL flag clear bit Set by software to clear the CCRCFAIL flag."] 20345 #[doc = "Stream enable / flag stream ready when read low"]
22680 pub const fn ccrcfailc(&self) -> bool { 20346 pub const fn en(&self) -> bool {
22681 let val = (self.0 >> 0usize) & 0x01; 20347 let val = (self.0 >> 0usize) & 0x01;
22682 val != 0 20348 val != 0
22683 } 20349 }
22684 #[doc = "CCRCFAIL flag clear bit Set by software to clear the CCRCFAIL flag."] 20350 #[doc = "Stream enable / flag stream ready when read low"]
22685 pub fn set_ccrcfailc(&mut self, val: bool) { 20351 pub fn set_en(&mut self, val: bool) {
22686 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 20352 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
22687 } 20353 }
22688 #[doc = "DCRCFAIL flag clear bit Set by software to clear the DCRCFAIL flag."] 20354 #[doc = "Direct mode error interrupt enable"]
22689 pub const fn dcrcfailc(&self) -> bool { 20355 pub const fn dmeie(&self) -> bool {
22690 let val = (self.0 >> 1usize) & 0x01; 20356 let val = (self.0 >> 1usize) & 0x01;
22691 val != 0 20357 val != 0
22692 } 20358 }
22693 #[doc = "DCRCFAIL flag clear bit Set by software to clear the DCRCFAIL flag."] 20359 #[doc = "Direct mode error interrupt enable"]
22694 pub fn set_dcrcfailc(&mut self, val: bool) { 20360 pub fn set_dmeie(&mut self, val: bool) {
22695 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 20361 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
22696 } 20362 }
22697 #[doc = "CTIMEOUT flag clear bit Set by software to clear the CTIMEOUT flag."] 20363 #[doc = "Transfer error interrupt enable"]
22698 pub const fn ctimeoutc(&self) -> bool { 20364 pub const fn teie(&self) -> bool {
22699 let val = (self.0 >> 2usize) & 0x01; 20365 let val = (self.0 >> 2usize) & 0x01;
22700 val != 0 20366 val != 0
22701 } 20367 }
22702 #[doc = "CTIMEOUT flag clear bit Set by software to clear the CTIMEOUT flag."] 20368 #[doc = "Transfer error interrupt enable"]
22703 pub fn set_ctimeoutc(&mut self, val: bool) { 20369 pub fn set_teie(&mut self, val: bool) {
22704 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 20370 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
22705 } 20371 }
22706 #[doc = "DTIMEOUT flag clear bit Set by software to clear the DTIMEOUT flag."] 20372 #[doc = "Half transfer interrupt enable"]
22707 pub const fn dtimeoutc(&self) -> bool { 20373 pub const fn htie(&self) -> bool {
22708 let val = (self.0 >> 3usize) & 0x01; 20374 let val = (self.0 >> 3usize) & 0x01;
22709 val != 0 20375 val != 0
22710 } 20376 }
22711 #[doc = "DTIMEOUT flag clear bit Set by software to clear the DTIMEOUT flag."] 20377 #[doc = "Half transfer interrupt enable"]
22712 pub fn set_dtimeoutc(&mut self, val: bool) { 20378 pub fn set_htie(&mut self, val: bool) {
22713 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize); 20379 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
22714 } 20380 }
22715 #[doc = "TXUNDERR flag clear bit Set by software to clear TXUNDERR flag."] 20381 #[doc = "Transfer complete interrupt enable"]
22716 pub const fn txunderrc(&self) -> bool { 20382 pub const fn tcie(&self) -> bool {
22717 let val = (self.0 >> 4usize) & 0x01; 20383 let val = (self.0 >> 4usize) & 0x01;
22718 val != 0 20384 val != 0
22719 } 20385 }
22720 #[doc = "TXUNDERR flag clear bit Set by software to clear TXUNDERR flag."] 20386 #[doc = "Transfer complete interrupt enable"]
22721 pub fn set_txunderrc(&mut self, val: bool) { 20387 pub fn set_tcie(&mut self, val: bool) {
22722 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 20388 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
22723 } 20389 }
22724 #[doc = "RXOVERR flag clear bit Set by software to clear the RXOVERR flag."] 20390 #[doc = "Peripheral flow controller"]
22725 pub const fn rxoverrc(&self) -> bool { 20391 pub const fn pfctrl(&self) -> super::vals::Pfctrl {
22726 let val = (self.0 >> 5usize) & 0x01; 20392 let val = (self.0 >> 5usize) & 0x01;
22727 val != 0 20393 super::vals::Pfctrl(val as u8)
22728 }
22729 #[doc = "RXOVERR flag clear bit Set by software to clear the RXOVERR flag."]
22730 pub fn set_rxoverrc(&mut self, val: bool) {
22731 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
22732 }
22733 #[doc = "CMDREND flag clear bit Set by software to clear the CMDREND flag."]
22734 pub const fn cmdrendc(&self) -> bool {
22735 let val = (self.0 >> 6usize) & 0x01;
22736 val != 0
22737 } 20394 }
22738 #[doc = "CMDREND flag clear bit Set by software to clear the CMDREND flag."] 20395 #[doc = "Peripheral flow controller"]
22739 pub fn set_cmdrendc(&mut self, val: bool) { 20396 pub fn set_pfctrl(&mut self, val: super::vals::Pfctrl) {
22740 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 20397 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
22741 } 20398 }
22742 #[doc = "CMDSENT flag clear bit Set by software to clear the CMDSENT flag."] 20399 #[doc = "Data transfer direction"]
22743 pub const fn cmdsentc(&self) -> bool { 20400 pub const fn dir(&self) -> super::vals::Dir {
22744 let val = (self.0 >> 7usize) & 0x01; 20401 let val = (self.0 >> 6usize) & 0x03;
22745 val != 0 20402 super::vals::Dir(val as u8)
22746 } 20403 }
22747 #[doc = "CMDSENT flag clear bit Set by software to clear the CMDSENT flag."] 20404 #[doc = "Data transfer direction"]
22748 pub fn set_cmdsentc(&mut self, val: bool) { 20405 pub fn set_dir(&mut self, val: super::vals::Dir) {
22749 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 20406 self.0 = (self.0 & !(0x03 << 6usize)) | (((val.0 as u32) & 0x03) << 6usize);
22750 } 20407 }
22751 #[doc = "DATAEND flag clear bit Set by software to clear the DATAEND flag."] 20408 #[doc = "Circular mode"]
22752 pub const fn dataendc(&self) -> bool { 20409 pub const fn circ(&self) -> super::vals::Circ {
22753 let val = (self.0 >> 8usize) & 0x01; 20410 let val = (self.0 >> 8usize) & 0x01;
22754 val != 0 20411 super::vals::Circ(val as u8)
22755 } 20412 }
22756 #[doc = "DATAEND flag clear bit Set by software to clear the DATAEND flag."] 20413 #[doc = "Circular mode"]
22757 pub fn set_dataendc(&mut self, val: bool) { 20414 pub fn set_circ(&mut self, val: super::vals::Circ) {
22758 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 20415 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
22759 } 20416 }
22760 #[doc = "DHOLD flag clear bit Set by software to clear the DHOLD flag."] 20417 #[doc = "Peripheral increment mode"]
22761 pub const fn dholdc(&self) -> bool { 20418 pub const fn pinc(&self) -> super::vals::Inc {
22762 let val = (self.0 >> 9usize) & 0x01; 20419 let val = (self.0 >> 9usize) & 0x01;
22763 val != 0 20420 super::vals::Inc(val as u8)
22764 } 20421 }
22765 #[doc = "DHOLD flag clear bit Set by software to clear the DHOLD flag."] 20422 #[doc = "Peripheral increment mode"]
22766 pub fn set_dholdc(&mut self, val: bool) { 20423 pub fn set_pinc(&mut self, val: super::vals::Inc) {
22767 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 20424 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
22768 } 20425 }
22769 #[doc = "DBCKEND flag clear bit Set by software to clear the DBCKEND flag."] 20426 #[doc = "Memory increment mode"]
22770 pub const fn dbckendc(&self) -> bool { 20427 pub const fn minc(&self) -> super::vals::Inc {
22771 let val = (self.0 >> 10usize) & 0x01; 20428 let val = (self.0 >> 10usize) & 0x01;
22772 val != 0 20429 super::vals::Inc(val as u8)
22773 } 20430 }
22774 #[doc = "DBCKEND flag clear bit Set by software to clear the DBCKEND flag."] 20431 #[doc = "Memory increment mode"]
22775 pub fn set_dbckendc(&mut self, val: bool) { 20432 pub fn set_minc(&mut self, val: super::vals::Inc) {
22776 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize); 20433 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
22777 } 20434 }
22778 #[doc = "DABORT flag clear bit Set by software to clear the DABORT flag."] 20435 #[doc = "Peripheral data size"]
22779 pub const fn dabortc(&self) -> bool { 20436 pub const fn psize(&self) -> super::vals::Size {
22780 let val = (self.0 >> 11usize) & 0x01; 20437 let val = (self.0 >> 11usize) & 0x03;
22781 val != 0 20438 super::vals::Size(val as u8)
22782 } 20439 }
22783 #[doc = "DABORT flag clear bit Set by software to clear the DABORT flag."] 20440 #[doc = "Peripheral data size"]
22784 pub fn set_dabortc(&mut self, val: bool) { 20441 pub fn set_psize(&mut self, val: super::vals::Size) {
22785 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize); 20442 self.0 = (self.0 & !(0x03 << 11usize)) | (((val.0 as u32) & 0x03) << 11usize);
22786 } 20443 }
22787 #[doc = "BUSYD0END flag clear bit Set by software to clear the BUSYD0END flag."] 20444 #[doc = "Memory data size"]
22788 pub const fn busyd0endc(&self) -> bool { 20445 pub const fn msize(&self) -> super::vals::Size {
22789 let val = (self.0 >> 21usize) & 0x01; 20446 let val = (self.0 >> 13usize) & 0x03;
22790 val != 0 20447 super::vals::Size(val as u8)
22791 } 20448 }
22792 #[doc = "BUSYD0END flag clear bit Set by software to clear the BUSYD0END flag."] 20449 #[doc = "Memory data size"]
22793 pub fn set_busyd0endc(&mut self, val: bool) { 20450 pub fn set_msize(&mut self, val: super::vals::Size) {
22794 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize); 20451 self.0 = (self.0 & !(0x03 << 13usize)) | (((val.0 as u32) & 0x03) << 13usize);
22795 } 20452 }
22796 #[doc = "SDIOIT flag clear bit Set by software to clear the SDIOIT flag."] 20453 #[doc = "Peripheral increment offset size"]
22797 pub const fn sdioitc(&self) -> bool { 20454 pub const fn pincos(&self) -> super::vals::Pincos {
22798 let val = (self.0 >> 22usize) & 0x01; 20455 let val = (self.0 >> 15usize) & 0x01;
22799 val != 0 20456 super::vals::Pincos(val as u8)
22800 } 20457 }
22801 #[doc = "SDIOIT flag clear bit Set by software to clear the SDIOIT flag."] 20458 #[doc = "Peripheral increment offset size"]
22802 pub fn set_sdioitc(&mut self, val: bool) { 20459 pub fn set_pincos(&mut self, val: super::vals::Pincos) {
22803 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize); 20460 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
22804 } 20461 }
22805 #[doc = "ACKFAIL flag clear bit Set by software to clear the ACKFAIL flag."] 20462 #[doc = "Priority level"]
22806 pub const fn ackfailc(&self) -> bool { 20463 pub const fn pl(&self) -> super::vals::Pl {
22807 let val = (self.0 >> 23usize) & 0x01; 20464 let val = (self.0 >> 16usize) & 0x03;
22808 val != 0 20465 super::vals::Pl(val as u8)
22809 } 20466 }
22810 #[doc = "ACKFAIL flag clear bit Set by software to clear the ACKFAIL flag."] 20467 #[doc = "Priority level"]
22811 pub fn set_ackfailc(&mut self, val: bool) { 20468 pub fn set_pl(&mut self, val: super::vals::Pl) {
22812 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize); 20469 self.0 = (self.0 & !(0x03 << 16usize)) | (((val.0 as u32) & 0x03) << 16usize);
22813 } 20470 }
22814 #[doc = "ACKTIMEOUT flag clear bit Set by software to clear the ACKTIMEOUT flag."] 20471 #[doc = "Double buffer mode"]
22815 pub const fn acktimeoutc(&self) -> bool { 20472 pub const fn dbm(&self) -> super::vals::Dbm {
22816 let val = (self.0 >> 24usize) & 0x01; 20473 let val = (self.0 >> 18usize) & 0x01;
22817 val != 0 20474 super::vals::Dbm(val as u8)
22818 } 20475 }
22819 #[doc = "ACKTIMEOUT flag clear bit Set by software to clear the ACKTIMEOUT flag."] 20476 #[doc = "Double buffer mode"]
22820 pub fn set_acktimeoutc(&mut self, val: bool) { 20477 pub fn set_dbm(&mut self, val: super::vals::Dbm) {
22821 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize); 20478 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
22822 } 20479 }
22823 #[doc = "VSWEND flag clear bit Set by software to clear the VSWEND flag."] 20480 #[doc = "Current target (only in double buffer mode)"]
22824 pub const fn vswendc(&self) -> bool { 20481 pub const fn ct(&self) -> super::vals::Ct {
22825 let val = (self.0 >> 25usize) & 0x01; 20482 let val = (self.0 >> 19usize) & 0x01;
22826 val != 0 20483 super::vals::Ct(val as u8)
22827 } 20484 }
22828 #[doc = "VSWEND flag clear bit Set by software to clear the VSWEND flag."] 20485 #[doc = "Current target (only in double buffer mode)"]
22829 pub fn set_vswendc(&mut self, val: bool) { 20486 pub fn set_ct(&mut self, val: super::vals::Ct) {
22830 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize); 20487 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
22831 } 20488 }
22832 #[doc = "CKSTOP flag clear bit Set by software to clear the CKSTOP flag."] 20489 #[doc = "Peripheral burst transfer configuration"]
22833 pub const fn ckstopc(&self) -> bool { 20490 pub const fn pburst(&self) -> super::vals::Burst {
22834 let val = (self.0 >> 26usize) & 0x01; 20491 let val = (self.0 >> 21usize) & 0x03;
22835 val != 0 20492 super::vals::Burst(val as u8)
22836 } 20493 }
22837 #[doc = "CKSTOP flag clear bit Set by software to clear the CKSTOP flag."] 20494 #[doc = "Peripheral burst transfer configuration"]
22838 pub fn set_ckstopc(&mut self, val: bool) { 20495 pub fn set_pburst(&mut self, val: super::vals::Burst) {
22839 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize); 20496 self.0 = (self.0 & !(0x03 << 21usize)) | (((val.0 as u32) & 0x03) << 21usize);
22840 } 20497 }
22841 #[doc = "IDMA transfer error clear bit Set by software to clear the IDMATE flag."] 20498 #[doc = "Memory burst transfer configuration"]
22842 pub const fn idmatec(&self) -> bool { 20499 pub const fn mburst(&self) -> super::vals::Burst {
22843 let val = (self.0 >> 27usize) & 0x01; 20500 let val = (self.0 >> 23usize) & 0x03;
22844 val != 0 20501 super::vals::Burst(val as u8)
22845 } 20502 }
22846 #[doc = "IDMA transfer error clear bit Set by software to clear the IDMATE flag."] 20503 #[doc = "Memory burst transfer configuration"]
22847 pub fn set_idmatec(&mut self, val: bool) { 20504 pub fn set_mburst(&mut self, val: super::vals::Burst) {
22848 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize); 20505 self.0 = (self.0 & !(0x03 << 23usize)) | (((val.0 as u32) & 0x03) << 23usize);
22849 } 20506 }
22850 #[doc = "IDMA buffer transfer complete clear bit Set by software to clear the IDMABTC flag."] 20507 #[doc = "Channel selection"]
22851 pub const fn idmabtcc(&self) -> bool { 20508 pub const fn chsel(&self) -> u8 {
22852 let val = (self.0 >> 28usize) & 0x01; 20509 let val = (self.0 >> 25usize) & 0x0f;
22853 val != 0 20510 val as u8
22854 } 20511 }
22855 #[doc = "IDMA buffer transfer complete clear bit Set by software to clear the IDMABTC flag."] 20512 #[doc = "Channel selection"]
22856 pub fn set_idmabtcc(&mut self, val: bool) { 20513 pub fn set_chsel(&mut self, val: u8) {
22857 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize); 20514 self.0 = (self.0 & !(0x0f << 25usize)) | (((val as u32) & 0x0f) << 25usize);
22858 } 20515 }
22859 } 20516 }
22860 impl Default for Icr { 20517 impl Default for Cr {
22861 fn default() -> Icr { 20518 fn default() -> Cr {
22862 Icr(0) 20519 Cr(0)
22863 } 20520 }
22864 } 20521 }
22865 #[doc = "The SDMMC_DCTRL register control the data path state machine (DPSM)."] 20522 }
20523 pub mod vals {
20524 use crate::generic::*;
20525 #[repr(transparent)]
20526 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20527 pub struct Dbm(pub u8);
20528 impl Dbm {
20529 #[doc = "No buffer switching at the end of transfer"]
20530 pub const DISABLED: Self = Self(0);
20531 #[doc = "Memory target switched at the end of the DMA transfer"]
20532 pub const ENABLED: Self = Self(0x01);
20533 }
20534 #[repr(transparent)]
20535 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20536 pub struct Fth(pub u8);
20537 impl Fth {
20538 #[doc = "1/4 full FIFO"]
20539 pub const QUARTER: Self = Self(0);
20540 #[doc = "1/2 full FIFO"]
20541 pub const HALF: Self = Self(0x01);
20542 #[doc = "3/4 full FIFO"]
20543 pub const THREEQUARTERS: Self = Self(0x02);
20544 #[doc = "Full FIFO"]
20545 pub const FULL: Self = Self(0x03);
20546 }
20547 #[repr(transparent)]
20548 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20549 pub struct Inc(pub u8);
20550 impl Inc {
20551 #[doc = "Address pointer is fixed"]
20552 pub const FIXED: Self = Self(0);
20553 #[doc = "Address pointer is incremented after each data transfer"]
20554 pub const INCREMENTED: Self = Self(0x01);
20555 }
20556 #[repr(transparent)]
20557 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20558 pub struct Circ(pub u8);
20559 impl Circ {
20560 #[doc = "Circular mode disabled"]
20561 pub const DISABLED: Self = Self(0);
20562 #[doc = "Circular mode enabled"]
20563 pub const ENABLED: Self = Self(0x01);
20564 }
20565 #[repr(transparent)]
20566 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20567 pub struct Pfctrl(pub u8);
20568 impl Pfctrl {
20569 #[doc = "The DMA is the flow controller"]
20570 pub const DMA: Self = Self(0);
20571 #[doc = "The peripheral is the flow controller"]
20572 pub const PERIPHERAL: Self = Self(0x01);
20573 }
20574 #[repr(transparent)]
20575 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20576 pub struct Pincos(pub u8);
20577 impl Pincos {
20578 #[doc = "The offset size for the peripheral address calculation is linked to the PSIZE"]
20579 pub const PSIZE: Self = Self(0);
20580 #[doc = "The offset size for the peripheral address calculation is fixed to 4 (32-bit alignment)"]
20581 pub const FIXED4: Self = Self(0x01);
20582 }
20583 #[repr(transparent)]
20584 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20585 pub struct Dir(pub u8);
20586 impl Dir {
20587 #[doc = "Peripheral-to-memory"]
20588 pub const PERIPHERALTOMEMORY: Self = Self(0);
20589 #[doc = "Memory-to-peripheral"]
20590 pub const MEMORYTOPERIPHERAL: Self = Self(0x01);
20591 #[doc = "Memory-to-memory"]
20592 pub const MEMORYTOMEMORY: Self = Self(0x02);
20593 }
20594 #[repr(transparent)]
20595 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20596 pub struct Size(pub u8);
20597 impl Size {
20598 #[doc = "Byte (8-bit)"]
20599 pub const BITS8: Self = Self(0);
20600 #[doc = "Half-word (16-bit)"]
20601 pub const BITS16: Self = Self(0x01);
20602 #[doc = "Word (32-bit)"]
20603 pub const BITS32: Self = Self(0x02);
20604 }
20605 #[repr(transparent)]
20606 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20607 pub struct Ct(pub u8);
20608 impl Ct {
20609 #[doc = "The current target memory is Memory 0"]
20610 pub const MEMORY0: Self = Self(0);
20611 #[doc = "The current target memory is Memory 1"]
20612 pub const MEMORY1: Self = Self(0x01);
20613 }
20614 #[repr(transparent)]
20615 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20616 pub struct Burst(pub u8);
20617 impl Burst {
20618 #[doc = "Single transfer"]
20619 pub const SINGLE: Self = Self(0);
20620 #[doc = "Incremental burst of 4 beats"]
20621 pub const INCR4: Self = Self(0x01);
20622 #[doc = "Incremental burst of 8 beats"]
20623 pub const INCR8: Self = Self(0x02);
20624 #[doc = "Incremental burst of 16 beats"]
20625 pub const INCR16: Self = Self(0x03);
20626 }
20627 #[repr(transparent)]
20628 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20629 pub struct Fs(pub u8);
20630 impl Fs {
20631 #[doc = "0 < fifo_level < 1/4"]
20632 pub const QUARTER1: Self = Self(0);
20633 #[doc = "1/4 <= fifo_level < 1/2"]
20634 pub const QUARTER2: Self = Self(0x01);
20635 #[doc = "1/2 <= fifo_level < 3/4"]
20636 pub const QUARTER3: Self = Self(0x02);
20637 #[doc = "3/4 <= fifo_level < full"]
20638 pub const QUARTER4: Self = Self(0x03);
20639 #[doc = "FIFO is empty"]
20640 pub const EMPTY: Self = Self(0x04);
20641 #[doc = "FIFO is full"]
20642 pub const FULL: Self = Self(0x05);
20643 }
20644 #[repr(transparent)]
20645 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20646 pub struct Dmdis(pub u8);
20647 impl Dmdis {
20648 #[doc = "Direct mode is enabled"]
20649 pub const ENABLED: Self = Self(0);
20650 #[doc = "Direct mode is disabled"]
20651 pub const DISABLED: Self = Self(0x01);
20652 }
20653 #[repr(transparent)]
20654 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
20655 pub struct Pl(pub u8);
20656 impl Pl {
20657 #[doc = "Low"]
20658 pub const LOW: Self = Self(0);
20659 #[doc = "Medium"]
20660 pub const MEDIUM: Self = Self(0x01);
20661 #[doc = "High"]
20662 pub const HIGH: Self = Self(0x02);
20663 #[doc = "Very high"]
20664 pub const VERYHIGH: Self = Self(0x03);
20665 }
20666 }
20667}
20668pub mod dma_v1 {
20669 use crate::generic::*;
20670 #[doc = "DMA controller"]
20671 #[derive(Copy, Clone)]
20672 pub struct Dma(pub *mut u8);
20673 unsafe impl Send for Dma {}
20674 unsafe impl Sync for Dma {}
20675 impl Dma {
20676 #[doc = "DMA interrupt status register (DMA_ISR)"]
20677 pub fn isr(self) -> Reg<regs::Isr, R> {
20678 unsafe { Reg::from_ptr(self.0.add(0usize)) }
20679 }
20680 #[doc = "DMA interrupt flag clear register (DMA_IFCR)"]
20681 pub fn ifcr(self) -> Reg<regs::Ifcr, W> {
20682 unsafe { Reg::from_ptr(self.0.add(4usize)) }
20683 }
20684 #[doc = "Channel cluster: CCR?, CNDTR?, CPAR?, and CMAR? registers"]
20685 pub fn ch(self, n: usize) -> Ch {
20686 assert!(n < 7usize);
20687 unsafe { Ch(self.0.add(8usize + n * 20usize)) }
20688 }
20689 }
20690 #[doc = "Channel cluster: CCR?, CNDTR?, CPAR?, and CMAR? registers"]
20691 #[derive(Copy, Clone)]
20692 pub struct Ch(pub *mut u8);
20693 unsafe impl Send for Ch {}
20694 unsafe impl Sync for Ch {}
20695 impl Ch {
20696 #[doc = "DMA channel configuration register (DMA_CCR)"]
20697 pub fn cr(self) -> Reg<regs::Cr, RW> {
20698 unsafe { Reg::from_ptr(self.0.add(0usize)) }
20699 }
20700 #[doc = "DMA channel 1 number of data register"]
20701 pub fn ndtr(self) -> Reg<regs::Ndtr, RW> {
20702 unsafe { Reg::from_ptr(self.0.add(4usize)) }
20703 }
20704 #[doc = "DMA channel 1 peripheral address register"]
20705 pub fn par(self) -> Reg<u32, RW> {
20706 unsafe { Reg::from_ptr(self.0.add(8usize)) }
20707 }
20708 #[doc = "DMA channel 1 memory address register"]
20709 pub fn mar(self) -> Reg<u32, RW> {
20710 unsafe { Reg::from_ptr(self.0.add(12usize)) }
20711 }
20712 }
20713 pub mod regs {
20714 use crate::generic::*;
20715 #[doc = "DMA channel 1 number of data register"]
22866 #[repr(transparent)] 20716 #[repr(transparent)]
22867 #[derive(Copy, Clone, Eq, PartialEq)] 20717 #[derive(Copy, Clone, Eq, PartialEq)]
22868 pub struct Dctrl(pub u32); 20718 pub struct Ndtr(pub u32);
22869 impl Dctrl { 20719 impl Ndtr {
22870 #[doc = "Data transfer enable bit This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0). This bit is cleared by Hardware when data transfer completes. This bit shall only be used to transfer data when no associated data transfer command is used, i.e. shall not be used with SD or eMMC cards."] 20720 #[doc = "Number of data to transfer"]
22871 pub const fn dten(&self) -> bool { 20721 pub const fn ndt(&self) -> u16 {
22872 let val = (self.0 >> 0usize) & 0x01; 20722 let val = (self.0 >> 0usize) & 0xffff;
22873 val != 0 20723 val as u16
22874 }
22875 #[doc = "Data transfer enable bit This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0). This bit is cleared by Hardware when data transfer completes. This bit shall only be used to transfer data when no associated data transfer command is used, i.e. shall not be used with SD or eMMC cards."]
22876 pub fn set_dten(&mut self, val: bool) {
22877 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
22878 }
22879 #[doc = "Data transfer direction selection This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
22880 pub const fn dtdir(&self) -> bool {
22881 let val = (self.0 >> 1usize) & 0x01;
22882 val != 0
22883 }
22884 #[doc = "Data transfer direction selection This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
22885 pub fn set_dtdir(&mut self, val: bool) {
22886 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
22887 }
22888 #[doc = "Data transfer mode selection. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
22889 pub const fn dtmode(&self) -> u8 {
22890 let val = (self.0 >> 2usize) & 0x03;
22891 val as u8
22892 }
22893 #[doc = "Data transfer mode selection. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
22894 pub fn set_dtmode(&mut self, val: u8) {
22895 self.0 = (self.0 & !(0x03 << 2usize)) | (((val as u32) & 0x03) << 2usize);
22896 }
22897 #[doc = "Data block size This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0). Define the data block length when the block data transfer mode is selected: When DATALENGTH is not a multiple of DBLOCKSIZE, the transfered data is truncated at a multiple of DBLOCKSIZE. (Any remain data will not be transfered.) When DDR = 1, DBLOCKSIZE = 0000 shall not be used. (No data will be transfered)"]
22898 pub const fn dblocksize(&self) -> u8 {
22899 let val = (self.0 >> 4usize) & 0x0f;
22900 val as u8
22901 }
22902 #[doc = "Data block size This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0). Define the data block length when the block data transfer mode is selected: When DATALENGTH is not a multiple of DBLOCKSIZE, the transfered data is truncated at a multiple of DBLOCKSIZE. (Any remain data will not be transfered.) When DDR = 1, DBLOCKSIZE = 0000 shall not be used. (No data will be transfered)"]
22903 pub fn set_dblocksize(&mut self, val: u8) {
22904 self.0 = (self.0 & !(0x0f << 4usize)) | (((val as u32) & 0x0f) << 4usize);
22905 }
22906 #[doc = "Read wait start. If this bit is set, read wait operation starts."]
22907 pub const fn rwstart(&self) -> bool {
22908 let val = (self.0 >> 8usize) & 0x01;
22909 val != 0
22910 }
22911 #[doc = "Read wait start. If this bit is set, read wait operation starts."]
22912 pub fn set_rwstart(&mut self, val: bool) {
22913 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
22914 }
22915 #[doc = "Read wait stop This bit is written by firmware and auto cleared by hardware when the DPSM moves from the READ_WAIT state to the WAIT_R or IDLE state."]
22916 pub const fn rwstop(&self) -> bool {
22917 let val = (self.0 >> 9usize) & 0x01;
22918 val != 0
22919 }
22920 #[doc = "Read wait stop This bit is written by firmware and auto cleared by hardware when the DPSM moves from the READ_WAIT state to the WAIT_R or IDLE state."]
22921 pub fn set_rwstop(&mut self, val: bool) {
22922 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
22923 }
22924 #[doc = "Read wait mode. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
22925 pub const fn rwmod(&self) -> bool {
22926 let val = (self.0 >> 10usize) & 0x01;
22927 val != 0
22928 }
22929 #[doc = "Read wait mode. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
22930 pub fn set_rwmod(&mut self, val: bool) {
22931 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
22932 }
22933 #[doc = "SD I/O interrupt enable functions This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0). If this bit is set, the DPSM enables the SD I/O card specific interrupt operation."]
22934 pub const fn sdioen(&self) -> bool {
22935 let val = (self.0 >> 11usize) & 0x01;
22936 val != 0
22937 }
22938 #[doc = "SD I/O interrupt enable functions This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0). If this bit is set, the DPSM enables the SD I/O card specific interrupt operation."]
22939 pub fn set_sdioen(&mut self, val: bool) {
22940 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
22941 }
22942 #[doc = "Enable the reception of the boot acknowledgment. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
22943 pub const fn bootacken(&self) -> bool {
22944 let val = (self.0 >> 12usize) & 0x01;
22945 val != 0
22946 }
22947 #[doc = "Enable the reception of the boot acknowledgment. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
22948 pub fn set_bootacken(&mut self, val: bool) {
22949 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
22950 }
22951 #[doc = "FIFO reset, will flush any remaining data. This bit can only be written by firmware when IDMAEN= 0 and DPSM is active (DPSMACT = 1). This bit will only take effect when a transfer error or transfer hold occurs."]
22952 pub const fn fiforst(&self) -> bool {
22953 let val = (self.0 >> 13usize) & 0x01;
22954 val != 0
22955 } 20724 }
22956 #[doc = "FIFO reset, will flush any remaining data. This bit can only be written by firmware when IDMAEN= 0 and DPSM is active (DPSMACT = 1). This bit will only take effect when a transfer error or transfer hold occurs."] 20725 #[doc = "Number of data to transfer"]
22957 pub fn set_fiforst(&mut self, val: bool) { 20726 pub fn set_ndt(&mut self, val: u16) {
22958 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize); 20727 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
22959 } 20728 }
22960 } 20729 }
22961 impl Default for Dctrl { 20730 impl Default for Ndtr {
22962 fn default() -> Dctrl { 20731 fn default() -> Ndtr {
22963 Dctrl(0) 20732 Ndtr(0)
22964 } 20733 }
22965 } 20734 }
22966 #[doc = "The interrupt mask register determines which status flags generate an interrupt request by setting the corresponding bit to 1."] 20735 #[doc = "DMA channel configuration register (DMA_CCR)"]
22967 #[repr(transparent)] 20736 #[repr(transparent)]
22968 #[derive(Copy, Clone, Eq, PartialEq)] 20737 #[derive(Copy, Clone, Eq, PartialEq)]
22969 pub struct Maskr(pub u32); 20738 pub struct Cr(pub u32);
22970 impl Maskr { 20739 impl Cr {
22971 #[doc = "Command CRC fail interrupt enable Set and cleared by software to enable/disable interrupt caused by command CRC failure."] 20740 #[doc = "Channel enable"]
22972 pub const fn ccrcfailie(&self) -> bool { 20741 pub const fn en(&self) -> bool {
22973 let val = (self.0 >> 0usize) & 0x01; 20742 let val = (self.0 >> 0usize) & 0x01;
22974 val != 0 20743 val != 0
22975 } 20744 }
22976 #[doc = "Command CRC fail interrupt enable Set and cleared by software to enable/disable interrupt caused by command CRC failure."] 20745 #[doc = "Channel enable"]
22977 pub fn set_ccrcfailie(&mut self, val: bool) { 20746 pub fn set_en(&mut self, val: bool) {
22978 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 20747 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
22979 } 20748 }
22980 #[doc = "Data CRC fail interrupt enable Set and cleared by software to enable/disable interrupt caused by data CRC failure."] 20749 #[doc = "Transfer complete interrupt enable"]
22981 pub const fn dcrcfailie(&self) -> bool { 20750 pub const fn tcie(&self) -> bool {
22982 let val = (self.0 >> 1usize) & 0x01; 20751 let val = (self.0 >> 1usize) & 0x01;
22983 val != 0 20752 val != 0
22984 } 20753 }
22985 #[doc = "Data CRC fail interrupt enable Set and cleared by software to enable/disable interrupt caused by data CRC failure."] 20754 #[doc = "Transfer complete interrupt enable"]
22986 pub fn set_dcrcfailie(&mut self, val: bool) { 20755 pub fn set_tcie(&mut self, val: bool) {
22987 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 20756 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
22988 } 20757 }
22989 #[doc = "Command timeout interrupt enable Set and cleared by software to enable/disable interrupt caused by command timeout."] 20758 #[doc = "Half Transfer interrupt enable"]
22990 pub const fn ctimeoutie(&self) -> bool { 20759 pub const fn htie(&self) -> bool {
22991 let val = (self.0 >> 2usize) & 0x01; 20760 let val = (self.0 >> 2usize) & 0x01;
22992 val != 0 20761 val != 0
22993 } 20762 }
22994 #[doc = "Command timeout interrupt enable Set and cleared by software to enable/disable interrupt caused by command timeout."] 20763 #[doc = "Half Transfer interrupt enable"]
22995 pub fn set_ctimeoutie(&mut self, val: bool) { 20764 pub fn set_htie(&mut self, val: bool) {
22996 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 20765 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
22997 } 20766 }
22998 #[doc = "Data timeout interrupt enable Set and cleared by software to enable/disable interrupt caused by data timeout."] 20767 #[doc = "Transfer error interrupt enable"]
22999 pub const fn dtimeoutie(&self) -> bool { 20768 pub const fn teie(&self) -> bool {
23000 let val = (self.0 >> 3usize) & 0x01; 20769 let val = (self.0 >> 3usize) & 0x01;
23001 val != 0 20770 val != 0
23002 } 20771 }
23003 #[doc = "Data timeout interrupt enable Set and cleared by software to enable/disable interrupt caused by data timeout."] 20772 #[doc = "Transfer error interrupt enable"]
23004 pub fn set_dtimeoutie(&mut self, val: bool) { 20773 pub fn set_teie(&mut self, val: bool) {
23005 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize); 20774 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
23006 } 20775 }
23007 #[doc = "Tx FIFO underrun error interrupt enable Set and cleared by software to enable/disable interrupt caused by Tx FIFO underrun error."] 20776 #[doc = "Data transfer direction"]
23008 pub const fn txunderrie(&self) -> bool { 20777 pub const fn dir(&self) -> super::vals::Dir {
23009 let val = (self.0 >> 4usize) & 0x01; 20778 let val = (self.0 >> 4usize) & 0x01;
23010 val != 0 20779 super::vals::Dir(val as u8)
23011 } 20780 }
23012 #[doc = "Tx FIFO underrun error interrupt enable Set and cleared by software to enable/disable interrupt caused by Tx FIFO underrun error."] 20781 #[doc = "Data transfer direction"]
23013 pub fn set_txunderrie(&mut self, val: bool) { 20782 pub fn set_dir(&mut self, val: super::vals::Dir) {
23014 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 20783 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
23015 } 20784 }
23016 #[doc = "Rx FIFO overrun error interrupt enable Set and cleared by software to enable/disable interrupt caused by Rx FIFO overrun error."] 20785 #[doc = "Circular mode"]
23017 pub const fn rxoverrie(&self) -> bool { 20786 pub const fn circ(&self) -> super::vals::Circ {
23018 let val = (self.0 >> 5usize) & 0x01; 20787 let val = (self.0 >> 5usize) & 0x01;
23019 val != 0 20788 super::vals::Circ(val as u8)
23020 } 20789 }
23021 #[doc = "Rx FIFO overrun error interrupt enable Set and cleared by software to enable/disable interrupt caused by Rx FIFO overrun error."] 20790 #[doc = "Circular mode"]
23022 pub fn set_rxoverrie(&mut self, val: bool) { 20791 pub fn set_circ(&mut self, val: super::vals::Circ) {
23023 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 20792 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
23024 } 20793 }
23025 #[doc = "Command response received interrupt enable Set and cleared by software to enable/disable interrupt caused by receiving command response."] 20794 #[doc = "Peripheral increment mode"]
23026 pub const fn cmdrendie(&self) -> bool { 20795 pub const fn pinc(&self) -> super::vals::Inc {
23027 let val = (self.0 >> 6usize) & 0x01; 20796 let val = (self.0 >> 6usize) & 0x01;
23028 val != 0 20797 super::vals::Inc(val as u8)
23029 } 20798 }
23030 #[doc = "Command response received interrupt enable Set and cleared by software to enable/disable interrupt caused by receiving command response."] 20799 #[doc = "Peripheral increment mode"]
23031 pub fn set_cmdrendie(&mut self, val: bool) { 20800 pub fn set_pinc(&mut self, val: super::vals::Inc) {
23032 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 20801 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
23033 } 20802 }
23034 #[doc = "Command sent interrupt enable Set and cleared by software to enable/disable interrupt caused by sending command."] 20803 #[doc = "Memory increment mode"]
23035 pub const fn cmdsentie(&self) -> bool { 20804 pub const fn minc(&self) -> super::vals::Inc {
23036 let val = (self.0 >> 7usize) & 0x01; 20805 let val = (self.0 >> 7usize) & 0x01;
23037 val != 0 20806 super::vals::Inc(val as u8)
23038 }
23039 #[doc = "Command sent interrupt enable Set and cleared by software to enable/disable interrupt caused by sending command."]
23040 pub fn set_cmdsentie(&mut self, val: bool) {
23041 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
23042 }
23043 #[doc = "Data end interrupt enable Set and cleared by software to enable/disable interrupt caused by data end."]
23044 pub const fn dataendie(&self) -> bool {
23045 let val = (self.0 >> 8usize) & 0x01;
23046 val != 0
23047 } 20807 }
23048 #[doc = "Data end interrupt enable Set and cleared by software to enable/disable interrupt caused by data end."] 20808 #[doc = "Memory increment mode"]
23049 pub fn set_dataendie(&mut self, val: bool) { 20809 pub fn set_minc(&mut self, val: super::vals::Inc) {
23050 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 20810 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
23051 } 20811 }
23052 #[doc = "Data hold interrupt enable Set and cleared by software to enable/disable the interrupt generated when sending new data is hold in the DPSM Wait_S state."] 20812 #[doc = "Peripheral size"]
23053 pub const fn dholdie(&self) -> bool { 20813 pub const fn psize(&self) -> super::vals::Size {
23054 let val = (self.0 >> 9usize) & 0x01; 20814 let val = (self.0 >> 8usize) & 0x03;
23055 val != 0 20815 super::vals::Size(val as u8)
23056 } 20816 }
23057 #[doc = "Data hold interrupt enable Set and cleared by software to enable/disable the interrupt generated when sending new data is hold in the DPSM Wait_S state."] 20817 #[doc = "Peripheral size"]
23058 pub fn set_dholdie(&mut self, val: bool) { 20818 pub fn set_psize(&mut self, val: super::vals::Size) {
23059 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 20819 self.0 = (self.0 & !(0x03 << 8usize)) | (((val.0 as u32) & 0x03) << 8usize);
23060 } 20820 }
23061 #[doc = "Data block end interrupt enable Set and cleared by software to enable/disable interrupt caused by data block end."] 20821 #[doc = "Memory size"]
23062 pub const fn dbckendie(&self) -> bool { 20822 pub const fn msize(&self) -> super::vals::Size {
23063 let val = (self.0 >> 10usize) & 0x01; 20823 let val = (self.0 >> 10usize) & 0x03;
23064 val != 0 20824 super::vals::Size(val as u8)
23065 } 20825 }
23066 #[doc = "Data block end interrupt enable Set and cleared by software to enable/disable interrupt caused by data block end."] 20826 #[doc = "Memory size"]
23067 pub fn set_dbckendie(&mut self, val: bool) { 20827 pub fn set_msize(&mut self, val: super::vals::Size) {
23068 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize); 20828 self.0 = (self.0 & !(0x03 << 10usize)) | (((val.0 as u32) & 0x03) << 10usize);
23069 } 20829 }
23070 #[doc = "Data transfer aborted interrupt enable Set and cleared by software to enable/disable interrupt caused by a data transfer being aborted."] 20830 #[doc = "Channel Priority level"]
23071 pub const fn dabortie(&self) -> bool { 20831 pub const fn pl(&self) -> super::vals::Pl {
23072 let val = (self.0 >> 11usize) & 0x01; 20832 let val = (self.0 >> 12usize) & 0x03;
23073 val != 0 20833 super::vals::Pl(val as u8)
23074 } 20834 }
23075 #[doc = "Data transfer aborted interrupt enable Set and cleared by software to enable/disable interrupt caused by a data transfer being aborted."] 20835 #[doc = "Channel Priority level"]
23076 pub fn set_dabortie(&mut self, val: bool) { 20836 pub fn set_pl(&mut self, val: super::vals::Pl) {
23077 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize); 20837 self.0 = (self.0 & !(0x03 << 12usize)) | (((val.0 as u32) & 0x03) << 12usize);
23078 } 20838 }
23079 #[doc = "Tx FIFO half empty interrupt enable Set and cleared by software to enable/disable interrupt caused by Tx FIFO half empty."] 20839 #[doc = "Memory to memory mode"]
23080 pub const fn txfifoheie(&self) -> bool { 20840 pub const fn mem2mem(&self) -> super::vals::Memmem {
23081 let val = (self.0 >> 14usize) & 0x01; 20841 let val = (self.0 >> 14usize) & 0x01;
23082 val != 0 20842 super::vals::Memmem(val as u8)
23083 }
23084 #[doc = "Tx FIFO half empty interrupt enable Set and cleared by software to enable/disable interrupt caused by Tx FIFO half empty."]
23085 pub fn set_txfifoheie(&mut self, val: bool) {
23086 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
23087 } 20843 }
23088 #[doc = "Rx FIFO half full interrupt enable Set and cleared by software to enable/disable interrupt caused by Rx FIFO half full."] 20844 #[doc = "Memory to memory mode"]
23089 pub const fn rxfifohfie(&self) -> bool { 20845 pub fn set_mem2mem(&mut self, val: super::vals::Memmem) {
23090 let val = (self.0 >> 15usize) & 0x01; 20846 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
23091 val != 0
23092 } 20847 }
23093 #[doc = "Rx FIFO half full interrupt enable Set and cleared by software to enable/disable interrupt caused by Rx FIFO half full."] 20848 }
23094 pub fn set_rxfifohfie(&mut self, val: bool) { 20849 impl Default for Cr {
23095 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize); 20850 fn default() -> Cr {
20851 Cr(0)
23096 } 20852 }
23097 #[doc = "Rx FIFO full interrupt enable Set and cleared by software to enable/disable interrupt caused by Rx FIFO full."] 20853 }
23098 pub const fn rxfifofie(&self) -> bool { 20854 #[doc = "DMA interrupt flag clear register (DMA_IFCR)"]
23099 let val = (self.0 >> 17usize) & 0x01; 20855 #[repr(transparent)]
20856 #[derive(Copy, Clone, Eq, PartialEq)]
20857 pub struct Ifcr(pub u32);
20858 impl Ifcr {
20859 #[doc = "Channel 1 Global interrupt clear"]
20860 pub fn cgif(&self, n: usize) -> bool {
20861 assert!(n < 7usize);
20862 let offs = 0usize + n * 4usize;
20863 let val = (self.0 >> offs) & 0x01;
23100 val != 0 20864 val != 0
23101 } 20865 }
23102 #[doc = "Rx FIFO full interrupt enable Set and cleared by software to enable/disable interrupt caused by Rx FIFO full."] 20866 #[doc = "Channel 1 Global interrupt clear"]
23103 pub fn set_rxfifofie(&mut self, val: bool) { 20867 pub fn set_cgif(&mut self, n: usize, val: bool) {
23104 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize); 20868 assert!(n < 7usize);
20869 let offs = 0usize + n * 4usize;
20870 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
23105 } 20871 }
23106 #[doc = "Tx FIFO empty interrupt enable Set and cleared by software to enable/disable interrupt caused by Tx FIFO empty."] 20872 #[doc = "Channel 1 Transfer Complete clear"]
23107 pub const fn txfifoeie(&self) -> bool { 20873 pub fn ctcif(&self, n: usize) -> bool {
23108 let val = (self.0 >> 18usize) & 0x01; 20874 assert!(n < 7usize);
20875 let offs = 1usize + n * 4usize;
20876 let val = (self.0 >> offs) & 0x01;
23109 val != 0 20877 val != 0
23110 } 20878 }
23111 #[doc = "Tx FIFO empty interrupt enable Set and cleared by software to enable/disable interrupt caused by Tx FIFO empty."] 20879 #[doc = "Channel 1 Transfer Complete clear"]
23112 pub fn set_txfifoeie(&mut self, val: bool) { 20880 pub fn set_ctcif(&mut self, n: usize, val: bool) {
23113 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize); 20881 assert!(n < 7usize);
20882 let offs = 1usize + n * 4usize;
20883 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
23114 } 20884 }
23115 #[doc = "BUSYD0END interrupt enable Set and cleared by software to enable/disable the interrupt generated when SDMMC_D0 signal changes from busy to NOT busy following a CMD response."] 20885 #[doc = "Channel 1 Half Transfer clear"]
23116 pub const fn busyd0endie(&self) -> bool { 20886 pub fn chtif(&self, n: usize) -> bool {
23117 let val = (self.0 >> 21usize) & 0x01; 20887 assert!(n < 7usize);
20888 let offs = 2usize + n * 4usize;
20889 let val = (self.0 >> offs) & 0x01;
23118 val != 0 20890 val != 0
23119 } 20891 }
23120 #[doc = "BUSYD0END interrupt enable Set and cleared by software to enable/disable the interrupt generated when SDMMC_D0 signal changes from busy to NOT busy following a CMD response."] 20892 #[doc = "Channel 1 Half Transfer clear"]
23121 pub fn set_busyd0endie(&mut self, val: bool) { 20893 pub fn set_chtif(&mut self, n: usize, val: bool) {
23122 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize); 20894 assert!(n < 7usize);
20895 let offs = 2usize + n * 4usize;
20896 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
23123 } 20897 }
23124 #[doc = "SDIO mode interrupt received interrupt enable Set and cleared by software to enable/disable the interrupt generated when receiving the SDIO mode interrupt."] 20898 #[doc = "Channel 1 Transfer Error clear"]
23125 pub const fn sdioitie(&self) -> bool { 20899 pub fn cteif(&self, n: usize) -> bool {
23126 let val = (self.0 >> 22usize) & 0x01; 20900 assert!(n < 7usize);
20901 let offs = 3usize + n * 4usize;
20902 let val = (self.0 >> offs) & 0x01;
23127 val != 0 20903 val != 0
23128 } 20904 }
23129 #[doc = "SDIO mode interrupt received interrupt enable Set and cleared by software to enable/disable the interrupt generated when receiving the SDIO mode interrupt."] 20905 #[doc = "Channel 1 Transfer Error clear"]
23130 pub fn set_sdioitie(&mut self, val: bool) { 20906 pub fn set_cteif(&mut self, n: usize, val: bool) {
23131 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize); 20907 assert!(n < 7usize);
23132 } 20908 let offs = 3usize + n * 4usize;
23133 #[doc = "Acknowledgment Fail interrupt enable Set and cleared by software to enable/disable interrupt caused by acknowledgment Fail."] 20909 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
23134 pub const fn ackfailie(&self) -> bool {
23135 let val = (self.0 >> 23usize) & 0x01;
23136 val != 0
23137 } 20910 }
23138 #[doc = "Acknowledgment Fail interrupt enable Set and cleared by software to enable/disable interrupt caused by acknowledgment Fail."] 20911 }
23139 pub fn set_ackfailie(&mut self, val: bool) { 20912 impl Default for Ifcr {
23140 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize); 20913 fn default() -> Ifcr {
20914 Ifcr(0)
23141 } 20915 }
23142 #[doc = "Acknowledgment timeout interrupt enable Set and cleared by software to enable/disable interrupt caused by acknowledgment timeout."] 20916 }
23143 pub const fn acktimeoutie(&self) -> bool { 20917 #[doc = "DMA interrupt status register (DMA_ISR)"]
23144 let val = (self.0 >> 24usize) & 0x01; 20918 #[repr(transparent)]
20919 #[derive(Copy, Clone, Eq, PartialEq)]
20920 pub struct Isr(pub u32);
20921 impl Isr {
20922 #[doc = "Channel 1 Global interrupt flag"]
20923 pub fn gif(&self, n: usize) -> bool {
20924 assert!(n < 7usize);
20925 let offs = 0usize + n * 4usize;
20926 let val = (self.0 >> offs) & 0x01;
23145 val != 0 20927 val != 0
23146 } 20928 }
23147 #[doc = "Acknowledgment timeout interrupt enable Set and cleared by software to enable/disable interrupt caused by acknowledgment timeout."] 20929 #[doc = "Channel 1 Global interrupt flag"]
23148 pub fn set_acktimeoutie(&mut self, val: bool) { 20930 pub fn set_gif(&mut self, n: usize, val: bool) {
23149 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize); 20931 assert!(n < 7usize);
20932 let offs = 0usize + n * 4usize;
20933 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
23150 } 20934 }
23151 #[doc = "Voltage switch critical timing section completion interrupt enable Set and cleared by software to enable/disable the interrupt generated when voltage switch critical timing section completion."] 20935 #[doc = "Channel 1 Transfer Complete flag"]
23152 pub const fn vswendie(&self) -> bool { 20936 pub fn tcif(&self, n: usize) -> bool {
23153 let val = (self.0 >> 25usize) & 0x01; 20937 assert!(n < 7usize);
20938 let offs = 1usize + n * 4usize;
20939 let val = (self.0 >> offs) & 0x01;
23154 val != 0 20940 val != 0
23155 } 20941 }
23156 #[doc = "Voltage switch critical timing section completion interrupt enable Set and cleared by software to enable/disable the interrupt generated when voltage switch critical timing section completion."] 20942 #[doc = "Channel 1 Transfer Complete flag"]
23157 pub fn set_vswendie(&mut self, val: bool) { 20943 pub fn set_tcif(&mut self, n: usize, val: bool) {
23158 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize); 20944 assert!(n < 7usize);
20945 let offs = 1usize + n * 4usize;
20946 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
23159 } 20947 }
23160 #[doc = "Voltage Switch clock stopped interrupt enable Set and cleared by software to enable/disable interrupt caused by Voltage Switch clock stopped."] 20948 #[doc = "Channel 1 Half Transfer Complete flag"]
23161 pub const fn ckstopie(&self) -> bool { 20949 pub fn htif(&self, n: usize) -> bool {
23162 let val = (self.0 >> 26usize) & 0x01; 20950 assert!(n < 7usize);
20951 let offs = 2usize + n * 4usize;
20952 let val = (self.0 >> offs) & 0x01;
23163 val != 0 20953 val != 0
23164 } 20954 }
23165 #[doc = "Voltage Switch clock stopped interrupt enable Set and cleared by software to enable/disable interrupt caused by Voltage Switch clock stopped."] 20955 #[doc = "Channel 1 Half Transfer Complete flag"]
23166 pub fn set_ckstopie(&mut self, val: bool) { 20956 pub fn set_htif(&mut self, n: usize, val: bool) {
23167 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize); 20957 assert!(n < 7usize);
20958 let offs = 2usize + n * 4usize;
20959 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
23168 } 20960 }
23169 #[doc = "IDMA buffer transfer complete interrupt enable Set and cleared by software to enable/disable the interrupt generated when the IDMA has transferred all data belonging to a memory buffer."] 20961 #[doc = "Channel 1 Transfer Error flag"]
23170 pub const fn idmabtcie(&self) -> bool { 20962 pub fn teif(&self, n: usize) -> bool {
23171 let val = (self.0 >> 28usize) & 0x01; 20963 assert!(n < 7usize);
20964 let offs = 3usize + n * 4usize;
20965 let val = (self.0 >> offs) & 0x01;
23172 val != 0 20966 val != 0
23173 } 20967 }
23174 #[doc = "IDMA buffer transfer complete interrupt enable Set and cleared by software to enable/disable the interrupt generated when the IDMA has transferred all data belonging to a memory buffer."] 20968 #[doc = "Channel 1 Transfer Error flag"]
23175 pub fn set_idmabtcie(&mut self, val: bool) { 20969 pub fn set_teif(&mut self, n: usize, val: bool) {
23176 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize); 20970 assert!(n < 7usize);
20971 let offs = 3usize + n * 4usize;
20972 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
23177 } 20973 }
23178 } 20974 }
23179 impl Default for Maskr { 20975 impl Default for Isr {
23180 fn default() -> Maskr { 20976 fn default() -> Isr {
23181 Maskr(0) 20977 Isr(0)
23182 } 20978 }
23183 } 20979 }
23184 #[doc = "SDMMC IP version register"] 20980 }
20981 pub mod vals {
20982 use crate::generic::*;
23185 #[repr(transparent)] 20983 #[repr(transparent)]
23186 #[derive(Copy, Clone, Eq, PartialEq)] 20984 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
23187 pub struct Ver(pub u32); 20985 pub struct Pl(pub u8);
23188 impl Ver { 20986 impl Pl {
23189 #[doc = "IP minor revision number."] 20987 #[doc = "Low priority"]
23190 pub const fn minrev(&self) -> u8 { 20988 pub const LOW: Self = Self(0);
23191 let val = (self.0 >> 0usize) & 0x0f; 20989 #[doc = "Medium priority"]
23192 val as u8 20990 pub const MEDIUM: Self = Self(0x01);
23193 } 20991 #[doc = "High priority"]
23194 #[doc = "IP minor revision number."] 20992 pub const HIGH: Self = Self(0x02);
23195 pub fn set_minrev(&mut self, val: u8) { 20993 #[doc = "Very high priority"]
23196 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize); 20994 pub const VERYHIGH: Self = Self(0x03);
23197 }
23198 #[doc = "IP major revision number."]
23199 pub const fn majrev(&self) -> u8 {
23200 let val = (self.0 >> 4usize) & 0x0f;
23201 val as u8
23202 }
23203 #[doc = "IP major revision number."]
23204 pub fn set_majrev(&mut self, val: u8) {
23205 self.0 = (self.0 & !(0x0f << 4usize)) | (((val as u32) & 0x0f) << 4usize);
23206 }
23207 }
23208 impl Default for Ver {
23209 fn default() -> Ver {
23210 Ver(0)
23211 }
23212 } 20995 }
23213 #[doc = "The SDMMC_DCNTR register loads the value from the data length register (see SDMMC_DLENR) when the DPSM moves from the Idle state to the Wait_R or Wait_S state. As data is transferred, the counter decrements the value until it reaches 0. The DPSM then moves to the Idle state and when there has been no error, the data status end flag (DATAEND) is set."]
23214 #[repr(transparent)] 20996 #[repr(transparent)]
23215 #[derive(Copy, Clone, Eq, PartialEq)] 20997 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
23216 pub struct Dcntr(pub u32); 20998 pub struct Inc(pub u8);
23217 impl Dcntr { 20999 impl Inc {
23218 #[doc = "Data count value When read, the number of remaining data bytes to be transferred is returned. Write has no effect."] 21000 #[doc = "Increment mode disabled"]
23219 pub const fn datacount(&self) -> u32 { 21001 pub const DISABLED: Self = Self(0);
23220 let val = (self.0 >> 0usize) & 0x01ff_ffff; 21002 #[doc = "Increment mode enabled"]
23221 val as u32 21003 pub const ENABLED: Self = Self(0x01);
23222 }
23223 #[doc = "Data count value When read, the number of remaining data bytes to be transferred is returned. Write has no effect."]
23224 pub fn set_datacount(&mut self, val: u32) {
23225 self.0 =
23226 (self.0 & !(0x01ff_ffff << 0usize)) | (((val as u32) & 0x01ff_ffff) << 0usize);
23227 }
23228 }
23229 impl Default for Dcntr {
23230 fn default() -> Dcntr {
23231 Dcntr(0)
23232 }
23233 } 21004 }
23234 #[doc = "The receive and transmit FIFOs can be read or written as 32-bit wide registers. The FIFOs contain 32 entries on 32 sequential addresses. This allows the CPU to use its load and store multiple operands to read from/write to the FIFO."]
23235 #[repr(transparent)] 21005 #[repr(transparent)]
23236 #[derive(Copy, Clone, Eq, PartialEq)] 21006 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
23237 pub struct Idmactrlr(pub u32); 21007 pub struct Size(pub u8);
23238 impl Idmactrlr { 21008 impl Size {
23239 #[doc = "IDMA enable This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."] 21009 #[doc = "8-bit size"]
23240 pub const fn idmaen(&self) -> bool { 21010 pub const BITS8: Self = Self(0);
23241 let val = (self.0 >> 0usize) & 0x01; 21011 #[doc = "16-bit size"]
23242 val != 0 21012 pub const BITS16: Self = Self(0x01);
23243 } 21013 #[doc = "32-bit size"]
23244 #[doc = "IDMA enable This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."] 21014 pub const BITS32: Self = Self(0x02);
23245 pub fn set_idmaen(&mut self, val: bool) {
23246 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
23247 }
23248 #[doc = "Buffer mode selection. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
23249 pub const fn idmabmode(&self) -> bool {
23250 let val = (self.0 >> 1usize) & 0x01;
23251 val != 0
23252 }
23253 #[doc = "Buffer mode selection. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
23254 pub fn set_idmabmode(&mut self, val: bool) {
23255 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
23256 }
23257 #[doc = "Double buffer mode active buffer indication This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0). When IDMA is enabled this bit is toggled by hardware."]
23258 pub const fn idmabact(&self) -> bool {
23259 let val = (self.0 >> 2usize) & 0x01;
23260 val != 0
23261 }
23262 #[doc = "Double buffer mode active buffer indication This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0). When IDMA is enabled this bit is toggled by hardware."]
23263 pub fn set_idmabact(&mut self, val: bool) {
23264 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
23265 }
23266 } 21015 }
23267 impl Default for Idmactrlr { 21016 #[repr(transparent)]
23268 fn default() -> Idmactrlr { 21017 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
23269 Idmactrlr(0) 21018 pub struct Memmem(pub u8);
23270 } 21019 impl Memmem {
21020 #[doc = "Memory to memory mode disabled"]
21021 pub const DISABLED: Self = Self(0);
21022 #[doc = "Memory to memory mode enabled"]
21023 pub const ENABLED: Self = Self(0x01);
23271 } 21024 }
23272 #[doc = "SDMMC command response register"]
23273 #[repr(transparent)] 21025 #[repr(transparent)]
23274 #[derive(Copy, Clone, Eq, PartialEq)] 21026 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
23275 pub struct Respcmdr(pub u32); 21027 pub struct Dir(pub u8);
23276 impl Respcmdr { 21028 impl Dir {
23277 #[doc = "Response command index"] 21029 #[doc = "Read from peripheral"]
23278 pub const fn respcmd(&self) -> u8 { 21030 pub const FROMPERIPHERAL: Self = Self(0);
23279 let val = (self.0 >> 0usize) & 0x3f; 21031 #[doc = "Read from memory"]
23280 val as u8 21032 pub const FROMMEMORY: Self = Self(0x01);
23281 }
23282 #[doc = "Response command index"]
23283 pub fn set_respcmd(&mut self, val: u8) {
23284 self.0 = (self.0 & !(0x3f << 0usize)) | (((val as u32) & 0x3f) << 0usize);
23285 }
23286 } 21033 }
23287 impl Default for Respcmdr { 21034 #[repr(transparent)]
23288 fn default() -> Respcmdr { 21035 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
23289 Respcmdr(0) 21036 pub struct Circ(pub u8);
23290 } 21037 impl Circ {
21038 #[doc = "Circular buffer disabled"]
21039 pub const DISABLED: Self = Self(0);
21040 #[doc = "Circular buffer enabled"]
21041 pub const ENABLED: Self = Self(0x01);
23291 } 21042 }
23292 } 21043 }
23293} 21044}
23294pub mod rng_v1 { 21045pub mod timer_v1 {
23295 use crate::generic::*; 21046 use crate::generic::*;
23296 #[doc = "Random number generator"] 21047 #[doc = "General purpose 32-bit timer"]
23297 #[derive(Copy, Clone)] 21048 #[derive(Copy, Clone)]
23298 pub struct Rng(pub *mut u8); 21049 pub struct TimGp32(pub *mut u8);
23299 unsafe impl Send for Rng {} 21050 unsafe impl Send for TimGp32 {}
23300 unsafe impl Sync for Rng {} 21051 unsafe impl Sync for TimGp32 {}
23301 impl Rng { 21052 impl TimGp32 {
23302 #[doc = "control register"] 21053 #[doc = "control register 1"]
23303 pub fn cr(self) -> Reg<regs::Cr, RW> { 21054 pub fn cr1(self) -> Reg<regs::Cr1Gp, RW> {
23304 unsafe { Reg::from_ptr(self.0.add(0usize)) } 21055 unsafe { Reg::from_ptr(self.0.add(0usize)) }
23305 } 21056 }
23306 #[doc = "status register"] 21057 #[doc = "control register 2"]
23307 pub fn sr(self) -> Reg<regs::Sr, RW> { 21058 pub fn cr2(self) -> Reg<regs::Cr2Gp, RW> {
23308 unsafe { Reg::from_ptr(self.0.add(4usize)) } 21059 unsafe { Reg::from_ptr(self.0.add(4usize)) }
23309 } 21060 }
23310 #[doc = "data register"] 21061 #[doc = "slave mode control register"]
23311 pub fn dr(self) -> Reg<u32, R> { 21062 pub fn smcr(self) -> Reg<regs::Smcr, RW> {
23312 unsafe { Reg::from_ptr(self.0.add(8usize)) } 21063 unsafe { Reg::from_ptr(self.0.add(8usize)) }
23313 } 21064 }
23314 } 21065 #[doc = "DMA/Interrupt enable register"]
23315 pub mod regs { 21066 pub fn dier(self) -> Reg<regs::DierGp, RW> {
23316 use crate::generic::*; 21067 unsafe { Reg::from_ptr(self.0.add(12usize)) }
21068 }
23317 #[doc = "status register"] 21069 #[doc = "status register"]
23318 #[repr(transparent)] 21070 pub fn sr(self) -> Reg<regs::SrGp, RW> {
23319 #[derive(Copy, Clone, Eq, PartialEq)] 21071 unsafe { Reg::from_ptr(self.0.add(16usize)) }
23320 pub struct Sr(pub u32);
23321 impl Sr {
23322 #[doc = "Data ready"]
23323 pub const fn drdy(&self) -> bool {
23324 let val = (self.0 >> 0usize) & 0x01;
23325 val != 0
23326 }
23327 #[doc = "Data ready"]
23328 pub fn set_drdy(&mut self, val: bool) {
23329 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
23330 }
23331 #[doc = "Clock error current status"]
23332 pub const fn cecs(&self) -> bool {
23333 let val = (self.0 >> 1usize) & 0x01;
23334 val != 0
23335 }
23336 #[doc = "Clock error current status"]
23337 pub fn set_cecs(&mut self, val: bool) {
23338 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
23339 }
23340 #[doc = "Seed error current status"]
23341 pub const fn secs(&self) -> bool {
23342 let val = (self.0 >> 2usize) & 0x01;
23343 val != 0
23344 }
23345 #[doc = "Seed error current status"]
23346 pub fn set_secs(&mut self, val: bool) {
23347 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
23348 }
23349 #[doc = "Clock error interrupt status"]
23350 pub const fn ceis(&self) -> bool {
23351 let val = (self.0 >> 5usize) & 0x01;
23352 val != 0
23353 }
23354 #[doc = "Clock error interrupt status"]
23355 pub fn set_ceis(&mut self, val: bool) {
23356 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
23357 }
23358 #[doc = "Seed error interrupt status"]
23359 pub const fn seis(&self) -> bool {
23360 let val = (self.0 >> 6usize) & 0x01;
23361 val != 0
23362 }
23363 #[doc = "Seed error interrupt status"]
23364 pub fn set_seis(&mut self, val: bool) {
23365 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
23366 }
23367 } 21072 }
23368 impl Default for Sr { 21073 #[doc = "event generation register"]
23369 fn default() -> Sr { 21074 pub fn egr(self) -> Reg<regs::EgrGp, W> {
23370 Sr(0) 21075 unsafe { Reg::from_ptr(self.0.add(20usize)) }
23371 }
23372 } 21076 }
23373 #[doc = "control register"] 21077 #[doc = "capture/compare mode register 1 (input mode)"]
23374 #[repr(transparent)] 21078 pub fn ccmr_input(self, n: usize) -> Reg<regs::CcmrInput, RW> {
23375 #[derive(Copy, Clone, Eq, PartialEq)] 21079 assert!(n < 2usize);
23376 pub struct Cr(pub u32); 21080 unsafe { Reg::from_ptr(self.0.add(24usize + n * 4usize)) }
23377 impl Cr {
23378 #[doc = "Random number generator enable"]
23379 pub const fn rngen(&self) -> bool {
23380 let val = (self.0 >> 2usize) & 0x01;
23381 val != 0
23382 }
23383 #[doc = "Random number generator enable"]
23384 pub fn set_rngen(&mut self, val: bool) {
23385 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
23386 }
23387 #[doc = "Interrupt enable"]
23388 pub const fn ie(&self) -> bool {
23389 let val = (self.0 >> 3usize) & 0x01;
23390 val != 0
23391 }
23392 #[doc = "Interrupt enable"]
23393 pub fn set_ie(&mut self, val: bool) {
23394 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
23395 }
23396 } 21081 }
23397 impl Default for Cr { 21082 #[doc = "capture/compare mode register 1 (output mode)"]
23398 fn default() -> Cr { 21083 pub fn ccmr_output(self, n: usize) -> Reg<regs::CcmrOutput, RW> {
23399 Cr(0) 21084 assert!(n < 2usize);
23400 } 21085 unsafe { Reg::from_ptr(self.0.add(24usize + n * 4usize)) }
21086 }
21087 #[doc = "capture/compare enable register"]
21088 pub fn ccer(self) -> Reg<regs::CcerGp, RW> {
21089 unsafe { Reg::from_ptr(self.0.add(32usize)) }
21090 }
21091 #[doc = "counter"]
21092 pub fn cnt(self) -> Reg<regs::Cnt32, RW> {
21093 unsafe { Reg::from_ptr(self.0.add(36usize)) }
21094 }
21095 #[doc = "prescaler"]
21096 pub fn psc(self) -> Reg<regs::Psc, RW> {
21097 unsafe { Reg::from_ptr(self.0.add(40usize)) }
21098 }
21099 #[doc = "auto-reload register"]
21100 pub fn arr(self) -> Reg<regs::Arr32, RW> {
21101 unsafe { Reg::from_ptr(self.0.add(44usize)) }
21102 }
21103 #[doc = "capture/compare register"]
21104 pub fn ccr(self, n: usize) -> Reg<regs::Ccr32, RW> {
21105 assert!(n < 4usize);
21106 unsafe { Reg::from_ptr(self.0.add(52usize + n * 4usize)) }
21107 }
21108 #[doc = "DMA control register"]
21109 pub fn dcr(self) -> Reg<regs::Dcr, RW> {
21110 unsafe { Reg::from_ptr(self.0.add(72usize)) }
21111 }
21112 #[doc = "DMA address for full transfer"]
21113 pub fn dmar(self) -> Reg<regs::Dmar, RW> {
21114 unsafe { Reg::from_ptr(self.0.add(76usize)) }
23401 } 21115 }
23402 } 21116 }
23403} 21117 #[doc = "Advanced-timers"]
23404pub mod flash_h7 {
23405 use crate::generic::*;
23406 #[doc = "Cluster BANK%s, containing KEYR?, CR?, SR?, CCR?, PRAR_CUR?, PRAR_PRG?, SCAR_CUR?, SCAR_PRG?, WPSN_CUR?R, WPSN_PRG?R, CRCCR?, CRCSADD?R, CRCEADD?R, ECC_FA?R"]
23407 #[derive(Copy, Clone)] 21118 #[derive(Copy, Clone)]
23408 pub struct Bank(pub *mut u8); 21119 pub struct TimAdv(pub *mut u8);
23409 unsafe impl Send for Bank {} 21120 unsafe impl Send for TimAdv {}
23410 unsafe impl Sync for Bank {} 21121 unsafe impl Sync for TimAdv {}
23411 impl Bank { 21122 impl TimAdv {
23412 #[doc = "FLASH key register for bank 1"] 21123 #[doc = "control register 1"]
23413 pub fn keyr(self) -> Reg<regs::Keyr, W> { 21124 pub fn cr1(self) -> Reg<regs::Cr1Gp, RW> {
23414 unsafe { Reg::from_ptr(self.0.add(0usize)) } 21125 unsafe { Reg::from_ptr(self.0.add(0usize)) }
23415 } 21126 }
23416 #[doc = "FLASH control register for bank 1"] 21127 #[doc = "control register 2"]
23417 pub fn cr(self) -> Reg<regs::Cr, RW> { 21128 pub fn cr2(self) -> Reg<regs::Cr2Adv, RW> {
21129 unsafe { Reg::from_ptr(self.0.add(4usize)) }
21130 }
21131 #[doc = "slave mode control register"]
21132 pub fn smcr(self) -> Reg<regs::Smcr, RW> {
23418 unsafe { Reg::from_ptr(self.0.add(8usize)) } 21133 unsafe { Reg::from_ptr(self.0.add(8usize)) }
23419 } 21134 }
23420 #[doc = "FLASH status register for bank 1"] 21135 #[doc = "DMA/Interrupt enable register"]
23421 pub fn sr(self) -> Reg<regs::Sr, RW> { 21136 pub fn dier(self) -> Reg<regs::DierAdv, RW> {
23422 unsafe { Reg::from_ptr(self.0.add(12usize)) } 21137 unsafe { Reg::from_ptr(self.0.add(12usize)) }
23423 } 21138 }
23424 #[doc = "FLASH clear control register for bank 1"] 21139 #[doc = "status register"]
23425 pub fn ccr(self) -> Reg<regs::Ccr, RW> { 21140 pub fn sr(self) -> Reg<regs::SrAdv, RW> {
23426 unsafe { Reg::from_ptr(self.0.add(16usize)) } 21141 unsafe { Reg::from_ptr(self.0.add(16usize)) }
23427 } 21142 }
23428 #[doc = "FLASH protection address for bank 1"] 21143 #[doc = "event generation register"]
23429 pub fn prar_cur(self) -> Reg<regs::PrarCur, R> { 21144 pub fn egr(self) -> Reg<regs::EgrAdv, W> {
21145 unsafe { Reg::from_ptr(self.0.add(20usize)) }
21146 }
21147 #[doc = "capture/compare mode register 1 (input mode)"]
21148 pub fn ccmr_input(self, n: usize) -> Reg<regs::CcmrInput, RW> {
21149 assert!(n < 2usize);
21150 unsafe { Reg::from_ptr(self.0.add(24usize + n * 4usize)) }
21151 }
21152 #[doc = "capture/compare mode register 1 (output mode)"]
21153 pub fn ccmr_output(self, n: usize) -> Reg<regs::CcmrOutput, RW> {
21154 assert!(n < 2usize);
21155 unsafe { Reg::from_ptr(self.0.add(24usize + n * 4usize)) }
21156 }
21157 #[doc = "capture/compare enable register"]
21158 pub fn ccer(self) -> Reg<regs::CcerAdv, RW> {
21159 unsafe { Reg::from_ptr(self.0.add(32usize)) }
21160 }
21161 #[doc = "counter"]
21162 pub fn cnt(self) -> Reg<regs::Cnt16, RW> {
23430 unsafe { Reg::from_ptr(self.0.add(36usize)) } 21163 unsafe { Reg::from_ptr(self.0.add(36usize)) }
23431 } 21164 }
23432 #[doc = "FLASH protection address for bank 1"] 21165 #[doc = "prescaler"]
23433 pub fn prar_prg(self) -> Reg<regs::PrarPrg, RW> { 21166 pub fn psc(self) -> Reg<regs::Psc, RW> {
23434 unsafe { Reg::from_ptr(self.0.add(40usize)) } 21167 unsafe { Reg::from_ptr(self.0.add(40usize)) }
23435 } 21168 }
23436 #[doc = "FLASH secure address for bank 1"] 21169 #[doc = "auto-reload register"]
23437 pub fn scar_cur(self) -> Reg<regs::ScarCur, RW> { 21170 pub fn arr(self) -> Reg<regs::Arr16, RW> {
23438 unsafe { Reg::from_ptr(self.0.add(44usize)) } 21171 unsafe { Reg::from_ptr(self.0.add(44usize)) }
23439 } 21172 }
23440 #[doc = "FLASH secure address for bank 1"] 21173 #[doc = "repetition counter register"]
23441 pub fn scar_prg(self) -> Reg<regs::ScarPrg, RW> { 21174 pub fn rcr(self) -> Reg<regs::Rcr, RW> {
23442 unsafe { Reg::from_ptr(self.0.add(48usize)) } 21175 unsafe { Reg::from_ptr(self.0.add(48usize)) }
23443 } 21176 }
23444 #[doc = "FLASH write sector protection for bank 1"] 21177 #[doc = "capture/compare register"]
23445 pub fn wpsn_curr(self) -> Reg<regs::WpsnCurr, R> { 21178 pub fn ccr(self, n: usize) -> Reg<regs::Ccr16, RW> {
23446 unsafe { Reg::from_ptr(self.0.add(52usize)) } 21179 assert!(n < 4usize);
21180 unsafe { Reg::from_ptr(self.0.add(52usize + n * 4usize)) }
23447 } 21181 }
23448 #[doc = "FLASH write sector protection for bank 1"] 21182 #[doc = "break and dead-time register"]
23449 pub fn wpsn_prgr(self) -> Reg<regs::WpsnPrgr, RW> { 21183 pub fn bdtr(self) -> Reg<regs::Bdtr, RW> {
23450 unsafe { Reg::from_ptr(self.0.add(56usize)) } 21184 unsafe { Reg::from_ptr(self.0.add(68usize)) }
23451 } 21185 }
23452 #[doc = "FLASH CRC control register for bank 1"] 21186 #[doc = "DMA control register"]
23453 pub fn crccr(self) -> Reg<regs::Crccr, RW> { 21187 pub fn dcr(self) -> Reg<regs::Dcr, RW> {
21188 unsafe { Reg::from_ptr(self.0.add(72usize)) }
21189 }
21190 #[doc = "DMA address for full transfer"]
21191 pub fn dmar(self) -> Reg<regs::Dmar, RW> {
23454 unsafe { Reg::from_ptr(self.0.add(76usize)) } 21192 unsafe { Reg::from_ptr(self.0.add(76usize)) }
23455 } 21193 }
23456 #[doc = "FLASH CRC start address register for bank 1"] 21194 }
23457 pub fn crcsaddr(self) -> Reg<regs::Crcsaddr, RW> { 21195 #[doc = "Basic timer"]
23458 unsafe { Reg::from_ptr(self.0.add(80usize)) } 21196 #[derive(Copy, Clone)]
21197 pub struct TimBasic(pub *mut u8);
21198 unsafe impl Send for TimBasic {}
21199 unsafe impl Sync for TimBasic {}
21200 impl TimBasic {
21201 #[doc = "control register 1"]
21202 pub fn cr1(self) -> Reg<regs::Cr1Basic, RW> {
21203 unsafe { Reg::from_ptr(self.0.add(0usize)) }
23459 } 21204 }
23460 #[doc = "FLASH CRC end address register for bank 1"] 21205 #[doc = "control register 2"]
23461 pub fn crceaddr(self) -> Reg<regs::Crceaddr, RW> { 21206 pub fn cr2(self) -> Reg<regs::Cr2Basic, RW> {
23462 unsafe { Reg::from_ptr(self.0.add(84usize)) } 21207 unsafe { Reg::from_ptr(self.0.add(4usize)) }
23463 } 21208 }
23464 #[doc = "FLASH ECC fail address for bank 1"] 21209 #[doc = "DMA/Interrupt enable register"]
23465 pub fn far(self) -> Reg<regs::Far, R> { 21210 pub fn dier(self) -> Reg<regs::DierBasic, RW> {
23466 unsafe { Reg::from_ptr(self.0.add(92usize)) } 21211 unsafe { Reg::from_ptr(self.0.add(12usize)) }
21212 }
21213 #[doc = "status register"]
21214 pub fn sr(self) -> Reg<regs::SrBasic, RW> {
21215 unsafe { Reg::from_ptr(self.0.add(16usize)) }
21216 }
21217 #[doc = "event generation register"]
21218 pub fn egr(self) -> Reg<regs::EgrBasic, W> {
21219 unsafe { Reg::from_ptr(self.0.add(20usize)) }
21220 }
21221 #[doc = "counter"]
21222 pub fn cnt(self) -> Reg<regs::Cnt16, RW> {
21223 unsafe { Reg::from_ptr(self.0.add(36usize)) }
21224 }
21225 #[doc = "prescaler"]
21226 pub fn psc(self) -> Reg<regs::Psc, RW> {
21227 unsafe { Reg::from_ptr(self.0.add(40usize)) }
21228 }
21229 #[doc = "auto-reload register"]
21230 pub fn arr(self) -> Reg<regs::Arr16, RW> {
21231 unsafe { Reg::from_ptr(self.0.add(44usize)) }
23467 } 21232 }
23468 } 21233 }
23469 #[doc = "Flash"] 21234 #[doc = "General purpose 16-bit timer"]
23470 #[derive(Copy, Clone)] 21235 #[derive(Copy, Clone)]
23471 pub struct Flash(pub *mut u8); 21236 pub struct TimGp16(pub *mut u8);
23472 unsafe impl Send for Flash {} 21237 unsafe impl Send for TimGp16 {}
23473 unsafe impl Sync for Flash {} 21238 unsafe impl Sync for TimGp16 {}
23474 impl Flash { 21239 impl TimGp16 {
23475 #[doc = "Access control register"] 21240 #[doc = "control register 1"]
23476 pub fn acr(self) -> Reg<regs::Acr, RW> { 21241 pub fn cr1(self) -> Reg<regs::Cr1Gp, RW> {
23477 unsafe { Reg::from_ptr(self.0.add(0usize)) } 21242 unsafe { Reg::from_ptr(self.0.add(0usize)) }
23478 } 21243 }
23479 #[doc = "Cluster BANK%s, containing KEYR?, CR?, SR?, CCR?, PRAR_CUR?, PRAR_PRG?, SCAR_CUR?, SCAR_PRG?, WPSN_CUR?R, WPSN_PRG?R, CRCCR?, CRCSADD?R, CRCEADD?R, ECC_FA?R"] 21244 #[doc = "control register 2"]
23480 pub fn bank(self, n: usize) -> Bank { 21245 pub fn cr2(self) -> Reg<regs::Cr2Gp, RW> {
23481 assert!(n < 2usize); 21246 unsafe { Reg::from_ptr(self.0.add(4usize)) }
23482 unsafe { Bank(self.0.add(4usize + n * 256usize)) }
23483 } 21247 }
23484 #[doc = "FLASH option key register"] 21248 #[doc = "slave mode control register"]
23485 pub fn optkeyr(self) -> Reg<regs::Optkeyr, RW> { 21249 pub fn smcr(self) -> Reg<regs::Smcr, RW> {
23486 unsafe { Reg::from_ptr(self.0.add(8usize)) } 21250 unsafe { Reg::from_ptr(self.0.add(8usize)) }
23487 } 21251 }
23488 #[doc = "FLASH option control register"] 21252 #[doc = "DMA/Interrupt enable register"]
23489 pub fn optcr(self) -> Reg<regs::Optcr, RW> { 21253 pub fn dier(self) -> Reg<regs::DierGp, RW> {
23490 unsafe { Reg::from_ptr(self.0.add(24usize)) } 21254 unsafe { Reg::from_ptr(self.0.add(12usize)) }
23491 } 21255 }
23492 #[doc = "FLASH option status register"] 21256 #[doc = "status register"]
23493 pub fn optsr_cur(self) -> Reg<regs::OptsrCur, RW> { 21257 pub fn sr(self) -> Reg<regs::SrGp, RW> {
23494 unsafe { Reg::from_ptr(self.0.add(28usize)) } 21258 unsafe { Reg::from_ptr(self.0.add(16usize)) }
23495 } 21259 }
23496 #[doc = "FLASH option status register"] 21260 #[doc = "event generation register"]
23497 pub fn optsr_prg(self) -> Reg<regs::OptsrPrg, RW> { 21261 pub fn egr(self) -> Reg<regs::EgrGp, W> {
21262 unsafe { Reg::from_ptr(self.0.add(20usize)) }
21263 }
21264 #[doc = "capture/compare mode register 1 (input mode)"]
21265 pub fn ccmr_input(self, n: usize) -> Reg<regs::CcmrInput, RW> {
21266 assert!(n < 2usize);
21267 unsafe { Reg::from_ptr(self.0.add(24usize + n * 4usize)) }
21268 }
21269 #[doc = "capture/compare mode register 1 (output mode)"]
21270 pub fn ccmr_output(self, n: usize) -> Reg<regs::CcmrOutput, RW> {
21271 assert!(n < 2usize);
21272 unsafe { Reg::from_ptr(self.0.add(24usize + n * 4usize)) }
21273 }
21274 #[doc = "capture/compare enable register"]
21275 pub fn ccer(self) -> Reg<regs::CcerGp, RW> {
23498 unsafe { Reg::from_ptr(self.0.add(32usize)) } 21276 unsafe { Reg::from_ptr(self.0.add(32usize)) }
23499 } 21277 }
23500 #[doc = "FLASH option clear control register"] 21278 #[doc = "counter"]
23501 pub fn optccr(self) -> Reg<regs::Optccr, W> { 21279 pub fn cnt(self) -> Reg<regs::Cnt16, RW> {
23502 unsafe { Reg::from_ptr(self.0.add(36usize)) } 21280 unsafe { Reg::from_ptr(self.0.add(36usize)) }
23503 } 21281 }
23504 #[doc = "FLASH register with boot address"] 21282 #[doc = "prescaler"]
23505 pub fn boot_curr(self) -> Reg<regs::BootCurr, R> { 21283 pub fn psc(self) -> Reg<regs::Psc, RW> {
23506 unsafe { Reg::from_ptr(self.0.add(64usize)) } 21284 unsafe { Reg::from_ptr(self.0.add(40usize)) }
23507 } 21285 }
23508 #[doc = "FLASH register with boot address"] 21286 #[doc = "auto-reload register"]
23509 pub fn boot_prgr(self) -> Reg<regs::BootPrgr, RW> { 21287 pub fn arr(self) -> Reg<regs::Arr16, RW> {
23510 unsafe { Reg::from_ptr(self.0.add(68usize)) } 21288 unsafe { Reg::from_ptr(self.0.add(44usize)) }
23511 } 21289 }
23512 #[doc = "FLASH CRC data register"] 21290 #[doc = "capture/compare register"]
23513 pub fn crcdatar(self) -> Reg<regs::Crcdatar, RW> { 21291 pub fn ccr(self, n: usize) -> Reg<regs::Ccr16, RW> {
23514 unsafe { Reg::from_ptr(self.0.add(92usize)) } 21292 assert!(n < 4usize);
21293 unsafe { Reg::from_ptr(self.0.add(52usize + n * 4usize)) }
21294 }
21295 #[doc = "DMA control register"]
21296 pub fn dcr(self) -> Reg<regs::Dcr, RW> {
21297 unsafe { Reg::from_ptr(self.0.add(72usize)) }
21298 }
21299 #[doc = "DMA address for full transfer"]
21300 pub fn dmar(self) -> Reg<regs::Dmar, RW> {
21301 unsafe { Reg::from_ptr(self.0.add(76usize)) }
21302 }
21303 }
21304 pub mod vals {
21305 use crate::generic::*;
21306 #[repr(transparent)]
21307 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21308 pub struct Sms(pub u8);
21309 impl Sms {
21310 #[doc = "Slave mode disabled - if CEN = ‘1 then the prescaler is clocked directly by the internal clock."]
21311 pub const DISABLED: Self = Self(0);
21312 #[doc = "Encoder mode 1 - Counter counts up/down on TI2FP1 edge depending on TI1FP2 level."]
21313 pub const ENCODER_MODE_1: Self = Self(0x01);
21314 #[doc = "Encoder mode 2 - Counter counts up/down on TI1FP2 edge depending on TI2FP1 level."]
21315 pub const ENCODER_MODE_2: Self = Self(0x02);
21316 #[doc = "Encoder mode 3 - Counter counts up/down on both TI1FP1 and TI2FP2 edges depending on the level of the other input."]
21317 pub const ENCODER_MODE_3: Self = Self(0x03);
21318 #[doc = "Reset Mode - Rising edge of the selected trigger input (TRGI) reinitializes the counter and generates an update of the registers."]
21319 pub const RESET_MODE: Self = Self(0x04);
21320 #[doc = "Gated Mode - The counter clock is enabled when the trigger input (TRGI) is high. The counter stops (but is not reset) as soon as the trigger becomes low. Both start and stop of the counter are controlled."]
21321 pub const GATED_MODE: Self = Self(0x05);
21322 #[doc = "Trigger Mode - The counter starts at a rising edge of the trigger TRGI (but it is not reset). Only the start of the counter is controlled."]
21323 pub const TRIGGER_MODE: Self = Self(0x06);
21324 #[doc = "External Clock Mode 1 - Rising edges of the selected trigger (TRGI) clock the counter."]
21325 pub const EXT_CLOCK_MODE: Self = Self(0x07);
21326 }
21327 #[repr(transparent)]
21328 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21329 pub struct Ckd(pub u8);
21330 impl Ckd {
21331 #[doc = "t_DTS = t_CK_INT"]
21332 pub const DIV1: Self = Self(0);
21333 #[doc = "t_DTS = 2 × t_CK_INT"]
21334 pub const DIV2: Self = Self(0x01);
21335 #[doc = "t_DTS = 4 × t_CK_INT"]
21336 pub const DIV4: Self = Self(0x02);
21337 }
21338 #[repr(transparent)]
21339 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21340 pub struct Ocpe(pub u8);
21341 impl Ocpe {
21342 #[doc = "Preload register on CCR2 disabled. New values written to CCR2 are taken into account immediately"]
21343 pub const DISABLED: Self = Self(0);
21344 #[doc = "Preload register on CCR2 enabled. Preload value is loaded into active register on each update event"]
21345 pub const ENABLED: Self = Self(0x01);
21346 }
21347 #[repr(transparent)]
21348 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21349 pub struct Opm(pub u8);
21350 impl Opm {
21351 #[doc = "Counter is not stopped at update event"]
21352 pub const DISABLED: Self = Self(0);
21353 #[doc = "Counter stops counting at the next update event (clearing the CEN bit)"]
21354 pub const ENABLED: Self = Self(0x01);
21355 }
21356 #[repr(transparent)]
21357 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21358 pub struct Msm(pub u8);
21359 impl Msm {
21360 #[doc = "No action"]
21361 pub const NOSYNC: Self = Self(0);
21362 #[doc = "The effect of an event on the trigger input (TRGI) is delayed to allow a perfect synchronization between the current timer and its slaves (through TRGO). It is useful if we want to synchronize several timers on a single external event."]
21363 pub const SYNC: Self = Self(0x01);
21364 }
21365 #[repr(transparent)]
21366 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21367 pub struct Ossi(pub u8);
21368 impl Ossi {
21369 #[doc = "When inactive, OC/OCN outputs are disabled"]
21370 pub const DISABLED: Self = Self(0);
21371 #[doc = "When inactive, OC/OCN outputs are forced to idle level"]
21372 pub const IDLELEVEL: Self = Self(0x01);
21373 }
21374 #[repr(transparent)]
21375 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21376 pub struct Icf(pub u8);
21377 impl Icf {
21378 #[doc = "No filter, sampling is done at fDTS"]
21379 pub const NOFILTER: Self = Self(0);
21380 #[doc = "fSAMPLING=fCK_INT, N=2"]
21381 pub const FCK_INT_N2: Self = Self(0x01);
21382 #[doc = "fSAMPLING=fCK_INT, N=4"]
21383 pub const FCK_INT_N4: Self = Self(0x02);
21384 #[doc = "fSAMPLING=fCK_INT, N=8"]
21385 pub const FCK_INT_N8: Self = Self(0x03);
21386 #[doc = "fSAMPLING=fDTS/2, N=6"]
21387 pub const FDTS_DIV2_N6: Self = Self(0x04);
21388 #[doc = "fSAMPLING=fDTS/2, N=8"]
21389 pub const FDTS_DIV2_N8: Self = Self(0x05);
21390 #[doc = "fSAMPLING=fDTS/4, N=6"]
21391 pub const FDTS_DIV4_N6: Self = Self(0x06);
21392 #[doc = "fSAMPLING=fDTS/4, N=8"]
21393 pub const FDTS_DIV4_N8: Self = Self(0x07);
21394 #[doc = "fSAMPLING=fDTS/8, N=6"]
21395 pub const FDTS_DIV8_N6: Self = Self(0x08);
21396 #[doc = "fSAMPLING=fDTS/8, N=8"]
21397 pub const FDTS_DIV8_N8: Self = Self(0x09);
21398 #[doc = "fSAMPLING=fDTS/16, N=5"]
21399 pub const FDTS_DIV16_N5: Self = Self(0x0a);
21400 #[doc = "fSAMPLING=fDTS/16, N=6"]
21401 pub const FDTS_DIV16_N6: Self = Self(0x0b);
21402 #[doc = "fSAMPLING=fDTS/16, N=8"]
21403 pub const FDTS_DIV16_N8: Self = Self(0x0c);
21404 #[doc = "fSAMPLING=fDTS/32, N=5"]
21405 pub const FDTS_DIV32_N5: Self = Self(0x0d);
21406 #[doc = "fSAMPLING=fDTS/32, N=6"]
21407 pub const FDTS_DIV32_N6: Self = Self(0x0e);
21408 #[doc = "fSAMPLING=fDTS/32, N=8"]
21409 pub const FDTS_DIV32_N8: Self = Self(0x0f);
21410 }
21411 #[repr(transparent)]
21412 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21413 pub struct CcmrInputCcs(pub u8);
21414 impl CcmrInputCcs {
21415 #[doc = "CCx channel is configured as input, normal mapping: ICx mapped to TIx"]
21416 pub const TI4: Self = Self(0x01);
21417 #[doc = "CCx channel is configured as input, alternate mapping (switches 1 with 2, 3 with 4)"]
21418 pub const TI3: Self = Self(0x02);
21419 #[doc = "CCx channel is configured as input, ICx is mapped on TRC"]
21420 pub const TRC: Self = Self(0x03);
21421 }
21422 #[repr(transparent)]
21423 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21424 pub struct Mms(pub u8);
21425 impl Mms {
21426 #[doc = "The UG bit from the TIMx_EGR register is used as trigger output"]
21427 pub const RESET: Self = Self(0);
21428 #[doc = "The counter enable signal, CNT_EN, is used as trigger output"]
21429 pub const ENABLE: Self = Self(0x01);
21430 #[doc = "The update event is selected as trigger output"]
21431 pub const UPDATE: Self = Self(0x02);
21432 #[doc = "The trigger output send a positive pulse when the CC1IF flag it to be set, as soon as a capture or a compare match occurred"]
21433 pub const COMPAREPULSE: Self = Self(0x03);
21434 #[doc = "OC1REF signal is used as trigger output"]
21435 pub const COMPAREOC1: Self = Self(0x04);
21436 #[doc = "OC2REF signal is used as trigger output"]
21437 pub const COMPAREOC2: Self = Self(0x05);
21438 #[doc = "OC3REF signal is used as trigger output"]
21439 pub const COMPAREOC3: Self = Self(0x06);
21440 #[doc = "OC4REF signal is used as trigger output"]
21441 pub const COMPAREOC4: Self = Self(0x07);
21442 }
21443 #[repr(transparent)]
21444 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21445 pub struct CcmrOutputCcs(pub u8);
21446 impl CcmrOutputCcs {
21447 #[doc = "CCx channel is configured as output"]
21448 pub const OUTPUT: Self = Self(0);
21449 }
21450 #[repr(transparent)]
21451 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21452 pub struct Etp(pub u8);
21453 impl Etp {
21454 #[doc = "ETR is noninverted, active at high level or rising edge"]
21455 pub const NOTINVERTED: Self = Self(0);
21456 #[doc = "ETR is inverted, active at low level or falling edge"]
21457 pub const INVERTED: Self = Self(0x01);
21458 }
21459 #[repr(transparent)]
21460 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21461 pub struct Ossr(pub u8);
21462 impl Ossr {
21463 #[doc = "When inactive, OC/OCN outputs are disabled"]
21464 pub const DISABLED: Self = Self(0);
21465 #[doc = "When inactive, OC/OCN outputs are enabled with their inactive level"]
21466 pub const IDLELEVEL: Self = Self(0x01);
21467 }
21468 #[repr(transparent)]
21469 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21470 pub struct Etf(pub u8);
21471 impl Etf {
21472 #[doc = "No filter, sampling is done at fDTS"]
21473 pub const NOFILTER: Self = Self(0);
21474 #[doc = "fSAMPLING=fCK_INT, N=2"]
21475 pub const FCK_INT_N2: Self = Self(0x01);
21476 #[doc = "fSAMPLING=fCK_INT, N=4"]
21477 pub const FCK_INT_N4: Self = Self(0x02);
21478 #[doc = "fSAMPLING=fCK_INT, N=8"]
21479 pub const FCK_INT_N8: Self = Self(0x03);
21480 #[doc = "fSAMPLING=fDTS/2, N=6"]
21481 pub const FDTS_DIV2_N6: Self = Self(0x04);
21482 #[doc = "fSAMPLING=fDTS/2, N=8"]
21483 pub const FDTS_DIV2_N8: Self = Self(0x05);
21484 #[doc = "fSAMPLING=fDTS/4, N=6"]
21485 pub const FDTS_DIV4_N6: Self = Self(0x06);
21486 #[doc = "fSAMPLING=fDTS/4, N=8"]
21487 pub const FDTS_DIV4_N8: Self = Self(0x07);
21488 #[doc = "fSAMPLING=fDTS/8, N=6"]
21489 pub const FDTS_DIV8_N6: Self = Self(0x08);
21490 #[doc = "fSAMPLING=fDTS/8, N=8"]
21491 pub const FDTS_DIV8_N8: Self = Self(0x09);
21492 #[doc = "fSAMPLING=fDTS/16, N=5"]
21493 pub const FDTS_DIV16_N5: Self = Self(0x0a);
21494 #[doc = "fSAMPLING=fDTS/16, N=6"]
21495 pub const FDTS_DIV16_N6: Self = Self(0x0b);
21496 #[doc = "fSAMPLING=fDTS/16, N=8"]
21497 pub const FDTS_DIV16_N8: Self = Self(0x0c);
21498 #[doc = "fSAMPLING=fDTS/32, N=5"]
21499 pub const FDTS_DIV32_N5: Self = Self(0x0d);
21500 #[doc = "fSAMPLING=fDTS/32, N=6"]
21501 pub const FDTS_DIV32_N6: Self = Self(0x0e);
21502 #[doc = "fSAMPLING=fDTS/32, N=8"]
21503 pub const FDTS_DIV32_N8: Self = Self(0x0f);
21504 }
21505 #[repr(transparent)]
21506 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21507 pub struct Arpe(pub u8);
21508 impl Arpe {
21509 #[doc = "TIMx_APRR register is not buffered"]
21510 pub const DISABLED: Self = Self(0);
21511 #[doc = "TIMx_APRR register is buffered"]
21512 pub const ENABLED: Self = Self(0x01);
21513 }
21514 #[repr(transparent)]
21515 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21516 pub struct Ts(pub u8);
21517 impl Ts {
21518 #[doc = "Internal Trigger 0 (ITR0)"]
21519 pub const ITR0: Self = Self(0);
21520 #[doc = "Internal Trigger 1 (ITR1)"]
21521 pub const ITR1: Self = Self(0x01);
21522 #[doc = "Internal Trigger 2 (ITR2)"]
21523 pub const ITR2: Self = Self(0x02);
21524 #[doc = "TI1 Edge Detector (TI1F_ED)"]
21525 pub const TI1F_ED: Self = Self(0x04);
21526 #[doc = "Filtered Timer Input 1 (TI1FP1)"]
21527 pub const TI1FP1: Self = Self(0x05);
21528 #[doc = "Filtered Timer Input 2 (TI2FP2)"]
21529 pub const TI2FP2: Self = Self(0x06);
21530 #[doc = "External Trigger input (ETRF)"]
21531 pub const ETRF: Self = Self(0x07);
21532 }
21533 #[repr(transparent)]
21534 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21535 pub struct Tis(pub u8);
21536 impl Tis {
21537 #[doc = "The TIMx_CH1 pin is connected to TI1 input"]
21538 pub const NORMAL: Self = Self(0);
21539 #[doc = "The TIMx_CH1, CH2, CH3 pins are connected to TI1 input"]
21540 pub const XOR: Self = Self(0x01);
21541 }
21542 #[repr(transparent)]
21543 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21544 pub struct Ccds(pub u8);
21545 impl Ccds {
21546 #[doc = "CCx DMA request sent when CCx event occurs"]
21547 pub const ONCOMPARE: Self = Self(0);
21548 #[doc = "CCx DMA request sent when update event occurs"]
21549 pub const ONUPDATE: Self = Self(0x01);
21550 }
21551 #[repr(transparent)]
21552 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21553 pub struct Ece(pub u8);
21554 impl Ece {
21555 #[doc = "External clock mode 2 disabled"]
21556 pub const DISABLED: Self = Self(0);
21557 #[doc = "External clock mode 2 enabled. The counter is clocked by any active edge on the ETRF signal."]
21558 pub const ENABLED: Self = Self(0x01);
21559 }
21560 #[repr(transparent)]
21561 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21562 pub struct Ocm(pub u8);
21563 impl Ocm {
21564 #[doc = "The comparison between the output compare register TIMx_CCRy and the counter TIMx_CNT has no effect on the outputs"]
21565 pub const FROZEN: Self = Self(0);
21566 #[doc = "Set channel to active level on match. OCyREF signal is forced high when the counter matches the capture/compare register"]
21567 pub const ACTIVEONMATCH: Self = Self(0x01);
21568 #[doc = "Set channel to inactive level on match. OCyREF signal is forced low when the counter matches the capture/compare register"]
21569 pub const INACTIVEONMATCH: Self = Self(0x02);
21570 #[doc = "OCyREF toggles when TIMx_CNT=TIMx_CCRy"]
21571 pub const TOGGLE: Self = Self(0x03);
21572 #[doc = "OCyREF is forced low"]
21573 pub const FORCEINACTIVE: Self = Self(0x04);
21574 #[doc = "OCyREF is forced high"]
21575 pub const FORCEACTIVE: Self = Self(0x05);
21576 #[doc = "In upcounting, channel is active as long as TIMx_CNT<TIMx_CCRy else inactive. In downcounting, channel is inactive as long as TIMx_CNT>TIMx_CCRy else active"]
21577 pub const PWMMODE1: Self = Self(0x06);
21578 #[doc = "Inversely to PwmMode1"]
21579 pub const PWMMODE2: Self = Self(0x07);
21580 }
21581 #[repr(transparent)]
21582 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21583 pub struct Urs(pub u8);
21584 impl Urs {
21585 #[doc = "Any of counter overflow/underflow, setting UG, or update through slave mode, generates an update interrupt or DMA request"]
21586 pub const ANYEVENT: Self = Self(0);
21587 #[doc = "Only counter overflow/underflow generates an update interrupt or DMA request"]
21588 pub const COUNTERONLY: Self = Self(0x01);
21589 }
21590 #[repr(transparent)]
21591 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21592 pub struct Cms(pub u8);
21593 impl Cms {
21594 #[doc = "The counter counts up or down depending on the direction bit"]
21595 pub const EDGEALIGNED: Self = Self(0);
21596 #[doc = "The counter counts up and down alternatively. Output compare interrupt flags are set only when the counter is counting down."]
21597 pub const CENTERALIGNED1: Self = Self(0x01);
21598 #[doc = "The counter counts up and down alternatively. Output compare interrupt flags are set only when the counter is counting up."]
21599 pub const CENTERALIGNED2: Self = Self(0x02);
21600 #[doc = "The counter counts up and down alternatively. Output compare interrupt flags are set both when the counter is counting up or down."]
21601 pub const CENTERALIGNED3: Self = Self(0x03);
21602 }
21603 #[repr(transparent)]
21604 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21605 pub struct Dir(pub u8);
21606 impl Dir {
21607 #[doc = "Counter used as upcounter"]
21608 pub const UP: Self = Self(0);
21609 #[doc = "Counter used as downcounter"]
21610 pub const DOWN: Self = Self(0x01);
21611 }
21612 #[repr(transparent)]
21613 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21614 pub struct Etps(pub u8);
21615 impl Etps {
21616 #[doc = "Prescaler OFF"]
21617 pub const DIV1: Self = Self(0);
21618 #[doc = "ETRP frequency divided by 2"]
21619 pub const DIV2: Self = Self(0x01);
21620 #[doc = "ETRP frequency divided by 4"]
21621 pub const DIV4: Self = Self(0x02);
21622 #[doc = "ETRP frequency divided by 8"]
21623 pub const DIV8: Self = Self(0x03);
23515 } 21624 }
23516 } 21625 }
23517 pub mod regs { 21626 pub mod regs {
23518 use crate::generic::*; 21627 use crate::generic::*;
23519 #[doc = "FLASH control register for bank 1"] 21628 #[doc = "control register 1"]
23520 #[repr(transparent)] 21629 #[repr(transparent)]
23521 #[derive(Copy, Clone, Eq, PartialEq)] 21630 #[derive(Copy, Clone, Eq, PartialEq)]
23522 pub struct Cr(pub u32); 21631 pub struct Cr1Basic(pub u32);
23523 impl Cr { 21632 impl Cr1Basic {
23524 #[doc = "Bank 1 configuration lock bit"] 21633 #[doc = "Counter enable"]
23525 pub const fn lock(&self) -> bool { 21634 pub const fn cen(&self) -> bool {
23526 let val = (self.0 >> 0usize) & 0x01; 21635 let val = (self.0 >> 0usize) & 0x01;
23527 val != 0 21636 val != 0
23528 } 21637 }
23529 #[doc = "Bank 1 configuration lock bit"] 21638 #[doc = "Counter enable"]
23530 pub fn set_lock(&mut self, val: bool) { 21639 pub fn set_cen(&mut self, val: bool) {
23531 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 21640 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
23532 } 21641 }
23533 #[doc = "Bank 1 program enable bit"] 21642 #[doc = "Update disable"]
23534 pub const fn pg(&self) -> bool { 21643 pub const fn udis(&self) -> bool {
23535 let val = (self.0 >> 1usize) & 0x01; 21644 let val = (self.0 >> 1usize) & 0x01;
23536 val != 0 21645 val != 0
23537 } 21646 }
23538 #[doc = "Bank 1 program enable bit"] 21647 #[doc = "Update disable"]
23539 pub fn set_pg(&mut self, val: bool) { 21648 pub fn set_udis(&mut self, val: bool) {
23540 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 21649 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
23541 } 21650 }
23542 #[doc = "Bank 1 sector erase request"] 21651 #[doc = "Update request source"]
23543 pub const fn ser(&self) -> bool { 21652 pub const fn urs(&self) -> super::vals::Urs {
23544 let val = (self.0 >> 2usize) & 0x01; 21653 let val = (self.0 >> 2usize) & 0x01;
23545 val != 0 21654 super::vals::Urs(val as u8)
23546 } 21655 }
23547 #[doc = "Bank 1 sector erase request"] 21656 #[doc = "Update request source"]
23548 pub fn set_ser(&mut self, val: bool) { 21657 pub fn set_urs(&mut self, val: super::vals::Urs) {
23549 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 21658 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
23550 } 21659 }
23551 #[doc = "Bank 1 erase request"] 21660 #[doc = "One-pulse mode"]
23552 pub const fn ber(&self) -> bool { 21661 pub const fn opm(&self) -> super::vals::Opm {
23553 let val = (self.0 >> 3usize) & 0x01; 21662 let val = (self.0 >> 3usize) & 0x01;
23554 val != 0 21663 super::vals::Opm(val as u8)
23555 } 21664 }
23556 #[doc = "Bank 1 erase request"] 21665 #[doc = "One-pulse mode"]
23557 pub fn set_ber(&mut self, val: bool) { 21666 pub fn set_opm(&mut self, val: super::vals::Opm) {
23558 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize); 21667 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
23559 } 21668 }
23560 #[doc = "Bank 1 program size"] 21669 #[doc = "Auto-reload preload enable"]
23561 pub const fn psize(&self) -> u8 { 21670 pub const fn arpe(&self) -> super::vals::Arpe {
23562 let val = (self.0 >> 4usize) & 0x03; 21671 let val = (self.0 >> 7usize) & 0x01;
23563 val as u8 21672 super::vals::Arpe(val as u8)
23564 } 21673 }
23565 #[doc = "Bank 1 program size"] 21674 #[doc = "Auto-reload preload enable"]
23566 pub fn set_psize(&mut self, val: u8) { 21675 pub fn set_arpe(&mut self, val: super::vals::Arpe) {
23567 self.0 = (self.0 & !(0x03 << 4usize)) | (((val as u32) & 0x03) << 4usize); 21676 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
23568 } 21677 }
23569 #[doc = "Bank 1 write forcing control bit"] 21678 }
23570 pub const fn fw(&self) -> bool { 21679 impl Default for Cr1Basic {
23571 let val = (self.0 >> 6usize) & 0x01; 21680 fn default() -> Cr1Basic {
23572 val != 0 21681 Cr1Basic(0)
23573 } 21682 }
23574 #[doc = "Bank 1 write forcing control bit"] 21683 }
23575 pub fn set_fw(&mut self, val: bool) { 21684 #[doc = "slave mode control register"]
23576 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 21685 #[repr(transparent)]
21686 #[derive(Copy, Clone, Eq, PartialEq)]
21687 pub struct Smcr(pub u32);
21688 impl Smcr {
21689 #[doc = "Slave mode selection"]
21690 pub const fn sms(&self) -> super::vals::Sms {
21691 let val = (self.0 >> 0usize) & 0x07;
21692 super::vals::Sms(val as u8)
23577 } 21693 }
23578 #[doc = "Bank 1 bank or sector erase start control bit"] 21694 #[doc = "Slave mode selection"]
23579 pub const fn start(&self) -> bool { 21695 pub fn set_sms(&mut self, val: super::vals::Sms) {
21696 self.0 = (self.0 & !(0x07 << 0usize)) | (((val.0 as u32) & 0x07) << 0usize);
21697 }
21698 #[doc = "Trigger selection"]
21699 pub const fn ts(&self) -> super::vals::Ts {
21700 let val = (self.0 >> 4usize) & 0x07;
21701 super::vals::Ts(val as u8)
21702 }
21703 #[doc = "Trigger selection"]
21704 pub fn set_ts(&mut self, val: super::vals::Ts) {
21705 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize);
21706 }
21707 #[doc = "Master/Slave mode"]
21708 pub const fn msm(&self) -> super::vals::Msm {
23580 let val = (self.0 >> 7usize) & 0x01; 21709 let val = (self.0 >> 7usize) & 0x01;
23581 val != 0 21710 super::vals::Msm(val as u8)
23582 } 21711 }
23583 #[doc = "Bank 1 bank or sector erase start control bit"] 21712 #[doc = "Master/Slave mode"]
23584 pub fn set_start(&mut self, val: bool) { 21713 pub fn set_msm(&mut self, val: super::vals::Msm) {
23585 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 21714 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
23586 } 21715 }
23587 #[doc = "Bank 1 sector erase selection number"] 21716 #[doc = "External trigger filter"]
23588 pub const fn snb(&self) -> u8 { 21717 pub const fn etf(&self) -> super::vals::Etf {
23589 let val = (self.0 >> 8usize) & 0x07; 21718 let val = (self.0 >> 8usize) & 0x0f;
23590 val as u8 21719 super::vals::Etf(val as u8)
23591 } 21720 }
23592 #[doc = "Bank 1 sector erase selection number"] 21721 #[doc = "External trigger filter"]
23593 pub fn set_snb(&mut self, val: u8) { 21722 pub fn set_etf(&mut self, val: super::vals::Etf) {
23594 self.0 = (self.0 & !(0x07 << 8usize)) | (((val as u32) & 0x07) << 8usize); 21723 self.0 = (self.0 & !(0x0f << 8usize)) | (((val.0 as u32) & 0x0f) << 8usize);
23595 } 21724 }
23596 #[doc = "Bank 1 CRC control bit"] 21725 #[doc = "External trigger prescaler"]
23597 pub const fn crc_en(&self) -> bool { 21726 pub const fn etps(&self) -> super::vals::Etps {
21727 let val = (self.0 >> 12usize) & 0x03;
21728 super::vals::Etps(val as u8)
21729 }
21730 #[doc = "External trigger prescaler"]
21731 pub fn set_etps(&mut self, val: super::vals::Etps) {
21732 self.0 = (self.0 & !(0x03 << 12usize)) | (((val.0 as u32) & 0x03) << 12usize);
21733 }
21734 #[doc = "External clock enable"]
21735 pub const fn ece(&self) -> super::vals::Ece {
21736 let val = (self.0 >> 14usize) & 0x01;
21737 super::vals::Ece(val as u8)
21738 }
21739 #[doc = "External clock enable"]
21740 pub fn set_ece(&mut self, val: super::vals::Ece) {
21741 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
21742 }
21743 #[doc = "External trigger polarity"]
21744 pub const fn etp(&self) -> super::vals::Etp {
23598 let val = (self.0 >> 15usize) & 0x01; 21745 let val = (self.0 >> 15usize) & 0x01;
23599 val != 0 21746 super::vals::Etp(val as u8)
23600 } 21747 }
23601 #[doc = "Bank 1 CRC control bit"] 21748 #[doc = "External trigger polarity"]
23602 pub fn set_crc_en(&mut self, val: bool) { 21749 pub fn set_etp(&mut self, val: super::vals::Etp) {
23603 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize); 21750 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
23604 } 21751 }
23605 #[doc = "Bank 1 end-of-program interrupt control bit"] 21752 }
23606 pub const fn eopie(&self) -> bool { 21753 impl Default for Smcr {
23607 let val = (self.0 >> 16usize) & 0x01; 21754 fn default() -> Smcr {
23608 val != 0 21755 Smcr(0)
23609 } 21756 }
23610 #[doc = "Bank 1 end-of-program interrupt control bit"] 21757 }
23611 pub fn set_eopie(&mut self, val: bool) { 21758 #[doc = "DMA address for full transfer"]
23612 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 21759 #[repr(transparent)]
21760 #[derive(Copy, Clone, Eq, PartialEq)]
21761 pub struct Dmar(pub u32);
21762 impl Dmar {
21763 #[doc = "DMA register for burst accesses"]
21764 pub const fn dmab(&self) -> u16 {
21765 let val = (self.0 >> 0usize) & 0xffff;
21766 val as u16
23613 } 21767 }
23614 #[doc = "Bank 1 write protection error interrupt enable bit"] 21768 #[doc = "DMA register for burst accesses"]
23615 pub const fn wrperrie(&self) -> bool { 21769 pub fn set_dmab(&mut self, val: u16) {
23616 let val = (self.0 >> 17usize) & 0x01; 21770 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
23617 val != 0
23618 } 21771 }
23619 #[doc = "Bank 1 write protection error interrupt enable bit"] 21772 }
23620 pub fn set_wrperrie(&mut self, val: bool) { 21773 impl Default for Dmar {
23621 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize); 21774 fn default() -> Dmar {
21775 Dmar(0)
23622 } 21776 }
23623 #[doc = "Bank 1 programming sequence error interrupt enable bit"] 21777 }
23624 pub const fn pgserrie(&self) -> bool { 21778 #[doc = "event generation register"]
23625 let val = (self.0 >> 18usize) & 0x01; 21779 #[repr(transparent)]
21780 #[derive(Copy, Clone, Eq, PartialEq)]
21781 pub struct EgrGp(pub u32);
21782 impl EgrGp {
21783 #[doc = "Update generation"]
21784 pub const fn ug(&self) -> bool {
21785 let val = (self.0 >> 0usize) & 0x01;
23626 val != 0 21786 val != 0
23627 } 21787 }
23628 #[doc = "Bank 1 programming sequence error interrupt enable bit"] 21788 #[doc = "Update generation"]
23629 pub fn set_pgserrie(&mut self, val: bool) { 21789 pub fn set_ug(&mut self, val: bool) {
23630 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize); 21790 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
23631 } 21791 }
23632 #[doc = "Bank 1 strobe error interrupt enable bit"] 21792 #[doc = "Capture/compare 1 generation"]
23633 pub const fn strberrie(&self) -> bool { 21793 pub fn ccg(&self, n: usize) -> bool {
23634 let val = (self.0 >> 19usize) & 0x01; 21794 assert!(n < 4usize);
21795 let offs = 1usize + n * 1usize;
21796 let val = (self.0 >> offs) & 0x01;
23635 val != 0 21797 val != 0
23636 } 21798 }
23637 #[doc = "Bank 1 strobe error interrupt enable bit"] 21799 #[doc = "Capture/compare 1 generation"]
23638 pub fn set_strberrie(&mut self, val: bool) { 21800 pub fn set_ccg(&mut self, n: usize, val: bool) {
23639 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize); 21801 assert!(n < 4usize);
21802 let offs = 1usize + n * 1usize;
21803 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
23640 } 21804 }
23641 #[doc = "Bank 1 inconsistency error interrupt enable bit"] 21805 #[doc = "Capture/Compare control update generation"]
23642 pub const fn incerrie(&self) -> bool { 21806 pub const fn comg(&self) -> bool {
23643 let val = (self.0 >> 21usize) & 0x01; 21807 let val = (self.0 >> 5usize) & 0x01;
23644 val != 0 21808 val != 0
23645 } 21809 }
23646 #[doc = "Bank 1 inconsistency error interrupt enable bit"] 21810 #[doc = "Capture/Compare control update generation"]
23647 pub fn set_incerrie(&mut self, val: bool) { 21811 pub fn set_comg(&mut self, val: bool) {
23648 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize); 21812 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
23649 } 21813 }
23650 #[doc = "Bank 1 write/erase error interrupt enable bit"] 21814 #[doc = "Trigger generation"]
23651 pub const fn operrie(&self) -> bool { 21815 pub const fn tg(&self) -> bool {
23652 let val = (self.0 >> 22usize) & 0x01; 21816 let val = (self.0 >> 6usize) & 0x01;
23653 val != 0 21817 val != 0
23654 } 21818 }
23655 #[doc = "Bank 1 write/erase error interrupt enable bit"] 21819 #[doc = "Trigger generation"]
23656 pub fn set_operrie(&mut self, val: bool) { 21820 pub fn set_tg(&mut self, val: bool) {
23657 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize); 21821 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
23658 } 21822 }
23659 #[doc = "Bank 1 read protection error interrupt enable bit"] 21823 #[doc = "Break generation"]
23660 pub const fn rdperrie(&self) -> bool { 21824 pub const fn bg(&self) -> bool {
23661 let val = (self.0 >> 23usize) & 0x01; 21825 let val = (self.0 >> 7usize) & 0x01;
23662 val != 0 21826 val != 0
23663 } 21827 }
23664 #[doc = "Bank 1 read protection error interrupt enable bit"] 21828 #[doc = "Break generation"]
23665 pub fn set_rdperrie(&mut self, val: bool) { 21829 pub fn set_bg(&mut self, val: bool) {
23666 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize); 21830 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
23667 } 21831 }
23668 #[doc = "Bank 1 secure error interrupt enable bit"] 21832 }
23669 pub const fn rdserrie(&self) -> bool { 21833 impl Default for EgrGp {
23670 let val = (self.0 >> 24usize) & 0x01; 21834 fn default() -> EgrGp {
21835 EgrGp(0)
21836 }
21837 }
21838 #[doc = "counter"]
21839 #[repr(transparent)]
21840 #[derive(Copy, Clone, Eq, PartialEq)]
21841 pub struct Cnt16(pub u32);
21842 impl Cnt16 {
21843 #[doc = "counter value"]
21844 pub const fn cnt(&self) -> u16 {
21845 let val = (self.0 >> 0usize) & 0xffff;
21846 val as u16
21847 }
21848 #[doc = "counter value"]
21849 pub fn set_cnt(&mut self, val: u16) {
21850 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
21851 }
21852 }
21853 impl Default for Cnt16 {
21854 fn default() -> Cnt16 {
21855 Cnt16(0)
21856 }
21857 }
21858 #[doc = "capture/compare enable register"]
21859 #[repr(transparent)]
21860 #[derive(Copy, Clone, Eq, PartialEq)]
21861 pub struct CcerAdv(pub u32);
21862 impl CcerAdv {
21863 #[doc = "Capture/Compare 1 output enable"]
21864 pub fn cce(&self, n: usize) -> bool {
21865 assert!(n < 4usize);
21866 let offs = 0usize + n * 4usize;
21867 let val = (self.0 >> offs) & 0x01;
23671 val != 0 21868 val != 0
23672 } 21869 }
23673 #[doc = "Bank 1 secure error interrupt enable bit"] 21870 #[doc = "Capture/Compare 1 output enable"]
23674 pub fn set_rdserrie(&mut self, val: bool) { 21871 pub fn set_cce(&mut self, n: usize, val: bool) {
23675 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize); 21872 assert!(n < 4usize);
21873 let offs = 0usize + n * 4usize;
21874 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
23676 } 21875 }
23677 #[doc = "Bank 1 ECC single correction error interrupt enable bit"] 21876 #[doc = "Capture/Compare 1 output Polarity"]
23678 pub const fn sneccerrie(&self) -> bool { 21877 pub fn ccp(&self, n: usize) -> bool {
23679 let val = (self.0 >> 25usize) & 0x01; 21878 assert!(n < 4usize);
21879 let offs = 1usize + n * 4usize;
21880 let val = (self.0 >> offs) & 0x01;
23680 val != 0 21881 val != 0
23681 } 21882 }
23682 #[doc = "Bank 1 ECC single correction error interrupt enable bit"] 21883 #[doc = "Capture/Compare 1 output Polarity"]
23683 pub fn set_sneccerrie(&mut self, val: bool) { 21884 pub fn set_ccp(&mut self, n: usize, val: bool) {
23684 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize); 21885 assert!(n < 4usize);
21886 let offs = 1usize + n * 4usize;
21887 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
23685 } 21888 }
23686 #[doc = "Bank 1 ECC double detection error interrupt enable bit"] 21889 #[doc = "Capture/Compare 1 complementary output enable"]
23687 pub const fn dbeccerrie(&self) -> bool { 21890 pub fn ccne(&self, n: usize) -> bool {
23688 let val = (self.0 >> 26usize) & 0x01; 21891 assert!(n < 4usize);
21892 let offs = 2usize + n * 4usize;
21893 let val = (self.0 >> offs) & 0x01;
23689 val != 0 21894 val != 0
23690 } 21895 }
23691 #[doc = "Bank 1 ECC double detection error interrupt enable bit"] 21896 #[doc = "Capture/Compare 1 complementary output enable"]
23692 pub fn set_dbeccerrie(&mut self, val: bool) { 21897 pub fn set_ccne(&mut self, n: usize, val: bool) {
23693 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize); 21898 assert!(n < 4usize);
21899 let offs = 2usize + n * 4usize;
21900 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
23694 } 21901 }
23695 #[doc = "Bank 1 end of CRC calculation interrupt enable bit"] 21902 #[doc = "Capture/Compare 1 output Polarity"]
23696 pub const fn crcendie(&self) -> bool { 21903 pub fn ccnp(&self, n: usize) -> bool {
23697 let val = (self.0 >> 27usize) & 0x01; 21904 assert!(n < 4usize);
21905 let offs = 3usize + n * 4usize;
21906 let val = (self.0 >> offs) & 0x01;
23698 val != 0 21907 val != 0
23699 } 21908 }
23700 #[doc = "Bank 1 end of CRC calculation interrupt enable bit"] 21909 #[doc = "Capture/Compare 1 output Polarity"]
23701 pub fn set_crcendie(&mut self, val: bool) { 21910 pub fn set_ccnp(&mut self, n: usize, val: bool) {
23702 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize); 21911 assert!(n < 4usize);
21912 let offs = 3usize + n * 4usize;
21913 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
23703 } 21914 }
23704 } 21915 }
23705 impl Default for Cr { 21916 impl Default for CcerAdv {
23706 fn default() -> Cr { 21917 fn default() -> CcerAdv {
23707 Cr(0) 21918 CcerAdv(0)
23708 } 21919 }
23709 } 21920 }
23710 #[doc = "FLASH CRC control register for bank 1"] 21921 #[doc = "capture/compare mode register 2 (output mode)"]
23711 #[repr(transparent)] 21922 #[repr(transparent)]
23712 #[derive(Copy, Clone, Eq, PartialEq)] 21923 #[derive(Copy, Clone, Eq, PartialEq)]
23713 pub struct Crccr(pub u32); 21924 pub struct CcmrOutput(pub u32);
23714 impl Crccr { 21925 impl CcmrOutput {
23715 #[doc = "Bank 1 CRC sector number"] 21926 #[doc = "Capture/Compare 3 selection"]
23716 pub const fn crc_sect(&self) -> u8 { 21927 pub fn ccs(&self, n: usize) -> super::vals::CcmrOutputCcs {
23717 let val = (self.0 >> 0usize) & 0x07; 21928 assert!(n < 2usize);
23718 val as u8 21929 let offs = 0usize + n * 8usize;
21930 let val = (self.0 >> offs) & 0x03;
21931 super::vals::CcmrOutputCcs(val as u8)
23719 } 21932 }
23720 #[doc = "Bank 1 CRC sector number"] 21933 #[doc = "Capture/Compare 3 selection"]
23721 pub fn set_crc_sect(&mut self, val: u8) { 21934 pub fn set_ccs(&mut self, n: usize, val: super::vals::CcmrOutputCcs) {
23722 self.0 = (self.0 & !(0x07 << 0usize)) | (((val as u32) & 0x07) << 0usize); 21935 assert!(n < 2usize);
21936 let offs = 0usize + n * 8usize;
21937 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
23723 } 21938 }
23724 #[doc = "Bank 1 CRC select bit"] 21939 #[doc = "Output compare 3 fast enable"]
23725 pub const fn all_bank(&self) -> bool { 21940 pub fn ocfe(&self, n: usize) -> bool {
23726 let val = (self.0 >> 7usize) & 0x01; 21941 assert!(n < 2usize);
21942 let offs = 2usize + n * 8usize;
21943 let val = (self.0 >> offs) & 0x01;
23727 val != 0 21944 val != 0
23728 } 21945 }
23729 #[doc = "Bank 1 CRC select bit"] 21946 #[doc = "Output compare 3 fast enable"]
23730 pub fn set_all_bank(&mut self, val: bool) { 21947 pub fn set_ocfe(&mut self, n: usize, val: bool) {
23731 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 21948 assert!(n < 2usize);
21949 let offs = 2usize + n * 8usize;
21950 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
23732 } 21951 }
23733 #[doc = "Bank 1 CRC sector mode select bit"] 21952 #[doc = "Output compare 3 preload enable"]
23734 pub const fn crc_by_sect(&self) -> bool { 21953 pub fn ocpe(&self, n: usize) -> super::vals::Ocpe {
23735 let val = (self.0 >> 8usize) & 0x01; 21954 assert!(n < 2usize);
21955 let offs = 3usize + n * 8usize;
21956 let val = (self.0 >> offs) & 0x01;
21957 super::vals::Ocpe(val as u8)
21958 }
21959 #[doc = "Output compare 3 preload enable"]
21960 pub fn set_ocpe(&mut self, n: usize, val: super::vals::Ocpe) {
21961 assert!(n < 2usize);
21962 let offs = 3usize + n * 8usize;
21963 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
21964 }
21965 #[doc = "Output compare 3 mode"]
21966 pub fn ocm(&self, n: usize) -> super::vals::Ocm {
21967 assert!(n < 2usize);
21968 let offs = 4usize + n * 8usize;
21969 let val = (self.0 >> offs) & 0x07;
21970 super::vals::Ocm(val as u8)
21971 }
21972 #[doc = "Output compare 3 mode"]
21973 pub fn set_ocm(&mut self, n: usize, val: super::vals::Ocm) {
21974 assert!(n < 2usize);
21975 let offs = 4usize + n * 8usize;
21976 self.0 = (self.0 & !(0x07 << offs)) | (((val.0 as u32) & 0x07) << offs);
21977 }
21978 #[doc = "Output compare 3 clear enable"]
21979 pub fn occe(&self, n: usize) -> bool {
21980 assert!(n < 2usize);
21981 let offs = 7usize + n * 8usize;
21982 let val = (self.0 >> offs) & 0x01;
23736 val != 0 21983 val != 0
23737 } 21984 }
23738 #[doc = "Bank 1 CRC sector mode select bit"] 21985 #[doc = "Output compare 3 clear enable"]
23739 pub fn set_crc_by_sect(&mut self, val: bool) { 21986 pub fn set_occe(&mut self, n: usize, val: bool) {
23740 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 21987 assert!(n < 2usize);
21988 let offs = 7usize + n * 8usize;
21989 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
23741 } 21990 }
23742 #[doc = "Bank 1 CRC sector select bit"] 21991 }
23743 pub const fn add_sect(&self) -> bool { 21992 impl Default for CcmrOutput {
23744 let val = (self.0 >> 9usize) & 0x01; 21993 fn default() -> CcmrOutput {
21994 CcmrOutput(0)
21995 }
21996 }
21997 #[doc = "status register"]
21998 #[repr(transparent)]
21999 #[derive(Copy, Clone, Eq, PartialEq)]
22000 pub struct SrGp(pub u32);
22001 impl SrGp {
22002 #[doc = "Update interrupt flag"]
22003 pub const fn uif(&self) -> bool {
22004 let val = (self.0 >> 0usize) & 0x01;
23745 val != 0 22005 val != 0
23746 } 22006 }
23747 #[doc = "Bank 1 CRC sector select bit"] 22007 #[doc = "Update interrupt flag"]
23748 pub fn set_add_sect(&mut self, val: bool) { 22008 pub fn set_uif(&mut self, val: bool) {
23749 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 22009 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
23750 } 22010 }
23751 #[doc = "Bank 1 CRC sector list clear bit"] 22011 #[doc = "Capture/compare 1 interrupt flag"]
23752 pub const fn clean_sect(&self) -> bool { 22012 pub fn ccif(&self, n: usize) -> bool {
23753 let val = (self.0 >> 10usize) & 0x01; 22013 assert!(n < 4usize);
22014 let offs = 1usize + n * 1usize;
22015 let val = (self.0 >> offs) & 0x01;
23754 val != 0 22016 val != 0
23755 } 22017 }
23756 #[doc = "Bank 1 CRC sector list clear bit"] 22018 #[doc = "Capture/compare 1 interrupt flag"]
23757 pub fn set_clean_sect(&mut self, val: bool) { 22019 pub fn set_ccif(&mut self, n: usize, val: bool) {
23758 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize); 22020 assert!(n < 4usize);
22021 let offs = 1usize + n * 1usize;
22022 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
23759 } 22023 }
23760 #[doc = "Bank 1 CRC start bit"] 22024 #[doc = "COM interrupt flag"]
23761 pub const fn start_crc(&self) -> bool { 22025 pub const fn comif(&self) -> bool {
23762 let val = (self.0 >> 16usize) & 0x01; 22026 let val = (self.0 >> 5usize) & 0x01;
23763 val != 0 22027 val != 0
23764 } 22028 }
23765 #[doc = "Bank 1 CRC start bit"] 22029 #[doc = "COM interrupt flag"]
23766 pub fn set_start_crc(&mut self, val: bool) { 22030 pub fn set_comif(&mut self, val: bool) {
23767 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 22031 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
23768 } 22032 }
23769 #[doc = "Bank 1 CRC clear bit"] 22033 #[doc = "Trigger interrupt flag"]
23770 pub const fn clean_crc(&self) -> bool { 22034 pub const fn tif(&self) -> bool {
23771 let val = (self.0 >> 17usize) & 0x01; 22035 let val = (self.0 >> 6usize) & 0x01;
23772 val != 0 22036 val != 0
23773 } 22037 }
23774 #[doc = "Bank 1 CRC clear bit"] 22038 #[doc = "Trigger interrupt flag"]
23775 pub fn set_clean_crc(&mut self, val: bool) { 22039 pub fn set_tif(&mut self, val: bool) {
23776 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize); 22040 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
23777 } 22041 }
23778 #[doc = "Bank 1 CRC burst size"] 22042 #[doc = "Break interrupt flag"]
23779 pub const fn crc_burst(&self) -> u8 { 22043 pub const fn bif(&self) -> bool {
23780 let val = (self.0 >> 20usize) & 0x03; 22044 let val = (self.0 >> 7usize) & 0x01;
23781 val as u8 22045 val != 0
23782 } 22046 }
23783 #[doc = "Bank 1 CRC burst size"] 22047 #[doc = "Break interrupt flag"]
23784 pub fn set_crc_burst(&mut self, val: u8) { 22048 pub fn set_bif(&mut self, val: bool) {
23785 self.0 = (self.0 & !(0x03 << 20usize)) | (((val as u32) & 0x03) << 20usize); 22049 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
22050 }
22051 #[doc = "Capture/Compare 1 overcapture flag"]
22052 pub fn ccof(&self, n: usize) -> bool {
22053 assert!(n < 4usize);
22054 let offs = 9usize + n * 1usize;
22055 let val = (self.0 >> offs) & 0x01;
22056 val != 0
22057 }
22058 #[doc = "Capture/Compare 1 overcapture flag"]
22059 pub fn set_ccof(&mut self, n: usize, val: bool) {
22060 assert!(n < 4usize);
22061 let offs = 9usize + n * 1usize;
22062 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
23786 } 22063 }
23787 } 22064 }
23788 impl Default for Crccr { 22065 impl Default for SrGp {
23789 fn default() -> Crccr { 22066 fn default() -> SrGp {
23790 Crccr(0) 22067 SrGp(0)
23791 } 22068 }
23792 } 22069 }
23793 #[doc = "FLASH CRC data register"] 22070 #[doc = "event generation register"]
23794 #[repr(transparent)] 22071 #[repr(transparent)]
23795 #[derive(Copy, Clone, Eq, PartialEq)] 22072 #[derive(Copy, Clone, Eq, PartialEq)]
23796 pub struct Crcdatar(pub u32); 22073 pub struct EgrAdv(pub u32);
23797 impl Crcdatar { 22074 impl EgrAdv {
23798 #[doc = "CRC result"] 22075 #[doc = "Update generation"]
23799 pub const fn crc_data(&self) -> u32 { 22076 pub const fn ug(&self) -> bool {
23800 let val = (self.0 >> 0usize) & 0xffff_ffff; 22077 let val = (self.0 >> 0usize) & 0x01;
23801 val as u32 22078 val != 0
23802 } 22079 }
23803 #[doc = "CRC result"] 22080 #[doc = "Update generation"]
23804 pub fn set_crc_data(&mut self, val: u32) { 22081 pub fn set_ug(&mut self, val: bool) {
23805 self.0 = 22082 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
23806 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize); 22083 }
22084 #[doc = "Capture/compare 1 generation"]
22085 pub fn ccg(&self, n: usize) -> bool {
22086 assert!(n < 4usize);
22087 let offs = 1usize + n * 1usize;
22088 let val = (self.0 >> offs) & 0x01;
22089 val != 0
22090 }
22091 #[doc = "Capture/compare 1 generation"]
22092 pub fn set_ccg(&mut self, n: usize, val: bool) {
22093 assert!(n < 4usize);
22094 let offs = 1usize + n * 1usize;
22095 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
22096 }
22097 #[doc = "Capture/Compare control update generation"]
22098 pub const fn comg(&self) -> bool {
22099 let val = (self.0 >> 5usize) & 0x01;
22100 val != 0
22101 }
22102 #[doc = "Capture/Compare control update generation"]
22103 pub fn set_comg(&mut self, val: bool) {
22104 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
22105 }
22106 #[doc = "Trigger generation"]
22107 pub const fn tg(&self) -> bool {
22108 let val = (self.0 >> 6usize) & 0x01;
22109 val != 0
22110 }
22111 #[doc = "Trigger generation"]
22112 pub fn set_tg(&mut self, val: bool) {
22113 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
22114 }
22115 #[doc = "Break generation"]
22116 pub const fn bg(&self) -> bool {
22117 let val = (self.0 >> 7usize) & 0x01;
22118 val != 0
22119 }
22120 #[doc = "Break generation"]
22121 pub fn set_bg(&mut self, val: bool) {
22122 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
23807 } 22123 }
23808 } 22124 }
23809 impl Default for Crcdatar { 22125 impl Default for EgrAdv {
23810 fn default() -> Crcdatar { 22126 fn default() -> EgrAdv {
23811 Crcdatar(0) 22127 EgrAdv(0)
23812 } 22128 }
23813 } 22129 }
23814 #[doc = "FLASH CRC end address register for bank 1"] 22130 #[doc = "capture/compare register 1"]
23815 #[repr(transparent)] 22131 #[repr(transparent)]
23816 #[derive(Copy, Clone, Eq, PartialEq)] 22132 #[derive(Copy, Clone, Eq, PartialEq)]
23817 pub struct Crceaddr(pub u32); 22133 pub struct Ccr32(pub u32);
23818 impl Crceaddr { 22134 impl Ccr32 {
23819 #[doc = "CRC end address on bank 1"] 22135 #[doc = "Capture/Compare 1 value"]
23820 pub const fn crc_end_addr(&self) -> u32 { 22136 pub const fn ccr(&self) -> u32 {
23821 let val = (self.0 >> 0usize) & 0xffff_ffff; 22137 let val = (self.0 >> 0usize) & 0xffff_ffff;
23822 val as u32 22138 val as u32
23823 } 22139 }
23824 #[doc = "CRC end address on bank 1"] 22140 #[doc = "Capture/Compare 1 value"]
23825 pub fn set_crc_end_addr(&mut self, val: u32) { 22141 pub fn set_ccr(&mut self, val: u32) {
23826 self.0 = 22142 self.0 =
23827 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize); 22143 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
23828 } 22144 }
23829 } 22145 }
23830 impl Default for Crceaddr { 22146 impl Default for Ccr32 {
23831 fn default() -> Crceaddr { 22147 fn default() -> Ccr32 {
23832 Crceaddr(0) 22148 Ccr32(0)
23833 } 22149 }
23834 } 22150 }
23835 #[doc = "FLASH option key register"] 22151 #[doc = "capture/compare register 1"]
23836 #[repr(transparent)] 22152 #[repr(transparent)]
23837 #[derive(Copy, Clone, Eq, PartialEq)] 22153 #[derive(Copy, Clone, Eq, PartialEq)]
23838 pub struct Optkeyr(pub u32); 22154 pub struct Ccr16(pub u32);
23839 impl Optkeyr { 22155 impl Ccr16 {
23840 #[doc = "Unlock key option bytes"] 22156 #[doc = "Capture/Compare 1 value"]
23841 pub const fn optkeyr(&self) -> u32 { 22157 pub const fn ccr(&self) -> u16 {
23842 let val = (self.0 >> 0usize) & 0xffff_ffff; 22158 let val = (self.0 >> 0usize) & 0xffff;
23843 val as u32 22159 val as u16
23844 } 22160 }
23845 #[doc = "Unlock key option bytes"] 22161 #[doc = "Capture/Compare 1 value"]
23846 pub fn set_optkeyr(&mut self, val: u32) { 22162 pub fn set_ccr(&mut self, val: u16) {
23847 self.0 = 22163 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
23848 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
23849 } 22164 }
23850 } 22165 }
23851 impl Default for Optkeyr { 22166 impl Default for Ccr16 {
23852 fn default() -> Optkeyr { 22167 fn default() -> Ccr16 {
23853 Optkeyr(0) 22168 Ccr16(0)
23854 } 22169 }
23855 } 22170 }
23856 #[doc = "FLASH clear control register for bank 1"] 22171 #[doc = "break and dead-time register"]
23857 #[repr(transparent)] 22172 #[repr(transparent)]
23858 #[derive(Copy, Clone, Eq, PartialEq)] 22173 #[derive(Copy, Clone, Eq, PartialEq)]
23859 pub struct Ccr(pub u32); 22174 pub struct Bdtr(pub u32);
23860 impl Ccr { 22175 impl Bdtr {
23861 #[doc = "Bank 1 EOP1 flag clear bit"] 22176 #[doc = "Dead-time generator setup"]
23862 pub const fn clr_eop(&self) -> bool { 22177 pub const fn dtg(&self) -> u8 {
23863 let val = (self.0 >> 16usize) & 0x01; 22178 let val = (self.0 >> 0usize) & 0xff;
23864 val != 0 22179 val as u8
23865 } 22180 }
23866 #[doc = "Bank 1 EOP1 flag clear bit"] 22181 #[doc = "Dead-time generator setup"]
23867 pub fn set_clr_eop(&mut self, val: bool) { 22182 pub fn set_dtg(&mut self, val: u8) {
23868 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 22183 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
23869 } 22184 }
23870 #[doc = "Bank 1 WRPERR1 flag clear bit"] 22185 #[doc = "Lock configuration"]
23871 pub const fn clr_wrperr(&self) -> bool { 22186 pub const fn lock(&self) -> u8 {
23872 let val = (self.0 >> 17usize) & 0x01; 22187 let val = (self.0 >> 8usize) & 0x03;
23873 val != 0 22188 val as u8
23874 } 22189 }
23875 #[doc = "Bank 1 WRPERR1 flag clear bit"] 22190 #[doc = "Lock configuration"]
23876 pub fn set_clr_wrperr(&mut self, val: bool) { 22191 pub fn set_lock(&mut self, val: u8) {
23877 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize); 22192 self.0 = (self.0 & !(0x03 << 8usize)) | (((val as u32) & 0x03) << 8usize);
23878 } 22193 }
23879 #[doc = "Bank 1 PGSERR1 flag clear bi"] 22194 #[doc = "Off-state selection for Idle mode"]
23880 pub const fn clr_pgserr(&self) -> bool { 22195 pub const fn ossi(&self) -> super::vals::Ossi {
23881 let val = (self.0 >> 18usize) & 0x01; 22196 let val = (self.0 >> 10usize) & 0x01;
23882 val != 0 22197 super::vals::Ossi(val as u8)
23883 } 22198 }
23884 #[doc = "Bank 1 PGSERR1 flag clear bi"] 22199 #[doc = "Off-state selection for Idle mode"]
23885 pub fn set_clr_pgserr(&mut self, val: bool) { 22200 pub fn set_ossi(&mut self, val: super::vals::Ossi) {
23886 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize); 22201 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
23887 } 22202 }
23888 #[doc = "Bank 1 STRBERR1 flag clear bit"] 22203 #[doc = "Off-state selection for Run mode"]
23889 pub const fn clr_strberr(&self) -> bool { 22204 pub const fn ossr(&self) -> super::vals::Ossr {
23890 let val = (self.0 >> 19usize) & 0x01; 22205 let val = (self.0 >> 11usize) & 0x01;
23891 val != 0 22206 super::vals::Ossr(val as u8)
23892 } 22207 }
23893 #[doc = "Bank 1 STRBERR1 flag clear bit"] 22208 #[doc = "Off-state selection for Run mode"]
23894 pub fn set_clr_strberr(&mut self, val: bool) { 22209 pub fn set_ossr(&mut self, val: super::vals::Ossr) {
23895 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize); 22210 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
23896 } 22211 }
23897 #[doc = "Bank 1 INCERR1 flag clear bit"] 22212 #[doc = "Break enable"]
23898 pub const fn clr_incerr(&self) -> bool { 22213 pub const fn bke(&self) -> bool {
23899 let val = (self.0 >> 21usize) & 0x01; 22214 let val = (self.0 >> 12usize) & 0x01;
23900 val != 0 22215 val != 0
23901 } 22216 }
23902 #[doc = "Bank 1 INCERR1 flag clear bit"] 22217 #[doc = "Break enable"]
23903 pub fn set_clr_incerr(&mut self, val: bool) { 22218 pub fn set_bke(&mut self, val: bool) {
23904 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize); 22219 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
23905 } 22220 }
23906 #[doc = "Bank 1 OPERR1 flag clear bit"] 22221 #[doc = "Break polarity"]
23907 pub const fn clr_operr(&self) -> bool { 22222 pub const fn bkp(&self) -> bool {
23908 let val = (self.0 >> 22usize) & 0x01; 22223 let val = (self.0 >> 13usize) & 0x01;
23909 val != 0 22224 val != 0
23910 } 22225 }
23911 #[doc = "Bank 1 OPERR1 flag clear bit"] 22226 #[doc = "Break polarity"]
23912 pub fn set_clr_operr(&mut self, val: bool) { 22227 pub fn set_bkp(&mut self, val: bool) {
23913 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize); 22228 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
23914 } 22229 }
23915 #[doc = "Bank 1 RDPERR1 flag clear bit"] 22230 #[doc = "Automatic output enable"]
23916 pub const fn clr_rdperr(&self) -> bool { 22231 pub const fn aoe(&self) -> bool {
23917 let val = (self.0 >> 23usize) & 0x01; 22232 let val = (self.0 >> 14usize) & 0x01;
23918 val != 0 22233 val != 0
23919 } 22234 }
23920 #[doc = "Bank 1 RDPERR1 flag clear bit"] 22235 #[doc = "Automatic output enable"]
23921 pub fn set_clr_rdperr(&mut self, val: bool) { 22236 pub fn set_aoe(&mut self, val: bool) {
23922 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize); 22237 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
23923 } 22238 }
23924 #[doc = "Bank 1 RDSERR1 flag clear bit"] 22239 #[doc = "Main output enable"]
23925 pub const fn clr_rdserr(&self) -> bool { 22240 pub const fn moe(&self) -> bool {
23926 let val = (self.0 >> 24usize) & 0x01; 22241 let val = (self.0 >> 15usize) & 0x01;
23927 val != 0 22242 val != 0
23928 } 22243 }
23929 #[doc = "Bank 1 RDSERR1 flag clear bit"] 22244 #[doc = "Main output enable"]
23930 pub fn set_clr_rdserr(&mut self, val: bool) { 22245 pub fn set_moe(&mut self, val: bool) {
23931 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize); 22246 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize);
23932 } 22247 }
23933 #[doc = "Bank 1 SNECCERR1 flag clear bit"] 22248 }
23934 pub const fn clr_sneccerr(&self) -> bool { 22249 impl Default for Bdtr {
23935 let val = (self.0 >> 25usize) & 0x01; 22250 fn default() -> Bdtr {
23936 val != 0 22251 Bdtr(0)
23937 } 22252 }
23938 #[doc = "Bank 1 SNECCERR1 flag clear bit"] 22253 }
23939 pub fn set_clr_sneccerr(&mut self, val: bool) { 22254 #[doc = "control register 2"]
23940 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize); 22255 #[repr(transparent)]
22256 #[derive(Copy, Clone, Eq, PartialEq)]
22257 pub struct Cr2Gp(pub u32);
22258 impl Cr2Gp {
22259 #[doc = "Capture/compare DMA selection"]
22260 pub const fn ccds(&self) -> super::vals::Ccds {
22261 let val = (self.0 >> 3usize) & 0x01;
22262 super::vals::Ccds(val as u8)
23941 } 22263 }
23942 #[doc = "Bank 1 DBECCERR1 flag clear bit"] 22264 #[doc = "Capture/compare DMA selection"]
23943 pub const fn clr_dbeccerr(&self) -> bool { 22265 pub fn set_ccds(&mut self, val: super::vals::Ccds) {
23944 let val = (self.0 >> 26usize) & 0x01; 22266 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
23945 val != 0
23946 } 22267 }
23947 #[doc = "Bank 1 DBECCERR1 flag clear bit"] 22268 #[doc = "Master mode selection"]
23948 pub fn set_clr_dbeccerr(&mut self, val: bool) { 22269 pub const fn mms(&self) -> super::vals::Mms {
23949 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize); 22270 let val = (self.0 >> 4usize) & 0x07;
22271 super::vals::Mms(val as u8)
23950 } 22272 }
23951 #[doc = "Bank 1 CRCEND1 flag clear bit"] 22273 #[doc = "Master mode selection"]
23952 pub const fn clr_crcend(&self) -> bool { 22274 pub fn set_mms(&mut self, val: super::vals::Mms) {
23953 let val = (self.0 >> 27usize) & 0x01; 22275 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize);
23954 val != 0
23955 } 22276 }
23956 #[doc = "Bank 1 CRCEND1 flag clear bit"] 22277 #[doc = "TI1 selection"]
23957 pub fn set_clr_crcend(&mut self, val: bool) { 22278 pub const fn ti1s(&self) -> super::vals::Tis {
23958 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize); 22279 let val = (self.0 >> 7usize) & 0x01;
22280 super::vals::Tis(val as u8)
22281 }
22282 #[doc = "TI1 selection"]
22283 pub fn set_ti1s(&mut self, val: super::vals::Tis) {
22284 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
23959 } 22285 }
23960 } 22286 }
23961 impl Default for Ccr { 22287 impl Default for Cr2Gp {
23962 fn default() -> Ccr { 22288 fn default() -> Cr2Gp {
23963 Ccr(0) 22289 Cr2Gp(0)
23964 } 22290 }
23965 } 22291 }
23966 #[doc = "FLASH register with boot address"] 22292 #[doc = "DMA/Interrupt enable register"]
23967 #[repr(transparent)] 22293 #[repr(transparent)]
23968 #[derive(Copy, Clone, Eq, PartialEq)] 22294 #[derive(Copy, Clone, Eq, PartialEq)]
23969 pub struct BootCurr(pub u32); 22295 pub struct DierAdv(pub u32);
23970 impl BootCurr { 22296 impl DierAdv {
23971 #[doc = "Boot address 0"] 22297 #[doc = "Update interrupt enable"]
23972 pub const fn boot_add0(&self) -> u16 { 22298 pub const fn uie(&self) -> bool {
23973 let val = (self.0 >> 0usize) & 0xffff; 22299 let val = (self.0 >> 0usize) & 0x01;
23974 val as u16 22300 val != 0
23975 } 22301 }
23976 #[doc = "Boot address 0"] 22302 #[doc = "Update interrupt enable"]
23977 pub fn set_boot_add0(&mut self, val: u16) { 22303 pub fn set_uie(&mut self, val: bool) {
23978 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize); 22304 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
23979 } 22305 }
23980 #[doc = "Boot address 1"] 22306 #[doc = "Capture/Compare 1 interrupt enable"]
23981 pub const fn boot_add1(&self) -> u16 { 22307 pub fn ccie(&self, n: usize) -> bool {
23982 let val = (self.0 >> 16usize) & 0xffff; 22308 assert!(n < 4usize);
23983 val as u16 22309 let offs = 1usize + n * 1usize;
22310 let val = (self.0 >> offs) & 0x01;
22311 val != 0
23984 } 22312 }
23985 #[doc = "Boot address 1"] 22313 #[doc = "Capture/Compare 1 interrupt enable"]
23986 pub fn set_boot_add1(&mut self, val: u16) { 22314 pub fn set_ccie(&mut self, n: usize, val: bool) {
23987 self.0 = (self.0 & !(0xffff << 16usize)) | (((val as u32) & 0xffff) << 16usize); 22315 assert!(n < 4usize);
22316 let offs = 1usize + n * 1usize;
22317 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
23988 } 22318 }
23989 } 22319 #[doc = "COM interrupt enable"]
23990 impl Default for BootCurr { 22320 pub const fn comie(&self) -> bool {
23991 fn default() -> BootCurr { 22321 let val = (self.0 >> 5usize) & 0x01;
23992 BootCurr(0) 22322 val != 0
23993 } 22323 }
23994 } 22324 #[doc = "COM interrupt enable"]
23995 #[doc = "FLASH protection address for bank 1"] 22325 pub fn set_comie(&mut self, val: bool) {
23996 #[repr(transparent)] 22326 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
23997 #[derive(Copy, Clone, Eq, PartialEq)]
23998 pub struct PrarPrg(pub u32);
23999 impl PrarPrg {
24000 #[doc = "Bank 1 lowest PCROP protected address configuration"]
24001 pub const fn prot_area_start(&self) -> u16 {
24002 let val = (self.0 >> 0usize) & 0x0fff;
24003 val as u16
24004 } 22327 }
24005 #[doc = "Bank 1 lowest PCROP protected address configuration"] 22328 #[doc = "Trigger interrupt enable"]
24006 pub fn set_prot_area_start(&mut self, val: u16) { 22329 pub const fn tie(&self) -> bool {
24007 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize); 22330 let val = (self.0 >> 6usize) & 0x01;
22331 val != 0
24008 } 22332 }
24009 #[doc = "Bank 1 highest PCROP protected address configuration"] 22333 #[doc = "Trigger interrupt enable"]
24010 pub const fn prot_area_end(&self) -> u16 { 22334 pub fn set_tie(&mut self, val: bool) {
24011 let val = (self.0 >> 16usize) & 0x0fff; 22335 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
24012 val as u16
24013 } 22336 }
24014 #[doc = "Bank 1 highest PCROP protected address configuration"] 22337 #[doc = "Break interrupt enable"]
24015 pub fn set_prot_area_end(&mut self, val: u16) { 22338 pub const fn bie(&self) -> bool {
24016 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize); 22339 let val = (self.0 >> 7usize) & 0x01;
22340 val != 0
24017 } 22341 }
24018 #[doc = "Bank 1 PCROP protected erase enable option configuration bit"] 22342 #[doc = "Break interrupt enable"]
24019 pub const fn dmep(&self) -> bool { 22343 pub fn set_bie(&mut self, val: bool) {
24020 let val = (self.0 >> 31usize) & 0x01; 22344 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
22345 }
22346 #[doc = "Update DMA request enable"]
22347 pub const fn ude(&self) -> bool {
22348 let val = (self.0 >> 8usize) & 0x01;
24021 val != 0 22349 val != 0
24022 } 22350 }
24023 #[doc = "Bank 1 PCROP protected erase enable option configuration bit"] 22351 #[doc = "Update DMA request enable"]
24024 pub fn set_dmep(&mut self, val: bool) { 22352 pub fn set_ude(&mut self, val: bool) {
24025 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize); 22353 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
24026 } 22354 }
24027 } 22355 #[doc = "Capture/Compare 1 DMA request enable"]
24028 impl Default for PrarPrg { 22356 pub fn ccde(&self, n: usize) -> bool {
24029 fn default() -> PrarPrg { 22357 assert!(n < 4usize);
24030 PrarPrg(0) 22358 let offs = 9usize + n * 1usize;
22359 let val = (self.0 >> offs) & 0x01;
22360 val != 0
24031 } 22361 }
24032 } 22362 #[doc = "Capture/Compare 1 DMA request enable"]
24033 #[doc = "FLASH write sector protection for bank 1"] 22363 pub fn set_ccde(&mut self, n: usize, val: bool) {
24034 #[repr(transparent)] 22364 assert!(n < 4usize);
24035 #[derive(Copy, Clone, Eq, PartialEq)] 22365 let offs = 9usize + n * 1usize;
24036 pub struct WpsnPrgr(pub u32); 22366 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
24037 impl WpsnPrgr {
24038 #[doc = "Bank 1 sector write protection configuration byte"]
24039 pub const fn wrpsn(&self) -> u8 {
24040 let val = (self.0 >> 0usize) & 0xff;
24041 val as u8
24042 } 22367 }
24043 #[doc = "Bank 1 sector write protection configuration byte"] 22368 #[doc = "COM DMA request enable"]
24044 pub fn set_wrpsn(&mut self, val: u8) { 22369 pub const fn comde(&self) -> bool {
24045 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize); 22370 let val = (self.0 >> 13usize) & 0x01;
22371 val != 0
22372 }
22373 #[doc = "COM DMA request enable"]
22374 pub fn set_comde(&mut self, val: bool) {
22375 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
22376 }
22377 #[doc = "Trigger DMA request enable"]
22378 pub const fn tde(&self) -> bool {
22379 let val = (self.0 >> 14usize) & 0x01;
22380 val != 0
22381 }
22382 #[doc = "Trigger DMA request enable"]
22383 pub fn set_tde(&mut self, val: bool) {
22384 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
24046 } 22385 }
24047 } 22386 }
24048 impl Default for WpsnPrgr { 22387 impl Default for DierAdv {
24049 fn default() -> WpsnPrgr { 22388 fn default() -> DierAdv {
24050 WpsnPrgr(0) 22389 DierAdv(0)
24051 } 22390 }
24052 } 22391 }
24053 #[doc = "FLASH CRC start address register for bank 1"] 22392 #[doc = "status register"]
24054 #[repr(transparent)] 22393 #[repr(transparent)]
24055 #[derive(Copy, Clone, Eq, PartialEq)] 22394 #[derive(Copy, Clone, Eq, PartialEq)]
24056 pub struct Crcsaddr(pub u32); 22395 pub struct SrBasic(pub u32);
24057 impl Crcsaddr { 22396 impl SrBasic {
24058 #[doc = "CRC start address on bank 1"] 22397 #[doc = "Update interrupt flag"]
24059 pub const fn crc_start_addr(&self) -> u32 { 22398 pub const fn uif(&self) -> bool {
24060 let val = (self.0 >> 0usize) & 0xffff_ffff; 22399 let val = (self.0 >> 0usize) & 0x01;
24061 val as u32 22400 val != 0
24062 } 22401 }
24063 #[doc = "CRC start address on bank 1"] 22402 #[doc = "Update interrupt flag"]
24064 pub fn set_crc_start_addr(&mut self, val: u32) { 22403 pub fn set_uif(&mut self, val: bool) {
24065 self.0 = 22404 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
24066 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
24067 } 22405 }
24068 } 22406 }
24069 impl Default for Crcsaddr { 22407 impl Default for SrBasic {
24070 fn default() -> Crcsaddr { 22408 fn default() -> SrBasic {
24071 Crcsaddr(0) 22409 SrBasic(0)
24072 } 22410 }
24073 } 22411 }
24074 #[doc = "FLASH secure address for bank 1"] 22412 #[doc = "prescaler"]
24075 #[repr(transparent)] 22413 #[repr(transparent)]
24076 #[derive(Copy, Clone, Eq, PartialEq)] 22414 #[derive(Copy, Clone, Eq, PartialEq)]
24077 pub struct ScarCur(pub u32); 22415 pub struct Psc(pub u32);
24078 impl ScarCur { 22416 impl Psc {
24079 #[doc = "Bank 1 lowest secure protected address"] 22417 #[doc = "Prescaler value"]
24080 pub const fn sec_area_start(&self) -> u16 { 22418 pub const fn psc(&self) -> u16 {
24081 let val = (self.0 >> 0usize) & 0x0fff; 22419 let val = (self.0 >> 0usize) & 0xffff;
24082 val as u16 22420 val as u16
24083 } 22421 }
24084 #[doc = "Bank 1 lowest secure protected address"] 22422 #[doc = "Prescaler value"]
24085 pub fn set_sec_area_start(&mut self, val: u16) { 22423 pub fn set_psc(&mut self, val: u16) {
24086 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize); 22424 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
24087 }
24088 #[doc = "Bank 1 highest secure protected address"]
24089 pub const fn sec_area_end(&self) -> u16 {
24090 let val = (self.0 >> 16usize) & 0x0fff;
24091 val as u16
24092 } 22425 }
24093 #[doc = "Bank 1 highest secure protected address"] 22426 }
24094 pub fn set_sec_area_end(&mut self, val: u16) { 22427 impl Default for Psc {
24095 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize); 22428 fn default() -> Psc {
22429 Psc(0)
24096 } 22430 }
24097 #[doc = "Bank 1 secure protected erase enable option status bit"] 22431 }
24098 pub const fn dmes(&self) -> bool { 22432 #[doc = "control register 2"]
24099 let val = (self.0 >> 31usize) & 0x01; 22433 #[repr(transparent)]
24100 val != 0 22434 #[derive(Copy, Clone, Eq, PartialEq)]
22435 pub struct Cr2Basic(pub u32);
22436 impl Cr2Basic {
22437 #[doc = "Master mode selection"]
22438 pub const fn mms(&self) -> super::vals::Mms {
22439 let val = (self.0 >> 4usize) & 0x07;
22440 super::vals::Mms(val as u8)
24101 } 22441 }
24102 #[doc = "Bank 1 secure protected erase enable option status bit"] 22442 #[doc = "Master mode selection"]
24103 pub fn set_dmes(&mut self, val: bool) { 22443 pub fn set_mms(&mut self, val: super::vals::Mms) {
24104 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize); 22444 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize);
24105 } 22445 }
24106 } 22446 }
24107 impl Default for ScarCur { 22447 impl Default for Cr2Basic {
24108 fn default() -> ScarCur { 22448 fn default() -> Cr2Basic {
24109 ScarCur(0) 22449 Cr2Basic(0)
24110 } 22450 }
24111 } 22451 }
24112 #[doc = "FLASH option status register"] 22452 #[doc = "control register 2"]
24113 #[repr(transparent)] 22453 #[repr(transparent)]
24114 #[derive(Copy, Clone, Eq, PartialEq)] 22454 #[derive(Copy, Clone, Eq, PartialEq)]
24115 pub struct OptsrPrg(pub u32); 22455 pub struct Cr2Adv(pub u32);
24116 impl OptsrPrg { 22456 impl Cr2Adv {
24117 #[doc = "BOR reset level option configuration bits"] 22457 #[doc = "Capture/compare preloaded control"]
24118 pub const fn bor_lev(&self) -> u8 { 22458 pub const fn ccpc(&self) -> bool {
24119 let val = (self.0 >> 2usize) & 0x03; 22459 let val = (self.0 >> 0usize) & 0x01;
24120 val as u8
24121 }
24122 #[doc = "BOR reset level option configuration bits"]
24123 pub fn set_bor_lev(&mut self, val: u8) {
24124 self.0 = (self.0 & !(0x03 << 2usize)) | (((val as u32) & 0x03) << 2usize);
24125 }
24126 #[doc = "IWDG1 option configuration bit"]
24127 pub const fn iwdg1_hw(&self) -> bool {
24128 let val = (self.0 >> 4usize) & 0x01;
24129 val != 0 22460 val != 0
24130 } 22461 }
24131 #[doc = "IWDG1 option configuration bit"] 22462 #[doc = "Capture/compare preloaded control"]
24132 pub fn set_iwdg1_hw(&mut self, val: bool) { 22463 pub fn set_ccpc(&mut self, val: bool) {
24133 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 22464 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
24134 } 22465 }
24135 #[doc = "Option byte erase after D1 DStop option configuration bit"] 22466 #[doc = "Capture/compare control update selection"]
24136 pub const fn n_rst_stop_d1(&self) -> bool { 22467 pub const fn ccus(&self) -> bool {
24137 let val = (self.0 >> 6usize) & 0x01; 22468 let val = (self.0 >> 2usize) & 0x01;
24138 val != 0 22469 val != 0
24139 } 22470 }
24140 #[doc = "Option byte erase after D1 DStop option configuration bit"] 22471 #[doc = "Capture/compare control update selection"]
24141 pub fn set_n_rst_stop_d1(&mut self, val: bool) { 22472 pub fn set_ccus(&mut self, val: bool) {
24142 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 22473 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
24143 } 22474 }
24144 #[doc = "Option byte erase after D1 DStandby option configuration bit"] 22475 #[doc = "Capture/compare DMA selection"]
24145 pub const fn n_rst_stby_d1(&self) -> bool { 22476 pub const fn ccds(&self) -> super::vals::Ccds {
24146 let val = (self.0 >> 7usize) & 0x01; 22477 let val = (self.0 >> 3usize) & 0x01;
24147 val != 0 22478 super::vals::Ccds(val as u8)
24148 } 22479 }
24149 #[doc = "Option byte erase after D1 DStandby option configuration bit"] 22480 #[doc = "Capture/compare DMA selection"]
24150 pub fn set_n_rst_stby_d1(&mut self, val: bool) { 22481 pub fn set_ccds(&mut self, val: super::vals::Ccds) {
24151 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 22482 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
24152 } 22483 }
24153 #[doc = "Readout protection level option configuration byte"] 22484 #[doc = "Master mode selection"]
24154 pub const fn rdp(&self) -> u8 { 22485 pub const fn mms(&self) -> super::vals::Mms {
24155 let val = (self.0 >> 8usize) & 0xff; 22486 let val = (self.0 >> 4usize) & 0x07;
24156 val as u8 22487 super::vals::Mms(val as u8)
24157 } 22488 }
24158 #[doc = "Readout protection level option configuration byte"] 22489 #[doc = "Master mode selection"]
24159 pub fn set_rdp(&mut self, val: u8) { 22490 pub fn set_mms(&mut self, val: super::vals::Mms) {
24160 self.0 = (self.0 & !(0xff << 8usize)) | (((val as u32) & 0xff) << 8usize); 22491 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize);
24161 } 22492 }
24162 #[doc = "IWDG Stop mode freeze option configuration bit"] 22493 #[doc = "TI1 selection"]
24163 pub const fn fz_iwdg_stop(&self) -> bool { 22494 pub const fn ti1s(&self) -> super::vals::Tis {
24164 let val = (self.0 >> 17usize) & 0x01; 22495 let val = (self.0 >> 7usize) & 0x01;
24165 val != 0 22496 super::vals::Tis(val as u8)
24166 } 22497 }
24167 #[doc = "IWDG Stop mode freeze option configuration bit"] 22498 #[doc = "TI1 selection"]
24168 pub fn set_fz_iwdg_stop(&mut self, val: bool) { 22499 pub fn set_ti1s(&mut self, val: super::vals::Tis) {
24169 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize); 22500 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
24170 } 22501 }
24171 #[doc = "IWDG Standby mode freeze option configuration bit"] 22502 #[doc = "Output Idle state 1"]
24172 pub const fn fz_iwdg_sdby(&self) -> bool { 22503 pub fn ois(&self, n: usize) -> bool {
24173 let val = (self.0 >> 18usize) & 0x01; 22504 assert!(n < 4usize);
22505 let offs = 8usize + n * 2usize;
22506 let val = (self.0 >> offs) & 0x01;
24174 val != 0 22507 val != 0
24175 } 22508 }
24176 #[doc = "IWDG Standby mode freeze option configuration bit"] 22509 #[doc = "Output Idle state 1"]
24177 pub fn set_fz_iwdg_sdby(&mut self, val: bool) { 22510 pub fn set_ois(&mut self, n: usize, val: bool) {
24178 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize); 22511 assert!(n < 4usize);
22512 let offs = 8usize + n * 2usize;
22513 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
24179 } 22514 }
24180 #[doc = "DTCM size select option configuration bits"] 22515 #[doc = "Output Idle state 1"]
24181 pub const fn st_ram_size(&self) -> u8 { 22516 pub const fn ois1n(&self) -> bool {
24182 let val = (self.0 >> 19usize) & 0x03; 22517 let val = (self.0 >> 9usize) & 0x01;
24183 val as u8 22518 val != 0
24184 } 22519 }
24185 #[doc = "DTCM size select option configuration bits"] 22520 #[doc = "Output Idle state 1"]
24186 pub fn set_st_ram_size(&mut self, val: u8) { 22521 pub fn set_ois1n(&mut self, val: bool) {
24187 self.0 = (self.0 & !(0x03 << 19usize)) | (((val as u32) & 0x03) << 19usize); 22522 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
24188 } 22523 }
24189 #[doc = "Security option configuration bit"] 22524 #[doc = "Output Idle state 2"]
24190 pub const fn security(&self) -> bool { 22525 pub const fn ois2n(&self) -> bool {
24191 let val = (self.0 >> 21usize) & 0x01; 22526 let val = (self.0 >> 11usize) & 0x01;
24192 val != 0 22527 val != 0
24193 } 22528 }
24194 #[doc = "Security option configuration bit"] 22529 #[doc = "Output Idle state 2"]
24195 pub fn set_security(&mut self, val: bool) { 22530 pub fn set_ois2n(&mut self, val: bool) {
24196 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize); 22531 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
24197 } 22532 }
24198 #[doc = "User option configuration bit 1"] 22533 #[doc = "Output Idle state 3"]
24199 pub const fn rss1(&self) -> bool { 22534 pub const fn ois3n(&self) -> bool {
24200 let val = (self.0 >> 26usize) & 0x01; 22535 let val = (self.0 >> 13usize) & 0x01;
24201 val != 0 22536 val != 0
24202 } 22537 }
24203 #[doc = "User option configuration bit 1"] 22538 #[doc = "Output Idle state 3"]
24204 pub fn set_rss1(&mut self, val: bool) { 22539 pub fn set_ois3n(&mut self, val: bool) {
24205 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize); 22540 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
24206 } 22541 }
24207 #[doc = "User option configuration bit 2"] 22542 }
24208 pub const fn rss2(&self) -> bool { 22543 impl Default for Cr2Adv {
24209 let val = (self.0 >> 27usize) & 0x01; 22544 fn default() -> Cr2Adv {
22545 Cr2Adv(0)
22546 }
22547 }
22548 #[doc = "DMA/Interrupt enable register"]
22549 #[repr(transparent)]
22550 #[derive(Copy, Clone, Eq, PartialEq)]
22551 pub struct DierBasic(pub u32);
22552 impl DierBasic {
22553 #[doc = "Update interrupt enable"]
22554 pub const fn uie(&self) -> bool {
22555 let val = (self.0 >> 0usize) & 0x01;
24210 val != 0 22556 val != 0
24211 } 22557 }
24212 #[doc = "User option configuration bit 2"] 22558 #[doc = "Update interrupt enable"]
24213 pub fn set_rss2(&mut self, val: bool) { 22559 pub fn set_uie(&mut self, val: bool) {
24214 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize); 22560 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
24215 } 22561 }
24216 #[doc = "I/O high-speed at low-voltage (PRODUCT_BELOW_25V)"] 22562 #[doc = "Update DMA request enable"]
24217 pub const fn io_hslv(&self) -> bool { 22563 pub const fn ude(&self) -> bool {
24218 let val = (self.0 >> 29usize) & 0x01; 22564 let val = (self.0 >> 8usize) & 0x01;
24219 val != 0 22565 val != 0
24220 } 22566 }
24221 #[doc = "I/O high-speed at low-voltage (PRODUCT_BELOW_25V)"] 22567 #[doc = "Update DMA request enable"]
24222 pub fn set_io_hslv(&mut self, val: bool) { 22568 pub fn set_ude(&mut self, val: bool) {
24223 self.0 = (self.0 & !(0x01 << 29usize)) | (((val as u32) & 0x01) << 29usize); 22569 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
24224 } 22570 }
24225 #[doc = "Bank swapping option configuration bit"] 22571 }
24226 pub const fn swap_bank_opt(&self) -> bool { 22572 impl Default for DierBasic {
24227 let val = (self.0 >> 31usize) & 0x01; 22573 fn default() -> DierBasic {
24228 val != 0 22574 DierBasic(0)
24229 } 22575 }
24230 #[doc = "Bank swapping option configuration bit"] 22576 }
24231 pub fn set_swap_bank_opt(&mut self, val: bool) { 22577 #[doc = "auto-reload register"]
24232 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize); 22578 #[repr(transparent)]
22579 #[derive(Copy, Clone, Eq, PartialEq)]
22580 pub struct Arr32(pub u32);
22581 impl Arr32 {
22582 #[doc = "Auto-reload value"]
22583 pub const fn arr(&self) -> u32 {
22584 let val = (self.0 >> 0usize) & 0xffff_ffff;
22585 val as u32
22586 }
22587 #[doc = "Auto-reload value"]
22588 pub fn set_arr(&mut self, val: u32) {
22589 self.0 =
22590 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
24233 } 22591 }
24234 } 22592 }
24235 impl Default for OptsrPrg { 22593 impl Default for Arr32 {
24236 fn default() -> OptsrPrg { 22594 fn default() -> Arr32 {
24237 OptsrPrg(0) 22595 Arr32(0)
24238 } 22596 }
24239 } 22597 }
24240 #[doc = "FLASH secure address for bank 1"] 22598 #[doc = "capture/compare enable register"]
24241 #[repr(transparent)] 22599 #[repr(transparent)]
24242 #[derive(Copy, Clone, Eq, PartialEq)] 22600 #[derive(Copy, Clone, Eq, PartialEq)]
24243 pub struct ScarPrg(pub u32); 22601 pub struct CcerGp(pub u32);
24244 impl ScarPrg { 22602 impl CcerGp {
24245 #[doc = "Bank 1 lowest secure protected address configuration"] 22603 #[doc = "Capture/Compare 1 output enable"]
24246 pub const fn sec_area_start(&self) -> u16 { 22604 pub fn cce(&self, n: usize) -> bool {
24247 let val = (self.0 >> 0usize) & 0x0fff; 22605 assert!(n < 4usize);
24248 val as u16 22606 let offs = 0usize + n * 4usize;
22607 let val = (self.0 >> offs) & 0x01;
22608 val != 0
24249 } 22609 }
24250 #[doc = "Bank 1 lowest secure protected address configuration"] 22610 #[doc = "Capture/Compare 1 output enable"]
24251 pub fn set_sec_area_start(&mut self, val: u16) { 22611 pub fn set_cce(&mut self, n: usize, val: bool) {
24252 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize); 22612 assert!(n < 4usize);
22613 let offs = 0usize + n * 4usize;
22614 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
24253 } 22615 }
24254 #[doc = "Bank 1 highest secure protected address configuration"] 22616 #[doc = "Capture/Compare 1 output Polarity"]
24255 pub const fn sec_area_end(&self) -> u16 { 22617 pub fn ccp(&self, n: usize) -> bool {
24256 let val = (self.0 >> 16usize) & 0x0fff; 22618 assert!(n < 4usize);
24257 val as u16 22619 let offs = 1usize + n * 4usize;
22620 let val = (self.0 >> offs) & 0x01;
22621 val != 0
24258 } 22622 }
24259 #[doc = "Bank 1 highest secure protected address configuration"] 22623 #[doc = "Capture/Compare 1 output Polarity"]
24260 pub fn set_sec_area_end(&mut self, val: u16) { 22624 pub fn set_ccp(&mut self, n: usize, val: bool) {
24261 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize); 22625 assert!(n < 4usize);
22626 let offs = 1usize + n * 4usize;
22627 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
24262 } 22628 }
24263 #[doc = "Bank 1 secure protected erase enable option configuration bit"] 22629 #[doc = "Capture/Compare 1 output Polarity"]
24264 pub const fn dmes(&self) -> bool { 22630 pub fn ccnp(&self, n: usize) -> bool {
24265 let val = (self.0 >> 31usize) & 0x01; 22631 assert!(n < 4usize);
22632 let offs = 3usize + n * 4usize;
22633 let val = (self.0 >> offs) & 0x01;
24266 val != 0 22634 val != 0
24267 } 22635 }
24268 #[doc = "Bank 1 secure protected erase enable option configuration bit"] 22636 #[doc = "Capture/Compare 1 output Polarity"]
24269 pub fn set_dmes(&mut self, val: bool) { 22637 pub fn set_ccnp(&mut self, n: usize, val: bool) {
24270 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize); 22638 assert!(n < 4usize);
22639 let offs = 3usize + n * 4usize;
22640 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
24271 } 22641 }
24272 } 22642 }
24273 impl Default for ScarPrg { 22643 impl Default for CcerGp {
24274 fn default() -> ScarPrg { 22644 fn default() -> CcerGp {
24275 ScarPrg(0) 22645 CcerGp(0)
24276 } 22646 }
24277 } 22647 }
24278 #[doc = "FLASH protection address for bank 1"] 22648 #[doc = "event generation register"]
24279 #[repr(transparent)] 22649 #[repr(transparent)]
24280 #[derive(Copy, Clone, Eq, PartialEq)] 22650 #[derive(Copy, Clone, Eq, PartialEq)]
24281 pub struct PrarCur(pub u32); 22651 pub struct EgrBasic(pub u32);
24282 impl PrarCur { 22652 impl EgrBasic {
24283 #[doc = "Bank 1 lowest PCROP protected address"] 22653 #[doc = "Update generation"]
24284 pub const fn prot_area_start(&self) -> u16 { 22654 pub const fn ug(&self) -> bool {
24285 let val = (self.0 >> 0usize) & 0x0fff; 22655 let val = (self.0 >> 0usize) & 0x01;
24286 val as u16 22656 val != 0
24287 }
24288 #[doc = "Bank 1 lowest PCROP protected address"]
24289 pub fn set_prot_area_start(&mut self, val: u16) {
24290 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize);
24291 } 22657 }
24292 #[doc = "Bank 1 highest PCROP protected address"] 22658 #[doc = "Update generation"]
24293 pub const fn prot_area_end(&self) -> u16 { 22659 pub fn set_ug(&mut self, val: bool) {
24294 let val = (self.0 >> 16usize) & 0x0fff; 22660 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
24295 val as u16
24296 } 22661 }
24297 #[doc = "Bank 1 highest PCROP protected address"] 22662 }
24298 pub fn set_prot_area_end(&mut self, val: u16) { 22663 impl Default for EgrBasic {
24299 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize); 22664 fn default() -> EgrBasic {
22665 EgrBasic(0)
24300 } 22666 }
24301 #[doc = "Bank 1 PCROP protected erase enable option status bit"] 22667 }
24302 pub const fn dmep(&self) -> bool { 22668 #[doc = "counter"]
24303 let val = (self.0 >> 31usize) & 0x01; 22669 #[repr(transparent)]
24304 val != 0 22670 #[derive(Copy, Clone, Eq, PartialEq)]
22671 pub struct Cnt32(pub u32);
22672 impl Cnt32 {
22673 #[doc = "counter value"]
22674 pub const fn cnt(&self) -> u32 {
22675 let val = (self.0 >> 0usize) & 0xffff_ffff;
22676 val as u32
24305 } 22677 }
24306 #[doc = "Bank 1 PCROP protected erase enable option status bit"] 22678 #[doc = "counter value"]
24307 pub fn set_dmep(&mut self, val: bool) { 22679 pub fn set_cnt(&mut self, val: u32) {
24308 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize); 22680 self.0 =
22681 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
24309 } 22682 }
24310 } 22683 }
24311 impl Default for PrarCur { 22684 impl Default for Cnt32 {
24312 fn default() -> PrarCur { 22685 fn default() -> Cnt32 {
24313 PrarCur(0) 22686 Cnt32(0)
24314 } 22687 }
24315 } 22688 }
24316 #[doc = "FLASH option status register"] 22689 #[doc = "DMA/Interrupt enable register"]
24317 #[repr(transparent)] 22690 #[repr(transparent)]
24318 #[derive(Copy, Clone, Eq, PartialEq)] 22691 #[derive(Copy, Clone, Eq, PartialEq)]
24319 pub struct OptsrCur(pub u32); 22692 pub struct DierGp(pub u32);
24320 impl OptsrCur { 22693 impl DierGp {
24321 #[doc = "Option byte change ongoing flag"] 22694 #[doc = "Update interrupt enable"]
24322 pub const fn opt_busy(&self) -> bool { 22695 pub const fn uie(&self) -> bool {
24323 let val = (self.0 >> 0usize) & 0x01; 22696 let val = (self.0 >> 0usize) & 0x01;
24324 val != 0 22697 val != 0
24325 } 22698 }
24326 #[doc = "Option byte change ongoing flag"] 22699 #[doc = "Update interrupt enable"]
24327 pub fn set_opt_busy(&mut self, val: bool) { 22700 pub fn set_uie(&mut self, val: bool) {
24328 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 22701 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
24329 } 22702 }
24330 #[doc = "Brownout level option status bit"] 22703 #[doc = "Capture/Compare 1 interrupt enable"]
24331 pub const fn bor_lev(&self) -> u8 { 22704 pub fn ccie(&self, n: usize) -> bool {
24332 let val = (self.0 >> 2usize) & 0x03; 22705 assert!(n < 4usize);
24333 val as u8 22706 let offs = 1usize + n * 1usize;
24334 } 22707 let val = (self.0 >> offs) & 0x01;
24335 #[doc = "Brownout level option status bit"]
24336 pub fn set_bor_lev(&mut self, val: u8) {
24337 self.0 = (self.0 & !(0x03 << 2usize)) | (((val as u32) & 0x03) << 2usize);
24338 }
24339 #[doc = "IWDG1 control option status bit"]
24340 pub const fn iwdg1_hw(&self) -> bool {
24341 let val = (self.0 >> 4usize) & 0x01;
24342 val != 0 22708 val != 0
24343 } 22709 }
24344 #[doc = "IWDG1 control option status bit"] 22710 #[doc = "Capture/Compare 1 interrupt enable"]
24345 pub fn set_iwdg1_hw(&mut self, val: bool) { 22711 pub fn set_ccie(&mut self, n: usize, val: bool) {
24346 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 22712 assert!(n < 4usize);
22713 let offs = 1usize + n * 1usize;
22714 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
24347 } 22715 }
24348 #[doc = "D1 DStop entry reset option status bit"] 22716 #[doc = "Trigger interrupt enable"]
24349 pub const fn n_rst_stop_d1(&self) -> bool { 22717 pub const fn tie(&self) -> bool {
24350 let val = (self.0 >> 6usize) & 0x01; 22718 let val = (self.0 >> 6usize) & 0x01;
24351 val != 0 22719 val != 0
24352 } 22720 }
24353 #[doc = "D1 DStop entry reset option status bit"] 22721 #[doc = "Trigger interrupt enable"]
24354 pub fn set_n_rst_stop_d1(&mut self, val: bool) { 22722 pub fn set_tie(&mut self, val: bool) {
24355 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 22723 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
24356 } 22724 }
24357 #[doc = "D1 DStandby entry reset option status bit"] 22725 #[doc = "Update DMA request enable"]
24358 pub const fn n_rst_stby_d1(&self) -> bool { 22726 pub const fn ude(&self) -> bool {
24359 let val = (self.0 >> 7usize) & 0x01; 22727 let val = (self.0 >> 8usize) & 0x01;
24360 val != 0 22728 val != 0
24361 } 22729 }
24362 #[doc = "D1 DStandby entry reset option status bit"] 22730 #[doc = "Update DMA request enable"]
24363 pub fn set_n_rst_stby_d1(&mut self, val: bool) { 22731 pub fn set_ude(&mut self, val: bool) {
24364 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 22732 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
24365 } 22733 }
24366 #[doc = "Readout protection level option status byte"] 22734 #[doc = "Capture/Compare 1 DMA request enable"]
24367 pub const fn rdp(&self) -> u8 { 22735 pub fn ccde(&self, n: usize) -> bool {
24368 let val = (self.0 >> 8usize) & 0xff; 22736 assert!(n < 4usize);
24369 val as u8 22737 let offs = 9usize + n * 1usize;
22738 let val = (self.0 >> offs) & 0x01;
22739 val != 0
24370 } 22740 }
24371 #[doc = "Readout protection level option status byte"] 22741 #[doc = "Capture/Compare 1 DMA request enable"]
24372 pub fn set_rdp(&mut self, val: u8) { 22742 pub fn set_ccde(&mut self, n: usize, val: bool) {
24373 self.0 = (self.0 & !(0xff << 8usize)) | (((val as u32) & 0xff) << 8usize); 22743 assert!(n < 4usize);
22744 let offs = 9usize + n * 1usize;
22745 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
24374 } 22746 }
24375 #[doc = "IWDG Stop mode freeze option status bit"] 22747 #[doc = "Trigger DMA request enable"]
24376 pub const fn fz_iwdg_stop(&self) -> bool { 22748 pub const fn tde(&self) -> bool {
24377 let val = (self.0 >> 17usize) & 0x01; 22749 let val = (self.0 >> 14usize) & 0x01;
24378 val != 0 22750 val != 0
24379 } 22751 }
24380 #[doc = "IWDG Stop mode freeze option status bit"] 22752 #[doc = "Trigger DMA request enable"]
24381 pub fn set_fz_iwdg_stop(&mut self, val: bool) { 22753 pub fn set_tde(&mut self, val: bool) {
24382 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize); 22754 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
24383 } 22755 }
24384 #[doc = "IWDG Standby mode freeze option status bit"] 22756 }
24385 pub const fn fz_iwdg_sdby(&self) -> bool { 22757 impl Default for DierGp {
24386 let val = (self.0 >> 18usize) & 0x01; 22758 fn default() -> DierGp {
24387 val != 0 22759 DierGp(0)
24388 } 22760 }
24389 #[doc = "IWDG Standby mode freeze option status bit"] 22761 }
24390 pub fn set_fz_iwdg_sdby(&mut self, val: bool) { 22762 #[doc = "capture/compare mode register 1 (input mode)"]
24391 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize); 22763 #[repr(transparent)]
22764 #[derive(Copy, Clone, Eq, PartialEq)]
22765 pub struct CcmrInput(pub u32);
22766 impl CcmrInput {
22767 #[doc = "Capture/Compare 1 selection"]
22768 pub fn ccs(&self, n: usize) -> super::vals::CcmrInputCcs {
22769 assert!(n < 2usize);
22770 let offs = 0usize + n * 8usize;
22771 let val = (self.0 >> offs) & 0x03;
22772 super::vals::CcmrInputCcs(val as u8)
24392 } 22773 }
24393 #[doc = "DTCM RAM size option status"] 22774 #[doc = "Capture/Compare 1 selection"]
24394 pub const fn st_ram_size(&self) -> u8 { 22775 pub fn set_ccs(&mut self, n: usize, val: super::vals::CcmrInputCcs) {
24395 let val = (self.0 >> 19usize) & 0x03; 22776 assert!(n < 2usize);
22777 let offs = 0usize + n * 8usize;
22778 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
22779 }
22780 #[doc = "Input capture 1 prescaler"]
22781 pub fn icpsc(&self, n: usize) -> u8 {
22782 assert!(n < 2usize);
22783 let offs = 2usize + n * 8usize;
22784 let val = (self.0 >> offs) & 0x03;
24396 val as u8 22785 val as u8
24397 } 22786 }
24398 #[doc = "DTCM RAM size option status"] 22787 #[doc = "Input capture 1 prescaler"]
24399 pub fn set_st_ram_size(&mut self, val: u8) { 22788 pub fn set_icpsc(&mut self, n: usize, val: u8) {
24400 self.0 = (self.0 & !(0x03 << 19usize)) | (((val as u32) & 0x03) << 19usize); 22789 assert!(n < 2usize);
22790 let offs = 2usize + n * 8usize;
22791 self.0 = (self.0 & !(0x03 << offs)) | (((val as u32) & 0x03) << offs);
24401 } 22792 }
24402 #[doc = "Security enable option status bit"] 22793 #[doc = "Input capture 1 filter"]
24403 pub const fn security(&self) -> bool { 22794 pub fn icf(&self, n: usize) -> super::vals::Icf {
24404 let val = (self.0 >> 21usize) & 0x01; 22795 assert!(n < 2usize);
22796 let offs = 4usize + n * 8usize;
22797 let val = (self.0 >> offs) & 0x0f;
22798 super::vals::Icf(val as u8)
22799 }
22800 #[doc = "Input capture 1 filter"]
22801 pub fn set_icf(&mut self, n: usize, val: super::vals::Icf) {
22802 assert!(n < 2usize);
22803 let offs = 4usize + n * 8usize;
22804 self.0 = (self.0 & !(0x0f << offs)) | (((val.0 as u32) & 0x0f) << offs);
22805 }
22806 }
22807 impl Default for CcmrInput {
22808 fn default() -> CcmrInput {
22809 CcmrInput(0)
22810 }
22811 }
22812 #[doc = "repetition counter register"]
22813 #[repr(transparent)]
22814 #[derive(Copy, Clone, Eq, PartialEq)]
22815 pub struct Rcr(pub u32);
22816 impl Rcr {
22817 #[doc = "Repetition counter value"]
22818 pub const fn rep(&self) -> u8 {
22819 let val = (self.0 >> 0usize) & 0xff;
22820 val as u8
22821 }
22822 #[doc = "Repetition counter value"]
22823 pub fn set_rep(&mut self, val: u8) {
22824 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
22825 }
22826 }
22827 impl Default for Rcr {
22828 fn default() -> Rcr {
22829 Rcr(0)
22830 }
22831 }
22832 #[doc = "status register"]
22833 #[repr(transparent)]
22834 #[derive(Copy, Clone, Eq, PartialEq)]
22835 pub struct SrAdv(pub u32);
22836 impl SrAdv {
22837 #[doc = "Update interrupt flag"]
22838 pub const fn uif(&self) -> bool {
22839 let val = (self.0 >> 0usize) & 0x01;
24405 val != 0 22840 val != 0
24406 } 22841 }
24407 #[doc = "Security enable option status bit"] 22842 #[doc = "Update interrupt flag"]
24408 pub fn set_security(&mut self, val: bool) { 22843 pub fn set_uif(&mut self, val: bool) {
24409 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize); 22844 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
24410 } 22845 }
24411 #[doc = "User option bit 1"] 22846 #[doc = "Capture/compare 1 interrupt flag"]
24412 pub const fn rss1(&self) -> bool { 22847 pub fn ccif(&self, n: usize) -> bool {
24413 let val = (self.0 >> 26usize) & 0x01; 22848 assert!(n < 4usize);
22849 let offs = 1usize + n * 1usize;
22850 let val = (self.0 >> offs) & 0x01;
24414 val != 0 22851 val != 0
24415 } 22852 }
24416 #[doc = "User option bit 1"] 22853 #[doc = "Capture/compare 1 interrupt flag"]
24417 pub fn set_rss1(&mut self, val: bool) { 22854 pub fn set_ccif(&mut self, n: usize, val: bool) {
24418 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize); 22855 assert!(n < 4usize);
22856 let offs = 1usize + n * 1usize;
22857 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
24419 } 22858 }
24420 #[doc = "Device personalization status bit"] 22859 #[doc = "COM interrupt flag"]
24421 pub const fn perso_ok(&self) -> bool { 22860 pub const fn comif(&self) -> bool {
24422 let val = (self.0 >> 28usize) & 0x01; 22861 let val = (self.0 >> 5usize) & 0x01;
24423 val != 0 22862 val != 0
24424 } 22863 }
24425 #[doc = "Device personalization status bit"] 22864 #[doc = "COM interrupt flag"]
24426 pub fn set_perso_ok(&mut self, val: bool) { 22865 pub fn set_comif(&mut self, val: bool) {
24427 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize); 22866 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
24428 } 22867 }
24429 #[doc = "I/O high-speed at low-voltage status bit (PRODUCT_BELOW_25V)"] 22868 #[doc = "Trigger interrupt flag"]
24430 pub const fn io_hslv(&self) -> bool { 22869 pub const fn tif(&self) -> bool {
24431 let val = (self.0 >> 29usize) & 0x01; 22870 let val = (self.0 >> 6usize) & 0x01;
24432 val != 0 22871 val != 0
24433 } 22872 }
24434 #[doc = "I/O high-speed at low-voltage status bit (PRODUCT_BELOW_25V)"] 22873 #[doc = "Trigger interrupt flag"]
24435 pub fn set_io_hslv(&mut self, val: bool) { 22874 pub fn set_tif(&mut self, val: bool) {
24436 self.0 = (self.0 & !(0x01 << 29usize)) | (((val as u32) & 0x01) << 29usize); 22875 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
24437 } 22876 }
24438 #[doc = "Option byte change error flag"] 22877 #[doc = "Break interrupt flag"]
24439 pub const fn optchangeerr(&self) -> bool { 22878 pub const fn bif(&self) -> bool {
24440 let val = (self.0 >> 30usize) & 0x01; 22879 let val = (self.0 >> 7usize) & 0x01;
24441 val != 0 22880 val != 0
24442 } 22881 }
24443 #[doc = "Option byte change error flag"] 22882 #[doc = "Break interrupt flag"]
24444 pub fn set_optchangeerr(&mut self, val: bool) { 22883 pub fn set_bif(&mut self, val: bool) {
24445 self.0 = (self.0 & !(0x01 << 30usize)) | (((val as u32) & 0x01) << 30usize); 22884 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
24446 } 22885 }
24447 #[doc = "Bank swapping option status bit"] 22886 #[doc = "Capture/Compare 1 overcapture flag"]
24448 pub const fn swap_bank_opt(&self) -> bool { 22887 pub fn ccof(&self, n: usize) -> bool {
24449 let val = (self.0 >> 31usize) & 0x01; 22888 assert!(n < 4usize);
22889 let offs = 9usize + n * 1usize;
22890 let val = (self.0 >> offs) & 0x01;
24450 val != 0 22891 val != 0
24451 } 22892 }
24452 #[doc = "Bank swapping option status bit"] 22893 #[doc = "Capture/Compare 1 overcapture flag"]
24453 pub fn set_swap_bank_opt(&mut self, val: bool) { 22894 pub fn set_ccof(&mut self, n: usize, val: bool) {
24454 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize); 22895 assert!(n < 4usize);
22896 let offs = 9usize + n * 1usize;
22897 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
24455 } 22898 }
24456 } 22899 }
24457 impl Default for OptsrCur { 22900 impl Default for SrAdv {
24458 fn default() -> OptsrCur { 22901 fn default() -> SrAdv {
24459 OptsrCur(0) 22902 SrAdv(0)
24460 } 22903 }
24461 } 22904 }
24462 #[doc = "Access control register"] 22905 #[doc = "DMA control register"]
24463 #[repr(transparent)] 22906 #[repr(transparent)]
24464 #[derive(Copy, Clone, Eq, PartialEq)] 22907 #[derive(Copy, Clone, Eq, PartialEq)]
24465 pub struct Acr(pub u32); 22908 pub struct Dcr(pub u32);
24466 impl Acr { 22909 impl Dcr {
24467 #[doc = "Read latency"] 22910 #[doc = "DMA base address"]
24468 pub const fn latency(&self) -> u8 { 22911 pub const fn dba(&self) -> u8 {
24469 let val = (self.0 >> 0usize) & 0x07; 22912 let val = (self.0 >> 0usize) & 0x1f;
24470 val as u8 22913 val as u8
24471 } 22914 }
24472 #[doc = "Read latency"] 22915 #[doc = "DMA base address"]
24473 pub fn set_latency(&mut self, val: u8) { 22916 pub fn set_dba(&mut self, val: u8) {
24474 self.0 = (self.0 & !(0x07 << 0usize)) | (((val as u32) & 0x07) << 0usize); 22917 self.0 = (self.0 & !(0x1f << 0usize)) | (((val as u32) & 0x1f) << 0usize);
24475 } 22918 }
24476 #[doc = "Flash signal delay"] 22919 #[doc = "DMA burst length"]
24477 pub const fn wrhighfreq(&self) -> u8 { 22920 pub const fn dbl(&self) -> u8 {
24478 let val = (self.0 >> 4usize) & 0x03; 22921 let val = (self.0 >> 8usize) & 0x1f;
24479 val as u8 22922 val as u8
24480 } 22923 }
24481 #[doc = "Flash signal delay"] 22924 #[doc = "DMA burst length"]
24482 pub fn set_wrhighfreq(&mut self, val: u8) { 22925 pub fn set_dbl(&mut self, val: u8) {
24483 self.0 = (self.0 & !(0x03 << 4usize)) | (((val as u32) & 0x03) << 4usize); 22926 self.0 = (self.0 & !(0x1f << 8usize)) | (((val as u32) & 0x1f) << 8usize);
24484 } 22927 }
24485 } 22928 }
24486 impl Default for Acr { 22929 impl Default for Dcr {
24487 fn default() -> Acr { 22930 fn default() -> Dcr {
24488 Acr(0) 22931 Dcr(0)
24489 } 22932 }
24490 } 22933 }
24491 #[doc = "FLASH status register for bank 1"] 22934 #[doc = "control register 1"]
24492 #[repr(transparent)] 22935 #[repr(transparent)]
24493 #[derive(Copy, Clone, Eq, PartialEq)] 22936 #[derive(Copy, Clone, Eq, PartialEq)]
24494 pub struct Sr(pub u32); 22937 pub struct Cr1Gp(pub u32);
24495 impl Sr { 22938 impl Cr1Gp {
24496 #[doc = "Bank 1 ongoing program flag"] 22939 #[doc = "Counter enable"]
24497 pub const fn bsy(&self) -> bool { 22940 pub const fn cen(&self) -> bool {
24498 let val = (self.0 >> 0usize) & 0x01; 22941 let val = (self.0 >> 0usize) & 0x01;
24499 val != 0 22942 val != 0
24500 } 22943 }
24501 #[doc = "Bank 1 ongoing program flag"] 22944 #[doc = "Counter enable"]
24502 pub fn set_bsy(&mut self, val: bool) { 22945 pub fn set_cen(&mut self, val: bool) {
24503 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 22946 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
24504 } 22947 }
24505 #[doc = "Bank 1 write buffer not empty flag"] 22948 #[doc = "Update disable"]
24506 pub const fn wbne(&self) -> bool { 22949 pub const fn udis(&self) -> bool {
24507 let val = (self.0 >> 1usize) & 0x01; 22950 let val = (self.0 >> 1usize) & 0x01;
24508 val != 0 22951 val != 0
24509 } 22952 }
24510 #[doc = "Bank 1 write buffer not empty flag"] 22953 #[doc = "Update disable"]
24511 pub fn set_wbne(&mut self, val: bool) { 22954 pub fn set_udis(&mut self, val: bool) {
24512 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 22955 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
24513 } 22956 }
24514 #[doc = "Bank 1 wait queue flag"] 22957 #[doc = "Update request source"]
24515 pub const fn qw(&self) -> bool { 22958 pub const fn urs(&self) -> super::vals::Urs {
24516 let val = (self.0 >> 2usize) & 0x01; 22959 let val = (self.0 >> 2usize) & 0x01;
24517 val != 0 22960 super::vals::Urs(val as u8)
24518 } 22961 }
24519 #[doc = "Bank 1 wait queue flag"] 22962 #[doc = "Update request source"]
24520 pub fn set_qw(&mut self, val: bool) { 22963 pub fn set_urs(&mut self, val: super::vals::Urs) {
24521 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 22964 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
24522 } 22965 }
24523 #[doc = "Bank 1 CRC busy flag"] 22966 #[doc = "One-pulse mode"]
24524 pub const fn crc_busy(&self) -> bool { 22967 pub const fn opm(&self) -> super::vals::Opm {
24525 let val = (self.0 >> 3usize) & 0x01; 22968 let val = (self.0 >> 3usize) & 0x01;
24526 val != 0 22969 super::vals::Opm(val as u8)
24527 }
24528 #[doc = "Bank 1 CRC busy flag"]
24529 pub fn set_crc_busy(&mut self, val: bool) {
24530 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
24531 }
24532 #[doc = "Bank 1 end-of-program flag"]
24533 pub const fn eop(&self) -> bool {
24534 let val = (self.0 >> 16usize) & 0x01;
24535 val != 0
24536 }
24537 #[doc = "Bank 1 end-of-program flag"]
24538 pub fn set_eop(&mut self, val: bool) {
24539 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
24540 }
24541 #[doc = "Bank 1 write protection error flag"]
24542 pub const fn wrperr(&self) -> bool {
24543 let val = (self.0 >> 17usize) & 0x01;
24544 val != 0
24545 } 22970 }
24546 #[doc = "Bank 1 write protection error flag"] 22971 #[doc = "One-pulse mode"]
24547 pub fn set_wrperr(&mut self, val: bool) { 22972 pub fn set_opm(&mut self, val: super::vals::Opm) {
24548 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize); 22973 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
24549 } 22974 }
24550 #[doc = "Bank 1 programming sequence error flag"] 22975 #[doc = "Direction"]
24551 pub const fn pgserr(&self) -> bool { 22976 pub const fn dir(&self) -> super::vals::Dir {
24552 let val = (self.0 >> 18usize) & 0x01; 22977 let val = (self.0 >> 4usize) & 0x01;
24553 val != 0 22978 super::vals::Dir(val as u8)
24554 } 22979 }
24555 #[doc = "Bank 1 programming sequence error flag"] 22980 #[doc = "Direction"]
24556 pub fn set_pgserr(&mut self, val: bool) { 22981 pub fn set_dir(&mut self, val: super::vals::Dir) {
24557 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize); 22982 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
24558 } 22983 }
24559 #[doc = "Bank 1 strobe error flag"] 22984 #[doc = "Center-aligned mode selection"]
24560 pub const fn strberr(&self) -> bool { 22985 pub const fn cms(&self) -> super::vals::Cms {
24561 let val = (self.0 >> 19usize) & 0x01; 22986 let val = (self.0 >> 5usize) & 0x03;
24562 val != 0 22987 super::vals::Cms(val as u8)
24563 } 22988 }
24564 #[doc = "Bank 1 strobe error flag"] 22989 #[doc = "Center-aligned mode selection"]
24565 pub fn set_strberr(&mut self, val: bool) { 22990 pub fn set_cms(&mut self, val: super::vals::Cms) {
24566 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize); 22991 self.0 = (self.0 & !(0x03 << 5usize)) | (((val.0 as u32) & 0x03) << 5usize);
24567 } 22992 }
24568 #[doc = "Bank 1 inconsistency error flag"] 22993 #[doc = "Auto-reload preload enable"]
24569 pub const fn incerr(&self) -> bool { 22994 pub const fn arpe(&self) -> super::vals::Arpe {
24570 let val = (self.0 >> 21usize) & 0x01; 22995 let val = (self.0 >> 7usize) & 0x01;
24571 val != 0 22996 super::vals::Arpe(val as u8)
24572 } 22997 }
24573 #[doc = "Bank 1 inconsistency error flag"] 22998 #[doc = "Auto-reload preload enable"]
24574 pub fn set_incerr(&mut self, val: bool) { 22999 pub fn set_arpe(&mut self, val: super::vals::Arpe) {
24575 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize); 23000 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
24576 } 23001 }
24577 #[doc = "Bank 1 write/erase error flag"] 23002 #[doc = "Clock division"]
24578 pub const fn operr(&self) -> bool { 23003 pub const fn ckd(&self) -> super::vals::Ckd {
24579 let val = (self.0 >> 22usize) & 0x01; 23004 let val = (self.0 >> 8usize) & 0x03;
24580 val != 0 23005 super::vals::Ckd(val as u8)
24581 } 23006 }
24582 #[doc = "Bank 1 write/erase error flag"] 23007 #[doc = "Clock division"]
24583 pub fn set_operr(&mut self, val: bool) { 23008 pub fn set_ckd(&mut self, val: super::vals::Ckd) {
24584 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize); 23009 self.0 = (self.0 & !(0x03 << 8usize)) | (((val.0 as u32) & 0x03) << 8usize);
24585 } 23010 }
24586 #[doc = "Bank 1 read protection error flag"] 23011 }
24587 pub const fn rdperr(&self) -> bool { 23012 impl Default for Cr1Gp {
24588 let val = (self.0 >> 23usize) & 0x01; 23013 fn default() -> Cr1Gp {
24589 val != 0 23014 Cr1Gp(0)
24590 } 23015 }
24591 #[doc = "Bank 1 read protection error flag"] 23016 }
24592 pub fn set_rdperr(&mut self, val: bool) { 23017 #[doc = "auto-reload register"]
24593 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize); 23018 #[repr(transparent)]
23019 #[derive(Copy, Clone, Eq, PartialEq)]
23020 pub struct Arr16(pub u32);
23021 impl Arr16 {
23022 #[doc = "Auto-reload value"]
23023 pub const fn arr(&self) -> u16 {
23024 let val = (self.0 >> 0usize) & 0xffff;
23025 val as u16
24594 } 23026 }
24595 #[doc = "Bank 1 secure error flag"] 23027 #[doc = "Auto-reload value"]
24596 pub const fn rdserr(&self) -> bool { 23028 pub fn set_arr(&mut self, val: u16) {
24597 let val = (self.0 >> 24usize) & 0x01; 23029 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
24598 val != 0
24599 } 23030 }
24600 #[doc = "Bank 1 secure error flag"] 23031 }
24601 pub fn set_rdserr(&mut self, val: bool) { 23032 impl Default for Arr16 {
24602 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize); 23033 fn default() -> Arr16 {
23034 Arr16(0)
24603 } 23035 }
24604 #[doc = "Bank 1 single correction error flag"] 23036 }
24605 pub const fn sneccerr1(&self) -> bool { 23037 }
24606 let val = (self.0 >> 25usize) & 0x01; 23038}
23039pub mod pwr_h7 {
23040 use crate::generic::*;
23041 #[doc = "PWR"]
23042 #[derive(Copy, Clone)]
23043 pub struct Pwr(pub *mut u8);
23044 unsafe impl Send for Pwr {}
23045 unsafe impl Sync for Pwr {}
23046 impl Pwr {
23047 #[doc = "PWR control register 1"]
23048 pub fn cr1(self) -> Reg<regs::Cr1, RW> {
23049 unsafe { Reg::from_ptr(self.0.add(0usize)) }
23050 }
23051 #[doc = "PWR control status register 1"]
23052 pub fn csr1(self) -> Reg<regs::Csr1, R> {
23053 unsafe { Reg::from_ptr(self.0.add(4usize)) }
23054 }
23055 #[doc = "This register is not reset by wakeup from Standby mode, RESET signal and VDD POR. It is only reset by VSW POR and VSWRST reset. This register shall not be accessed when VSWRST bit in RCC_BDCR register resets the VSW domain.After reset, PWR_CR2 register is write-protected. Prior to modifying its content, the DBP bit in PWR_CR1 register must be set to disable the write protection."]
23056 pub fn cr2(self) -> Reg<regs::Cr2, RW> {
23057 unsafe { Reg::from_ptr(self.0.add(8usize)) }
23058 }
23059 #[doc = "Reset only by POR only, not reset by wakeup from Standby mode and RESET pad. The lower byte of this register is written once after POR and shall be written before changing VOS level or ck_sys clock frequency. No limitation applies to the upper bytes.Programming data corresponding to an invalid combination of SDLEVEL, SDEXTHP, SDEN, LDOEN and BYPASS bits (see Table9) will be ignored: data will not be written, the written-once mechanism will lock the register and any further write access will be ignored. The default supply configuration will be kept and the ACTVOSRDY bit in PWR control status register 1 (PWR_CSR1) will go on indicating invalid voltage levels. The system shall be power cycled before writing a new value."]
23060 pub fn cr3(self) -> Reg<regs::Cr3, RW> {
23061 unsafe { Reg::from_ptr(self.0.add(12usize)) }
23062 }
23063 #[doc = "This register allows controlling CPU1 power."]
23064 pub fn cpucr(self) -> Reg<regs::Cpucr, RW> {
23065 unsafe { Reg::from_ptr(self.0.add(16usize)) }
23066 }
23067 #[doc = "This register allows controlling D3 domain power.Following reset VOSRDY will be read 1 by software"]
23068 pub fn d3cr(self) -> Reg<regs::D3cr, RW> {
23069 unsafe { Reg::from_ptr(self.0.add(24usize)) }
23070 }
23071 #[doc = "reset only by system reset, not reset by wakeup from Standby mode5 wait states are required when writing this register (when clearing a WKUPF bit in PWR_WKUPFR, the AHB write access will complete after the WKUPF has been cleared)."]
23072 pub fn wkupcr(self) -> Reg<regs::Wkupcr, RW> {
23073 unsafe { Reg::from_ptr(self.0.add(32usize)) }
23074 }
23075 #[doc = "reset only by system reset, not reset by wakeup from Standby mode"]
23076 pub fn wkupfr(self) -> Reg<regs::Wkupfr, RW> {
23077 unsafe { Reg::from_ptr(self.0.add(36usize)) }
23078 }
23079 #[doc = "Reset only by system reset, not reset by wakeup from Standby mode"]
23080 pub fn wkupepr(self) -> Reg<regs::Wkupepr, RW> {
23081 unsafe { Reg::from_ptr(self.0.add(40usize)) }
23082 }
23083 }
23084 pub mod regs {
23085 use crate::generic::*;
23086 #[doc = "Reset only by system reset, not reset by wakeup from Standby mode"]
23087 #[repr(transparent)]
23088 #[derive(Copy, Clone, Eq, PartialEq)]
23089 pub struct Wkupepr(pub u32);
23090 impl Wkupepr {
23091 #[doc = "Enable Wakeup Pin WKUPn+1 Each bit is set and cleared by software. Note: An additional wakeup event is detected if WKUPn+1 pin is enabled (by setting the WKUPENn+1 bit) when WKUPn+1 pin level is already high when WKUPPn+1 selects rising edge, or low when WKUPPn+1 selects falling edge."]
23092 pub fn wkupen(&self, n: usize) -> bool {
23093 assert!(n < 6usize);
23094 let offs = 0usize + n * 1usize;
23095 let val = (self.0 >> offs) & 0x01;
24607 val != 0 23096 val != 0
24608 } 23097 }
24609 #[doc = "Bank 1 single correction error flag"] 23098 #[doc = "Enable Wakeup Pin WKUPn+1 Each bit is set and cleared by software. Note: An additional wakeup event is detected if WKUPn+1 pin is enabled (by setting the WKUPENn+1 bit) when WKUPn+1 pin level is already high when WKUPPn+1 selects rising edge, or low when WKUPPn+1 selects falling edge."]
24610 pub fn set_sneccerr1(&mut self, val: bool) { 23099 pub fn set_wkupen(&mut self, n: usize, val: bool) {
24611 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize); 23100 assert!(n < 6usize);
23101 let offs = 0usize + n * 1usize;
23102 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
24612 } 23103 }
24613 #[doc = "Bank 1 ECC double detection error flag"] 23104 #[doc = "Wakeup pin polarity bit for WKUPn-7 These bits define the polarity used for event detection on WKUPn-7 external wakeup pin."]
24614 pub const fn dbeccerr(&self) -> bool { 23105 pub fn wkupp(&self, n: usize) -> bool {
24615 let val = (self.0 >> 26usize) & 0x01; 23106 assert!(n < 6usize);
23107 let offs = 8usize + n * 1usize;
23108 let val = (self.0 >> offs) & 0x01;
24616 val != 0 23109 val != 0
24617 } 23110 }
24618 #[doc = "Bank 1 ECC double detection error flag"] 23111 #[doc = "Wakeup pin polarity bit for WKUPn-7 These bits define the polarity used for event detection on WKUPn-7 external wakeup pin."]
24619 pub fn set_dbeccerr(&mut self, val: bool) { 23112 pub fn set_wkupp(&mut self, n: usize, val: bool) {
24620 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize); 23113 assert!(n < 6usize);
23114 let offs = 8usize + n * 1usize;
23115 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
24621 } 23116 }
24622 #[doc = "Bank 1 CRC-complete flag"] 23117 #[doc = "Wakeup pin pull configuration"]
24623 pub const fn crcend(&self) -> bool { 23118 pub fn wkuppupd(&self, n: usize) -> u8 {
24624 let val = (self.0 >> 27usize) & 0x01; 23119 assert!(n < 6usize);
24625 val != 0 23120 let offs = 16usize + n * 2usize;
23121 let val = (self.0 >> offs) & 0x03;
23122 val as u8
24626 } 23123 }
24627 #[doc = "Bank 1 CRC-complete flag"] 23124 #[doc = "Wakeup pin pull configuration"]
24628 pub fn set_crcend(&mut self, val: bool) { 23125 pub fn set_wkuppupd(&mut self, n: usize, val: u8) {
24629 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize); 23126 assert!(n < 6usize);
23127 let offs = 16usize + n * 2usize;
23128 self.0 = (self.0 & !(0x03 << offs)) | (((val as u32) & 0x03) << offs);
24630 } 23129 }
24631 } 23130 }
24632 impl Default for Sr { 23131 impl Default for Wkupepr {
24633 fn default() -> Sr { 23132 fn default() -> Wkupepr {
24634 Sr(0) 23133 Wkupepr(0)
24635 } 23134 }
24636 } 23135 }
24637 #[doc = "FLASH ECC fail address for bank 1"] 23136 #[doc = "reset only by system reset, not reset by wakeup from Standby mode5 wait states are required when writing this register (when clearing a WKUPF bit in PWR_WKUPFR, the AHB write access will complete after the WKUPF has been cleared)."]
24638 #[repr(transparent)] 23137 #[repr(transparent)]
24639 #[derive(Copy, Clone, Eq, PartialEq)] 23138 #[derive(Copy, Clone, Eq, PartialEq)]
24640 pub struct Far(pub u32); 23139 pub struct Wkupcr(pub u32);
24641 impl Far { 23140 impl Wkupcr {
24642 #[doc = "Bank 1 ECC error address"] 23141 #[doc = "Clear Wakeup pin flag for WKUP. These bits are always read as 0."]
24643 pub const fn fail_ecc_addr(&self) -> u16 { 23142 pub const fn wkupc(&self) -> u8 {
24644 let val = (self.0 >> 0usize) & 0x7fff; 23143 let val = (self.0 >> 0usize) & 0x3f;
24645 val as u16 23144 val as u8
24646 } 23145 }
24647 #[doc = "Bank 1 ECC error address"] 23146 #[doc = "Clear Wakeup pin flag for WKUP. These bits are always read as 0."]
24648 pub fn set_fail_ecc_addr(&mut self, val: u16) { 23147 pub fn set_wkupc(&mut self, val: u8) {
24649 self.0 = (self.0 & !(0x7fff << 0usize)) | (((val as u32) & 0x7fff) << 0usize); 23148 self.0 = (self.0 & !(0x3f << 0usize)) | (((val as u32) & 0x3f) << 0usize);
24650 } 23149 }
24651 } 23150 }
24652 impl Default for Far { 23151 impl Default for Wkupcr {
24653 fn default() -> Far { 23152 fn default() -> Wkupcr {
24654 Far(0) 23153 Wkupcr(0)
24655 } 23154 }
24656 } 23155 }
24657 #[doc = "FLASH write sector protection for bank 1"] 23156 #[doc = "PWR control status register 1"]
24658 #[repr(transparent)] 23157 #[repr(transparent)]
24659 #[derive(Copy, Clone, Eq, PartialEq)] 23158 #[derive(Copy, Clone, Eq, PartialEq)]
24660 pub struct WpsnCurr(pub u32); 23159 pub struct Csr1(pub u32);
24661 impl WpsnCurr { 23160 impl Csr1 {
24662 #[doc = "Bank 1 sector write protection option status byte"] 23161 #[doc = "Programmable voltage detect output This bit is set and cleared by hardware. It is valid only if the PVD has been enabled by the PVDE bit. Note: since the PVD is disabled in Standby mode, this bit is equal to 0 after Standby or reset until the PVDE bit is set."]
24663 pub const fn wrpsn(&self) -> u8 { 23162 pub const fn pvdo(&self) -> bool {
24664 let val = (self.0 >> 0usize) & 0xff; 23163 let val = (self.0 >> 4usize) & 0x01;
24665 val as u8 23164 val != 0
24666 } 23165 }
24667 #[doc = "Bank 1 sector write protection option status byte"] 23166 #[doc = "Programmable voltage detect output This bit is set and cleared by hardware. It is valid only if the PVD has been enabled by the PVDE bit. Note: since the PVD is disabled in Standby mode, this bit is equal to 0 after Standby or reset until the PVDE bit is set."]
24668 pub fn set_wrpsn(&mut self, val: u8) { 23167 pub fn set_pvdo(&mut self, val: bool) {
24669 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize); 23168 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
24670 } 23169 }
24671 } 23170 #[doc = "Voltage levels ready bit for currently used VOS and SDLEVEL This bit is set to 1 by hardware when the voltage regulator and the SD converter are both disabled and Bypass mode is selected in PWR control register 3 (PWR_CR3)."]
24672 impl Default for WpsnCurr { 23171 pub const fn actvosrdy(&self) -> bool {
24673 fn default() -> WpsnCurr { 23172 let val = (self.0 >> 13usize) & 0x01;
24674 WpsnCurr(0) 23173 val != 0
24675 } 23174 }
24676 } 23175 #[doc = "Voltage levels ready bit for currently used VOS and SDLEVEL This bit is set to 1 by hardware when the voltage regulator and the SD converter are both disabled and Bypass mode is selected in PWR control register 3 (PWR_CR3)."]
24677 #[doc = "FLASH option clear control register"] 23176 pub fn set_actvosrdy(&mut self, val: bool) {
24678 #[repr(transparent)] 23177 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
24679 #[derive(Copy, Clone, Eq, PartialEq)] 23178 }
24680 pub struct Optccr(pub u32); 23179 #[doc = "VOS currently applied for VCORE voltage scaling selection. These bits reflect the last VOS value applied to the PMU."]
24681 impl Optccr { 23180 pub const fn actvos(&self) -> u8 {
24682 #[doc = "OPTCHANGEERR reset bit"] 23181 let val = (self.0 >> 14usize) & 0x03;
24683 pub const fn clr_optchangeerr(&self) -> bool { 23182 val as u8
24684 let val = (self.0 >> 30usize) & 0x01; 23183 }
23184 #[doc = "VOS currently applied for VCORE voltage scaling selection. These bits reflect the last VOS value applied to the PMU."]
23185 pub fn set_actvos(&mut self, val: u8) {
23186 self.0 = (self.0 & !(0x03 << 14usize)) | (((val as u32) & 0x03) << 14usize);
23187 }
23188 #[doc = "Analog voltage detector output on VDDA This bit is set and cleared by hardware. It is valid only if AVD on VDDA is enabled by the AVDEN bit. Note: Since the AVD is disabled in Standby mode, this bit is equal to 0 after Standby or reset until the AVDEN bit is set."]
23189 pub const fn avdo(&self) -> bool {
23190 let val = (self.0 >> 16usize) & 0x01;
24685 val != 0 23191 val != 0
24686 } 23192 }
24687 #[doc = "OPTCHANGEERR reset bit"] 23193 #[doc = "Analog voltage detector output on VDDA This bit is set and cleared by hardware. It is valid only if AVD on VDDA is enabled by the AVDEN bit. Note: Since the AVD is disabled in Standby mode, this bit is equal to 0 after Standby or reset until the AVDEN bit is set."]
24688 pub fn set_clr_optchangeerr(&mut self, val: bool) { 23194 pub fn set_avdo(&mut self, val: bool) {
24689 self.0 = (self.0 & !(0x01 << 30usize)) | (((val as u32) & 0x01) << 30usize); 23195 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
24690 } 23196 }
24691 } 23197 }
24692 impl Default for Optccr { 23198 impl Default for Csr1 {
24693 fn default() -> Optccr { 23199 fn default() -> Csr1 {
24694 Optccr(0) 23200 Csr1(0)
24695 } 23201 }
24696 } 23202 }
24697 #[doc = "FLASH option control register"] 23203 #[doc = "This register is not reset by wakeup from Standby mode, RESET signal and VDD POR. It is only reset by VSW POR and VSWRST reset. This register shall not be accessed when VSWRST bit in RCC_BDCR register resets the VSW domain.After reset, PWR_CR2 register is write-protected. Prior to modifying its content, the DBP bit in PWR_CR1 register must be set to disable the write protection."]
24698 #[repr(transparent)] 23204 #[repr(transparent)]
24699 #[derive(Copy, Clone, Eq, PartialEq)] 23205 #[derive(Copy, Clone, Eq, PartialEq)]
24700 pub struct Optcr(pub u32); 23206 pub struct Cr2(pub u32);
24701 impl Optcr { 23207 impl Cr2 {
24702 #[doc = "FLASH_OPTCR lock option configuration bit"] 23208 #[doc = "Backup regulator enable When set, the Backup regulator (used to maintain the backup RAM content in Standby and VBAT modes) is enabled. If BREN is reset, the backup regulator is switched off. The backup RAM can still be used in Run and Stop modes. However, its content will be lost in Standby and VBAT modes. If BREN is set, the application must wait till the Backup Regulator Ready flag (BRRDY) is set to indicate that the data written into the SRAM will be maintained in Standby and VBAT modes."]
24703 pub const fn optlock(&self) -> bool { 23209 pub const fn bren(&self) -> bool {
24704 let val = (self.0 >> 0usize) & 0x01; 23210 let val = (self.0 >> 0usize) & 0x01;
24705 val != 0 23211 val != 0
24706 } 23212 }
24707 #[doc = "FLASH_OPTCR lock option configuration bit"] 23213 #[doc = "Backup regulator enable When set, the Backup regulator (used to maintain the backup RAM content in Standby and VBAT modes) is enabled. If BREN is reset, the backup regulator is switched off. The backup RAM can still be used in Run and Stop modes. However, its content will be lost in Standby and VBAT modes. If BREN is set, the application must wait till the Backup Regulator Ready flag (BRRDY) is set to indicate that the data written into the SRAM will be maintained in Standby and VBAT modes."]
24708 pub fn set_optlock(&mut self, val: bool) { 23214 pub fn set_bren(&mut self, val: bool) {
24709 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 23215 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
24710 } 23216 }
24711 #[doc = "Option byte start change option configuration bit"] 23217 #[doc = "VBAT and temperature monitoring enable When set, the VBAT supply and temperature monitoring is enabled."]
24712 pub const fn optstart(&self) -> bool { 23218 pub const fn monen(&self) -> bool {
24713 let val = (self.0 >> 1usize) & 0x01; 23219 let val = (self.0 >> 4usize) & 0x01;
24714 val != 0 23220 val != 0
24715 } 23221 }
24716 #[doc = "Option byte start change option configuration bit"] 23222 #[doc = "VBAT and temperature monitoring enable When set, the VBAT supply and temperature monitoring is enabled."]
24717 pub fn set_optstart(&mut self, val: bool) { 23223 pub fn set_monen(&mut self, val: bool) {
24718 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 23224 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
24719 } 23225 }
24720 #[doc = "Flash mass erase enable bit"] 23226 #[doc = "Backup regulator ready This bit is set by hardware to indicate that the Backup regulator is ready."]
24721 pub const fn mer(&self) -> bool { 23227 pub const fn brrdy(&self) -> bool {
24722 let val = (self.0 >> 4usize) & 0x01; 23228 let val = (self.0 >> 16usize) & 0x01;
24723 val != 0 23229 val != 0
24724 } 23230 }
24725 #[doc = "Flash mass erase enable bit"] 23231 #[doc = "Backup regulator ready This bit is set by hardware to indicate that the Backup regulator is ready."]
24726 pub fn set_mer(&mut self, val: bool) { 23232 pub fn set_brrdy(&mut self, val: bool) {
24727 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 23233 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
24728 } 23234 }
24729 #[doc = "Option byte change error interrupt enable bit"] 23235 #[doc = "VBAT level monitoring versus low threshold"]
24730 pub const fn optchangeerrie(&self) -> bool { 23236 pub const fn vbatl(&self) -> bool {
24731 let val = (self.0 >> 30usize) & 0x01; 23237 let val = (self.0 >> 20usize) & 0x01;
24732 val != 0 23238 val != 0
24733 } 23239 }
24734 #[doc = "Option byte change error interrupt enable bit"] 23240 #[doc = "VBAT level monitoring versus low threshold"]
24735 pub fn set_optchangeerrie(&mut self, val: bool) { 23241 pub fn set_vbatl(&mut self, val: bool) {
24736 self.0 = (self.0 & !(0x01 << 30usize)) | (((val as u32) & 0x01) << 30usize); 23242 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize);
24737 } 23243 }
24738 #[doc = "Bank swapping configuration bit"] 23244 #[doc = "VBAT level monitoring versus high threshold"]
24739 pub const fn swap_bank(&self) -> bool { 23245 pub const fn vbath(&self) -> bool {
24740 let val = (self.0 >> 31usize) & 0x01; 23246 let val = (self.0 >> 21usize) & 0x01;
24741 val != 0 23247 val != 0
24742 } 23248 }
24743 #[doc = "Bank swapping configuration bit"] 23249 #[doc = "VBAT level monitoring versus high threshold"]
24744 pub fn set_swap_bank(&mut self, val: bool) { 23250 pub fn set_vbath(&mut self, val: bool) {
24745 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize); 23251 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
23252 }
23253 #[doc = "Temperature level monitoring versus low threshold"]
23254 pub const fn templ(&self) -> bool {
23255 let val = (self.0 >> 22usize) & 0x01;
23256 val != 0
23257 }
23258 #[doc = "Temperature level monitoring versus low threshold"]
23259 pub fn set_templ(&mut self, val: bool) {
23260 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
23261 }
23262 #[doc = "Temperature level monitoring versus high threshold"]
23263 pub const fn temph(&self) -> bool {
23264 let val = (self.0 >> 23usize) & 0x01;
23265 val != 0
23266 }
23267 #[doc = "Temperature level monitoring versus high threshold"]
23268 pub fn set_temph(&mut self, val: bool) {
23269 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
24746 } 23270 }
24747 } 23271 }
24748 impl Default for Optcr { 23272 impl Default for Cr2 {
24749 fn default() -> Optcr { 23273 fn default() -> Cr2 {
24750 Optcr(0) 23274 Cr2(0)
24751 } 23275 }
24752 } 23276 }
24753 #[doc = "FLASH key register for bank 1"] 23277 #[doc = "reset only by system reset, not reset by wakeup from Standby mode"]
24754 #[repr(transparent)] 23278 #[repr(transparent)]
24755 #[derive(Copy, Clone, Eq, PartialEq)] 23279 #[derive(Copy, Clone, Eq, PartialEq)]
24756 pub struct Keyr(pub u32); 23280 pub struct Wkupfr(pub u32);
24757 impl Keyr { 23281 impl Wkupfr {
24758 #[doc = "Bank 1 access configuration unlock key"] 23282 #[doc = "Wakeup pin WKUPF flag. This bit is set by hardware and cleared only by a Reset pin or by setting the WKUPCn+1 bit in the PWR wakeup clear register (PWR_WKUPCR)."]
24759 pub const fn keyr(&self) -> u32 { 23283 pub fn wkupf(&self, n: usize) -> bool {
24760 let val = (self.0 >> 0usize) & 0xffff_ffff; 23284 assert!(n < 6usize);
24761 val as u32 23285 let offs = 0usize + n * 1usize;
23286 let val = (self.0 >> offs) & 0x01;
23287 val != 0
24762 } 23288 }
24763 #[doc = "Bank 1 access configuration unlock key"] 23289 #[doc = "Wakeup pin WKUPF flag. This bit is set by hardware and cleared only by a Reset pin or by setting the WKUPCn+1 bit in the PWR wakeup clear register (PWR_WKUPCR)."]
24764 pub fn set_keyr(&mut self, val: u32) { 23290 pub fn set_wkupf(&mut self, n: usize, val: bool) {
24765 self.0 = 23291 assert!(n < 6usize);
24766 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize); 23292 let offs = 0usize + n * 1usize;
23293 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
24767 } 23294 }
24768 } 23295 }
24769 impl Default for Keyr { 23296 impl Default for Wkupfr {
24770 fn default() -> Keyr { 23297 fn default() -> Wkupfr {
24771 Keyr(0) 23298 Wkupfr(0)
24772 } 23299 }
24773 } 23300 }
24774 #[doc = "FLASH register with boot address"] 23301 #[doc = "PWR control register 1"]
24775 #[repr(transparent)] 23302 #[repr(transparent)]
24776 #[derive(Copy, Clone, Eq, PartialEq)] 23303 #[derive(Copy, Clone, Eq, PartialEq)]
24777 pub struct BootPrgr(pub u32); 23304 pub struct Cr1(pub u32);
24778 impl BootPrgr { 23305 impl Cr1 {
24779 #[doc = "Boot address 0"] 23306 #[doc = "Low-power Deepsleep with SVOS3 (SVOS4 and SVOS5 always use low-power, regardless of the setting of this bit)"]
24780 pub const fn boot_add0(&self) -> u16 { 23307 pub const fn lpds(&self) -> bool {
24781 let val = (self.0 >> 0usize) & 0xffff; 23308 let val = (self.0 >> 0usize) & 0x01;
24782 val as u16 23309 val != 0
24783 } 23310 }
24784 #[doc = "Boot address 0"] 23311 #[doc = "Low-power Deepsleep with SVOS3 (SVOS4 and SVOS5 always use low-power, regardless of the setting of this bit)"]
24785 pub fn set_boot_add0(&mut self, val: u16) { 23312 pub fn set_lpds(&mut self, val: bool) {
24786 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize); 23313 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
24787 } 23314 }
24788 #[doc = "Boot address 1"] 23315 #[doc = "Programmable voltage detector enable"]
24789 pub const fn boot_add1(&self) -> u16 { 23316 pub const fn pvde(&self) -> bool {
24790 let val = (self.0 >> 16usize) & 0xffff; 23317 let val = (self.0 >> 4usize) & 0x01;
24791 val as u16 23318 val != 0
24792 } 23319 }
24793 #[doc = "Boot address 1"] 23320 #[doc = "Programmable voltage detector enable"]
24794 pub fn set_boot_add1(&mut self, val: u16) { 23321 pub fn set_pvde(&mut self, val: bool) {
24795 self.0 = (self.0 & !(0xffff << 16usize)) | (((val as u32) & 0xffff) << 16usize); 23322 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
24796 } 23323 }
24797 } 23324 #[doc = "Programmable voltage detector level selection These bits select the voltage threshold detected by the PVD. Note: Refer to Section Electrical characteristics of the product datasheet for more details."]
24798 impl Default for BootPrgr { 23325 pub const fn pls(&self) -> u8 {
24799 fn default() -> BootPrgr { 23326 let val = (self.0 >> 5usize) & 0x07;
24800 BootPrgr(0) 23327 val as u8
24801 } 23328 }
24802 } 23329 #[doc = "Programmable voltage detector level selection These bits select the voltage threshold detected by the PVD. Note: Refer to Section Electrical characteristics of the product datasheet for more details."]
24803 } 23330 pub fn set_pls(&mut self, val: u8) {
24804} 23331 self.0 = (self.0 & !(0x07 << 5usize)) | (((val as u32) & 0x07) << 5usize);
24805pub mod syscfg_l0 { 23332 }
24806 use crate::generic::*; 23333 #[doc = "Disable backup domain write protection In reset state, the RCC_BDCR register, the RTC registers (including the backup registers), BREN and MOEN bits in PWR_CR2 register, are protected against parasitic write access. This bit must be set to enable write access to these registers."]
24807 #[doc = "System configuration controller"] 23334 pub const fn dbp(&self) -> bool {
24808 #[derive(Copy, Clone)] 23335 let val = (self.0 >> 8usize) & 0x01;
24809 pub struct Syscfg(pub *mut u8); 23336 val != 0
24810 unsafe impl Send for Syscfg {} 23337 }
24811 unsafe impl Sync for Syscfg {} 23338 #[doc = "Disable backup domain write protection In reset state, the RCC_BDCR register, the RTC registers (including the backup registers), BREN and MOEN bits in PWR_CR2 register, are protected against parasitic write access. This bit must be set to enable write access to these registers."]
24812 impl Syscfg { 23339 pub fn set_dbp(&mut self, val: bool) {
24813 #[doc = "configuration register 1"] 23340 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
24814 pub fn cfgr1(self) -> Reg<regs::Cfgr1, RW> { 23341 }
24815 unsafe { Reg::from_ptr(self.0.add(0usize)) } 23342 #[doc = "Flash low-power mode in DStop mode This bit allows to obtain the best trade-off between low-power consumption and restart time when exiting from DStop mode. When it is set, the Flash memory enters low-power mode when D1 domain is in DStop mode."]
24816 } 23343 pub const fn flps(&self) -> bool {
24817 #[doc = "CFGR2"] 23344 let val = (self.0 >> 9usize) & 0x01;
24818 pub fn cfgr2(self) -> Reg<regs::Cfgr2, RW> { 23345 val != 0
24819 unsafe { Reg::from_ptr(self.0.add(4usize)) } 23346 }
24820 } 23347 #[doc = "Flash low-power mode in DStop mode This bit allows to obtain the best trade-off between low-power consumption and restart time when exiting from DStop mode. When it is set, the Flash memory enters low-power mode when D1 domain is in DStop mode."]
24821 #[doc = "external interrupt configuration register"] 23348 pub fn set_flps(&mut self, val: bool) {
24822 pub fn exticr(self, n: usize) -> Reg<regs::Exticr, RW> { 23349 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
24823 assert!(n < 4usize); 23350 }
24824 unsafe { Reg::from_ptr(self.0.add(8usize + n * 4usize)) } 23351 #[doc = "System Stop mode voltage scaling selection These bits control the VCORE voltage level in system Stop mode, to obtain the best trade-off between power consumption and performance."]
24825 } 23352 pub const fn svos(&self) -> u8 {
24826 #[doc = "CFGR3"] 23353 let val = (self.0 >> 14usize) & 0x03;
24827 pub fn cfgr3(self) -> Reg<regs::Cfgr3, RW> {
24828 unsafe { Reg::from_ptr(self.0.add(32usize)) }
24829 }
24830 }
24831 pub mod regs {
24832 use crate::generic::*;
24833 #[doc = "external interrupt configuration register 1-4"]
24834 #[repr(transparent)]
24835 #[derive(Copy, Clone, Eq, PartialEq)]
24836 pub struct Exticr(pub u32);
24837 impl Exticr {
24838 #[doc = "EXTI configuration bits"]
24839 pub fn exti(&self, n: usize) -> u8 {
24840 assert!(n < 4usize);
24841 let offs = 0usize + n * 4usize;
24842 let val = (self.0 >> offs) & 0x0f;
24843 val as u8 23354 val as u8
24844 } 23355 }
24845 #[doc = "EXTI configuration bits"] 23356 #[doc = "System Stop mode voltage scaling selection These bits control the VCORE voltage level in system Stop mode, to obtain the best trade-off between power consumption and performance."]
24846 pub fn set_exti(&mut self, n: usize, val: u8) { 23357 pub fn set_svos(&mut self, val: u8) {
24847 assert!(n < 4usize); 23358 self.0 = (self.0 & !(0x03 << 14usize)) | (((val as u32) & 0x03) << 14usize);
24848 let offs = 0usize + n * 4usize; 23359 }
24849 self.0 = (self.0 & !(0x0f << offs)) | (((val as u32) & 0x0f) << offs); 23360 #[doc = "Peripheral voltage monitor on VDDA enable"]
23361 pub const fn avden(&self) -> bool {
23362 let val = (self.0 >> 16usize) & 0x01;
23363 val != 0
23364 }
23365 #[doc = "Peripheral voltage monitor on VDDA enable"]
23366 pub fn set_avden(&mut self, val: bool) {
23367 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
23368 }
23369 #[doc = "Analog voltage detector level selection These bits select the voltage threshold detected by the AVD."]
23370 pub const fn als(&self) -> u8 {
23371 let val = (self.0 >> 17usize) & 0x03;
23372 val as u8
23373 }
23374 #[doc = "Analog voltage detector level selection These bits select the voltage threshold detected by the AVD."]
23375 pub fn set_als(&mut self, val: u8) {
23376 self.0 = (self.0 & !(0x03 << 17usize)) | (((val as u32) & 0x03) << 17usize);
24850 } 23377 }
24851 } 23378 }
24852 impl Default for Exticr { 23379 impl Default for Cr1 {
24853 fn default() -> Exticr { 23380 fn default() -> Cr1 {
24854 Exticr(0) 23381 Cr1(0)
24855 } 23382 }
24856 } 23383 }
24857 #[doc = "CFGR3"] 23384 #[doc = "This register allows controlling CPU1 power."]
24858 #[repr(transparent)] 23385 #[repr(transparent)]
24859 #[derive(Copy, Clone, Eq, PartialEq)] 23386 #[derive(Copy, Clone, Eq, PartialEq)]
24860 pub struct Cfgr3(pub u32); 23387 pub struct Cpucr(pub u32);
24861 impl Cfgr3 { 23388 impl Cpucr {
24862 #[doc = "VREFINT enable and scaler control for COMP2 enable bit"] 23389 #[doc = "D1 domain Power Down Deepsleep selection. This bit allows CPU1 to define the Deepsleep mode for D1 domain."]
24863 pub const fn en_vrefint(&self) -> bool { 23390 pub const fn pdds_d1(&self) -> bool {
24864 let val = (self.0 >> 0usize) & 0x01; 23391 let val = (self.0 >> 0usize) & 0x01;
24865 val != 0 23392 val != 0
24866 } 23393 }
24867 #[doc = "VREFINT enable and scaler control for COMP2 enable bit"] 23394 #[doc = "D1 domain Power Down Deepsleep selection. This bit allows CPU1 to define the Deepsleep mode for D1 domain."]
24868 pub fn set_en_vrefint(&mut self, val: bool) { 23395 pub fn set_pdds_d1(&mut self, val: bool) {
24869 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 23396 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
24870 } 23397 }
24871 #[doc = "VREFINT_ADC connection bit"] 23398 #[doc = "D2 domain Power Down Deepsleep. This bit allows CPU1 to define the Deepsleep mode for D2 domain."]
24872 pub const fn sel_vref_out(&self) -> u8 { 23399 pub const fn pdds_d2(&self) -> bool {
24873 let val = (self.0 >> 4usize) & 0x03; 23400 let val = (self.0 >> 1usize) & 0x01;
24874 val as u8 23401 val != 0
24875 } 23402 }
24876 #[doc = "VREFINT_ADC connection bit"] 23403 #[doc = "D2 domain Power Down Deepsleep. This bit allows CPU1 to define the Deepsleep mode for D2 domain."]
24877 pub fn set_sel_vref_out(&mut self, val: u8) { 23404 pub fn set_pdds_d2(&mut self, val: bool) {
24878 self.0 = (self.0 & !(0x03 << 4usize)) | (((val as u32) & 0x03) << 4usize); 23405 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
24879 } 23406 }
24880 #[doc = "VREFINT reference for ADC enable bit"] 23407 #[doc = "System D3 domain Power Down Deepsleep. This bit allows CPU1 to define the Deepsleep mode for System D3 domain."]
24881 pub const fn enbuf_vrefint_adc(&self) -> bool { 23408 pub const fn pdds_d3(&self) -> bool {
24882 let val = (self.0 >> 8usize) & 0x01; 23409 let val = (self.0 >> 2usize) & 0x01;
24883 val != 0 23410 val != 0
24884 } 23411 }
24885 #[doc = "VREFINT reference for ADC enable bit"] 23412 #[doc = "System D3 domain Power Down Deepsleep. This bit allows CPU1 to define the Deepsleep mode for System D3 domain."]
24886 pub fn set_enbuf_vrefint_adc(&mut self, val: bool) { 23413 pub fn set_pdds_d3(&mut self, val: bool) {
24887 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 23414 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
24888 } 23415 }
24889 #[doc = "Temperature sensor reference for ADC enable bit"] 23416 #[doc = "STOP flag This bit is set by hardware and cleared only by any reset or by setting the CPU1 CSSF bit."]
24890 pub const fn enbuf_sensor_adc(&self) -> bool { 23417 pub const fn stopf(&self) -> bool {
24891 let val = (self.0 >> 9usize) & 0x01; 23418 let val = (self.0 >> 5usize) & 0x01;
24892 val != 0 23419 val != 0
24893 } 23420 }
24894 #[doc = "Temperature sensor reference for ADC enable bit"] 23421 #[doc = "STOP flag This bit is set by hardware and cleared only by any reset or by setting the CPU1 CSSF bit."]
24895 pub fn set_enbuf_sensor_adc(&mut self, val: bool) { 23422 pub fn set_stopf(&mut self, val: bool) {
24896 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 23423 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
24897 } 23424 }
24898 #[doc = "VREFINT reference for COMP2 scaler enable bit"] 23425 #[doc = "System Standby flag This bit is set by hardware and cleared only by a POR (Power-on Reset) or by setting the CPU1 CSSF bit"]
24899 pub const fn enbuf_vrefint_comp2(&self) -> bool { 23426 pub const fn sbf(&self) -> bool {
24900 let val = (self.0 >> 12usize) & 0x01; 23427 let val = (self.0 >> 6usize) & 0x01;
24901 val != 0 23428 val != 0
24902 } 23429 }
24903 #[doc = "VREFINT reference for COMP2 scaler enable bit"] 23430 #[doc = "System Standby flag This bit is set by hardware and cleared only by a POR (Power-on Reset) or by setting the CPU1 CSSF bit"]
24904 pub fn set_enbuf_vrefint_comp2(&mut self, val: bool) { 23431 pub fn set_sbf(&mut self, val: bool) {
24905 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize); 23432 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
24906 } 23433 }
24907 #[doc = "VREFINT reference for HSI48 oscillator enable bit"] 23434 #[doc = "D1 domain DStandby flag This bit is set by hardware and cleared by any system reset or by setting the CPU1 CSSF bit. Once set, this bit can be cleared only when the D1 domain is no longer in DStandby mode."]
24908 pub const fn enref_hsi48(&self) -> bool { 23435 pub const fn sbf_d1(&self) -> bool {
24909 let val = (self.0 >> 13usize) & 0x01; 23436 let val = (self.0 >> 7usize) & 0x01;
24910 val != 0 23437 val != 0
24911 } 23438 }
24912 #[doc = "VREFINT reference for HSI48 oscillator enable bit"] 23439 #[doc = "D1 domain DStandby flag This bit is set by hardware and cleared by any system reset or by setting the CPU1 CSSF bit. Once set, this bit can be cleared only when the D1 domain is no longer in DStandby mode."]
24913 pub fn set_enref_hsi48(&mut self, val: bool) { 23440 pub fn set_sbf_d1(&mut self, val: bool) {
24914 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize); 23441 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
24915 } 23442 }
24916 #[doc = "VREFINT ready flag"] 23443 #[doc = "D2 domain DStandby flag This bit is set by hardware and cleared by any system reset or by setting the CPU1 CSSF bit. Once set, this bit can be cleared only when the D2 domain is no longer in DStandby mode."]
24917 pub const fn vrefint_rdyf(&self) -> bool { 23444 pub const fn sbf_d2(&self) -> bool {
24918 let val = (self.0 >> 30usize) & 0x01; 23445 let val = (self.0 >> 8usize) & 0x01;
24919 val != 0 23446 val != 0
24920 } 23447 }
24921 #[doc = "VREFINT ready flag"] 23448 #[doc = "D2 domain DStandby flag This bit is set by hardware and cleared by any system reset or by setting the CPU1 CSSF bit. Once set, this bit can be cleared only when the D2 domain is no longer in DStandby mode."]
24922 pub fn set_vrefint_rdyf(&mut self, val: bool) { 23449 pub fn set_sbf_d2(&mut self, val: bool) {
24923 self.0 = (self.0 & !(0x01 << 30usize)) | (((val as u32) & 0x01) << 30usize); 23450 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
24924 } 23451 }
24925 #[doc = "SYSCFG_CFGR3 lock bit"] 23452 #[doc = "Clear D1 domain CPU1 Standby, Stop and HOLD flags (always read as 0) This bit is cleared to 0 by hardware."]
24926 pub const fn ref_lock(&self) -> bool { 23453 pub const fn cssf(&self) -> bool {
24927 let val = (self.0 >> 31usize) & 0x01; 23454 let val = (self.0 >> 9usize) & 0x01;
24928 val != 0 23455 val != 0
24929 } 23456 }
24930 #[doc = "SYSCFG_CFGR3 lock bit"] 23457 #[doc = "Clear D1 domain CPU1 Standby, Stop and HOLD flags (always read as 0) This bit is cleared to 0 by hardware."]
24931 pub fn set_ref_lock(&mut self, val: bool) { 23458 pub fn set_cssf(&mut self, val: bool) {
24932 self.0 = (self.0 & !(0x01 << 31usize)) | (((val as u32) & 0x01) << 31usize); 23459 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
23460 }
23461 #[doc = "Keep system D3 domain in Run mode regardless of the CPU sub-systems modes"]
23462 pub const fn run_d3(&self) -> bool {
23463 let val = (self.0 >> 11usize) & 0x01;
23464 val != 0
23465 }
23466 #[doc = "Keep system D3 domain in Run mode regardless of the CPU sub-systems modes"]
23467 pub fn set_run_d3(&mut self, val: bool) {
23468 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
24933 } 23469 }
24934 } 23470 }
24935 impl Default for Cfgr3 { 23471 impl Default for Cpucr {
24936 fn default() -> Cfgr3 { 23472 fn default() -> Cpucr {
24937 Cfgr3(0) 23473 Cpucr(0)
24938 } 23474 }
24939 } 23475 }
24940 #[doc = "CFGR2"] 23476 #[doc = "Reset only by POR only, not reset by wakeup from Standby mode and RESET pad. The lower byte of this register is written once after POR and shall be written before changing VOS level or ck_sys clock frequency. No limitation applies to the upper bytes.Programming data corresponding to an invalid combination of SDLEVEL, SDEXTHP, SDEN, LDOEN and BYPASS bits (see Table9) will be ignored: data will not be written, the written-once mechanism will lock the register and any further write access will be ignored. The default supply configuration will be kept and the ACTVOSRDY bit in PWR control status register 1 (PWR_CSR1) will go on indicating invalid voltage levels. The system shall be power cycled before writing a new value."]
24941 #[repr(transparent)] 23477 #[repr(transparent)]
24942 #[derive(Copy, Clone, Eq, PartialEq)] 23478 #[derive(Copy, Clone, Eq, PartialEq)]
24943 pub struct Cfgr2(pub u32); 23479 pub struct Cr3(pub u32);
24944 impl Cfgr2 { 23480 impl Cr3 {
24945 #[doc = "Firewall disable bit"] 23481 #[doc = "Power management unit bypass"]
24946 pub const fn fwdis(&self) -> bool { 23482 pub const fn bypass(&self) -> bool {
24947 let val = (self.0 >> 0usize) & 0x01; 23483 let val = (self.0 >> 0usize) & 0x01;
24948 val != 0 23484 val != 0
24949 } 23485 }
24950 #[doc = "Firewall disable bit"] 23486 #[doc = "Power management unit bypass"]
24951 pub fn set_fwdis(&mut self, val: bool) { 23487 pub fn set_bypass(&mut self, val: bool) {
24952 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 23488 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
24953 } 23489 }
24954 #[doc = "Fm+ drive capability on PB6 enable bit"] 23490 #[doc = "Low drop-out regulator enable"]
24955 pub const fn i2c_pb6_fmp(&self) -> bool { 23491 pub const fn ldoen(&self) -> bool {
24956 let val = (self.0 >> 8usize) & 0x01; 23492 let val = (self.0 >> 1usize) & 0x01;
24957 val != 0 23493 val != 0
24958 } 23494 }
24959 #[doc = "Fm+ drive capability on PB6 enable bit"] 23495 #[doc = "Low drop-out regulator enable"]
24960 pub fn set_i2c_pb6_fmp(&mut self, val: bool) { 23496 pub fn set_ldoen(&mut self, val: bool) {
24961 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 23497 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
24962 } 23498 }
24963 #[doc = "Fm+ drive capability on PB7 enable bit"] 23499 #[doc = "SD converter Enable"]
24964 pub const fn i2c_pb7_fmp(&self) -> bool { 23500 pub const fn scuen(&self) -> bool {
24965 let val = (self.0 >> 9usize) & 0x01; 23501 let val = (self.0 >> 2usize) & 0x01;
24966 val != 0 23502 val != 0
24967 } 23503 }
24968 #[doc = "Fm+ drive capability on PB7 enable bit"] 23504 #[doc = "SD converter Enable"]
24969 pub fn set_i2c_pb7_fmp(&mut self, val: bool) { 23505 pub fn set_scuen(&mut self, val: bool) {
24970 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 23506 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
24971 } 23507 }
24972 #[doc = "Fm+ drive capability on PB8 enable bit"] 23508 #[doc = "VBAT charging enable"]
24973 pub const fn i2c_pb8_fmp(&self) -> bool { 23509 pub const fn vbe(&self) -> bool {
24974 let val = (self.0 >> 10usize) & 0x01; 23510 let val = (self.0 >> 8usize) & 0x01;
24975 val != 0 23511 val != 0
24976 } 23512 }
24977 #[doc = "Fm+ drive capability on PB8 enable bit"] 23513 #[doc = "VBAT charging enable"]
24978 pub fn set_i2c_pb8_fmp(&mut self, val: bool) { 23514 pub fn set_vbe(&mut self, val: bool) {
24979 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize); 23515 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
24980 } 23516 }
24981 #[doc = "Fm+ drive capability on PB9 enable bit"] 23517 #[doc = "VBAT charging resistor selection"]
24982 pub const fn i2c_pb9_fmp(&self) -> bool { 23518 pub const fn vbrs(&self) -> bool {
24983 let val = (self.0 >> 11usize) & 0x01; 23519 let val = (self.0 >> 9usize) & 0x01;
24984 val != 0 23520 val != 0
24985 } 23521 }
24986 #[doc = "Fm+ drive capability on PB9 enable bit"] 23522 #[doc = "VBAT charging resistor selection"]
24987 pub fn set_i2c_pb9_fmp(&mut self, val: bool) { 23523 pub fn set_vbrs(&mut self, val: bool) {
24988 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize); 23524 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
24989 } 23525 }
24990 #[doc = "I2C1 Fm+ drive capability enable bit"] 23526 #[doc = "VDD33USB voltage level detector enable."]
24991 pub const fn i2c1_fmp(&self) -> bool { 23527 pub const fn usb33den(&self) -> bool {
24992 let val = (self.0 >> 12usize) & 0x01; 23528 let val = (self.0 >> 24usize) & 0x01;
24993 val != 0 23529 val != 0
24994 } 23530 }
24995 #[doc = "I2C1 Fm+ drive capability enable bit"] 23531 #[doc = "VDD33USB voltage level detector enable."]
24996 pub fn set_i2c1_fmp(&mut self, val: bool) { 23532 pub fn set_usb33den(&mut self, val: bool) {
24997 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize); 23533 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize);
24998 } 23534 }
24999 #[doc = "I2C2 Fm+ drive capability enable bit"] 23535 #[doc = "USB regulator enable."]
25000 pub const fn i2c2_fmp(&self) -> bool { 23536 pub const fn usbregen(&self) -> bool {
25001 let val = (self.0 >> 13usize) & 0x01; 23537 let val = (self.0 >> 25usize) & 0x01;
25002 val != 0 23538 val != 0
25003 } 23539 }
25004 #[doc = "I2C2 Fm+ drive capability enable bit"] 23540 #[doc = "USB regulator enable."]
25005 pub fn set_i2c2_fmp(&mut self, val: bool) { 23541 pub fn set_usbregen(&mut self, val: bool) {
25006 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize); 23542 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize);
25007 } 23543 }
25008 #[doc = "I2C3 Fm+ drive capability enable bit"] 23544 #[doc = "USB supply ready."]
25009 pub const fn i2c3_fmp(&self) -> bool { 23545 pub const fn usb33rdy(&self) -> bool {
25010 let val = (self.0 >> 14usize) & 0x01; 23546 let val = (self.0 >> 26usize) & 0x01;
25011 val != 0 23547 val != 0
25012 } 23548 }
25013 #[doc = "I2C3 Fm+ drive capability enable bit"] 23549 #[doc = "USB supply ready."]
25014 pub fn set_i2c3_fmp(&mut self, val: bool) { 23550 pub fn set_usb33rdy(&mut self, val: bool) {
25015 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize); 23551 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
25016 } 23552 }
25017 } 23553 }
25018 impl Default for Cfgr2 { 23554 impl Default for Cr3 {
25019 fn default() -> Cfgr2 { 23555 fn default() -> Cr3 {
25020 Cfgr2(0) 23556 Cr3(0)
25021 } 23557 }
25022 } 23558 }
25023 #[doc = "configuration register 1"] 23559 #[doc = "This register allows controlling D3 domain power.Following reset VOSRDY will be read 1 by software"]
25024 #[repr(transparent)] 23560 #[repr(transparent)]
25025 #[derive(Copy, Clone, Eq, PartialEq)] 23561 #[derive(Copy, Clone, Eq, PartialEq)]
25026 pub struct Cfgr1(pub u32); 23562 pub struct D3cr(pub u32);
25027 impl Cfgr1 { 23563 impl D3cr {
25028 #[doc = "Memory mapping selection bits"] 23564 #[doc = "VOS Ready bit for VCORE voltage scaling output selection. This bit is set to 1 by hardware when Bypass mode is selected in PWR control register 3 (PWR_CR3)."]
25029 pub const fn mem_mode(&self) -> u8 { 23565 pub const fn vosrdy(&self) -> bool {
25030 let val = (self.0 >> 0usize) & 0x03; 23566 let val = (self.0 >> 13usize) & 0x01;
25031 val as u8
25032 }
25033 #[doc = "Memory mapping selection bits"]
25034 pub fn set_mem_mode(&mut self, val: u8) {
25035 self.0 = (self.0 & !(0x03 << 0usize)) | (((val as u32) & 0x03) << 0usize);
25036 }
25037 #[doc = "User bank swapping"]
25038 pub const fn ufb(&self) -> bool {
25039 let val = (self.0 >> 3usize) & 0x01;
25040 val != 0 23567 val != 0
25041 } 23568 }
25042 #[doc = "User bank swapping"] 23569 #[doc = "VOS Ready bit for VCORE voltage scaling output selection. This bit is set to 1 by hardware when Bypass mode is selected in PWR control register 3 (PWR_CR3)."]
25043 pub fn set_ufb(&mut self, val: bool) { 23570 pub fn set_vosrdy(&mut self, val: bool) {
25044 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize); 23571 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
25045 } 23572 }
25046 #[doc = "Boot mode selected by the boot pins status bits"] 23573 #[doc = "Voltage scaling selection according to performance These bits control the VCORE voltage level and allow to obtains the best trade-off between power consumption and performance: When increasing the performance, the voltage scaling shall be changed before increasing the system frequency. When decreasing performance, the system frequency shall first be decreased before changing the voltage scaling."]
25047 pub const fn boot_mode(&self) -> u8 { 23574 pub const fn vos(&self) -> u8 {
25048 let val = (self.0 >> 8usize) & 0x03; 23575 let val = (self.0 >> 14usize) & 0x03;
25049 val as u8 23576 val as u8
25050 } 23577 }
25051 #[doc = "Boot mode selected by the boot pins status bits"] 23578 #[doc = "Voltage scaling selection according to performance These bits control the VCORE voltage level and allow to obtains the best trade-off between power consumption and performance: When increasing the performance, the voltage scaling shall be changed before increasing the system frequency. When decreasing performance, the system frequency shall first be decreased before changing the voltage scaling."]
25052 pub fn set_boot_mode(&mut self, val: u8) { 23579 pub fn set_vos(&mut self, val: u8) {
25053 self.0 = (self.0 & !(0x03 << 8usize)) | (((val as u32) & 0x03) << 8usize); 23580 self.0 = (self.0 & !(0x03 << 14usize)) | (((val as u32) & 0x03) << 14usize);
25054 } 23581 }
25055 } 23582 }
25056 impl Default for Cfgr1 { 23583 impl Default for D3cr {
25057 fn default() -> Cfgr1 { 23584 fn default() -> D3cr {
25058 Cfgr1(0) 23585 D3cr(0)
25059 } 23586 }
25060 } 23587 }
25061 } 23588 }
@@ -25123,6 +23650,107 @@ pub mod spi_v3 {
25123 } 23650 }
25124 pub mod regs { 23651 pub mod regs {
25125 use crate::generic::*; 23652 use crate::generic::*;
23653 #[doc = "control register 1"]
23654 #[repr(transparent)]
23655 #[derive(Copy, Clone, Eq, PartialEq)]
23656 pub struct Cr1(pub u32);
23657 impl Cr1 {
23658 #[doc = "Serial Peripheral Enable"]
23659 pub const fn spe(&self) -> bool {
23660 let val = (self.0 >> 0usize) & 0x01;
23661 val != 0
23662 }
23663 #[doc = "Serial Peripheral Enable"]
23664 pub fn set_spe(&mut self, val: bool) {
23665 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
23666 }
23667 #[doc = "Master automatic SUSP in Receive mode"]
23668 pub const fn masrx(&self) -> bool {
23669 let val = (self.0 >> 8usize) & 0x01;
23670 val != 0
23671 }
23672 #[doc = "Master automatic SUSP in Receive mode"]
23673 pub fn set_masrx(&mut self, val: bool) {
23674 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
23675 }
23676 #[doc = "Master transfer start"]
23677 pub const fn cstart(&self) -> bool {
23678 let val = (self.0 >> 9usize) & 0x01;
23679 val != 0
23680 }
23681 #[doc = "Master transfer start"]
23682 pub fn set_cstart(&mut self, val: bool) {
23683 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
23684 }
23685 #[doc = "Master SUSPend request"]
23686 pub const fn csusp(&self) -> bool {
23687 let val = (self.0 >> 10usize) & 0x01;
23688 val != 0
23689 }
23690 #[doc = "Master SUSPend request"]
23691 pub fn set_csusp(&mut self, val: bool) {
23692 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
23693 }
23694 #[doc = "Rx/Tx direction at Half-duplex mode"]
23695 pub const fn hddir(&self) -> super::vals::Hddir {
23696 let val = (self.0 >> 11usize) & 0x01;
23697 super::vals::Hddir(val as u8)
23698 }
23699 #[doc = "Rx/Tx direction at Half-duplex mode"]
23700 pub fn set_hddir(&mut self, val: super::vals::Hddir) {
23701 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
23702 }
23703 #[doc = "Internal SS signal input level"]
23704 pub const fn ssi(&self) -> bool {
23705 let val = (self.0 >> 12usize) & 0x01;
23706 val != 0
23707 }
23708 #[doc = "Internal SS signal input level"]
23709 pub fn set_ssi(&mut self, val: bool) {
23710 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
23711 }
23712 #[doc = "32-bit CRC polynomial configuration"]
23713 pub const fn crc33_17(&self) -> super::vals::Crc {
23714 let val = (self.0 >> 13usize) & 0x01;
23715 super::vals::Crc(val as u8)
23716 }
23717 #[doc = "32-bit CRC polynomial configuration"]
23718 pub fn set_crc33_17(&mut self, val: super::vals::Crc) {
23719 self.0 = (self.0 & !(0x01 << 13usize)) | (((val.0 as u32) & 0x01) << 13usize);
23720 }
23721 #[doc = "CRC calculation initialization pattern control for receiver"]
23722 pub const fn rcrcini(&self) -> super::vals::Rcrcini {
23723 let val = (self.0 >> 14usize) & 0x01;
23724 super::vals::Rcrcini(val as u8)
23725 }
23726 #[doc = "CRC calculation initialization pattern control for receiver"]
23727 pub fn set_rcrcini(&mut self, val: super::vals::Rcrcini) {
23728 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
23729 }
23730 #[doc = "CRC calculation initialization pattern control for transmitter"]
23731 pub const fn tcrcini(&self) -> super::vals::Tcrcini {
23732 let val = (self.0 >> 15usize) & 0x01;
23733 super::vals::Tcrcini(val as u8)
23734 }
23735 #[doc = "CRC calculation initialization pattern control for transmitter"]
23736 pub fn set_tcrcini(&mut self, val: super::vals::Tcrcini) {
23737 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
23738 }
23739 #[doc = "Locking the AF configuration of associated IOs"]
23740 pub const fn iolock(&self) -> bool {
23741 let val = (self.0 >> 16usize) & 0x01;
23742 val != 0
23743 }
23744 #[doc = "Locking the AF configuration of associated IOs"]
23745 pub fn set_iolock(&mut self, val: bool) {
23746 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
23747 }
23748 }
23749 impl Default for Cr1 {
23750 fn default() -> Cr1 {
23751 Cr1(0)
23752 }
23753 }
25126 #[doc = "configuration register 1"] 23754 #[doc = "configuration register 1"]
25127 #[repr(transparent)] 23755 #[repr(transparent)]
25128 #[derive(Copy, Clone, Eq, PartialEq)] 23756 #[derive(Copy, Clone, Eq, PartialEq)]
@@ -25215,6 +23843,27 @@ pub mod spi_v3 {
25215 Cfg1(0) 23843 Cfg1(0)
25216 } 23844 }
25217 } 23845 }
23846 #[doc = "Transmit Data Register"]
23847 #[repr(transparent)]
23848 #[derive(Copy, Clone, Eq, PartialEq)]
23849 pub struct Txdr(pub u32);
23850 impl Txdr {
23851 #[doc = "Transmit data register"]
23852 pub const fn txdr(&self) -> u32 {
23853 let val = (self.0 >> 0usize) & 0xffff_ffff;
23854 val as u32
23855 }
23856 #[doc = "Transmit data register"]
23857 pub fn set_txdr(&mut self, val: u32) {
23858 self.0 =
23859 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
23860 }
23861 }
23862 impl Default for Txdr {
23863 fn default() -> Txdr {
23864 Txdr(0)
23865 }
23866 }
25218 #[doc = "configuration register 2"] 23867 #[doc = "configuration register 2"]
25219 #[repr(transparent)] 23868 #[repr(transparent)]
25220 #[derive(Copy, Clone, Eq, PartialEq)] 23869 #[derive(Copy, Clone, Eq, PartialEq)]
@@ -25352,46 +24001,25 @@ pub mod spi_v3 {
25352 Cfg2(0) 24001 Cfg2(0)
25353 } 24002 }
25354 } 24003 }
25355 #[doc = "Underrun Data Register"] 24004 #[doc = "Polynomial Register"]
25356 #[repr(transparent)]
25357 #[derive(Copy, Clone, Eq, PartialEq)]
25358 pub struct Udrdr(pub u32);
25359 impl Udrdr {
25360 #[doc = "Data at slave underrun condition"]
25361 pub const fn udrdr(&self) -> u32 {
25362 let val = (self.0 >> 0usize) & 0xffff_ffff;
25363 val as u32
25364 }
25365 #[doc = "Data at slave underrun condition"]
25366 pub fn set_udrdr(&mut self, val: u32) {
25367 self.0 =
25368 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
25369 }
25370 }
25371 impl Default for Udrdr {
25372 fn default() -> Udrdr {
25373 Udrdr(0)
25374 }
25375 }
25376 #[doc = "Transmit Data Register"]
25377 #[repr(transparent)] 24005 #[repr(transparent)]
25378 #[derive(Copy, Clone, Eq, PartialEq)] 24006 #[derive(Copy, Clone, Eq, PartialEq)]
25379 pub struct Txdr(pub u32); 24007 pub struct Crcpoly(pub u32);
25380 impl Txdr { 24008 impl Crcpoly {
25381 #[doc = "Transmit data register"] 24009 #[doc = "CRC polynomial register"]
25382 pub const fn txdr(&self) -> u32 { 24010 pub const fn crcpoly(&self) -> u32 {
25383 let val = (self.0 >> 0usize) & 0xffff_ffff; 24011 let val = (self.0 >> 0usize) & 0xffff_ffff;
25384 val as u32 24012 val as u32
25385 } 24013 }
25386 #[doc = "Transmit data register"] 24014 #[doc = "CRC polynomial register"]
25387 pub fn set_txdr(&mut self, val: u32) { 24015 pub fn set_crcpoly(&mut self, val: u32) {
25388 self.0 = 24016 self.0 =
25389 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize); 24017 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
25390 } 24018 }
25391 } 24019 }
25392 impl Default for Txdr { 24020 impl Default for Crcpoly {
25393 fn default() -> Txdr { 24021 fn default() -> Crcpoly {
25394 Txdr(0) 24022 Crcpoly(0)
25395 } 24023 }
25396 } 24024 }
25397 #[doc = "Receive Data Register"] 24025 #[doc = "Receive Data Register"]
@@ -25415,25 +24043,25 @@ pub mod spi_v3 {
25415 Rxdr(0) 24043 Rxdr(0)
25416 } 24044 }
25417 } 24045 }
25418 #[doc = "Polynomial Register"] 24046 #[doc = "Receiver CRC Register"]
25419 #[repr(transparent)] 24047 #[repr(transparent)]
25420 #[derive(Copy, Clone, Eq, PartialEq)] 24048 #[derive(Copy, Clone, Eq, PartialEq)]
25421 pub struct Crcpoly(pub u32); 24049 pub struct Rxcrc(pub u32);
25422 impl Crcpoly { 24050 impl Rxcrc {
25423 #[doc = "CRC polynomial register"] 24051 #[doc = "CRC register for receiver"]
25424 pub const fn crcpoly(&self) -> u32 { 24052 pub const fn rxcrc(&self) -> u32 {
25425 let val = (self.0 >> 0usize) & 0xffff_ffff; 24053 let val = (self.0 >> 0usize) & 0xffff_ffff;
25426 val as u32 24054 val as u32
25427 } 24055 }
25428 #[doc = "CRC polynomial register"] 24056 #[doc = "CRC register for receiver"]
25429 pub fn set_crcpoly(&mut self, val: u32) { 24057 pub fn set_rxcrc(&mut self, val: u32) {
25430 self.0 = 24058 self.0 =
25431 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize); 24059 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
25432 } 24060 }
25433 } 24061 }
25434 impl Default for Crcpoly { 24062 impl Default for Rxcrc {
25435 fn default() -> Crcpoly { 24063 fn default() -> Rxcrc {
25436 Crcpoly(0) 24064 Rxcrc(0)
25437 } 24065 }
25438 } 24066 }
25439 #[doc = "Interrupt/Status Flags Clear Register"] 24067 #[doc = "Interrupt/Status Flags Clear Register"]
@@ -25528,6 +24156,77 @@ pub mod spi_v3 {
25528 Ifcr(0) 24156 Ifcr(0)
25529 } 24157 }
25530 } 24158 }
24159 #[doc = "Transmitter CRC Register"]
24160 #[repr(transparent)]
24161 #[derive(Copy, Clone, Eq, PartialEq)]
24162 pub struct Txcrc(pub u32);
24163 impl Txcrc {
24164 #[doc = "CRC register for transmitter"]
24165 pub const fn txcrc(&self) -> u32 {
24166 let val = (self.0 >> 0usize) & 0xffff_ffff;
24167 val as u32
24168 }
24169 #[doc = "CRC register for transmitter"]
24170 pub fn set_txcrc(&mut self, val: u32) {
24171 self.0 =
24172 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
24173 }
24174 }
24175 impl Default for Txcrc {
24176 fn default() -> Txcrc {
24177 Txcrc(0)
24178 }
24179 }
24180 #[doc = "Underrun Data Register"]
24181 #[repr(transparent)]
24182 #[derive(Copy, Clone, Eq, PartialEq)]
24183 pub struct Udrdr(pub u32);
24184 impl Udrdr {
24185 #[doc = "Data at slave underrun condition"]
24186 pub const fn udrdr(&self) -> u32 {
24187 let val = (self.0 >> 0usize) & 0xffff_ffff;
24188 val as u32
24189 }
24190 #[doc = "Data at slave underrun condition"]
24191 pub fn set_udrdr(&mut self, val: u32) {
24192 self.0 =
24193 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
24194 }
24195 }
24196 impl Default for Udrdr {
24197 fn default() -> Udrdr {
24198 Udrdr(0)
24199 }
24200 }
24201 #[doc = "control register 2"]
24202 #[repr(transparent)]
24203 #[derive(Copy, Clone, Eq, PartialEq)]
24204 pub struct Cr2(pub u32);
24205 impl Cr2 {
24206 #[doc = "Number of data at current transfer"]
24207 pub const fn tsize(&self) -> u16 {
24208 let val = (self.0 >> 0usize) & 0xffff;
24209 val as u16
24210 }
24211 #[doc = "Number of data at current transfer"]
24212 pub fn set_tsize(&mut self, val: u16) {
24213 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
24214 }
24215 #[doc = "Number of data transfer extension to be reload into TSIZE just when a previous"]
24216 pub const fn tser(&self) -> u16 {
24217 let val = (self.0 >> 16usize) & 0xffff;
24218 val as u16
24219 }
24220 #[doc = "Number of data transfer extension to be reload into TSIZE just when a previous"]
24221 pub fn set_tser(&mut self, val: u16) {
24222 self.0 = (self.0 & !(0xffff << 16usize)) | (((val as u32) & 0xffff) << 16usize);
24223 }
24224 }
24225 impl Default for Cr2 {
24226 fn default() -> Cr2 {
24227 Cr2(0)
24228 }
24229 }
25531 #[doc = "Interrupt Enable Register"] 24230 #[doc = "Interrupt Enable Register"]
25532 #[repr(transparent)] 24231 #[repr(transparent)]
25533 #[derive(Copy, Clone, Eq, PartialEq)] 24232 #[derive(Copy, Clone, Eq, PartialEq)]
@@ -25638,157 +24337,6 @@ pub mod spi_v3 {
25638 Ier(0) 24337 Ier(0)
25639 } 24338 }
25640 } 24339 }
25641 #[doc = "control register 2"]
25642 #[repr(transparent)]
25643 #[derive(Copy, Clone, Eq, PartialEq)]
25644 pub struct Cr2(pub u32);
25645 impl Cr2 {
25646 #[doc = "Number of data at current transfer"]
25647 pub const fn tsize(&self) -> u16 {
25648 let val = (self.0 >> 0usize) & 0xffff;
25649 val as u16
25650 }
25651 #[doc = "Number of data at current transfer"]
25652 pub fn set_tsize(&mut self, val: u16) {
25653 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
25654 }
25655 #[doc = "Number of data transfer extension to be reload into TSIZE just when a previous"]
25656 pub const fn tser(&self) -> u16 {
25657 let val = (self.0 >> 16usize) & 0xffff;
25658 val as u16
25659 }
25660 #[doc = "Number of data transfer extension to be reload into TSIZE just when a previous"]
25661 pub fn set_tser(&mut self, val: u16) {
25662 self.0 = (self.0 & !(0xffff << 16usize)) | (((val as u32) & 0xffff) << 16usize);
25663 }
25664 }
25665 impl Default for Cr2 {
25666 fn default() -> Cr2 {
25667 Cr2(0)
25668 }
25669 }
25670 #[doc = "Receiver CRC Register"]
25671 #[repr(transparent)]
25672 #[derive(Copy, Clone, Eq, PartialEq)]
25673 pub struct Rxcrc(pub u32);
25674 impl Rxcrc {
25675 #[doc = "CRC register for receiver"]
25676 pub const fn rxcrc(&self) -> u32 {
25677 let val = (self.0 >> 0usize) & 0xffff_ffff;
25678 val as u32
25679 }
25680 #[doc = "CRC register for receiver"]
25681 pub fn set_rxcrc(&mut self, val: u32) {
25682 self.0 =
25683 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
25684 }
25685 }
25686 impl Default for Rxcrc {
25687 fn default() -> Rxcrc {
25688 Rxcrc(0)
25689 }
25690 }
25691 #[doc = "control register 1"]
25692 #[repr(transparent)]
25693 #[derive(Copy, Clone, Eq, PartialEq)]
25694 pub struct Cr1(pub u32);
25695 impl Cr1 {
25696 #[doc = "Serial Peripheral Enable"]
25697 pub const fn spe(&self) -> bool {
25698 let val = (self.0 >> 0usize) & 0x01;
25699 val != 0
25700 }
25701 #[doc = "Serial Peripheral Enable"]
25702 pub fn set_spe(&mut self, val: bool) {
25703 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
25704 }
25705 #[doc = "Master automatic SUSP in Receive mode"]
25706 pub const fn masrx(&self) -> bool {
25707 let val = (self.0 >> 8usize) & 0x01;
25708 val != 0
25709 }
25710 #[doc = "Master automatic SUSP in Receive mode"]
25711 pub fn set_masrx(&mut self, val: bool) {
25712 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
25713 }
25714 #[doc = "Master transfer start"]
25715 pub const fn cstart(&self) -> bool {
25716 let val = (self.0 >> 9usize) & 0x01;
25717 val != 0
25718 }
25719 #[doc = "Master transfer start"]
25720 pub fn set_cstart(&mut self, val: bool) {
25721 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
25722 }
25723 #[doc = "Master SUSPend request"]
25724 pub const fn csusp(&self) -> bool {
25725 let val = (self.0 >> 10usize) & 0x01;
25726 val != 0
25727 }
25728 #[doc = "Master SUSPend request"]
25729 pub fn set_csusp(&mut self, val: bool) {
25730 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
25731 }
25732 #[doc = "Rx/Tx direction at Half-duplex mode"]
25733 pub const fn hddir(&self) -> super::vals::Hddir {
25734 let val = (self.0 >> 11usize) & 0x01;
25735 super::vals::Hddir(val as u8)
25736 }
25737 #[doc = "Rx/Tx direction at Half-duplex mode"]
25738 pub fn set_hddir(&mut self, val: super::vals::Hddir) {
25739 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
25740 }
25741 #[doc = "Internal SS signal input level"]
25742 pub const fn ssi(&self) -> bool {
25743 let val = (self.0 >> 12usize) & 0x01;
25744 val != 0
25745 }
25746 #[doc = "Internal SS signal input level"]
25747 pub fn set_ssi(&mut self, val: bool) {
25748 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
25749 }
25750 #[doc = "32-bit CRC polynomial configuration"]
25751 pub const fn crc33_17(&self) -> super::vals::Crc {
25752 let val = (self.0 >> 13usize) & 0x01;
25753 super::vals::Crc(val as u8)
25754 }
25755 #[doc = "32-bit CRC polynomial configuration"]
25756 pub fn set_crc33_17(&mut self, val: super::vals::Crc) {
25757 self.0 = (self.0 & !(0x01 << 13usize)) | (((val.0 as u32) & 0x01) << 13usize);
25758 }
25759 #[doc = "CRC calculation initialization pattern control for receiver"]
25760 pub const fn rcrcini(&self) -> super::vals::Rcrcini {
25761 let val = (self.0 >> 14usize) & 0x01;
25762 super::vals::Rcrcini(val as u8)
25763 }
25764 #[doc = "CRC calculation initialization pattern control for receiver"]
25765 pub fn set_rcrcini(&mut self, val: super::vals::Rcrcini) {
25766 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
25767 }
25768 #[doc = "CRC calculation initialization pattern control for transmitter"]
25769 pub const fn tcrcini(&self) -> super::vals::Tcrcini {
25770 let val = (self.0 >> 15usize) & 0x01;
25771 super::vals::Tcrcini(val as u8)
25772 }
25773 #[doc = "CRC calculation initialization pattern control for transmitter"]
25774 pub fn set_tcrcini(&mut self, val: super::vals::Tcrcini) {
25775 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
25776 }
25777 #[doc = "Locking the AF configuration of associated IOs"]
25778 pub const fn iolock(&self) -> bool {
25779 let val = (self.0 >> 16usize) & 0x01;
25780 val != 0
25781 }
25782 #[doc = "Locking the AF configuration of associated IOs"]
25783 pub fn set_iolock(&mut self, val: bool) {
25784 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
25785 }
25786 }
25787 impl Default for Cr1 {
25788 fn default() -> Cr1 {
25789 Cr1(0)
25790 }
25791 }
25792 #[doc = "Status Register"] 24340 #[doc = "Status Register"]
25793 #[repr(transparent)] 24341 #[repr(transparent)]
25794 #[derive(Copy, Clone, Eq, PartialEq)] 24342 #[derive(Copy, Clone, Eq, PartialEq)]
@@ -25944,42 +24492,73 @@ pub mod spi_v3 {
25944 Sr(0) 24492 Sr(0)
25945 } 24493 }
25946 } 24494 }
25947 #[doc = "Transmitter CRC Register"]
25948 #[repr(transparent)]
25949 #[derive(Copy, Clone, Eq, PartialEq)]
25950 pub struct Txcrc(pub u32);
25951 impl Txcrc {
25952 #[doc = "CRC register for transmitter"]
25953 pub const fn txcrc(&self) -> u32 {
25954 let val = (self.0 >> 0usize) & 0xffff_ffff;
25955 val as u32
25956 }
25957 #[doc = "CRC register for transmitter"]
25958 pub fn set_txcrc(&mut self, val: u32) {
25959 self.0 =
25960 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
25961 }
25962 }
25963 impl Default for Txcrc {
25964 fn default() -> Txcrc {
25965 Txcrc(0)
25966 }
25967 }
25968 } 24495 }
25969 pub mod vals { 24496 pub mod vals {
25970 use crate::generic::*; 24497 use crate::generic::*;
25971 #[repr(transparent)] 24498 #[repr(transparent)]
25972 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24499 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25973 pub struct Rxplvl(pub u8); 24500 pub struct Udrdet(pub u8);
25974 impl Rxplvl { 24501 impl Udrdet {
25975 #[doc = "Zero frames beyond packing ratio available"] 24502 #[doc = "Underrun is detected at begin of data frame"]
25976 pub const ZEROFRAMES: Self = Self(0); 24503 pub const STARTOFFRAME: Self = Self(0);
25977 #[doc = "One frame beyond packing ratio available"] 24504 #[doc = "Underrun is detected at end of last data frame"]
25978 pub const ONEFRAME: Self = Self(0x01); 24505 pub const ENDOFFRAME: Self = Self(0x01);
25979 #[doc = "Two frame beyond packing ratio available"] 24506 #[doc = "Underrun is detected at begin of active SS signal"]
25980 pub const TWOFRAMES: Self = Self(0x02); 24507 pub const STARTOFSLAVESELECT: Self = Self(0x02);
25981 #[doc = "Three frame beyond packing ratio available"] 24508 }
25982 pub const THREEFRAMES: Self = Self(0x03); 24509 #[repr(transparent)]
24510 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24511 pub struct Sp(pub u8);
24512 impl Sp {
24513 #[doc = "Motorola SPI protocol"]
24514 pub const MOTOROLA: Self = Self(0);
24515 #[doc = "TI SPI protocol"]
24516 pub const TI: Self = Self(0x01);
24517 }
24518 #[repr(transparent)]
24519 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24520 pub struct Datfmt(pub u8);
24521 impl Datfmt {
24522 #[doc = "The data inside RXDR and TXDR are right aligned"]
24523 pub const RIGHTALIGNED: Self = Self(0);
24524 #[doc = "The data inside RXDR and TXDR are left aligned"]
24525 pub const LEFTALIGNED: Self = Self(0x01);
24526 }
24527 #[repr(transparent)]
24528 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24529 pub struct Ssom(pub u8);
24530 impl Ssom {
24531 #[doc = "SS is asserted until data transfer complete"]
24532 pub const ASSERTED: Self = Self(0);
24533 #[doc = "Data frames interleaved with SS not asserted during MIDI"]
24534 pub const NOTASSERTED: Self = Self(0x01);
24535 }
24536 #[repr(transparent)]
24537 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24538 pub struct Afcntr(pub u8);
24539 impl Afcntr {
24540 #[doc = "Peripheral takes no control of GPIOs while disabled"]
24541 pub const NOTCONTROLLED: Self = Self(0);
24542 #[doc = "Peripheral controls GPIOs while disabled"]
24543 pub const CONTROLLED: Self = Self(0x01);
24544 }
24545 #[repr(transparent)]
24546 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24547 pub struct Rcrcini(pub u8);
24548 impl Rcrcini {
24549 #[doc = "All zeros RX CRC initialization pattern"]
24550 pub const ALLZEROS: Self = Self(0);
24551 #[doc = "All ones RX CRC initialization pattern"]
24552 pub const ALLONES: Self = Self(0x01);
24553 }
24554 #[repr(transparent)]
24555 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24556 pub struct Crc(pub u8);
24557 impl Crc {
24558 #[doc = "Full size (33/17 bit) CRC polynomial is not used"]
24559 pub const DISABLED: Self = Self(0);
24560 #[doc = "Full size (33/17 bit) CRC polynomial is used"]
24561 pub const ENABLED: Self = Self(0x01);
25983 } 24562 }
25984 #[repr(transparent)] 24563 #[repr(transparent)]
25985 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24564 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
@@ -25994,12 +24573,74 @@ pub mod spi_v3 {
25994 } 24573 }
25995 #[repr(transparent)] 24574 #[repr(transparent)]
25996 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24575 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25997 pub struct Hddir(pub u8); 24576 pub struct Rxwne(pub u8);
25998 impl Hddir { 24577 impl Rxwne {
25999 #[doc = "Receiver in half duplex mode"] 24578 #[doc = "Less than 32-bit data frame received"]
26000 pub const RECEIVER: Self = Self(0); 24579 pub const LESSTHAN32: Self = Self(0);
26001 #[doc = "Transmitter in half duplex mode"] 24580 #[doc = "At least 32-bit data frame received"]
24581 pub const ATLEAST32: Self = Self(0x01);
24582 }
24583 #[repr(transparent)]
24584 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24585 pub struct Ssiop(pub u8);
24586 impl Ssiop {
24587 #[doc = "Low level is active for SS signal"]
24588 pub const ACTIVELOW: Self = Self(0);
24589 #[doc = "High level is active for SS signal"]
24590 pub const ACTIVEHIGH: Self = Self(0x01);
24591 }
24592 #[repr(transparent)]
24593 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24594 pub struct Comm(pub u8);
24595 impl Comm {
24596 #[doc = "Full duplex"]
24597 pub const FULLDUPLEX: Self = Self(0);
24598 #[doc = "Simplex transmitter only"]
26002 pub const TRANSMITTER: Self = Self(0x01); 24599 pub const TRANSMITTER: Self = Self(0x01);
24600 #[doc = "Simplex receiver only"]
24601 pub const RECEIVER: Self = Self(0x02);
24602 #[doc = "Half duplex"]
24603 pub const HALFDUPLEX: Self = Self(0x03);
24604 }
24605 #[repr(transparent)]
24606 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24607 pub struct Tcrcini(pub u8);
24608 impl Tcrcini {
24609 #[doc = "All zeros TX CRC initialization pattern"]
24610 pub const ALLZEROS: Self = Self(0);
24611 #[doc = "All ones TX CRC initialization pattern"]
24612 pub const ALLONES: Self = Self(0x01);
24613 }
24614 #[repr(transparent)]
24615 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24616 pub struct Lsbfrst(pub u8);
24617 impl Lsbfrst {
24618 #[doc = "Data is transmitted/received with the MSB first"]
24619 pub const MSBFIRST: Self = Self(0);
24620 #[doc = "Data is transmitted/received with the LSB first"]
24621 pub const LSBFIRST: Self = Self(0x01);
24622 }
24623 #[repr(transparent)]
24624 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24625 pub struct Rxplvl(pub u8);
24626 impl Rxplvl {
24627 #[doc = "Zero frames beyond packing ratio available"]
24628 pub const ZEROFRAMES: Self = Self(0);
24629 #[doc = "One frame beyond packing ratio available"]
24630 pub const ONEFRAME: Self = Self(0x01);
24631 #[doc = "Two frame beyond packing ratio available"]
24632 pub const TWOFRAMES: Self = Self(0x02);
24633 #[doc = "Three frame beyond packing ratio available"]
24634 pub const THREEFRAMES: Self = Self(0x03);
24635 }
24636 #[repr(transparent)]
24637 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24638 pub struct Cpol(pub u8);
24639 impl Cpol {
24640 #[doc = "CK to 0 when idle"]
24641 pub const IDLELOW: Self = Self(0);
24642 #[doc = "CK to 1 when idle"]
24643 pub const IDLEHIGH: Self = Self(0x01);
26003 } 24644 }
26004 #[repr(transparent)] 24645 #[repr(transparent)]
26005 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24646 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
@@ -26024,32 +24665,14 @@ pub mod spi_v3 {
26024 } 24665 }
26025 #[repr(transparent)] 24666 #[repr(transparent)]
26026 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24667 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26027 pub struct Ssom(pub u8); 24668 pub struct Datlen(pub u8);
26028 impl Ssom { 24669 impl Datlen {
26029 #[doc = "SS is asserted until data transfer complete"] 24670 #[doc = "16 bit data length"]
26030 pub const ASSERTED: Self = Self(0); 24671 pub const BITS16: Self = Self(0);
26031 #[doc = "Data frames interleaved with SS not asserted during MIDI"] 24672 #[doc = "24 bit data length"]
26032 pub const NOTASSERTED: Self = Self(0x01); 24673 pub const BITS24: Self = Self(0x01);
26033 } 24674 #[doc = "32 bit data length"]
26034 #[repr(transparent)] 24675 pub const BITS32: Self = Self(0x02);
26035 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26036 pub struct Cpol(pub u8);
26037 impl Cpol {
26038 #[doc = "CK to 0 when idle"]
26039 pub const IDLELOW: Self = Self(0);
26040 #[doc = "CK to 1 when idle"]
26041 pub const IDLEHIGH: Self = Self(0x01);
26042 }
26043 #[repr(transparent)]
26044 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26045 pub struct Udrdet(pub u8);
26046 impl Udrdet {
26047 #[doc = "Underrun is detected at begin of data frame"]
26048 pub const STARTOFFRAME: Self = Self(0);
26049 #[doc = "Underrun is detected at end of last data frame"]
26050 pub const ENDOFFRAME: Self = Self(0x01);
26051 #[doc = "Underrun is detected at begin of active SS signal"]
26052 pub const STARTOFSLAVESELECT: Self = Self(0x02);
26053 } 24676 }
26054 #[repr(transparent)] 24677 #[repr(transparent)]
26055 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24678 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
@@ -26090,126 +24713,1503 @@ pub mod spi_v3 {
26090 } 24713 }
26091 #[repr(transparent)] 24714 #[repr(transparent)]
26092 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24715 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26093 pub struct Datfmt(pub u8); 24716 pub struct Cpha(pub u8);
26094 impl Datfmt { 24717 impl Cpha {
26095 #[doc = "The data inside RXDR and TXDR are right aligned"] 24718 #[doc = "The first clock transition is the first data capture edge"]
26096 pub const RIGHTALIGNED: Self = Self(0); 24719 pub const FIRSTEDGE: Self = Self(0);
26097 #[doc = "The data inside RXDR and TXDR are left aligned"] 24720 #[doc = "The second clock transition is the first data capture edge"]
26098 pub const LEFTALIGNED: Self = Self(0x01); 24721 pub const SECONDEDGE: Self = Self(0x01);
26099 } 24722 }
26100 #[repr(transparent)] 24723 #[repr(transparent)]
26101 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24724 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26102 pub struct Lsbfrst(pub u8); 24725 pub struct Master(pub u8);
26103 impl Lsbfrst { 24726 impl Master {
26104 #[doc = "Data is transmitted/received with the MSB first"] 24727 #[doc = "Slave configuration"]
26105 pub const MSBFIRST: Self = Self(0); 24728 pub const SLAVE: Self = Self(0);
26106 #[doc = "Data is transmitted/received with the LSB first"] 24729 #[doc = "Master configuration"]
26107 pub const LSBFIRST: Self = Self(0x01); 24730 pub const MASTER: Self = Self(0x01);
26108 } 24731 }
26109 #[repr(transparent)] 24732 #[repr(transparent)]
26110 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24733 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26111 pub struct Rcrcini(pub u8); 24734 pub struct Hddir(pub u8);
26112 impl Rcrcini { 24735 impl Hddir {
26113 #[doc = "All zeros RX CRC initialization pattern"] 24736 #[doc = "Receiver in half duplex mode"]
26114 pub const ALLZEROS: Self = Self(0); 24737 pub const RECEIVER: Self = Self(0);
26115 #[doc = "All ones RX CRC initialization pattern"] 24738 #[doc = "Transmitter in half duplex mode"]
26116 pub const ALLONES: Self = Self(0x01); 24739 pub const TRANSMITTER: Self = Self(0x01);
26117 } 24740 }
24741 }
24742}
24743pub mod usart_v2 {
24744 use crate::generic::*;
24745 #[doc = "Universal synchronous asynchronous receiver transmitter"]
24746 #[derive(Copy, Clone)]
24747 pub struct Usart(pub *mut u8);
24748 unsafe impl Send for Usart {}
24749 unsafe impl Sync for Usart {}
24750 impl Usart {
24751 #[doc = "Control register 1"]
24752 pub fn cr1(self) -> Reg<regs::Cr1, RW> {
24753 unsafe { Reg::from_ptr(self.0.add(0usize)) }
24754 }
24755 #[doc = "Control register 2"]
24756 pub fn cr2(self) -> Reg<regs::Cr2, RW> {
24757 unsafe { Reg::from_ptr(self.0.add(4usize)) }
24758 }
24759 #[doc = "Control register 3"]
24760 pub fn cr3(self) -> Reg<regs::Cr3, RW> {
24761 unsafe { Reg::from_ptr(self.0.add(8usize)) }
24762 }
24763 #[doc = "Baud rate register"]
24764 pub fn brr(self) -> Reg<regs::Brr, RW> {
24765 unsafe { Reg::from_ptr(self.0.add(12usize)) }
24766 }
24767 #[doc = "Guard time and prescaler register"]
24768 pub fn gtpr(self) -> Reg<regs::Gtpr, RW> {
24769 unsafe { Reg::from_ptr(self.0.add(16usize)) }
24770 }
24771 #[doc = "Receiver timeout register"]
24772 pub fn rtor(self) -> Reg<regs::Rtor, RW> {
24773 unsafe { Reg::from_ptr(self.0.add(20usize)) }
24774 }
24775 #[doc = "Request register"]
24776 pub fn rqr(self) -> Reg<regs::Rqr, W> {
24777 unsafe { Reg::from_ptr(self.0.add(24usize)) }
24778 }
24779 #[doc = "Interrupt & status register"]
24780 pub fn isr(self) -> Reg<regs::Ixr, R> {
24781 unsafe { Reg::from_ptr(self.0.add(28usize)) }
24782 }
24783 #[doc = "Interrupt flag clear register"]
24784 pub fn icr(self) -> Reg<regs::Ixr, W> {
24785 unsafe { Reg::from_ptr(self.0.add(32usize)) }
24786 }
24787 #[doc = "Receive data register"]
24788 pub fn rdr(self) -> Reg<regs::Dr, R> {
24789 unsafe { Reg::from_ptr(self.0.add(36usize)) }
24790 }
24791 #[doc = "Transmit data register"]
24792 pub fn tdr(self) -> Reg<regs::Dr, RW> {
24793 unsafe { Reg::from_ptr(self.0.add(40usize)) }
24794 }
24795 }
24796 pub mod vals {
24797 use crate::generic::*;
26118 #[repr(transparent)] 24798 #[repr(transparent)]
26119 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24799 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26120 pub struct Sp(pub u8); 24800 pub struct Ovrdis(pub u8);
26121 impl Sp { 24801 impl Ovrdis {
26122 #[doc = "Motorola SPI protocol"] 24802 #[doc = "Overrun Error Flag, ORE, is set when received data is not read before receiving new data"]
26123 pub const MOTOROLA: Self = Self(0); 24803 pub const ENABLED: Self = Self(0);
26124 #[doc = "TI SPI protocol"] 24804 #[doc = "Overrun functionality is disabled. If new data is received while the RXNE flag is still set the ORE flag is not set and the new received data overwrites the previous content of the RDR register"]
26125 pub const TI: Self = Self(0x01); 24805 pub const DISABLED: Self = Self(0x01);
26126 } 24806 }
26127 #[repr(transparent)] 24807 #[repr(transparent)]
26128 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24808 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26129 pub struct Datlen(pub u8); 24809 pub struct Sbkrq(pub u8);
26130 impl Datlen { 24810 impl Sbkrq {
26131 #[doc = "16 bit data length"] 24811 #[doc = "sets the SBKF flag and request to send a BREAK on the line, as soon as the transmit machine is available"]
26132 pub const BITS16: Self = Self(0); 24812 pub const BREAK: Self = Self(0x01);
26133 #[doc = "24 bit data length"]
26134 pub const BITS24: Self = Self(0x01);
26135 #[doc = "32 bit data length"]
26136 pub const BITS32: Self = Self(0x02);
26137 } 24813 }
26138 #[repr(transparent)] 24814 #[repr(transparent)]
26139 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24815 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26140 pub struct Master(pub u8); 24816 pub struct Msbfirst(pub u8);
26141 impl Master { 24817 impl Msbfirst {
26142 #[doc = "Slave configuration"] 24818 #[doc = "data is transmitted/received with data bit 0 first, following the start bit"]
26143 pub const SLAVE: Self = Self(0); 24819 pub const LSB: Self = Self(0);
26144 #[doc = "Master configuration"] 24820 #[doc = "data is transmitted/received with MSB (bit 7/8/9) first, following the start bit"]
26145 pub const MASTER: Self = Self(0x01); 24821 pub const MSB: Self = Self(0x01);
26146 } 24822 }
26147 #[repr(transparent)] 24823 #[repr(transparent)]
26148 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24824 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26149 pub struct Comm(pub u8); 24825 pub struct Stop(pub u8);
26150 impl Comm { 24826 impl Stop {
26151 #[doc = "Full duplex"] 24827 #[doc = "1 stop bit"]
26152 pub const FULLDUPLEX: Self = Self(0); 24828 pub const STOP1: Self = Self(0);
26153 #[doc = "Simplex transmitter only"] 24829 #[doc = "0.5 stop bit"]
26154 pub const TRANSMITTER: Self = Self(0x01); 24830 pub const STOP0P5: Self = Self(0x01);
26155 #[doc = "Simplex receiver only"] 24831 #[doc = "2 stop bit"]
26156 pub const RECEIVER: Self = Self(0x02); 24832 pub const STOP2: Self = Self(0x02);
26157 #[doc = "Half duplex"] 24833 #[doc = "1.5 stop bit"]
26158 pub const HALFDUPLEX: Self = Self(0x03); 24834 pub const STOP1P5: Self = Self(0x03);
26159 } 24835 }
26160 #[repr(transparent)] 24836 #[repr(transparent)]
26161 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24837 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26162 pub struct Ssiop(pub u8); 24838 pub struct Abrrq(pub u8);
26163 impl Ssiop { 24839 impl Abrrq {
26164 #[doc = "Low level is active for SS signal"] 24840 #[doc = "resets the ABRF flag in the USART_ISR and request an automatic baud rate measurement on the next received data frame"]
26165 pub const ACTIVELOW: Self = Self(0); 24841 pub const REQUEST: Self = Self(0x01);
26166 #[doc = "High level is active for SS signal"]
26167 pub const ACTIVEHIGH: Self = Self(0x01);
26168 } 24842 }
26169 #[repr(transparent)] 24843 #[repr(transparent)]
26170 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24844 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26171 pub struct Rxwne(pub u8); 24845 pub struct Onebit(pub u8);
26172 impl Rxwne { 24846 impl Onebit {
26173 #[doc = "Less than 32-bit data frame received"] 24847 #[doc = "Three sample bit method"]
26174 pub const LESSTHAN32: Self = Self(0); 24848 pub const SAMPLE3: Self = Self(0);
26175 #[doc = "At least 32-bit data frame received"] 24849 #[doc = "One sample bit method"]
26176 pub const ATLEAST32: Self = Self(0x01); 24850 pub const SAMPLE1: Self = Self(0x01);
26177 } 24851 }
26178 #[repr(transparent)] 24852 #[repr(transparent)]
26179 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24853 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26180 pub struct Cpha(pub u8); 24854 pub struct Cpha(pub u8);
26181 impl Cpha { 24855 impl Cpha {
26182 #[doc = "The first clock transition is the first data capture edge"] 24856 #[doc = "The first clock transition is the first data capture edge"]
26183 pub const FIRSTEDGE: Self = Self(0); 24857 pub const FIRST: Self = Self(0);
26184 #[doc = "The second clock transition is the first data capture edge"] 24858 #[doc = "The second clock transition is the first data capture edge"]
26185 pub const SECONDEDGE: Self = Self(0x01); 24859 pub const SECOND: Self = Self(0x01);
26186 } 24860 }
26187 #[repr(transparent)] 24861 #[repr(transparent)]
26188 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24862 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26189 pub struct Crc(pub u8); 24863 pub struct Lbcl(pub u8);
26190 impl Crc { 24864 impl Lbcl {
26191 #[doc = "Full size (33/17 bit) CRC polynomial is not used"] 24865 #[doc = "The clock pulse of the last data bit is not output to the CK pin"]
26192 pub const DISABLED: Self = Self(0); 24866 pub const NOTOUTPUT: Self = Self(0);
26193 #[doc = "Full size (33/17 bit) CRC polynomial is used"] 24867 #[doc = "The clock pulse of the last data bit is output to the CK pin"]
26194 pub const ENABLED: Self = Self(0x01); 24868 pub const OUTPUT: Self = Self(0x01);
26195 } 24869 }
26196 #[repr(transparent)] 24870 #[repr(transparent)]
26197 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24871 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26198 pub struct Afcntr(pub u8); 24872 pub struct Lbdl(pub u8);
26199 impl Afcntr { 24873 impl Lbdl {
26200 #[doc = "Peripheral takes no control of GPIOs while disabled"] 24874 #[doc = "10-bit break detection"]
26201 pub const NOTCONTROLLED: Self = Self(0); 24875 pub const BIT10: Self = Self(0);
26202 #[doc = "Peripheral controls GPIOs while disabled"] 24876 #[doc = "11-bit break detection"]
26203 pub const CONTROLLED: Self = Self(0x01); 24877 pub const BIT11: Self = Self(0x01);
26204 } 24878 }
26205 #[repr(transparent)] 24879 #[repr(transparent)]
26206 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 24880 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26207 pub struct Tcrcini(pub u8); 24881 pub struct Rxinv(pub u8);
26208 impl Tcrcini { 24882 impl Rxinv {
26209 #[doc = "All zeros TX CRC initialization pattern"] 24883 #[doc = "RX pin signal works using the standard logic levels"]
26210 pub const ALLZEROS: Self = Self(0); 24884 pub const STANDARD: Self = Self(0);
26211 #[doc = "All ones TX CRC initialization pattern"] 24885 #[doc = "RX pin signal values are inverted"]
26212 pub const ALLONES: Self = Self(0x01); 24886 pub const INVERTED: Self = Self(0x01);
24887 }
24888 #[repr(transparent)]
24889 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24890 pub struct M1(pub u8);
24891 impl M1 {
24892 #[doc = "Use M0 to set the data bits"]
24893 pub const M0: Self = Self(0);
24894 #[doc = "1 start bit, 7 data bits, n stop bits"]
24895 pub const BIT7: Self = Self(0x01);
24896 }
24897 #[repr(transparent)]
24898 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24899 pub struct Swap(pub u8);
24900 impl Swap {
24901 #[doc = "TX/RX pins are used as defined in standard pinout"]
24902 pub const STANDARD: Self = Self(0);
24903 #[doc = "The TX and RX pins functions are swapped"]
24904 pub const SWAPPED: Self = Self(0x01);
24905 }
24906 #[repr(transparent)]
24907 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24908 pub struct Ps(pub u8);
24909 impl Ps {
24910 #[doc = "Even parity"]
24911 pub const EVEN: Self = Self(0);
24912 #[doc = "Odd parity"]
24913 pub const ODD: Self = Self(0x01);
24914 }
24915 #[repr(transparent)]
24916 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24917 pub struct Addm(pub u8);
24918 impl Addm {
24919 #[doc = "4-bit address detection"]
24920 pub const BIT4: Self = Self(0);
24921 #[doc = "7-bit address detection"]
24922 pub const BIT7: Self = Self(0x01);
24923 }
24924 #[repr(transparent)]
24925 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24926 pub struct Over(pub u8);
24927 impl Over {
24928 #[doc = "Oversampling by 16"]
24929 pub const OVERSAMPLING16: Self = Self(0);
24930 #[doc = "Oversampling by 8"]
24931 pub const OVERSAMPLING8: Self = Self(0x01);
24932 }
24933 #[repr(transparent)]
24934 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24935 pub struct Rxfrq(pub u8);
24936 impl Rxfrq {
24937 #[doc = "clears the RXNE flag. This allows to discard the received data without reading it, and avoid an overrun condition"]
24938 pub const DISCARD: Self = Self(0x01);
24939 }
24940 #[repr(transparent)]
24941 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24942 pub struct Txfrq(pub u8);
24943 impl Txfrq {
24944 #[doc = "Set the TXE flags. This allows to discard the transmit data"]
24945 pub const DISCARD: Self = Self(0x01);
24946 }
24947 #[repr(transparent)]
24948 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24949 pub struct Hdsel(pub u8);
24950 impl Hdsel {
24951 #[doc = "Half duplex mode is not selected"]
24952 pub const NOTSELECTED: Self = Self(0);
24953 #[doc = "Half duplex mode is selected"]
24954 pub const SELECTED: Self = Self(0x01);
24955 }
24956 #[repr(transparent)]
24957 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24958 pub struct Abrmod(pub u8);
24959 impl Abrmod {
24960 #[doc = "Measurement of the start bit is used to detect the baud rate"]
24961 pub const START: Self = Self(0);
24962 #[doc = "Falling edge to falling edge measurement"]
24963 pub const EDGE: Self = Self(0x01);
24964 #[doc = "0x7F frame detection"]
24965 pub const FRAME7F: Self = Self(0x02);
24966 #[doc = "0x55 frame detection"]
24967 pub const FRAME55: Self = Self(0x03);
24968 }
24969 #[repr(transparent)]
24970 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24971 pub struct Cpol(pub u8);
24972 impl Cpol {
24973 #[doc = "Steady low value on CK pin outside transmission window"]
24974 pub const LOW: Self = Self(0);
24975 #[doc = "Steady high value on CK pin outside transmission window"]
24976 pub const HIGH: Self = Self(0x01);
24977 }
24978 #[repr(transparent)]
24979 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24980 pub struct M0(pub u8);
24981 impl M0 {
24982 #[doc = "1 start bit, 8 data bits, n stop bits"]
24983 pub const BIT8: Self = Self(0);
24984 #[doc = "1 start bit, 9 data bits, n stop bits"]
24985 pub const BIT9: Self = Self(0x01);
24986 }
24987 #[repr(transparent)]
24988 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
24989 pub struct Wus(pub u8);
24990 impl Wus {
24991 #[doc = "WUF active on address match"]
24992 pub const ADDRESS: Self = Self(0);
24993 #[doc = "WuF active on Start bit detection"]
24994 pub const START: Self = Self(0x02);
24995 #[doc = "WUF active on RXNE"]
24996 pub const RXNE: Self = Self(0x03);
24997 }
24998 #[repr(transparent)]
24999 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25000 pub struct Datainv(pub u8);
25001 impl Datainv {
25002 #[doc = "Logical data from the data register are send/received in positive/direct logic"]
25003 pub const POSITIVE: Self = Self(0);
25004 #[doc = "Logical data from the data register are send/received in negative/inverse logic"]
25005 pub const NEGATIVE: Self = Self(0x01);
25006 }
25007 #[repr(transparent)]
25008 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25009 pub struct Ddre(pub u8);
25010 impl Ddre {
25011 #[doc = "DMA is not disabled in case of reception error"]
25012 pub const NOTDISABLED: Self = Self(0);
25013 #[doc = "DMA is disabled following a reception error"]
25014 pub const DISABLED: Self = Self(0x01);
25015 }
25016 #[repr(transparent)]
25017 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25018 pub struct Mmrq(pub u8);
25019 impl Mmrq {
25020 #[doc = "Puts the USART in mute mode and sets the RWU flag"]
25021 pub const MUTE: Self = Self(0x01);
25022 }
25023 #[repr(transparent)]
25024 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25025 pub struct Irlp(pub u8);
25026 impl Irlp {
25027 #[doc = "Normal mode"]
25028 pub const NORMAL: Self = Self(0);
25029 #[doc = "Low-power mode"]
25030 pub const LOWPOWER: Self = Self(0x01);
25031 }
25032 #[repr(transparent)]
25033 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25034 pub struct Wake(pub u8);
25035 impl Wake {
25036 #[doc = "Idle line"]
25037 pub const IDLE: Self = Self(0);
25038 #[doc = "Address mask"]
25039 pub const ADDRESS: Self = Self(0x01);
25040 }
25041 #[repr(transparent)]
25042 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25043 pub struct Dep(pub u8);
25044 impl Dep {
25045 #[doc = "DE signal is active high"]
25046 pub const HIGH: Self = Self(0);
25047 #[doc = "DE signal is active low"]
25048 pub const LOW: Self = Self(0x01);
25049 }
25050 #[repr(transparent)]
25051 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25052 pub struct Txinv(pub u8);
25053 impl Txinv {
25054 #[doc = "TX pin signal works using the standard logic levels"]
25055 pub const STANDARD: Self = Self(0);
25056 #[doc = "TX pin signal values are inverted"]
25057 pub const INVERTED: Self = Self(0x01);
25058 }
25059 }
25060 pub mod regs {
25061 use crate::generic::*;
25062 #[doc = "Request register"]
25063 #[repr(transparent)]
25064 #[derive(Copy, Clone, Eq, PartialEq)]
25065 pub struct Rqr(pub u32);
25066 impl Rqr {
25067 #[doc = "Auto baud rate request"]
25068 pub const fn abrrq(&self) -> super::vals::Abrrq {
25069 let val = (self.0 >> 0usize) & 0x01;
25070 super::vals::Abrrq(val as u8)
25071 }
25072 #[doc = "Auto baud rate request"]
25073 pub fn set_abrrq(&mut self, val: super::vals::Abrrq) {
25074 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
25075 }
25076 #[doc = "Send break request"]
25077 pub const fn sbkrq(&self) -> super::vals::Sbkrq {
25078 let val = (self.0 >> 1usize) & 0x01;
25079 super::vals::Sbkrq(val as u8)
25080 }
25081 #[doc = "Send break request"]
25082 pub fn set_sbkrq(&mut self, val: super::vals::Sbkrq) {
25083 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
25084 }
25085 #[doc = "Mute mode request"]
25086 pub const fn mmrq(&self) -> super::vals::Mmrq {
25087 let val = (self.0 >> 2usize) & 0x01;
25088 super::vals::Mmrq(val as u8)
25089 }
25090 #[doc = "Mute mode request"]
25091 pub fn set_mmrq(&mut self, val: super::vals::Mmrq) {
25092 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
25093 }
25094 #[doc = "Receive data flush request"]
25095 pub const fn rxfrq(&self) -> super::vals::Rxfrq {
25096 let val = (self.0 >> 3usize) & 0x01;
25097 super::vals::Rxfrq(val as u8)
25098 }
25099 #[doc = "Receive data flush request"]
25100 pub fn set_rxfrq(&mut self, val: super::vals::Rxfrq) {
25101 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
25102 }
25103 #[doc = "Transmit data flush request"]
25104 pub const fn txfrq(&self) -> super::vals::Txfrq {
25105 let val = (self.0 >> 4usize) & 0x01;
25106 super::vals::Txfrq(val as u8)
25107 }
25108 #[doc = "Transmit data flush request"]
25109 pub fn set_txfrq(&mut self, val: super::vals::Txfrq) {
25110 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
25111 }
25112 }
25113 impl Default for Rqr {
25114 fn default() -> Rqr {
25115 Rqr(0)
25116 }
25117 }
25118 #[doc = "Data register"]
25119 #[repr(transparent)]
25120 #[derive(Copy, Clone, Eq, PartialEq)]
25121 pub struct Dr(pub u32);
25122 impl Dr {
25123 #[doc = "data value"]
25124 pub const fn dr(&self) -> u16 {
25125 let val = (self.0 >> 0usize) & 0x01ff;
25126 val as u16
25127 }
25128 #[doc = "data value"]
25129 pub fn set_dr(&mut self, val: u16) {
25130 self.0 = (self.0 & !(0x01ff << 0usize)) | (((val as u32) & 0x01ff) << 0usize);
25131 }
25132 }
25133 impl Default for Dr {
25134 fn default() -> Dr {
25135 Dr(0)
25136 }
25137 }
25138 #[doc = "Control register 3"]
25139 #[repr(transparent)]
25140 #[derive(Copy, Clone, Eq, PartialEq)]
25141 pub struct Cr3(pub u32);
25142 impl Cr3 {
25143 #[doc = "Error interrupt enable"]
25144 pub const fn eie(&self) -> bool {
25145 let val = (self.0 >> 0usize) & 0x01;
25146 val != 0
25147 }
25148 #[doc = "Error interrupt enable"]
25149 pub fn set_eie(&mut self, val: bool) {
25150 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
25151 }
25152 #[doc = "IrDA mode enable"]
25153 pub const fn iren(&self) -> bool {
25154 let val = (self.0 >> 1usize) & 0x01;
25155 val != 0
25156 }
25157 #[doc = "IrDA mode enable"]
25158 pub fn set_iren(&mut self, val: bool) {
25159 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
25160 }
25161 #[doc = "IrDA low-power"]
25162 pub const fn irlp(&self) -> super::vals::Irlp {
25163 let val = (self.0 >> 2usize) & 0x01;
25164 super::vals::Irlp(val as u8)
25165 }
25166 #[doc = "IrDA low-power"]
25167 pub fn set_irlp(&mut self, val: super::vals::Irlp) {
25168 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
25169 }
25170 #[doc = "Half-duplex selection"]
25171 pub const fn hdsel(&self) -> super::vals::Hdsel {
25172 let val = (self.0 >> 3usize) & 0x01;
25173 super::vals::Hdsel(val as u8)
25174 }
25175 #[doc = "Half-duplex selection"]
25176 pub fn set_hdsel(&mut self, val: super::vals::Hdsel) {
25177 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
25178 }
25179 #[doc = "Smartcard NACK enable"]
25180 pub const fn nack(&self) -> bool {
25181 let val = (self.0 >> 4usize) & 0x01;
25182 val != 0
25183 }
25184 #[doc = "Smartcard NACK enable"]
25185 pub fn set_nack(&mut self, val: bool) {
25186 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
25187 }
25188 #[doc = "Smartcard mode enable"]
25189 pub const fn scen(&self) -> bool {
25190 let val = (self.0 >> 5usize) & 0x01;
25191 val != 0
25192 }
25193 #[doc = "Smartcard mode enable"]
25194 pub fn set_scen(&mut self, val: bool) {
25195 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
25196 }
25197 #[doc = "DMA enable receiver"]
25198 pub const fn dmar(&self) -> bool {
25199 let val = (self.0 >> 6usize) & 0x01;
25200 val != 0
25201 }
25202 #[doc = "DMA enable receiver"]
25203 pub fn set_dmar(&mut self, val: bool) {
25204 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
25205 }
25206 #[doc = "DMA enable transmitter"]
25207 pub const fn dmat(&self) -> bool {
25208 let val = (self.0 >> 7usize) & 0x01;
25209 val != 0
25210 }
25211 #[doc = "DMA enable transmitter"]
25212 pub fn set_dmat(&mut self, val: bool) {
25213 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
25214 }
25215 #[doc = "RTS enable"]
25216 pub const fn rtse(&self) -> bool {
25217 let val = (self.0 >> 8usize) & 0x01;
25218 val != 0
25219 }
25220 #[doc = "RTS enable"]
25221 pub fn set_rtse(&mut self, val: bool) {
25222 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
25223 }
25224 #[doc = "CTS enable"]
25225 pub const fn ctse(&self) -> bool {
25226 let val = (self.0 >> 9usize) & 0x01;
25227 val != 0
25228 }
25229 #[doc = "CTS enable"]
25230 pub fn set_ctse(&mut self, val: bool) {
25231 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
25232 }
25233 #[doc = "CTS interrupt enable"]
25234 pub const fn ctsie(&self) -> bool {
25235 let val = (self.0 >> 10usize) & 0x01;
25236 val != 0
25237 }
25238 #[doc = "CTS interrupt enable"]
25239 pub fn set_ctsie(&mut self, val: bool) {
25240 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
25241 }
25242 #[doc = "One sample bit method enable"]
25243 pub const fn onebit(&self) -> super::vals::Onebit {
25244 let val = (self.0 >> 11usize) & 0x01;
25245 super::vals::Onebit(val as u8)
25246 }
25247 #[doc = "One sample bit method enable"]
25248 pub fn set_onebit(&mut self, val: super::vals::Onebit) {
25249 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
25250 }
25251 #[doc = "Overrun Disable"]
25252 pub const fn ovrdis(&self) -> super::vals::Ovrdis {
25253 let val = (self.0 >> 12usize) & 0x01;
25254 super::vals::Ovrdis(val as u8)
25255 }
25256 #[doc = "Overrun Disable"]
25257 pub fn set_ovrdis(&mut self, val: super::vals::Ovrdis) {
25258 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
25259 }
25260 #[doc = "DMA Disable on Reception Error"]
25261 pub const fn ddre(&self) -> bool {
25262 let val = (self.0 >> 13usize) & 0x01;
25263 val != 0
25264 }
25265 #[doc = "DMA Disable on Reception Error"]
25266 pub fn set_ddre(&mut self, val: bool) {
25267 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
25268 }
25269 #[doc = "Driver enable mode"]
25270 pub const fn dem(&self) -> bool {
25271 let val = (self.0 >> 14usize) & 0x01;
25272 val != 0
25273 }
25274 #[doc = "Driver enable mode"]
25275 pub fn set_dem(&mut self, val: bool) {
25276 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
25277 }
25278 #[doc = "Driver enable polarity selection"]
25279 pub const fn dep(&self) -> super::vals::Dep {
25280 let val = (self.0 >> 15usize) & 0x01;
25281 super::vals::Dep(val as u8)
25282 }
25283 #[doc = "Driver enable polarity selection"]
25284 pub fn set_dep(&mut self, val: super::vals::Dep) {
25285 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
25286 }
25287 #[doc = "Smartcard auto-retry count"]
25288 pub const fn scarcnt(&self) -> u8 {
25289 let val = (self.0 >> 17usize) & 0x07;
25290 val as u8
25291 }
25292 #[doc = "Smartcard auto-retry count"]
25293 pub fn set_scarcnt(&mut self, val: u8) {
25294 self.0 = (self.0 & !(0x07 << 17usize)) | (((val as u32) & 0x07) << 17usize);
25295 }
25296 #[doc = "Wakeup from Stop mode interrupt flag selection"]
25297 pub const fn wus(&self) -> super::vals::Wus {
25298 let val = (self.0 >> 20usize) & 0x03;
25299 super::vals::Wus(val as u8)
25300 }
25301 #[doc = "Wakeup from Stop mode interrupt flag selection"]
25302 pub fn set_wus(&mut self, val: super::vals::Wus) {
25303 self.0 = (self.0 & !(0x03 << 20usize)) | (((val.0 as u32) & 0x03) << 20usize);
25304 }
25305 #[doc = "Wakeup from Stop mode interrupt enable"]
25306 pub const fn wufie(&self) -> bool {
25307 let val = (self.0 >> 22usize) & 0x01;
25308 val != 0
25309 }
25310 #[doc = "Wakeup from Stop mode interrupt enable"]
25311 pub fn set_wufie(&mut self, val: bool) {
25312 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
25313 }
25314 }
25315 impl Default for Cr3 {
25316 fn default() -> Cr3 {
25317 Cr3(0)
25318 }
25319 }
25320 #[doc = "Receiver timeout register"]
25321 #[repr(transparent)]
25322 #[derive(Copy, Clone, Eq, PartialEq)]
25323 pub struct Rtor(pub u32);
25324 impl Rtor {
25325 #[doc = "Receiver timeout value"]
25326 pub const fn rto(&self) -> u32 {
25327 let val = (self.0 >> 0usize) & 0x00ff_ffff;
25328 val as u32
25329 }
25330 #[doc = "Receiver timeout value"]
25331 pub fn set_rto(&mut self, val: u32) {
25332 self.0 =
25333 (self.0 & !(0x00ff_ffff << 0usize)) | (((val as u32) & 0x00ff_ffff) << 0usize);
25334 }
25335 #[doc = "Block Length"]
25336 pub const fn blen(&self) -> u8 {
25337 let val = (self.0 >> 24usize) & 0xff;
25338 val as u8
25339 }
25340 #[doc = "Block Length"]
25341 pub fn set_blen(&mut self, val: u8) {
25342 self.0 = (self.0 & !(0xff << 24usize)) | (((val as u32) & 0xff) << 24usize);
25343 }
25344 }
25345 impl Default for Rtor {
25346 fn default() -> Rtor {
25347 Rtor(0)
25348 }
25349 }
25350 #[doc = "Control register 1"]
25351 #[repr(transparent)]
25352 #[derive(Copy, Clone, Eq, PartialEq)]
25353 pub struct Cr1(pub u32);
25354 impl Cr1 {
25355 #[doc = "USART enable"]
25356 pub const fn ue(&self) -> bool {
25357 let val = (self.0 >> 0usize) & 0x01;
25358 val != 0
25359 }
25360 #[doc = "USART enable"]
25361 pub fn set_ue(&mut self, val: bool) {
25362 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
25363 }
25364 #[doc = "USART enable in Stop mode"]
25365 pub const fn uesm(&self) -> bool {
25366 let val = (self.0 >> 1usize) & 0x01;
25367 val != 0
25368 }
25369 #[doc = "USART enable in Stop mode"]
25370 pub fn set_uesm(&mut self, val: bool) {
25371 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
25372 }
25373 #[doc = "Receiver enable"]
25374 pub const fn re(&self) -> bool {
25375 let val = (self.0 >> 2usize) & 0x01;
25376 val != 0
25377 }
25378 #[doc = "Receiver enable"]
25379 pub fn set_re(&mut self, val: bool) {
25380 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
25381 }
25382 #[doc = "Transmitter enable"]
25383 pub const fn te(&self) -> bool {
25384 let val = (self.0 >> 3usize) & 0x01;
25385 val != 0
25386 }
25387 #[doc = "Transmitter enable"]
25388 pub fn set_te(&mut self, val: bool) {
25389 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
25390 }
25391 #[doc = "IDLE interrupt enable"]
25392 pub const fn idleie(&self) -> bool {
25393 let val = (self.0 >> 4usize) & 0x01;
25394 val != 0
25395 }
25396 #[doc = "IDLE interrupt enable"]
25397 pub fn set_idleie(&mut self, val: bool) {
25398 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
25399 }
25400 #[doc = "RXNE interrupt enable"]
25401 pub const fn rxneie(&self) -> bool {
25402 let val = (self.0 >> 5usize) & 0x01;
25403 val != 0
25404 }
25405 #[doc = "RXNE interrupt enable"]
25406 pub fn set_rxneie(&mut self, val: bool) {
25407 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
25408 }
25409 #[doc = "Transmission complete interrupt enable"]
25410 pub const fn tcie(&self) -> bool {
25411 let val = (self.0 >> 6usize) & 0x01;
25412 val != 0
25413 }
25414 #[doc = "Transmission complete interrupt enable"]
25415 pub fn set_tcie(&mut self, val: bool) {
25416 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
25417 }
25418 #[doc = "interrupt enable"]
25419 pub const fn txeie(&self) -> bool {
25420 let val = (self.0 >> 7usize) & 0x01;
25421 val != 0
25422 }
25423 #[doc = "interrupt enable"]
25424 pub fn set_txeie(&mut self, val: bool) {
25425 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
25426 }
25427 #[doc = "PE interrupt enable"]
25428 pub const fn peie(&self) -> bool {
25429 let val = (self.0 >> 8usize) & 0x01;
25430 val != 0
25431 }
25432 #[doc = "PE interrupt enable"]
25433 pub fn set_peie(&mut self, val: bool) {
25434 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
25435 }
25436 #[doc = "Parity selection"]
25437 pub const fn ps(&self) -> super::vals::Ps {
25438 let val = (self.0 >> 9usize) & 0x01;
25439 super::vals::Ps(val as u8)
25440 }
25441 #[doc = "Parity selection"]
25442 pub fn set_ps(&mut self, val: super::vals::Ps) {
25443 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
25444 }
25445 #[doc = "Parity control enable"]
25446 pub const fn pce(&self) -> bool {
25447 let val = (self.0 >> 10usize) & 0x01;
25448 val != 0
25449 }
25450 #[doc = "Parity control enable"]
25451 pub fn set_pce(&mut self, val: bool) {
25452 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
25453 }
25454 #[doc = "Receiver wakeup method"]
25455 pub const fn wake(&self) -> bool {
25456 let val = (self.0 >> 11usize) & 0x01;
25457 val != 0
25458 }
25459 #[doc = "Receiver wakeup method"]
25460 pub fn set_wake(&mut self, val: bool) {
25461 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
25462 }
25463 #[doc = "Word length"]
25464 pub const fn m0(&self) -> super::vals::M0 {
25465 let val = (self.0 >> 12usize) & 0x01;
25466 super::vals::M0(val as u8)
25467 }
25468 #[doc = "Word length"]
25469 pub fn set_m0(&mut self, val: super::vals::M0) {
25470 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
25471 }
25472 #[doc = "Word length"]
25473 pub const fn m1(&self) -> super::vals::M1 {
25474 let val = (self.0 >> 12usize) & 0x01;
25475 super::vals::M1(val as u8)
25476 }
25477 #[doc = "Word length"]
25478 pub fn set_m1(&mut self, val: super::vals::M1) {
25479 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
25480 }
25481 #[doc = "Mute mode enable"]
25482 pub const fn mme(&self) -> bool {
25483 let val = (self.0 >> 13usize) & 0x01;
25484 val != 0
25485 }
25486 #[doc = "Mute mode enable"]
25487 pub fn set_mme(&mut self, val: bool) {
25488 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
25489 }
25490 #[doc = "Character match interrupt enable"]
25491 pub const fn cmie(&self) -> bool {
25492 let val = (self.0 >> 14usize) & 0x01;
25493 val != 0
25494 }
25495 #[doc = "Character match interrupt enable"]
25496 pub fn set_cmie(&mut self, val: bool) {
25497 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
25498 }
25499 #[doc = "Oversampling mode"]
25500 pub fn over(&self, n: usize) -> super::vals::Over {
25501 assert!(n < 1usize);
25502 let offs = 15usize + n * 0usize;
25503 let val = (self.0 >> offs) & 0x01;
25504 super::vals::Over(val as u8)
25505 }
25506 #[doc = "Oversampling mode"]
25507 pub fn set_over(&mut self, n: usize, val: super::vals::Over) {
25508 assert!(n < 1usize);
25509 let offs = 15usize + n * 0usize;
25510 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
25511 }
25512 #[doc = "Driver Enable deassertion time"]
25513 pub const fn dedt(&self) -> u8 {
25514 let val = (self.0 >> 16usize) & 0x1f;
25515 val as u8
25516 }
25517 #[doc = "Driver Enable deassertion time"]
25518 pub fn set_dedt(&mut self, val: u8) {
25519 self.0 = (self.0 & !(0x1f << 16usize)) | (((val as u32) & 0x1f) << 16usize);
25520 }
25521 #[doc = "Driver Enable assertion time"]
25522 pub const fn deat(&self) -> u8 {
25523 let val = (self.0 >> 21usize) & 0x1f;
25524 val as u8
25525 }
25526 #[doc = "Driver Enable assertion time"]
25527 pub fn set_deat(&mut self, val: u8) {
25528 self.0 = (self.0 & !(0x1f << 21usize)) | (((val as u32) & 0x1f) << 21usize);
25529 }
25530 #[doc = "Receiver timeout interrupt enable"]
25531 pub const fn rtoie(&self) -> bool {
25532 let val = (self.0 >> 26usize) & 0x01;
25533 val != 0
25534 }
25535 #[doc = "Receiver timeout interrupt enable"]
25536 pub fn set_rtoie(&mut self, val: bool) {
25537 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
25538 }
25539 #[doc = "End of Block interrupt enable"]
25540 pub const fn eobie(&self) -> bool {
25541 let val = (self.0 >> 27usize) & 0x01;
25542 val != 0
25543 }
25544 #[doc = "End of Block interrupt enable"]
25545 pub fn set_eobie(&mut self, val: bool) {
25546 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize);
25547 }
25548 }
25549 impl Default for Cr1 {
25550 fn default() -> Cr1 {
25551 Cr1(0)
25552 }
25553 }
25554 #[doc = "Guard time and prescaler register"]
25555 #[repr(transparent)]
25556 #[derive(Copy, Clone, Eq, PartialEq)]
25557 pub struct Gtpr(pub u32);
25558 impl Gtpr {
25559 #[doc = "Prescaler value"]
25560 pub const fn psc(&self) -> u8 {
25561 let val = (self.0 >> 0usize) & 0xff;
25562 val as u8
25563 }
25564 #[doc = "Prescaler value"]
25565 pub fn set_psc(&mut self, val: u8) {
25566 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
25567 }
25568 #[doc = "Guard time value"]
25569 pub const fn gt(&self) -> u8 {
25570 let val = (self.0 >> 8usize) & 0xff;
25571 val as u8
25572 }
25573 #[doc = "Guard time value"]
25574 pub fn set_gt(&mut self, val: u8) {
25575 self.0 = (self.0 & !(0xff << 8usize)) | (((val as u32) & 0xff) << 8usize);
25576 }
25577 }
25578 impl Default for Gtpr {
25579 fn default() -> Gtpr {
25580 Gtpr(0)
25581 }
25582 }
25583 #[doc = "Interrupt & status register"]
25584 #[repr(transparent)]
25585 #[derive(Copy, Clone, Eq, PartialEq)]
25586 pub struct Ixr(pub u32);
25587 impl Ixr {
25588 #[doc = "Parity error"]
25589 pub const fn pe(&self) -> bool {
25590 let val = (self.0 >> 0usize) & 0x01;
25591 val != 0
25592 }
25593 #[doc = "Parity error"]
25594 pub fn set_pe(&mut self, val: bool) {
25595 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
25596 }
25597 #[doc = "Framing error"]
25598 pub const fn fe(&self) -> bool {
25599 let val = (self.0 >> 1usize) & 0x01;
25600 val != 0
25601 }
25602 #[doc = "Framing error"]
25603 pub fn set_fe(&mut self, val: bool) {
25604 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
25605 }
25606 #[doc = "Noise detected flag"]
25607 pub const fn nf(&self) -> bool {
25608 let val = (self.0 >> 2usize) & 0x01;
25609 val != 0
25610 }
25611 #[doc = "Noise detected flag"]
25612 pub fn set_nf(&mut self, val: bool) {
25613 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
25614 }
25615 #[doc = "Overrun error"]
25616 pub const fn ore(&self) -> bool {
25617 let val = (self.0 >> 3usize) & 0x01;
25618 val != 0
25619 }
25620 #[doc = "Overrun error"]
25621 pub fn set_ore(&mut self, val: bool) {
25622 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
25623 }
25624 #[doc = "Idle line detected"]
25625 pub const fn idle(&self) -> bool {
25626 let val = (self.0 >> 4usize) & 0x01;
25627 val != 0
25628 }
25629 #[doc = "Idle line detected"]
25630 pub fn set_idle(&mut self, val: bool) {
25631 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
25632 }
25633 #[doc = "Read data register not empty"]
25634 pub const fn rxne(&self) -> bool {
25635 let val = (self.0 >> 5usize) & 0x01;
25636 val != 0
25637 }
25638 #[doc = "Read data register not empty"]
25639 pub fn set_rxne(&mut self, val: bool) {
25640 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
25641 }
25642 #[doc = "Transmission complete"]
25643 pub const fn tc(&self) -> bool {
25644 let val = (self.0 >> 6usize) & 0x01;
25645 val != 0
25646 }
25647 #[doc = "Transmission complete"]
25648 pub fn set_tc(&mut self, val: bool) {
25649 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
25650 }
25651 #[doc = "Transmit data register empty"]
25652 pub const fn txe(&self) -> bool {
25653 let val = (self.0 >> 7usize) & 0x01;
25654 val != 0
25655 }
25656 #[doc = "Transmit data register empty"]
25657 pub fn set_txe(&mut self, val: bool) {
25658 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
25659 }
25660 #[doc = "LIN break detection flag"]
25661 pub const fn lbdf(&self) -> bool {
25662 let val = (self.0 >> 8usize) & 0x01;
25663 val != 0
25664 }
25665 #[doc = "LIN break detection flag"]
25666 pub fn set_lbdf(&mut self, val: bool) {
25667 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
25668 }
25669 #[doc = "CTS interrupt flag"]
25670 pub const fn ctsif(&self) -> bool {
25671 let val = (self.0 >> 9usize) & 0x01;
25672 val != 0
25673 }
25674 #[doc = "CTS interrupt flag"]
25675 pub fn set_ctsif(&mut self, val: bool) {
25676 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
25677 }
25678 #[doc = "CTS flag"]
25679 pub const fn cts(&self) -> bool {
25680 let val = (self.0 >> 10usize) & 0x01;
25681 val != 0
25682 }
25683 #[doc = "CTS flag"]
25684 pub fn set_cts(&mut self, val: bool) {
25685 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
25686 }
25687 #[doc = "Receiver timeout"]
25688 pub const fn rtof(&self) -> bool {
25689 let val = (self.0 >> 11usize) & 0x01;
25690 val != 0
25691 }
25692 #[doc = "Receiver timeout"]
25693 pub fn set_rtof(&mut self, val: bool) {
25694 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
25695 }
25696 #[doc = "End of block flag"]
25697 pub const fn eobf(&self) -> bool {
25698 let val = (self.0 >> 12usize) & 0x01;
25699 val != 0
25700 }
25701 #[doc = "End of block flag"]
25702 pub fn set_eobf(&mut self, val: bool) {
25703 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
25704 }
25705 #[doc = "Auto baud rate error"]
25706 pub const fn abre(&self) -> bool {
25707 let val = (self.0 >> 14usize) & 0x01;
25708 val != 0
25709 }
25710 #[doc = "Auto baud rate error"]
25711 pub fn set_abre(&mut self, val: bool) {
25712 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
25713 }
25714 #[doc = "Auto baud rate flag"]
25715 pub const fn abrf(&self) -> bool {
25716 let val = (self.0 >> 15usize) & 0x01;
25717 val != 0
25718 }
25719 #[doc = "Auto baud rate flag"]
25720 pub fn set_abrf(&mut self, val: bool) {
25721 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize);
25722 }
25723 #[doc = "Busy flag"]
25724 pub const fn busy(&self) -> bool {
25725 let val = (self.0 >> 16usize) & 0x01;
25726 val != 0
25727 }
25728 #[doc = "Busy flag"]
25729 pub fn set_busy(&mut self, val: bool) {
25730 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
25731 }
25732 #[doc = "character match flag"]
25733 pub const fn cmf(&self) -> bool {
25734 let val = (self.0 >> 17usize) & 0x01;
25735 val != 0
25736 }
25737 #[doc = "character match flag"]
25738 pub fn set_cmf(&mut self, val: bool) {
25739 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
25740 }
25741 #[doc = "Send break flag"]
25742 pub const fn sbkf(&self) -> bool {
25743 let val = (self.0 >> 18usize) & 0x01;
25744 val != 0
25745 }
25746 #[doc = "Send break flag"]
25747 pub fn set_sbkf(&mut self, val: bool) {
25748 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize);
25749 }
25750 #[doc = "Receiver wakeup from Mute mode"]
25751 pub const fn rwu(&self) -> bool {
25752 let val = (self.0 >> 19usize) & 0x01;
25753 val != 0
25754 }
25755 #[doc = "Receiver wakeup from Mute mode"]
25756 pub fn set_rwu(&mut self, val: bool) {
25757 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize);
25758 }
25759 #[doc = "Wakeup from Stop mode flag"]
25760 pub const fn wuf(&self) -> bool {
25761 let val = (self.0 >> 20usize) & 0x01;
25762 val != 0
25763 }
25764 #[doc = "Wakeup from Stop mode flag"]
25765 pub fn set_wuf(&mut self, val: bool) {
25766 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize);
25767 }
25768 #[doc = "Transmit enable acknowledge flag"]
25769 pub const fn teack(&self) -> bool {
25770 let val = (self.0 >> 21usize) & 0x01;
25771 val != 0
25772 }
25773 #[doc = "Transmit enable acknowledge flag"]
25774 pub fn set_teack(&mut self, val: bool) {
25775 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
25776 }
25777 #[doc = "Receive enable acknowledge flag"]
25778 pub const fn reack(&self) -> bool {
25779 let val = (self.0 >> 22usize) & 0x01;
25780 val != 0
25781 }
25782 #[doc = "Receive enable acknowledge flag"]
25783 pub fn set_reack(&mut self, val: bool) {
25784 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
25785 }
25786 }
25787 impl Default for Ixr {
25788 fn default() -> Ixr {
25789 Ixr(0)
25790 }
25791 }
25792 #[doc = "Control register 2"]
25793 #[repr(transparent)]
25794 #[derive(Copy, Clone, Eq, PartialEq)]
25795 pub struct Cr2(pub u32);
25796 impl Cr2 {
25797 #[doc = "7-bit Address Detection/4-bit Address Detection"]
25798 pub fn addm(&self, n: usize) -> super::vals::Addm {
25799 assert!(n < 1usize);
25800 let offs = 4usize + n * 0usize;
25801 let val = (self.0 >> offs) & 0x01;
25802 super::vals::Addm(val as u8)
25803 }
25804 #[doc = "7-bit Address Detection/4-bit Address Detection"]
25805 pub fn set_addm(&mut self, n: usize, val: super::vals::Addm) {
25806 assert!(n < 1usize);
25807 let offs = 4usize + n * 0usize;
25808 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
25809 }
25810 #[doc = "LIN break detection length"]
25811 pub const fn lbdl(&self) -> super::vals::Lbdl {
25812 let val = (self.0 >> 5usize) & 0x01;
25813 super::vals::Lbdl(val as u8)
25814 }
25815 #[doc = "LIN break detection length"]
25816 pub fn set_lbdl(&mut self, val: super::vals::Lbdl) {
25817 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
25818 }
25819 #[doc = "LIN break detection interrupt enable"]
25820 pub const fn lbdie(&self) -> bool {
25821 let val = (self.0 >> 6usize) & 0x01;
25822 val != 0
25823 }
25824 #[doc = "LIN break detection interrupt enable"]
25825 pub fn set_lbdie(&mut self, val: bool) {
25826 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
25827 }
25828 #[doc = "Last bit clock pulse"]
25829 pub const fn lbcl(&self) -> super::vals::Lbcl {
25830 let val = (self.0 >> 8usize) & 0x01;
25831 super::vals::Lbcl(val as u8)
25832 }
25833 #[doc = "Last bit clock pulse"]
25834 pub fn set_lbcl(&mut self, val: super::vals::Lbcl) {
25835 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
25836 }
25837 #[doc = "Clock phase"]
25838 pub const fn cpha(&self) -> super::vals::Cpha {
25839 let val = (self.0 >> 9usize) & 0x01;
25840 super::vals::Cpha(val as u8)
25841 }
25842 #[doc = "Clock phase"]
25843 pub fn set_cpha(&mut self, val: super::vals::Cpha) {
25844 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
25845 }
25846 #[doc = "Clock polarity"]
25847 pub const fn cpol(&self) -> super::vals::Cpol {
25848 let val = (self.0 >> 10usize) & 0x01;
25849 super::vals::Cpol(val as u8)
25850 }
25851 #[doc = "Clock polarity"]
25852 pub fn set_cpol(&mut self, val: super::vals::Cpol) {
25853 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
25854 }
25855 #[doc = "Clock enable"]
25856 pub const fn clken(&self) -> bool {
25857 let val = (self.0 >> 11usize) & 0x01;
25858 val != 0
25859 }
25860 #[doc = "Clock enable"]
25861 pub fn set_clken(&mut self, val: bool) {
25862 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
25863 }
25864 #[doc = "STOP bits"]
25865 pub const fn stop(&self) -> super::vals::Stop {
25866 let val = (self.0 >> 12usize) & 0x03;
25867 super::vals::Stop(val as u8)
25868 }
25869 #[doc = "STOP bits"]
25870 pub fn set_stop(&mut self, val: super::vals::Stop) {
25871 self.0 = (self.0 & !(0x03 << 12usize)) | (((val.0 as u32) & 0x03) << 12usize);
25872 }
25873 #[doc = "LIN mode enable"]
25874 pub const fn linen(&self) -> bool {
25875 let val = (self.0 >> 14usize) & 0x01;
25876 val != 0
25877 }
25878 #[doc = "LIN mode enable"]
25879 pub fn set_linen(&mut self, val: bool) {
25880 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
25881 }
25882 #[doc = "Swap TX/RX pins"]
25883 pub const fn swap(&self) -> super::vals::Swap {
25884 let val = (self.0 >> 15usize) & 0x01;
25885 super::vals::Swap(val as u8)
25886 }
25887 #[doc = "Swap TX/RX pins"]
25888 pub fn set_swap(&mut self, val: super::vals::Swap) {
25889 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
25890 }
25891 #[doc = "RX pin active level inversion"]
25892 pub const fn rxinv(&self) -> super::vals::Rxinv {
25893 let val = (self.0 >> 16usize) & 0x01;
25894 super::vals::Rxinv(val as u8)
25895 }
25896 #[doc = "RX pin active level inversion"]
25897 pub fn set_rxinv(&mut self, val: super::vals::Rxinv) {
25898 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
25899 }
25900 #[doc = "TX pin active level inversion"]
25901 pub const fn txinv(&self) -> super::vals::Txinv {
25902 let val = (self.0 >> 17usize) & 0x01;
25903 super::vals::Txinv(val as u8)
25904 }
25905 #[doc = "TX pin active level inversion"]
25906 pub fn set_txinv(&mut self, val: super::vals::Txinv) {
25907 self.0 = (self.0 & !(0x01 << 17usize)) | (((val.0 as u32) & 0x01) << 17usize);
25908 }
25909 #[doc = "Binary data inversion"]
25910 pub const fn datainv(&self) -> super::vals::Datainv {
25911 let val = (self.0 >> 18usize) & 0x01;
25912 super::vals::Datainv(val as u8)
25913 }
25914 #[doc = "Binary data inversion"]
25915 pub fn set_datainv(&mut self, val: super::vals::Datainv) {
25916 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
25917 }
25918 #[doc = "Most significant bit first"]
25919 pub const fn msbfirst(&self) -> super::vals::Msbfirst {
25920 let val = (self.0 >> 19usize) & 0x01;
25921 super::vals::Msbfirst(val as u8)
25922 }
25923 #[doc = "Most significant bit first"]
25924 pub fn set_msbfirst(&mut self, val: super::vals::Msbfirst) {
25925 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
25926 }
25927 #[doc = "Auto baud rate enable"]
25928 pub const fn abren(&self) -> bool {
25929 let val = (self.0 >> 20usize) & 0x01;
25930 val != 0
25931 }
25932 #[doc = "Auto baud rate enable"]
25933 pub fn set_abren(&mut self, val: bool) {
25934 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize);
25935 }
25936 #[doc = "Auto baud rate mode"]
25937 pub const fn abrmod(&self) -> super::vals::Abrmod {
25938 let val = (self.0 >> 21usize) & 0x03;
25939 super::vals::Abrmod(val as u8)
25940 }
25941 #[doc = "Auto baud rate mode"]
25942 pub fn set_abrmod(&mut self, val: super::vals::Abrmod) {
25943 self.0 = (self.0 & !(0x03 << 21usize)) | (((val.0 as u32) & 0x03) << 21usize);
25944 }
25945 #[doc = "Receiver timeout enable"]
25946 pub const fn rtoen(&self) -> bool {
25947 let val = (self.0 >> 23usize) & 0x01;
25948 val != 0
25949 }
25950 #[doc = "Receiver timeout enable"]
25951 pub fn set_rtoen(&mut self, val: bool) {
25952 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
25953 }
25954 #[doc = "Address of the USART node"]
25955 pub const fn add(&self) -> u8 {
25956 let val = (self.0 >> 24usize) & 0xff;
25957 val as u8
25958 }
25959 #[doc = "Address of the USART node"]
25960 pub fn set_add(&mut self, val: u8) {
25961 self.0 = (self.0 & !(0xff << 24usize)) | (((val as u32) & 0xff) << 24usize);
25962 }
25963 }
25964 impl Default for Cr2 {
25965 fn default() -> Cr2 {
25966 Cr2(0)
25967 }
25968 }
25969 #[doc = "Baud rate register"]
25970 #[repr(transparent)]
25971 #[derive(Copy, Clone, Eq, PartialEq)]
25972 pub struct Brr(pub u32);
25973 impl Brr {
25974 #[doc = "mantissa of USARTDIV"]
25975 pub const fn brr(&self) -> u16 {
25976 let val = (self.0 >> 0usize) & 0xffff;
25977 val as u16
25978 }
25979 #[doc = "mantissa of USARTDIV"]
25980 pub fn set_brr(&mut self, val: u16) {
25981 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
25982 }
25983 }
25984 impl Default for Brr {
25985 fn default() -> Brr {
25986 Brr(0)
25987 }
25988 }
25989 }
25990}
25991pub mod exti_v1 {
25992 use crate::generic::*;
25993 #[doc = "External interrupt/event controller"]
25994 #[derive(Copy, Clone)]
25995 pub struct Exti(pub *mut u8);
25996 unsafe impl Send for Exti {}
25997 unsafe impl Sync for Exti {}
25998 impl Exti {
25999 #[doc = "Interrupt mask register (EXTI_IMR)"]
26000 pub fn imr(self) -> Reg<regs::Imr, RW> {
26001 unsafe { Reg::from_ptr(self.0.add(0usize)) }
26002 }
26003 #[doc = "Event mask register (EXTI_EMR)"]
26004 pub fn emr(self) -> Reg<regs::Emr, RW> {
26005 unsafe { Reg::from_ptr(self.0.add(4usize)) }
26006 }
26007 #[doc = "Rising Trigger selection register (EXTI_RTSR)"]
26008 pub fn rtsr(self) -> Reg<regs::Rtsr, RW> {
26009 unsafe { Reg::from_ptr(self.0.add(8usize)) }
26010 }
26011 #[doc = "Falling Trigger selection register (EXTI_FTSR)"]
26012 pub fn ftsr(self) -> Reg<regs::Ftsr, RW> {
26013 unsafe { Reg::from_ptr(self.0.add(12usize)) }
26014 }
26015 #[doc = "Software interrupt event register (EXTI_SWIER)"]
26016 pub fn swier(self) -> Reg<regs::Swier, RW> {
26017 unsafe { Reg::from_ptr(self.0.add(16usize)) }
26018 }
26019 #[doc = "Pending register (EXTI_PR)"]
26020 pub fn pr(self) -> Reg<regs::Pr, RW> {
26021 unsafe { Reg::from_ptr(self.0.add(20usize)) }
26022 }
26023 }
26024 pub mod vals {
26025 use crate::generic::*;
26026 #[repr(transparent)]
26027 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26028 pub struct Mr(pub u8);
26029 impl Mr {
26030 #[doc = "Interrupt request line is masked"]
26031 pub const MASKED: Self = Self(0);
26032 #[doc = "Interrupt request line is unmasked"]
26033 pub const UNMASKED: Self = Self(0x01);
26034 }
26035 #[repr(transparent)]
26036 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26037 pub struct Swierw(pub u8);
26038 impl Swierw {
26039 #[doc = "Generates an interrupt request"]
26040 pub const PEND: Self = Self(0x01);
26041 }
26042 #[repr(transparent)]
26043 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26044 pub struct Prw(pub u8);
26045 impl Prw {
26046 #[doc = "Clears pending bit"]
26047 pub const CLEAR: Self = Self(0x01);
26048 }
26049 #[repr(transparent)]
26050 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26051 pub struct Prr(pub u8);
26052 impl Prr {
26053 #[doc = "No trigger request occurred"]
26054 pub const NOTPENDING: Self = Self(0);
26055 #[doc = "Selected trigger request occurred"]
26056 pub const PENDING: Self = Self(0x01);
26057 }
26058 #[repr(transparent)]
26059 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
26060 pub struct Tr(pub u8);
26061 impl Tr {
26062 #[doc = "Falling edge trigger is disabled"]
26063 pub const DISABLED: Self = Self(0);
26064 #[doc = "Falling edge trigger is enabled"]
26065 pub const ENABLED: Self = Self(0x01);
26066 }
26067 }
26068 pub mod regs {
26069 use crate::generic::*;
26070 #[doc = "Software interrupt event register (EXTI_SWIER)"]
26071 #[repr(transparent)]
26072 #[derive(Copy, Clone, Eq, PartialEq)]
26073 pub struct Swier(pub u32);
26074 impl Swier {
26075 #[doc = "Software Interrupt on line 0"]
26076 pub fn swier(&self, n: usize) -> bool {
26077 assert!(n < 23usize);
26078 let offs = 0usize + n * 1usize;
26079 let val = (self.0 >> offs) & 0x01;
26080 val != 0
26081 }
26082 #[doc = "Software Interrupt on line 0"]
26083 pub fn set_swier(&mut self, n: usize, val: bool) {
26084 assert!(n < 23usize);
26085 let offs = 0usize + n * 1usize;
26086 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
26087 }
26088 }
26089 impl Default for Swier {
26090 fn default() -> Swier {
26091 Swier(0)
26092 }
26093 }
26094 #[doc = "Pending register (EXTI_PR)"]
26095 #[repr(transparent)]
26096 #[derive(Copy, Clone, Eq, PartialEq)]
26097 pub struct Pr(pub u32);
26098 impl Pr {
26099 #[doc = "Pending bit 0"]
26100 pub fn pr(&self, n: usize) -> bool {
26101 assert!(n < 23usize);
26102 let offs = 0usize + n * 1usize;
26103 let val = (self.0 >> offs) & 0x01;
26104 val != 0
26105 }
26106 #[doc = "Pending bit 0"]
26107 pub fn set_pr(&mut self, n: usize, val: bool) {
26108 assert!(n < 23usize);
26109 let offs = 0usize + n * 1usize;
26110 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
26111 }
26112 }
26113 impl Default for Pr {
26114 fn default() -> Pr {
26115 Pr(0)
26116 }
26117 }
26118 #[doc = "Falling Trigger selection register (EXTI_FTSR)"]
26119 #[repr(transparent)]
26120 #[derive(Copy, Clone, Eq, PartialEq)]
26121 pub struct Ftsr(pub u32);
26122 impl Ftsr {
26123 #[doc = "Falling trigger event configuration of line 0"]
26124 pub fn tr(&self, n: usize) -> super::vals::Tr {
26125 assert!(n < 23usize);
26126 let offs = 0usize + n * 1usize;
26127 let val = (self.0 >> offs) & 0x01;
26128 super::vals::Tr(val as u8)
26129 }
26130 #[doc = "Falling trigger event configuration of line 0"]
26131 pub fn set_tr(&mut self, n: usize, val: super::vals::Tr) {
26132 assert!(n < 23usize);
26133 let offs = 0usize + n * 1usize;
26134 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
26135 }
26136 }
26137 impl Default for Ftsr {
26138 fn default() -> Ftsr {
26139 Ftsr(0)
26140 }
26141 }
26142 #[doc = "Event mask register (EXTI_EMR)"]
26143 #[repr(transparent)]
26144 #[derive(Copy, Clone, Eq, PartialEq)]
26145 pub struct Emr(pub u32);
26146 impl Emr {
26147 #[doc = "Event Mask on line 0"]
26148 pub fn mr(&self, n: usize) -> super::vals::Mr {
26149 assert!(n < 23usize);
26150 let offs = 0usize + n * 1usize;
26151 let val = (self.0 >> offs) & 0x01;
26152 super::vals::Mr(val as u8)
26153 }
26154 #[doc = "Event Mask on line 0"]
26155 pub fn set_mr(&mut self, n: usize, val: super::vals::Mr) {
26156 assert!(n < 23usize);
26157 let offs = 0usize + n * 1usize;
26158 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
26159 }
26160 }
26161 impl Default for Emr {
26162 fn default() -> Emr {
26163 Emr(0)
26164 }
26165 }
26166 #[doc = "Interrupt mask register (EXTI_IMR)"]
26167 #[repr(transparent)]
26168 #[derive(Copy, Clone, Eq, PartialEq)]
26169 pub struct Imr(pub u32);
26170 impl Imr {
26171 #[doc = "Interrupt Mask on line 0"]
26172 pub fn mr(&self, n: usize) -> super::vals::Mr {
26173 assert!(n < 23usize);
26174 let offs = 0usize + n * 1usize;
26175 let val = (self.0 >> offs) & 0x01;
26176 super::vals::Mr(val as u8)
26177 }
26178 #[doc = "Interrupt Mask on line 0"]
26179 pub fn set_mr(&mut self, n: usize, val: super::vals::Mr) {
26180 assert!(n < 23usize);
26181 let offs = 0usize + n * 1usize;
26182 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
26183 }
26184 }
26185 impl Default for Imr {
26186 fn default() -> Imr {
26187 Imr(0)
26188 }
26189 }
26190 #[doc = "Rising Trigger selection register (EXTI_RTSR)"]
26191 #[repr(transparent)]
26192 #[derive(Copy, Clone, Eq, PartialEq)]
26193 pub struct Rtsr(pub u32);
26194 impl Rtsr {
26195 #[doc = "Rising trigger event configuration of line 0"]
26196 pub fn tr(&self, n: usize) -> super::vals::Tr {
26197 assert!(n < 23usize);
26198 let offs = 0usize + n * 1usize;
26199 let val = (self.0 >> offs) & 0x01;
26200 super::vals::Tr(val as u8)
26201 }
26202 #[doc = "Rising trigger event configuration of line 0"]
26203 pub fn set_tr(&mut self, n: usize, val: super::vals::Tr) {
26204 assert!(n < 23usize);
26205 let offs = 0usize + n * 1usize;
26206 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
26207 }
26208 }
26209 impl Default for Rtsr {
26210 fn default() -> Rtsr {
26211 Rtsr(0)
26212 }
26213 } 26213 }
26214 } 26214 }
26215} 26215}
diff --git a/embassy-stm32/src/pac/stm32f401cb.rs b/embassy-stm32/src/pac/stm32f401cb.rs
index 75324f9fa..2409425ce 100644
--- a/embassy-stm32/src/pac/stm32f401cb.rs
+++ b/embassy-stm32/src/pac/stm32f401cb.rs
@@ -153,14 +153,14 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
153impl_spi_pin!(SPI3, MosiPin, PC12, 6); 153impl_spi_pin!(SPI3, MosiPin, PC12, 6);
154impl_spi_pin!(SPI3, MosiPin, PD6, 5); 154impl_spi_pin!(SPI3, MosiPin, PD6, 5);
155pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 155pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
156pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 156pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
157pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 157pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
158pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 158pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
159pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 159pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
160pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 160pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
161pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 161pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
162pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 162pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
163pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 163pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
164pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 164pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
165impl_usart!(USART1); 165impl_usart!(USART1);
166impl_usart_pin!(USART1, RxPin, PA10, 7); 166impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f401cc.rs b/embassy-stm32/src/pac/stm32f401cc.rs
index 75324f9fa..2409425ce 100644
--- a/embassy-stm32/src/pac/stm32f401cc.rs
+++ b/embassy-stm32/src/pac/stm32f401cc.rs
@@ -153,14 +153,14 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
153impl_spi_pin!(SPI3, MosiPin, PC12, 6); 153impl_spi_pin!(SPI3, MosiPin, PC12, 6);
154impl_spi_pin!(SPI3, MosiPin, PD6, 5); 154impl_spi_pin!(SPI3, MosiPin, PD6, 5);
155pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 155pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
156pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 156pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
157pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 157pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
158pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 158pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
159pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 159pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
160pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 160pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
161pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 161pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
162pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 162pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
163pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 163pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
164pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 164pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
165impl_usart!(USART1); 165impl_usart!(USART1);
166impl_usart_pin!(USART1, RxPin, PA10, 7); 166impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f401cd.rs b/embassy-stm32/src/pac/stm32f401cd.rs
index 75324f9fa..2409425ce 100644
--- a/embassy-stm32/src/pac/stm32f401cd.rs
+++ b/embassy-stm32/src/pac/stm32f401cd.rs
@@ -153,14 +153,14 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
153impl_spi_pin!(SPI3, MosiPin, PC12, 6); 153impl_spi_pin!(SPI3, MosiPin, PC12, 6);
154impl_spi_pin!(SPI3, MosiPin, PD6, 5); 154impl_spi_pin!(SPI3, MosiPin, PD6, 5);
155pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 155pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
156pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 156pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
157pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 157pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
158pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 158pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
159pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 159pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
160pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 160pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
161pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 161pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
162pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 162pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
163pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 163pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
164pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 164pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
165impl_usart!(USART1); 165impl_usart!(USART1);
166impl_usart_pin!(USART1, RxPin, PA10, 7); 166impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f401ce.rs b/embassy-stm32/src/pac/stm32f401ce.rs
index 75324f9fa..2409425ce 100644
--- a/embassy-stm32/src/pac/stm32f401ce.rs
+++ b/embassy-stm32/src/pac/stm32f401ce.rs
@@ -153,14 +153,14 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
153impl_spi_pin!(SPI3, MosiPin, PC12, 6); 153impl_spi_pin!(SPI3, MosiPin, PC12, 6);
154impl_spi_pin!(SPI3, MosiPin, PD6, 5); 154impl_spi_pin!(SPI3, MosiPin, PD6, 5);
155pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 155pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
156pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 156pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
157pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 157pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
158pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 158pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
159pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 159pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
160pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 160pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
161pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 161pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
162pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 162pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
163pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 163pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
164pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 164pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
165impl_usart!(USART1); 165impl_usart!(USART1);
166impl_usart_pin!(USART1, RxPin, PA10, 7); 166impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f401rb.rs b/embassy-stm32/src/pac/stm32f401rb.rs
index 75324f9fa..2409425ce 100644
--- a/embassy-stm32/src/pac/stm32f401rb.rs
+++ b/embassy-stm32/src/pac/stm32f401rb.rs
@@ -153,14 +153,14 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
153impl_spi_pin!(SPI3, MosiPin, PC12, 6); 153impl_spi_pin!(SPI3, MosiPin, PC12, 6);
154impl_spi_pin!(SPI3, MosiPin, PD6, 5); 154impl_spi_pin!(SPI3, MosiPin, PD6, 5);
155pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 155pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
156pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 156pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
157pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 157pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
158pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 158pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
159pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 159pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
160pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 160pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
161pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 161pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
162pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 162pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
163pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 163pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
164pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 164pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
165impl_usart!(USART1); 165impl_usart!(USART1);
166impl_usart_pin!(USART1, RxPin, PA10, 7); 166impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f401rc.rs b/embassy-stm32/src/pac/stm32f401rc.rs
index 75324f9fa..2409425ce 100644
--- a/embassy-stm32/src/pac/stm32f401rc.rs
+++ b/embassy-stm32/src/pac/stm32f401rc.rs
@@ -153,14 +153,14 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
153impl_spi_pin!(SPI3, MosiPin, PC12, 6); 153impl_spi_pin!(SPI3, MosiPin, PC12, 6);
154impl_spi_pin!(SPI3, MosiPin, PD6, 5); 154impl_spi_pin!(SPI3, MosiPin, PD6, 5);
155pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 155pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
156pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 156pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
157pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 157pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
158pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 158pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
159pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 159pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
160pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 160pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
161pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 161pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
162pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 162pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
163pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 163pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
164pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 164pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
165impl_usart!(USART1); 165impl_usart!(USART1);
166impl_usart_pin!(USART1, RxPin, PA10, 7); 166impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f401rd.rs b/embassy-stm32/src/pac/stm32f401rd.rs
index 75324f9fa..2409425ce 100644
--- a/embassy-stm32/src/pac/stm32f401rd.rs
+++ b/embassy-stm32/src/pac/stm32f401rd.rs
@@ -153,14 +153,14 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
153impl_spi_pin!(SPI3, MosiPin, PC12, 6); 153impl_spi_pin!(SPI3, MosiPin, PC12, 6);
154impl_spi_pin!(SPI3, MosiPin, PD6, 5); 154impl_spi_pin!(SPI3, MosiPin, PD6, 5);
155pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 155pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
156pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 156pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
157pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 157pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
158pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 158pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
159pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 159pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
160pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 160pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
161pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 161pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
162pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 162pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
163pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 163pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
164pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 164pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
165impl_usart!(USART1); 165impl_usart!(USART1);
166impl_usart_pin!(USART1, RxPin, PA10, 7); 166impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f401re.rs b/embassy-stm32/src/pac/stm32f401re.rs
index 75324f9fa..2409425ce 100644
--- a/embassy-stm32/src/pac/stm32f401re.rs
+++ b/embassy-stm32/src/pac/stm32f401re.rs
@@ -153,14 +153,14 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
153impl_spi_pin!(SPI3, MosiPin, PC12, 6); 153impl_spi_pin!(SPI3, MosiPin, PC12, 6);
154impl_spi_pin!(SPI3, MosiPin, PD6, 5); 154impl_spi_pin!(SPI3, MosiPin, PD6, 5);
155pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 155pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
156pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 156pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
157pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 157pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
158pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 158pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
159pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 159pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
160pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 160pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
161pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 161pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
162pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 162pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
163pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 163pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
164pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 164pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
165impl_usart!(USART1); 165impl_usart!(USART1);
166impl_usart_pin!(USART1, RxPin, PA10, 7); 166impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f401vb.rs b/embassy-stm32/src/pac/stm32f401vb.rs
index 223e4d972..c4a1bdc75 100644
--- a/embassy-stm32/src/pac/stm32f401vb.rs
+++ b/embassy-stm32/src/pac/stm32f401vb.rs
@@ -161,14 +161,14 @@ impl_spi_pin!(SPI4, SckPin, PE2, 5);
161impl_spi_pin!(SPI4, MisoPin, PE5, 5); 161impl_spi_pin!(SPI4, MisoPin, PE5, 5);
162impl_spi_pin!(SPI4, MosiPin, PE6, 5); 162impl_spi_pin!(SPI4, MosiPin, PE6, 5);
163pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 163pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
164pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 164pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
165pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 165pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
166pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 166pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
167pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 167pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
168pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 168pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
169pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 169pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
170pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 170pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
171pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 171pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
172pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 172pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
173impl_usart!(USART1); 173impl_usart!(USART1);
174impl_usart_pin!(USART1, RxPin, PA10, 7); 174impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f401vc.rs b/embassy-stm32/src/pac/stm32f401vc.rs
index 223e4d972..c4a1bdc75 100644
--- a/embassy-stm32/src/pac/stm32f401vc.rs
+++ b/embassy-stm32/src/pac/stm32f401vc.rs
@@ -161,14 +161,14 @@ impl_spi_pin!(SPI4, SckPin, PE2, 5);
161impl_spi_pin!(SPI4, MisoPin, PE5, 5); 161impl_spi_pin!(SPI4, MisoPin, PE5, 5);
162impl_spi_pin!(SPI4, MosiPin, PE6, 5); 162impl_spi_pin!(SPI4, MosiPin, PE6, 5);
163pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 163pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
164pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 164pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
165pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 165pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
166pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 166pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
167pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 167pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
168pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 168pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
169pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 169pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
170pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 170pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
171pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 171pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
172pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 172pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
173impl_usart!(USART1); 173impl_usart!(USART1);
174impl_usart_pin!(USART1, RxPin, PA10, 7); 174impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f401vd.rs b/embassy-stm32/src/pac/stm32f401vd.rs
index 223e4d972..c4a1bdc75 100644
--- a/embassy-stm32/src/pac/stm32f401vd.rs
+++ b/embassy-stm32/src/pac/stm32f401vd.rs
@@ -161,14 +161,14 @@ impl_spi_pin!(SPI4, SckPin, PE2, 5);
161impl_spi_pin!(SPI4, MisoPin, PE5, 5); 161impl_spi_pin!(SPI4, MisoPin, PE5, 5);
162impl_spi_pin!(SPI4, MosiPin, PE6, 5); 162impl_spi_pin!(SPI4, MosiPin, PE6, 5);
163pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 163pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
164pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 164pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
165pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 165pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
166pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 166pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
167pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 167pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
168pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 168pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
169pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 169pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
170pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 170pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
171pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 171pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
172pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 172pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
173impl_usart!(USART1); 173impl_usart!(USART1);
174impl_usart_pin!(USART1, RxPin, PA10, 7); 174impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f401ve.rs b/embassy-stm32/src/pac/stm32f401ve.rs
index 223e4d972..c4a1bdc75 100644
--- a/embassy-stm32/src/pac/stm32f401ve.rs
+++ b/embassy-stm32/src/pac/stm32f401ve.rs
@@ -161,14 +161,14 @@ impl_spi_pin!(SPI4, SckPin, PE2, 5);
161impl_spi_pin!(SPI4, MisoPin, PE5, 5); 161impl_spi_pin!(SPI4, MisoPin, PE5, 5);
162impl_spi_pin!(SPI4, MosiPin, PE6, 5); 162impl_spi_pin!(SPI4, MosiPin, PE6, 5);
163pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 163pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
164pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 164pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
165pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 165pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
166pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 166pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
167pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 167pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
168pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 168pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
169pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 169pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
170pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 170pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
171pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 171pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
172pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 172pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
173impl_usart!(USART1); 173impl_usart!(USART1);
174impl_usart_pin!(USART1, RxPin, PA10, 7); 174impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f405oe.rs b/embassy-stm32/src/pac/stm32f405oe.rs
index 600deddff..28687020e 100644
--- a/embassy-stm32/src/pac/stm32f405oe.rs
+++ b/embassy-stm32/src/pac/stm32f405oe.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f405og.rs b/embassy-stm32/src/pac/stm32f405og.rs
index 600deddff..28687020e 100644
--- a/embassy-stm32/src/pac/stm32f405og.rs
+++ b/embassy-stm32/src/pac/stm32f405og.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f405rg.rs b/embassy-stm32/src/pac/stm32f405rg.rs
index 600deddff..28687020e 100644
--- a/embassy-stm32/src/pac/stm32f405rg.rs
+++ b/embassy-stm32/src/pac/stm32f405rg.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f405vg.rs b/embassy-stm32/src/pac/stm32f405vg.rs
index 600deddff..28687020e 100644
--- a/embassy-stm32/src/pac/stm32f405vg.rs
+++ b/embassy-stm32/src/pac/stm32f405vg.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f405zg.rs b/embassy-stm32/src/pac/stm32f405zg.rs
index 600deddff..28687020e 100644
--- a/embassy-stm32/src/pac/stm32f405zg.rs
+++ b/embassy-stm32/src/pac/stm32f405zg.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f407ie.rs b/embassy-stm32/src/pac/stm32f407ie.rs
index fb6563f77..a13b237e3 100644
--- a/embassy-stm32/src/pac/stm32f407ie.rs
+++ b/embassy-stm32/src/pac/stm32f407ie.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f407ig.rs b/embassy-stm32/src/pac/stm32f407ig.rs
index fb6563f77..a13b237e3 100644
--- a/embassy-stm32/src/pac/stm32f407ig.rs
+++ b/embassy-stm32/src/pac/stm32f407ig.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f407ve.rs b/embassy-stm32/src/pac/stm32f407ve.rs
index fb6563f77..a13b237e3 100644
--- a/embassy-stm32/src/pac/stm32f407ve.rs
+++ b/embassy-stm32/src/pac/stm32f407ve.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f407vg.rs b/embassy-stm32/src/pac/stm32f407vg.rs
index fb6563f77..a13b237e3 100644
--- a/embassy-stm32/src/pac/stm32f407vg.rs
+++ b/embassy-stm32/src/pac/stm32f407vg.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f407ze.rs b/embassy-stm32/src/pac/stm32f407ze.rs
index fb6563f77..a13b237e3 100644
--- a/embassy-stm32/src/pac/stm32f407ze.rs
+++ b/embassy-stm32/src/pac/stm32f407ze.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f407zg.rs b/embassy-stm32/src/pac/stm32f407zg.rs
index fb6563f77..a13b237e3 100644
--- a/embassy-stm32/src/pac/stm32f407zg.rs
+++ b/embassy-stm32/src/pac/stm32f407zg.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f410c8.rs b/embassy-stm32/src/pac/stm32f410c8.rs
index 9a864a954..fa240cb6b 100644
--- a/embassy-stm32/src/pac/stm32f410c8.rs
+++ b/embassy-stm32/src/pac/stm32f410c8.rs
@@ -95,11 +95,11 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
95pub const RNG: rng::Rng = rng::Rng(0x40080000 as _); 95pub const RNG: rng::Rng = rng::Rng(0x40080000 as _);
96impl_rng!(RNG, RNG); 96impl_rng!(RNG, RNG);
97pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 97pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
98pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 98pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
99pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 99pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
100pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 100pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
101pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 101pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
102pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 102pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
103pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 103pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
104impl_usart!(USART1); 104impl_usart!(USART1);
105impl_usart_pin!(USART1, RxPin, PA10, 7); 105impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f410cb.rs b/embassy-stm32/src/pac/stm32f410cb.rs
index 9a864a954..fa240cb6b 100644
--- a/embassy-stm32/src/pac/stm32f410cb.rs
+++ b/embassy-stm32/src/pac/stm32f410cb.rs
@@ -95,11 +95,11 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
95pub const RNG: rng::Rng = rng::Rng(0x40080000 as _); 95pub const RNG: rng::Rng = rng::Rng(0x40080000 as _);
96impl_rng!(RNG, RNG); 96impl_rng!(RNG, RNG);
97pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 97pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
98pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 98pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
99pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 99pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
100pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 100pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
101pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 101pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
102pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 102pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
103pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 103pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
104impl_usart!(USART1); 104impl_usart!(USART1);
105impl_usart_pin!(USART1, RxPin, PA10, 7); 105impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f410r8.rs b/embassy-stm32/src/pac/stm32f410r8.rs
index 9a864a954..fa240cb6b 100644
--- a/embassy-stm32/src/pac/stm32f410r8.rs
+++ b/embassy-stm32/src/pac/stm32f410r8.rs
@@ -95,11 +95,11 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
95pub const RNG: rng::Rng = rng::Rng(0x40080000 as _); 95pub const RNG: rng::Rng = rng::Rng(0x40080000 as _);
96impl_rng!(RNG, RNG); 96impl_rng!(RNG, RNG);
97pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 97pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
98pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 98pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
99pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 99pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
100pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 100pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
101pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 101pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
102pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 102pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
103pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 103pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
104impl_usart!(USART1); 104impl_usart!(USART1);
105impl_usart_pin!(USART1, RxPin, PA10, 7); 105impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f410rb.rs b/embassy-stm32/src/pac/stm32f410rb.rs
index 9a864a954..fa240cb6b 100644
--- a/embassy-stm32/src/pac/stm32f410rb.rs
+++ b/embassy-stm32/src/pac/stm32f410rb.rs
@@ -95,11 +95,11 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
95pub const RNG: rng::Rng = rng::Rng(0x40080000 as _); 95pub const RNG: rng::Rng = rng::Rng(0x40080000 as _);
96impl_rng!(RNG, RNG); 96impl_rng!(RNG, RNG);
97pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 97pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
98pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 98pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
99pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 99pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
100pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 100pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
101pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 101pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
102pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 102pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
103pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 103pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
104impl_usart!(USART1); 104impl_usart!(USART1);
105impl_usart_pin!(USART1, RxPin, PA10, 7); 105impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f410t8.rs b/embassy-stm32/src/pac/stm32f410t8.rs
index 4d5049533..428c005cd 100644
--- a/embassy-stm32/src/pac/stm32f410t8.rs
+++ b/embassy-stm32/src/pac/stm32f410t8.rs
@@ -95,11 +95,11 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
95pub const RNG: rng::Rng = rng::Rng(0x40080000 as _); 95pub const RNG: rng::Rng = rng::Rng(0x40080000 as _);
96impl_rng!(RNG, RNG); 96impl_rng!(RNG, RNG);
97pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 97pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
98pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 98pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
99pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 99pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
100pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 100pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
101pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 101pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
102pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 102pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
103pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 103pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
104impl_usart!(USART1); 104impl_usart!(USART1);
105impl_usart_pin!(USART1, RxPin, PA10, 7); 105impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f410tb.rs b/embassy-stm32/src/pac/stm32f410tb.rs
index 4d5049533..428c005cd 100644
--- a/embassy-stm32/src/pac/stm32f410tb.rs
+++ b/embassy-stm32/src/pac/stm32f410tb.rs
@@ -95,11 +95,11 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
95pub const RNG: rng::Rng = rng::Rng(0x40080000 as _); 95pub const RNG: rng::Rng = rng::Rng(0x40080000 as _);
96impl_rng!(RNG, RNG); 96impl_rng!(RNG, RNG);
97pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 97pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
98pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 98pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
99pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 99pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
100pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 100pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
101pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 101pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
102pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 102pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
103pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 103pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
104impl_usart!(USART1); 104impl_usart!(USART1);
105impl_usart_pin!(USART1, RxPin, PA10, 7); 105impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f411cc.rs b/embassy-stm32/src/pac/stm32f411cc.rs
index 1b74230b5..93e5b1f38 100644
--- a/embassy-stm32/src/pac/stm32f411cc.rs
+++ b/embassy-stm32/src/pac/stm32f411cc.rs
@@ -178,14 +178,14 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
178impl_spi_pin!(SPI5, MisoPin, PE5, 6); 178impl_spi_pin!(SPI5, MisoPin, PE5, 6);
179impl_spi_pin!(SPI5, MosiPin, PE6, 6); 179impl_spi_pin!(SPI5, MosiPin, PE6, 6);
180pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 180pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
181pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 181pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
182pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 182pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
183pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 183pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
184pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 184pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
185pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 185pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
186pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 186pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
187pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 187pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
188pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 188pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
189pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 189pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
190impl_usart!(USART1); 190impl_usart!(USART1);
191impl_usart_pin!(USART1, RxPin, PA10, 7); 191impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f411ce.rs b/embassy-stm32/src/pac/stm32f411ce.rs
index 1b74230b5..93e5b1f38 100644
--- a/embassy-stm32/src/pac/stm32f411ce.rs
+++ b/embassy-stm32/src/pac/stm32f411ce.rs
@@ -178,14 +178,14 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
178impl_spi_pin!(SPI5, MisoPin, PE5, 6); 178impl_spi_pin!(SPI5, MisoPin, PE5, 6);
179impl_spi_pin!(SPI5, MosiPin, PE6, 6); 179impl_spi_pin!(SPI5, MosiPin, PE6, 6);
180pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 180pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
181pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 181pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
182pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 182pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
183pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 183pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
184pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 184pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
185pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 185pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
186pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 186pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
187pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 187pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
188pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 188pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
189pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 189pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
190impl_usart!(USART1); 190impl_usart!(USART1);
191impl_usart_pin!(USART1, RxPin, PA10, 7); 191impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f411rc.rs b/embassy-stm32/src/pac/stm32f411rc.rs
index 1b74230b5..93e5b1f38 100644
--- a/embassy-stm32/src/pac/stm32f411rc.rs
+++ b/embassy-stm32/src/pac/stm32f411rc.rs
@@ -178,14 +178,14 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
178impl_spi_pin!(SPI5, MisoPin, PE5, 6); 178impl_spi_pin!(SPI5, MisoPin, PE5, 6);
179impl_spi_pin!(SPI5, MosiPin, PE6, 6); 179impl_spi_pin!(SPI5, MosiPin, PE6, 6);
180pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 180pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
181pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 181pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
182pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 182pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
183pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 183pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
184pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 184pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
185pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 185pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
186pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 186pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
187pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 187pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
188pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 188pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
189pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 189pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
190impl_usart!(USART1); 190impl_usart!(USART1);
191impl_usart_pin!(USART1, RxPin, PA10, 7); 191impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f411re.rs b/embassy-stm32/src/pac/stm32f411re.rs
index 1b74230b5..93e5b1f38 100644
--- a/embassy-stm32/src/pac/stm32f411re.rs
+++ b/embassy-stm32/src/pac/stm32f411re.rs
@@ -178,14 +178,14 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
178impl_spi_pin!(SPI5, MisoPin, PE5, 6); 178impl_spi_pin!(SPI5, MisoPin, PE5, 6);
179impl_spi_pin!(SPI5, MosiPin, PE6, 6); 179impl_spi_pin!(SPI5, MosiPin, PE6, 6);
180pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 180pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
181pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 181pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
182pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 182pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
183pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 183pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
184pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 184pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
185pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 185pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
186pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 186pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
187pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 187pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
188pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 188pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
189pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 189pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
190impl_usart!(USART1); 190impl_usart!(USART1);
191impl_usart_pin!(USART1, RxPin, PA10, 7); 191impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f411vc.rs b/embassy-stm32/src/pac/stm32f411vc.rs
index 1b74230b5..93e5b1f38 100644
--- a/embassy-stm32/src/pac/stm32f411vc.rs
+++ b/embassy-stm32/src/pac/stm32f411vc.rs
@@ -178,14 +178,14 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
178impl_spi_pin!(SPI5, MisoPin, PE5, 6); 178impl_spi_pin!(SPI5, MisoPin, PE5, 6);
179impl_spi_pin!(SPI5, MosiPin, PE6, 6); 179impl_spi_pin!(SPI5, MosiPin, PE6, 6);
180pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 180pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
181pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 181pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
182pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 182pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
183pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 183pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
184pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 184pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
185pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 185pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
186pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 186pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
187pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 187pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
188pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 188pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
189pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 189pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
190impl_usart!(USART1); 190impl_usart!(USART1);
191impl_usart_pin!(USART1, RxPin, PA10, 7); 191impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f411ve.rs b/embassy-stm32/src/pac/stm32f411ve.rs
index 1b74230b5..93e5b1f38 100644
--- a/embassy-stm32/src/pac/stm32f411ve.rs
+++ b/embassy-stm32/src/pac/stm32f411ve.rs
@@ -178,14 +178,14 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
178impl_spi_pin!(SPI5, MisoPin, PE5, 6); 178impl_spi_pin!(SPI5, MisoPin, PE5, 6);
179impl_spi_pin!(SPI5, MosiPin, PE6, 6); 179impl_spi_pin!(SPI5, MosiPin, PE6, 6);
180pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 180pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
181pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 181pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
182pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 182pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
183pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 183pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
184pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 184pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
185pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 185pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
186pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 186pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
187pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 187pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
188pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 188pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
189pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 189pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
190impl_usart!(USART1); 190impl_usart!(USART1);
191impl_usart_pin!(USART1, RxPin, PA10, 7); 191impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f412ce.rs b/embassy-stm32/src/pac/stm32f412ce.rs
index 980b49b9b..112091bdb 100644
--- a/embassy-stm32/src/pac/stm32f412ce.rs
+++ b/embassy-stm32/src/pac/stm32f412ce.rs
@@ -132,20 +132,20 @@ impl_spi_pin!(SPI5, MisoPin, PA12, 6);
132impl_spi_pin!(SPI5, SckPin, PB0, 6); 132impl_spi_pin!(SPI5, SckPin, PB0, 6);
133impl_spi_pin!(SPI5, MosiPin, PB8, 6); 133impl_spi_pin!(SPI5, MosiPin, PB8, 6);
134pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 134pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
135pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 135pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
136pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 136pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
137pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 137pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
138pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 138pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
139pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 139pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
140pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 140pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
141pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 141pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
142pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 142pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
143pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 143pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
144pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 144pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
145pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 145pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
146pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 146pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
147pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 147pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
148pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 148pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
149pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 149pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
150impl_usart!(USART1); 150impl_usart!(USART1);
151impl_usart_pin!(USART1, RxPin, PA10, 7); 151impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f412cg.rs b/embassy-stm32/src/pac/stm32f412cg.rs
index 980b49b9b..112091bdb 100644
--- a/embassy-stm32/src/pac/stm32f412cg.rs
+++ b/embassy-stm32/src/pac/stm32f412cg.rs
@@ -132,20 +132,20 @@ impl_spi_pin!(SPI5, MisoPin, PA12, 6);
132impl_spi_pin!(SPI5, SckPin, PB0, 6); 132impl_spi_pin!(SPI5, SckPin, PB0, 6);
133impl_spi_pin!(SPI5, MosiPin, PB8, 6); 133impl_spi_pin!(SPI5, MosiPin, PB8, 6);
134pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 134pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
135pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 135pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
136pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 136pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
137pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 137pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
138pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 138pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
139pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 139pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
140pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 140pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
141pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 141pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
142pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 142pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
143pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 143pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
144pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 144pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
145pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 145pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
146pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 146pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
147pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 147pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
148pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 148pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
149pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 149pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
150impl_usart!(USART1); 150impl_usart!(USART1);
151impl_usart_pin!(USART1, RxPin, PA10, 7); 151impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f412re.rs b/embassy-stm32/src/pac/stm32f412re.rs
index 418913aad..84b094e58 100644
--- a/embassy-stm32/src/pac/stm32f412re.rs
+++ b/embassy-stm32/src/pac/stm32f412re.rs
@@ -151,20 +151,20 @@ impl_spi_pin!(SPI5, MisoPin, PA12, 6);
151impl_spi_pin!(SPI5, SckPin, PB0, 6); 151impl_spi_pin!(SPI5, SckPin, PB0, 6);
152impl_spi_pin!(SPI5, MosiPin, PB8, 6); 152impl_spi_pin!(SPI5, MosiPin, PB8, 6);
153pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 153pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
154pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 154pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
155pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 155pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
156pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 156pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
157pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 157pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
158pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 158pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
159pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 159pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
160pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 160pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
161pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 161pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
162pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 162pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
163pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 163pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
164pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 164pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
165pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 165pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
166pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 166pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
167pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 168pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
169impl_usart!(USART1); 169impl_usart!(USART1);
170impl_usart_pin!(USART1, RxPin, PA10, 7); 170impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f412rg.rs b/embassy-stm32/src/pac/stm32f412rg.rs
index 418913aad..84b094e58 100644
--- a/embassy-stm32/src/pac/stm32f412rg.rs
+++ b/embassy-stm32/src/pac/stm32f412rg.rs
@@ -151,20 +151,20 @@ impl_spi_pin!(SPI5, MisoPin, PA12, 6);
151impl_spi_pin!(SPI5, SckPin, PB0, 6); 151impl_spi_pin!(SPI5, SckPin, PB0, 6);
152impl_spi_pin!(SPI5, MosiPin, PB8, 6); 152impl_spi_pin!(SPI5, MosiPin, PB8, 6);
153pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 153pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
154pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 154pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
155pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 155pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
156pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 156pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
157pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 157pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
158pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 158pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
159pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 159pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
160pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 160pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
161pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 161pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
162pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 162pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
163pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 163pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
164pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 164pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
165pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 165pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
166pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 166pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
167pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 168pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
169impl_usart!(USART1); 169impl_usart!(USART1);
170impl_usart_pin!(USART1, RxPin, PA10, 7); 170impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f412ve.rs b/embassy-stm32/src/pac/stm32f412ve.rs
index 87c54e36f..82162ffff 100644
--- a/embassy-stm32/src/pac/stm32f412ve.rs
+++ b/embassy-stm32/src/pac/stm32f412ve.rs
@@ -214,20 +214,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
214impl_spi_pin!(SPI5, MisoPin, PE5, 6); 214impl_spi_pin!(SPI5, MisoPin, PE5, 6);
215impl_spi_pin!(SPI5, MosiPin, PE6, 6); 215impl_spi_pin!(SPI5, MosiPin, PE6, 6);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f412vg.rs b/embassy-stm32/src/pac/stm32f412vg.rs
index 87c54e36f..82162ffff 100644
--- a/embassy-stm32/src/pac/stm32f412vg.rs
+++ b/embassy-stm32/src/pac/stm32f412vg.rs
@@ -214,20 +214,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
214impl_spi_pin!(SPI5, MisoPin, PE5, 6); 214impl_spi_pin!(SPI5, MisoPin, PE5, 6);
215impl_spi_pin!(SPI5, MosiPin, PE6, 6); 215impl_spi_pin!(SPI5, MosiPin, PE6, 6);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f412ze.rs b/embassy-stm32/src/pac/stm32f412ze.rs
index 87c54e36f..82162ffff 100644
--- a/embassy-stm32/src/pac/stm32f412ze.rs
+++ b/embassy-stm32/src/pac/stm32f412ze.rs
@@ -214,20 +214,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
214impl_spi_pin!(SPI5, MisoPin, PE5, 6); 214impl_spi_pin!(SPI5, MisoPin, PE5, 6);
215impl_spi_pin!(SPI5, MosiPin, PE6, 6); 215impl_spi_pin!(SPI5, MosiPin, PE6, 6);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f412zg.rs b/embassy-stm32/src/pac/stm32f412zg.rs
index 87c54e36f..82162ffff 100644
--- a/embassy-stm32/src/pac/stm32f412zg.rs
+++ b/embassy-stm32/src/pac/stm32f412zg.rs
@@ -214,20 +214,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
214impl_spi_pin!(SPI5, MisoPin, PE5, 6); 214impl_spi_pin!(SPI5, MisoPin, PE5, 6);
215impl_spi_pin!(SPI5, MosiPin, PE6, 6); 215impl_spi_pin!(SPI5, MosiPin, PE6, 6);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f413cg.rs b/embassy-stm32/src/pac/stm32f413cg.rs
index e75301ba9..8bee7e46a 100644
--- a/embassy-stm32/src/pac/stm32f413cg.rs
+++ b/embassy-stm32/src/pac/stm32f413cg.rs
@@ -217,20 +217,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
217impl_spi_pin!(SPI5, MisoPin, PE5, 6); 217impl_spi_pin!(SPI5, MisoPin, PE5, 6);
218impl_spi_pin!(SPI5, MosiPin, PE6, 6); 218impl_spi_pin!(SPI5, MosiPin, PE6, 6);
219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
220pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 220pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
221pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 221pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
222pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 222pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
223pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 223pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
224pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 224pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
225pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 225pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
226pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 226pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
227pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 227pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
228pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 228pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
229pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 229pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
230pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 230pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
231pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 231pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
232pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 232pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
233pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 233pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
235impl_usart!(USART1); 235impl_usart!(USART1);
236impl_usart_pin!(USART1, RxPin, PA10, 7); 236impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f413ch.rs b/embassy-stm32/src/pac/stm32f413ch.rs
index e75301ba9..8bee7e46a 100644
--- a/embassy-stm32/src/pac/stm32f413ch.rs
+++ b/embassy-stm32/src/pac/stm32f413ch.rs
@@ -217,20 +217,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
217impl_spi_pin!(SPI5, MisoPin, PE5, 6); 217impl_spi_pin!(SPI5, MisoPin, PE5, 6);
218impl_spi_pin!(SPI5, MosiPin, PE6, 6); 218impl_spi_pin!(SPI5, MosiPin, PE6, 6);
219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
220pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 220pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
221pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 221pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
222pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 222pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
223pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 223pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
224pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 224pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
225pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 225pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
226pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 226pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
227pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 227pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
228pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 228pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
229pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 229pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
230pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 230pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
231pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 231pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
232pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 232pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
233pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 233pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
235impl_usart!(USART1); 235impl_usart!(USART1);
236impl_usart_pin!(USART1, RxPin, PA10, 7); 236impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f413mg.rs b/embassy-stm32/src/pac/stm32f413mg.rs
index e43cac1d9..bf9db32b9 100644
--- a/embassy-stm32/src/pac/stm32f413mg.rs
+++ b/embassy-stm32/src/pac/stm32f413mg.rs
@@ -217,20 +217,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
217impl_spi_pin!(SPI5, MisoPin, PE5, 6); 217impl_spi_pin!(SPI5, MisoPin, PE5, 6);
218impl_spi_pin!(SPI5, MosiPin, PE6, 6); 218impl_spi_pin!(SPI5, MosiPin, PE6, 6);
219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
220pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 220pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
221pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 221pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
222pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 222pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
223pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 223pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
224pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 224pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
225pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 225pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
226pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 226pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
227pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 227pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
228pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 228pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
229pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 229pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
230pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 230pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
231pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 231pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
232pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 232pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
233pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 233pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
235impl_usart!(USART1); 235impl_usart!(USART1);
236impl_usart_pin!(USART1, RxPin, PA10, 7); 236impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f413mh.rs b/embassy-stm32/src/pac/stm32f413mh.rs
index e43cac1d9..bf9db32b9 100644
--- a/embassy-stm32/src/pac/stm32f413mh.rs
+++ b/embassy-stm32/src/pac/stm32f413mh.rs
@@ -217,20 +217,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
217impl_spi_pin!(SPI5, MisoPin, PE5, 6); 217impl_spi_pin!(SPI5, MisoPin, PE5, 6);
218impl_spi_pin!(SPI5, MosiPin, PE6, 6); 218impl_spi_pin!(SPI5, MosiPin, PE6, 6);
219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
220pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 220pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
221pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 221pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
222pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 222pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
223pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 223pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
224pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 224pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
225pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 225pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
226pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 226pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
227pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 227pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
228pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 228pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
229pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 229pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
230pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 230pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
231pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 231pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
232pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 232pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
233pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 233pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
235impl_usart!(USART1); 235impl_usart!(USART1);
236impl_usart_pin!(USART1, RxPin, PA10, 7); 236impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f413rg.rs b/embassy-stm32/src/pac/stm32f413rg.rs
index e43cac1d9..bf9db32b9 100644
--- a/embassy-stm32/src/pac/stm32f413rg.rs
+++ b/embassy-stm32/src/pac/stm32f413rg.rs
@@ -217,20 +217,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
217impl_spi_pin!(SPI5, MisoPin, PE5, 6); 217impl_spi_pin!(SPI5, MisoPin, PE5, 6);
218impl_spi_pin!(SPI5, MosiPin, PE6, 6); 218impl_spi_pin!(SPI5, MosiPin, PE6, 6);
219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
220pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 220pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
221pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 221pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
222pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 222pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
223pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 223pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
224pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 224pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
225pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 225pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
226pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 226pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
227pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 227pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
228pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 228pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
229pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 229pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
230pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 230pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
231pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 231pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
232pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 232pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
233pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 233pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
235impl_usart!(USART1); 235impl_usart!(USART1);
236impl_usart_pin!(USART1, RxPin, PA10, 7); 236impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f413rh.rs b/embassy-stm32/src/pac/stm32f413rh.rs
index e43cac1d9..bf9db32b9 100644
--- a/embassy-stm32/src/pac/stm32f413rh.rs
+++ b/embassy-stm32/src/pac/stm32f413rh.rs
@@ -217,20 +217,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
217impl_spi_pin!(SPI5, MisoPin, PE5, 6); 217impl_spi_pin!(SPI5, MisoPin, PE5, 6);
218impl_spi_pin!(SPI5, MosiPin, PE6, 6); 218impl_spi_pin!(SPI5, MosiPin, PE6, 6);
219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
220pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 220pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
221pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 221pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
222pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 222pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
223pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 223pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
224pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 224pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
225pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 225pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
226pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 226pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
227pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 227pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
228pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 228pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
229pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 229pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
230pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 230pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
231pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 231pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
232pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 232pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
233pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 233pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
235impl_usart!(USART1); 235impl_usart!(USART1);
236impl_usart_pin!(USART1, RxPin, PA10, 7); 236impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f413vg.rs b/embassy-stm32/src/pac/stm32f413vg.rs
index e43cac1d9..bf9db32b9 100644
--- a/embassy-stm32/src/pac/stm32f413vg.rs
+++ b/embassy-stm32/src/pac/stm32f413vg.rs
@@ -217,20 +217,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
217impl_spi_pin!(SPI5, MisoPin, PE5, 6); 217impl_spi_pin!(SPI5, MisoPin, PE5, 6);
218impl_spi_pin!(SPI5, MosiPin, PE6, 6); 218impl_spi_pin!(SPI5, MosiPin, PE6, 6);
219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
220pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 220pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
221pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 221pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
222pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 222pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
223pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 223pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
224pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 224pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
225pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 225pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
226pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 226pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
227pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 227pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
228pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 228pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
229pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 229pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
230pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 230pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
231pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 231pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
232pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 232pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
233pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 233pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
235impl_usart!(USART1); 235impl_usart!(USART1);
236impl_usart_pin!(USART1, RxPin, PA10, 7); 236impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f413vh.rs b/embassy-stm32/src/pac/stm32f413vh.rs
index e43cac1d9..bf9db32b9 100644
--- a/embassy-stm32/src/pac/stm32f413vh.rs
+++ b/embassy-stm32/src/pac/stm32f413vh.rs
@@ -217,20 +217,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
217impl_spi_pin!(SPI5, MisoPin, PE5, 6); 217impl_spi_pin!(SPI5, MisoPin, PE5, 6);
218impl_spi_pin!(SPI5, MosiPin, PE6, 6); 218impl_spi_pin!(SPI5, MosiPin, PE6, 6);
219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
220pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 220pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
221pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 221pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
222pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 222pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
223pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 223pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
224pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 224pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
225pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 225pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
226pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 226pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
227pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 227pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
228pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 228pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
229pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 229pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
230pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 230pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
231pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 231pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
232pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 232pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
233pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 233pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
235impl_usart!(USART1); 235impl_usart!(USART1);
236impl_usart_pin!(USART1, RxPin, PA10, 7); 236impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f413zg.rs b/embassy-stm32/src/pac/stm32f413zg.rs
index e43cac1d9..bf9db32b9 100644
--- a/embassy-stm32/src/pac/stm32f413zg.rs
+++ b/embassy-stm32/src/pac/stm32f413zg.rs
@@ -217,20 +217,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
217impl_spi_pin!(SPI5, MisoPin, PE5, 6); 217impl_spi_pin!(SPI5, MisoPin, PE5, 6);
218impl_spi_pin!(SPI5, MosiPin, PE6, 6); 218impl_spi_pin!(SPI5, MosiPin, PE6, 6);
219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
220pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 220pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
221pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 221pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
222pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 222pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
223pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 223pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
224pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 224pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
225pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 225pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
226pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 226pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
227pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 227pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
228pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 228pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
229pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 229pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
230pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 230pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
231pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 231pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
232pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 232pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
233pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 233pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
235impl_usart!(USART1); 235impl_usart!(USART1);
236impl_usart_pin!(USART1, RxPin, PA10, 7); 236impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f413zh.rs b/embassy-stm32/src/pac/stm32f413zh.rs
index e43cac1d9..bf9db32b9 100644
--- a/embassy-stm32/src/pac/stm32f413zh.rs
+++ b/embassy-stm32/src/pac/stm32f413zh.rs
@@ -217,20 +217,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
217impl_spi_pin!(SPI5, MisoPin, PE5, 6); 217impl_spi_pin!(SPI5, MisoPin, PE5, 6);
218impl_spi_pin!(SPI5, MosiPin, PE6, 6); 218impl_spi_pin!(SPI5, MosiPin, PE6, 6);
219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
220pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 220pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
221pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 221pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
222pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 222pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
223pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 223pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
224pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 224pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
225pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 225pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
226pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 226pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
227pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 227pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
228pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 228pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
229pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 229pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
230pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 230pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
231pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 231pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
232pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 232pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
233pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 233pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
235impl_usart!(USART1); 235impl_usart!(USART1);
236impl_usart_pin!(USART1, RxPin, PA10, 7); 236impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f415og.rs b/embassy-stm32/src/pac/stm32f415og.rs
index 44361b425..c71590f00 100644
--- a/embassy-stm32/src/pac/stm32f415og.rs
+++ b/embassy-stm32/src/pac/stm32f415og.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f415rg.rs b/embassy-stm32/src/pac/stm32f415rg.rs
index 44361b425..c71590f00 100644
--- a/embassy-stm32/src/pac/stm32f415rg.rs
+++ b/embassy-stm32/src/pac/stm32f415rg.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f415vg.rs b/embassy-stm32/src/pac/stm32f415vg.rs
index 44361b425..c71590f00 100644
--- a/embassy-stm32/src/pac/stm32f415vg.rs
+++ b/embassy-stm32/src/pac/stm32f415vg.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f415zg.rs b/embassy-stm32/src/pac/stm32f415zg.rs
index 44361b425..c71590f00 100644
--- a/embassy-stm32/src/pac/stm32f415zg.rs
+++ b/embassy-stm32/src/pac/stm32f415zg.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f417ie.rs b/embassy-stm32/src/pac/stm32f417ie.rs
index 0ad3be7a9..4bef5073a 100644
--- a/embassy-stm32/src/pac/stm32f417ie.rs
+++ b/embassy-stm32/src/pac/stm32f417ie.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f417ig.rs b/embassy-stm32/src/pac/stm32f417ig.rs
index 0ad3be7a9..4bef5073a 100644
--- a/embassy-stm32/src/pac/stm32f417ig.rs
+++ b/embassy-stm32/src/pac/stm32f417ig.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f417ve.rs b/embassy-stm32/src/pac/stm32f417ve.rs
index 0ad3be7a9..4bef5073a 100644
--- a/embassy-stm32/src/pac/stm32f417ve.rs
+++ b/embassy-stm32/src/pac/stm32f417ve.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f417vg.rs b/embassy-stm32/src/pac/stm32f417vg.rs
index 0ad3be7a9..4bef5073a 100644
--- a/embassy-stm32/src/pac/stm32f417vg.rs
+++ b/embassy-stm32/src/pac/stm32f417vg.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f417ze.rs b/embassy-stm32/src/pac/stm32f417ze.rs
index 0ad3be7a9..4bef5073a 100644
--- a/embassy-stm32/src/pac/stm32f417ze.rs
+++ b/embassy-stm32/src/pac/stm32f417ze.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f417zg.rs b/embassy-stm32/src/pac/stm32f417zg.rs
index 0ad3be7a9..4bef5073a 100644
--- a/embassy-stm32/src/pac/stm32f417zg.rs
+++ b/embassy-stm32/src/pac/stm32f417zg.rs
@@ -207,20 +207,20 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
207impl_spi_pin!(SPI3, MisoPin, PC11, 6); 207impl_spi_pin!(SPI3, MisoPin, PC11, 6);
208impl_spi_pin!(SPI3, MosiPin, PC12, 6); 208impl_spi_pin!(SPI3, MosiPin, PC12, 6);
209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 209pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
210pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 210pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
211pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 211pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
212pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 212pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
213pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 213pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
214pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 214pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
215pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 215pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
216pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 216pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
217pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 217pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
218pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 218pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
219pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 219pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
220pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 220pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
221pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 221pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
222pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 222pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
223pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 223pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 224pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
225impl_usart!(USART1); 225impl_usart!(USART1);
226impl_usart_pin!(USART1, RxPin, PA10, 7); 226impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f423ch.rs b/embassy-stm32/src/pac/stm32f423ch.rs
index 0069f8409..7f2ac67d9 100644
--- a/embassy-stm32/src/pac/stm32f423ch.rs
+++ b/embassy-stm32/src/pac/stm32f423ch.rs
@@ -217,20 +217,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
217impl_spi_pin!(SPI5, MisoPin, PE5, 6); 217impl_spi_pin!(SPI5, MisoPin, PE5, 6);
218impl_spi_pin!(SPI5, MosiPin, PE6, 6); 218impl_spi_pin!(SPI5, MosiPin, PE6, 6);
219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
220pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 220pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
221pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 221pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
222pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 222pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
223pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 223pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
224pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 224pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
225pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 225pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
226pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 226pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
227pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 227pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
228pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 228pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
229pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 229pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
230pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 230pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
231pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 231pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
232pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 232pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
233pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 233pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
235impl_usart!(USART1); 235impl_usart!(USART1);
236impl_usart_pin!(USART1, RxPin, PA10, 7); 236impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f423mh.rs b/embassy-stm32/src/pac/stm32f423mh.rs
index d1a4de47a..d895ec6e7 100644
--- a/embassy-stm32/src/pac/stm32f423mh.rs
+++ b/embassy-stm32/src/pac/stm32f423mh.rs
@@ -217,20 +217,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
217impl_spi_pin!(SPI5, MisoPin, PE5, 6); 217impl_spi_pin!(SPI5, MisoPin, PE5, 6);
218impl_spi_pin!(SPI5, MosiPin, PE6, 6); 218impl_spi_pin!(SPI5, MosiPin, PE6, 6);
219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
220pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 220pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
221pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 221pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
222pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 222pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
223pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 223pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
224pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 224pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
225pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 225pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
226pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 226pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
227pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 227pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
228pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 228pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
229pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 229pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
230pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 230pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
231pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 231pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
232pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 232pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
233pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 233pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
235impl_usart!(USART1); 235impl_usart!(USART1);
236impl_usart_pin!(USART1, RxPin, PA10, 7); 236impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f423rh.rs b/embassy-stm32/src/pac/stm32f423rh.rs
index d1a4de47a..d895ec6e7 100644
--- a/embassy-stm32/src/pac/stm32f423rh.rs
+++ b/embassy-stm32/src/pac/stm32f423rh.rs
@@ -217,20 +217,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
217impl_spi_pin!(SPI5, MisoPin, PE5, 6); 217impl_spi_pin!(SPI5, MisoPin, PE5, 6);
218impl_spi_pin!(SPI5, MosiPin, PE6, 6); 218impl_spi_pin!(SPI5, MosiPin, PE6, 6);
219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
220pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 220pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
221pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 221pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
222pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 222pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
223pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 223pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
224pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 224pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
225pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 225pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
226pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 226pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
227pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 227pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
228pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 228pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
229pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 229pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
230pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 230pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
231pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 231pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
232pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 232pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
233pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 233pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
235impl_usart!(USART1); 235impl_usart!(USART1);
236impl_usart_pin!(USART1, RxPin, PA10, 7); 236impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f423vh.rs b/embassy-stm32/src/pac/stm32f423vh.rs
index d1a4de47a..d895ec6e7 100644
--- a/embassy-stm32/src/pac/stm32f423vh.rs
+++ b/embassy-stm32/src/pac/stm32f423vh.rs
@@ -217,20 +217,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
217impl_spi_pin!(SPI5, MisoPin, PE5, 6); 217impl_spi_pin!(SPI5, MisoPin, PE5, 6);
218impl_spi_pin!(SPI5, MosiPin, PE6, 6); 218impl_spi_pin!(SPI5, MosiPin, PE6, 6);
219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
220pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 220pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
221pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 221pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
222pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 222pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
223pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 223pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
224pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 224pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
225pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 225pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
226pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 226pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
227pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 227pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
228pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 228pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
229pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 229pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
230pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 230pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
231pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 231pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
232pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 232pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
233pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 233pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
235impl_usart!(USART1); 235impl_usart!(USART1);
236impl_usart_pin!(USART1, RxPin, PA10, 7); 236impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f423zh.rs b/embassy-stm32/src/pac/stm32f423zh.rs
index d1a4de47a..d895ec6e7 100644
--- a/embassy-stm32/src/pac/stm32f423zh.rs
+++ b/embassy-stm32/src/pac/stm32f423zh.rs
@@ -217,20 +217,20 @@ impl_spi_pin!(SPI5, SckPin, PE2, 6);
217impl_spi_pin!(SPI5, MisoPin, PE5, 6); 217impl_spi_pin!(SPI5, MisoPin, PE5, 6);
218impl_spi_pin!(SPI5, MosiPin, PE6, 6); 218impl_spi_pin!(SPI5, MosiPin, PE6, 6);
219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 219pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
220pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 220pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
221pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 221pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
222pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 222pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
223pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 223pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
224pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 224pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
225pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 225pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
226pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 226pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
227pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 227pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
228pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 228pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
229pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 229pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
230pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 230pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
231pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 231pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
232pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 232pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
233pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 233pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 234pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
235impl_usart!(USART1); 235impl_usart!(USART1);
236impl_usart_pin!(USART1, RxPin, PA10, 7); 236impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f427ag.rs b/embassy-stm32/src/pac/stm32f427ag.rs
index fb2ddfad7..d27405007 100644
--- a/embassy-stm32/src/pac/stm32f427ag.rs
+++ b/embassy-stm32/src/pac/stm32f427ag.rs
@@ -259,20 +259,20 @@ impl_spi_pin!(SPI5, MosiPin, PF9, 5);
259impl_spi_pin!(SPI5, SckPin, PH6, 5); 259impl_spi_pin!(SPI5, SckPin, PH6, 5);
260impl_spi_pin!(SPI5, MisoPin, PH7, 5); 260impl_spi_pin!(SPI5, MisoPin, PH7, 5);
261pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 261pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
262pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 262pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
263pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 263pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
264pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 264pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
265pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 265pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
266pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 266pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
267pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 267pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
268pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 268pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
269pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 269pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
270pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 270pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
271pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 271pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
272pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 272pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
273pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 273pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
274pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 274pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
275pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 275pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
276pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 276pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
277impl_usart!(USART1); 277impl_usart!(USART1);
278impl_usart_pin!(USART1, RxPin, PA10, 7); 278impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f427ai.rs b/embassy-stm32/src/pac/stm32f427ai.rs
index fb2ddfad7..d27405007 100644
--- a/embassy-stm32/src/pac/stm32f427ai.rs
+++ b/embassy-stm32/src/pac/stm32f427ai.rs
@@ -259,20 +259,20 @@ impl_spi_pin!(SPI5, MosiPin, PF9, 5);
259impl_spi_pin!(SPI5, SckPin, PH6, 5); 259impl_spi_pin!(SPI5, SckPin, PH6, 5);
260impl_spi_pin!(SPI5, MisoPin, PH7, 5); 260impl_spi_pin!(SPI5, MisoPin, PH7, 5);
261pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 261pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
262pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 262pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
263pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 263pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
264pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 264pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
265pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 265pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
266pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 266pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
267pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 267pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
268pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 268pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
269pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 269pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
270pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 270pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
271pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 271pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
272pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 272pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
273pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 273pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
274pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 274pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
275pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 275pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
276pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 276pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
277impl_usart!(USART1); 277impl_usart!(USART1);
278impl_usart_pin!(USART1, RxPin, PA10, 7); 278impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f427ig.rs b/embassy-stm32/src/pac/stm32f427ig.rs
index a25dce0eb..1e7562756 100644
--- a/embassy-stm32/src/pac/stm32f427ig.rs
+++ b/embassy-stm32/src/pac/stm32f427ig.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f427ii.rs b/embassy-stm32/src/pac/stm32f427ii.rs
index a25dce0eb..1e7562756 100644
--- a/embassy-stm32/src/pac/stm32f427ii.rs
+++ b/embassy-stm32/src/pac/stm32f427ii.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f427vg.rs b/embassy-stm32/src/pac/stm32f427vg.rs
index da56f07d7..5f0470693 100644
--- a/embassy-stm32/src/pac/stm32f427vg.rs
+++ b/embassy-stm32/src/pac/stm32f427vg.rs
@@ -251,20 +251,20 @@ impl_spi_pin!(SPI4, SckPin, PE2, 5);
251impl_spi_pin!(SPI4, MisoPin, PE5, 5); 251impl_spi_pin!(SPI4, MisoPin, PE5, 5);
252impl_spi_pin!(SPI4, MosiPin, PE6, 5); 252impl_spi_pin!(SPI4, MosiPin, PE6, 5);
253pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 253pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
254pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 254pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
255pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 255pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
256pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 256pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
257pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 257pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
258pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 258pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
259pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 259pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
260pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 260pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
261pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 261pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
262pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 262pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
263pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 263pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
264pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 264pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
265pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 265pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
266pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 266pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
267pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 267pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
268pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 268pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
269impl_usart!(USART1); 269impl_usart!(USART1);
270impl_usart_pin!(USART1, RxPin, PA10, 7); 270impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f427vi.rs b/embassy-stm32/src/pac/stm32f427vi.rs
index da56f07d7..5f0470693 100644
--- a/embassy-stm32/src/pac/stm32f427vi.rs
+++ b/embassy-stm32/src/pac/stm32f427vi.rs
@@ -251,20 +251,20 @@ impl_spi_pin!(SPI4, SckPin, PE2, 5);
251impl_spi_pin!(SPI4, MisoPin, PE5, 5); 251impl_spi_pin!(SPI4, MisoPin, PE5, 5);
252impl_spi_pin!(SPI4, MosiPin, PE6, 5); 252impl_spi_pin!(SPI4, MosiPin, PE6, 5);
253pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 253pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
254pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 254pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
255pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 255pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
256pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 256pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
257pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 257pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
258pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 258pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
259pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 259pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
260pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 260pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
261pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 261pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
262pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 262pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
263pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 263pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
264pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 264pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
265pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 265pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
266pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 266pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
267pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 267pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
268pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 268pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
269impl_usart!(USART1); 269impl_usart!(USART1);
270impl_usart_pin!(USART1, RxPin, PA10, 7); 270impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f427zg.rs b/embassy-stm32/src/pac/stm32f427zg.rs
index a25dce0eb..1e7562756 100644
--- a/embassy-stm32/src/pac/stm32f427zg.rs
+++ b/embassy-stm32/src/pac/stm32f427zg.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f427zi.rs b/embassy-stm32/src/pac/stm32f427zi.rs
index a25dce0eb..1e7562756 100644
--- a/embassy-stm32/src/pac/stm32f427zi.rs
+++ b/embassy-stm32/src/pac/stm32f427zi.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f429ag.rs b/embassy-stm32/src/pac/stm32f429ag.rs
index 2dc4fc731..253eb847c 100644
--- a/embassy-stm32/src/pac/stm32f429ag.rs
+++ b/embassy-stm32/src/pac/stm32f429ag.rs
@@ -259,20 +259,20 @@ impl_spi_pin!(SPI5, MosiPin, PF9, 5);
259impl_spi_pin!(SPI5, SckPin, PH6, 5); 259impl_spi_pin!(SPI5, SckPin, PH6, 5);
260impl_spi_pin!(SPI5, MisoPin, PH7, 5); 260impl_spi_pin!(SPI5, MisoPin, PH7, 5);
261pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 261pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
262pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 262pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
263pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 263pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
264pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 264pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
265pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 265pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
266pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 266pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
267pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 267pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
268pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 268pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
269pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 269pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
270pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 270pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
271pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 271pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
272pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 272pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
273pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 273pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
274pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 274pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
275pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 275pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
276pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 276pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
277impl_usart!(USART1); 277impl_usart!(USART1);
278impl_usart_pin!(USART1, RxPin, PA10, 7); 278impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f429ai.rs b/embassy-stm32/src/pac/stm32f429ai.rs
index 2dc4fc731..253eb847c 100644
--- a/embassy-stm32/src/pac/stm32f429ai.rs
+++ b/embassy-stm32/src/pac/stm32f429ai.rs
@@ -259,20 +259,20 @@ impl_spi_pin!(SPI5, MosiPin, PF9, 5);
259impl_spi_pin!(SPI5, SckPin, PH6, 5); 259impl_spi_pin!(SPI5, SckPin, PH6, 5);
260impl_spi_pin!(SPI5, MisoPin, PH7, 5); 260impl_spi_pin!(SPI5, MisoPin, PH7, 5);
261pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 261pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
262pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 262pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
263pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 263pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
264pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 264pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
265pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 265pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
266pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 266pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
267pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 267pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
268pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 268pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
269pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 269pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
270pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 270pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
271pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 271pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
272pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 272pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
273pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 273pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
274pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 274pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
275pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 275pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
276pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 276pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
277impl_usart!(USART1); 277impl_usart!(USART1);
278impl_usart_pin!(USART1, RxPin, PA10, 7); 278impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f429be.rs b/embassy-stm32/src/pac/stm32f429be.rs
index c89bbc0ba..231f7e0df 100644
--- a/embassy-stm32/src/pac/stm32f429be.rs
+++ b/embassy-stm32/src/pac/stm32f429be.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f429bg.rs b/embassy-stm32/src/pac/stm32f429bg.rs
index c89bbc0ba..231f7e0df 100644
--- a/embassy-stm32/src/pac/stm32f429bg.rs
+++ b/embassy-stm32/src/pac/stm32f429bg.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f429bi.rs b/embassy-stm32/src/pac/stm32f429bi.rs
index c89bbc0ba..231f7e0df 100644
--- a/embassy-stm32/src/pac/stm32f429bi.rs
+++ b/embassy-stm32/src/pac/stm32f429bi.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f429ie.rs b/embassy-stm32/src/pac/stm32f429ie.rs
index c89bbc0ba..231f7e0df 100644
--- a/embassy-stm32/src/pac/stm32f429ie.rs
+++ b/embassy-stm32/src/pac/stm32f429ie.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f429ig.rs b/embassy-stm32/src/pac/stm32f429ig.rs
index c89bbc0ba..231f7e0df 100644
--- a/embassy-stm32/src/pac/stm32f429ig.rs
+++ b/embassy-stm32/src/pac/stm32f429ig.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f429ii.rs b/embassy-stm32/src/pac/stm32f429ii.rs
index c89bbc0ba..231f7e0df 100644
--- a/embassy-stm32/src/pac/stm32f429ii.rs
+++ b/embassy-stm32/src/pac/stm32f429ii.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f429ne.rs b/embassy-stm32/src/pac/stm32f429ne.rs
index c89bbc0ba..231f7e0df 100644
--- a/embassy-stm32/src/pac/stm32f429ne.rs
+++ b/embassy-stm32/src/pac/stm32f429ne.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f429ng.rs b/embassy-stm32/src/pac/stm32f429ng.rs
index c89bbc0ba..231f7e0df 100644
--- a/embassy-stm32/src/pac/stm32f429ng.rs
+++ b/embassy-stm32/src/pac/stm32f429ng.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f429ni.rs b/embassy-stm32/src/pac/stm32f429ni.rs
index c89bbc0ba..231f7e0df 100644
--- a/embassy-stm32/src/pac/stm32f429ni.rs
+++ b/embassy-stm32/src/pac/stm32f429ni.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f429ve.rs b/embassy-stm32/src/pac/stm32f429ve.rs
index 32f08b8ae..a02c86ffd 100644
--- a/embassy-stm32/src/pac/stm32f429ve.rs
+++ b/embassy-stm32/src/pac/stm32f429ve.rs
@@ -251,20 +251,20 @@ impl_spi_pin!(SPI4, SckPin, PE2, 5);
251impl_spi_pin!(SPI4, MisoPin, PE5, 5); 251impl_spi_pin!(SPI4, MisoPin, PE5, 5);
252impl_spi_pin!(SPI4, MosiPin, PE6, 5); 252impl_spi_pin!(SPI4, MosiPin, PE6, 5);
253pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 253pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
254pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 254pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
255pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 255pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
256pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 256pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
257pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 257pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
258pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 258pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
259pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 259pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
260pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 260pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
261pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 261pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
262pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 262pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
263pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 263pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
264pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 264pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
265pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 265pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
266pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 266pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
267pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 267pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
268pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 268pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
269impl_usart!(USART1); 269impl_usart!(USART1);
270impl_usart_pin!(USART1, RxPin, PA10, 7); 270impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f429vg.rs b/embassy-stm32/src/pac/stm32f429vg.rs
index 32f08b8ae..a02c86ffd 100644
--- a/embassy-stm32/src/pac/stm32f429vg.rs
+++ b/embassy-stm32/src/pac/stm32f429vg.rs
@@ -251,20 +251,20 @@ impl_spi_pin!(SPI4, SckPin, PE2, 5);
251impl_spi_pin!(SPI4, MisoPin, PE5, 5); 251impl_spi_pin!(SPI4, MisoPin, PE5, 5);
252impl_spi_pin!(SPI4, MosiPin, PE6, 5); 252impl_spi_pin!(SPI4, MosiPin, PE6, 5);
253pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 253pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
254pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 254pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
255pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 255pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
256pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 256pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
257pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 257pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
258pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 258pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
259pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 259pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
260pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 260pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
261pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 261pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
262pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 262pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
263pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 263pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
264pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 264pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
265pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 265pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
266pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 266pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
267pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 267pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
268pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 268pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
269impl_usart!(USART1); 269impl_usart!(USART1);
270impl_usart_pin!(USART1, RxPin, PA10, 7); 270impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f429vi.rs b/embassy-stm32/src/pac/stm32f429vi.rs
index 32f08b8ae..a02c86ffd 100644
--- a/embassy-stm32/src/pac/stm32f429vi.rs
+++ b/embassy-stm32/src/pac/stm32f429vi.rs
@@ -251,20 +251,20 @@ impl_spi_pin!(SPI4, SckPin, PE2, 5);
251impl_spi_pin!(SPI4, MisoPin, PE5, 5); 251impl_spi_pin!(SPI4, MisoPin, PE5, 5);
252impl_spi_pin!(SPI4, MosiPin, PE6, 5); 252impl_spi_pin!(SPI4, MosiPin, PE6, 5);
253pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 253pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
254pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 254pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
255pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 255pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
256pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 256pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
257pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 257pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
258pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 258pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
259pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 259pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
260pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 260pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
261pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 261pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
262pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 262pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
263pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 263pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
264pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 264pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
265pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 265pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
266pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 266pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
267pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 267pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
268pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 268pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
269impl_usart!(USART1); 269impl_usart!(USART1);
270impl_usart_pin!(USART1, RxPin, PA10, 7); 270impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f429ze.rs b/embassy-stm32/src/pac/stm32f429ze.rs
index c89bbc0ba..231f7e0df 100644
--- a/embassy-stm32/src/pac/stm32f429ze.rs
+++ b/embassy-stm32/src/pac/stm32f429ze.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f429zg.rs b/embassy-stm32/src/pac/stm32f429zg.rs
index c89bbc0ba..231f7e0df 100644
--- a/embassy-stm32/src/pac/stm32f429zg.rs
+++ b/embassy-stm32/src/pac/stm32f429zg.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f429zi.rs b/embassy-stm32/src/pac/stm32f429zi.rs
index c89bbc0ba..231f7e0df 100644
--- a/embassy-stm32/src/pac/stm32f429zi.rs
+++ b/embassy-stm32/src/pac/stm32f429zi.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f437ai.rs b/embassy-stm32/src/pac/stm32f437ai.rs
index 32a212e43..07e90668e 100644
--- a/embassy-stm32/src/pac/stm32f437ai.rs
+++ b/embassy-stm32/src/pac/stm32f437ai.rs
@@ -259,20 +259,20 @@ impl_spi_pin!(SPI5, MosiPin, PF9, 5);
259impl_spi_pin!(SPI5, SckPin, PH6, 5); 259impl_spi_pin!(SPI5, SckPin, PH6, 5);
260impl_spi_pin!(SPI5, MisoPin, PH7, 5); 260impl_spi_pin!(SPI5, MisoPin, PH7, 5);
261pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 261pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
262pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 262pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
263pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 263pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
264pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 264pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
265pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 265pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
266pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 266pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
267pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 267pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
268pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 268pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
269pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 269pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
270pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 270pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
271pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 271pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
272pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 272pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
273pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 273pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
274pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 274pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
275pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 275pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
276pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 276pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
277impl_usart!(USART1); 277impl_usart!(USART1);
278impl_usart_pin!(USART1, RxPin, PA10, 7); 278impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f437ig.rs b/embassy-stm32/src/pac/stm32f437ig.rs
index 4f0c76595..8a9a1e31d 100644
--- a/embassy-stm32/src/pac/stm32f437ig.rs
+++ b/embassy-stm32/src/pac/stm32f437ig.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f437ii.rs b/embassy-stm32/src/pac/stm32f437ii.rs
index 4f0c76595..8a9a1e31d 100644
--- a/embassy-stm32/src/pac/stm32f437ii.rs
+++ b/embassy-stm32/src/pac/stm32f437ii.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f437vg.rs b/embassy-stm32/src/pac/stm32f437vg.rs
index 01b39c857..0341208c3 100644
--- a/embassy-stm32/src/pac/stm32f437vg.rs
+++ b/embassy-stm32/src/pac/stm32f437vg.rs
@@ -251,20 +251,20 @@ impl_spi_pin!(SPI4, SckPin, PE2, 5);
251impl_spi_pin!(SPI4, MisoPin, PE5, 5); 251impl_spi_pin!(SPI4, MisoPin, PE5, 5);
252impl_spi_pin!(SPI4, MosiPin, PE6, 5); 252impl_spi_pin!(SPI4, MosiPin, PE6, 5);
253pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 253pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
254pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 254pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
255pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 255pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
256pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 256pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
257pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 257pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
258pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 258pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
259pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 259pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
260pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 260pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
261pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 261pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
262pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 262pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
263pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 263pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
264pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 264pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
265pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 265pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
266pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 266pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
267pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 267pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
268pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 268pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
269impl_usart!(USART1); 269impl_usart!(USART1);
270impl_usart_pin!(USART1, RxPin, PA10, 7); 270impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f437vi.rs b/embassy-stm32/src/pac/stm32f437vi.rs
index 01b39c857..0341208c3 100644
--- a/embassy-stm32/src/pac/stm32f437vi.rs
+++ b/embassy-stm32/src/pac/stm32f437vi.rs
@@ -251,20 +251,20 @@ impl_spi_pin!(SPI4, SckPin, PE2, 5);
251impl_spi_pin!(SPI4, MisoPin, PE5, 5); 251impl_spi_pin!(SPI4, MisoPin, PE5, 5);
252impl_spi_pin!(SPI4, MosiPin, PE6, 5); 252impl_spi_pin!(SPI4, MosiPin, PE6, 5);
253pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 253pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
254pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 254pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
255pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 255pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
256pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 256pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
257pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 257pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
258pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 258pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
259pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 259pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
260pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 260pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
261pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 261pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
262pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 262pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
263pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 263pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
264pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 264pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
265pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 265pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
266pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 266pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
267pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 267pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
268pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 268pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
269impl_usart!(USART1); 269impl_usart!(USART1);
270impl_usart_pin!(USART1, RxPin, PA10, 7); 270impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f437zg.rs b/embassy-stm32/src/pac/stm32f437zg.rs
index 4f0c76595..8a9a1e31d 100644
--- a/embassy-stm32/src/pac/stm32f437zg.rs
+++ b/embassy-stm32/src/pac/stm32f437zg.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f437zi.rs b/embassy-stm32/src/pac/stm32f437zi.rs
index 4f0c76595..8a9a1e31d 100644
--- a/embassy-stm32/src/pac/stm32f437zi.rs
+++ b/embassy-stm32/src/pac/stm32f437zi.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f439ai.rs b/embassy-stm32/src/pac/stm32f439ai.rs
index 43f483130..608697e15 100644
--- a/embassy-stm32/src/pac/stm32f439ai.rs
+++ b/embassy-stm32/src/pac/stm32f439ai.rs
@@ -259,20 +259,20 @@ impl_spi_pin!(SPI5, MosiPin, PF9, 5);
259impl_spi_pin!(SPI5, SckPin, PH6, 5); 259impl_spi_pin!(SPI5, SckPin, PH6, 5);
260impl_spi_pin!(SPI5, MisoPin, PH7, 5); 260impl_spi_pin!(SPI5, MisoPin, PH7, 5);
261pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 261pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
262pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 262pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
263pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 263pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
264pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 264pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
265pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 265pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
266pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 266pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
267pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 267pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
268pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 268pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
269pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 269pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
270pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 270pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
271pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 271pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
272pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 272pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
273pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 273pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
274pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 274pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
275pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 275pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
276pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 276pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
277impl_usart!(USART1); 277impl_usart!(USART1);
278impl_usart_pin!(USART1, RxPin, PA10, 7); 278impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f439bg.rs b/embassy-stm32/src/pac/stm32f439bg.rs
index 099441298..319d4cbb5 100644
--- a/embassy-stm32/src/pac/stm32f439bg.rs
+++ b/embassy-stm32/src/pac/stm32f439bg.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f439bi.rs b/embassy-stm32/src/pac/stm32f439bi.rs
index 099441298..319d4cbb5 100644
--- a/embassy-stm32/src/pac/stm32f439bi.rs
+++ b/embassy-stm32/src/pac/stm32f439bi.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f439ig.rs b/embassy-stm32/src/pac/stm32f439ig.rs
index 099441298..319d4cbb5 100644
--- a/embassy-stm32/src/pac/stm32f439ig.rs
+++ b/embassy-stm32/src/pac/stm32f439ig.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f439ii.rs b/embassy-stm32/src/pac/stm32f439ii.rs
index 099441298..319d4cbb5 100644
--- a/embassy-stm32/src/pac/stm32f439ii.rs
+++ b/embassy-stm32/src/pac/stm32f439ii.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f439ng.rs b/embassy-stm32/src/pac/stm32f439ng.rs
index 099441298..319d4cbb5 100644
--- a/embassy-stm32/src/pac/stm32f439ng.rs
+++ b/embassy-stm32/src/pac/stm32f439ng.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f439ni.rs b/embassy-stm32/src/pac/stm32f439ni.rs
index 099441298..319d4cbb5 100644
--- a/embassy-stm32/src/pac/stm32f439ni.rs
+++ b/embassy-stm32/src/pac/stm32f439ni.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f439vg.rs b/embassy-stm32/src/pac/stm32f439vg.rs
index 14667064a..753ff257d 100644
--- a/embassy-stm32/src/pac/stm32f439vg.rs
+++ b/embassy-stm32/src/pac/stm32f439vg.rs
@@ -251,20 +251,20 @@ impl_spi_pin!(SPI4, SckPin, PE2, 5);
251impl_spi_pin!(SPI4, MisoPin, PE5, 5); 251impl_spi_pin!(SPI4, MisoPin, PE5, 5);
252impl_spi_pin!(SPI4, MosiPin, PE6, 5); 252impl_spi_pin!(SPI4, MosiPin, PE6, 5);
253pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 253pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
254pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 254pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
255pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 255pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
256pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 256pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
257pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 257pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
258pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 258pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
259pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 259pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
260pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 260pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
261pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 261pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
262pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 262pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
263pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 263pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
264pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 264pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
265pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 265pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
266pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 266pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
267pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 267pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
268pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 268pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
269impl_usart!(USART1); 269impl_usart!(USART1);
270impl_usart_pin!(USART1, RxPin, PA10, 7); 270impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f439vi.rs b/embassy-stm32/src/pac/stm32f439vi.rs
index 14667064a..753ff257d 100644
--- a/embassy-stm32/src/pac/stm32f439vi.rs
+++ b/embassy-stm32/src/pac/stm32f439vi.rs
@@ -251,20 +251,20 @@ impl_spi_pin!(SPI4, SckPin, PE2, 5);
251impl_spi_pin!(SPI4, MisoPin, PE5, 5); 251impl_spi_pin!(SPI4, MisoPin, PE5, 5);
252impl_spi_pin!(SPI4, MosiPin, PE6, 5); 252impl_spi_pin!(SPI4, MosiPin, PE6, 5);
253pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 253pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
254pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 254pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
255pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 255pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
256pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 256pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
257pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 257pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
258pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 258pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
259pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 259pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
260pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 260pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
261pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 261pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
262pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 262pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
263pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 263pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
264pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 264pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
265pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 265pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
266pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 266pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
267pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 267pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
268pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 268pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
269impl_usart!(USART1); 269impl_usart!(USART1);
270impl_usart_pin!(USART1, RxPin, PA10, 7); 270impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f439zg.rs b/embassy-stm32/src/pac/stm32f439zg.rs
index 099441298..319d4cbb5 100644
--- a/embassy-stm32/src/pac/stm32f439zg.rs
+++ b/embassy-stm32/src/pac/stm32f439zg.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f439zi.rs b/embassy-stm32/src/pac/stm32f439zi.rs
index 099441298..319d4cbb5 100644
--- a/embassy-stm32/src/pac/stm32f439zi.rs
+++ b/embassy-stm32/src/pac/stm32f439zi.rs
@@ -264,20 +264,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
264impl_spi_pin!(SPI6, SckPin, PG13, 5); 264impl_spi_pin!(SPI6, SckPin, PG13, 5);
265impl_spi_pin!(SPI6, MosiPin, PG14, 5); 265impl_spi_pin!(SPI6, MosiPin, PG14, 5);
266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 266pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
267pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 267pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
268pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 268pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
269pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 269pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
270pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 270pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
271pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 271pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
272pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 272pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
273pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 273pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
274pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 274pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
275pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 275pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
276pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 276pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
277pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 277pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
278pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 278pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
279pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 279pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
280pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 280pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 281pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
282impl_usart!(USART1); 282impl_usart!(USART1);
283impl_usart_pin!(USART1, RxPin, PA10, 7); 283impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f446mc.rs b/embassy-stm32/src/pac/stm32f446mc.rs
index a3d7e0205..040b3d66d 100644
--- a/embassy-stm32/src/pac/stm32f446mc.rs
+++ b/embassy-stm32/src/pac/stm32f446mc.rs
@@ -206,20 +206,20 @@ impl_spi_pin!(SPI4, SckPin, PG11, 6);
206impl_spi_pin!(SPI4, MisoPin, PG12, 6); 206impl_spi_pin!(SPI4, MisoPin, PG12, 6);
207impl_spi_pin!(SPI4, MosiPin, PG13, 6); 207impl_spi_pin!(SPI4, MosiPin, PG13, 6);
208pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 208pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
209pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 209pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
210pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 210pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
211pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 211pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
212pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 212pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
213pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 213pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
214pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 214pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
215pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 215pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
216pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 216pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
217pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 217pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
218pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 218pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
219pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 219pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
220pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 220pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
221pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 221pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
222pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 222pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
223pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 223pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
224impl_usart!(USART1); 224impl_usart!(USART1);
225impl_usart_pin!(USART1, RxPin, PA10, 7); 225impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f446me.rs b/embassy-stm32/src/pac/stm32f446me.rs
index a3d7e0205..040b3d66d 100644
--- a/embassy-stm32/src/pac/stm32f446me.rs
+++ b/embassy-stm32/src/pac/stm32f446me.rs
@@ -206,20 +206,20 @@ impl_spi_pin!(SPI4, SckPin, PG11, 6);
206impl_spi_pin!(SPI4, MisoPin, PG12, 6); 206impl_spi_pin!(SPI4, MisoPin, PG12, 6);
207impl_spi_pin!(SPI4, MosiPin, PG13, 6); 207impl_spi_pin!(SPI4, MosiPin, PG13, 6);
208pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 208pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
209pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 209pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
210pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 210pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
211pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 211pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
212pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 212pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
213pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 213pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
214pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 214pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
215pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 215pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
216pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 216pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
217pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 217pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
218pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 218pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
219pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 219pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
220pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 220pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
221pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 221pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
222pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 222pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
223pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 223pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
224impl_usart!(USART1); 224impl_usart!(USART1);
225impl_usart_pin!(USART1, RxPin, PA10, 7); 225impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f446rc.rs b/embassy-stm32/src/pac/stm32f446rc.rs
index 60a7e17fa..cae71b061 100644
--- a/embassy-stm32/src/pac/stm32f446rc.rs
+++ b/embassy-stm32/src/pac/stm32f446rc.rs
@@ -194,20 +194,20 @@ impl_spi_pin!(SPI3, MosiPin, PC12, 6);
194impl_spi_pin!(SPI3, MosiPin, PD0, 6); 194impl_spi_pin!(SPI3, MosiPin, PD0, 6);
195impl_spi_pin!(SPI3, MosiPin, PD6, 5); 195impl_spi_pin!(SPI3, MosiPin, PD6, 5);
196pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 196pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
197pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 197pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
198pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 198pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
199pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 199pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
200pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 200pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
201pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 201pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
202pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 202pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
203pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 203pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
204pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 204pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
205pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 205pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
206pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 206pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
207pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 207pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
208pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 208pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
209pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 209pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
210pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 210pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
211pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 211pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
212impl_usart!(USART1); 212impl_usart!(USART1);
213impl_usart_pin!(USART1, RxPin, PA10, 7); 213impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f446re.rs b/embassy-stm32/src/pac/stm32f446re.rs
index 60a7e17fa..cae71b061 100644
--- a/embassy-stm32/src/pac/stm32f446re.rs
+++ b/embassy-stm32/src/pac/stm32f446re.rs
@@ -194,20 +194,20 @@ impl_spi_pin!(SPI3, MosiPin, PC12, 6);
194impl_spi_pin!(SPI3, MosiPin, PD0, 6); 194impl_spi_pin!(SPI3, MosiPin, PD0, 6);
195impl_spi_pin!(SPI3, MosiPin, PD6, 5); 195impl_spi_pin!(SPI3, MosiPin, PD6, 5);
196pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 196pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
197pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 197pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
198pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 198pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
199pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 199pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
200pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 200pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
201pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 201pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
202pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 202pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
203pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 203pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
204pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 204pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
205pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 205pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
206pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 206pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
207pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 207pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
208pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 208pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
209pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 209pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
210pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 210pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
211pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 211pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
212impl_usart!(USART1); 212impl_usart!(USART1);
213impl_usart_pin!(USART1, RxPin, PA10, 7); 213impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f446vc.rs b/embassy-stm32/src/pac/stm32f446vc.rs
index a3d7e0205..040b3d66d 100644
--- a/embassy-stm32/src/pac/stm32f446vc.rs
+++ b/embassy-stm32/src/pac/stm32f446vc.rs
@@ -206,20 +206,20 @@ impl_spi_pin!(SPI4, SckPin, PG11, 6);
206impl_spi_pin!(SPI4, MisoPin, PG12, 6); 206impl_spi_pin!(SPI4, MisoPin, PG12, 6);
207impl_spi_pin!(SPI4, MosiPin, PG13, 6); 207impl_spi_pin!(SPI4, MosiPin, PG13, 6);
208pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 208pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
209pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 209pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
210pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 210pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
211pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 211pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
212pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 212pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
213pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 213pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
214pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 214pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
215pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 215pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
216pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 216pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
217pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 217pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
218pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 218pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
219pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 219pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
220pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 220pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
221pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 221pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
222pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 222pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
223pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 223pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
224impl_usart!(USART1); 224impl_usart!(USART1);
225impl_usart_pin!(USART1, RxPin, PA10, 7); 225impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f446ve.rs b/embassy-stm32/src/pac/stm32f446ve.rs
index a3d7e0205..040b3d66d 100644
--- a/embassy-stm32/src/pac/stm32f446ve.rs
+++ b/embassy-stm32/src/pac/stm32f446ve.rs
@@ -206,20 +206,20 @@ impl_spi_pin!(SPI4, SckPin, PG11, 6);
206impl_spi_pin!(SPI4, MisoPin, PG12, 6); 206impl_spi_pin!(SPI4, MisoPin, PG12, 6);
207impl_spi_pin!(SPI4, MosiPin, PG13, 6); 207impl_spi_pin!(SPI4, MosiPin, PG13, 6);
208pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 208pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
209pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 209pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
210pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 210pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
211pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 211pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
212pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 212pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
213pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 213pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
214pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 214pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
215pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 215pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
216pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 216pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
217pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 217pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
218pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 218pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
219pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 219pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
220pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 220pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
221pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 221pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
222pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 222pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
223pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 223pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
224impl_usart!(USART1); 224impl_usart!(USART1);
225impl_usart_pin!(USART1, RxPin, PA10, 7); 225impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f446zc.rs b/embassy-stm32/src/pac/stm32f446zc.rs
index a3d7e0205..040b3d66d 100644
--- a/embassy-stm32/src/pac/stm32f446zc.rs
+++ b/embassy-stm32/src/pac/stm32f446zc.rs
@@ -206,20 +206,20 @@ impl_spi_pin!(SPI4, SckPin, PG11, 6);
206impl_spi_pin!(SPI4, MisoPin, PG12, 6); 206impl_spi_pin!(SPI4, MisoPin, PG12, 6);
207impl_spi_pin!(SPI4, MosiPin, PG13, 6); 207impl_spi_pin!(SPI4, MosiPin, PG13, 6);
208pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 208pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
209pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 209pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
210pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 210pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
211pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 211pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
212pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 212pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
213pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 213pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
214pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 214pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
215pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 215pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
216pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 216pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
217pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 217pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
218pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 218pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
219pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 219pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
220pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 220pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
221pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 221pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
222pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 222pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
223pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 223pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
224impl_usart!(USART1); 224impl_usart!(USART1);
225impl_usart_pin!(USART1, RxPin, PA10, 7); 225impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f446ze.rs b/embassy-stm32/src/pac/stm32f446ze.rs
index a3d7e0205..040b3d66d 100644
--- a/embassy-stm32/src/pac/stm32f446ze.rs
+++ b/embassy-stm32/src/pac/stm32f446ze.rs
@@ -206,20 +206,20 @@ impl_spi_pin!(SPI4, SckPin, PG11, 6);
206impl_spi_pin!(SPI4, MisoPin, PG12, 6); 206impl_spi_pin!(SPI4, MisoPin, PG12, 6);
207impl_spi_pin!(SPI4, MosiPin, PG13, 6); 207impl_spi_pin!(SPI4, MosiPin, PG13, 6);
208pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 208pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
209pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 209pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
210pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 210pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
211pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 211pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
212pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 212pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
213pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 213pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
214pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 214pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
215pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 215pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
216pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 216pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
217pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 217pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
218pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 218pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
219pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 219pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
220pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 220pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
221pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 221pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
222pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 222pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
223pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 223pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
224impl_usart!(USART1); 224impl_usart!(USART1);
225impl_usart_pin!(USART1, RxPin, PA10, 7); 225impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f469ae.rs b/embassy-stm32/src/pac/stm32f469ae.rs
index 76ac7943e..90bd2b15d 100644
--- a/embassy-stm32/src/pac/stm32f469ae.rs
+++ b/embassy-stm32/src/pac/stm32f469ae.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f469ag.rs b/embassy-stm32/src/pac/stm32f469ag.rs
index 76ac7943e..90bd2b15d 100644
--- a/embassy-stm32/src/pac/stm32f469ag.rs
+++ b/embassy-stm32/src/pac/stm32f469ag.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f469ai.rs b/embassy-stm32/src/pac/stm32f469ai.rs
index 76ac7943e..90bd2b15d 100644
--- a/embassy-stm32/src/pac/stm32f469ai.rs
+++ b/embassy-stm32/src/pac/stm32f469ai.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f469be.rs b/embassy-stm32/src/pac/stm32f469be.rs
index 76ac7943e..90bd2b15d 100644
--- a/embassy-stm32/src/pac/stm32f469be.rs
+++ b/embassy-stm32/src/pac/stm32f469be.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f469bg.rs b/embassy-stm32/src/pac/stm32f469bg.rs
index 76ac7943e..90bd2b15d 100644
--- a/embassy-stm32/src/pac/stm32f469bg.rs
+++ b/embassy-stm32/src/pac/stm32f469bg.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f469bi.rs b/embassy-stm32/src/pac/stm32f469bi.rs
index 76ac7943e..90bd2b15d 100644
--- a/embassy-stm32/src/pac/stm32f469bi.rs
+++ b/embassy-stm32/src/pac/stm32f469bi.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f469ie.rs b/embassy-stm32/src/pac/stm32f469ie.rs
index 76ac7943e..90bd2b15d 100644
--- a/embassy-stm32/src/pac/stm32f469ie.rs
+++ b/embassy-stm32/src/pac/stm32f469ie.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f469ig.rs b/embassy-stm32/src/pac/stm32f469ig.rs
index 76ac7943e..90bd2b15d 100644
--- a/embassy-stm32/src/pac/stm32f469ig.rs
+++ b/embassy-stm32/src/pac/stm32f469ig.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f469ii.rs b/embassy-stm32/src/pac/stm32f469ii.rs
index 76ac7943e..90bd2b15d 100644
--- a/embassy-stm32/src/pac/stm32f469ii.rs
+++ b/embassy-stm32/src/pac/stm32f469ii.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f469ne.rs b/embassy-stm32/src/pac/stm32f469ne.rs
index 76ac7943e..90bd2b15d 100644
--- a/embassy-stm32/src/pac/stm32f469ne.rs
+++ b/embassy-stm32/src/pac/stm32f469ne.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f469ng.rs b/embassy-stm32/src/pac/stm32f469ng.rs
index 76ac7943e..90bd2b15d 100644
--- a/embassy-stm32/src/pac/stm32f469ng.rs
+++ b/embassy-stm32/src/pac/stm32f469ng.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f469ni.rs b/embassy-stm32/src/pac/stm32f469ni.rs
index 76ac7943e..90bd2b15d 100644
--- a/embassy-stm32/src/pac/stm32f469ni.rs
+++ b/embassy-stm32/src/pac/stm32f469ni.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f469ve.rs b/embassy-stm32/src/pac/stm32f469ve.rs
index 76ac7943e..90bd2b15d 100644
--- a/embassy-stm32/src/pac/stm32f469ve.rs
+++ b/embassy-stm32/src/pac/stm32f469ve.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f469vg.rs b/embassy-stm32/src/pac/stm32f469vg.rs
index 76ac7943e..90bd2b15d 100644
--- a/embassy-stm32/src/pac/stm32f469vg.rs
+++ b/embassy-stm32/src/pac/stm32f469vg.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f469vi.rs b/embassy-stm32/src/pac/stm32f469vi.rs
index 76ac7943e..90bd2b15d 100644
--- a/embassy-stm32/src/pac/stm32f469vi.rs
+++ b/embassy-stm32/src/pac/stm32f469vi.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f469ze.rs b/embassy-stm32/src/pac/stm32f469ze.rs
index 76ac7943e..90bd2b15d 100644
--- a/embassy-stm32/src/pac/stm32f469ze.rs
+++ b/embassy-stm32/src/pac/stm32f469ze.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f469zg.rs b/embassy-stm32/src/pac/stm32f469zg.rs
index 76ac7943e..90bd2b15d 100644
--- a/embassy-stm32/src/pac/stm32f469zg.rs
+++ b/embassy-stm32/src/pac/stm32f469zg.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f469zi.rs b/embassy-stm32/src/pac/stm32f469zi.rs
index 76ac7943e..90bd2b15d 100644
--- a/embassy-stm32/src/pac/stm32f469zi.rs
+++ b/embassy-stm32/src/pac/stm32f469zi.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f479ag.rs b/embassy-stm32/src/pac/stm32f479ag.rs
index 36f35ba25..c27b82aea 100644
--- a/embassy-stm32/src/pac/stm32f479ag.rs
+++ b/embassy-stm32/src/pac/stm32f479ag.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f479ai.rs b/embassy-stm32/src/pac/stm32f479ai.rs
index 36f35ba25..c27b82aea 100644
--- a/embassy-stm32/src/pac/stm32f479ai.rs
+++ b/embassy-stm32/src/pac/stm32f479ai.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f479bg.rs b/embassy-stm32/src/pac/stm32f479bg.rs
index 36f35ba25..c27b82aea 100644
--- a/embassy-stm32/src/pac/stm32f479bg.rs
+++ b/embassy-stm32/src/pac/stm32f479bg.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f479bi.rs b/embassy-stm32/src/pac/stm32f479bi.rs
index 36f35ba25..c27b82aea 100644
--- a/embassy-stm32/src/pac/stm32f479bi.rs
+++ b/embassy-stm32/src/pac/stm32f479bi.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f479ig.rs b/embassy-stm32/src/pac/stm32f479ig.rs
index 36f35ba25..c27b82aea 100644
--- a/embassy-stm32/src/pac/stm32f479ig.rs
+++ b/embassy-stm32/src/pac/stm32f479ig.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f479ii.rs b/embassy-stm32/src/pac/stm32f479ii.rs
index 36f35ba25..c27b82aea 100644
--- a/embassy-stm32/src/pac/stm32f479ii.rs
+++ b/embassy-stm32/src/pac/stm32f479ii.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f479ng.rs b/embassy-stm32/src/pac/stm32f479ng.rs
index 36f35ba25..c27b82aea 100644
--- a/embassy-stm32/src/pac/stm32f479ng.rs
+++ b/embassy-stm32/src/pac/stm32f479ng.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f479ni.rs b/embassy-stm32/src/pac/stm32f479ni.rs
index 36f35ba25..c27b82aea 100644
--- a/embassy-stm32/src/pac/stm32f479ni.rs
+++ b/embassy-stm32/src/pac/stm32f479ni.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f479vg.rs b/embassy-stm32/src/pac/stm32f479vg.rs
index 36f35ba25..c27b82aea 100644
--- a/embassy-stm32/src/pac/stm32f479vg.rs
+++ b/embassy-stm32/src/pac/stm32f479vg.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f479vi.rs b/embassy-stm32/src/pac/stm32f479vi.rs
index 36f35ba25..c27b82aea 100644
--- a/embassy-stm32/src/pac/stm32f479vi.rs
+++ b/embassy-stm32/src/pac/stm32f479vi.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f479zg.rs b/embassy-stm32/src/pac/stm32f479zg.rs
index 36f35ba25..c27b82aea 100644
--- a/embassy-stm32/src/pac/stm32f479zg.rs
+++ b/embassy-stm32/src/pac/stm32f479zg.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32f479zi.rs b/embassy-stm32/src/pac/stm32f479zi.rs
index 36f35ba25..c27b82aea 100644
--- a/embassy-stm32/src/pac/stm32f479zi.rs
+++ b/embassy-stm32/src/pac/stm32f479zi.rs
@@ -214,20 +214,20 @@ impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215impl_rng!(RNG, HASH_RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _); 216pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40013800 as _);
217pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 217pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
218pub const TIM10: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 218pub const TIM10: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
219pub const TIM11: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 219pub const TIM11: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
220pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 220pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
221pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 221pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
222pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 222pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
223pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 223pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
224pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 224pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
225pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 225pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
226pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 226pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
227pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 227pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
228pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 228pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
229pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 229pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
230pub const TIM9: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM9: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _); 231pub const USART1: usart::Usart = usart::Usart(0x40011000 as _);
232impl_usart!(USART1); 232impl_usart!(USART1);
233impl_usart_pin!(USART1, RxPin, PA10, 7); 233impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32h723ve.rs b/embassy-stm32/src/pac/stm32h723ve.rs
index f9d3dc7c2..7e939d575 100644
--- a/embassy-stm32/src/pac/stm32h723ve.rs
+++ b/embassy-stm32/src/pac/stm32h723ve.rs
@@ -291,22 +291,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
291impl_spi_pin!(SPI6, SckPin, PG13, 5); 291impl_spi_pin!(SPI6, SckPin, PG13, 5);
292impl_spi_pin!(SPI6, MosiPin, PG14, 5); 292impl_spi_pin!(SPI6, MosiPin, PG14, 5);
293pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 293pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
294pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 294pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
295pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 295pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
296pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 296pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
297pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 297pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
298pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 298pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
299pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 299pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
300pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 300pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
301pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 301pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
302pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 302pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
303pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 303pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
304pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 304pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
305pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 305pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
306pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 306pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
307pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 307pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
308pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 308pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
309pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 309pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
310pub use super::regs::dbgmcu_h7 as dbgmcu; 310pub use super::regs::dbgmcu_h7 as dbgmcu;
311pub use super::regs::dma_v2 as dma; 311pub use super::regs::dma_v2 as dma;
312pub use super::regs::exti_v1 as exti; 312pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h723vg.rs b/embassy-stm32/src/pac/stm32h723vg.rs
index f9d3dc7c2..7e939d575 100644
--- a/embassy-stm32/src/pac/stm32h723vg.rs
+++ b/embassy-stm32/src/pac/stm32h723vg.rs
@@ -291,22 +291,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
291impl_spi_pin!(SPI6, SckPin, PG13, 5); 291impl_spi_pin!(SPI6, SckPin, PG13, 5);
292impl_spi_pin!(SPI6, MosiPin, PG14, 5); 292impl_spi_pin!(SPI6, MosiPin, PG14, 5);
293pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 293pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
294pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 294pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
295pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 295pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
296pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 296pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
297pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 297pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
298pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 298pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
299pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 299pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
300pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 300pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
301pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 301pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
302pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 302pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
303pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 303pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
304pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 304pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
305pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 305pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
306pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 306pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
307pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 307pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
308pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 308pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
309pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 309pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
310pub use super::regs::dbgmcu_h7 as dbgmcu; 310pub use super::regs::dbgmcu_h7 as dbgmcu;
311pub use super::regs::dma_v2 as dma; 311pub use super::regs::dma_v2 as dma;
312pub use super::regs::exti_v1 as exti; 312pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h723ze.rs b/embassy-stm32/src/pac/stm32h723ze.rs
index fd84abb05..5cc424b65 100644
--- a/embassy-stm32/src/pac/stm32h723ze.rs
+++ b/embassy-stm32/src/pac/stm32h723ze.rs
@@ -302,22 +302,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
302impl_spi_pin!(SPI6, SckPin, PG13, 5); 302impl_spi_pin!(SPI6, SckPin, PG13, 5);
303impl_spi_pin!(SPI6, MosiPin, PG14, 5); 303impl_spi_pin!(SPI6, MosiPin, PG14, 5);
304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
305pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 305pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
306pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 306pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
307pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 307pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
308pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 308pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
309pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 309pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
310pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 310pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
311pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 311pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
312pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 312pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
313pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 313pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
314pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 314pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h723zg.rs b/embassy-stm32/src/pac/stm32h723zg.rs
index fd84abb05..5cc424b65 100644
--- a/embassy-stm32/src/pac/stm32h723zg.rs
+++ b/embassy-stm32/src/pac/stm32h723zg.rs
@@ -302,22 +302,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
302impl_spi_pin!(SPI6, SckPin, PG13, 5); 302impl_spi_pin!(SPI6, SckPin, PG13, 5);
303impl_spi_pin!(SPI6, MosiPin, PG14, 5); 303impl_spi_pin!(SPI6, MosiPin, PG14, 5);
304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
305pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 305pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
306pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 306pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
307pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 307pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
308pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 308pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
309pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 309pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
310pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 310pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
311pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 311pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
312pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 312pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
313pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 313pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
314pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 314pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h725ae.rs b/embassy-stm32/src/pac/stm32h725ae.rs
index fd84abb05..5cc424b65 100644
--- a/embassy-stm32/src/pac/stm32h725ae.rs
+++ b/embassy-stm32/src/pac/stm32h725ae.rs
@@ -302,22 +302,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
302impl_spi_pin!(SPI6, SckPin, PG13, 5); 302impl_spi_pin!(SPI6, SckPin, PG13, 5);
303impl_spi_pin!(SPI6, MosiPin, PG14, 5); 303impl_spi_pin!(SPI6, MosiPin, PG14, 5);
304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
305pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 305pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
306pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 306pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
307pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 307pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
308pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 308pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
309pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 309pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
310pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 310pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
311pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 311pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
312pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 312pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
313pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 313pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
314pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 314pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h725ag.rs b/embassy-stm32/src/pac/stm32h725ag.rs
index fd84abb05..5cc424b65 100644
--- a/embassy-stm32/src/pac/stm32h725ag.rs
+++ b/embassy-stm32/src/pac/stm32h725ag.rs
@@ -302,22 +302,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
302impl_spi_pin!(SPI6, SckPin, PG13, 5); 302impl_spi_pin!(SPI6, SckPin, PG13, 5);
303impl_spi_pin!(SPI6, MosiPin, PG14, 5); 303impl_spi_pin!(SPI6, MosiPin, PG14, 5);
304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
305pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 305pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
306pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 306pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
307pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 307pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
308pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 308pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
309pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 309pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
310pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 310pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
311pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 311pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
312pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 312pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
313pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 313pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
314pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 314pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h725ie.rs b/embassy-stm32/src/pac/stm32h725ie.rs
index fd84abb05..5cc424b65 100644
--- a/embassy-stm32/src/pac/stm32h725ie.rs
+++ b/embassy-stm32/src/pac/stm32h725ie.rs
@@ -302,22 +302,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
302impl_spi_pin!(SPI6, SckPin, PG13, 5); 302impl_spi_pin!(SPI6, SckPin, PG13, 5);
303impl_spi_pin!(SPI6, MosiPin, PG14, 5); 303impl_spi_pin!(SPI6, MosiPin, PG14, 5);
304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
305pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 305pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
306pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 306pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
307pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 307pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
308pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 308pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
309pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 309pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
310pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 310pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
311pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 311pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
312pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 312pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
313pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 313pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
314pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 314pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h725ig.rs b/embassy-stm32/src/pac/stm32h725ig.rs
index fd84abb05..5cc424b65 100644
--- a/embassy-stm32/src/pac/stm32h725ig.rs
+++ b/embassy-stm32/src/pac/stm32h725ig.rs
@@ -302,22 +302,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
302impl_spi_pin!(SPI6, SckPin, PG13, 5); 302impl_spi_pin!(SPI6, SckPin, PG13, 5);
303impl_spi_pin!(SPI6, MosiPin, PG14, 5); 303impl_spi_pin!(SPI6, MosiPin, PG14, 5);
304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
305pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 305pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
306pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 306pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
307pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 307pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
308pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 308pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
309pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 309pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
310pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 310pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
311pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 311pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
312pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 312pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
313pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 313pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
314pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 314pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h725re.rs b/embassy-stm32/src/pac/stm32h725re.rs
index c59d5704b..615397e16 100644
--- a/embassy-stm32/src/pac/stm32h725re.rs
+++ b/embassy-stm32/src/pac/stm32h725re.rs
@@ -282,22 +282,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
282impl_spi_pin!(SPI6, SckPin, PG13, 5); 282impl_spi_pin!(SPI6, SckPin, PG13, 5);
283impl_spi_pin!(SPI6, MosiPin, PG14, 5); 283impl_spi_pin!(SPI6, MosiPin, PG14, 5);
284pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 284pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
285pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 285pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
286pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 286pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
287pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 287pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
288pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 288pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
289pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 289pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
290pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 290pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
291pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 291pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
292pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 292pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
293pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 293pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
294pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 294pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
295pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 295pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
296pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 296pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
297pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 297pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
298pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 298pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
299pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 299pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
300pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 300pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
301pub use super::regs::dbgmcu_h7 as dbgmcu; 301pub use super::regs::dbgmcu_h7 as dbgmcu;
302pub use super::regs::dma_v2 as dma; 302pub use super::regs::dma_v2 as dma;
303pub use super::regs::exti_v1 as exti; 303pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h725rg.rs b/embassy-stm32/src/pac/stm32h725rg.rs
index c59d5704b..615397e16 100644
--- a/embassy-stm32/src/pac/stm32h725rg.rs
+++ b/embassy-stm32/src/pac/stm32h725rg.rs
@@ -282,22 +282,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
282impl_spi_pin!(SPI6, SckPin, PG13, 5); 282impl_spi_pin!(SPI6, SckPin, PG13, 5);
283impl_spi_pin!(SPI6, MosiPin, PG14, 5); 283impl_spi_pin!(SPI6, MosiPin, PG14, 5);
284pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 284pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
285pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 285pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
286pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 286pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
287pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 287pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
288pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 288pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
289pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 289pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
290pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 290pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
291pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 291pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
292pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 292pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
293pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 293pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
294pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 294pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
295pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 295pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
296pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 296pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
297pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 297pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
298pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 298pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
299pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 299pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
300pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 300pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
301pub use super::regs::dbgmcu_h7 as dbgmcu; 301pub use super::regs::dbgmcu_h7 as dbgmcu;
302pub use super::regs::dma_v2 as dma; 302pub use super::regs::dma_v2 as dma;
303pub use super::regs::exti_v1 as exti; 303pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h725ve.rs b/embassy-stm32/src/pac/stm32h725ve.rs
index f9d3dc7c2..7e939d575 100644
--- a/embassy-stm32/src/pac/stm32h725ve.rs
+++ b/embassy-stm32/src/pac/stm32h725ve.rs
@@ -291,22 +291,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
291impl_spi_pin!(SPI6, SckPin, PG13, 5); 291impl_spi_pin!(SPI6, SckPin, PG13, 5);
292impl_spi_pin!(SPI6, MosiPin, PG14, 5); 292impl_spi_pin!(SPI6, MosiPin, PG14, 5);
293pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 293pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
294pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 294pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
295pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 295pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
296pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 296pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
297pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 297pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
298pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 298pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
299pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 299pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
300pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 300pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
301pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 301pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
302pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 302pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
303pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 303pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
304pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 304pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
305pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 305pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
306pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 306pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
307pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 307pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
308pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 308pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
309pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 309pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
310pub use super::regs::dbgmcu_h7 as dbgmcu; 310pub use super::regs::dbgmcu_h7 as dbgmcu;
311pub use super::regs::dma_v2 as dma; 311pub use super::regs::dma_v2 as dma;
312pub use super::regs::exti_v1 as exti; 312pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h725vg.rs b/embassy-stm32/src/pac/stm32h725vg.rs
index f9d3dc7c2..7e939d575 100644
--- a/embassy-stm32/src/pac/stm32h725vg.rs
+++ b/embassy-stm32/src/pac/stm32h725vg.rs
@@ -291,22 +291,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
291impl_spi_pin!(SPI6, SckPin, PG13, 5); 291impl_spi_pin!(SPI6, SckPin, PG13, 5);
292impl_spi_pin!(SPI6, MosiPin, PG14, 5); 292impl_spi_pin!(SPI6, MosiPin, PG14, 5);
293pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 293pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
294pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 294pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
295pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 295pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
296pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 296pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
297pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 297pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
298pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 298pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
299pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 299pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
300pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 300pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
301pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 301pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
302pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 302pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
303pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 303pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
304pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 304pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
305pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 305pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
306pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 306pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
307pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 307pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
308pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 308pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
309pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 309pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
310pub use super::regs::dbgmcu_h7 as dbgmcu; 310pub use super::regs::dbgmcu_h7 as dbgmcu;
311pub use super::regs::dma_v2 as dma; 311pub use super::regs::dma_v2 as dma;
312pub use super::regs::exti_v1 as exti; 312pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h725ze.rs b/embassy-stm32/src/pac/stm32h725ze.rs
index fd84abb05..5cc424b65 100644
--- a/embassy-stm32/src/pac/stm32h725ze.rs
+++ b/embassy-stm32/src/pac/stm32h725ze.rs
@@ -302,22 +302,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
302impl_spi_pin!(SPI6, SckPin, PG13, 5); 302impl_spi_pin!(SPI6, SckPin, PG13, 5);
303impl_spi_pin!(SPI6, MosiPin, PG14, 5); 303impl_spi_pin!(SPI6, MosiPin, PG14, 5);
304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
305pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 305pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
306pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 306pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
307pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 307pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
308pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 308pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
309pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 309pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
310pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 310pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
311pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 311pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
312pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 312pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
313pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 313pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
314pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 314pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h725zg.rs b/embassy-stm32/src/pac/stm32h725zg.rs
index fd84abb05..5cc424b65 100644
--- a/embassy-stm32/src/pac/stm32h725zg.rs
+++ b/embassy-stm32/src/pac/stm32h725zg.rs
@@ -302,22 +302,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
302impl_spi_pin!(SPI6, SckPin, PG13, 5); 302impl_spi_pin!(SPI6, SckPin, PG13, 5);
303impl_spi_pin!(SPI6, MosiPin, PG14, 5); 303impl_spi_pin!(SPI6, MosiPin, PG14, 5);
304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
305pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 305pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
306pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 306pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
307pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 307pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
308pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 308pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
309pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 309pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
310pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 310pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
311pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 311pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
312pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 312pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
313pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 313pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
314pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 314pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h730ab.rs b/embassy-stm32/src/pac/stm32h730ab.rs
index 1abd0fc4d..1455ce73e 100644
--- a/embassy-stm32/src/pac/stm32h730ab.rs
+++ b/embassy-stm32/src/pac/stm32h730ab.rs
@@ -302,22 +302,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
302impl_spi_pin!(SPI6, SckPin, PG13, 5); 302impl_spi_pin!(SPI6, SckPin, PG13, 5);
303impl_spi_pin!(SPI6, MosiPin, PG14, 5); 303impl_spi_pin!(SPI6, MosiPin, PG14, 5);
304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
305pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 305pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
306pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 306pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
307pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 307pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
308pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 308pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
309pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 309pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
310pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 310pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
311pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 311pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
312pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 312pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
313pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 313pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
314pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 314pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h730ib.rs b/embassy-stm32/src/pac/stm32h730ib.rs
index 1abd0fc4d..1455ce73e 100644
--- a/embassy-stm32/src/pac/stm32h730ib.rs
+++ b/embassy-stm32/src/pac/stm32h730ib.rs
@@ -302,22 +302,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
302impl_spi_pin!(SPI6, SckPin, PG13, 5); 302impl_spi_pin!(SPI6, SckPin, PG13, 5);
303impl_spi_pin!(SPI6, MosiPin, PG14, 5); 303impl_spi_pin!(SPI6, MosiPin, PG14, 5);
304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
305pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 305pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
306pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 306pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
307pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 307pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
308pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 308pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
309pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 309pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
310pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 310pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
311pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 311pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
312pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 312pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
313pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 313pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
314pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 314pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h730vb.rs b/embassy-stm32/src/pac/stm32h730vb.rs
index 51645eb9a..d050e0011 100644
--- a/embassy-stm32/src/pac/stm32h730vb.rs
+++ b/embassy-stm32/src/pac/stm32h730vb.rs
@@ -291,22 +291,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
291impl_spi_pin!(SPI6, SckPin, PG13, 5); 291impl_spi_pin!(SPI6, SckPin, PG13, 5);
292impl_spi_pin!(SPI6, MosiPin, PG14, 5); 292impl_spi_pin!(SPI6, MosiPin, PG14, 5);
293pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 293pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
294pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 294pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
295pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 295pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
296pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 296pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
297pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 297pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
298pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 298pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
299pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 299pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
300pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 300pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
301pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 301pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
302pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 302pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
303pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 303pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
304pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 304pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
305pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 305pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
306pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 306pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
307pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 307pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
308pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 308pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
309pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 309pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
310pub use super::regs::dbgmcu_h7 as dbgmcu; 310pub use super::regs::dbgmcu_h7 as dbgmcu;
311pub use super::regs::dma_v2 as dma; 311pub use super::regs::dma_v2 as dma;
312pub use super::regs::exti_v1 as exti; 312pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h730zb.rs b/embassy-stm32/src/pac/stm32h730zb.rs
index 1abd0fc4d..1455ce73e 100644
--- a/embassy-stm32/src/pac/stm32h730zb.rs
+++ b/embassy-stm32/src/pac/stm32h730zb.rs
@@ -302,22 +302,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
302impl_spi_pin!(SPI6, SckPin, PG13, 5); 302impl_spi_pin!(SPI6, SckPin, PG13, 5);
303impl_spi_pin!(SPI6, MosiPin, PG14, 5); 303impl_spi_pin!(SPI6, MosiPin, PG14, 5);
304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
305pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 305pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
306pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 306pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
307pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 307pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
308pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 308pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
309pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 309pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
310pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 310pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
311pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 311pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
312pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 312pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
313pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 313pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
314pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 314pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h733vg.rs b/embassy-stm32/src/pac/stm32h733vg.rs
index 51645eb9a..d050e0011 100644
--- a/embassy-stm32/src/pac/stm32h733vg.rs
+++ b/embassy-stm32/src/pac/stm32h733vg.rs
@@ -291,22 +291,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
291impl_spi_pin!(SPI6, SckPin, PG13, 5); 291impl_spi_pin!(SPI6, SckPin, PG13, 5);
292impl_spi_pin!(SPI6, MosiPin, PG14, 5); 292impl_spi_pin!(SPI6, MosiPin, PG14, 5);
293pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 293pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
294pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 294pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
295pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 295pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
296pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 296pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
297pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 297pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
298pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 298pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
299pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 299pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
300pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 300pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
301pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 301pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
302pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 302pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
303pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 303pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
304pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 304pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
305pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 305pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
306pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 306pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
307pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 307pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
308pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 308pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
309pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 309pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
310pub use super::regs::dbgmcu_h7 as dbgmcu; 310pub use super::regs::dbgmcu_h7 as dbgmcu;
311pub use super::regs::dma_v2 as dma; 311pub use super::regs::dma_v2 as dma;
312pub use super::regs::exti_v1 as exti; 312pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h733zg.rs b/embassy-stm32/src/pac/stm32h733zg.rs
index 1abd0fc4d..1455ce73e 100644
--- a/embassy-stm32/src/pac/stm32h733zg.rs
+++ b/embassy-stm32/src/pac/stm32h733zg.rs
@@ -302,22 +302,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
302impl_spi_pin!(SPI6, SckPin, PG13, 5); 302impl_spi_pin!(SPI6, SckPin, PG13, 5);
303impl_spi_pin!(SPI6, MosiPin, PG14, 5); 303impl_spi_pin!(SPI6, MosiPin, PG14, 5);
304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
305pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 305pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
306pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 306pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
307pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 307pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
308pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 308pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
309pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 309pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
310pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 310pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
311pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 311pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
312pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 312pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
313pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 313pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
314pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 314pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h735ag.rs b/embassy-stm32/src/pac/stm32h735ag.rs
index 1abd0fc4d..1455ce73e 100644
--- a/embassy-stm32/src/pac/stm32h735ag.rs
+++ b/embassy-stm32/src/pac/stm32h735ag.rs
@@ -302,22 +302,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
302impl_spi_pin!(SPI6, SckPin, PG13, 5); 302impl_spi_pin!(SPI6, SckPin, PG13, 5);
303impl_spi_pin!(SPI6, MosiPin, PG14, 5); 303impl_spi_pin!(SPI6, MosiPin, PG14, 5);
304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
305pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 305pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
306pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 306pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
307pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 307pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
308pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 308pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
309pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 309pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
310pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 310pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
311pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 311pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
312pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 312pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
313pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 313pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
314pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 314pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h735ig.rs b/embassy-stm32/src/pac/stm32h735ig.rs
index 1abd0fc4d..1455ce73e 100644
--- a/embassy-stm32/src/pac/stm32h735ig.rs
+++ b/embassy-stm32/src/pac/stm32h735ig.rs
@@ -302,22 +302,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
302impl_spi_pin!(SPI6, SckPin, PG13, 5); 302impl_spi_pin!(SPI6, SckPin, PG13, 5);
303impl_spi_pin!(SPI6, MosiPin, PG14, 5); 303impl_spi_pin!(SPI6, MosiPin, PG14, 5);
304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
305pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 305pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
306pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 306pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
307pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 307pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
308pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 308pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
309pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 309pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
310pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 310pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
311pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 311pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
312pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 312pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
313pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 313pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
314pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 314pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h735rg.rs b/embassy-stm32/src/pac/stm32h735rg.rs
index d74eda8eb..4f990915f 100644
--- a/embassy-stm32/src/pac/stm32h735rg.rs
+++ b/embassy-stm32/src/pac/stm32h735rg.rs
@@ -282,22 +282,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
282impl_spi_pin!(SPI6, SckPin, PG13, 5); 282impl_spi_pin!(SPI6, SckPin, PG13, 5);
283impl_spi_pin!(SPI6, MosiPin, PG14, 5); 283impl_spi_pin!(SPI6, MosiPin, PG14, 5);
284pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 284pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
285pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 285pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
286pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 286pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
287pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 287pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
288pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 288pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
289pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 289pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
290pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 290pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
291pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 291pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
292pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 292pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
293pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 293pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
294pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 294pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
295pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 295pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
296pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 296pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
297pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 297pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
298pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 298pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
299pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 299pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
300pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 300pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
301pub use super::regs::dbgmcu_h7 as dbgmcu; 301pub use super::regs::dbgmcu_h7 as dbgmcu;
302pub use super::regs::dma_v2 as dma; 302pub use super::regs::dma_v2 as dma;
303pub use super::regs::exti_v1 as exti; 303pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h735vg.rs b/embassy-stm32/src/pac/stm32h735vg.rs
index 51645eb9a..d050e0011 100644
--- a/embassy-stm32/src/pac/stm32h735vg.rs
+++ b/embassy-stm32/src/pac/stm32h735vg.rs
@@ -291,22 +291,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
291impl_spi_pin!(SPI6, SckPin, PG13, 5); 291impl_spi_pin!(SPI6, SckPin, PG13, 5);
292impl_spi_pin!(SPI6, MosiPin, PG14, 5); 292impl_spi_pin!(SPI6, MosiPin, PG14, 5);
293pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 293pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
294pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 294pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
295pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 295pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
296pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 296pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
297pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 297pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
298pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 298pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
299pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 299pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
300pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 300pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
301pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 301pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
302pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 302pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
303pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 303pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
304pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 304pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
305pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 305pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
306pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 306pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
307pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 307pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
308pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 308pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
309pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 309pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
310pub use super::regs::dbgmcu_h7 as dbgmcu; 310pub use super::regs::dbgmcu_h7 as dbgmcu;
311pub use super::regs::dma_v2 as dma; 311pub use super::regs::dma_v2 as dma;
312pub use super::regs::exti_v1 as exti; 312pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h735zg.rs b/embassy-stm32/src/pac/stm32h735zg.rs
index 1abd0fc4d..1455ce73e 100644
--- a/embassy-stm32/src/pac/stm32h735zg.rs
+++ b/embassy-stm32/src/pac/stm32h735zg.rs
@@ -302,22 +302,22 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
302impl_spi_pin!(SPI6, SckPin, PG13, 5); 302impl_spi_pin!(SPI6, SckPin, PG13, 5);
303impl_spi_pin!(SPI6, MosiPin, PG14, 5); 303impl_spi_pin!(SPI6, MosiPin, PG14, 5);
304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 304pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
305pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 305pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
306pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 306pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
307pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 307pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
308pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 308pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
309pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 309pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
310pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 310pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
311pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 311pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
312pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 312pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
313pub const TIM23: timer::Tim_gp16 = timer::Tim_gp16(0x4000e000 as _); 313pub const TIM23: timer::TimGp16 = timer::TimGp16(0x4000e000 as _);
314pub const TIM24: timer::Tim_gp16 = timer::Tim_gp16(0x4000e400 as _); 314pub const TIM24: timer::TimGp16 = timer::TimGp16(0x4000e400 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h742ag.rs b/embassy-stm32/src/pac/stm32h742ag.rs
index 456a94cb8..5d346ec58 100644
--- a/embassy-stm32/src/pac/stm32h742ag.rs
+++ b/embassy-stm32/src/pac/stm32h742ag.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h742ai.rs b/embassy-stm32/src/pac/stm32h742ai.rs
index 456a94cb8..5d346ec58 100644
--- a/embassy-stm32/src/pac/stm32h742ai.rs
+++ b/embassy-stm32/src/pac/stm32h742ai.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h742bg.rs b/embassy-stm32/src/pac/stm32h742bg.rs
index 456a94cb8..5d346ec58 100644
--- a/embassy-stm32/src/pac/stm32h742bg.rs
+++ b/embassy-stm32/src/pac/stm32h742bg.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h742bi.rs b/embassy-stm32/src/pac/stm32h742bi.rs
index 456a94cb8..5d346ec58 100644
--- a/embassy-stm32/src/pac/stm32h742bi.rs
+++ b/embassy-stm32/src/pac/stm32h742bi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h742ig.rs b/embassy-stm32/src/pac/stm32h742ig.rs
index 456a94cb8..5d346ec58 100644
--- a/embassy-stm32/src/pac/stm32h742ig.rs
+++ b/embassy-stm32/src/pac/stm32h742ig.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h742ii.rs b/embassy-stm32/src/pac/stm32h742ii.rs
index 456a94cb8..5d346ec58 100644
--- a/embassy-stm32/src/pac/stm32h742ii.rs
+++ b/embassy-stm32/src/pac/stm32h742ii.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h742vg.rs b/embassy-stm32/src/pac/stm32h742vg.rs
index 7f684aa6e..d76e5ce73 100644
--- a/embassy-stm32/src/pac/stm32h742vg.rs
+++ b/embassy-stm32/src/pac/stm32h742vg.rs
@@ -293,20 +293,20 @@ impl_spi_pin!(SPI4, MisoPin, PE5, 5);
293impl_spi_pin!(SPI4, MosiPin, PE6, 5); 293impl_spi_pin!(SPI4, MosiPin, PE6, 5);
294pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 294pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
295pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 295pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
296pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 296pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
297pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 297pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
298pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 298pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
299pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 299pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
300pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 300pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
301pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 301pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
302pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 302pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
303pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 303pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
304pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 304pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
305pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 305pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
306pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 306pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
307pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 307pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
308pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 308pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
309pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 309pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
310pub use super::regs::dbgmcu_h7 as dbgmcu; 310pub use super::regs::dbgmcu_h7 as dbgmcu;
311pub use super::regs::dma_v2 as dma; 311pub use super::regs::dma_v2 as dma;
312pub use super::regs::exti_v1 as exti; 312pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h742vi.rs b/embassy-stm32/src/pac/stm32h742vi.rs
index 7f684aa6e..d76e5ce73 100644
--- a/embassy-stm32/src/pac/stm32h742vi.rs
+++ b/embassy-stm32/src/pac/stm32h742vi.rs
@@ -293,20 +293,20 @@ impl_spi_pin!(SPI4, MisoPin, PE5, 5);
293impl_spi_pin!(SPI4, MosiPin, PE6, 5); 293impl_spi_pin!(SPI4, MosiPin, PE6, 5);
294pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 294pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
295pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 295pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
296pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 296pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
297pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 297pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
298pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 298pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
299pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 299pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
300pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 300pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
301pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 301pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
302pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 302pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
303pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 303pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
304pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 304pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
305pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 305pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
306pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 306pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
307pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 307pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
308pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 308pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
309pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 309pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
310pub use super::regs::dbgmcu_h7 as dbgmcu; 310pub use super::regs::dbgmcu_h7 as dbgmcu;
311pub use super::regs::dma_v2 as dma; 311pub use super::regs::dma_v2 as dma;
312pub use super::regs::exti_v1 as exti; 312pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h742xg.rs b/embassy-stm32/src/pac/stm32h742xg.rs
index 456a94cb8..5d346ec58 100644
--- a/embassy-stm32/src/pac/stm32h742xg.rs
+++ b/embassy-stm32/src/pac/stm32h742xg.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h742xi.rs b/embassy-stm32/src/pac/stm32h742xi.rs
index 456a94cb8..5d346ec58 100644
--- a/embassy-stm32/src/pac/stm32h742xi.rs
+++ b/embassy-stm32/src/pac/stm32h742xi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h742zg.rs b/embassy-stm32/src/pac/stm32h742zg.rs
index 456a94cb8..5d346ec58 100644
--- a/embassy-stm32/src/pac/stm32h742zg.rs
+++ b/embassy-stm32/src/pac/stm32h742zg.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h742zi.rs b/embassy-stm32/src/pac/stm32h742zi.rs
index 456a94cb8..5d346ec58 100644
--- a/embassy-stm32/src/pac/stm32h742zi.rs
+++ b/embassy-stm32/src/pac/stm32h742zi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h743ag.rs b/embassy-stm32/src/pac/stm32h743ag.rs
index ff0ce96d5..9fe2ac31d 100644
--- a/embassy-stm32/src/pac/stm32h743ag.rs
+++ b/embassy-stm32/src/pac/stm32h743ag.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h743ai.rs b/embassy-stm32/src/pac/stm32h743ai.rs
index ff0ce96d5..9fe2ac31d 100644
--- a/embassy-stm32/src/pac/stm32h743ai.rs
+++ b/embassy-stm32/src/pac/stm32h743ai.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h743bg.rs b/embassy-stm32/src/pac/stm32h743bg.rs
index ff0ce96d5..9fe2ac31d 100644
--- a/embassy-stm32/src/pac/stm32h743bg.rs
+++ b/embassy-stm32/src/pac/stm32h743bg.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h743bi.rs b/embassy-stm32/src/pac/stm32h743bi.rs
index ff0ce96d5..9fe2ac31d 100644
--- a/embassy-stm32/src/pac/stm32h743bi.rs
+++ b/embassy-stm32/src/pac/stm32h743bi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h743ig.rs b/embassy-stm32/src/pac/stm32h743ig.rs
index ff0ce96d5..9fe2ac31d 100644
--- a/embassy-stm32/src/pac/stm32h743ig.rs
+++ b/embassy-stm32/src/pac/stm32h743ig.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h743ii.rs b/embassy-stm32/src/pac/stm32h743ii.rs
index ff0ce96d5..9fe2ac31d 100644
--- a/embassy-stm32/src/pac/stm32h743ii.rs
+++ b/embassy-stm32/src/pac/stm32h743ii.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h743vg.rs b/embassy-stm32/src/pac/stm32h743vg.rs
index e181dd237..33eb0495e 100644
--- a/embassy-stm32/src/pac/stm32h743vg.rs
+++ b/embassy-stm32/src/pac/stm32h743vg.rs
@@ -293,20 +293,20 @@ impl_spi_pin!(SPI4, MisoPin, PE5, 5);
293impl_spi_pin!(SPI4, MosiPin, PE6, 5); 293impl_spi_pin!(SPI4, MosiPin, PE6, 5);
294pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 294pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
295pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 295pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
296pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 296pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
297pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 297pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
298pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 298pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
299pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 299pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
300pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 300pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
301pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 301pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
302pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 302pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
303pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 303pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
304pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 304pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
305pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 305pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
306pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 306pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
307pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 307pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
308pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 308pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
309pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 309pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
310pub use super::regs::dbgmcu_h7 as dbgmcu; 310pub use super::regs::dbgmcu_h7 as dbgmcu;
311pub use super::regs::dma_v2 as dma; 311pub use super::regs::dma_v2 as dma;
312pub use super::regs::exti_v1 as exti; 312pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h743vi.rs b/embassy-stm32/src/pac/stm32h743vi.rs
index e181dd237..33eb0495e 100644
--- a/embassy-stm32/src/pac/stm32h743vi.rs
+++ b/embassy-stm32/src/pac/stm32h743vi.rs
@@ -293,20 +293,20 @@ impl_spi_pin!(SPI4, MisoPin, PE5, 5);
293impl_spi_pin!(SPI4, MosiPin, PE6, 5); 293impl_spi_pin!(SPI4, MosiPin, PE6, 5);
294pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 294pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
295pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 295pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
296pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 296pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
297pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 297pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
298pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 298pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
299pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 299pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
300pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 300pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
301pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 301pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
302pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 302pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
303pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 303pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
304pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 304pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
305pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 305pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
306pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 306pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
307pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 307pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
308pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 308pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
309pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 309pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
310pub use super::regs::dbgmcu_h7 as dbgmcu; 310pub use super::regs::dbgmcu_h7 as dbgmcu;
311pub use super::regs::dma_v2 as dma; 311pub use super::regs::dma_v2 as dma;
312pub use super::regs::exti_v1 as exti; 312pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h743xg.rs b/embassy-stm32/src/pac/stm32h743xg.rs
index ff0ce96d5..9fe2ac31d 100644
--- a/embassy-stm32/src/pac/stm32h743xg.rs
+++ b/embassy-stm32/src/pac/stm32h743xg.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h743xi.rs b/embassy-stm32/src/pac/stm32h743xi.rs
index ff0ce96d5..9fe2ac31d 100644
--- a/embassy-stm32/src/pac/stm32h743xi.rs
+++ b/embassy-stm32/src/pac/stm32h743xi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h743zg.rs b/embassy-stm32/src/pac/stm32h743zg.rs
index ff0ce96d5..9fe2ac31d 100644
--- a/embassy-stm32/src/pac/stm32h743zg.rs
+++ b/embassy-stm32/src/pac/stm32h743zg.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h743zi.rs b/embassy-stm32/src/pac/stm32h743zi.rs
index ff0ce96d5..9fe2ac31d 100644
--- a/embassy-stm32/src/pac/stm32h743zi.rs
+++ b/embassy-stm32/src/pac/stm32h743zi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h745bg.rs b/embassy-stm32/src/pac/stm32h745bg.rs
index 21baa7355..0046f7c8b 100644
--- a/embassy-stm32/src/pac/stm32h745bg.rs
+++ b/embassy-stm32/src/pac/stm32h745bg.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h745bi.rs b/embassy-stm32/src/pac/stm32h745bi.rs
index 21baa7355..0046f7c8b 100644
--- a/embassy-stm32/src/pac/stm32h745bi.rs
+++ b/embassy-stm32/src/pac/stm32h745bi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h745ig.rs b/embassy-stm32/src/pac/stm32h745ig.rs
index 21baa7355..0046f7c8b 100644
--- a/embassy-stm32/src/pac/stm32h745ig.rs
+++ b/embassy-stm32/src/pac/stm32h745ig.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h745ii.rs b/embassy-stm32/src/pac/stm32h745ii.rs
index 21baa7355..0046f7c8b 100644
--- a/embassy-stm32/src/pac/stm32h745ii.rs
+++ b/embassy-stm32/src/pac/stm32h745ii.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h745xg.rs b/embassy-stm32/src/pac/stm32h745xg.rs
index 21baa7355..0046f7c8b 100644
--- a/embassy-stm32/src/pac/stm32h745xg.rs
+++ b/embassy-stm32/src/pac/stm32h745xg.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h745xi.rs b/embassy-stm32/src/pac/stm32h745xi.rs
index 21baa7355..0046f7c8b 100644
--- a/embassy-stm32/src/pac/stm32h745xi.rs
+++ b/embassy-stm32/src/pac/stm32h745xi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h745zg.rs b/embassy-stm32/src/pac/stm32h745zg.rs
index 21baa7355..0046f7c8b 100644
--- a/embassy-stm32/src/pac/stm32h745zg.rs
+++ b/embassy-stm32/src/pac/stm32h745zg.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h745zi.rs b/embassy-stm32/src/pac/stm32h745zi.rs
index 21baa7355..0046f7c8b 100644
--- a/embassy-stm32/src/pac/stm32h745zi.rs
+++ b/embassy-stm32/src/pac/stm32h745zi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h747ag.rs b/embassy-stm32/src/pac/stm32h747ag.rs
index 836d34bc9..6aaf81d53 100644
--- a/embassy-stm32/src/pac/stm32h747ag.rs
+++ b/embassy-stm32/src/pac/stm32h747ag.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h747ai.rs b/embassy-stm32/src/pac/stm32h747ai.rs
index 836d34bc9..6aaf81d53 100644
--- a/embassy-stm32/src/pac/stm32h747ai.rs
+++ b/embassy-stm32/src/pac/stm32h747ai.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h747bg.rs b/embassy-stm32/src/pac/stm32h747bg.rs
index 836d34bc9..6aaf81d53 100644
--- a/embassy-stm32/src/pac/stm32h747bg.rs
+++ b/embassy-stm32/src/pac/stm32h747bg.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h747bi.rs b/embassy-stm32/src/pac/stm32h747bi.rs
index 836d34bc9..6aaf81d53 100644
--- a/embassy-stm32/src/pac/stm32h747bi.rs
+++ b/embassy-stm32/src/pac/stm32h747bi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h747ig.rs b/embassy-stm32/src/pac/stm32h747ig.rs
index 836d34bc9..6aaf81d53 100644
--- a/embassy-stm32/src/pac/stm32h747ig.rs
+++ b/embassy-stm32/src/pac/stm32h747ig.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h747ii.rs b/embassy-stm32/src/pac/stm32h747ii.rs
index 836d34bc9..6aaf81d53 100644
--- a/embassy-stm32/src/pac/stm32h747ii.rs
+++ b/embassy-stm32/src/pac/stm32h747ii.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h747xg.rs b/embassy-stm32/src/pac/stm32h747xg.rs
index 836d34bc9..6aaf81d53 100644
--- a/embassy-stm32/src/pac/stm32h747xg.rs
+++ b/embassy-stm32/src/pac/stm32h747xg.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h747xi.rs b/embassy-stm32/src/pac/stm32h747xi.rs
index 836d34bc9..6aaf81d53 100644
--- a/embassy-stm32/src/pac/stm32h747xi.rs
+++ b/embassy-stm32/src/pac/stm32h747xi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h747zi.rs b/embassy-stm32/src/pac/stm32h747zi.rs
index 7eb311dbb..34b29684c 100644
--- a/embassy-stm32/src/pac/stm32h747zi.rs
+++ b/embassy-stm32/src/pac/stm32h747zi.rs
@@ -293,20 +293,20 @@ impl_spi_pin!(SPI4, MisoPin, PE5, 5);
293impl_spi_pin!(SPI4, MosiPin, PE6, 5); 293impl_spi_pin!(SPI4, MosiPin, PE6, 5);
294pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 294pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
295pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 295pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
296pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 296pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
297pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 297pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
298pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 298pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
299pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 299pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
300pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 300pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
301pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 301pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
302pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 302pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
303pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 303pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
304pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 304pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
305pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 305pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
306pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 306pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
307pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 307pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
308pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 308pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
309pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 309pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
310pub use super::regs::dbgmcu_h7 as dbgmcu; 310pub use super::regs::dbgmcu_h7 as dbgmcu;
311pub use super::regs::dma_v2 as dma; 311pub use super::regs::dma_v2 as dma;
312pub use super::regs::exti_v1 as exti; 312pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h750ib.rs b/embassy-stm32/src/pac/stm32h750ib.rs
index 3841e0a0c..b4b74d73c 100644
--- a/embassy-stm32/src/pac/stm32h750ib.rs
+++ b/embassy-stm32/src/pac/stm32h750ib.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h750vb.rs b/embassy-stm32/src/pac/stm32h750vb.rs
index cc150b599..18abcb5d7 100644
--- a/embassy-stm32/src/pac/stm32h750vb.rs
+++ b/embassy-stm32/src/pac/stm32h750vb.rs
@@ -293,20 +293,20 @@ impl_spi_pin!(SPI4, MisoPin, PE5, 5);
293impl_spi_pin!(SPI4, MosiPin, PE6, 5); 293impl_spi_pin!(SPI4, MosiPin, PE6, 5);
294pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 294pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
295pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 295pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
296pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 296pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
297pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 297pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
298pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 298pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
299pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 299pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
300pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 300pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
301pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 301pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
302pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 302pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
303pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 303pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
304pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 304pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
305pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 305pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
306pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 306pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
307pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 307pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
308pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 308pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
309pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 309pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
310pub use super::regs::dbgmcu_h7 as dbgmcu; 310pub use super::regs::dbgmcu_h7 as dbgmcu;
311pub use super::regs::dma_v2 as dma; 311pub use super::regs::dma_v2 as dma;
312pub use super::regs::exti_v1 as exti; 312pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h750xb.rs b/embassy-stm32/src/pac/stm32h750xb.rs
index 3841e0a0c..b4b74d73c 100644
--- a/embassy-stm32/src/pac/stm32h750xb.rs
+++ b/embassy-stm32/src/pac/stm32h750xb.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h750zb.rs b/embassy-stm32/src/pac/stm32h750zb.rs
index 3841e0a0c..b4b74d73c 100644
--- a/embassy-stm32/src/pac/stm32h750zb.rs
+++ b/embassy-stm32/src/pac/stm32h750zb.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h753ai.rs b/embassy-stm32/src/pac/stm32h753ai.rs
index 3841e0a0c..b4b74d73c 100644
--- a/embassy-stm32/src/pac/stm32h753ai.rs
+++ b/embassy-stm32/src/pac/stm32h753ai.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h753bi.rs b/embassy-stm32/src/pac/stm32h753bi.rs
index 3841e0a0c..b4b74d73c 100644
--- a/embassy-stm32/src/pac/stm32h753bi.rs
+++ b/embassy-stm32/src/pac/stm32h753bi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h753ii.rs b/embassy-stm32/src/pac/stm32h753ii.rs
index 3841e0a0c..b4b74d73c 100644
--- a/embassy-stm32/src/pac/stm32h753ii.rs
+++ b/embassy-stm32/src/pac/stm32h753ii.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h753vi.rs b/embassy-stm32/src/pac/stm32h753vi.rs
index cc150b599..18abcb5d7 100644
--- a/embassy-stm32/src/pac/stm32h753vi.rs
+++ b/embassy-stm32/src/pac/stm32h753vi.rs
@@ -293,20 +293,20 @@ impl_spi_pin!(SPI4, MisoPin, PE5, 5);
293impl_spi_pin!(SPI4, MosiPin, PE6, 5); 293impl_spi_pin!(SPI4, MosiPin, PE6, 5);
294pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 294pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
295pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 295pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
296pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 296pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
297pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 297pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
298pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 298pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
299pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 299pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
300pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 300pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
301pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 301pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
302pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 302pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
303pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 303pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
304pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 304pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
305pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 305pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
306pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 306pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
307pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 307pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
308pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 308pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
309pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 309pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
310pub use super::regs::dbgmcu_h7 as dbgmcu; 310pub use super::regs::dbgmcu_h7 as dbgmcu;
311pub use super::regs::dma_v2 as dma; 311pub use super::regs::dma_v2 as dma;
312pub use super::regs::exti_v1 as exti; 312pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h753xi.rs b/embassy-stm32/src/pac/stm32h753xi.rs
index 3841e0a0c..b4b74d73c 100644
--- a/embassy-stm32/src/pac/stm32h753xi.rs
+++ b/embassy-stm32/src/pac/stm32h753xi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h753zi.rs b/embassy-stm32/src/pac/stm32h753zi.rs
index 3841e0a0c..b4b74d73c 100644
--- a/embassy-stm32/src/pac/stm32h753zi.rs
+++ b/embassy-stm32/src/pac/stm32h753zi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h755bi.rs b/embassy-stm32/src/pac/stm32h755bi.rs
index 0f318b34b..43609a48c 100644
--- a/embassy-stm32/src/pac/stm32h755bi.rs
+++ b/embassy-stm32/src/pac/stm32h755bi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h755ii.rs b/embassy-stm32/src/pac/stm32h755ii.rs
index 0f318b34b..43609a48c 100644
--- a/embassy-stm32/src/pac/stm32h755ii.rs
+++ b/embassy-stm32/src/pac/stm32h755ii.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h755xi.rs b/embassy-stm32/src/pac/stm32h755xi.rs
index 0f318b34b..43609a48c 100644
--- a/embassy-stm32/src/pac/stm32h755xi.rs
+++ b/embassy-stm32/src/pac/stm32h755xi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h755zi.rs b/embassy-stm32/src/pac/stm32h755zi.rs
index 0f318b34b..43609a48c 100644
--- a/embassy-stm32/src/pac/stm32h755zi.rs
+++ b/embassy-stm32/src/pac/stm32h755zi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h757ai.rs b/embassy-stm32/src/pac/stm32h757ai.rs
index b645ce26d..8a66fdb8a 100644
--- a/embassy-stm32/src/pac/stm32h757ai.rs
+++ b/embassy-stm32/src/pac/stm32h757ai.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h757bi.rs b/embassy-stm32/src/pac/stm32h757bi.rs
index b645ce26d..8a66fdb8a 100644
--- a/embassy-stm32/src/pac/stm32h757bi.rs
+++ b/embassy-stm32/src/pac/stm32h757bi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h757ii.rs b/embassy-stm32/src/pac/stm32h757ii.rs
index b645ce26d..8a66fdb8a 100644
--- a/embassy-stm32/src/pac/stm32h757ii.rs
+++ b/embassy-stm32/src/pac/stm32h757ii.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h757xi.rs b/embassy-stm32/src/pac/stm32h757xi.rs
index b645ce26d..8a66fdb8a 100644
--- a/embassy-stm32/src/pac/stm32h757xi.rs
+++ b/embassy-stm32/src/pac/stm32h757xi.rs
@@ -304,20 +304,20 @@ impl_spi_pin!(SPI5, MisoPin, PJ11, 5);
304impl_spi_pin!(SPI5, SckPin, PK0, 5); 304impl_spi_pin!(SPI5, SckPin, PK0, 5);
305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 305pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 306pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
307pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 307pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
308pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 308pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
309pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 309pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
310pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 310pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
311pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 311pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
312pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 312pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
313pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 313pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
314pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 314pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
315pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 315pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
316pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 316pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
317pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 317pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
318pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 318pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
319pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 319pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
320pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 320pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
321pub use super::regs::dbgmcu_h7 as dbgmcu; 321pub use super::regs::dbgmcu_h7 as dbgmcu;
322pub use super::regs::dma_v2 as dma; 322pub use super::regs::dma_v2 as dma;
323pub use super::regs::exti_v1 as exti; 323pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h757zi.rs b/embassy-stm32/src/pac/stm32h757zi.rs
index 73e59f4d9..a63a12b74 100644
--- a/embassy-stm32/src/pac/stm32h757zi.rs
+++ b/embassy-stm32/src/pac/stm32h757zi.rs
@@ -293,20 +293,20 @@ impl_spi_pin!(SPI4, MisoPin, PE5, 5);
293impl_spi_pin!(SPI4, MosiPin, PE6, 5); 293impl_spi_pin!(SPI4, MosiPin, PE6, 5);
294pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _); 294pub const SPI6: spi::Spi = spi::Spi(0x58001400 as _);
295pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 295pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
296pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 296pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
297pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 297pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
298pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 298pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
299pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 299pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
300pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 300pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
301pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 301pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
302pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 302pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
303pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 303pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
304pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 304pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
305pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 305pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
306pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 306pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
307pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 307pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
308pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 308pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
309pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 309pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
310pub use super::regs::dbgmcu_h7 as dbgmcu; 310pub use super::regs::dbgmcu_h7 as dbgmcu;
311pub use super::regs::dma_v2 as dma; 311pub use super::regs::dma_v2 as dma;
312pub use super::regs::exti_v1 as exti; 312pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7a3ag.rs b/embassy-stm32/src/pac/stm32h7a3ag.rs
index 88d827875..84068029c 100644
--- a/embassy-stm32/src/pac/stm32h7a3ag.rs
+++ b/embassy-stm32/src/pac/stm32h7a3ag.rs
@@ -321,20 +321,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
321impl_spi_pin!(SPI6, SckPin, PG13, 5); 321impl_spi_pin!(SPI6, SckPin, PG13, 5);
322impl_spi_pin!(SPI6, MosiPin, PG14, 5); 322impl_spi_pin!(SPI6, MosiPin, PG14, 5);
323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
324pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 324pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
325pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 325pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
326pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 326pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
327pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 327pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
328pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 328pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
329pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 329pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
330pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 330pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
331pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 331pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
332pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 332pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
333pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 333pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
334pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 334pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
335pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 335pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
336pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 336pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
337pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 337pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
338pub use super::regs::dbgmcu_h7 as dbgmcu; 338pub use super::regs::dbgmcu_h7 as dbgmcu;
339pub use super::regs::dma_v2 as dma; 339pub use super::regs::dma_v2 as dma;
340pub use super::regs::exti_v1 as exti; 340pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7a3ai.rs b/embassy-stm32/src/pac/stm32h7a3ai.rs
index 88d827875..84068029c 100644
--- a/embassy-stm32/src/pac/stm32h7a3ai.rs
+++ b/embassy-stm32/src/pac/stm32h7a3ai.rs
@@ -321,20 +321,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
321impl_spi_pin!(SPI6, SckPin, PG13, 5); 321impl_spi_pin!(SPI6, SckPin, PG13, 5);
322impl_spi_pin!(SPI6, MosiPin, PG14, 5); 322impl_spi_pin!(SPI6, MosiPin, PG14, 5);
323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
324pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 324pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
325pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 325pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
326pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 326pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
327pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 327pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
328pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 328pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
329pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 329pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
330pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 330pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
331pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 331pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
332pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 332pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
333pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 333pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
334pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 334pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
335pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 335pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
336pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 336pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
337pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 337pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
338pub use super::regs::dbgmcu_h7 as dbgmcu; 338pub use super::regs::dbgmcu_h7 as dbgmcu;
339pub use super::regs::dma_v2 as dma; 339pub use super::regs::dma_v2 as dma;
340pub use super::regs::exti_v1 as exti; 340pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7a3ig.rs b/embassy-stm32/src/pac/stm32h7a3ig.rs
index 88d827875..84068029c 100644
--- a/embassy-stm32/src/pac/stm32h7a3ig.rs
+++ b/embassy-stm32/src/pac/stm32h7a3ig.rs
@@ -321,20 +321,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
321impl_spi_pin!(SPI6, SckPin, PG13, 5); 321impl_spi_pin!(SPI6, SckPin, PG13, 5);
322impl_spi_pin!(SPI6, MosiPin, PG14, 5); 322impl_spi_pin!(SPI6, MosiPin, PG14, 5);
323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
324pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 324pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
325pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 325pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
326pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 326pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
327pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 327pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
328pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 328pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
329pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 329pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
330pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 330pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
331pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 331pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
332pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 332pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
333pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 333pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
334pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 334pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
335pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 335pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
336pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 336pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
337pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 337pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
338pub use super::regs::dbgmcu_h7 as dbgmcu; 338pub use super::regs::dbgmcu_h7 as dbgmcu;
339pub use super::regs::dma_v2 as dma; 339pub use super::regs::dma_v2 as dma;
340pub use super::regs::exti_v1 as exti; 340pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7a3ii.rs b/embassy-stm32/src/pac/stm32h7a3ii.rs
index 88d827875..84068029c 100644
--- a/embassy-stm32/src/pac/stm32h7a3ii.rs
+++ b/embassy-stm32/src/pac/stm32h7a3ii.rs
@@ -321,20 +321,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
321impl_spi_pin!(SPI6, SckPin, PG13, 5); 321impl_spi_pin!(SPI6, SckPin, PG13, 5);
322impl_spi_pin!(SPI6, MosiPin, PG14, 5); 322impl_spi_pin!(SPI6, MosiPin, PG14, 5);
323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
324pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 324pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
325pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 325pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
326pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 326pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
327pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 327pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
328pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 328pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
329pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 329pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
330pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 330pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
331pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 331pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
332pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 332pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
333pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 333pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
334pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 334pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
335pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 335pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
336pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 336pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
337pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 337pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
338pub use super::regs::dbgmcu_h7 as dbgmcu; 338pub use super::regs::dbgmcu_h7 as dbgmcu;
339pub use super::regs::dma_v2 as dma; 339pub use super::regs::dma_v2 as dma;
340pub use super::regs::exti_v1 as exti; 340pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7a3lg.rs b/embassy-stm32/src/pac/stm32h7a3lg.rs
index 88d827875..84068029c 100644
--- a/embassy-stm32/src/pac/stm32h7a3lg.rs
+++ b/embassy-stm32/src/pac/stm32h7a3lg.rs
@@ -321,20 +321,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
321impl_spi_pin!(SPI6, SckPin, PG13, 5); 321impl_spi_pin!(SPI6, SckPin, PG13, 5);
322impl_spi_pin!(SPI6, MosiPin, PG14, 5); 322impl_spi_pin!(SPI6, MosiPin, PG14, 5);
323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
324pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 324pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
325pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 325pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
326pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 326pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
327pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 327pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
328pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 328pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
329pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 329pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
330pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 330pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
331pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 331pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
332pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 332pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
333pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 333pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
334pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 334pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
335pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 335pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
336pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 336pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
337pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 337pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
338pub use super::regs::dbgmcu_h7 as dbgmcu; 338pub use super::regs::dbgmcu_h7 as dbgmcu;
339pub use super::regs::dma_v2 as dma; 339pub use super::regs::dma_v2 as dma;
340pub use super::regs::exti_v1 as exti; 340pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7a3li.rs b/embassy-stm32/src/pac/stm32h7a3li.rs
index 88d827875..84068029c 100644
--- a/embassy-stm32/src/pac/stm32h7a3li.rs
+++ b/embassy-stm32/src/pac/stm32h7a3li.rs
@@ -321,20 +321,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
321impl_spi_pin!(SPI6, SckPin, PG13, 5); 321impl_spi_pin!(SPI6, SckPin, PG13, 5);
322impl_spi_pin!(SPI6, MosiPin, PG14, 5); 322impl_spi_pin!(SPI6, MosiPin, PG14, 5);
323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
324pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 324pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
325pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 325pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
326pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 326pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
327pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 327pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
328pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 328pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
329pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 329pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
330pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 330pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
331pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 331pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
332pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 332pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
333pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 333pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
334pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 334pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
335pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 335pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
336pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 336pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
337pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 337pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
338pub use super::regs::dbgmcu_h7 as dbgmcu; 338pub use super::regs::dbgmcu_h7 as dbgmcu;
339pub use super::regs::dma_v2 as dma; 339pub use super::regs::dma_v2 as dma;
340pub use super::regs::exti_v1 as exti; 340pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7a3ng.rs b/embassy-stm32/src/pac/stm32h7a3ng.rs
index 88d827875..84068029c 100644
--- a/embassy-stm32/src/pac/stm32h7a3ng.rs
+++ b/embassy-stm32/src/pac/stm32h7a3ng.rs
@@ -321,20 +321,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
321impl_spi_pin!(SPI6, SckPin, PG13, 5); 321impl_spi_pin!(SPI6, SckPin, PG13, 5);
322impl_spi_pin!(SPI6, MosiPin, PG14, 5); 322impl_spi_pin!(SPI6, MosiPin, PG14, 5);
323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
324pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 324pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
325pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 325pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
326pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 326pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
327pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 327pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
328pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 328pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
329pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 329pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
330pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 330pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
331pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 331pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
332pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 332pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
333pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 333pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
334pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 334pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
335pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 335pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
336pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 336pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
337pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 337pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
338pub use super::regs::dbgmcu_h7 as dbgmcu; 338pub use super::regs::dbgmcu_h7 as dbgmcu;
339pub use super::regs::dma_v2 as dma; 339pub use super::regs::dma_v2 as dma;
340pub use super::regs::exti_v1 as exti; 340pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7a3ni.rs b/embassy-stm32/src/pac/stm32h7a3ni.rs
index 88d827875..84068029c 100644
--- a/embassy-stm32/src/pac/stm32h7a3ni.rs
+++ b/embassy-stm32/src/pac/stm32h7a3ni.rs
@@ -321,20 +321,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
321impl_spi_pin!(SPI6, SckPin, PG13, 5); 321impl_spi_pin!(SPI6, SckPin, PG13, 5);
322impl_spi_pin!(SPI6, MosiPin, PG14, 5); 322impl_spi_pin!(SPI6, MosiPin, PG14, 5);
323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
324pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 324pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
325pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 325pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
326pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 326pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
327pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 327pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
328pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 328pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
329pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 329pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
330pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 330pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
331pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 331pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
332pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 332pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
333pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 333pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
334pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 334pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
335pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 335pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
336pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 336pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
337pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 337pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
338pub use super::regs::dbgmcu_h7 as dbgmcu; 338pub use super::regs::dbgmcu_h7 as dbgmcu;
339pub use super::regs::dma_v2 as dma; 339pub use super::regs::dma_v2 as dma;
340pub use super::regs::exti_v1 as exti; 340pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7a3qi.rs b/embassy-stm32/src/pac/stm32h7a3qi.rs
index 755fb5bc1..f31b0bd77 100644
--- a/embassy-stm32/src/pac/stm32h7a3qi.rs
+++ b/embassy-stm32/src/pac/stm32h7a3qi.rs
@@ -310,20 +310,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
310impl_spi_pin!(SPI6, SckPin, PG13, 5); 310impl_spi_pin!(SPI6, SckPin, PG13, 5);
311impl_spi_pin!(SPI6, MosiPin, PG14, 5); 311impl_spi_pin!(SPI6, MosiPin, PG14, 5);
312pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 312pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
313pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 313pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
314pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 314pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
315pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 315pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
316pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 316pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
317pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 317pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
318pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 318pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
319pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 319pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
320pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 320pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
321pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 321pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
322pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 322pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
323pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 323pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
324pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 324pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
325pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 325pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
326pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 326pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
327pub use super::regs::dbgmcu_h7 as dbgmcu; 327pub use super::regs::dbgmcu_h7 as dbgmcu;
328pub use super::regs::dma_v2 as dma; 328pub use super::regs::dma_v2 as dma;
329pub use super::regs::exti_v1 as exti; 329pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7a3rg.rs b/embassy-stm32/src/pac/stm32h7a3rg.rs
index 91376f8f2..1e44f955f 100644
--- a/embassy-stm32/src/pac/stm32h7a3rg.rs
+++ b/embassy-stm32/src/pac/stm32h7a3rg.rs
@@ -301,20 +301,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
301impl_spi_pin!(SPI6, SckPin, PG13, 5); 301impl_spi_pin!(SPI6, SckPin, PG13, 5);
302impl_spi_pin!(SPI6, MosiPin, PG14, 5); 302impl_spi_pin!(SPI6, MosiPin, PG14, 5);
303pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 303pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
304pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 304pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
305pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 305pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
306pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 306pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
307pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 307pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
308pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 308pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
309pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 309pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
310pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 310pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
311pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 311pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
312pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 312pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
313pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 313pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
314pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 314pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
315pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 315pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
316pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 316pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
317pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 317pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
318pub use super::regs::dbgmcu_h7 as dbgmcu; 318pub use super::regs::dbgmcu_h7 as dbgmcu;
319pub use super::regs::dma_v2 as dma; 319pub use super::regs::dma_v2 as dma;
320pub use super::regs::exti_v1 as exti; 320pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7a3ri.rs b/embassy-stm32/src/pac/stm32h7a3ri.rs
index 91376f8f2..1e44f955f 100644
--- a/embassy-stm32/src/pac/stm32h7a3ri.rs
+++ b/embassy-stm32/src/pac/stm32h7a3ri.rs
@@ -301,20 +301,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
301impl_spi_pin!(SPI6, SckPin, PG13, 5); 301impl_spi_pin!(SPI6, SckPin, PG13, 5);
302impl_spi_pin!(SPI6, MosiPin, PG14, 5); 302impl_spi_pin!(SPI6, MosiPin, PG14, 5);
303pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 303pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
304pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 304pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
305pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 305pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
306pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 306pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
307pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 307pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
308pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 308pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
309pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 309pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
310pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 310pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
311pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 311pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
312pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 312pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
313pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 313pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
314pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 314pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
315pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 315pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
316pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 316pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
317pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 317pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
318pub use super::regs::dbgmcu_h7 as dbgmcu; 318pub use super::regs::dbgmcu_h7 as dbgmcu;
319pub use super::regs::dma_v2 as dma; 319pub use super::regs::dma_v2 as dma;
320pub use super::regs::exti_v1 as exti; 320pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7a3vg.rs b/embassy-stm32/src/pac/stm32h7a3vg.rs
index 755fb5bc1..f31b0bd77 100644
--- a/embassy-stm32/src/pac/stm32h7a3vg.rs
+++ b/embassy-stm32/src/pac/stm32h7a3vg.rs
@@ -310,20 +310,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
310impl_spi_pin!(SPI6, SckPin, PG13, 5); 310impl_spi_pin!(SPI6, SckPin, PG13, 5);
311impl_spi_pin!(SPI6, MosiPin, PG14, 5); 311impl_spi_pin!(SPI6, MosiPin, PG14, 5);
312pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 312pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
313pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 313pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
314pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 314pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
315pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 315pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
316pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 316pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
317pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 317pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
318pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 318pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
319pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 319pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
320pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 320pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
321pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 321pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
322pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 322pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
323pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 323pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
324pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 324pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
325pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 325pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
326pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 326pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
327pub use super::regs::dbgmcu_h7 as dbgmcu; 327pub use super::regs::dbgmcu_h7 as dbgmcu;
328pub use super::regs::dma_v2 as dma; 328pub use super::regs::dma_v2 as dma;
329pub use super::regs::exti_v1 as exti; 329pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7a3vi.rs b/embassy-stm32/src/pac/stm32h7a3vi.rs
index 755fb5bc1..f31b0bd77 100644
--- a/embassy-stm32/src/pac/stm32h7a3vi.rs
+++ b/embassy-stm32/src/pac/stm32h7a3vi.rs
@@ -310,20 +310,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
310impl_spi_pin!(SPI6, SckPin, PG13, 5); 310impl_spi_pin!(SPI6, SckPin, PG13, 5);
311impl_spi_pin!(SPI6, MosiPin, PG14, 5); 311impl_spi_pin!(SPI6, MosiPin, PG14, 5);
312pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 312pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
313pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 313pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
314pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 314pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
315pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 315pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
316pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 316pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
317pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 317pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
318pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 318pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
319pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 319pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
320pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 320pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
321pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 321pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
322pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 322pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
323pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 323pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
324pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 324pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
325pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 325pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
326pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 326pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
327pub use super::regs::dbgmcu_h7 as dbgmcu; 327pub use super::regs::dbgmcu_h7 as dbgmcu;
328pub use super::regs::dma_v2 as dma; 328pub use super::regs::dma_v2 as dma;
329pub use super::regs::exti_v1 as exti; 329pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7a3zg.rs b/embassy-stm32/src/pac/stm32h7a3zg.rs
index 88d827875..84068029c 100644
--- a/embassy-stm32/src/pac/stm32h7a3zg.rs
+++ b/embassy-stm32/src/pac/stm32h7a3zg.rs
@@ -321,20 +321,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
321impl_spi_pin!(SPI6, SckPin, PG13, 5); 321impl_spi_pin!(SPI6, SckPin, PG13, 5);
322impl_spi_pin!(SPI6, MosiPin, PG14, 5); 322impl_spi_pin!(SPI6, MosiPin, PG14, 5);
323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
324pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 324pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
325pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 325pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
326pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 326pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
327pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 327pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
328pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 328pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
329pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 329pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
330pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 330pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
331pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 331pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
332pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 332pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
333pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 333pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
334pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 334pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
335pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 335pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
336pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 336pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
337pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 337pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
338pub use super::regs::dbgmcu_h7 as dbgmcu; 338pub use super::regs::dbgmcu_h7 as dbgmcu;
339pub use super::regs::dma_v2 as dma; 339pub use super::regs::dma_v2 as dma;
340pub use super::regs::exti_v1 as exti; 340pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7a3zi.rs b/embassy-stm32/src/pac/stm32h7a3zi.rs
index 88d827875..84068029c 100644
--- a/embassy-stm32/src/pac/stm32h7a3zi.rs
+++ b/embassy-stm32/src/pac/stm32h7a3zi.rs
@@ -321,20 +321,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
321impl_spi_pin!(SPI6, SckPin, PG13, 5); 321impl_spi_pin!(SPI6, SckPin, PG13, 5);
322impl_spi_pin!(SPI6, MosiPin, PG14, 5); 322impl_spi_pin!(SPI6, MosiPin, PG14, 5);
323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
324pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 324pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
325pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 325pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
326pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 326pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
327pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 327pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
328pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 328pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
329pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 329pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
330pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 330pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
331pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 331pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
332pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 332pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
333pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 333pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
334pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 334pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
335pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 335pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
336pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 336pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
337pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 337pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
338pub use super::regs::dbgmcu_h7 as dbgmcu; 338pub use super::regs::dbgmcu_h7 as dbgmcu;
339pub use super::regs::dma_v2 as dma; 339pub use super::regs::dma_v2 as dma;
340pub use super::regs::exti_v1 as exti; 340pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7b0ab.rs b/embassy-stm32/src/pac/stm32h7b0ab.rs
index 2e7400b4d..9c2bd1275 100644
--- a/embassy-stm32/src/pac/stm32h7b0ab.rs
+++ b/embassy-stm32/src/pac/stm32h7b0ab.rs
@@ -321,20 +321,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
321impl_spi_pin!(SPI6, SckPin, PG13, 5); 321impl_spi_pin!(SPI6, SckPin, PG13, 5);
322impl_spi_pin!(SPI6, MosiPin, PG14, 5); 322impl_spi_pin!(SPI6, MosiPin, PG14, 5);
323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
324pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 324pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
325pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 325pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
326pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 326pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
327pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 327pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
328pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 328pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
329pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 329pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
330pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 330pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
331pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 331pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
332pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 332pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
333pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 333pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
334pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 334pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
335pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 335pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
336pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 336pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
337pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 337pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
338pub use super::regs::dbgmcu_h7 as dbgmcu; 338pub use super::regs::dbgmcu_h7 as dbgmcu;
339pub use super::regs::dma_v2 as dma; 339pub use super::regs::dma_v2 as dma;
340pub use super::regs::exti_v1 as exti; 340pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7b0ib.rs b/embassy-stm32/src/pac/stm32h7b0ib.rs
index 2e7400b4d..9c2bd1275 100644
--- a/embassy-stm32/src/pac/stm32h7b0ib.rs
+++ b/embassy-stm32/src/pac/stm32h7b0ib.rs
@@ -321,20 +321,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
321impl_spi_pin!(SPI6, SckPin, PG13, 5); 321impl_spi_pin!(SPI6, SckPin, PG13, 5);
322impl_spi_pin!(SPI6, MosiPin, PG14, 5); 322impl_spi_pin!(SPI6, MosiPin, PG14, 5);
323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
324pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 324pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
325pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 325pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
326pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 326pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
327pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 327pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
328pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 328pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
329pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 329pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
330pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 330pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
331pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 331pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
332pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 332pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
333pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 333pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
334pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 334pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
335pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 335pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
336pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 336pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
337pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 337pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
338pub use super::regs::dbgmcu_h7 as dbgmcu; 338pub use super::regs::dbgmcu_h7 as dbgmcu;
339pub use super::regs::dma_v2 as dma; 339pub use super::regs::dma_v2 as dma;
340pub use super::regs::exti_v1 as exti; 340pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7b0rb.rs b/embassy-stm32/src/pac/stm32h7b0rb.rs
index 1eb43a8cf..e323f8164 100644
--- a/embassy-stm32/src/pac/stm32h7b0rb.rs
+++ b/embassy-stm32/src/pac/stm32h7b0rb.rs
@@ -301,20 +301,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
301impl_spi_pin!(SPI6, SckPin, PG13, 5); 301impl_spi_pin!(SPI6, SckPin, PG13, 5);
302impl_spi_pin!(SPI6, MosiPin, PG14, 5); 302impl_spi_pin!(SPI6, MosiPin, PG14, 5);
303pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 303pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
304pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 304pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
305pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 305pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
306pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 306pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
307pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 307pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
308pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 308pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
309pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 309pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
310pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 310pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
311pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 311pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
312pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 312pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
313pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 313pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
314pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 314pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
315pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 315pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
316pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 316pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
317pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 317pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
318pub use super::regs::dbgmcu_h7 as dbgmcu; 318pub use super::regs::dbgmcu_h7 as dbgmcu;
319pub use super::regs::dma_v2 as dma; 319pub use super::regs::dma_v2 as dma;
320pub use super::regs::exti_v1 as exti; 320pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7b0vb.rs b/embassy-stm32/src/pac/stm32h7b0vb.rs
index a226fe7fc..0fa2b45ad 100644
--- a/embassy-stm32/src/pac/stm32h7b0vb.rs
+++ b/embassy-stm32/src/pac/stm32h7b0vb.rs
@@ -310,20 +310,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
310impl_spi_pin!(SPI6, SckPin, PG13, 5); 310impl_spi_pin!(SPI6, SckPin, PG13, 5);
311impl_spi_pin!(SPI6, MosiPin, PG14, 5); 311impl_spi_pin!(SPI6, MosiPin, PG14, 5);
312pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 312pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
313pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 313pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
314pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 314pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
315pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 315pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
316pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 316pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
317pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 317pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
318pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 318pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
319pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 319pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
320pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 320pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
321pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 321pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
322pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 322pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
323pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 323pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
324pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 324pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
325pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 325pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
326pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 326pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
327pub use super::regs::dbgmcu_h7 as dbgmcu; 327pub use super::regs::dbgmcu_h7 as dbgmcu;
328pub use super::regs::dma_v2 as dma; 328pub use super::regs::dma_v2 as dma;
329pub use super::regs::exti_v1 as exti; 329pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7b0zb.rs b/embassy-stm32/src/pac/stm32h7b0zb.rs
index 2e7400b4d..9c2bd1275 100644
--- a/embassy-stm32/src/pac/stm32h7b0zb.rs
+++ b/embassy-stm32/src/pac/stm32h7b0zb.rs
@@ -321,20 +321,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
321impl_spi_pin!(SPI6, SckPin, PG13, 5); 321impl_spi_pin!(SPI6, SckPin, PG13, 5);
322impl_spi_pin!(SPI6, MosiPin, PG14, 5); 322impl_spi_pin!(SPI6, MosiPin, PG14, 5);
323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
324pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 324pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
325pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 325pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
326pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 326pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
327pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 327pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
328pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 328pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
329pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 329pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
330pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 330pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
331pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 331pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
332pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 332pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
333pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 333pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
334pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 334pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
335pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 335pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
336pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 336pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
337pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 337pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
338pub use super::regs::dbgmcu_h7 as dbgmcu; 338pub use super::regs::dbgmcu_h7 as dbgmcu;
339pub use super::regs::dma_v2 as dma; 339pub use super::regs::dma_v2 as dma;
340pub use super::regs::exti_v1 as exti; 340pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7b3ai.rs b/embassy-stm32/src/pac/stm32h7b3ai.rs
index 2e7400b4d..9c2bd1275 100644
--- a/embassy-stm32/src/pac/stm32h7b3ai.rs
+++ b/embassy-stm32/src/pac/stm32h7b3ai.rs
@@ -321,20 +321,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
321impl_spi_pin!(SPI6, SckPin, PG13, 5); 321impl_spi_pin!(SPI6, SckPin, PG13, 5);
322impl_spi_pin!(SPI6, MosiPin, PG14, 5); 322impl_spi_pin!(SPI6, MosiPin, PG14, 5);
323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
324pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 324pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
325pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 325pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
326pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 326pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
327pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 327pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
328pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 328pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
329pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 329pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
330pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 330pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
331pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 331pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
332pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 332pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
333pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 333pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
334pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 334pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
335pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 335pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
336pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 336pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
337pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 337pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
338pub use super::regs::dbgmcu_h7 as dbgmcu; 338pub use super::regs::dbgmcu_h7 as dbgmcu;
339pub use super::regs::dma_v2 as dma; 339pub use super::regs::dma_v2 as dma;
340pub use super::regs::exti_v1 as exti; 340pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7b3ii.rs b/embassy-stm32/src/pac/stm32h7b3ii.rs
index 2e7400b4d..9c2bd1275 100644
--- a/embassy-stm32/src/pac/stm32h7b3ii.rs
+++ b/embassy-stm32/src/pac/stm32h7b3ii.rs
@@ -321,20 +321,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
321impl_spi_pin!(SPI6, SckPin, PG13, 5); 321impl_spi_pin!(SPI6, SckPin, PG13, 5);
322impl_spi_pin!(SPI6, MosiPin, PG14, 5); 322impl_spi_pin!(SPI6, MosiPin, PG14, 5);
323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
324pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 324pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
325pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 325pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
326pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 326pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
327pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 327pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
328pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 328pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
329pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 329pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
330pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 330pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
331pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 331pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
332pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 332pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
333pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 333pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
334pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 334pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
335pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 335pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
336pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 336pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
337pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 337pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
338pub use super::regs::dbgmcu_h7 as dbgmcu; 338pub use super::regs::dbgmcu_h7 as dbgmcu;
339pub use super::regs::dma_v2 as dma; 339pub use super::regs::dma_v2 as dma;
340pub use super::regs::exti_v1 as exti; 340pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7b3li.rs b/embassy-stm32/src/pac/stm32h7b3li.rs
index 2e7400b4d..9c2bd1275 100644
--- a/embassy-stm32/src/pac/stm32h7b3li.rs
+++ b/embassy-stm32/src/pac/stm32h7b3li.rs
@@ -321,20 +321,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
321impl_spi_pin!(SPI6, SckPin, PG13, 5); 321impl_spi_pin!(SPI6, SckPin, PG13, 5);
322impl_spi_pin!(SPI6, MosiPin, PG14, 5); 322impl_spi_pin!(SPI6, MosiPin, PG14, 5);
323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
324pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 324pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
325pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 325pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
326pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 326pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
327pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 327pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
328pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 328pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
329pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 329pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
330pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 330pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
331pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 331pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
332pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 332pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
333pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 333pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
334pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 334pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
335pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 335pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
336pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 336pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
337pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 337pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
338pub use super::regs::dbgmcu_h7 as dbgmcu; 338pub use super::regs::dbgmcu_h7 as dbgmcu;
339pub use super::regs::dma_v2 as dma; 339pub use super::regs::dma_v2 as dma;
340pub use super::regs::exti_v1 as exti; 340pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7b3ni.rs b/embassy-stm32/src/pac/stm32h7b3ni.rs
index 2e7400b4d..9c2bd1275 100644
--- a/embassy-stm32/src/pac/stm32h7b3ni.rs
+++ b/embassy-stm32/src/pac/stm32h7b3ni.rs
@@ -321,20 +321,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
321impl_spi_pin!(SPI6, SckPin, PG13, 5); 321impl_spi_pin!(SPI6, SckPin, PG13, 5);
322impl_spi_pin!(SPI6, MosiPin, PG14, 5); 322impl_spi_pin!(SPI6, MosiPin, PG14, 5);
323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
324pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 324pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
325pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 325pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
326pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 326pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
327pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 327pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
328pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 328pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
329pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 329pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
330pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 330pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
331pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 331pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
332pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 332pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
333pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 333pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
334pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 334pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
335pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 335pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
336pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 336pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
337pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 337pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
338pub use super::regs::dbgmcu_h7 as dbgmcu; 338pub use super::regs::dbgmcu_h7 as dbgmcu;
339pub use super::regs::dma_v2 as dma; 339pub use super::regs::dma_v2 as dma;
340pub use super::regs::exti_v1 as exti; 340pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7b3qi.rs b/embassy-stm32/src/pac/stm32h7b3qi.rs
index a226fe7fc..0fa2b45ad 100644
--- a/embassy-stm32/src/pac/stm32h7b3qi.rs
+++ b/embassy-stm32/src/pac/stm32h7b3qi.rs
@@ -310,20 +310,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
310impl_spi_pin!(SPI6, SckPin, PG13, 5); 310impl_spi_pin!(SPI6, SckPin, PG13, 5);
311impl_spi_pin!(SPI6, MosiPin, PG14, 5); 311impl_spi_pin!(SPI6, MosiPin, PG14, 5);
312pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 312pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
313pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 313pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
314pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 314pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
315pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 315pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
316pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 316pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
317pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 317pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
318pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 318pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
319pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 319pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
320pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 320pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
321pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 321pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
322pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 322pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
323pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 323pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
324pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 324pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
325pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 325pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
326pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 326pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
327pub use super::regs::dbgmcu_h7 as dbgmcu; 327pub use super::regs::dbgmcu_h7 as dbgmcu;
328pub use super::regs::dma_v2 as dma; 328pub use super::regs::dma_v2 as dma;
329pub use super::regs::exti_v1 as exti; 329pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7b3ri.rs b/embassy-stm32/src/pac/stm32h7b3ri.rs
index 1eb43a8cf..e323f8164 100644
--- a/embassy-stm32/src/pac/stm32h7b3ri.rs
+++ b/embassy-stm32/src/pac/stm32h7b3ri.rs
@@ -301,20 +301,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
301impl_spi_pin!(SPI6, SckPin, PG13, 5); 301impl_spi_pin!(SPI6, SckPin, PG13, 5);
302impl_spi_pin!(SPI6, MosiPin, PG14, 5); 302impl_spi_pin!(SPI6, MosiPin, PG14, 5);
303pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 303pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
304pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 304pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
305pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 305pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
306pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 306pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
307pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 307pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
308pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 308pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
309pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 309pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
310pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 310pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
311pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 311pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
312pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 312pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
313pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 313pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
314pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 314pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
315pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 315pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
316pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 316pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
317pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 317pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
318pub use super::regs::dbgmcu_h7 as dbgmcu; 318pub use super::regs::dbgmcu_h7 as dbgmcu;
319pub use super::regs::dma_v2 as dma; 319pub use super::regs::dma_v2 as dma;
320pub use super::regs::exti_v1 as exti; 320pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7b3vi.rs b/embassy-stm32/src/pac/stm32h7b3vi.rs
index a226fe7fc..0fa2b45ad 100644
--- a/embassy-stm32/src/pac/stm32h7b3vi.rs
+++ b/embassy-stm32/src/pac/stm32h7b3vi.rs
@@ -310,20 +310,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
310impl_spi_pin!(SPI6, SckPin, PG13, 5); 310impl_spi_pin!(SPI6, SckPin, PG13, 5);
311impl_spi_pin!(SPI6, MosiPin, PG14, 5); 311impl_spi_pin!(SPI6, MosiPin, PG14, 5);
312pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 312pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
313pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 313pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
314pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 314pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
315pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 315pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
316pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 316pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
317pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 317pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
318pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 318pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
319pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 319pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
320pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 320pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
321pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 321pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
322pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 322pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
323pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 323pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
324pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 324pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
325pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 325pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
326pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 326pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
327pub use super::regs::dbgmcu_h7 as dbgmcu; 327pub use super::regs::dbgmcu_h7 as dbgmcu;
328pub use super::regs::dma_v2 as dma; 328pub use super::regs::dma_v2 as dma;
329pub use super::regs::exti_v1 as exti; 329pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32h7b3zi.rs b/embassy-stm32/src/pac/stm32h7b3zi.rs
index 2e7400b4d..9c2bd1275 100644
--- a/embassy-stm32/src/pac/stm32h7b3zi.rs
+++ b/embassy-stm32/src/pac/stm32h7b3zi.rs
@@ -321,20 +321,20 @@ impl_spi_pin!(SPI6, MisoPin, PG12, 5);
321impl_spi_pin!(SPI6, SckPin, PG13, 5); 321impl_spi_pin!(SPI6, SckPin, PG13, 5);
322impl_spi_pin!(SPI6, MosiPin, PG14, 5); 322impl_spi_pin!(SPI6, MosiPin, PG14, 5);
323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _); 323pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x58000400 as _);
324pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40010000 as _); 324pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40010000 as _);
325pub const TIM12: timer::Tim_gp16 = timer::Tim_gp16(0x40001800 as _); 325pub const TIM12: timer::TimGp16 = timer::TimGp16(0x40001800 as _);
326pub const TIM13: timer::Tim_gp16 = timer::Tim_gp16(0x40001c00 as _); 326pub const TIM13: timer::TimGp16 = timer::TimGp16(0x40001c00 as _);
327pub const TIM14: timer::Tim_gp16 = timer::Tim_gp16(0x40002000 as _); 327pub const TIM14: timer::TimGp16 = timer::TimGp16(0x40002000 as _);
328pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 328pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
329pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 329pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
330pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 330pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
331pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 331pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
332pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 332pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
333pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 333pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
334pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 334pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
335pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 335pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
336pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 336pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
337pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40010400 as _); 337pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40010400 as _);
338pub use super::regs::dbgmcu_h7 as dbgmcu; 338pub use super::regs::dbgmcu_h7 as dbgmcu;
339pub use super::regs::dma_v2 as dma; 339pub use super::regs::dma_v2 as dma;
340pub use super::regs::exti_v1 as exti; 340pub use super::regs::exti_v1 as exti;
diff --git a/embassy-stm32/src/pac/stm32l010c6.rs b/embassy-stm32/src/pac/stm32l010c6.rs
index 98bf72180..2de9ec663 100644
--- a/embassy-stm32/src/pac/stm32l010c6.rs
+++ b/embassy-stm32/src/pac/stm32l010c6.rs
@@ -85,8 +85,8 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
85impl_gpio_pin!(PH15, 7, 15, EXTI15); 85impl_gpio_pin!(PH15, 7, 15, EXTI15);
86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
88pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 88pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
89pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 89pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
90pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 90pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
91impl_usart!(USART2); 91impl_usart!(USART2);
92impl_usart_pin!(USART2, CtsPin, PA0, 4); 92impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l010f4.rs b/embassy-stm32/src/pac/stm32l010f4.rs
index 078cb2e4d..8ea81b4e3 100644
--- a/embassy-stm32/src/pac/stm32l010f4.rs
+++ b/embassy-stm32/src/pac/stm32l010f4.rs
@@ -68,8 +68,8 @@ impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15); 68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
71pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 71pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
72pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 72pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
74impl_usart!(USART2); 74impl_usart!(USART2);
75impl_usart_pin!(USART2, CtsPin, PA0, 4); 75impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l010k4.rs b/embassy-stm32/src/pac/stm32l010k4.rs
index 078cb2e4d..8ea81b4e3 100644
--- a/embassy-stm32/src/pac/stm32l010k4.rs
+++ b/embassy-stm32/src/pac/stm32l010k4.rs
@@ -68,8 +68,8 @@ impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15); 68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
71pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 71pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
72pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 72pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
74impl_usart!(USART2); 74impl_usart!(USART2);
75impl_usart_pin!(USART2, CtsPin, PA0, 4); 75impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l010k8.rs b/embassy-stm32/src/pac/stm32l010k8.rs
index a0e591411..555485c8f 100644
--- a/embassy-stm32/src/pac/stm32l010k8.rs
+++ b/embassy-stm32/src/pac/stm32l010k8.rs
@@ -102,8 +102,8 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
102impl_gpio_pin!(PH15, 7, 15, EXTI15); 102impl_gpio_pin!(PH15, 7, 15, EXTI15);
103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
105pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 105pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
106pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 106pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
107pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 107pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
108impl_usart!(USART2); 108impl_usart!(USART2);
109impl_usart_pin!(USART2, CtsPin, PA0, 4); 109impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l010r8.rs b/embassy-stm32/src/pac/stm32l010r8.rs
index a0e591411..555485c8f 100644
--- a/embassy-stm32/src/pac/stm32l010r8.rs
+++ b/embassy-stm32/src/pac/stm32l010r8.rs
@@ -102,8 +102,8 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
102impl_gpio_pin!(PH15, 7, 15, EXTI15); 102impl_gpio_pin!(PH15, 7, 15, EXTI15);
103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
105pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 105pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
106pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 106pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
107pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 107pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
108impl_usart!(USART2); 108impl_usart!(USART2);
109impl_usart_pin!(USART2, CtsPin, PA0, 4); 109impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l010rb.rs b/embassy-stm32/src/pac/stm32l010rb.rs
index 9a2bdeff2..0c591c0a6 100644
--- a/embassy-stm32/src/pac/stm32l010rb.rs
+++ b/embassy-stm32/src/pac/stm32l010rb.rs
@@ -119,9 +119,9 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
119impl_gpio_pin!(PH15, 7, 15, EXTI15); 119impl_gpio_pin!(PH15, 7, 15, EXTI15);
120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
122pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 122pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
123pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 123pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
124pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 124pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
125pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 125pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
126impl_usart!(USART2); 126impl_usart!(USART2);
127impl_usart_pin!(USART2, CtsPin, PA0, 4); 127impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l011d3.rs b/embassy-stm32/src/pac/stm32l011d3.rs
index 75db9b824..b944b6d19 100644
--- a/embassy-stm32/src/pac/stm32l011d3.rs
+++ b/embassy-stm32/src/pac/stm32l011d3.rs
@@ -68,8 +68,8 @@ impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15); 68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
71pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 71pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
72pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 72pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
74impl_usart!(USART2); 74impl_usart!(USART2);
75impl_usart_pin!(USART2, CtsPin, PA0, 4); 75impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l011d4.rs b/embassy-stm32/src/pac/stm32l011d4.rs
index 75db9b824..b944b6d19 100644
--- a/embassy-stm32/src/pac/stm32l011d4.rs
+++ b/embassy-stm32/src/pac/stm32l011d4.rs
@@ -68,8 +68,8 @@ impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15); 68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
71pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 71pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
72pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 72pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
74impl_usart!(USART2); 74impl_usart!(USART2);
75impl_usart_pin!(USART2, CtsPin, PA0, 4); 75impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l011e3.rs b/embassy-stm32/src/pac/stm32l011e3.rs
index 75db9b824..b944b6d19 100644
--- a/embassy-stm32/src/pac/stm32l011e3.rs
+++ b/embassy-stm32/src/pac/stm32l011e3.rs
@@ -68,8 +68,8 @@ impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15); 68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
71pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 71pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
72pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 72pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
74impl_usart!(USART2); 74impl_usart!(USART2);
75impl_usart_pin!(USART2, CtsPin, PA0, 4); 75impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l011e4.rs b/embassy-stm32/src/pac/stm32l011e4.rs
index 75db9b824..b944b6d19 100644
--- a/embassy-stm32/src/pac/stm32l011e4.rs
+++ b/embassy-stm32/src/pac/stm32l011e4.rs
@@ -68,8 +68,8 @@ impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15); 68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
71pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 71pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
72pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 72pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
74impl_usart!(USART2); 74impl_usart!(USART2);
75impl_usart_pin!(USART2, CtsPin, PA0, 4); 75impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l011f3.rs b/embassy-stm32/src/pac/stm32l011f3.rs
index 75db9b824..b944b6d19 100644
--- a/embassy-stm32/src/pac/stm32l011f3.rs
+++ b/embassy-stm32/src/pac/stm32l011f3.rs
@@ -68,8 +68,8 @@ impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15); 68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
71pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 71pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
72pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 72pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
74impl_usart!(USART2); 74impl_usart!(USART2);
75impl_usart_pin!(USART2, CtsPin, PA0, 4); 75impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l011f4.rs b/embassy-stm32/src/pac/stm32l011f4.rs
index 75db9b824..b944b6d19 100644
--- a/embassy-stm32/src/pac/stm32l011f4.rs
+++ b/embassy-stm32/src/pac/stm32l011f4.rs
@@ -68,8 +68,8 @@ impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15); 68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
71pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 71pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
72pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 72pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
74impl_usart!(USART2); 74impl_usart!(USART2);
75impl_usart_pin!(USART2, CtsPin, PA0, 4); 75impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l011g3.rs b/embassy-stm32/src/pac/stm32l011g3.rs
index 75db9b824..b944b6d19 100644
--- a/embassy-stm32/src/pac/stm32l011g3.rs
+++ b/embassy-stm32/src/pac/stm32l011g3.rs
@@ -68,8 +68,8 @@ impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15); 68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
71pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 71pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
72pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 72pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
74impl_usart!(USART2); 74impl_usart!(USART2);
75impl_usart_pin!(USART2, CtsPin, PA0, 4); 75impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l011g4.rs b/embassy-stm32/src/pac/stm32l011g4.rs
index 75db9b824..b944b6d19 100644
--- a/embassy-stm32/src/pac/stm32l011g4.rs
+++ b/embassy-stm32/src/pac/stm32l011g4.rs
@@ -68,8 +68,8 @@ impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15); 68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
71pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 71pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
72pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 72pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
74impl_usart!(USART2); 74impl_usart!(USART2);
75impl_usart_pin!(USART2, CtsPin, PA0, 4); 75impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l011k3.rs b/embassy-stm32/src/pac/stm32l011k3.rs
index 75db9b824..b944b6d19 100644
--- a/embassy-stm32/src/pac/stm32l011k3.rs
+++ b/embassy-stm32/src/pac/stm32l011k3.rs
@@ -68,8 +68,8 @@ impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15); 68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
71pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 71pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
72pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 72pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
74impl_usart!(USART2); 74impl_usart!(USART2);
75impl_usart_pin!(USART2, CtsPin, PA0, 4); 75impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l011k4.rs b/embassy-stm32/src/pac/stm32l011k4.rs
index 75db9b824..b944b6d19 100644
--- a/embassy-stm32/src/pac/stm32l011k4.rs
+++ b/embassy-stm32/src/pac/stm32l011k4.rs
@@ -68,8 +68,8 @@ impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15); 68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
71pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 71pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
72pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 72pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
74impl_usart!(USART2); 74impl_usart!(USART2);
75impl_usart_pin!(USART2, CtsPin, PA0, 4); 75impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l021d4.rs b/embassy-stm32/src/pac/stm32l021d4.rs
index dca3597d5..960502737 100644
--- a/embassy-stm32/src/pac/stm32l021d4.rs
+++ b/embassy-stm32/src/pac/stm32l021d4.rs
@@ -68,8 +68,8 @@ impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15); 68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
71pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 71pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
72pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 72pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
74impl_usart!(USART2); 74impl_usart!(USART2);
75impl_usart_pin!(USART2, CtsPin, PA0, 4); 75impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l021f4.rs b/embassy-stm32/src/pac/stm32l021f4.rs
index dca3597d5..960502737 100644
--- a/embassy-stm32/src/pac/stm32l021f4.rs
+++ b/embassy-stm32/src/pac/stm32l021f4.rs
@@ -68,8 +68,8 @@ impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15); 68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
71pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 71pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
72pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 72pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
74impl_usart!(USART2); 74impl_usart!(USART2);
75impl_usart_pin!(USART2, CtsPin, PA0, 4); 75impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l021g4.rs b/embassy-stm32/src/pac/stm32l021g4.rs
index dca3597d5..960502737 100644
--- a/embassy-stm32/src/pac/stm32l021g4.rs
+++ b/embassy-stm32/src/pac/stm32l021g4.rs
@@ -68,8 +68,8 @@ impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15); 68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
71pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 71pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
72pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 72pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
74impl_usart!(USART2); 74impl_usart!(USART2);
75impl_usart_pin!(USART2, CtsPin, PA0, 4); 75impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l021k4.rs b/embassy-stm32/src/pac/stm32l021k4.rs
index dca3597d5..960502737 100644
--- a/embassy-stm32/src/pac/stm32l021k4.rs
+++ b/embassy-stm32/src/pac/stm32l021k4.rs
@@ -68,8 +68,8 @@ impl_gpio_pin!(PC14, 2, 14, EXTI14);
68impl_gpio_pin!(PC15, 2, 15, EXTI15); 68impl_gpio_pin!(PC15, 2, 15, EXTI15);
69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 69pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 70pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
71pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 71pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
72pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 72pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 73pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
74impl_usart!(USART2); 74impl_usart!(USART2);
75impl_usart_pin!(USART2, CtsPin, PA0, 4); 75impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l031c4.rs b/embassy-stm32/src/pac/stm32l031c4.rs
index a7c9d0baf..d070eb342 100644
--- a/embassy-stm32/src/pac/stm32l031c4.rs
+++ b/embassy-stm32/src/pac/stm32l031c4.rs
@@ -85,9 +85,9 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
85impl_gpio_pin!(PH15, 7, 15, EXTI15); 85impl_gpio_pin!(PH15, 7, 15, EXTI15);
86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
88pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 88pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
89pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 89pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
90pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 90pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
92impl_usart!(USART2); 92impl_usart!(USART2);
93impl_usart_pin!(USART2, CtsPin, PA0, 4); 93impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l031c6.rs b/embassy-stm32/src/pac/stm32l031c6.rs
index a7c9d0baf..d070eb342 100644
--- a/embassy-stm32/src/pac/stm32l031c6.rs
+++ b/embassy-stm32/src/pac/stm32l031c6.rs
@@ -85,9 +85,9 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
85impl_gpio_pin!(PH15, 7, 15, EXTI15); 85impl_gpio_pin!(PH15, 7, 15, EXTI15);
86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
88pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 88pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
89pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 89pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
90pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 90pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
92impl_usart!(USART2); 92impl_usart!(USART2);
93impl_usart_pin!(USART2, CtsPin, PA0, 4); 93impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l031e4.rs b/embassy-stm32/src/pac/stm32l031e4.rs
index a7c9d0baf..d070eb342 100644
--- a/embassy-stm32/src/pac/stm32l031e4.rs
+++ b/embassy-stm32/src/pac/stm32l031e4.rs
@@ -85,9 +85,9 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
85impl_gpio_pin!(PH15, 7, 15, EXTI15); 85impl_gpio_pin!(PH15, 7, 15, EXTI15);
86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
88pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 88pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
89pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 89pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
90pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 90pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
92impl_usart!(USART2); 92impl_usart!(USART2);
93impl_usart_pin!(USART2, CtsPin, PA0, 4); 93impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l031e6.rs b/embassy-stm32/src/pac/stm32l031e6.rs
index a7c9d0baf..d070eb342 100644
--- a/embassy-stm32/src/pac/stm32l031e6.rs
+++ b/embassy-stm32/src/pac/stm32l031e6.rs
@@ -85,9 +85,9 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
85impl_gpio_pin!(PH15, 7, 15, EXTI15); 85impl_gpio_pin!(PH15, 7, 15, EXTI15);
86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
88pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 88pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
89pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 89pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
90pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 90pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
92impl_usart!(USART2); 92impl_usart!(USART2);
93impl_usart_pin!(USART2, CtsPin, PA0, 4); 93impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l031f4.rs b/embassy-stm32/src/pac/stm32l031f4.rs
index a7c9d0baf..d070eb342 100644
--- a/embassy-stm32/src/pac/stm32l031f4.rs
+++ b/embassy-stm32/src/pac/stm32l031f4.rs
@@ -85,9 +85,9 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
85impl_gpio_pin!(PH15, 7, 15, EXTI15); 85impl_gpio_pin!(PH15, 7, 15, EXTI15);
86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
88pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 88pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
89pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 89pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
90pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 90pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
92impl_usart!(USART2); 92impl_usart!(USART2);
93impl_usart_pin!(USART2, CtsPin, PA0, 4); 93impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l031f6.rs b/embassy-stm32/src/pac/stm32l031f6.rs
index a7c9d0baf..d070eb342 100644
--- a/embassy-stm32/src/pac/stm32l031f6.rs
+++ b/embassy-stm32/src/pac/stm32l031f6.rs
@@ -85,9 +85,9 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
85impl_gpio_pin!(PH15, 7, 15, EXTI15); 85impl_gpio_pin!(PH15, 7, 15, EXTI15);
86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
88pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 88pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
89pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 89pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
90pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 90pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
92impl_usart!(USART2); 92impl_usart!(USART2);
93impl_usart_pin!(USART2, CtsPin, PA0, 4); 93impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l031g4.rs b/embassy-stm32/src/pac/stm32l031g4.rs
index a7c9d0baf..d070eb342 100644
--- a/embassy-stm32/src/pac/stm32l031g4.rs
+++ b/embassy-stm32/src/pac/stm32l031g4.rs
@@ -85,9 +85,9 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
85impl_gpio_pin!(PH15, 7, 15, EXTI15); 85impl_gpio_pin!(PH15, 7, 15, EXTI15);
86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
88pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 88pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
89pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 89pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
90pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 90pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
92impl_usart!(USART2); 92impl_usart!(USART2);
93impl_usart_pin!(USART2, CtsPin, PA0, 4); 93impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l031g6.rs b/embassy-stm32/src/pac/stm32l031g6.rs
index a7c9d0baf..d070eb342 100644
--- a/embassy-stm32/src/pac/stm32l031g6.rs
+++ b/embassy-stm32/src/pac/stm32l031g6.rs
@@ -85,9 +85,9 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
85impl_gpio_pin!(PH15, 7, 15, EXTI15); 85impl_gpio_pin!(PH15, 7, 15, EXTI15);
86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
88pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 88pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
89pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 89pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
90pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 90pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
92impl_usart!(USART2); 92impl_usart!(USART2);
93impl_usart_pin!(USART2, CtsPin, PA0, 4); 93impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l031k4.rs b/embassy-stm32/src/pac/stm32l031k4.rs
index a7c9d0baf..d070eb342 100644
--- a/embassy-stm32/src/pac/stm32l031k4.rs
+++ b/embassy-stm32/src/pac/stm32l031k4.rs
@@ -85,9 +85,9 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
85impl_gpio_pin!(PH15, 7, 15, EXTI15); 85impl_gpio_pin!(PH15, 7, 15, EXTI15);
86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
88pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 88pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
89pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 89pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
90pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 90pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
92impl_usart!(USART2); 92impl_usart!(USART2);
93impl_usart_pin!(USART2, CtsPin, PA0, 4); 93impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l031k6.rs b/embassy-stm32/src/pac/stm32l031k6.rs
index a7c9d0baf..d070eb342 100644
--- a/embassy-stm32/src/pac/stm32l031k6.rs
+++ b/embassy-stm32/src/pac/stm32l031k6.rs
@@ -85,9 +85,9 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
85impl_gpio_pin!(PH15, 7, 15, EXTI15); 85impl_gpio_pin!(PH15, 7, 15, EXTI15);
86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
88pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 88pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
89pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 89pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
90pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 90pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
92impl_usart!(USART2); 92impl_usart!(USART2);
93impl_usart_pin!(USART2, CtsPin, PA0, 4); 93impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l041c4.rs b/embassy-stm32/src/pac/stm32l041c4.rs
index e01af0c71..c505a3c60 100644
--- a/embassy-stm32/src/pac/stm32l041c4.rs
+++ b/embassy-stm32/src/pac/stm32l041c4.rs
@@ -85,9 +85,9 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
85impl_gpio_pin!(PH15, 7, 15, EXTI15); 85impl_gpio_pin!(PH15, 7, 15, EXTI15);
86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
88pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 88pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
89pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 89pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
90pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 90pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
92impl_usart!(USART2); 92impl_usart!(USART2);
93impl_usart_pin!(USART2, CtsPin, PA0, 4); 93impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l041c6.rs b/embassy-stm32/src/pac/stm32l041c6.rs
index e01af0c71..c505a3c60 100644
--- a/embassy-stm32/src/pac/stm32l041c6.rs
+++ b/embassy-stm32/src/pac/stm32l041c6.rs
@@ -85,9 +85,9 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
85impl_gpio_pin!(PH15, 7, 15, EXTI15); 85impl_gpio_pin!(PH15, 7, 15, EXTI15);
86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
88pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 88pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
89pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 89pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
90pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 90pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
92impl_usart!(USART2); 92impl_usart!(USART2);
93impl_usart_pin!(USART2, CtsPin, PA0, 4); 93impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l041e6.rs b/embassy-stm32/src/pac/stm32l041e6.rs
index e01af0c71..c505a3c60 100644
--- a/embassy-stm32/src/pac/stm32l041e6.rs
+++ b/embassy-stm32/src/pac/stm32l041e6.rs
@@ -85,9 +85,9 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
85impl_gpio_pin!(PH15, 7, 15, EXTI15); 85impl_gpio_pin!(PH15, 7, 15, EXTI15);
86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
88pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 88pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
89pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 89pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
90pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 90pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
92impl_usart!(USART2); 92impl_usart!(USART2);
93impl_usart_pin!(USART2, CtsPin, PA0, 4); 93impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l041f6.rs b/embassy-stm32/src/pac/stm32l041f6.rs
index e01af0c71..c505a3c60 100644
--- a/embassy-stm32/src/pac/stm32l041f6.rs
+++ b/embassy-stm32/src/pac/stm32l041f6.rs
@@ -85,9 +85,9 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
85impl_gpio_pin!(PH15, 7, 15, EXTI15); 85impl_gpio_pin!(PH15, 7, 15, EXTI15);
86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
88pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 88pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
89pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 89pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
90pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 90pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
92impl_usart!(USART2); 92impl_usart!(USART2);
93impl_usart_pin!(USART2, CtsPin, PA0, 4); 93impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l041g6.rs b/embassy-stm32/src/pac/stm32l041g6.rs
index e01af0c71..c505a3c60 100644
--- a/embassy-stm32/src/pac/stm32l041g6.rs
+++ b/embassy-stm32/src/pac/stm32l041g6.rs
@@ -85,9 +85,9 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
85impl_gpio_pin!(PH15, 7, 15, EXTI15); 85impl_gpio_pin!(PH15, 7, 15, EXTI15);
86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
88pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 88pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
89pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 89pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
90pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 90pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
92impl_usart!(USART2); 92impl_usart!(USART2);
93impl_usart_pin!(USART2, CtsPin, PA0, 4); 93impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l041k6.rs b/embassy-stm32/src/pac/stm32l041k6.rs
index e01af0c71..c505a3c60 100644
--- a/embassy-stm32/src/pac/stm32l041k6.rs
+++ b/embassy-stm32/src/pac/stm32l041k6.rs
@@ -85,9 +85,9 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
85impl_gpio_pin!(PH15, 7, 15, EXTI15); 85impl_gpio_pin!(PH15, 7, 15, EXTI15);
86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 86pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 87pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
88pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 88pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
89pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 89pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
90pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 90pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _); 91pub const USART2: usart::Usart = usart::Usart(0x40004400 as _);
92impl_usart!(USART2); 92impl_usart!(USART2);
93impl_usart_pin!(USART2, CtsPin, PA0, 4); 93impl_usart_pin!(USART2, CtsPin, PA0, 4);
diff --git a/embassy-stm32/src/pac/stm32l051c6.rs b/embassy-stm32/src/pac/stm32l051c6.rs
index e4c273edb..9fdbc2c81 100644
--- a/embassy-stm32/src/pac/stm32l051c6.rs
+++ b/embassy-stm32/src/pac/stm32l051c6.rs
@@ -102,10 +102,10 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
102impl_gpio_pin!(PH15, 7, 15, EXTI15); 102impl_gpio_pin!(PH15, 7, 15, EXTI15);
103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
105pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 105pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
106pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 106pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
107pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 107pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
108pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 108pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
109pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 109pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
110impl_usart!(USART1); 110impl_usart!(USART1);
111impl_usart_pin!(USART1, RxPin, PA10, 4); 111impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l051c8.rs b/embassy-stm32/src/pac/stm32l051c8.rs
index e4c273edb..9fdbc2c81 100644
--- a/embassy-stm32/src/pac/stm32l051c8.rs
+++ b/embassy-stm32/src/pac/stm32l051c8.rs
@@ -102,10 +102,10 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
102impl_gpio_pin!(PH15, 7, 15, EXTI15); 102impl_gpio_pin!(PH15, 7, 15, EXTI15);
103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
105pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 105pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
106pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 106pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
107pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 107pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
108pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 108pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
109pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 109pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
110impl_usart!(USART1); 110impl_usart!(USART1);
111impl_usart_pin!(USART1, RxPin, PA10, 4); 111impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l051k6.rs b/embassy-stm32/src/pac/stm32l051k6.rs
index e4c273edb..9fdbc2c81 100644
--- a/embassy-stm32/src/pac/stm32l051k6.rs
+++ b/embassy-stm32/src/pac/stm32l051k6.rs
@@ -102,10 +102,10 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
102impl_gpio_pin!(PH15, 7, 15, EXTI15); 102impl_gpio_pin!(PH15, 7, 15, EXTI15);
103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
105pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 105pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
106pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 106pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
107pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 107pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
108pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 108pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
109pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 109pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
110impl_usart!(USART1); 110impl_usart!(USART1);
111impl_usart_pin!(USART1, RxPin, PA10, 4); 111impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l051k8.rs b/embassy-stm32/src/pac/stm32l051k8.rs
index e4c273edb..9fdbc2c81 100644
--- a/embassy-stm32/src/pac/stm32l051k8.rs
+++ b/embassy-stm32/src/pac/stm32l051k8.rs
@@ -102,10 +102,10 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
102impl_gpio_pin!(PH15, 7, 15, EXTI15); 102impl_gpio_pin!(PH15, 7, 15, EXTI15);
103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
105pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 105pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
106pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 106pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
107pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 107pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
108pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 108pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
109pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 109pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
110impl_usart!(USART1); 110impl_usart!(USART1);
111impl_usart_pin!(USART1, RxPin, PA10, 4); 111impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l051r6.rs b/embassy-stm32/src/pac/stm32l051r6.rs
index e4c273edb..9fdbc2c81 100644
--- a/embassy-stm32/src/pac/stm32l051r6.rs
+++ b/embassy-stm32/src/pac/stm32l051r6.rs
@@ -102,10 +102,10 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
102impl_gpio_pin!(PH15, 7, 15, EXTI15); 102impl_gpio_pin!(PH15, 7, 15, EXTI15);
103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
105pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 105pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
106pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 106pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
107pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 107pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
108pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 108pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
109pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 109pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
110impl_usart!(USART1); 110impl_usart!(USART1);
111impl_usart_pin!(USART1, RxPin, PA10, 4); 111impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l051r8.rs b/embassy-stm32/src/pac/stm32l051r8.rs
index e4c273edb..9fdbc2c81 100644
--- a/embassy-stm32/src/pac/stm32l051r8.rs
+++ b/embassy-stm32/src/pac/stm32l051r8.rs
@@ -102,10 +102,10 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
102impl_gpio_pin!(PH15, 7, 15, EXTI15); 102impl_gpio_pin!(PH15, 7, 15, EXTI15);
103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
105pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 105pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
106pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 106pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
107pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 107pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
108pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 108pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
109pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 109pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
110impl_usart!(USART1); 110impl_usart!(USART1);
111impl_usart_pin!(USART1, RxPin, PA10, 4); 111impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l051t6.rs b/embassy-stm32/src/pac/stm32l051t6.rs
index e4c273edb..9fdbc2c81 100644
--- a/embassy-stm32/src/pac/stm32l051t6.rs
+++ b/embassy-stm32/src/pac/stm32l051t6.rs
@@ -102,10 +102,10 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
102impl_gpio_pin!(PH15, 7, 15, EXTI15); 102impl_gpio_pin!(PH15, 7, 15, EXTI15);
103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
105pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 105pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
106pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 106pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
107pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 107pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
108pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 108pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
109pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 109pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
110impl_usart!(USART1); 110impl_usart!(USART1);
111impl_usart_pin!(USART1, RxPin, PA10, 4); 111impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l051t8.rs b/embassy-stm32/src/pac/stm32l051t8.rs
index e4c273edb..9fdbc2c81 100644
--- a/embassy-stm32/src/pac/stm32l051t8.rs
+++ b/embassy-stm32/src/pac/stm32l051t8.rs
@@ -102,10 +102,10 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
102impl_gpio_pin!(PH15, 7, 15, EXTI15); 102impl_gpio_pin!(PH15, 7, 15, EXTI15);
103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 103pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 104pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
105pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 105pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
106pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 106pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
107pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 107pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
108pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 108pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
109pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 109pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
110impl_usart!(USART1); 110impl_usart!(USART1);
111impl_usart_pin!(USART1, RxPin, PA10, 4); 111impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l052c6.rs b/embassy-stm32/src/pac/stm32l052c6.rs
index 3c8d2a6a5..e55ac1e96 100644
--- a/embassy-stm32/src/pac/stm32l052c6.rs
+++ b/embassy-stm32/src/pac/stm32l052c6.rs
@@ -104,10 +104,10 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
105impl_rng!(RNG, RNG_LPUART1); 105impl_rng!(RNG, RNG_LPUART1);
106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
107pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 107pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
108pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 108pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
109pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 109pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
110pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 110pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
112impl_usart!(USART1); 112impl_usart!(USART1);
113impl_usart_pin!(USART1, RxPin, PA10, 4); 113impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l052c8.rs b/embassy-stm32/src/pac/stm32l052c8.rs
index 3c8d2a6a5..e55ac1e96 100644
--- a/embassy-stm32/src/pac/stm32l052c8.rs
+++ b/embassy-stm32/src/pac/stm32l052c8.rs
@@ -104,10 +104,10 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
105impl_rng!(RNG, RNG_LPUART1); 105impl_rng!(RNG, RNG_LPUART1);
106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
107pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 107pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
108pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 108pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
109pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 109pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
110pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 110pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
112impl_usart!(USART1); 112impl_usart!(USART1);
113impl_usart_pin!(USART1, RxPin, PA10, 4); 113impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l052k6.rs b/embassy-stm32/src/pac/stm32l052k6.rs
index 3c8d2a6a5..e55ac1e96 100644
--- a/embassy-stm32/src/pac/stm32l052k6.rs
+++ b/embassy-stm32/src/pac/stm32l052k6.rs
@@ -104,10 +104,10 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
105impl_rng!(RNG, RNG_LPUART1); 105impl_rng!(RNG, RNG_LPUART1);
106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
107pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 107pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
108pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 108pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
109pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 109pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
110pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 110pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
112impl_usart!(USART1); 112impl_usart!(USART1);
113impl_usart_pin!(USART1, RxPin, PA10, 4); 113impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l052k8.rs b/embassy-stm32/src/pac/stm32l052k8.rs
index 3c8d2a6a5..e55ac1e96 100644
--- a/embassy-stm32/src/pac/stm32l052k8.rs
+++ b/embassy-stm32/src/pac/stm32l052k8.rs
@@ -104,10 +104,10 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
105impl_rng!(RNG, RNG_LPUART1); 105impl_rng!(RNG, RNG_LPUART1);
106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
107pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 107pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
108pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 108pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
109pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 109pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
110pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 110pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
112impl_usart!(USART1); 112impl_usart!(USART1);
113impl_usart_pin!(USART1, RxPin, PA10, 4); 113impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l052r6.rs b/embassy-stm32/src/pac/stm32l052r6.rs
index 3c8d2a6a5..e55ac1e96 100644
--- a/embassy-stm32/src/pac/stm32l052r6.rs
+++ b/embassy-stm32/src/pac/stm32l052r6.rs
@@ -104,10 +104,10 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
105impl_rng!(RNG, RNG_LPUART1); 105impl_rng!(RNG, RNG_LPUART1);
106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
107pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 107pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
108pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 108pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
109pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 109pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
110pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 110pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
112impl_usart!(USART1); 112impl_usart!(USART1);
113impl_usart_pin!(USART1, RxPin, PA10, 4); 113impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l052r8.rs b/embassy-stm32/src/pac/stm32l052r8.rs
index 3c8d2a6a5..e55ac1e96 100644
--- a/embassy-stm32/src/pac/stm32l052r8.rs
+++ b/embassy-stm32/src/pac/stm32l052r8.rs
@@ -104,10 +104,10 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
105impl_rng!(RNG, RNG_LPUART1); 105impl_rng!(RNG, RNG_LPUART1);
106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
107pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 107pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
108pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 108pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
109pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 109pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
110pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 110pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
112impl_usart!(USART1); 112impl_usart!(USART1);
113impl_usart_pin!(USART1, RxPin, PA10, 4); 113impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l052t6.rs b/embassy-stm32/src/pac/stm32l052t6.rs
index 3c8d2a6a5..e55ac1e96 100644
--- a/embassy-stm32/src/pac/stm32l052t6.rs
+++ b/embassy-stm32/src/pac/stm32l052t6.rs
@@ -104,10 +104,10 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
105impl_rng!(RNG, RNG_LPUART1); 105impl_rng!(RNG, RNG_LPUART1);
106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
107pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 107pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
108pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 108pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
109pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 109pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
110pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 110pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
112impl_usart!(USART1); 112impl_usart!(USART1);
113impl_usart_pin!(USART1, RxPin, PA10, 4); 113impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l052t8.rs b/embassy-stm32/src/pac/stm32l052t8.rs
index 3c8d2a6a5..e55ac1e96 100644
--- a/embassy-stm32/src/pac/stm32l052t8.rs
+++ b/embassy-stm32/src/pac/stm32l052t8.rs
@@ -104,10 +104,10 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
105impl_rng!(RNG, RNG_LPUART1); 105impl_rng!(RNG, RNG_LPUART1);
106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
107pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 107pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
108pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 108pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
109pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 109pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
110pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 110pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
112impl_usart!(USART1); 112impl_usart!(USART1);
113impl_usart_pin!(USART1, RxPin, PA10, 4); 113impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l053c6.rs b/embassy-stm32/src/pac/stm32l053c6.rs
index bcfea5022..3e505b029 100644
--- a/embassy-stm32/src/pac/stm32l053c6.rs
+++ b/embassy-stm32/src/pac/stm32l053c6.rs
@@ -104,10 +104,10 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
105impl_rng!(RNG, RNG_LPUART1); 105impl_rng!(RNG, RNG_LPUART1);
106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
107pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 107pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
108pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 108pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
109pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 109pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
110pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 110pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
112impl_usart!(USART1); 112impl_usart!(USART1);
113impl_usart_pin!(USART1, RxPin, PA10, 4); 113impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l053c8.rs b/embassy-stm32/src/pac/stm32l053c8.rs
index bcfea5022..3e505b029 100644
--- a/embassy-stm32/src/pac/stm32l053c8.rs
+++ b/embassy-stm32/src/pac/stm32l053c8.rs
@@ -104,10 +104,10 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
105impl_rng!(RNG, RNG_LPUART1); 105impl_rng!(RNG, RNG_LPUART1);
106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
107pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 107pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
108pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 108pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
109pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 109pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
110pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 110pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
112impl_usart!(USART1); 112impl_usart!(USART1);
113impl_usart_pin!(USART1, RxPin, PA10, 4); 113impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l053r6.rs b/embassy-stm32/src/pac/stm32l053r6.rs
index bcfea5022..3e505b029 100644
--- a/embassy-stm32/src/pac/stm32l053r6.rs
+++ b/embassy-stm32/src/pac/stm32l053r6.rs
@@ -104,10 +104,10 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
105impl_rng!(RNG, RNG_LPUART1); 105impl_rng!(RNG, RNG_LPUART1);
106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
107pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 107pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
108pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 108pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
109pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 109pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
110pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 110pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
112impl_usart!(USART1); 112impl_usart!(USART1);
113impl_usart_pin!(USART1, RxPin, PA10, 4); 113impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l053r8.rs b/embassy-stm32/src/pac/stm32l053r8.rs
index bcfea5022..3e505b029 100644
--- a/embassy-stm32/src/pac/stm32l053r8.rs
+++ b/embassy-stm32/src/pac/stm32l053r8.rs
@@ -104,10 +104,10 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
105impl_rng!(RNG, RNG_LPUART1); 105impl_rng!(RNG, RNG_LPUART1);
106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
107pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 107pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
108pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 108pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
109pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 109pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
110pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 110pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
112impl_usart!(USART1); 112impl_usart!(USART1);
113impl_usart_pin!(USART1, RxPin, PA10, 4); 113impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l062c8.rs b/embassy-stm32/src/pac/stm32l062c8.rs
index 371b50c43..8e8a1b6c5 100644
--- a/embassy-stm32/src/pac/stm32l062c8.rs
+++ b/embassy-stm32/src/pac/stm32l062c8.rs
@@ -104,10 +104,10 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
105impl_rng!(RNG, AES_RNG_LPUART1); 105impl_rng!(RNG, AES_RNG_LPUART1);
106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
107pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 107pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
108pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 108pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
109pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 109pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
110pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 110pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
112impl_usart!(USART1); 112impl_usart!(USART1);
113impl_usart_pin!(USART1, RxPin, PA10, 4); 113impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l062k8.rs b/embassy-stm32/src/pac/stm32l062k8.rs
index 371b50c43..8e8a1b6c5 100644
--- a/embassy-stm32/src/pac/stm32l062k8.rs
+++ b/embassy-stm32/src/pac/stm32l062k8.rs
@@ -104,10 +104,10 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
105impl_rng!(RNG, AES_RNG_LPUART1); 105impl_rng!(RNG, AES_RNG_LPUART1);
106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
107pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 107pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
108pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 108pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
109pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 109pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
110pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 110pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
112impl_usart!(USART1); 112impl_usart!(USART1);
113impl_usart_pin!(USART1, RxPin, PA10, 4); 113impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l063c8.rs b/embassy-stm32/src/pac/stm32l063c8.rs
index 511b1d4b6..6d62f31df 100644
--- a/embassy-stm32/src/pac/stm32l063c8.rs
+++ b/embassy-stm32/src/pac/stm32l063c8.rs
@@ -104,10 +104,10 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
105impl_rng!(RNG, AES_RNG_LPUART1); 105impl_rng!(RNG, AES_RNG_LPUART1);
106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
107pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 107pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
108pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 108pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
109pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 109pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
110pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 110pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
112impl_usart!(USART1); 112impl_usart!(USART1);
113impl_usart_pin!(USART1, RxPin, PA10, 4); 113impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l063r8.rs b/embassy-stm32/src/pac/stm32l063r8.rs
index 511b1d4b6..6d62f31df 100644
--- a/embassy-stm32/src/pac/stm32l063r8.rs
+++ b/embassy-stm32/src/pac/stm32l063r8.rs
@@ -104,10 +104,10 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 104pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
105impl_rng!(RNG, AES_RNG_LPUART1); 105impl_rng!(RNG, AES_RNG_LPUART1);
106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 106pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
107pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 107pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
108pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 108pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
109pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 109pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
110pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 110pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 111pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
112impl_usart!(USART1); 112impl_usart!(USART1);
113impl_usart_pin!(USART1, RxPin, PA10, 4); 113impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l071c8.rs b/embassy-stm32/src/pac/stm32l071c8.rs
index ef09c0812..811060417 100644
--- a/embassy-stm32/src/pac/stm32l071c8.rs
+++ b/embassy-stm32/src/pac/stm32l071c8.rs
@@ -119,12 +119,12 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
119impl_gpio_pin!(PH15, 7, 15, EXTI15); 119impl_gpio_pin!(PH15, 7, 15, EXTI15);
120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
122pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 122pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
123pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 123pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
124pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 124pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
125pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 125pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
126pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 126pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
127pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 127pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
129impl_usart!(USART1); 129impl_usart!(USART1);
130impl_usart_pin!(USART1, RxPin, PA10, 4); 130impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l071cb.rs b/embassy-stm32/src/pac/stm32l071cb.rs
index ef09c0812..811060417 100644
--- a/embassy-stm32/src/pac/stm32l071cb.rs
+++ b/embassy-stm32/src/pac/stm32l071cb.rs
@@ -119,12 +119,12 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
119impl_gpio_pin!(PH15, 7, 15, EXTI15); 119impl_gpio_pin!(PH15, 7, 15, EXTI15);
120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
122pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 122pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
123pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 123pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
124pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 124pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
125pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 125pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
126pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 126pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
127pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 127pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
129impl_usart!(USART1); 129impl_usart!(USART1);
130impl_usart_pin!(USART1, RxPin, PA10, 4); 130impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l071cz.rs b/embassy-stm32/src/pac/stm32l071cz.rs
index ef09c0812..811060417 100644
--- a/embassy-stm32/src/pac/stm32l071cz.rs
+++ b/embassy-stm32/src/pac/stm32l071cz.rs
@@ -119,12 +119,12 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
119impl_gpio_pin!(PH15, 7, 15, EXTI15); 119impl_gpio_pin!(PH15, 7, 15, EXTI15);
120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
122pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 122pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
123pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 123pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
124pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 124pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
125pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 125pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
126pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 126pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
127pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 127pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
129impl_usart!(USART1); 129impl_usart!(USART1);
130impl_usart_pin!(USART1, RxPin, PA10, 4); 130impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l071k8.rs b/embassy-stm32/src/pac/stm32l071k8.rs
index e3245b649..504f13af1 100644
--- a/embassy-stm32/src/pac/stm32l071k8.rs
+++ b/embassy-stm32/src/pac/stm32l071k8.rs
@@ -119,12 +119,12 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
119impl_gpio_pin!(PH15, 7, 15, EXTI15); 119impl_gpio_pin!(PH15, 7, 15, EXTI15);
120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
122pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 122pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
123pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 123pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
124pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 124pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
125pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 125pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
126pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 126pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
127pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 127pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
129impl_usart!(USART1); 129impl_usart!(USART1);
130impl_usart_pin!(USART1, RxPin, PA10, 4); 130impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l071kb.rs b/embassy-stm32/src/pac/stm32l071kb.rs
index ef09c0812..811060417 100644
--- a/embassy-stm32/src/pac/stm32l071kb.rs
+++ b/embassy-stm32/src/pac/stm32l071kb.rs
@@ -119,12 +119,12 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
119impl_gpio_pin!(PH15, 7, 15, EXTI15); 119impl_gpio_pin!(PH15, 7, 15, EXTI15);
120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
122pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 122pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
123pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 123pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
124pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 124pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
125pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 125pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
126pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 126pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
127pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 127pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
129impl_usart!(USART1); 129impl_usart!(USART1);
130impl_usart_pin!(USART1, RxPin, PA10, 4); 130impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l071kz.rs b/embassy-stm32/src/pac/stm32l071kz.rs
index ef09c0812..811060417 100644
--- a/embassy-stm32/src/pac/stm32l071kz.rs
+++ b/embassy-stm32/src/pac/stm32l071kz.rs
@@ -119,12 +119,12 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
119impl_gpio_pin!(PH15, 7, 15, EXTI15); 119impl_gpio_pin!(PH15, 7, 15, EXTI15);
120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
122pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 122pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
123pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 123pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
124pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 124pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
125pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 125pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
126pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 126pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
127pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 127pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
129impl_usart!(USART1); 129impl_usart!(USART1);
130impl_usart_pin!(USART1, RxPin, PA10, 4); 130impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l071rb.rs b/embassy-stm32/src/pac/stm32l071rb.rs
index ef09c0812..811060417 100644
--- a/embassy-stm32/src/pac/stm32l071rb.rs
+++ b/embassy-stm32/src/pac/stm32l071rb.rs
@@ -119,12 +119,12 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
119impl_gpio_pin!(PH15, 7, 15, EXTI15); 119impl_gpio_pin!(PH15, 7, 15, EXTI15);
120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
122pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 122pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
123pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 123pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
124pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 124pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
125pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 125pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
126pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 126pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
127pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 127pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
129impl_usart!(USART1); 129impl_usart!(USART1);
130impl_usart_pin!(USART1, RxPin, PA10, 4); 130impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l071rz.rs b/embassy-stm32/src/pac/stm32l071rz.rs
index ef09c0812..811060417 100644
--- a/embassy-stm32/src/pac/stm32l071rz.rs
+++ b/embassy-stm32/src/pac/stm32l071rz.rs
@@ -119,12 +119,12 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
119impl_gpio_pin!(PH15, 7, 15, EXTI15); 119impl_gpio_pin!(PH15, 7, 15, EXTI15);
120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
122pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 122pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
123pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 123pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
124pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 124pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
125pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 125pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
126pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 126pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
127pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 127pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
129impl_usart!(USART1); 129impl_usart!(USART1);
130impl_usart_pin!(USART1, RxPin, PA10, 4); 130impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l071v8.rs b/embassy-stm32/src/pac/stm32l071v8.rs
index ef09c0812..811060417 100644
--- a/embassy-stm32/src/pac/stm32l071v8.rs
+++ b/embassy-stm32/src/pac/stm32l071v8.rs
@@ -119,12 +119,12 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
119impl_gpio_pin!(PH15, 7, 15, EXTI15); 119impl_gpio_pin!(PH15, 7, 15, EXTI15);
120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
122pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 122pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
123pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 123pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
124pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 124pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
125pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 125pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
126pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 126pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
127pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 127pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
129impl_usart!(USART1); 129impl_usart!(USART1);
130impl_usart_pin!(USART1, RxPin, PA10, 4); 130impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l071vb.rs b/embassy-stm32/src/pac/stm32l071vb.rs
index ef09c0812..811060417 100644
--- a/embassy-stm32/src/pac/stm32l071vb.rs
+++ b/embassy-stm32/src/pac/stm32l071vb.rs
@@ -119,12 +119,12 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
119impl_gpio_pin!(PH15, 7, 15, EXTI15); 119impl_gpio_pin!(PH15, 7, 15, EXTI15);
120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
122pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 122pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
123pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 123pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
124pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 124pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
125pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 125pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
126pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 126pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
127pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 127pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
129impl_usart!(USART1); 129impl_usart!(USART1);
130impl_usart_pin!(USART1, RxPin, PA10, 4); 130impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l071vz.rs b/embassy-stm32/src/pac/stm32l071vz.rs
index ef09c0812..811060417 100644
--- a/embassy-stm32/src/pac/stm32l071vz.rs
+++ b/embassy-stm32/src/pac/stm32l071vz.rs
@@ -119,12 +119,12 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
119impl_gpio_pin!(PH15, 7, 15, EXTI15); 119impl_gpio_pin!(PH15, 7, 15, EXTI15);
120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
122pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 122pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
123pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 123pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
124pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 124pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
125pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 125pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
126pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 126pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
127pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 127pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
129impl_usart!(USART1); 129impl_usart!(USART1);
130impl_usart_pin!(USART1, RxPin, PA10, 4); 130impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l072cb.rs b/embassy-stm32/src/pac/stm32l072cb.rs
index aeb87bfb5..b9d53465e 100644
--- a/embassy-stm32/src/pac/stm32l072cb.rs
+++ b/embassy-stm32/src/pac/stm32l072cb.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, RNG_LPUART1); 122impl_rng!(RNG, RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l072cz.rs b/embassy-stm32/src/pac/stm32l072cz.rs
index aeb87bfb5..b9d53465e 100644
--- a/embassy-stm32/src/pac/stm32l072cz.rs
+++ b/embassy-stm32/src/pac/stm32l072cz.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, RNG_LPUART1); 122impl_rng!(RNG, RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l072kb.rs b/embassy-stm32/src/pac/stm32l072kb.rs
index aeb87bfb5..b9d53465e 100644
--- a/embassy-stm32/src/pac/stm32l072kb.rs
+++ b/embassy-stm32/src/pac/stm32l072kb.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, RNG_LPUART1); 122impl_rng!(RNG, RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l072kz.rs b/embassy-stm32/src/pac/stm32l072kz.rs
index aeb87bfb5..b9d53465e 100644
--- a/embassy-stm32/src/pac/stm32l072kz.rs
+++ b/embassy-stm32/src/pac/stm32l072kz.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, RNG_LPUART1); 122impl_rng!(RNG, RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l072rb.rs b/embassy-stm32/src/pac/stm32l072rb.rs
index aeb87bfb5..b9d53465e 100644
--- a/embassy-stm32/src/pac/stm32l072rb.rs
+++ b/embassy-stm32/src/pac/stm32l072rb.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, RNG_LPUART1); 122impl_rng!(RNG, RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l072rz.rs b/embassy-stm32/src/pac/stm32l072rz.rs
index aeb87bfb5..b9d53465e 100644
--- a/embassy-stm32/src/pac/stm32l072rz.rs
+++ b/embassy-stm32/src/pac/stm32l072rz.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, RNG_LPUART1); 122impl_rng!(RNG, RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l072v8.rs b/embassy-stm32/src/pac/stm32l072v8.rs
index aeb87bfb5..b9d53465e 100644
--- a/embassy-stm32/src/pac/stm32l072v8.rs
+++ b/embassy-stm32/src/pac/stm32l072v8.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, RNG_LPUART1); 122impl_rng!(RNG, RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l072vb.rs b/embassy-stm32/src/pac/stm32l072vb.rs
index aeb87bfb5..b9d53465e 100644
--- a/embassy-stm32/src/pac/stm32l072vb.rs
+++ b/embassy-stm32/src/pac/stm32l072vb.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, RNG_LPUART1); 122impl_rng!(RNG, RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l072vz.rs b/embassy-stm32/src/pac/stm32l072vz.rs
index aeb87bfb5..b9d53465e 100644
--- a/embassy-stm32/src/pac/stm32l072vz.rs
+++ b/embassy-stm32/src/pac/stm32l072vz.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, RNG_LPUART1); 122impl_rng!(RNG, RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l073cb.rs b/embassy-stm32/src/pac/stm32l073cb.rs
index b3b4cf345..25b11f159 100644
--- a/embassy-stm32/src/pac/stm32l073cb.rs
+++ b/embassy-stm32/src/pac/stm32l073cb.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, RNG_LPUART1); 122impl_rng!(RNG, RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l073cz.rs b/embassy-stm32/src/pac/stm32l073cz.rs
index b3b4cf345..25b11f159 100644
--- a/embassy-stm32/src/pac/stm32l073cz.rs
+++ b/embassy-stm32/src/pac/stm32l073cz.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, RNG_LPUART1); 122impl_rng!(RNG, RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l073rb.rs b/embassy-stm32/src/pac/stm32l073rb.rs
index b3b4cf345..25b11f159 100644
--- a/embassy-stm32/src/pac/stm32l073rb.rs
+++ b/embassy-stm32/src/pac/stm32l073rb.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, RNG_LPUART1); 122impl_rng!(RNG, RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l073rz.rs b/embassy-stm32/src/pac/stm32l073rz.rs
index b3b4cf345..25b11f159 100644
--- a/embassy-stm32/src/pac/stm32l073rz.rs
+++ b/embassy-stm32/src/pac/stm32l073rz.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, RNG_LPUART1); 122impl_rng!(RNG, RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l073v8.rs b/embassy-stm32/src/pac/stm32l073v8.rs
index b3b4cf345..25b11f159 100644
--- a/embassy-stm32/src/pac/stm32l073v8.rs
+++ b/embassy-stm32/src/pac/stm32l073v8.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, RNG_LPUART1); 122impl_rng!(RNG, RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l073vb.rs b/embassy-stm32/src/pac/stm32l073vb.rs
index b3b4cf345..25b11f159 100644
--- a/embassy-stm32/src/pac/stm32l073vb.rs
+++ b/embassy-stm32/src/pac/stm32l073vb.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, RNG_LPUART1); 122impl_rng!(RNG, RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l073vz.rs b/embassy-stm32/src/pac/stm32l073vz.rs
index b3b4cf345..25b11f159 100644
--- a/embassy-stm32/src/pac/stm32l073vz.rs
+++ b/embassy-stm32/src/pac/stm32l073vz.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, RNG_LPUART1); 122impl_rng!(RNG, RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l081cb.rs b/embassy-stm32/src/pac/stm32l081cb.rs
index a62dc5b4b..a7c14d8fd 100644
--- a/embassy-stm32/src/pac/stm32l081cb.rs
+++ b/embassy-stm32/src/pac/stm32l081cb.rs
@@ -119,12 +119,12 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
119impl_gpio_pin!(PH15, 7, 15, EXTI15); 119impl_gpio_pin!(PH15, 7, 15, EXTI15);
120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
122pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 122pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
123pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 123pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
124pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 124pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
125pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 125pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
126pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 126pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
127pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 127pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
129impl_usart!(USART1); 129impl_usart!(USART1);
130impl_usart_pin!(USART1, RxPin, PA10, 4); 130impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l081cz.rs b/embassy-stm32/src/pac/stm32l081cz.rs
index a62dc5b4b..a7c14d8fd 100644
--- a/embassy-stm32/src/pac/stm32l081cz.rs
+++ b/embassy-stm32/src/pac/stm32l081cz.rs
@@ -119,12 +119,12 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
119impl_gpio_pin!(PH15, 7, 15, EXTI15); 119impl_gpio_pin!(PH15, 7, 15, EXTI15);
120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
122pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 122pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
123pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 123pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
124pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 124pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
125pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 125pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
126pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 126pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
127pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 127pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
129impl_usart!(USART1); 129impl_usart!(USART1);
130impl_usart_pin!(USART1, RxPin, PA10, 4); 130impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l081kz.rs b/embassy-stm32/src/pac/stm32l081kz.rs
index a62dc5b4b..a7c14d8fd 100644
--- a/embassy-stm32/src/pac/stm32l081kz.rs
+++ b/embassy-stm32/src/pac/stm32l081kz.rs
@@ -119,12 +119,12 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
119impl_gpio_pin!(PH15, 7, 15, EXTI15); 119impl_gpio_pin!(PH15, 7, 15, EXTI15);
120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _); 120pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 121pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
122pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 122pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
123pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 123pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
124pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 124pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
125pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 125pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
126pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 126pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
127pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 127pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 128pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
129impl_usart!(USART1); 129impl_usart!(USART1);
130impl_usart_pin!(USART1, RxPin, PA10, 4); 130impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l082cz.rs b/embassy-stm32/src/pac/stm32l082cz.rs
index bf0d71208..3684dc3c0 100644
--- a/embassy-stm32/src/pac/stm32l082cz.rs
+++ b/embassy-stm32/src/pac/stm32l082cz.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, AES_RNG_LPUART1); 122impl_rng!(RNG, AES_RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l082kb.rs b/embassy-stm32/src/pac/stm32l082kb.rs
index bf0d71208..3684dc3c0 100644
--- a/embassy-stm32/src/pac/stm32l082kb.rs
+++ b/embassy-stm32/src/pac/stm32l082kb.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, AES_RNG_LPUART1); 122impl_rng!(RNG, AES_RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l082kz.rs b/embassy-stm32/src/pac/stm32l082kz.rs
index bf0d71208..3684dc3c0 100644
--- a/embassy-stm32/src/pac/stm32l082kz.rs
+++ b/embassy-stm32/src/pac/stm32l082kz.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, AES_RNG_LPUART1); 122impl_rng!(RNG, AES_RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l083cb.rs b/embassy-stm32/src/pac/stm32l083cb.rs
index 41466f949..533bfb650 100644
--- a/embassy-stm32/src/pac/stm32l083cb.rs
+++ b/embassy-stm32/src/pac/stm32l083cb.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, AES_RNG_LPUART1); 122impl_rng!(RNG, AES_RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l083cz.rs b/embassy-stm32/src/pac/stm32l083cz.rs
index 41466f949..533bfb650 100644
--- a/embassy-stm32/src/pac/stm32l083cz.rs
+++ b/embassy-stm32/src/pac/stm32l083cz.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, AES_RNG_LPUART1); 122impl_rng!(RNG, AES_RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l083rb.rs b/embassy-stm32/src/pac/stm32l083rb.rs
index 41466f949..533bfb650 100644
--- a/embassy-stm32/src/pac/stm32l083rb.rs
+++ b/embassy-stm32/src/pac/stm32l083rb.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, AES_RNG_LPUART1); 122impl_rng!(RNG, AES_RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l083rz.rs b/embassy-stm32/src/pac/stm32l083rz.rs
index 41466f949..533bfb650 100644
--- a/embassy-stm32/src/pac/stm32l083rz.rs
+++ b/embassy-stm32/src/pac/stm32l083rz.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, AES_RNG_LPUART1); 122impl_rng!(RNG, AES_RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l083v8.rs b/embassy-stm32/src/pac/stm32l083v8.rs
index 41466f949..533bfb650 100644
--- a/embassy-stm32/src/pac/stm32l083v8.rs
+++ b/embassy-stm32/src/pac/stm32l083v8.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, AES_RNG_LPUART1); 122impl_rng!(RNG, AES_RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l083vb.rs b/embassy-stm32/src/pac/stm32l083vb.rs
index 41466f949..533bfb650 100644
--- a/embassy-stm32/src/pac/stm32l083vb.rs
+++ b/embassy-stm32/src/pac/stm32l083vb.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, AES_RNG_LPUART1); 122impl_rng!(RNG, AES_RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l083vz.rs b/embassy-stm32/src/pac/stm32l083vz.rs
index 41466f949..533bfb650 100644
--- a/embassy-stm32/src/pac/stm32l083vz.rs
+++ b/embassy-stm32/src/pac/stm32l083vz.rs
@@ -121,12 +121,12 @@ pub const RCC: rcc::Rcc = rcc::Rcc(0x40021000 as _);
121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _); 121pub const RNG: rng::Rng = rng::Rng(0x40025000 as _);
122impl_rng!(RNG, AES_RNG_LPUART1); 122impl_rng!(RNG, AES_RNG_LPUART1);
123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 123pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
124pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 124pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
125pub const TIM21: timer::Tim_gp16 = timer::Tim_gp16(0x40010800 as _); 125pub const TIM21: timer::TimGp16 = timer::TimGp16(0x40010800 as _);
126pub const TIM22: timer::Tim_gp16 = timer::Tim_gp16(0x40011400 as _); 126pub const TIM22: timer::TimGp16 = timer::TimGp16(0x40011400 as _);
127pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 127pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
128pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 128pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
129pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 129pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 130pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
131impl_usart!(USART1); 131impl_usart!(USART1);
132impl_usart_pin!(USART1, RxPin, PA10, 4); 132impl_usart_pin!(USART1, RxPin, PA10, 4);
diff --git a/embassy-stm32/src/pac/stm32l412c8.rs b/embassy-stm32/src/pac/stm32l412c8.rs
index 857dc928c..bf67a1d62 100644
--- a/embassy-stm32/src/pac/stm32l412c8.rs
+++ b/embassy-stm32/src/pac/stm32l412c8.rs
@@ -112,11 +112,11 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
113impl_rng!(RNG, RNG); 113impl_rng!(RNG, RNG);
114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
115pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 115pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
116pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 116pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
117pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 117pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
118pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 118pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
119pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 119pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
121impl_usart!(USART1); 121impl_usart!(USART1);
122impl_usart_pin!(USART1, RxPin, PA10, 7); 122impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l412cb.rs b/embassy-stm32/src/pac/stm32l412cb.rs
index 857dc928c..bf67a1d62 100644
--- a/embassy-stm32/src/pac/stm32l412cb.rs
+++ b/embassy-stm32/src/pac/stm32l412cb.rs
@@ -112,11 +112,11 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
113impl_rng!(RNG, RNG); 113impl_rng!(RNG, RNG);
114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
115pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 115pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
116pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 116pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
117pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 117pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
118pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 118pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
119pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 119pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
121impl_usart!(USART1); 121impl_usart!(USART1);
122impl_usart_pin!(USART1, RxPin, PA10, 7); 122impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l412k8.rs b/embassy-stm32/src/pac/stm32l412k8.rs
index fa5fee181..28b67bb6d 100644
--- a/embassy-stm32/src/pac/stm32l412k8.rs
+++ b/embassy-stm32/src/pac/stm32l412k8.rs
@@ -112,11 +112,11 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
113impl_rng!(RNG, RNG); 113impl_rng!(RNG, RNG);
114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
115pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 115pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
116pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 116pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
117pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 117pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
118pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 118pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
119pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 119pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
121impl_usart!(USART1); 121impl_usart!(USART1);
122impl_usart_pin!(USART1, RxPin, PA10, 7); 122impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l412kb.rs b/embassy-stm32/src/pac/stm32l412kb.rs
index fa5fee181..28b67bb6d 100644
--- a/embassy-stm32/src/pac/stm32l412kb.rs
+++ b/embassy-stm32/src/pac/stm32l412kb.rs
@@ -112,11 +112,11 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
113impl_rng!(RNG, RNG); 113impl_rng!(RNG, RNG);
114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
115pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 115pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
116pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 116pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
117pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 117pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
118pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 118pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
119pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 119pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
121impl_usart!(USART1); 121impl_usart!(USART1);
122impl_usart_pin!(USART1, RxPin, PA10, 7); 122impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l412r8.rs b/embassy-stm32/src/pac/stm32l412r8.rs
index 857dc928c..bf67a1d62 100644
--- a/embassy-stm32/src/pac/stm32l412r8.rs
+++ b/embassy-stm32/src/pac/stm32l412r8.rs
@@ -112,11 +112,11 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
113impl_rng!(RNG, RNG); 113impl_rng!(RNG, RNG);
114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
115pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 115pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
116pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 116pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
117pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 117pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
118pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 118pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
119pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 119pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
121impl_usart!(USART1); 121impl_usart!(USART1);
122impl_usart_pin!(USART1, RxPin, PA10, 7); 122impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l412rb.rs b/embassy-stm32/src/pac/stm32l412rb.rs
index 857dc928c..bf67a1d62 100644
--- a/embassy-stm32/src/pac/stm32l412rb.rs
+++ b/embassy-stm32/src/pac/stm32l412rb.rs
@@ -112,11 +112,11 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
113impl_rng!(RNG, RNG); 113impl_rng!(RNG, RNG);
114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
115pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 115pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
116pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 116pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
117pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 117pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
118pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 118pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
119pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 119pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
121impl_usart!(USART1); 121impl_usart!(USART1);
122impl_usart_pin!(USART1, RxPin, PA10, 7); 122impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l412t8.rs b/embassy-stm32/src/pac/stm32l412t8.rs
index fa5fee181..28b67bb6d 100644
--- a/embassy-stm32/src/pac/stm32l412t8.rs
+++ b/embassy-stm32/src/pac/stm32l412t8.rs
@@ -112,11 +112,11 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
113impl_rng!(RNG, RNG); 113impl_rng!(RNG, RNG);
114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
115pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 115pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
116pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 116pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
117pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 117pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
118pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 118pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
119pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 119pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
121impl_usart!(USART1); 121impl_usart!(USART1);
122impl_usart_pin!(USART1, RxPin, PA10, 7); 122impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l412tb.rs b/embassy-stm32/src/pac/stm32l412tb.rs
index fa5fee181..28b67bb6d 100644
--- a/embassy-stm32/src/pac/stm32l412tb.rs
+++ b/embassy-stm32/src/pac/stm32l412tb.rs
@@ -112,11 +112,11 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
113impl_rng!(RNG, RNG); 113impl_rng!(RNG, RNG);
114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
115pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 115pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
116pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 116pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
117pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 117pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
118pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 118pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
119pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 119pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
121impl_usart!(USART1); 121impl_usart!(USART1);
122impl_usart_pin!(USART1, RxPin, PA10, 7); 122impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l422cb.rs b/embassy-stm32/src/pac/stm32l422cb.rs
index 6d93bda8a..3ea0d8095 100644
--- a/embassy-stm32/src/pac/stm32l422cb.rs
+++ b/embassy-stm32/src/pac/stm32l422cb.rs
@@ -112,11 +112,11 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
113impl_rng!(RNG, RNG); 113impl_rng!(RNG, RNG);
114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
115pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 115pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
116pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 116pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
117pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 117pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
118pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 118pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
119pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 119pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
121impl_usart!(USART1); 121impl_usart!(USART1);
122impl_usart_pin!(USART1, RxPin, PA10, 7); 122impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l422kb.rs b/embassy-stm32/src/pac/stm32l422kb.rs
index 1f873e729..a0d343d50 100644
--- a/embassy-stm32/src/pac/stm32l422kb.rs
+++ b/embassy-stm32/src/pac/stm32l422kb.rs
@@ -112,11 +112,11 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
113impl_rng!(RNG, RNG); 113impl_rng!(RNG, RNG);
114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
115pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 115pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
116pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 116pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
117pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 117pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
118pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 118pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
119pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 119pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
121impl_usart!(USART1); 121impl_usart!(USART1);
122impl_usart_pin!(USART1, RxPin, PA10, 7); 122impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l422rb.rs b/embassy-stm32/src/pac/stm32l422rb.rs
index 6d93bda8a..3ea0d8095 100644
--- a/embassy-stm32/src/pac/stm32l422rb.rs
+++ b/embassy-stm32/src/pac/stm32l422rb.rs
@@ -112,11 +112,11 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
113impl_rng!(RNG, RNG); 113impl_rng!(RNG, RNG);
114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
115pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 115pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
116pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 116pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
117pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 117pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
118pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 118pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
119pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 119pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
121impl_usart!(USART1); 121impl_usart!(USART1);
122impl_usart_pin!(USART1, RxPin, PA10, 7); 122impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l422tb.rs b/embassy-stm32/src/pac/stm32l422tb.rs
index 1f873e729..a0d343d50 100644
--- a/embassy-stm32/src/pac/stm32l422tb.rs
+++ b/embassy-stm32/src/pac/stm32l422tb.rs
@@ -112,11 +112,11 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
113impl_rng!(RNG, RNG); 113impl_rng!(RNG, RNG);
114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 114pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
115pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 115pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
116pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 116pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
117pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 117pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
118pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 118pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
119pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 119pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 120pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
121impl_usart!(USART1); 121impl_usart!(USART1);
122impl_usart_pin!(USART1, RxPin, PA10, 7); 122impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l431cb.rs b/embassy-stm32/src/pac/stm32l431cb.rs
index 16d890fdb..6e5865255 100644
--- a/embassy-stm32/src/pac/stm32l431cb.rs
+++ b/embassy-stm32/src/pac/stm32l431cb.rs
@@ -162,12 +162,12 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
162impl_spi_pin!(SPI3, MisoPin, PC11, 6); 162impl_spi_pin!(SPI3, MisoPin, PC11, 6);
163impl_spi_pin!(SPI3, MosiPin, PC12, 6); 163impl_spi_pin!(SPI3, MosiPin, PC12, 6);
164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
165pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 165pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
166pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 166pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
167pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 167pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
168pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 168pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
169pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 169pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
170pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 170pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
172impl_usart!(USART1); 172impl_usart!(USART1);
173impl_usart_pin!(USART1, RxPin, PA10, 7); 173impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l431cc.rs b/embassy-stm32/src/pac/stm32l431cc.rs
index 16d890fdb..6e5865255 100644
--- a/embassy-stm32/src/pac/stm32l431cc.rs
+++ b/embassy-stm32/src/pac/stm32l431cc.rs
@@ -162,12 +162,12 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
162impl_spi_pin!(SPI3, MisoPin, PC11, 6); 162impl_spi_pin!(SPI3, MisoPin, PC11, 6);
163impl_spi_pin!(SPI3, MosiPin, PC12, 6); 163impl_spi_pin!(SPI3, MosiPin, PC12, 6);
164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
165pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 165pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
166pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 166pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
167pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 167pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
168pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 168pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
169pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 169pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
170pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 170pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
172impl_usart!(USART1); 172impl_usart!(USART1);
173impl_usart_pin!(USART1, RxPin, PA10, 7); 173impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l431kb.rs b/embassy-stm32/src/pac/stm32l431kb.rs
index ee8ad2f09..d1fe0d06f 100644
--- a/embassy-stm32/src/pac/stm32l431kb.rs
+++ b/embassy-stm32/src/pac/stm32l431kb.rs
@@ -151,12 +151,12 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
151impl_spi_pin!(SPI3, MisoPin, PC11, 6); 151impl_spi_pin!(SPI3, MisoPin, PC11, 6);
152impl_spi_pin!(SPI3, MosiPin, PC12, 6); 152impl_spi_pin!(SPI3, MosiPin, PC12, 6);
153pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 153pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
154pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 154pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
155pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 155pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
156pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 156pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
157pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 157pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
158pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 158pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
159pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 159pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
160pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 160pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
161impl_usart!(USART1); 161impl_usart!(USART1);
162impl_usart_pin!(USART1, RxPin, PA10, 7); 162impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l431kc.rs b/embassy-stm32/src/pac/stm32l431kc.rs
index ee8ad2f09..d1fe0d06f 100644
--- a/embassy-stm32/src/pac/stm32l431kc.rs
+++ b/embassy-stm32/src/pac/stm32l431kc.rs
@@ -151,12 +151,12 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
151impl_spi_pin!(SPI3, MisoPin, PC11, 6); 151impl_spi_pin!(SPI3, MisoPin, PC11, 6);
152impl_spi_pin!(SPI3, MosiPin, PC12, 6); 152impl_spi_pin!(SPI3, MosiPin, PC12, 6);
153pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 153pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
154pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 154pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
155pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 155pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
156pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 156pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
157pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 157pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
158pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 158pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
159pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 159pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
160pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 160pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
161impl_usart!(USART1); 161impl_usart!(USART1);
162impl_usart_pin!(USART1, RxPin, PA10, 7); 162impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l431rb.rs b/embassy-stm32/src/pac/stm32l431rb.rs
index 16d890fdb..6e5865255 100644
--- a/embassy-stm32/src/pac/stm32l431rb.rs
+++ b/embassy-stm32/src/pac/stm32l431rb.rs
@@ -162,12 +162,12 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
162impl_spi_pin!(SPI3, MisoPin, PC11, 6); 162impl_spi_pin!(SPI3, MisoPin, PC11, 6);
163impl_spi_pin!(SPI3, MosiPin, PC12, 6); 163impl_spi_pin!(SPI3, MosiPin, PC12, 6);
164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
165pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 165pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
166pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 166pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
167pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 167pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
168pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 168pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
169pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 169pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
170pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 170pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
172impl_usart!(USART1); 172impl_usart!(USART1);
173impl_usart_pin!(USART1, RxPin, PA10, 7); 173impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l431rc.rs b/embassy-stm32/src/pac/stm32l431rc.rs
index 16d890fdb..6e5865255 100644
--- a/embassy-stm32/src/pac/stm32l431rc.rs
+++ b/embassy-stm32/src/pac/stm32l431rc.rs
@@ -162,12 +162,12 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
162impl_spi_pin!(SPI3, MisoPin, PC11, 6); 162impl_spi_pin!(SPI3, MisoPin, PC11, 6);
163impl_spi_pin!(SPI3, MosiPin, PC12, 6); 163impl_spi_pin!(SPI3, MosiPin, PC12, 6);
164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
165pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 165pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
166pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 166pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
167pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 167pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
168pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 168pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
169pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 169pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
170pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 170pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
172impl_usart!(USART1); 172impl_usart!(USART1);
173impl_usart_pin!(USART1, RxPin, PA10, 7); 173impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l431vc.rs b/embassy-stm32/src/pac/stm32l431vc.rs
index 16d890fdb..6e5865255 100644
--- a/embassy-stm32/src/pac/stm32l431vc.rs
+++ b/embassy-stm32/src/pac/stm32l431vc.rs
@@ -162,12 +162,12 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
162impl_spi_pin!(SPI3, MisoPin, PC11, 6); 162impl_spi_pin!(SPI3, MisoPin, PC11, 6);
163impl_spi_pin!(SPI3, MosiPin, PC12, 6); 163impl_spi_pin!(SPI3, MosiPin, PC12, 6);
164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
165pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 165pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
166pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 166pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
167pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 167pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
168pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 168pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
169pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 169pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
170pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 170pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
172impl_usart!(USART1); 172impl_usart!(USART1);
173impl_usart_pin!(USART1, RxPin, PA10, 7); 173impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l432kb.rs b/embassy-stm32/src/pac/stm32l432kb.rs
index 20b44715e..2d7310cf4 100644
--- a/embassy-stm32/src/pac/stm32l432kb.rs
+++ b/embassy-stm32/src/pac/stm32l432kb.rs
@@ -114,12 +114,12 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
114impl_spi_pin!(SPI3, MisoPin, PC11, 6); 114impl_spi_pin!(SPI3, MisoPin, PC11, 6);
115impl_spi_pin!(SPI3, MosiPin, PC12, 6); 115impl_spi_pin!(SPI3, MosiPin, PC12, 6);
116pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 116pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
117pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 117pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
118pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 118pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
119pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 119pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
120pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 120pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
121pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 121pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
122pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 122pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
123pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 123pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
124impl_usart!(USART1); 124impl_usart!(USART1);
125impl_usart_pin!(USART1, RxPin, PA10, 7); 125impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l432kc.rs b/embassy-stm32/src/pac/stm32l432kc.rs
index 20b44715e..2d7310cf4 100644
--- a/embassy-stm32/src/pac/stm32l432kc.rs
+++ b/embassy-stm32/src/pac/stm32l432kc.rs
@@ -114,12 +114,12 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
114impl_spi_pin!(SPI3, MisoPin, PC11, 6); 114impl_spi_pin!(SPI3, MisoPin, PC11, 6);
115impl_spi_pin!(SPI3, MosiPin, PC12, 6); 115impl_spi_pin!(SPI3, MosiPin, PC12, 6);
116pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 116pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
117pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 117pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
118pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 118pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
119pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 119pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
120pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 120pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
121pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 121pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
122pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 122pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
123pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 123pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
124impl_usart!(USART1); 124impl_usart!(USART1);
125impl_usart_pin!(USART1, RxPin, PA10, 7); 125impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l433cb.rs b/embassy-stm32/src/pac/stm32l433cb.rs
index d349166f6..96394b965 100644
--- a/embassy-stm32/src/pac/stm32l433cb.rs
+++ b/embassy-stm32/src/pac/stm32l433cb.rs
@@ -162,12 +162,12 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
162impl_spi_pin!(SPI3, MisoPin, PC11, 6); 162impl_spi_pin!(SPI3, MisoPin, PC11, 6);
163impl_spi_pin!(SPI3, MosiPin, PC12, 6); 163impl_spi_pin!(SPI3, MosiPin, PC12, 6);
164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
165pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 165pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
166pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 166pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
167pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 167pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
168pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 168pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
169pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 169pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
170pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 170pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
172impl_usart!(USART1); 172impl_usart!(USART1);
173impl_usart_pin!(USART1, RxPin, PA10, 7); 173impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l433cc.rs b/embassy-stm32/src/pac/stm32l433cc.rs
index d349166f6..96394b965 100644
--- a/embassy-stm32/src/pac/stm32l433cc.rs
+++ b/embassy-stm32/src/pac/stm32l433cc.rs
@@ -162,12 +162,12 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
162impl_spi_pin!(SPI3, MisoPin, PC11, 6); 162impl_spi_pin!(SPI3, MisoPin, PC11, 6);
163impl_spi_pin!(SPI3, MosiPin, PC12, 6); 163impl_spi_pin!(SPI3, MosiPin, PC12, 6);
164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
165pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 165pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
166pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 166pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
167pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 167pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
168pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 168pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
169pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 169pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
170pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 170pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
172impl_usart!(USART1); 172impl_usart!(USART1);
173impl_usart_pin!(USART1, RxPin, PA10, 7); 173impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l433rb.rs b/embassy-stm32/src/pac/stm32l433rb.rs
index d349166f6..96394b965 100644
--- a/embassy-stm32/src/pac/stm32l433rb.rs
+++ b/embassy-stm32/src/pac/stm32l433rb.rs
@@ -162,12 +162,12 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
162impl_spi_pin!(SPI3, MisoPin, PC11, 6); 162impl_spi_pin!(SPI3, MisoPin, PC11, 6);
163impl_spi_pin!(SPI3, MosiPin, PC12, 6); 163impl_spi_pin!(SPI3, MosiPin, PC12, 6);
164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
165pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 165pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
166pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 166pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
167pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 167pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
168pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 168pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
169pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 169pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
170pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 170pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
172impl_usart!(USART1); 172impl_usart!(USART1);
173impl_usart_pin!(USART1, RxPin, PA10, 7); 173impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l433rc.rs b/embassy-stm32/src/pac/stm32l433rc.rs
index d349166f6..96394b965 100644
--- a/embassy-stm32/src/pac/stm32l433rc.rs
+++ b/embassy-stm32/src/pac/stm32l433rc.rs
@@ -162,12 +162,12 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
162impl_spi_pin!(SPI3, MisoPin, PC11, 6); 162impl_spi_pin!(SPI3, MisoPin, PC11, 6);
163impl_spi_pin!(SPI3, MosiPin, PC12, 6); 163impl_spi_pin!(SPI3, MosiPin, PC12, 6);
164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
165pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 165pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
166pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 166pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
167pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 167pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
168pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 168pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
169pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 169pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
170pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 170pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
172impl_usart!(USART1); 172impl_usart!(USART1);
173impl_usart_pin!(USART1, RxPin, PA10, 7); 173impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l433vc.rs b/embassy-stm32/src/pac/stm32l433vc.rs
index d349166f6..96394b965 100644
--- a/embassy-stm32/src/pac/stm32l433vc.rs
+++ b/embassy-stm32/src/pac/stm32l433vc.rs
@@ -162,12 +162,12 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
162impl_spi_pin!(SPI3, MisoPin, PC11, 6); 162impl_spi_pin!(SPI3, MisoPin, PC11, 6);
163impl_spi_pin!(SPI3, MosiPin, PC12, 6); 163impl_spi_pin!(SPI3, MosiPin, PC12, 6);
164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
165pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 165pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
166pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 166pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
167pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 167pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
168pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 168pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
169pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 169pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
170pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 170pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
172impl_usart!(USART1); 172impl_usart!(USART1);
173impl_usart_pin!(USART1, RxPin, PA10, 7); 173impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l442kc.rs b/embassy-stm32/src/pac/stm32l442kc.rs
index c6decbcb4..52b41cc23 100644
--- a/embassy-stm32/src/pac/stm32l442kc.rs
+++ b/embassy-stm32/src/pac/stm32l442kc.rs
@@ -114,12 +114,12 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
114impl_spi_pin!(SPI3, MisoPin, PC11, 6); 114impl_spi_pin!(SPI3, MisoPin, PC11, 6);
115impl_spi_pin!(SPI3, MosiPin, PC12, 6); 115impl_spi_pin!(SPI3, MosiPin, PC12, 6);
116pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 116pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
117pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 117pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
118pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 118pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
119pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 119pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
120pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 120pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
121pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 121pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
122pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 122pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
123pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 123pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
124impl_usart!(USART1); 124impl_usart!(USART1);
125impl_usart_pin!(USART1, RxPin, PA10, 7); 125impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l443cc.rs b/embassy-stm32/src/pac/stm32l443cc.rs
index 524dc89fa..d0afc1d4a 100644
--- a/embassy-stm32/src/pac/stm32l443cc.rs
+++ b/embassy-stm32/src/pac/stm32l443cc.rs
@@ -162,12 +162,12 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
162impl_spi_pin!(SPI3, MisoPin, PC11, 6); 162impl_spi_pin!(SPI3, MisoPin, PC11, 6);
163impl_spi_pin!(SPI3, MosiPin, PC12, 6); 163impl_spi_pin!(SPI3, MosiPin, PC12, 6);
164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
165pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 165pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
166pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 166pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
167pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 167pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
168pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 168pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
169pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 169pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
170pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 170pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
172impl_usart!(USART1); 172impl_usart!(USART1);
173impl_usart_pin!(USART1, RxPin, PA10, 7); 173impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l443rc.rs b/embassy-stm32/src/pac/stm32l443rc.rs
index 524dc89fa..d0afc1d4a 100644
--- a/embassy-stm32/src/pac/stm32l443rc.rs
+++ b/embassy-stm32/src/pac/stm32l443rc.rs
@@ -162,12 +162,12 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
162impl_spi_pin!(SPI3, MisoPin, PC11, 6); 162impl_spi_pin!(SPI3, MisoPin, PC11, 6);
163impl_spi_pin!(SPI3, MosiPin, PC12, 6); 163impl_spi_pin!(SPI3, MosiPin, PC12, 6);
164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
165pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 165pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
166pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 166pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
167pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 167pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
168pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 168pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
169pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 169pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
170pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 170pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
172impl_usart!(USART1); 172impl_usart!(USART1);
173impl_usart_pin!(USART1, RxPin, PA10, 7); 173impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l443vc.rs b/embassy-stm32/src/pac/stm32l443vc.rs
index 524dc89fa..d0afc1d4a 100644
--- a/embassy-stm32/src/pac/stm32l443vc.rs
+++ b/embassy-stm32/src/pac/stm32l443vc.rs
@@ -162,12 +162,12 @@ impl_spi_pin!(SPI3, SckPin, PC10, 6);
162impl_spi_pin!(SPI3, MisoPin, PC11, 6); 162impl_spi_pin!(SPI3, MisoPin, PC11, 6);
163impl_spi_pin!(SPI3, MosiPin, PC12, 6); 163impl_spi_pin!(SPI3, MosiPin, PC12, 6);
164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 164pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
165pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 165pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
166pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 166pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
167pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 167pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
168pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 168pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
169pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 169pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
170pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 170pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 171pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
172impl_usart!(USART1); 172impl_usart!(USART1);
173impl_usart_pin!(USART1, RxPin, PA10, 7); 173impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l451cc.rs b/embassy-stm32/src/pac/stm32l451cc.rs
index afa3ff551..6a417b522 100644
--- a/embassy-stm32/src/pac/stm32l451cc.rs
+++ b/embassy-stm32/src/pac/stm32l451cc.rs
@@ -129,12 +129,12 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130impl_rng!(RNG, RNG); 130impl_rng!(RNG, RNG);
131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
132pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 132pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
133pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 133pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
134pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 134pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
135pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 135pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
136pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 136pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
137pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 137pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
139impl_usart!(USART1); 139impl_usart!(USART1);
140impl_usart_pin!(USART1, RxPin, PA10, 7); 140impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l451ce.rs b/embassy-stm32/src/pac/stm32l451ce.rs
index afa3ff551..6a417b522 100644
--- a/embassy-stm32/src/pac/stm32l451ce.rs
+++ b/embassy-stm32/src/pac/stm32l451ce.rs
@@ -129,12 +129,12 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130impl_rng!(RNG, RNG); 130impl_rng!(RNG, RNG);
131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
132pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 132pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
133pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 133pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
134pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 134pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
135pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 135pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
136pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 136pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
137pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 137pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
139impl_usart!(USART1); 139impl_usart!(USART1);
140impl_usart_pin!(USART1, RxPin, PA10, 7); 140impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l451rc.rs b/embassy-stm32/src/pac/stm32l451rc.rs
index afa3ff551..6a417b522 100644
--- a/embassy-stm32/src/pac/stm32l451rc.rs
+++ b/embassy-stm32/src/pac/stm32l451rc.rs
@@ -129,12 +129,12 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130impl_rng!(RNG, RNG); 130impl_rng!(RNG, RNG);
131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
132pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 132pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
133pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 133pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
134pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 134pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
135pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 135pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
136pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 136pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
137pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 137pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
139impl_usart!(USART1); 139impl_usart!(USART1);
140impl_usart_pin!(USART1, RxPin, PA10, 7); 140impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l451re.rs b/embassy-stm32/src/pac/stm32l451re.rs
index afa3ff551..6a417b522 100644
--- a/embassy-stm32/src/pac/stm32l451re.rs
+++ b/embassy-stm32/src/pac/stm32l451re.rs
@@ -129,12 +129,12 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130impl_rng!(RNG, RNG); 130impl_rng!(RNG, RNG);
131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
132pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 132pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
133pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 133pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
134pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 134pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
135pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 135pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
136pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 136pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
137pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 137pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
139impl_usart!(USART1); 139impl_usart!(USART1);
140impl_usart_pin!(USART1, RxPin, PA10, 7); 140impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l451vc.rs b/embassy-stm32/src/pac/stm32l451vc.rs
index afa3ff551..6a417b522 100644
--- a/embassy-stm32/src/pac/stm32l451vc.rs
+++ b/embassy-stm32/src/pac/stm32l451vc.rs
@@ -129,12 +129,12 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130impl_rng!(RNG, RNG); 130impl_rng!(RNG, RNG);
131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
132pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 132pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
133pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 133pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
134pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 134pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
135pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 135pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
136pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 136pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
137pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 137pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
139impl_usart!(USART1); 139impl_usart!(USART1);
140impl_usart_pin!(USART1, RxPin, PA10, 7); 140impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l451ve.rs b/embassy-stm32/src/pac/stm32l451ve.rs
index afa3ff551..6a417b522 100644
--- a/embassy-stm32/src/pac/stm32l451ve.rs
+++ b/embassy-stm32/src/pac/stm32l451ve.rs
@@ -129,12 +129,12 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130impl_rng!(RNG, RNG); 130impl_rng!(RNG, RNG);
131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
132pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 132pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
133pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 133pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
134pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 134pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
135pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 135pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
136pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 136pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
137pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 137pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
139impl_usart!(USART1); 139impl_usart!(USART1);
140impl_usart_pin!(USART1, RxPin, PA10, 7); 140impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l452cc.rs b/embassy-stm32/src/pac/stm32l452cc.rs
index 0c2254635..03d0cab24 100644
--- a/embassy-stm32/src/pac/stm32l452cc.rs
+++ b/embassy-stm32/src/pac/stm32l452cc.rs
@@ -129,12 +129,12 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130impl_rng!(RNG, RNG); 130impl_rng!(RNG, RNG);
131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
132pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 132pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
133pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 133pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
134pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 134pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
135pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 135pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
136pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 136pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
137pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 137pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
139impl_usart!(USART1); 139impl_usart!(USART1);
140impl_usart_pin!(USART1, RxPin, PA10, 7); 140impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l452ce.rs b/embassy-stm32/src/pac/stm32l452ce.rs
index 0c2254635..03d0cab24 100644
--- a/embassy-stm32/src/pac/stm32l452ce.rs
+++ b/embassy-stm32/src/pac/stm32l452ce.rs
@@ -129,12 +129,12 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130impl_rng!(RNG, RNG); 130impl_rng!(RNG, RNG);
131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
132pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 132pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
133pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 133pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
134pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 134pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
135pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 135pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
136pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 136pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
137pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 137pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
139impl_usart!(USART1); 139impl_usart!(USART1);
140impl_usart_pin!(USART1, RxPin, PA10, 7); 140impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l452rc.rs b/embassy-stm32/src/pac/stm32l452rc.rs
index 0c2254635..03d0cab24 100644
--- a/embassy-stm32/src/pac/stm32l452rc.rs
+++ b/embassy-stm32/src/pac/stm32l452rc.rs
@@ -129,12 +129,12 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130impl_rng!(RNG, RNG); 130impl_rng!(RNG, RNG);
131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
132pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 132pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
133pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 133pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
134pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 134pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
135pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 135pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
136pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 136pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
137pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 137pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
139impl_usart!(USART1); 139impl_usart!(USART1);
140impl_usart_pin!(USART1, RxPin, PA10, 7); 140impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l452re.rs b/embassy-stm32/src/pac/stm32l452re.rs
index 0c2254635..03d0cab24 100644
--- a/embassy-stm32/src/pac/stm32l452re.rs
+++ b/embassy-stm32/src/pac/stm32l452re.rs
@@ -129,12 +129,12 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130impl_rng!(RNG, RNG); 130impl_rng!(RNG, RNG);
131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
132pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 132pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
133pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 133pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
134pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 134pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
135pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 135pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
136pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 136pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
137pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 137pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
139impl_usart!(USART1); 139impl_usart!(USART1);
140impl_usart_pin!(USART1, RxPin, PA10, 7); 140impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l452vc.rs b/embassy-stm32/src/pac/stm32l452vc.rs
index 0c2254635..03d0cab24 100644
--- a/embassy-stm32/src/pac/stm32l452vc.rs
+++ b/embassy-stm32/src/pac/stm32l452vc.rs
@@ -129,12 +129,12 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130impl_rng!(RNG, RNG); 130impl_rng!(RNG, RNG);
131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
132pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 132pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
133pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 133pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
134pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 134pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
135pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 135pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
136pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 136pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
137pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 137pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
139impl_usart!(USART1); 139impl_usart!(USART1);
140impl_usart_pin!(USART1, RxPin, PA10, 7); 140impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l452ve.rs b/embassy-stm32/src/pac/stm32l452ve.rs
index 0c2254635..03d0cab24 100644
--- a/embassy-stm32/src/pac/stm32l452ve.rs
+++ b/embassy-stm32/src/pac/stm32l452ve.rs
@@ -129,12 +129,12 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130impl_rng!(RNG, RNG); 130impl_rng!(RNG, RNG);
131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
132pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 132pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
133pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 133pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
134pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 134pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
135pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 135pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
136pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 136pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
137pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 137pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
139impl_usart!(USART1); 139impl_usart!(USART1);
140impl_usart_pin!(USART1, RxPin, PA10, 7); 140impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l462ce.rs b/embassy-stm32/src/pac/stm32l462ce.rs
index 00469cdb7..1e207754d 100644
--- a/embassy-stm32/src/pac/stm32l462ce.rs
+++ b/embassy-stm32/src/pac/stm32l462ce.rs
@@ -129,12 +129,12 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130impl_rng!(RNG, RNG); 130impl_rng!(RNG, RNG);
131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
132pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 132pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
133pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 133pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
134pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 134pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
135pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 135pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
136pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 136pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
137pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 137pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
139impl_usart!(USART1); 139impl_usart!(USART1);
140impl_usart_pin!(USART1, RxPin, PA10, 7); 140impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l462re.rs b/embassy-stm32/src/pac/stm32l462re.rs
index 00469cdb7..1e207754d 100644
--- a/embassy-stm32/src/pac/stm32l462re.rs
+++ b/embassy-stm32/src/pac/stm32l462re.rs
@@ -129,12 +129,12 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130impl_rng!(RNG, RNG); 130impl_rng!(RNG, RNG);
131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
132pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 132pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
133pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 133pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
134pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 134pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
135pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 135pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
136pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 136pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
137pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 137pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
139impl_usart!(USART1); 139impl_usart!(USART1);
140impl_usart_pin!(USART1, RxPin, PA10, 7); 140impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l462ve.rs b/embassy-stm32/src/pac/stm32l462ve.rs
index 00469cdb7..1e207754d 100644
--- a/embassy-stm32/src/pac/stm32l462ve.rs
+++ b/embassy-stm32/src/pac/stm32l462ve.rs
@@ -129,12 +129,12 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130impl_rng!(RNG, RNG); 130impl_rng!(RNG, RNG);
131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 131pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
132pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 132pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
133pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 133pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
134pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 134pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
135pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 135pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
136pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 136pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
137pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 137pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 138pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
139impl_usart!(USART1); 139impl_usart!(USART1);
140impl_usart_pin!(USART1, RxPin, PA10, 7); 140impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l471qe.rs b/embassy-stm32/src/pac/stm32l471qe.rs
index 96c4f100b..f171d99ec 100644
--- a/embassy-stm32/src/pac/stm32l471qe.rs
+++ b/embassy-stm32/src/pac/stm32l471qe.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l471qg.rs b/embassy-stm32/src/pac/stm32l471qg.rs
index 96c4f100b..f171d99ec 100644
--- a/embassy-stm32/src/pac/stm32l471qg.rs
+++ b/embassy-stm32/src/pac/stm32l471qg.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l471re.rs b/embassy-stm32/src/pac/stm32l471re.rs
index 96c4f100b..f171d99ec 100644
--- a/embassy-stm32/src/pac/stm32l471re.rs
+++ b/embassy-stm32/src/pac/stm32l471re.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l471rg.rs b/embassy-stm32/src/pac/stm32l471rg.rs
index 96c4f100b..f171d99ec 100644
--- a/embassy-stm32/src/pac/stm32l471rg.rs
+++ b/embassy-stm32/src/pac/stm32l471rg.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l471ve.rs b/embassy-stm32/src/pac/stm32l471ve.rs
index 96c4f100b..f171d99ec 100644
--- a/embassy-stm32/src/pac/stm32l471ve.rs
+++ b/embassy-stm32/src/pac/stm32l471ve.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l471vg.rs b/embassy-stm32/src/pac/stm32l471vg.rs
index 96c4f100b..f171d99ec 100644
--- a/embassy-stm32/src/pac/stm32l471vg.rs
+++ b/embassy-stm32/src/pac/stm32l471vg.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l471ze.rs b/embassy-stm32/src/pac/stm32l471ze.rs
index 96c4f100b..f171d99ec 100644
--- a/embassy-stm32/src/pac/stm32l471ze.rs
+++ b/embassy-stm32/src/pac/stm32l471ze.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l471zg.rs b/embassy-stm32/src/pac/stm32l471zg.rs
index 96c4f100b..f171d99ec 100644
--- a/embassy-stm32/src/pac/stm32l471zg.rs
+++ b/embassy-stm32/src/pac/stm32l471zg.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l475rc.rs b/embassy-stm32/src/pac/stm32l475rc.rs
index 85bff8043..9b939a289 100644
--- a/embassy-stm32/src/pac/stm32l475rc.rs
+++ b/embassy-stm32/src/pac/stm32l475rc.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l475re.rs b/embassy-stm32/src/pac/stm32l475re.rs
index 85bff8043..9b939a289 100644
--- a/embassy-stm32/src/pac/stm32l475re.rs
+++ b/embassy-stm32/src/pac/stm32l475re.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l475rg.rs b/embassy-stm32/src/pac/stm32l475rg.rs
index 85bff8043..9b939a289 100644
--- a/embassy-stm32/src/pac/stm32l475rg.rs
+++ b/embassy-stm32/src/pac/stm32l475rg.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l475vc.rs b/embassy-stm32/src/pac/stm32l475vc.rs
index 85bff8043..9b939a289 100644
--- a/embassy-stm32/src/pac/stm32l475vc.rs
+++ b/embassy-stm32/src/pac/stm32l475vc.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l475ve.rs b/embassy-stm32/src/pac/stm32l475ve.rs
index 85bff8043..9b939a289 100644
--- a/embassy-stm32/src/pac/stm32l475ve.rs
+++ b/embassy-stm32/src/pac/stm32l475ve.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l475vg.rs b/embassy-stm32/src/pac/stm32l475vg.rs
index 85bff8043..9b939a289 100644
--- a/embassy-stm32/src/pac/stm32l475vg.rs
+++ b/embassy-stm32/src/pac/stm32l475vg.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l476je.rs b/embassy-stm32/src/pac/stm32l476je.rs
index e9e0e201c..e16e69580 100644
--- a/embassy-stm32/src/pac/stm32l476je.rs
+++ b/embassy-stm32/src/pac/stm32l476je.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l476jg.rs b/embassy-stm32/src/pac/stm32l476jg.rs
index e9e0e201c..e16e69580 100644
--- a/embassy-stm32/src/pac/stm32l476jg.rs
+++ b/embassy-stm32/src/pac/stm32l476jg.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l476me.rs b/embassy-stm32/src/pac/stm32l476me.rs
index e9e0e201c..e16e69580 100644
--- a/embassy-stm32/src/pac/stm32l476me.rs
+++ b/embassy-stm32/src/pac/stm32l476me.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l476mg.rs b/embassy-stm32/src/pac/stm32l476mg.rs
index e9e0e201c..e16e69580 100644
--- a/embassy-stm32/src/pac/stm32l476mg.rs
+++ b/embassy-stm32/src/pac/stm32l476mg.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l476qe.rs b/embassy-stm32/src/pac/stm32l476qe.rs
index e9e0e201c..e16e69580 100644
--- a/embassy-stm32/src/pac/stm32l476qe.rs
+++ b/embassy-stm32/src/pac/stm32l476qe.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l476qg.rs b/embassy-stm32/src/pac/stm32l476qg.rs
index e9e0e201c..e16e69580 100644
--- a/embassy-stm32/src/pac/stm32l476qg.rs
+++ b/embassy-stm32/src/pac/stm32l476qg.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l476rc.rs b/embassy-stm32/src/pac/stm32l476rc.rs
index e9e0e201c..e16e69580 100644
--- a/embassy-stm32/src/pac/stm32l476rc.rs
+++ b/embassy-stm32/src/pac/stm32l476rc.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l476re.rs b/embassy-stm32/src/pac/stm32l476re.rs
index e9e0e201c..e16e69580 100644
--- a/embassy-stm32/src/pac/stm32l476re.rs
+++ b/embassy-stm32/src/pac/stm32l476re.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l476rg.rs b/embassy-stm32/src/pac/stm32l476rg.rs
index e9e0e201c..e16e69580 100644
--- a/embassy-stm32/src/pac/stm32l476rg.rs
+++ b/embassy-stm32/src/pac/stm32l476rg.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l476vc.rs b/embassy-stm32/src/pac/stm32l476vc.rs
index e9e0e201c..e16e69580 100644
--- a/embassy-stm32/src/pac/stm32l476vc.rs
+++ b/embassy-stm32/src/pac/stm32l476vc.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l476ve.rs b/embassy-stm32/src/pac/stm32l476ve.rs
index e9e0e201c..e16e69580 100644
--- a/embassy-stm32/src/pac/stm32l476ve.rs
+++ b/embassy-stm32/src/pac/stm32l476ve.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l476vg.rs b/embassy-stm32/src/pac/stm32l476vg.rs
index e9e0e201c..e16e69580 100644
--- a/embassy-stm32/src/pac/stm32l476vg.rs
+++ b/embassy-stm32/src/pac/stm32l476vg.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l476ze.rs b/embassy-stm32/src/pac/stm32l476ze.rs
index e9e0e201c..e16e69580 100644
--- a/embassy-stm32/src/pac/stm32l476ze.rs
+++ b/embassy-stm32/src/pac/stm32l476ze.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l476zg.rs b/embassy-stm32/src/pac/stm32l476zg.rs
index e9e0e201c..e16e69580 100644
--- a/embassy-stm32/src/pac/stm32l476zg.rs
+++ b/embassy-stm32/src/pac/stm32l476zg.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l485jc.rs b/embassy-stm32/src/pac/stm32l485jc.rs
index 0bd474294..ded29d55d 100644
--- a/embassy-stm32/src/pac/stm32l485jc.rs
+++ b/embassy-stm32/src/pac/stm32l485jc.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l485je.rs b/embassy-stm32/src/pac/stm32l485je.rs
index 0bd474294..ded29d55d 100644
--- a/embassy-stm32/src/pac/stm32l485je.rs
+++ b/embassy-stm32/src/pac/stm32l485je.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l486jg.rs b/embassy-stm32/src/pac/stm32l486jg.rs
index fb0f3f73c..203b2bb74 100644
--- a/embassy-stm32/src/pac/stm32l486jg.rs
+++ b/embassy-stm32/src/pac/stm32l486jg.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l486qg.rs b/embassy-stm32/src/pac/stm32l486qg.rs
index fb0f3f73c..203b2bb74 100644
--- a/embassy-stm32/src/pac/stm32l486qg.rs
+++ b/embassy-stm32/src/pac/stm32l486qg.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l486rg.rs b/embassy-stm32/src/pac/stm32l486rg.rs
index fb0f3f73c..203b2bb74 100644
--- a/embassy-stm32/src/pac/stm32l486rg.rs
+++ b/embassy-stm32/src/pac/stm32l486rg.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l486vg.rs b/embassy-stm32/src/pac/stm32l486vg.rs
index fb0f3f73c..203b2bb74 100644
--- a/embassy-stm32/src/pac/stm32l486vg.rs
+++ b/embassy-stm32/src/pac/stm32l486vg.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l486zg.rs b/embassy-stm32/src/pac/stm32l486zg.rs
index fb0f3f73c..203b2bb74 100644
--- a/embassy-stm32/src/pac/stm32l486zg.rs
+++ b/embassy-stm32/src/pac/stm32l486zg.rs
@@ -163,17 +163,17 @@ impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164impl_rng!(RNG, RNG); 164impl_rng!(RNG, RNG);
165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 165pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
166pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 166pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
167pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 167pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
168pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 168pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
169pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 169pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
170pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 170pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
171pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 171pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
172pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 172pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
173pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 173pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
174pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 174pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
175pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 175pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
176pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 176pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 177pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
178impl_usart!(USART1); 178impl_usart!(USART1);
179impl_usart_pin!(USART1, RxPin, PA10, 7); 179impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l496ae.rs b/embassy-stm32/src/pac/stm32l496ae.rs
index 043987576..f659db6d7 100644
--- a/embassy-stm32/src/pac/stm32l496ae.rs
+++ b/embassy-stm32/src/pac/stm32l496ae.rs
@@ -225,17 +225,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
225impl_spi_pin!(SPI3, MosiPin, PG11, 6); 225impl_spi_pin!(SPI3, MosiPin, PG11, 6);
226impl_spi_pin!(SPI3, SckPin, PG9, 6); 226impl_spi_pin!(SPI3, SckPin, PG9, 6);
227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
228pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 228pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
229pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 229pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
230pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 230pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
231pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 231pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
232pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 232pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
233pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 233pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
234pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 234pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
235pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 235pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
236pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 236pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
237pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 237pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
238pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 238pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
240impl_usart!(USART1); 240impl_usart!(USART1);
241impl_usart_pin!(USART1, RxPin, PA10, 7); 241impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l496ag.rs b/embassy-stm32/src/pac/stm32l496ag.rs
index 043987576..f659db6d7 100644
--- a/embassy-stm32/src/pac/stm32l496ag.rs
+++ b/embassy-stm32/src/pac/stm32l496ag.rs
@@ -225,17 +225,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
225impl_spi_pin!(SPI3, MosiPin, PG11, 6); 225impl_spi_pin!(SPI3, MosiPin, PG11, 6);
226impl_spi_pin!(SPI3, SckPin, PG9, 6); 226impl_spi_pin!(SPI3, SckPin, PG9, 6);
227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
228pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 228pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
229pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 229pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
230pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 230pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
231pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 231pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
232pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 232pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
233pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 233pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
234pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 234pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
235pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 235pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
236pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 236pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
237pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 237pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
238pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 238pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
240impl_usart!(USART1); 240impl_usart!(USART1);
241impl_usart_pin!(USART1, RxPin, PA10, 7); 241impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l496qe.rs b/embassy-stm32/src/pac/stm32l496qe.rs
index 043987576..f659db6d7 100644
--- a/embassy-stm32/src/pac/stm32l496qe.rs
+++ b/embassy-stm32/src/pac/stm32l496qe.rs
@@ -225,17 +225,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
225impl_spi_pin!(SPI3, MosiPin, PG11, 6); 225impl_spi_pin!(SPI3, MosiPin, PG11, 6);
226impl_spi_pin!(SPI3, SckPin, PG9, 6); 226impl_spi_pin!(SPI3, SckPin, PG9, 6);
227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
228pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 228pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
229pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 229pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
230pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 230pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
231pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 231pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
232pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 232pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
233pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 233pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
234pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 234pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
235pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 235pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
236pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 236pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
237pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 237pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
238pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 238pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
240impl_usart!(USART1); 240impl_usart!(USART1);
241impl_usart_pin!(USART1, RxPin, PA10, 7); 241impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l496qg.rs b/embassy-stm32/src/pac/stm32l496qg.rs
index 043987576..f659db6d7 100644
--- a/embassy-stm32/src/pac/stm32l496qg.rs
+++ b/embassy-stm32/src/pac/stm32l496qg.rs
@@ -225,17 +225,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
225impl_spi_pin!(SPI3, MosiPin, PG11, 6); 225impl_spi_pin!(SPI3, MosiPin, PG11, 6);
226impl_spi_pin!(SPI3, SckPin, PG9, 6); 226impl_spi_pin!(SPI3, SckPin, PG9, 6);
227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
228pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 228pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
229pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 229pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
230pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 230pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
231pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 231pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
232pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 232pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
233pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 233pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
234pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 234pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
235pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 235pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
236pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 236pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
237pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 237pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
238pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 238pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
240impl_usart!(USART1); 240impl_usart!(USART1);
241impl_usart_pin!(USART1, RxPin, PA10, 7); 241impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l496re.rs b/embassy-stm32/src/pac/stm32l496re.rs
index 043987576..f659db6d7 100644
--- a/embassy-stm32/src/pac/stm32l496re.rs
+++ b/embassy-stm32/src/pac/stm32l496re.rs
@@ -225,17 +225,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
225impl_spi_pin!(SPI3, MosiPin, PG11, 6); 225impl_spi_pin!(SPI3, MosiPin, PG11, 6);
226impl_spi_pin!(SPI3, SckPin, PG9, 6); 226impl_spi_pin!(SPI3, SckPin, PG9, 6);
227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
228pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 228pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
229pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 229pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
230pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 230pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
231pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 231pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
232pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 232pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
233pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 233pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
234pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 234pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
235pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 235pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
236pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 236pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
237pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 237pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
238pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 238pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
240impl_usart!(USART1); 240impl_usart!(USART1);
241impl_usart_pin!(USART1, RxPin, PA10, 7); 241impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l496rg.rs b/embassy-stm32/src/pac/stm32l496rg.rs
index 043987576..f659db6d7 100644
--- a/embassy-stm32/src/pac/stm32l496rg.rs
+++ b/embassy-stm32/src/pac/stm32l496rg.rs
@@ -225,17 +225,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
225impl_spi_pin!(SPI3, MosiPin, PG11, 6); 225impl_spi_pin!(SPI3, MosiPin, PG11, 6);
226impl_spi_pin!(SPI3, SckPin, PG9, 6); 226impl_spi_pin!(SPI3, SckPin, PG9, 6);
227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
228pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 228pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
229pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 229pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
230pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 230pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
231pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 231pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
232pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 232pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
233pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 233pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
234pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 234pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
235pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 235pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
236pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 236pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
237pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 237pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
238pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 238pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
240impl_usart!(USART1); 240impl_usart!(USART1);
241impl_usart_pin!(USART1, RxPin, PA10, 7); 241impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l496ve.rs b/embassy-stm32/src/pac/stm32l496ve.rs
index 043987576..f659db6d7 100644
--- a/embassy-stm32/src/pac/stm32l496ve.rs
+++ b/embassy-stm32/src/pac/stm32l496ve.rs
@@ -225,17 +225,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
225impl_spi_pin!(SPI3, MosiPin, PG11, 6); 225impl_spi_pin!(SPI3, MosiPin, PG11, 6);
226impl_spi_pin!(SPI3, SckPin, PG9, 6); 226impl_spi_pin!(SPI3, SckPin, PG9, 6);
227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
228pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 228pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
229pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 229pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
230pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 230pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
231pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 231pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
232pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 232pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
233pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 233pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
234pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 234pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
235pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 235pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
236pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 236pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
237pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 237pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
238pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 238pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
240impl_usart!(USART1); 240impl_usart!(USART1);
241impl_usart_pin!(USART1, RxPin, PA10, 7); 241impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l496vg.rs b/embassy-stm32/src/pac/stm32l496vg.rs
index 043987576..f659db6d7 100644
--- a/embassy-stm32/src/pac/stm32l496vg.rs
+++ b/embassy-stm32/src/pac/stm32l496vg.rs
@@ -225,17 +225,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
225impl_spi_pin!(SPI3, MosiPin, PG11, 6); 225impl_spi_pin!(SPI3, MosiPin, PG11, 6);
226impl_spi_pin!(SPI3, SckPin, PG9, 6); 226impl_spi_pin!(SPI3, SckPin, PG9, 6);
227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
228pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 228pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
229pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 229pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
230pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 230pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
231pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 231pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
232pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 232pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
233pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 233pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
234pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 234pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
235pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 235pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
236pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 236pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
237pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 237pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
238pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 238pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
240impl_usart!(USART1); 240impl_usart!(USART1);
241impl_usart_pin!(USART1, RxPin, PA10, 7); 241impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l496wg.rs b/embassy-stm32/src/pac/stm32l496wg.rs
index 043987576..f659db6d7 100644
--- a/embassy-stm32/src/pac/stm32l496wg.rs
+++ b/embassy-stm32/src/pac/stm32l496wg.rs
@@ -225,17 +225,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
225impl_spi_pin!(SPI3, MosiPin, PG11, 6); 225impl_spi_pin!(SPI3, MosiPin, PG11, 6);
226impl_spi_pin!(SPI3, SckPin, PG9, 6); 226impl_spi_pin!(SPI3, SckPin, PG9, 6);
227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
228pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 228pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
229pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 229pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
230pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 230pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
231pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 231pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
232pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 232pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
233pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 233pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
234pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 234pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
235pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 235pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
236pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 236pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
237pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 237pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
238pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 238pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
240impl_usart!(USART1); 240impl_usart!(USART1);
241impl_usart_pin!(USART1, RxPin, PA10, 7); 241impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l496ze.rs b/embassy-stm32/src/pac/stm32l496ze.rs
index 043987576..f659db6d7 100644
--- a/embassy-stm32/src/pac/stm32l496ze.rs
+++ b/embassy-stm32/src/pac/stm32l496ze.rs
@@ -225,17 +225,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
225impl_spi_pin!(SPI3, MosiPin, PG11, 6); 225impl_spi_pin!(SPI3, MosiPin, PG11, 6);
226impl_spi_pin!(SPI3, SckPin, PG9, 6); 226impl_spi_pin!(SPI3, SckPin, PG9, 6);
227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
228pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 228pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
229pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 229pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
230pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 230pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
231pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 231pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
232pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 232pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
233pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 233pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
234pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 234pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
235pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 235pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
236pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 236pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
237pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 237pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
238pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 238pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
240impl_usart!(USART1); 240impl_usart!(USART1);
241impl_usart_pin!(USART1, RxPin, PA10, 7); 241impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l496zg.rs b/embassy-stm32/src/pac/stm32l496zg.rs
index 043987576..f659db6d7 100644
--- a/embassy-stm32/src/pac/stm32l496zg.rs
+++ b/embassy-stm32/src/pac/stm32l496zg.rs
@@ -225,17 +225,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
225impl_spi_pin!(SPI3, MosiPin, PG11, 6); 225impl_spi_pin!(SPI3, MosiPin, PG11, 6);
226impl_spi_pin!(SPI3, SckPin, PG9, 6); 226impl_spi_pin!(SPI3, SckPin, PG9, 6);
227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
228pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 228pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
229pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 229pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
230pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 230pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
231pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 231pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
232pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 232pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
233pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 233pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
234pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 234pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
235pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 235pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
236pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 236pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
237pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 237pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
238pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 238pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
240impl_usart!(USART1); 240impl_usart!(USART1);
241impl_usart_pin!(USART1, RxPin, PA10, 7); 241impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l4a6ag.rs b/embassy-stm32/src/pac/stm32l4a6ag.rs
index 44f3d8558..d6c79ee3f 100644
--- a/embassy-stm32/src/pac/stm32l4a6ag.rs
+++ b/embassy-stm32/src/pac/stm32l4a6ag.rs
@@ -225,17 +225,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
225impl_spi_pin!(SPI3, MosiPin, PG11, 6); 225impl_spi_pin!(SPI3, MosiPin, PG11, 6);
226impl_spi_pin!(SPI3, SckPin, PG9, 6); 226impl_spi_pin!(SPI3, SckPin, PG9, 6);
227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
228pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 228pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
229pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 229pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
230pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 230pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
231pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 231pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
232pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 232pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
233pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 233pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
234pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 234pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
235pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 235pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
236pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 236pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
237pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 237pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
238pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 238pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
240impl_usart!(USART1); 240impl_usart!(USART1);
241impl_usart_pin!(USART1, RxPin, PA10, 7); 241impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l4a6qg.rs b/embassy-stm32/src/pac/stm32l4a6qg.rs
index 44f3d8558..d6c79ee3f 100644
--- a/embassy-stm32/src/pac/stm32l4a6qg.rs
+++ b/embassy-stm32/src/pac/stm32l4a6qg.rs
@@ -225,17 +225,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
225impl_spi_pin!(SPI3, MosiPin, PG11, 6); 225impl_spi_pin!(SPI3, MosiPin, PG11, 6);
226impl_spi_pin!(SPI3, SckPin, PG9, 6); 226impl_spi_pin!(SPI3, SckPin, PG9, 6);
227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
228pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 228pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
229pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 229pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
230pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 230pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
231pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 231pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
232pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 232pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
233pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 233pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
234pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 234pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
235pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 235pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
236pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 236pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
237pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 237pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
238pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 238pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
240impl_usart!(USART1); 240impl_usart!(USART1);
241impl_usart_pin!(USART1, RxPin, PA10, 7); 241impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l4a6rg.rs b/embassy-stm32/src/pac/stm32l4a6rg.rs
index 44f3d8558..d6c79ee3f 100644
--- a/embassy-stm32/src/pac/stm32l4a6rg.rs
+++ b/embassy-stm32/src/pac/stm32l4a6rg.rs
@@ -225,17 +225,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
225impl_spi_pin!(SPI3, MosiPin, PG11, 6); 225impl_spi_pin!(SPI3, MosiPin, PG11, 6);
226impl_spi_pin!(SPI3, SckPin, PG9, 6); 226impl_spi_pin!(SPI3, SckPin, PG9, 6);
227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
228pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 228pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
229pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 229pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
230pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 230pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
231pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 231pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
232pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 232pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
233pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 233pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
234pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 234pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
235pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 235pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
236pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 236pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
237pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 237pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
238pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 238pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
240impl_usart!(USART1); 240impl_usart!(USART1);
241impl_usart_pin!(USART1, RxPin, PA10, 7); 241impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l4a6vg.rs b/embassy-stm32/src/pac/stm32l4a6vg.rs
index 44f3d8558..d6c79ee3f 100644
--- a/embassy-stm32/src/pac/stm32l4a6vg.rs
+++ b/embassy-stm32/src/pac/stm32l4a6vg.rs
@@ -225,17 +225,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
225impl_spi_pin!(SPI3, MosiPin, PG11, 6); 225impl_spi_pin!(SPI3, MosiPin, PG11, 6);
226impl_spi_pin!(SPI3, SckPin, PG9, 6); 226impl_spi_pin!(SPI3, SckPin, PG9, 6);
227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
228pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 228pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
229pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 229pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
230pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 230pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
231pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 231pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
232pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 232pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
233pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 233pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
234pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 234pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
235pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 235pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
236pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 236pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
237pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 237pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
238pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 238pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
240impl_usart!(USART1); 240impl_usart!(USART1);
241impl_usart_pin!(USART1, RxPin, PA10, 7); 241impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l4a6zg.rs b/embassy-stm32/src/pac/stm32l4a6zg.rs
index 44f3d8558..d6c79ee3f 100644
--- a/embassy-stm32/src/pac/stm32l4a6zg.rs
+++ b/embassy-stm32/src/pac/stm32l4a6zg.rs
@@ -225,17 +225,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
225impl_spi_pin!(SPI3, MosiPin, PG11, 6); 225impl_spi_pin!(SPI3, MosiPin, PG11, 6);
226impl_spi_pin!(SPI3, SckPin, PG9, 6); 226impl_spi_pin!(SPI3, SckPin, PG9, 6);
227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 227pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
228pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 228pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
229pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 229pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
230pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 230pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
231pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 231pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
232pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 232pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
233pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 233pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
234pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 234pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
235pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 235pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
236pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 236pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
237pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 237pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
238pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 238pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _); 239pub const USART1: usart::Usart = usart::Usart(0x40013800 as _);
240impl_usart!(USART1); 240impl_usart!(USART1);
241impl_usart_pin!(USART1, RxPin, PA10, 7); 241impl_usart_pin!(USART1, RxPin, PA10, 7);
diff --git a/embassy-stm32/src/pac/stm32l4p5ae.rs b/embassy-stm32/src/pac/stm32l4p5ae.rs
index 4b4b2ab17..a51beb957 100644
--- a/embassy-stm32/src/pac/stm32l4p5ae.rs
+++ b/embassy-stm32/src/pac/stm32l4p5ae.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4p5ag.rs b/embassy-stm32/src/pac/stm32l4p5ag.rs
index 4b4b2ab17..a51beb957 100644
--- a/embassy-stm32/src/pac/stm32l4p5ag.rs
+++ b/embassy-stm32/src/pac/stm32l4p5ag.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4p5ce.rs b/embassy-stm32/src/pac/stm32l4p5ce.rs
index 4b4b2ab17..a51beb957 100644
--- a/embassy-stm32/src/pac/stm32l4p5ce.rs
+++ b/embassy-stm32/src/pac/stm32l4p5ce.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4p5cg.rs b/embassy-stm32/src/pac/stm32l4p5cg.rs
index 4b4b2ab17..a51beb957 100644
--- a/embassy-stm32/src/pac/stm32l4p5cg.rs
+++ b/embassy-stm32/src/pac/stm32l4p5cg.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4p5qe.rs b/embassy-stm32/src/pac/stm32l4p5qe.rs
index 4b4b2ab17..a51beb957 100644
--- a/embassy-stm32/src/pac/stm32l4p5qe.rs
+++ b/embassy-stm32/src/pac/stm32l4p5qe.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4p5qg.rs b/embassy-stm32/src/pac/stm32l4p5qg.rs
index 4b4b2ab17..a51beb957 100644
--- a/embassy-stm32/src/pac/stm32l4p5qg.rs
+++ b/embassy-stm32/src/pac/stm32l4p5qg.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4p5re.rs b/embassy-stm32/src/pac/stm32l4p5re.rs
index 4b4b2ab17..a51beb957 100644
--- a/embassy-stm32/src/pac/stm32l4p5re.rs
+++ b/embassy-stm32/src/pac/stm32l4p5re.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4p5rg.rs b/embassy-stm32/src/pac/stm32l4p5rg.rs
index 4b4b2ab17..a51beb957 100644
--- a/embassy-stm32/src/pac/stm32l4p5rg.rs
+++ b/embassy-stm32/src/pac/stm32l4p5rg.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4p5ve.rs b/embassy-stm32/src/pac/stm32l4p5ve.rs
index 4b4b2ab17..a51beb957 100644
--- a/embassy-stm32/src/pac/stm32l4p5ve.rs
+++ b/embassy-stm32/src/pac/stm32l4p5ve.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4p5vg.rs b/embassy-stm32/src/pac/stm32l4p5vg.rs
index 4b4b2ab17..a51beb957 100644
--- a/embassy-stm32/src/pac/stm32l4p5vg.rs
+++ b/embassy-stm32/src/pac/stm32l4p5vg.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4p5ze.rs b/embassy-stm32/src/pac/stm32l4p5ze.rs
index 4b4b2ab17..a51beb957 100644
--- a/embassy-stm32/src/pac/stm32l4p5ze.rs
+++ b/embassy-stm32/src/pac/stm32l4p5ze.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4p5zg.rs b/embassy-stm32/src/pac/stm32l4p5zg.rs
index 4b4b2ab17..a51beb957 100644
--- a/embassy-stm32/src/pac/stm32l4p5zg.rs
+++ b/embassy-stm32/src/pac/stm32l4p5zg.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4q5ag.rs b/embassy-stm32/src/pac/stm32l4q5ag.rs
index b94a38839..1c673c33a 100644
--- a/embassy-stm32/src/pac/stm32l4q5ag.rs
+++ b/embassy-stm32/src/pac/stm32l4q5ag.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4q5cg.rs b/embassy-stm32/src/pac/stm32l4q5cg.rs
index b94a38839..1c673c33a 100644
--- a/embassy-stm32/src/pac/stm32l4q5cg.rs
+++ b/embassy-stm32/src/pac/stm32l4q5cg.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4q5qg.rs b/embassy-stm32/src/pac/stm32l4q5qg.rs
index b94a38839..1c673c33a 100644
--- a/embassy-stm32/src/pac/stm32l4q5qg.rs
+++ b/embassy-stm32/src/pac/stm32l4q5qg.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4q5rg.rs b/embassy-stm32/src/pac/stm32l4q5rg.rs
index b94a38839..1c673c33a 100644
--- a/embassy-stm32/src/pac/stm32l4q5rg.rs
+++ b/embassy-stm32/src/pac/stm32l4q5rg.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4q5vg.rs b/embassy-stm32/src/pac/stm32l4q5vg.rs
index b94a38839..1c673c33a 100644
--- a/embassy-stm32/src/pac/stm32l4q5vg.rs
+++ b/embassy-stm32/src/pac/stm32l4q5vg.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4q5zg.rs b/embassy-stm32/src/pac/stm32l4q5zg.rs
index b94a38839..1c673c33a 100644
--- a/embassy-stm32/src/pac/stm32l4q5zg.rs
+++ b/embassy-stm32/src/pac/stm32l4q5zg.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4r5ag.rs b/embassy-stm32/src/pac/stm32l4r5ag.rs
index 38616f427..c9aa447b5 100644
--- a/embassy-stm32/src/pac/stm32l4r5ag.rs
+++ b/embassy-stm32/src/pac/stm32l4r5ag.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4r5ai.rs b/embassy-stm32/src/pac/stm32l4r5ai.rs
index 38616f427..c9aa447b5 100644
--- a/embassy-stm32/src/pac/stm32l4r5ai.rs
+++ b/embassy-stm32/src/pac/stm32l4r5ai.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4r5qg.rs b/embassy-stm32/src/pac/stm32l4r5qg.rs
index 38616f427..c9aa447b5 100644
--- a/embassy-stm32/src/pac/stm32l4r5qg.rs
+++ b/embassy-stm32/src/pac/stm32l4r5qg.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4r5qi.rs b/embassy-stm32/src/pac/stm32l4r5qi.rs
index 38616f427..c9aa447b5 100644
--- a/embassy-stm32/src/pac/stm32l4r5qi.rs
+++ b/embassy-stm32/src/pac/stm32l4r5qi.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4r5vg.rs b/embassy-stm32/src/pac/stm32l4r5vg.rs
index 38616f427..c9aa447b5 100644
--- a/embassy-stm32/src/pac/stm32l4r5vg.rs
+++ b/embassy-stm32/src/pac/stm32l4r5vg.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4r5vi.rs b/embassy-stm32/src/pac/stm32l4r5vi.rs
index 38616f427..c9aa447b5 100644
--- a/embassy-stm32/src/pac/stm32l4r5vi.rs
+++ b/embassy-stm32/src/pac/stm32l4r5vi.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4r5zg.rs b/embassy-stm32/src/pac/stm32l4r5zg.rs
index 38616f427..c9aa447b5 100644
--- a/embassy-stm32/src/pac/stm32l4r5zg.rs
+++ b/embassy-stm32/src/pac/stm32l4r5zg.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4r5zi.rs b/embassy-stm32/src/pac/stm32l4r5zi.rs
index 38616f427..c9aa447b5 100644
--- a/embassy-stm32/src/pac/stm32l4r5zi.rs
+++ b/embassy-stm32/src/pac/stm32l4r5zi.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4r7ai.rs b/embassy-stm32/src/pac/stm32l4r7ai.rs
index 2aa99881a..a53b77869 100644
--- a/embassy-stm32/src/pac/stm32l4r7ai.rs
+++ b/embassy-stm32/src/pac/stm32l4r7ai.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4r7vi.rs b/embassy-stm32/src/pac/stm32l4r7vi.rs
index 2aa99881a..a53b77869 100644
--- a/embassy-stm32/src/pac/stm32l4r7vi.rs
+++ b/embassy-stm32/src/pac/stm32l4r7vi.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4r7zi.rs b/embassy-stm32/src/pac/stm32l4r7zi.rs
index 2aa99881a..a53b77869 100644
--- a/embassy-stm32/src/pac/stm32l4r7zi.rs
+++ b/embassy-stm32/src/pac/stm32l4r7zi.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4r9ag.rs b/embassy-stm32/src/pac/stm32l4r9ag.rs
index d3b33aedf..8a58b8bbe 100644
--- a/embassy-stm32/src/pac/stm32l4r9ag.rs
+++ b/embassy-stm32/src/pac/stm32l4r9ag.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4r9ai.rs b/embassy-stm32/src/pac/stm32l4r9ai.rs
index d3b33aedf..8a58b8bbe 100644
--- a/embassy-stm32/src/pac/stm32l4r9ai.rs
+++ b/embassy-stm32/src/pac/stm32l4r9ai.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4r9vg.rs b/embassy-stm32/src/pac/stm32l4r9vg.rs
index d3b33aedf..8a58b8bbe 100644
--- a/embassy-stm32/src/pac/stm32l4r9vg.rs
+++ b/embassy-stm32/src/pac/stm32l4r9vg.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4r9vi.rs b/embassy-stm32/src/pac/stm32l4r9vi.rs
index d3b33aedf..8a58b8bbe 100644
--- a/embassy-stm32/src/pac/stm32l4r9vi.rs
+++ b/embassy-stm32/src/pac/stm32l4r9vi.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4r9zg.rs b/embassy-stm32/src/pac/stm32l4r9zg.rs
index d3b33aedf..8a58b8bbe 100644
--- a/embassy-stm32/src/pac/stm32l4r9zg.rs
+++ b/embassy-stm32/src/pac/stm32l4r9zg.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4r9zi.rs b/embassy-stm32/src/pac/stm32l4r9zi.rs
index d3b33aedf..8a58b8bbe 100644
--- a/embassy-stm32/src/pac/stm32l4r9zi.rs
+++ b/embassy-stm32/src/pac/stm32l4r9zi.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4s5ai.rs b/embassy-stm32/src/pac/stm32l4s5ai.rs
index 4bf3c6ad4..54f890c74 100644
--- a/embassy-stm32/src/pac/stm32l4s5ai.rs
+++ b/embassy-stm32/src/pac/stm32l4s5ai.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4s5qi.rs b/embassy-stm32/src/pac/stm32l4s5qi.rs
index 4bf3c6ad4..54f890c74 100644
--- a/embassy-stm32/src/pac/stm32l4s5qi.rs
+++ b/embassy-stm32/src/pac/stm32l4s5qi.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4s5vi.rs b/embassy-stm32/src/pac/stm32l4s5vi.rs
index 4bf3c6ad4..54f890c74 100644
--- a/embassy-stm32/src/pac/stm32l4s5vi.rs
+++ b/embassy-stm32/src/pac/stm32l4s5vi.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4s5zi.rs b/embassy-stm32/src/pac/stm32l4s5zi.rs
index 4bf3c6ad4..54f890c74 100644
--- a/embassy-stm32/src/pac/stm32l4s5zi.rs
+++ b/embassy-stm32/src/pac/stm32l4s5zi.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4s7ai.rs b/embassy-stm32/src/pac/stm32l4s7ai.rs
index 014168756..8a4d962b1 100644
--- a/embassy-stm32/src/pac/stm32l4s7ai.rs
+++ b/embassy-stm32/src/pac/stm32l4s7ai.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4s7vi.rs b/embassy-stm32/src/pac/stm32l4s7vi.rs
index 014168756..8a4d962b1 100644
--- a/embassy-stm32/src/pac/stm32l4s7vi.rs
+++ b/embassy-stm32/src/pac/stm32l4s7vi.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4s7zi.rs b/embassy-stm32/src/pac/stm32l4s7zi.rs
index 014168756..8a4d962b1 100644
--- a/embassy-stm32/src/pac/stm32l4s7zi.rs
+++ b/embassy-stm32/src/pac/stm32l4s7zi.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4s9ai.rs b/embassy-stm32/src/pac/stm32l4s9ai.rs
index d9e6bd3d8..14b880e1f 100644
--- a/embassy-stm32/src/pac/stm32l4s9ai.rs
+++ b/embassy-stm32/src/pac/stm32l4s9ai.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4s9vi.rs b/embassy-stm32/src/pac/stm32l4s9vi.rs
index d9e6bd3d8..14b880e1f 100644
--- a/embassy-stm32/src/pac/stm32l4s9vi.rs
+++ b/embassy-stm32/src/pac/stm32l4s9vi.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;
diff --git a/embassy-stm32/src/pac/stm32l4s9zi.rs b/embassy-stm32/src/pac/stm32l4s9zi.rs
index d9e6bd3d8..14b880e1f 100644
--- a/embassy-stm32/src/pac/stm32l4s9zi.rs
+++ b/embassy-stm32/src/pac/stm32l4s9zi.rs
@@ -226,17 +226,17 @@ impl_spi_pin!(SPI3, MisoPin, PG10, 6);
226impl_spi_pin!(SPI3, MosiPin, PG11, 6); 226impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 227impl_spi_pin!(SPI3, SckPin, PG9, 6);
228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _); 228pub const SYSCFG: syscfg::Syscfg = syscfg::Syscfg(0x40010000 as _);
229pub const TIM1: timer::Tim_gp16 = timer::Tim_gp16(0x40012c00 as _); 229pub const TIM1: timer::TimGp16 = timer::TimGp16(0x40012c00 as _);
230pub const TIM15: timer::Tim_gp16 = timer::Tim_gp16(0x40014000 as _); 230pub const TIM15: timer::TimGp16 = timer::TimGp16(0x40014000 as _);
231pub const TIM16: timer::Tim_gp16 = timer::Tim_gp16(0x40014400 as _); 231pub const TIM16: timer::TimGp16 = timer::TimGp16(0x40014400 as _);
232pub const TIM17: timer::Tim_gp16 = timer::Tim_gp16(0x40014800 as _); 232pub const TIM17: timer::TimGp16 = timer::TimGp16(0x40014800 as _);
233pub const TIM2: timer::Tim_gp16 = timer::Tim_gp16(0x40000000 as _); 233pub const TIM2: timer::TimGp16 = timer::TimGp16(0x40000000 as _);
234pub const TIM3: timer::Tim_gp16 = timer::Tim_gp16(0x40000400 as _); 234pub const TIM3: timer::TimGp16 = timer::TimGp16(0x40000400 as _);
235pub const TIM4: timer::Tim_gp16 = timer::Tim_gp16(0x40000800 as _); 235pub const TIM4: timer::TimGp16 = timer::TimGp16(0x40000800 as _);
236pub const TIM5: timer::Tim_gp16 = timer::Tim_gp16(0x40000c00 as _); 236pub const TIM5: timer::TimGp16 = timer::TimGp16(0x40000c00 as _);
237pub const TIM6: timer::Tim_gp16 = timer::Tim_gp16(0x40001000 as _); 237pub const TIM6: timer::TimGp16 = timer::TimGp16(0x40001000 as _);
238pub const TIM7: timer::Tim_gp16 = timer::Tim_gp16(0x40001400 as _); 238pub const TIM7: timer::TimGp16 = timer::TimGp16(0x40001400 as _);
239pub const TIM8: timer::Tim_gp16 = timer::Tim_gp16(0x40013400 as _); 239pub const TIM8: timer::TimGp16 = timer::TimGp16(0x40013400 as _);
240pub use super::regs::dma_v1 as dma; 240pub use super::regs::dma_v1 as dma;
241pub use super::regs::exti_v1 as exti; 241pub use super::regs::exti_v1 as exti;
242pub use super::regs::gpio_v2 as gpio; 242pub use super::regs::gpio_v2 as gpio;