aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThales Fragoso <[email protected]>2021-05-13 23:25:12 -0300
committerThales Fragoso <[email protected]>2021-05-14 23:47:56 -0300
commita5d473be0e209531b6e7b90d9de0cf73f15d38c1 (patch)
treec235f9d36c4a81520550cf7fe90c7704a4a66ad3
parent2cb66d6032ba26f1e0960347adb7bc886e4ba18a (diff)
Fix RNG interrupt name
-rw-r--r--embassy-stm32/Cargo.toml1
-rw-r--r--embassy-stm32/src/pac/regs.rs9209
-rw-r--r--embassy-stm32/src/pac/stm32f405oe.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f405og.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f405rg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f405vg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f405zg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f407ie.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f407ig.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f407ve.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f407vg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f407ze.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f407zg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f412ce.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f412cg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f412re.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f412rg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f412ve.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f412vg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f412ze.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f412zg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f413cg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f413ch.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f413mg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f413mh.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f413rg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f413rh.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f413vg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f413vh.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f413zg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f413zh.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f415og.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f415rg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f415vg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f415zg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f417ie.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f417ig.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f417ve.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f417vg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f417ze.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f417zg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f423ch.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f423mh.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f423rh.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f423vh.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f423zh.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f427ag.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f427ai.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f427ig.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f427ii.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f427vg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f427vi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f427zg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f427zi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f429ag.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f429ai.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f429be.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f429bg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f429bi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f429ie.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f429ig.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f429ii.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f429ne.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f429ng.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f429ni.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f429ve.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f429vg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f429vi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f429ze.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f429zg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f429zi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f437ai.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f437ig.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f437ii.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f437vg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f437vi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f437zg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f437zi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f439ai.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f439bg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f439bi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f439ig.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f439ii.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f439ng.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f439ni.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f439vg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f439vi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f439zg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32f439zi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32h723ve.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h723vg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h723ze.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h723zg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h725ae.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h725ag.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h725ie.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h725ig.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h725re.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h725rg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h725ve.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h725vg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h725ze.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h725zg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h730ab.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h730ib.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h730vb.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h730zb.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h733vg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h733zg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h735ag.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h735ig.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h735rg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h735vg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h735zg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h742ag.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h742ai.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h742bg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h742bi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h742ig.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h742ii.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h742vg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h742vi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h742xg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h742xi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h742zg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h742zi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h743ag.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h743ai.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h743bg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h743bi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h743ig.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h743ii.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h743vg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h743vi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h743xg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h743xi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h743zg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h743zi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h745bg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h745bi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h745ig.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h745ii.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h745xg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h745xi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h745zg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h745zi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h747ag.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h747ai.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h747bg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h747bi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h747ig.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h747ii.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h747xg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h747xi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h747zi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h750ib.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h750vb.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h750xb.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h750zb.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h753ai.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h753bi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h753ii.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h753vi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h753xi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h753zi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h755bi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h755ii.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h755xi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h755zi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h757ai.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h757bi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h757ii.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h757xi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h757zi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7a3ag.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7a3ai.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7a3ig.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7a3ii.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7a3lg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7a3li.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7a3ng.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7a3ni.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7a3qi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7a3rg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7a3ri.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7a3vg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7a3vi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7a3zg.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7a3zi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7b0ab.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7b0ib.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7b0rb.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7b0vb.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7b0zb.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7b3ai.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7b3ii.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7b3li.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7b3ni.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7b3qi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7b3ri.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7b3vi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32h7b3zi.rs2
-rw-r--r--embassy-stm32/src/pac/stm32l431cb.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l431cc.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l431kb.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l431kc.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l431rb.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l431rc.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l431vc.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l432kb.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l432kc.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l433cb.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l433cc.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l433rb.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l433rc.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l433vc.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l442kc.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l443cc.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l443rc.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l443vc.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l496ae.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l496ag.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l496qe.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l496qg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l496re.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l496rg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l496ve.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l496vg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l496wg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l496ze.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l496zg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4a6ag.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4a6qg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4a6rg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4a6vg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4a6zg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4p5ae.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4p5ag.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4p5ce.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4p5cg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4p5qe.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4p5qg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4p5re.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4p5rg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4p5ve.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4p5vg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4p5ze.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4p5zg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4q5ag.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4q5cg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4q5qg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4q5rg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4q5vg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4q5zg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4r5ag.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4r5ai.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4r5qg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4r5qi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4r5vg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4r5vi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4r5zg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4r5zi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4r7ai.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4r7vi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4r7zi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4r9ag.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4r9ai.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4r9vg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4r9vi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4r9zg.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4r9zi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4s5ai.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4s5qi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4s5vi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4s5zi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4s7ai.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4s7vi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4s7zi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4s9ai.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4s9vi.rs4
-rw-r--r--embassy-stm32/src/pac/stm32l4s9zi.rs4
-rw-r--r--embassy-stm32/src/rng.rs2
282 files changed, 8491 insertions, 1611 deletions
diff --git a/embassy-stm32/Cargo.toml b/embassy-stm32/Cargo.toml
index 3a95540f2..1e22e8618 100644
--- a/embassy-stm32/Cargo.toml
+++ b/embassy-stm32/Cargo.toml
@@ -24,7 +24,6 @@ embedded-sdmmc = { git = "https://github.com/thalesfragoso/embedded-sdmmc-rs", b
24regex = "1.4.6" 24regex = "1.4.6"
25 25
26[features] 26[features]
27default = ["stm32h750vb", "defmt-debug", "defmt", "sdmmc-rs"]
28defmt-trace = [ ] 27defmt-trace = [ ]
29defmt-debug = [ ] 28defmt-debug = [ ]
30defmt-info = [ ] 29defmt-info = [ ]
diff --git a/embassy-stm32/src/pac/regs.rs b/embassy-stm32/src/pac/regs.rs
index 16dab27c0..b3f6b542f 100644
--- a/embassy-stm32/src/pac/regs.rs
+++ b/embassy-stm32/src/pac/regs.rs
@@ -1,6 +1,7 @@
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))"]
3<<<<<<< HEAD 3<<<<<<< HEAD
4<<<<<<< HEAD
4pub mod dma_v2 { 5pub mod dma_v2 {
5 use crate::generic::*; 6 use crate::generic::*;
6 #[doc = "Stream cluster: S?CR, S?NDTR, S?M0AR, S?M1AR and S?FCR registers"] 7 #[doc = "Stream cluster: S?CR, S?NDTR, S?M0AR, S?M1AR and S?FCR registers"]
@@ -56,6 +57,79 @@ pub mod dma_v2 {
56 unsafe { St(self.0.add(16usize + n * 24usize)) } 57 unsafe { St(self.0.add(16usize + n * 24usize)) }
57======= 58=======
58pub mod dma_v1 { 59pub mod dma_v1 {
60=======
61pub mod generic {
62 use core::marker::PhantomData;
63 #[derive(Copy, Clone)]
64 pub struct RW;
65 #[derive(Copy, Clone)]
66 pub struct R;
67 #[derive(Copy, Clone)]
68 pub struct W;
69 mod sealed {
70 use super::*;
71 pub trait Access {}
72 impl Access for R {}
73 impl Access for W {}
74 impl Access for RW {}
75 }
76 pub trait Access: sealed::Access + Copy {}
77 impl Access for R {}
78 impl Access for W {}
79 impl Access for RW {}
80 pub trait Read: Access {}
81 impl Read for RW {}
82 impl Read for R {}
83 pub trait Write: Access {}
84 impl Write for RW {}
85 impl Write for W {}
86 #[derive(Copy, Clone)]
87 pub struct Reg<T: Copy, A: Access> {
88 ptr: *mut u8,
89 phantom: PhantomData<*mut (T, A)>,
90 }
91 unsafe impl<T: Copy, A: Access> Send for Reg<T, A> {}
92 unsafe impl<T: Copy, A: Access> Sync for Reg<T, A> {}
93 impl<T: Copy, A: Access> Reg<T, A> {
94 pub fn from_ptr(ptr: *mut u8) -> Self {
95 Self {
96 ptr,
97 phantom: PhantomData,
98 }
99 }
100 pub fn ptr(&self) -> *mut T {
101 self.ptr as _
102 }
103 }
104 impl<T: Copy, A: Read> Reg<T, A> {
105 pub unsafe fn read(&self) -> T {
106 (self.ptr as *mut T).read_volatile()
107 }
108 }
109 impl<T: Copy, A: Write> Reg<T, A> {
110 pub unsafe fn write_value(&self, val: T) {
111 (self.ptr as *mut T).write_volatile(val)
112 }
113 }
114 impl<T: Default + Copy, A: Write> Reg<T, A> {
115 pub unsafe fn write<R>(&self, f: impl FnOnce(&mut T) -> R) -> R {
116 let mut val = Default::default();
117 let res = f(&mut val);
118 self.write_value(val);
119 res
120 }
121 }
122 impl<T: Copy, A: Read + Write> Reg<T, A> {
123 pub unsafe fn modify<R>(&self, f: impl FnOnce(&mut T) -> R) -> R {
124 let mut val = self.read();
125 let res = f(&mut val);
126 self.write_value(val);
127 res
128 }
129 }
130}
131pub mod dma_v2 {
132>>>>>>> cbbaaa9 (Fix RNG interrupt name)
59 use crate::generic::*; 133 use crate::generic::*;
60 #[doc = "DMA controller"] 134 #[doc = "DMA controller"]
61 #[derive(Copy, Clone)] 135 #[derive(Copy, Clone)]
@@ -63,106 +137,154 @@ pub mod dma_v1 {
63 unsafe impl Send for Dma {} 137 unsafe impl Send for Dma {}
64 unsafe impl Sync for Dma {} 138 unsafe impl Sync for Dma {}
65 impl Dma { 139 impl Dma {
66 #[doc = "DMA interrupt status register (DMA_ISR)"] 140 #[doc = "low interrupt status register"]
67 pub fn isr(self) -> Reg<regs::Isr, R> { 141 pub fn isr(self, n: usize) -> Reg<regs::Isr, R> {
68 unsafe { Reg::from_ptr(self.0.add(0usize)) } 142 assert!(n < 2usize);
143 unsafe { Reg::from_ptr(self.0.add(0usize + n * 4usize)) }
69 } 144 }
70 #[doc = "DMA interrupt flag clear register (DMA_IFCR)"] 145 #[doc = "low interrupt flag clear register"]
71 pub fn ifcr(self) -> Reg<regs::Ifcr, W> { 146 pub fn ifcr(self, n: usize) -> Reg<regs::Ifcr, W> {
72 unsafe { Reg::from_ptr(self.0.add(4usize)) } 147 assert!(n < 2usize);
148 unsafe { Reg::from_ptr(self.0.add(8usize + n * 4usize)) }
73 } 149 }
74 #[doc = "Channel cluster: CCR?, CNDTR?, CPAR?, and CMAR? registers"] 150 #[doc = "Stream cluster: S?CR, S?NDTR, S?M0AR, S?M1AR and S?FCR registers"]
75 pub fn ch(self, n: usize) -> Ch { 151 pub fn st(self, n: usize) -> St {
76 assert!(n < 7usize); 152 assert!(n < 8usize);
77 unsafe { Ch(self.0.add(8usize + n * 20usize)) } 153 unsafe { St(self.0.add(16usize + n * 24usize)) }
78 } 154 }
79 } 155 }
80 #[doc = "Channel cluster: CCR?, CNDTR?, CPAR?, and CMAR? registers"] 156 #[doc = "Stream cluster: S?CR, S?NDTR, S?M0AR, S?M1AR and S?FCR registers"]
81 #[derive(Copy, Clone)] 157 #[derive(Copy, Clone)]
82 pub struct Ch(pub *mut u8); 158 pub struct St(pub *mut u8);
83 unsafe impl Send for Ch {} 159 unsafe impl Send for St {}
84 unsafe impl Sync for Ch {} 160 unsafe impl Sync for St {}
85 impl Ch { 161 impl St {
86 #[doc = "DMA channel configuration register (DMA_CCR)"] 162 #[doc = "stream x configuration register"]
87 pub fn cr(self) -> Reg<regs::Cr, RW> { 163 pub fn cr(self) -> Reg<regs::Cr, RW> {
88 unsafe { Reg::from_ptr(self.0.add(0usize)) } 164 unsafe { Reg::from_ptr(self.0.add(0usize)) }
89 } 165 }
90 #[doc = "DMA channel 1 number of data register"] 166 #[doc = "stream x number of data register"]
91 pub fn ndtr(self) -> Reg<regs::Ndtr, RW> { 167 pub fn ndtr(self) -> Reg<regs::Ndtr, RW> {
92 unsafe { Reg::from_ptr(self.0.add(4usize)) } 168 unsafe { Reg::from_ptr(self.0.add(4usize)) }
93 } 169 }
94 #[doc = "DMA channel 1 peripheral address register"] 170 #[doc = "stream x peripheral address register"]
95 pub fn par(self) -> Reg<u32, RW> { 171 pub fn par(self) -> Reg<u32, RW> {
96 unsafe { Reg::from_ptr(self.0.add(8usize)) } 172 unsafe { Reg::from_ptr(self.0.add(8usize)) }
97 } 173 }
98 #[doc = "DMA channel 1 memory address register"] 174 #[doc = "stream x memory 0 address register"]
99 pub fn mar(self) -> Reg<u32, RW> { 175 pub fn m0ar(self) -> Reg<u32, RW> {
100 unsafe { Reg::from_ptr(self.0.add(12usize)) } 176 unsafe { Reg::from_ptr(self.0.add(12usize)) }
101>>>>>>> 546082a (Update generated code) 177>>>>>>> 546082a (Update generated code)
102 } 178 }
179 #[doc = "stream x memory 1 address register"]
180 pub fn m1ar(self) -> Reg<u32, RW> {
181 unsafe { Reg::from_ptr(self.0.add(16usize)) }
182 }
183 #[doc = "stream x FIFO control register"]
184 pub fn fcr(self) -> Reg<regs::Fcr, RW> {
185 unsafe { Reg::from_ptr(self.0.add(20usize)) }
186 }
103 } 187 }
104 pub mod vals { 188 pub mod vals {
105 use crate::generic::*; 189 use crate::generic::*;
106 #[repr(transparent)] 190 #[repr(transparent)]
107 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 191 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
192 pub struct Inc(pub u8);
193 impl Inc {
194 #[doc = "Address pointer is fixed"]
195 pub const FIXED: Self = Self(0);
196 #[doc = "Address pointer is incremented after each data transfer"]
197 pub const INCREMENTED: Self = Self(0x01);
198 }
199 #[repr(transparent)]
200 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
201 pub struct Circ(pub u8);
202 impl Circ {
203 #[doc = "Circular mode disabled"]
204 pub const DISABLED: Self = Self(0);
205 #[doc = "Circular mode enabled"]
206 pub const ENABLED: Self = Self(0x01);
207 }
208 #[repr(transparent)]
209 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
108 pub struct Size(pub u8); 210 pub struct Size(pub u8);
109 impl Size { 211 impl Size {
110 #[doc = "8-bit size"] 212 #[doc = "Byte (8-bit)"]
111 pub const BITS8: Self = Self(0); 213 pub const BITS8: Self = Self(0);
112 #[doc = "16-bit size"] 214 #[doc = "Half-word (16-bit)"]
113 pub const BITS16: Self = Self(0x01); 215 pub const BITS16: Self = Self(0x01);
114 #[doc = "32-bit size"] 216 #[doc = "Word (32-bit)"]
115 pub const BITS32: Self = Self(0x02); 217 pub const BITS32: Self = Self(0x02);
116 } 218 }
117 #[repr(transparent)] 219 #[repr(transparent)]
118 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 220 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
119 pub struct Inc(pub u8); 221 pub struct Fth(pub u8);
120 impl Inc { 222 impl Fth {
121 #[doc = "Increment mode disabled"] 223 #[doc = "1/4 full FIFO"]
122 pub const DISABLED: Self = Self(0); 224 pub const QUARTER: Self = Self(0);
123 #[doc = "Increment mode enabled"] 225 #[doc = "1/2 full FIFO"]
124 pub const ENABLED: Self = Self(0x01); 226 pub const HALF: Self = Self(0x01);
227 #[doc = "3/4 full FIFO"]
228 pub const THREEQUARTERS: Self = Self(0x02);
229 #[doc = "Full FIFO"]
230 pub const FULL: Self = Self(0x03);
125 } 231 }
126 #[repr(transparent)] 232 #[repr(transparent)]
127 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 233 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
128 pub struct Dir(pub u8); 234 pub struct Dir(pub u8);
129 impl Dir { 235 impl Dir {
130 #[doc = "Read from peripheral"] 236 #[doc = "Peripheral-to-memory"]
131 pub const FROMPERIPHERAL: Self = Self(0); 237 pub const PERIPHERALTOMEMORY: Self = Self(0);
132 #[doc = "Read from memory"] 238 #[doc = "Memory-to-peripheral"]
133 pub const FROMMEMORY: Self = Self(0x01); 239 pub const MEMORYTOPERIPHERAL: Self = Self(0x01);
240 #[doc = "Memory-to-memory"]
241 pub const MEMORYTOMEMORY: Self = Self(0x02);
242 }
243 #[repr(transparent)]
244 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
245 pub struct Burst(pub u8);
246 impl Burst {
247 #[doc = "Single transfer"]
248 pub const SINGLE: Self = Self(0);
249 #[doc = "Incremental burst of 4 beats"]
250 pub const INCR4: Self = Self(0x01);
251 #[doc = "Incremental burst of 8 beats"]
252 pub const INCR8: Self = Self(0x02);
253 #[doc = "Incremental burst of 16 beats"]
254 pub const INCR16: Self = Self(0x03);
134 } 255 }
135 #[repr(transparent)] 256 #[repr(transparent)]
136 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 257 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
137 pub struct Pl(pub u8); 258 pub struct Pl(pub u8);
138 impl Pl { 259 impl Pl {
139 #[doc = "Low priority"] 260 #[doc = "Low"]
140 pub const LOW: Self = Self(0); 261 pub const LOW: Self = Self(0);
141 #[doc = "Medium priority"] 262 #[doc = "Medium"]
142 pub const MEDIUM: Self = Self(0x01); 263 pub const MEDIUM: Self = Self(0x01);
143 #[doc = "High priority"] 264 #[doc = "High"]
144 pub const HIGH: Self = Self(0x02); 265 pub const HIGH: Self = Self(0x02);
145 #[doc = "Very high priority"] 266 #[doc = "Very high"]
146 pub const VERYHIGH: Self = Self(0x03); 267 pub const VERYHIGH: Self = Self(0x03);
147 } 268 }
148 #[repr(transparent)] 269 #[repr(transparent)]
149 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 270 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
150 pub struct Memmem(pub u8); 271 pub struct Dbm(pub u8);
151 impl Memmem { 272 impl Dbm {
152 #[doc = "Memory to memory mode disabled"] 273 #[doc = "No buffer switching at the end of transfer"]
153 pub const DISABLED: Self = Self(0); 274 pub const DISABLED: Self = Self(0);
154 #[doc = "Memory to memory mode enabled"] 275 #[doc = "Memory target switched at the end of the DMA transfer"]
155 pub const ENABLED: Self = Self(0x01); 276 pub const ENABLED: Self = Self(0x01);
156 } 277 }
157 #[repr(transparent)] 278 #[repr(transparent)]
158 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 279 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
159 pub struct Circ(pub u8); 280 pub struct Pfctrl(pub u8);
160 impl Circ { 281 impl Pfctrl {
161 #[doc = "Circular buffer disabled"] 282 #[doc = "The DMA is the flow controller"]
162 pub const DISABLED: Self = Self(0); 283 pub const DMA: Self = Self(0);
163 #[doc = "Circular buffer enabled"] 284 #[doc = "The peripheral is the flow controller"]
164 pub const ENABLED: Self = Self(0x01); 285 pub const PERIPHERAL: Self = Self(0x01);
165 } 286 }
287<<<<<<< HEAD
166 } 288 }
167 pub mod regs { 289 pub mod regs {
168 use crate::generic::*; 290 use crate::generic::*;
@@ -318,19 +440,143 @@ pub mod dma_v1 {
318 pub fn set_htif(&mut self, n: usize, val: bool) { 440 pub fn set_htif(&mut self, n: usize, val: bool) {
319 assert!(n < 7usize); 441 assert!(n < 7usize);
320 let offs = 2usize + n * 4usize; 442 let offs = 2usize + n * 4usize;
443=======
444 #[repr(transparent)]
445 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
446 pub struct Fs(pub u8);
447 impl Fs {
448 #[doc = "0 < fifo_level < 1/4"]
449 pub const QUARTER1: Self = Self(0);
450 #[doc = "1/4 <= fifo_level < 1/2"]
451 pub const QUARTER2: Self = Self(0x01);
452 #[doc = "1/2 <= fifo_level < 3/4"]
453 pub const QUARTER3: Self = Self(0x02);
454 #[doc = "3/4 <= fifo_level < full"]
455 pub const QUARTER4: Self = Self(0x03);
456 #[doc = "FIFO is empty"]
457 pub const EMPTY: Self = Self(0x04);
458 #[doc = "FIFO is full"]
459 pub const FULL: Self = Self(0x05);
460 }
461 #[repr(transparent)]
462 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
463 pub struct Dmdis(pub u8);
464 impl Dmdis {
465 #[doc = "Direct mode is enabled"]
466 pub const ENABLED: Self = Self(0);
467 #[doc = "Direct mode is disabled"]
468 pub const DISABLED: Self = Self(0x01);
469 }
470 #[repr(transparent)]
471 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
472 pub struct Ct(pub u8);
473 impl Ct {
474 #[doc = "The current target memory is Memory 0"]
475 pub const MEMORY0: Self = Self(0);
476 #[doc = "The current target memory is Memory 1"]
477 pub const MEMORY1: Self = Self(0x01);
478 }
479 #[repr(transparent)]
480 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
481 pub struct Pincos(pub u8);
482 impl Pincos {
483 #[doc = "The offset size for the peripheral address calculation is linked to the PSIZE"]
484 pub const PSIZE: Self = Self(0);
485 #[doc = "The offset size for the peripheral address calculation is fixed to 4 (32-bit alignment)"]
486 pub const FIXED4: Self = Self(0x01);
487 }
488 }
489 pub mod regs {
490 use crate::generic::*;
491 #[doc = "stream x number of data register"]
492 #[repr(transparent)]
493 #[derive(Copy, Clone, Eq, PartialEq)]
494 pub struct Ndtr(pub u32);
495 impl Ndtr {
496 #[doc = "Number of data items to transfer"]
497 pub const fn ndt(&self) -> u16 {
498 let val = (self.0 >> 0usize) & 0xffff;
499 val as u16
500 }
501 #[doc = "Number of data items to transfer"]
502 pub fn set_ndt(&mut self, val: u16) {
503 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
504 }
505 }
506 impl Default for Ndtr {
507 fn default() -> Ndtr {
508 Ndtr(0)
509 }
510 }
511 #[doc = "low interrupt status register"]
512 #[repr(transparent)]
513 #[derive(Copy, Clone, Eq, PartialEq)]
514 pub struct Isr(pub u32);
515 impl Isr {
516 #[doc = "Stream x FIFO error interrupt flag (x=3..0)"]
517 pub fn feif(&self, n: usize) -> bool {
518 assert!(n < 4usize);
519 let offs = 0usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
520 let val = (self.0 >> offs) & 0x01;
521 val != 0
522 }
523 #[doc = "Stream x FIFO error interrupt flag (x=3..0)"]
524 pub fn set_feif(&mut self, n: usize, val: bool) {
525 assert!(n < 4usize);
526 let offs = 0usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
527>>>>>>> cbbaaa9 (Fix RNG interrupt name)
321 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs); 528 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
322 } 529 }
323 #[doc = "Channel 1 Transfer Error flag"] 530 #[doc = "Stream x direct mode error interrupt flag (x=3..0)"]
531 pub fn dmeif(&self, n: usize) -> bool {
532 assert!(n < 4usize);
533 let offs = 2usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
534 let val = (self.0 >> offs) & 0x01;
535 val != 0
536 }
537 #[doc = "Stream x direct mode error interrupt flag (x=3..0)"]
538 pub fn set_dmeif(&mut self, n: usize, val: bool) {
539 assert!(n < 4usize);
540 let offs = 2usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
541 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
542 }
543 #[doc = "Stream x transfer error interrupt flag (x=3..0)"]
324 pub fn teif(&self, n: usize) -> bool { 544 pub fn teif(&self, n: usize) -> bool {
325 assert!(n < 7usize); 545 assert!(n < 4usize);
326 let offs = 3usize + n * 4usize; 546 let offs = 3usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
327 let val = (self.0 >> offs) & 0x01; 547 let val = (self.0 >> offs) & 0x01;
328 val != 0 548 val != 0
329 } 549 }
330 #[doc = "Channel 1 Transfer Error flag"] 550 #[doc = "Stream x transfer error interrupt flag (x=3..0)"]
331 pub fn set_teif(&mut self, n: usize, val: bool) { 551 pub fn set_teif(&mut self, n: usize, val: bool) {
332 assert!(n < 7usize); 552 assert!(n < 4usize);
333 let offs = 3usize + n * 4usize; 553 let offs = 3usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
554 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
555 }
556 #[doc = "Stream x half transfer interrupt flag (x=3..0)"]
557 pub fn htif(&self, n: usize) -> bool {
558 assert!(n < 4usize);
559 let offs = 4usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
560 let val = (self.0 >> offs) & 0x01;
561 val != 0
562 }
563 #[doc = "Stream x half transfer interrupt flag (x=3..0)"]
564 pub fn set_htif(&mut self, n: usize, val: bool) {
565 assert!(n < 4usize);
566 let offs = 4usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
567 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
568 }
569 #[doc = "Stream x transfer complete interrupt flag (x = 3..0)"]
570 pub fn tcif(&self, n: usize) -> bool {
571 assert!(n < 4usize);
572 let offs = 5usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
573 let val = (self.0 >> offs) & 0x01;
574 val != 0
575 }
576 #[doc = "Stream x transfer complete interrupt flag (x = 3..0)"]
577 pub fn set_tcif(&mut self, n: usize, val: bool) {
578 assert!(n < 4usize);
579 let offs = 5usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
334 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs); 580 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
335 } 581 }
336 } 582 }
@@ -339,124 +585,152 @@ pub mod dma_v1 {
339 Isr(0) 585 Isr(0)
340 } 586 }
341 } 587 }
342 #[doc = "DMA channel configuration register (DMA_CCR)"] 588 #[doc = "stream x configuration register"]
343 #[repr(transparent)] 589 #[repr(transparent)]
344 #[derive(Copy, Clone, Eq, PartialEq)] 590 #[derive(Copy, Clone, Eq, PartialEq)]
345 pub struct Cr(pub u32); 591 pub struct Cr(pub u32);
346 impl Cr { 592 impl Cr {
347 #[doc = "Channel enable"] 593 #[doc = "Stream enable / flag stream ready when read low"]
348 pub const fn en(&self) -> bool { 594 pub const fn en(&self) -> bool {
349 let val = (self.0 >> 0usize) & 0x01; 595 let val = (self.0 >> 0usize) & 0x01;
350 val != 0 596 val != 0
351 } 597 }
352 #[doc = "Channel enable"] 598 #[doc = "Stream enable / flag stream ready when read low"]
353 pub fn set_en(&mut self, val: bool) { 599 pub fn set_en(&mut self, val: bool) {
354 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 600 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
355 } 601 }
356 #[doc = "Transfer complete interrupt enable"] 602 #[doc = "Direct mode error interrupt enable"]
357 pub const fn tcie(&self) -> bool { 603 pub const fn dmeie(&self) -> bool {
358 let val = (self.0 >> 1usize) & 0x01; 604 let val = (self.0 >> 1usize) & 0x01;
359 val != 0 605 val != 0
360 } 606 }
361 #[doc = "Transfer complete interrupt enable"] 607 #[doc = "Direct mode error interrupt enable"]
362 pub fn set_tcie(&mut self, val: bool) { 608 pub fn set_dmeie(&mut self, val: bool) {
363 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 609 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
364 } 610 }
365 #[doc = "Half Transfer interrupt enable"] 611 #[doc = "Transfer error interrupt enable"]
366 pub const fn htie(&self) -> bool { 612 pub const fn teie(&self) -> bool {
367 let val = (self.0 >> 2usize) & 0x01; 613 let val = (self.0 >> 2usize) & 0x01;
368 val != 0 614 val != 0
369 } 615 }
370 #[doc = "Half Transfer interrupt enable"] 616 #[doc = "Transfer error interrupt enable"]
371 pub fn set_htie(&mut self, val: bool) { 617 pub fn set_teie(&mut self, val: bool) {
372 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 618 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
373 } 619 }
374 #[doc = "Transfer error interrupt enable"] 620 #[doc = "Half transfer interrupt enable"]
375 pub const fn teie(&self) -> bool { 621 pub const fn htie(&self) -> bool {
376 let val = (self.0 >> 3usize) & 0x01; 622 let val = (self.0 >> 3usize) & 0x01;
377 val != 0 623 val != 0
378 } 624 }
379 #[doc = "Transfer error interrupt enable"] 625 #[doc = "Half transfer interrupt enable"]
380 pub fn set_teie(&mut self, val: bool) { 626 pub fn set_htie(&mut self, val: bool) {
381 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize); 627 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
382 } 628 }
629 #[doc = "Transfer complete interrupt enable"]
630 pub const fn tcie(&self) -> bool {
631 let val = (self.0 >> 4usize) & 0x01;
632 val != 0
633 }
634 #[doc = "Transfer complete interrupt enable"]
635 pub fn set_tcie(&mut self, val: bool) {
636 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
637 }
638 #[doc = "Peripheral flow controller"]
639 pub const fn pfctrl(&self) -> super::vals::Pfctrl {
640 let val = (self.0 >> 5usize) & 0x01;
641 super::vals::Pfctrl(val as u8)
642 }
643 #[doc = "Peripheral flow controller"]
644 pub fn set_pfctrl(&mut self, val: super::vals::Pfctrl) {
645 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
646 }
383 #[doc = "Data transfer direction"] 647 #[doc = "Data transfer direction"]
384 pub const fn dir(&self) -> super::vals::Dir { 648 pub const fn dir(&self) -> super::vals::Dir {
385 let val = (self.0 >> 4usize) & 0x01; 649 let val = (self.0 >> 6usize) & 0x03;
386 super::vals::Dir(val as u8) 650 super::vals::Dir(val as u8)
387 } 651 }
388 #[doc = "Data transfer direction"] 652 #[doc = "Data transfer direction"]
389 pub fn set_dir(&mut self, val: super::vals::Dir) { 653 pub fn set_dir(&mut self, val: super::vals::Dir) {
390 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 654 self.0 = (self.0 & !(0x03 << 6usize)) | (((val.0 as u32) & 0x03) << 6usize);
391 } 655 }
392 #[doc = "Circular mode"] 656 #[doc = "Circular mode"]
393 pub const fn circ(&self) -> super::vals::Circ { 657 pub const fn circ(&self) -> super::vals::Circ {
394 let val = (self.0 >> 5usize) & 0x01; 658 let val = (self.0 >> 8usize) & 0x01;
395 super::vals::Circ(val as u8) 659 super::vals::Circ(val as u8)
396 } 660 }
397 #[doc = "Circular mode"] 661 #[doc = "Circular mode"]
398 pub fn set_circ(&mut self, val: super::vals::Circ) { 662 pub fn set_circ(&mut self, val: super::vals::Circ) {
399 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize); 663 self.0 = (self.0 & !(0x01 << 8usize)) | (((val.0 as u32) & 0x01) << 8usize);
400 } 664 }
401 #[doc = "Peripheral increment mode"] 665 #[doc = "Peripheral increment mode"]
402 pub const fn pinc(&self) -> super::vals::Inc { 666 pub const fn pinc(&self) -> super::vals::Inc {
403 let val = (self.0 >> 6usize) & 0x01; 667 let val = (self.0 >> 9usize) & 0x01;
404 super::vals::Inc(val as u8) 668 super::vals::Inc(val as u8)
405 } 669 }
406 #[doc = "Peripheral increment mode"] 670 #[doc = "Peripheral increment mode"]
407 pub fn set_pinc(&mut self, val: super::vals::Inc) { 671 pub fn set_pinc(&mut self, val: super::vals::Inc) {
408 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize); 672 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
409 } 673 }
410 #[doc = "Memory increment mode"] 674 #[doc = "Memory increment mode"]
411 pub const fn minc(&self) -> super::vals::Inc { 675 pub const fn minc(&self) -> super::vals::Inc {
412 let val = (self.0 >> 7usize) & 0x01; 676 let val = (self.0 >> 10usize) & 0x01;
413 super::vals::Inc(val as u8) 677 super::vals::Inc(val as u8)
414 } 678 }
415 #[doc = "Memory increment mode"] 679 #[doc = "Memory increment mode"]
416 pub fn set_minc(&mut self, val: super::vals::Inc) { 680 pub fn set_minc(&mut self, val: super::vals::Inc) {
417 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 681 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
418 } 682 }
419 #[doc = "Peripheral size"] 683 #[doc = "Peripheral data size"]
420 pub const fn psize(&self) -> super::vals::Size { 684 pub const fn psize(&self) -> super::vals::Size {
421 let val = (self.0 >> 8usize) & 0x03; 685 let val = (self.0 >> 11usize) & 0x03;
422 super::vals::Size(val as u8) 686 super::vals::Size(val as u8)
423 } 687 }
424 #[doc = "Peripheral size"] 688 #[doc = "Peripheral data size"]
425 pub fn set_psize(&mut self, val: super::vals::Size) { 689 pub fn set_psize(&mut self, val: super::vals::Size) {
426 self.0 = (self.0 & !(0x03 << 8usize)) | (((val.0 as u32) & 0x03) << 8usize); 690 self.0 = (self.0 & !(0x03 << 11usize)) | (((val.0 as u32) & 0x03) << 11usize);
427 } 691 }
428 #[doc = "Memory size"] 692 #[doc = "Memory data size"]
429 pub const fn msize(&self) -> super::vals::Size { 693 pub const fn msize(&self) -> super::vals::Size {
430 let val = (self.0 >> 10usize) & 0x03; 694 let val = (self.0 >> 13usize) & 0x03;
431 super::vals::Size(val as u8) 695 super::vals::Size(val as u8)
432 } 696 }
433 #[doc = "Memory size"] 697 #[doc = "Memory data size"]
434 pub fn set_msize(&mut self, val: super::vals::Size) { 698 pub fn set_msize(&mut self, val: super::vals::Size) {
435 self.0 = (self.0 & !(0x03 << 10usize)) | (((val.0 as u32) & 0x03) << 10usize); 699 self.0 = (self.0 & !(0x03 << 13usize)) | (((val.0 as u32) & 0x03) << 13usize);
436 } 700 }
437 #[doc = "Channel Priority level"] 701 #[doc = "Peripheral increment offset size"]
702 pub const fn pincos(&self) -> super::vals::Pincos {
703 let val = (self.0 >> 15usize) & 0x01;
704 super::vals::Pincos(val as u8)
705 }
706 #[doc = "Peripheral increment offset size"]
707 pub fn set_pincos(&mut self, val: super::vals::Pincos) {
708 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
709 }
710 #[doc = "Priority level"]
438 pub const fn pl(&self) -> super::vals::Pl { 711 pub const fn pl(&self) -> super::vals::Pl {
439 let val = (self.0 >> 12usize) & 0x03; 712 let val = (self.0 >> 16usize) & 0x03;
440 super::vals::Pl(val as u8) 713 super::vals::Pl(val as u8)
441 } 714 }
442 #[doc = "Channel Priority level"] 715 #[doc = "Priority level"]
443 pub fn set_pl(&mut self, val: super::vals::Pl) { 716 pub fn set_pl(&mut self, val: super::vals::Pl) {
444 self.0 = (self.0 & !(0x03 << 12usize)) | (((val.0 as u32) & 0x03) << 12usize); 717 self.0 = (self.0 & !(0x03 << 16usize)) | (((val.0 as u32) & 0x03) << 16usize);
445 } 718 }
446 #[doc = "Memory to memory mode"] 719 #[doc = "Double buffer mode"]
447 pub const fn mem2mem(&self) -> super::vals::Memmem { 720 pub const fn dbm(&self) -> super::vals::Dbm {
448 let val = (self.0 >> 14usize) & 0x01; 721 let val = (self.0 >> 18usize) & 0x01;
449 super::vals::Memmem(val as u8) 722 super::vals::Dbm(val as u8)
450 } 723 }
451 #[doc = "Memory to memory mode"] 724 #[doc = "Double buffer mode"]
452 pub fn set_mem2mem(&mut self, val: super::vals::Memmem) { 725 pub fn set_dbm(&mut self, val: super::vals::Dbm) {
453 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 726 self.0 = (self.0 & !(0x01 << 18usize)) | (((val.0 as u32) & 0x01) << 18usize);
454 } 727 }
455 } 728 #[doc = "Current target (only in double buffer mode)"]
456 impl Default for Cr { 729 pub const fn ct(&self) -> super::vals::Ct {
457 fn default() -> Cr { 730 let val = (self.0 >> 19usize) & 0x01;
458 Cr(0) 731 super::vals::Ct(val as u8)
459 } 732 }
733<<<<<<< HEAD
460 } 734 }
461 #[doc = "DMA channel 1 number of data register"] 735 #[doc = "DMA channel 1 number of data register"]
462 #[repr(transparent)] 736 #[repr(transparent)]
@@ -468,19 +742,48 @@ pub mod dma_v1 {
468 let val = (self.0 >> 0usize) & 0xffff; 742 let val = (self.0 >> 0usize) & 0xffff;
469 val as u16 743 val as u16
470>>>>>>> 546082a (Update generated code) 744>>>>>>> 546082a (Update generated code)
745=======
746 #[doc = "Current target (only in double buffer mode)"]
747 pub fn set_ct(&mut self, val: super::vals::Ct) {
748 self.0 = (self.0 & !(0x01 << 19usize)) | (((val.0 as u32) & 0x01) << 19usize);
749>>>>>>> cbbaaa9 (Fix RNG interrupt name)
471 } 750 }
472 #[doc = "Number of data to transfer"] 751 #[doc = "Peripheral burst transfer configuration"]
473 pub fn set_ndt(&mut self, val: u16) { 752 pub const fn pburst(&self) -> super::vals::Burst {
474 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize); 753 let val = (self.0 >> 21usize) & 0x03;
754 super::vals::Burst(val as u8)
755 }
756 #[doc = "Peripheral burst transfer configuration"]
757 pub fn set_pburst(&mut self, val: super::vals::Burst) {
758 self.0 = (self.0 & !(0x03 << 21usize)) | (((val.0 as u32) & 0x03) << 21usize);
759 }
760 #[doc = "Memory burst transfer configuration"]
761 pub const fn mburst(&self) -> super::vals::Burst {
762 let val = (self.0 >> 23usize) & 0x03;
763 super::vals::Burst(val as u8)
764 }
765 #[doc = "Memory burst transfer configuration"]
766 pub fn set_mburst(&mut self, val: super::vals::Burst) {
767 self.0 = (self.0 & !(0x03 << 23usize)) | (((val.0 as u32) & 0x03) << 23usize);
768 }
769 #[doc = "Channel selection"]
770 pub const fn chsel(&self) -> u8 {
771 let val = (self.0 >> 25usize) & 0x0f;
772 val as u8
773 }
774 #[doc = "Channel selection"]
775 pub fn set_chsel(&mut self, val: u8) {
776 self.0 = (self.0 & !(0x0f << 25usize)) | (((val as u32) & 0x0f) << 25usize);
475 } 777 }
476 } 778 }
477 impl Default for Ndtr { 779 impl Default for Cr {
478 fn default() -> Ndtr { 780 fn default() -> Cr {
479 Ndtr(0) 781 Cr(0)
480 } 782 }
481 } 783 }
482<<<<<<< HEAD 784<<<<<<< HEAD
483<<<<<<< HEAD 785<<<<<<< HEAD
786<<<<<<< HEAD
484 #[doc = "Port configuration lock register"] 787 #[doc = "Port configuration lock register"]
485>>>>>>> fc21f52 (Better interrupt handling) 788>>>>>>> fc21f52 (Better interrupt handling)
486 #[repr(transparent)] 789 #[repr(transparent)]
@@ -576,60 +879,76 @@ pub mod dma_v1 {
576 super::vals::Ospeedr(val as u8) 879 super::vals::Ospeedr(val as u8)
577======= 880=======
578 #[doc = "DMA interrupt flag clear register (DMA_IFCR)"] 881 #[doc = "DMA interrupt flag clear register (DMA_IFCR)"]
882=======
883 #[doc = "low interrupt flag clear register"]
884>>>>>>> cbbaaa9 (Fix RNG interrupt name)
579 #[repr(transparent)] 885 #[repr(transparent)]
580 #[derive(Copy, Clone, Eq, PartialEq)] 886 #[derive(Copy, Clone, Eq, PartialEq)]
581 pub struct Ifcr(pub u32); 887 pub struct Ifcr(pub u32);
582 impl Ifcr { 888 impl Ifcr {
583 #[doc = "Channel 1 Global interrupt clear"] 889 #[doc = "Stream x clear FIFO error interrupt flag (x = 3..0)"]
584 pub fn cgif(&self, n: usize) -> bool { 890 pub fn cfeif(&self, n: usize) -> bool {
585 assert!(n < 7usize); 891 assert!(n < 4usize);
586 let offs = 0usize + n * 4usize; 892 let offs = 0usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
587 let val = (self.0 >> offs) & 0x01; 893 let val = (self.0 >> offs) & 0x01;
588 val != 0 894 val != 0
589 } 895 }
590 #[doc = "Channel 1 Global interrupt clear"] 896 #[doc = "Stream x clear FIFO error interrupt flag (x = 3..0)"]
591 pub fn set_cgif(&mut self, n: usize, val: bool) { 897 pub fn set_cfeif(&mut self, n: usize, val: bool) {
592 assert!(n < 7usize); 898 assert!(n < 4usize);
593 let offs = 0usize + n * 4usize; 899 let offs = 0usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
594 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs); 900 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
595 } 901 }
596 #[doc = "Channel 1 Transfer Complete clear"] 902 #[doc = "Stream x clear direct mode error interrupt flag (x = 3..0)"]
597 pub fn ctcif(&self, n: usize) -> bool { 903 pub fn cdmeif(&self, n: usize) -> bool {
598 assert!(n < 7usize); 904 assert!(n < 4usize);
599 let offs = 1usize + n * 4usize; 905 let offs = 2usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
600 let val = (self.0 >> offs) & 0x01; 906 let val = (self.0 >> offs) & 0x01;
601 val != 0 907 val != 0
602 } 908 }
603 #[doc = "Channel 1 Transfer Complete clear"] 909 #[doc = "Stream x clear direct mode error interrupt flag (x = 3..0)"]
604 pub fn set_ctcif(&mut self, n: usize, val: bool) { 910 pub fn set_cdmeif(&mut self, n: usize, val: bool) {
605 assert!(n < 7usize); 911 assert!(n < 4usize);
606 let offs = 1usize + n * 4usize; 912 let offs = 2usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
607 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs); 913 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
608 } 914 }
609 #[doc = "Channel 1 Half Transfer clear"] 915 #[doc = "Stream x clear transfer error interrupt flag (x = 3..0)"]
916 pub fn cteif(&self, n: usize) -> bool {
917 assert!(n < 4usize);
918 let offs = 3usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
919 let val = (self.0 >> offs) & 0x01;
920 val != 0
921 }
922 #[doc = "Stream x clear transfer error interrupt flag (x = 3..0)"]
923 pub fn set_cteif(&mut self, n: usize, val: bool) {
924 assert!(n < 4usize);
925 let offs = 3usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
926 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
927 }
928 #[doc = "Stream x clear half transfer interrupt flag (x = 3..0)"]
610 pub fn chtif(&self, n: usize) -> bool { 929 pub fn chtif(&self, n: usize) -> bool {
611 assert!(n < 7usize); 930 assert!(n < 4usize);
612 let offs = 2usize + n * 4usize; 931 let offs = 4usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
613 let val = (self.0 >> offs) & 0x01; 932 let val = (self.0 >> offs) & 0x01;
614 val != 0 933 val != 0
615 } 934 }
616 #[doc = "Channel 1 Half Transfer clear"] 935 #[doc = "Stream x clear half transfer interrupt flag (x = 3..0)"]
617 pub fn set_chtif(&mut self, n: usize, val: bool) { 936 pub fn set_chtif(&mut self, n: usize, val: bool) {
618 assert!(n < 7usize); 937 assert!(n < 4usize);
619 let offs = 2usize + n * 4usize; 938 let offs = 4usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
620 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs); 939 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
621 } 940 }
622 #[doc = "Channel 1 Transfer Error clear"] 941 #[doc = "Stream x clear transfer complete interrupt flag (x = 3..0)"]
623 pub fn cteif(&self, n: usize) -> bool { 942 pub fn ctcif(&self, n: usize) -> bool {
624 assert!(n < 7usize); 943 assert!(n < 4usize);
625 let offs = 3usize + n * 4usize; 944 let offs = 5usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
626 let val = (self.0 >> offs) & 0x01; 945 let val = (self.0 >> offs) & 0x01;
627 val != 0 946 val != 0
628 } 947 }
629 #[doc = "Channel 1 Transfer Error clear"] 948 #[doc = "Stream x clear transfer complete interrupt flag (x = 3..0)"]
630 pub fn set_cteif(&mut self, n: usize, val: bool) { 949 pub fn set_ctcif(&mut self, n: usize, val: bool) {
631 assert!(n < 7usize); 950 assert!(n < 4usize);
632 let offs = 3usize + n * 4usize; 951 let offs = 5usize + ([0usize, 6usize, 16usize, 22usize][n] as usize);
633 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs); 952 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
634 } 953 }
635 } 954 }
@@ -639,300 +958,220 @@ pub mod dma_v1 {
639>>>>>>> 546082a (Update generated code) 958>>>>>>> 546082a (Update generated code)
640 } 959 }
641 } 960 }
961 #[doc = "stream x FIFO control register"]
962 #[repr(transparent)]
963 #[derive(Copy, Clone, Eq, PartialEq)]
964 pub struct Fcr(pub u32);
965 impl Fcr {
966 #[doc = "FIFO threshold selection"]
967 pub const fn fth(&self) -> super::vals::Fth {
968 let val = (self.0 >> 0usize) & 0x03;
969 super::vals::Fth(val as u8)
970 }
971 #[doc = "FIFO threshold selection"]
972 pub fn set_fth(&mut self, val: super::vals::Fth) {
973 self.0 = (self.0 & !(0x03 << 0usize)) | (((val.0 as u32) & 0x03) << 0usize);
974 }
975 #[doc = "Direct mode disable"]
976 pub const fn dmdis(&self) -> super::vals::Dmdis {
977 let val = (self.0 >> 2usize) & 0x01;
978 super::vals::Dmdis(val as u8)
979 }
980 #[doc = "Direct mode disable"]
981 pub fn set_dmdis(&mut self, val: super::vals::Dmdis) {
982 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
983 }
984 #[doc = "FIFO status"]
985 pub const fn fs(&self) -> super::vals::Fs {
986 let val = (self.0 >> 3usize) & 0x07;
987 super::vals::Fs(val as u8)
988 }
989 #[doc = "FIFO status"]
990 pub fn set_fs(&mut self, val: super::vals::Fs) {
991 self.0 = (self.0 & !(0x07 << 3usize)) | (((val.0 as u32) & 0x07) << 3usize);
992 }
993 #[doc = "FIFO error interrupt enable"]
994 pub const fn feie(&self) -> bool {
995 let val = (self.0 >> 7usize) & 0x01;
996 val != 0
997 }
998 #[doc = "FIFO error interrupt enable"]
999 pub fn set_feie(&mut self, val: bool) {
1000 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
1001 }
1002 }
1003 impl Default for Fcr {
1004 fn default() -> Fcr {
1005 Fcr(0)
1006 }
1007 }
642 } 1008 }
643} 1009}
644pub mod exti_v1 { 1010pub mod syscfg_f4 {
645 use crate::generic::*; 1011 use crate::generic::*;
646 #[doc = "External interrupt/event controller"] 1012 #[doc = "System configuration controller"]
647 #[derive(Copy, Clone)] 1013 #[derive(Copy, Clone)]
648 pub struct Exti(pub *mut u8); 1014 pub struct Syscfg(pub *mut u8);
649 unsafe impl Send for Exti {} 1015 unsafe impl Send for Syscfg {}
650 unsafe impl Sync for Exti {} 1016 unsafe impl Sync for Syscfg {}
651 impl Exti { 1017 impl Syscfg {
652 #[doc = "Interrupt mask register (EXTI_IMR)"] 1018 #[doc = "memory remap register"]
653 pub fn imr(self) -> Reg<regs::Imr, RW> { 1019 pub fn memrm(self) -> Reg<regs::Memrm, RW> {
654 unsafe { Reg::from_ptr(self.0.add(0usize)) } 1020 unsafe { Reg::from_ptr(self.0.add(0usize)) }
655 } 1021 }
656 #[doc = "Event mask register (EXTI_EMR)"] 1022 #[doc = "peripheral mode configuration register"]
657 pub fn emr(self) -> Reg<regs::Emr, RW> { 1023 pub fn pmc(self) -> Reg<regs::Pmc, RW> {
658 unsafe { Reg::from_ptr(self.0.add(4usize)) } 1024 unsafe { Reg::from_ptr(self.0.add(4usize)) }
659 } 1025 }
660 #[doc = "Rising Trigger selection register (EXTI_RTSR)"] 1026 #[doc = "external interrupt configuration register"]
661 pub fn rtsr(self) -> Reg<regs::Rtsr, RW> { 1027 pub fn exticr(self, n: usize) -> Reg<regs::Exticr, RW> {
662 unsafe { Reg::from_ptr(self.0.add(8usize)) } 1028 assert!(n < 4usize);
663 } 1029 unsafe { Reg::from_ptr(self.0.add(8usize + n * 4usize)) }
664 #[doc = "Falling Trigger selection register (EXTI_FTSR)"]
665 pub fn ftsr(self) -> Reg<regs::Ftsr, RW> {
666 unsafe { Reg::from_ptr(self.0.add(12usize)) }
667 }
668 #[doc = "Software interrupt event register (EXTI_SWIER)"]
669 pub fn swier(self) -> Reg<regs::Swier, RW> {
670 unsafe { Reg::from_ptr(self.0.add(16usize)) }
671 }
672 #[doc = "Pending register (EXTI_PR)"]
673 pub fn pr(self) -> Reg<regs::Pr, RW> {
674 unsafe { Reg::from_ptr(self.0.add(20usize)) }
675 }
676 }
677 pub mod vals {
678 use crate::generic::*;
679 #[repr(transparent)]
680 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
681 pub struct Tr(pub u8);
682 impl Tr {
683 #[doc = "Falling edge trigger is disabled"]
684 pub const DISABLED: Self = Self(0);
685 #[doc = "Falling edge trigger is enabled"]
686 pub const ENABLED: Self = Self(0x01);
687 }
688 #[repr(transparent)]
689 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
690 pub struct Swierw(pub u8);
691 impl Swierw {
692 #[doc = "Generates an interrupt request"]
693 pub const PEND: Self = Self(0x01);
694 }
695 #[repr(transparent)]
696 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
697 pub struct Prr(pub u8);
698 impl Prr {
699 #[doc = "No trigger request occurred"]
700 pub const NOTPENDING: Self = Self(0);
701 #[doc = "Selected trigger request occurred"]
702 pub const PENDING: Self = Self(0x01);
703 }
704 #[repr(transparent)]
705 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
706 pub struct Mr(pub u8);
707 impl Mr {
708 #[doc = "Interrupt request line is masked"]
709 pub const MASKED: Self = Self(0);
710 #[doc = "Interrupt request line is unmasked"]
711 pub const UNMASKED: Self = Self(0x01);
712 } 1030 }
713 #[repr(transparent)] 1031 #[doc = "Compensation cell control register"]
714 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 1032 pub fn cmpcr(self) -> Reg<regs::Cmpcr, R> {
715 pub struct Prw(pub u8); 1033 unsafe { Reg::from_ptr(self.0.add(32usize)) }
716 impl Prw {
717 #[doc = "Clears pending bit"]
718 pub const CLEAR: Self = Self(0x01);
719 } 1034 }
720 } 1035 }
721 pub mod regs { 1036 pub mod regs {
722 use crate::generic::*; 1037 use crate::generic::*;
723 #[doc = "Interrupt mask register (EXTI_IMR)"] 1038 #[doc = "Compensation cell control register"]
724 #[repr(transparent)] 1039 #[repr(transparent)]
725 #[derive(Copy, Clone, Eq, PartialEq)] 1040 #[derive(Copy, Clone, Eq, PartialEq)]
726 pub struct Imr(pub u32); 1041 pub struct Cmpcr(pub u32);
727 impl Imr { 1042 impl Cmpcr {
728 #[doc = "Interrupt Mask on line 0"] 1043 #[doc = "Compensation cell power-down"]
729 pub fn mr(&self, n: usize) -> super::vals::Mr { 1044 pub const fn cmp_pd(&self) -> bool {
730 assert!(n < 23usize); 1045 let val = (self.0 >> 0usize) & 0x01;
731 let offs = 0usize + n * 1usize; 1046 val != 0
732 let val = (self.0 >> offs) & 0x01;
733 super::vals::Mr(val as u8)
734 }
735 #[doc = "Interrupt Mask on line 0"]
736 pub fn set_mr(&mut self, n: usize, val: super::vals::Mr) {
737 assert!(n < 23usize);
738 let offs = 0usize + n * 1usize;
739 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
740 } 1047 }
741 } 1048 #[doc = "Compensation cell power-down"]
742 impl Default for Imr { 1049 pub fn set_cmp_pd(&mut self, val: bool) {
743 fn default() -> Imr { 1050 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
744 Imr(0)
745 } 1051 }
746 } 1052 #[doc = "READY"]
747 #[doc = "Pending register (EXTI_PR)"] 1053 pub const fn ready(&self) -> bool {
748 #[repr(transparent)] 1054 let val = (self.0 >> 8usize) & 0x01;
749 #[derive(Copy, Clone, Eq, PartialEq)]
750 pub struct Pr(pub u32);
751 impl Pr {
752 #[doc = "Pending bit 0"]
753 pub fn pr(&self, n: usize) -> bool {
754 assert!(n < 23usize);
755 let offs = 0usize + n * 1usize;
756 let val = (self.0 >> offs) & 0x01;
757 val != 0 1055 val != 0
758 } 1056 }
759 #[doc = "Pending bit 0"] 1057 #[doc = "READY"]
760 pub fn set_pr(&mut self, n: usize, val: bool) { 1058 pub fn set_ready(&mut self, val: bool) {
761 assert!(n < 23usize); 1059 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
762 let offs = 0usize + n * 1usize;
763 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
764 } 1060 }
765 } 1061 }
766 impl Default for Pr { 1062 impl Default for Cmpcr {
767 fn default() -> Pr { 1063 fn default() -> Cmpcr {
768 Pr(0) 1064 Cmpcr(0)
769 } 1065 }
770 } 1066 }
771 #[doc = "Event mask register (EXTI_EMR)"] 1067 #[doc = "external interrupt configuration register"]
772 #[repr(transparent)] 1068 #[repr(transparent)]
773 #[derive(Copy, Clone, Eq, PartialEq)] 1069 #[derive(Copy, Clone, Eq, PartialEq)]
774 pub struct Emr(pub u32); 1070 pub struct Exticr(pub u32);
775 impl Emr { 1071 impl Exticr {
776 #[doc = "Event Mask on line 0"] 1072 #[doc = "EXTI x configuration"]
777 pub fn mr(&self, n: usize) -> super::vals::Mr { 1073 pub fn exti(&self, n: usize) -> u8 {
778 assert!(n < 23usize); 1074 assert!(n < 4usize);
779 let offs = 0usize + n * 1usize; 1075 let offs = 0usize + n * 4usize;
780 let val = (self.0 >> offs) & 0x01; 1076 let val = (self.0 >> offs) & 0x0f;
781 super::vals::Mr(val as u8) 1077 val as u8
782 } 1078 }
783 #[doc = "Event Mask on line 0"] 1079 #[doc = "EXTI x configuration"]
784 pub fn set_mr(&mut self, n: usize, val: super::vals::Mr) { 1080 pub fn set_exti(&mut self, n: usize, val: u8) {
785 assert!(n < 23usize); 1081 assert!(n < 4usize);
786 let offs = 0usize + n * 1usize; 1082 let offs = 0usize + n * 4usize;
787 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs); 1083 self.0 = (self.0 & !(0x0f << offs)) | (((val as u32) & 0x0f) << offs);
788 } 1084 }
789 } 1085 }
790 impl Default for Emr { 1086 impl Default for Exticr {
791 fn default() -> Emr { 1087 fn default() -> Exticr {
792 Emr(0) 1088 Exticr(0)
793 } 1089 }
794 } 1090 }
795 #[doc = "Rising Trigger selection register (EXTI_RTSR)"] 1091 #[doc = "memory remap register"]
796 #[repr(transparent)] 1092 #[repr(transparent)]
797 #[derive(Copy, Clone, Eq, PartialEq)] 1093 #[derive(Copy, Clone, Eq, PartialEq)]
798 pub struct Rtsr(pub u32); 1094 pub struct Memrm(pub u32);
799 impl Rtsr { 1095 impl Memrm {
800 #[doc = "Rising trigger event configuration of line 0"] 1096 #[doc = "Memory mapping selection"]
801 pub fn tr(&self, n: usize) -> super::vals::Tr { 1097 pub const fn mem_mode(&self) -> u8 {
802 assert!(n < 23usize); 1098 let val = (self.0 >> 0usize) & 0x07;
803 let offs = 0usize + n * 1usize; 1099 val as u8
804 let val = (self.0 >> offs) & 0x01;
805 super::vals::Tr(val as u8)
806 } 1100 }
807 #[doc = "Rising trigger event configuration of line 0"] 1101 #[doc = "Memory mapping selection"]
808 pub fn set_tr(&mut self, n: usize, val: super::vals::Tr) { 1102 pub fn set_mem_mode(&mut self, val: u8) {
809 assert!(n < 23usize); 1103 self.0 = (self.0 & !(0x07 << 0usize)) | (((val as u32) & 0x07) << 0usize);
810 let offs = 0usize + n * 1usize;
811 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
812 } 1104 }
813 } 1105 #[doc = "Flash bank mode selection"]
814 impl Default for Rtsr { 1106 pub const fn fb_mode(&self) -> bool {
815 fn default() -> Rtsr { 1107 let val = (self.0 >> 8usize) & 0x01;
816 Rtsr(0) 1108 val != 0
817 } 1109 }
818 } 1110 #[doc = "Flash bank mode selection"]
819 #[doc = "Falling Trigger selection register (EXTI_FTSR)"] 1111 pub fn set_fb_mode(&mut self, val: bool) {
820 #[repr(transparent)] 1112 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
821 #[derive(Copy, Clone, Eq, PartialEq)]
822 pub struct Ftsr(pub u32);
823 impl Ftsr {
824 #[doc = "Falling trigger event configuration of line 0"]
825 pub fn tr(&self, n: usize) -> super::vals::Tr {
826 assert!(n < 23usize);
827 let offs = 0usize + n * 1usize;
828 let val = (self.0 >> offs) & 0x01;
829 super::vals::Tr(val as u8)
830 } 1113 }
831 #[doc = "Falling trigger event configuration of line 0"] 1114 #[doc = "FMC memory mapping swap"]
832 pub fn set_tr(&mut self, n: usize, val: super::vals::Tr) { 1115 pub const fn swp_fmc(&self) -> u8 {
833 assert!(n < 23usize); 1116 let val = (self.0 >> 10usize) & 0x03;
834 let offs = 0usize + n * 1usize; 1117 val as u8
835 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs); 1118 }
1119 #[doc = "FMC memory mapping swap"]
1120 pub fn set_swp_fmc(&mut self, val: u8) {
1121 self.0 = (self.0 & !(0x03 << 10usize)) | (((val as u32) & 0x03) << 10usize);
836 } 1122 }
837 } 1123 }
838 impl Default for Ftsr { 1124 impl Default for Memrm {
839 fn default() -> Ftsr { 1125 fn default() -> Memrm {
840 Ftsr(0) 1126 Memrm(0)
841 } 1127 }
842 } 1128 }
843 #[doc = "Software interrupt event register (EXTI_SWIER)"] 1129 #[doc = "peripheral mode configuration register"]
844 #[repr(transparent)] 1130 #[repr(transparent)]
845 #[derive(Copy, Clone, Eq, PartialEq)] 1131 #[derive(Copy, Clone, Eq, PartialEq)]
846 pub struct Swier(pub u32); 1132 pub struct Pmc(pub u32);
847 impl Swier { 1133 impl Pmc {
848 #[doc = "Software Interrupt on line 0"] 1134 #[doc = "ADC1DC2"]
849 pub fn swier(&self, n: usize) -> bool { 1135 pub const fn adc1dc2(&self) -> bool {
850 assert!(n < 23usize); 1136 let val = (self.0 >> 16usize) & 0x01;
851 let offs = 0usize + n * 1usize;
852 let val = (self.0 >> offs) & 0x01;
853 val != 0 1137 val != 0
854 } 1138 }
855 #[doc = "Software Interrupt on line 0"] 1139 #[doc = "ADC1DC2"]
856 pub fn set_swier(&mut self, n: usize, val: bool) { 1140 pub fn set_adc1dc2(&mut self, val: bool) {
857 assert!(n < 23usize); 1141 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
858 let offs = 0usize + n * 1usize;
859 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
860 } 1142 }
861 } 1143 #[doc = "ADC2DC2"]
862 impl Default for Swier { 1144 pub const fn adc2dc2(&self) -> bool {
863 fn default() -> Swier { 1145 let val = (self.0 >> 17usize) & 0x01;
864 Swier(0) 1146 val != 0
865 } 1147 }
866 } 1148 #[doc = "ADC2DC2"]
867 } 1149 pub fn set_adc2dc2(&mut self, val: bool) {
868} 1150 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
869pub mod generic { 1151 }
870 use core::marker::PhantomData; 1152 #[doc = "ADC3DC2"]
871 #[derive(Copy, Clone)] 1153 pub const fn adc3dc2(&self) -> bool {
872 pub struct RW; 1154 let val = (self.0 >> 18usize) & 0x01;
873 #[derive(Copy, Clone)] 1155 val != 0
874 pub struct R; 1156 }
875 #[derive(Copy, Clone)] 1157 #[doc = "ADC3DC2"]
876 pub struct W; 1158 pub fn set_adc3dc2(&mut self, val: bool) {
877 mod sealed { 1159 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize);
878 use super::*; 1160 }
879 pub trait Access {} 1161 #[doc = "Ethernet PHY interface selection"]
880 impl Access for R {} 1162 pub const fn mii_rmii_sel(&self) -> bool {
881 impl Access for W {} 1163 let val = (self.0 >> 23usize) & 0x01;
882 impl Access for RW {} 1164 val != 0
883 } 1165 }
884 pub trait Access: sealed::Access + Copy {} 1166 #[doc = "Ethernet PHY interface selection"]
885 impl Access for R {} 1167 pub fn set_mii_rmii_sel(&mut self, val: bool) {
886 impl Access for W {} 1168 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
887 impl Access for RW {}
888 pub trait Read: Access {}
889 impl Read for RW {}
890 impl Read for R {}
891 pub trait Write: Access {}
892 impl Write for RW {}
893 impl Write for W {}
894 #[derive(Copy, Clone)]
895 pub struct Reg<T: Copy, A: Access> {
896 ptr: *mut u8,
897 phantom: PhantomData<*mut (T, A)>,
898 }
899 unsafe impl<T: Copy, A: Access> Send for Reg<T, A> {}
900 unsafe impl<T: Copy, A: Access> Sync for Reg<T, A> {}
901 impl<T: Copy, A: Access> Reg<T, A> {
902 pub fn from_ptr(ptr: *mut u8) -> Self {
903 Self {
904 ptr,
905 phantom: PhantomData,
906 } 1169 }
907 } 1170 }
908 pub fn ptr(&self) -> *mut T { 1171 impl Default for Pmc {
909 self.ptr as _ 1172 fn default() -> Pmc {
910 } 1173 Pmc(0)
911 } 1174 }
912 impl<T: Copy, A: Read> Reg<T, A> {
913 pub unsafe fn read(&self) -> T {
914 (self.ptr as *mut T).read_volatile()
915 }
916 }
917 impl<T: Copy, A: Write> Reg<T, A> {
918 pub unsafe fn write_value(&self, val: T) {
919 (self.ptr as *mut T).write_volatile(val)
920 }
921 }
922 impl<T: Default + Copy, A: Write> Reg<T, A> {
923 pub unsafe fn write<R>(&self, f: impl FnOnce(&mut T) -> R) -> R {
924 let mut val = Default::default();
925 let res = f(&mut val);
926 self.write_value(val);
927 res
928 }
929 }
930 impl<T: Copy, A: Read + Write> Reg<T, A> {
931 pub unsafe fn modify<R>(&self, f: impl FnOnce(&mut T) -> R) -> R {
932 let mut val = self.read();
933 let res = f(&mut val);
934 self.write_value(val);
935 res
936 } 1175 }
937 } 1176 }
938} 1177}
@@ -1032,6 +1271,7 @@ pub mod sdmmc_v2 {
1032 } 1271 }
1033 pub mod regs { 1272 pub mod regs {
1034 use crate::generic::*; 1273 use crate::generic::*;
1274<<<<<<< HEAD
1035 #[doc = "SDMMC IP version register"] 1275 #[doc = "SDMMC IP version register"]
1036 #[repr(transparent)] 1276 #[repr(transparent)]
1037 #[derive(Copy, Clone, Eq, PartialEq)] 1277 #[derive(Copy, Clone, Eq, PartialEq)]
@@ -1064,6 +1304,9 @@ pub mod sdmmc_v2 {
1064 } 1304 }
1065 } 1305 }
1066 #[doc = "stream x configuration register"] 1306 #[doc = "stream x configuration register"]
1307=======
1308 #[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."]
1309>>>>>>> cbbaaa9 (Fix RNG interrupt name)
1067 #[repr(transparent)] 1310 #[repr(transparent)]
1068 #[derive(Copy, Clone, Eq, PartialEq)] 1311 #[derive(Copy, Clone, Eq, PartialEq)]
1069 pub struct Cr(pub u32); 1312 pub struct Cr(pub u32);
@@ -1095,6 +1338,7 @@ pub mod sdmmc_v2 {
1095 pub fn set_teie(&mut self, val: bool) { 1338 pub fn set_teie(&mut self, val: bool) {
1096 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 1339 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
1097 } 1340 }
1341<<<<<<< HEAD
1098 #[doc = "Half transfer interrupt enable"] 1342 #[doc = "Half transfer interrupt enable"]
1099 pub const fn htie(&self) -> bool { 1343 pub const fn htie(&self) -> bool {
1100 let val = (self.0 >> 3usize) & 0x01; 1344 let val = (self.0 >> 3usize) & 0x01;
@@ -1254,6 +1498,171 @@ pub mod sdmmc_v2 {
1254 pub const fn fth(&self) -> super::vals::Fth { 1498 pub const fn fth(&self) -> super::vals::Fth {
1255 let val = (self.0 >> 0usize) & 0x03; 1499 let val = (self.0 >> 0usize) & 0x03;
1256 super::vals::Fth(val as u8) 1500 super::vals::Fth(val as u8)
1501=======
1502 }
1503 #[doc = "The SDMMC_RESP1/2/3/4R registers contain the status of a card, which is part of the received response."]
1504 #[repr(transparent)]
1505 #[derive(Copy, Clone, Eq, PartialEq)]
1506 pub struct Resp4r(pub u32);
1507 impl Resp4r {
1508 #[doc = "see Table404."]
1509 pub const fn cardstatus4(&self) -> u32 {
1510 let val = (self.0 >> 0usize) & 0xffff_ffff;
1511 val as u32
1512 }
1513 #[doc = "see Table404."]
1514 pub fn set_cardstatus4(&mut self, val: u32) {
1515 self.0 =
1516 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
1517 }
1518 }
1519 impl Default for Resp4r {
1520 fn default() -> Resp4r {
1521 Resp4r(0)
1522 }
1523 }
1524 #[doc = "SDMMC power control register"]
1525 #[repr(transparent)]
1526 #[derive(Copy, Clone, Eq, PartialEq)]
1527 pub struct Power(pub u32);
1528 impl Power {
1529 #[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."]
1530 pub const fn pwrctrl(&self) -> u8 {
1531 let val = (self.0 >> 0usize) & 0x03;
1532 val as u8
1533 }
1534 #[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."]
1535 pub fn set_pwrctrl(&mut self, val: u8) {
1536 self.0 = (self.0 & !(0x03 << 0usize)) | (((val as u32) & 0x03) << 0usize);
1537 }
1538 #[doc = "Voltage switch sequence start. This bit is used to start the timing critical section of the voltage switch sequence:"]
1539 pub const fn vswitch(&self) -> bool {
1540 let val = (self.0 >> 2usize) & 0x01;
1541 val != 0
1542 }
1543 #[doc = "Voltage switch sequence start. This bit is used to start the timing critical section of the voltage switch sequence:"]
1544 pub fn set_vswitch(&mut self, val: bool) {
1545 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
1546 }
1547 #[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:"]
1548 pub const fn vswitchen(&self) -> bool {
1549 let val = (self.0 >> 3usize) & 0x01;
1550 val != 0
1551 }
1552 #[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:"]
1553 pub fn set_vswitchen(&mut self, val: bool) {
1554 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
1555 }
1556 #[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)."]
1557 pub const fn dirpol(&self) -> bool {
1558 let val = (self.0 >> 4usize) & 0x01;
1559 val != 0
1560 }
1561 #[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)."]
1562 pub fn set_dirpol(&mut self, val: bool) {
1563 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
1564 }
1565 }
1566 impl Default for Power {
1567 fn default() -> Power {
1568 Power(0)
1569 }
1570 }
1571 #[doc = "SDMMC command response register"]
1572 #[repr(transparent)]
1573 #[derive(Copy, Clone, Eq, PartialEq)]
1574 pub struct Respcmdr(pub u32);
1575 impl Respcmdr {
1576 #[doc = "Response command index"]
1577 pub const fn respcmd(&self) -> u8 {
1578 let val = (self.0 >> 0usize) & 0x3f;
1579 val as u8
1580 }
1581 #[doc = "Response command index"]
1582 pub fn set_respcmd(&mut self, val: u8) {
1583 self.0 = (self.0 & !(0x3f << 0usize)) | (((val as u32) & 0x3f) << 0usize);
1584 }
1585 }
1586 impl Default for Respcmdr {
1587 fn default() -> Respcmdr {
1588 Respcmdr(0)
1589 }
1590 }
1591 #[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."]
1592 #[repr(transparent)]
1593 #[derive(Copy, Clone, Eq, PartialEq)]
1594 pub struct Idmactrlr(pub u32);
1595 impl Idmactrlr {
1596 #[doc = "IDMA enable This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
1597 pub const fn idmaen(&self) -> bool {
1598 let val = (self.0 >> 0usize) & 0x01;
1599 val != 0
1600 }
1601 #[doc = "IDMA enable This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
1602 pub fn set_idmaen(&mut self, val: bool) {
1603 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
1604 }
1605 #[doc = "Buffer mode selection. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
1606 pub const fn idmabmode(&self) -> bool {
1607 let val = (self.0 >> 1usize) & 0x01;
1608 val != 0
1609 }
1610 #[doc = "Buffer mode selection. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
1611 pub fn set_idmabmode(&mut self, val: bool) {
1612 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
1613 }
1614 #[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."]
1615 pub const fn idmabact(&self) -> bool {
1616 let val = (self.0 >> 2usize) & 0x01;
1617 val != 0
1618 }
1619 #[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."]
1620 pub fn set_idmabact(&mut self, val: bool) {
1621 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
1622 }
1623 }
1624 impl Default for Idmactrlr {
1625 fn default() -> Idmactrlr {
1626 Idmactrlr(0)
1627 }
1628 }
1629 #[doc = "The SDMMC_CLKCR register controls the SDMMC_CK output clock, the SDMMC_RX_CLK receive clock, and the bus width."]
1630 #[repr(transparent)]
1631 #[derive(Copy, Clone, Eq, PartialEq)]
1632 pub struct Clkcr(pub u32);
1633 impl Clkcr {
1634 #[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.."]
1635 pub const fn clkdiv(&self) -> u16 {
1636 let val = (self.0 >> 0usize) & 0x03ff;
1637 val as u16
1638 }
1639 #[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.."]
1640 pub fn set_clkdiv(&mut self, val: u16) {
1641 self.0 = (self.0 & !(0x03ff << 0usize)) | (((val as u32) & 0x03ff) << 0usize);
1642 }
1643 #[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:"]
1644 pub const fn pwrsav(&self) -> bool {
1645 let val = (self.0 >> 12usize) & 0x01;
1646 val != 0
1647 }
1648 #[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:"]
1649 pub fn set_pwrsav(&mut self, val: bool) {
1650 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
1651 }
1652 #[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)"]
1653 pub const fn widbus(&self) -> u8 {
1654 let val = (self.0 >> 14usize) & 0x03;
1655 val as u8
1656 }
1657 #[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)"]
1658 pub fn set_widbus(&mut self, val: u8) {
1659 self.0 = (self.0 & !(0x03 << 14usize)) | (((val as u32) & 0x03) << 14usize);
1660 }
1661 #[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."]
1662 pub const fn negedge(&self) -> bool {
1663 let val = (self.0 >> 16usize) & 0x01;
1664 val != 0
1665>>>>>>> cbbaaa9 (Fix RNG interrupt name)
1257 } 1666 }
1258 #[doc = "FIFO threshold selection"] 1667 #[doc = "FIFO threshold selection"]
1259 pub fn set_fth(&mut self, val: super::vals::Fth) { 1668 pub fn set_fth(&mut self, val: super::vals::Fth) {
@@ -1292,6 +1701,7 @@ pub mod sdmmc_v2 {
1292 Fcr(0) 1701 Fcr(0)
1293 } 1702 }
1294 } 1703 }
1704<<<<<<< HEAD
1295 } 1705 }
1296 pub mod vals { 1706 pub mod vals {
1297 use crate::generic::*; 1707 use crate::generic::*;
@@ -1384,6 +1794,29 @@ pub mod sdmmc_v2 {
1384 pub const fn dtdir(&self) -> bool { 1794 pub const fn dtdir(&self) -> bool {
1385 let val = (self.0 >> 1usize) & 0x01; 1795 let val = (self.0 >> 1usize) & 0x01;
1386 val != 0 1796 val != 0
1797=======
1798 #[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."]
1799 #[repr(transparent)]
1800 #[derive(Copy, Clone, Eq, PartialEq)]
1801 pub struct Idmabase0r(pub u32);
1802 impl Idmabase0r {
1803 #[doc = "Buffer 0 memory base address bits [31:2], shall be word aligned (bit [1:0]
1804are 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)."]
1805 pub const fn idmabase0(&self) -> u32 {
1806 let val = (self.0 >> 0usize) & 0xffff_ffff;
1807 val as u32
1808 }
1809 #[doc = "Buffer 0 memory base address bits [31:2], shall be word aligned (bit [1:0]
1810are 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)."]
1811 pub fn set_idmabase0(&mut self, val: u32) {
1812 self.0 =
1813 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
1814 }
1815 }
1816 impl Default for Idmabase0r {
1817 fn default() -> Idmabase0r {
1818 Idmabase0r(0)
1819>>>>>>> cbbaaa9 (Fix RNG interrupt name)
1387 } 1820 }
1388 #[doc = "Data transfer direction selection This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."] 1821 #[doc = "Data transfer direction selection This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
1389 pub fn set_dtdir(&mut self, val: bool) { 1822 pub fn set_dtdir(&mut self, val: bool) {
@@ -1509,6 +1942,7 @@ pub mod sdmmc_v2 {
1509 Argr(0) 1942 Argr(0)
1510 } 1943 }
1511 } 1944 }
1945<<<<<<< HEAD
1512 #[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."] 1946 #[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."]
1513 #[repr(transparent)] 1947 #[repr(transparent)]
1514 #[derive(Copy, Clone, Eq, PartialEq)] 1948 #[derive(Copy, Clone, Eq, PartialEq)]
@@ -1521,10 +1955,25 @@ pub mod sdmmc_v2 {
1521 } 1955 }
1522 #[doc = "Data count value When read, the number of remaining data bytes to be transferred is returned. Write has no effect."] 1956 #[doc = "Data count value When read, the number of remaining data bytes to be transferred is returned. Write has no effect."]
1523 pub fn set_datacount(&mut self, val: u32) { 1957 pub fn set_datacount(&mut self, val: u32) {
1958=======
1959 #[doc = "SDMMC IP identification register"]
1960 #[repr(transparent)]
1961 #[derive(Copy, Clone, Eq, PartialEq)]
1962 pub struct Id(pub u32);
1963 impl Id {
1964 #[doc = "SDMMC IP identification."]
1965 pub const fn ip_id(&self) -> u32 {
1966 let val = (self.0 >> 0usize) & 0xffff_ffff;
1967 val as u32
1968 }
1969 #[doc = "SDMMC IP identification."]
1970 pub fn set_ip_id(&mut self, val: u32) {
1971>>>>>>> cbbaaa9 (Fix RNG interrupt name)
1524 self.0 = 1972 self.0 =
1525 (self.0 & !(0x01ff_ffff << 0usize)) | (((val as u32) & 0x01ff_ffff) << 0usize); 1973 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
1526 } 1974 }
1527 } 1975 }
1976<<<<<<< HEAD
1528 impl Default for Dcntr { 1977 impl Default for Dcntr {
1529 fn default() -> Dcntr { 1978 fn default() -> Dcntr {
1530 Dcntr(0) 1979 Dcntr(0)
@@ -1666,10 +2115,323 @@ pub mod sdmmc_v2 {
1666 } 2115 }
1667 #[doc = "SDMMC IP identification."] 2116 #[doc = "SDMMC IP identification."]
1668 pub fn set_ip_id(&mut self, val: u32) { 2117 pub fn set_ip_id(&mut self, val: u32) {
2118=======
2119 impl Default for Id {
2120 fn default() -> Id {
2121 Id(0)
2122 }
2123 }
2124 #[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."]
2125 #[repr(transparent)]
2126 #[derive(Copy, Clone, Eq, PartialEq)]
2127 pub struct Fifor(pub u32);
2128 impl Fifor {
2129 #[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."]
2130 pub const fn fifodata(&self) -> u32 {
2131 let val = (self.0 >> 0usize) & 0xffff_ffff;
2132 val as u32
2133 }
2134 #[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."]
2135 pub fn set_fifodata(&mut self, val: u32) {
1669 self.0 = 2136 self.0 =
1670 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize); 2137 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
1671 } 2138 }
1672 } 2139 }
2140 impl Default for Fifor {
2141 fn default() -> Fifor {
2142 Fifor(0)
2143 }
2144 }
2145 #[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)"]
2146 #[repr(transparent)]
2147 #[derive(Copy, Clone, Eq, PartialEq)]
2148 pub struct Star(pub u32);
2149 impl Star {
2150 #[doc = "Command response received (CRC check failed). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2151 pub const fn ccrcfail(&self) -> bool {
2152 let val = (self.0 >> 0usize) & 0x01;
2153 val != 0
2154 }
2155 #[doc = "Command response received (CRC check failed). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2156 pub fn set_ccrcfail(&mut self, val: bool) {
2157 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
2158 }
2159 #[doc = "Data block sent/received (CRC check failed). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2160 pub const fn dcrcfail(&self) -> bool {
2161 let val = (self.0 >> 1usize) & 0x01;
2162 val != 0
2163 }
2164 #[doc = "Data block sent/received (CRC check failed). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2165 pub fn set_dcrcfail(&mut self, val: bool) {
2166 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
2167 }
2168 #[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."]
2169 pub const fn ctimeout(&self) -> bool {
2170 let val = (self.0 >> 2usize) & 0x01;
2171 val != 0
2172 }
2173 #[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."]
2174 pub fn set_ctimeout(&mut self, val: bool) {
2175 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
2176 }
2177 #[doc = "Data timeout. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2178 pub const fn dtimeout(&self) -> bool {
2179 let val = (self.0 >> 3usize) & 0x01;
2180 val != 0
2181 }
2182 #[doc = "Data timeout. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2183 pub fn set_dtimeout(&mut self, val: bool) {
2184 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
2185 }
2186 #[doc = "Transmit FIFO underrun error or IDMA read transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2187 pub const fn txunderr(&self) -> bool {
2188 let val = (self.0 >> 4usize) & 0x01;
2189 val != 0
2190 }
2191 #[doc = "Transmit FIFO underrun error or IDMA read transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2192 pub fn set_txunderr(&mut self, val: bool) {
2193 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
2194 }
2195 #[doc = "Received FIFO overrun error or IDMA write transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2196 pub const fn rxoverr(&self) -> bool {
2197 let val = (self.0 >> 5usize) & 0x01;
2198 val != 0
2199 }
2200 #[doc = "Received FIFO overrun error or IDMA write transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2201 pub fn set_rxoverr(&mut self, val: bool) {
2202 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
2203 }
2204 #[doc = "Command response received (CRC check passed, or no CRC). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2205 pub const fn cmdrend(&self) -> bool {
2206 let val = (self.0 >> 6usize) & 0x01;
2207 val != 0
2208 }
2209 #[doc = "Command response received (CRC check passed, or no CRC). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2210 pub fn set_cmdrend(&mut self, val: bool) {
2211 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
2212 }
2213 #[doc = "Command sent (no response required). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2214 pub const fn cmdsent(&self) -> bool {
2215 let val = (self.0 >> 7usize) & 0x01;
2216 val != 0
2217 }
2218 #[doc = "Command sent (no response required). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2219 pub fn set_cmdsent(&mut self, val: bool) {
2220 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
2221 }
2222 #[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."]
2223 pub const fn dataend(&self) -> bool {
2224 let val = (self.0 >> 8usize) & 0x01;
2225 val != 0
2226 }
2227 #[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."]
2228 pub fn set_dataend(&mut self, val: bool) {
2229 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
2230 }
2231 #[doc = "Data transfer Hold. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2232 pub const fn dhold(&self) -> bool {
2233 let val = (self.0 >> 9usize) & 0x01;
2234 val != 0
2235 }
2236 #[doc = "Data transfer Hold. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2237 pub fn set_dhold(&mut self, val: bool) {
2238 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
2239 }
2240 #[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."]
2241 pub const fn dbckend(&self) -> bool {
2242 let val = (self.0 >> 10usize) & 0x01;
2243 val != 0
2244 }
2245 #[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."]
2246 pub fn set_dbckend(&mut self, val: bool) {
2247 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
2248 }
2249 #[doc = "Data transfer aborted by CMD12. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2250 pub const fn dabort(&self) -> bool {
2251 let val = (self.0 >> 11usize) & 0x01;
2252 val != 0
2253 }
2254 #[doc = "Data transfer aborted by CMD12. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2255 pub fn set_dabort(&mut self, val: bool) {
2256 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
2257 }
2258 #[doc = "Data path state machine active, i.e. not in Idle state. This is a hardware status flag only, does not generate an interrupt."]
2259 pub const fn dpsmact(&self) -> bool {
2260 let val = (self.0 >> 12usize) & 0x01;
2261 val != 0
2262 }
2263 #[doc = "Data path state machine active, i.e. not in Idle state. This is a hardware status flag only, does not generate an interrupt."]
2264 pub fn set_dpsmact(&mut self, val: bool) {
2265 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
2266 }
2267 #[doc = "Command path state machine active, i.e. not in Idle state. This is a hardware status flag only, does not generate an interrupt."]
2268 pub const fn cpsmact(&self) -> bool {
2269 let val = (self.0 >> 13usize) & 0x01;
2270 val != 0
2271 }
2272 #[doc = "Command path state machine active, i.e. not in Idle state. This is a hardware status flag only, does not generate an interrupt."]
2273 pub fn set_cpsmact(&mut self, val: bool) {
2274 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
2275 }
2276 #[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."]
2277 pub const fn txfifohe(&self) -> bool {
2278 let val = (self.0 >> 14usize) & 0x01;
2279 val != 0
2280 }
2281 #[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."]
2282 pub fn set_txfifohe(&mut self, val: bool) {
2283 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
2284 }
2285 #[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."]
2286 pub const fn rxfifohf(&self) -> bool {
2287 let val = (self.0 >> 15usize) & 0x01;
2288 val != 0
2289 }
2290 #[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."]
2291 pub fn set_rxfifohf(&mut self, val: bool) {
2292 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize);
2293 }
2294 #[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."]
2295 pub const fn txfifof(&self) -> bool {
2296 let val = (self.0 >> 16usize) & 0x01;
2297 val != 0
2298 }
2299 #[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."]
2300 pub fn set_txfifof(&mut self, val: bool) {
2301 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
2302 }
2303 #[doc = "Receive FIFO full This bit is cleared when one FIFO location becomes empty."]
2304 pub const fn rxfifof(&self) -> bool {
2305 let val = (self.0 >> 17usize) & 0x01;
2306 val != 0
2307 }
2308 #[doc = "Receive FIFO full This bit is cleared when one FIFO location becomes empty."]
2309 pub fn set_rxfifof(&mut self, val: bool) {
2310 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
2311 }
2312 #[doc = "Transmit FIFO empty This bit is cleared when one FIFO location becomes full."]
2313 pub const fn txfifoe(&self) -> bool {
2314 let val = (self.0 >> 18usize) & 0x01;
2315 val != 0
2316 }
2317 #[doc = "Transmit FIFO empty This bit is cleared when one FIFO location becomes full."]
2318 pub fn set_txfifoe(&mut self, val: bool) {
2319 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize);
2320 }
2321 #[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."]
2322 pub const fn rxfifoe(&self) -> bool {
2323 let val = (self.0 >> 19usize) & 0x01;
2324 val != 0
2325 }
2326 #[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."]
2327 pub fn set_rxfifoe(&mut self, val: bool) {
2328 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize);
2329 }
2330 #[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."]
2331 pub const fn busyd0(&self) -> bool {
2332 let val = (self.0 >> 20usize) & 0x01;
2333 val != 0
2334 }
2335 #[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."]
2336 pub fn set_busyd0(&mut self, val: bool) {
2337 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize);
2338 }
2339 #[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."]
2340 pub const fn busyd0end(&self) -> bool {
2341 let val = (self.0 >> 21usize) & 0x01;
2342 val != 0
2343 }
2344 #[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."]
2345 pub fn set_busyd0end(&mut self, val: bool) {
2346 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
2347 }
2348 #[doc = "SDIO interrupt received. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2349 pub const fn sdioit(&self) -> bool {
2350 let val = (self.0 >> 22usize) & 0x01;
2351 val != 0
2352 }
2353 #[doc = "SDIO interrupt received. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2354 pub fn set_sdioit(&mut self, val: bool) {
2355 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
2356 }
2357 #[doc = "Boot acknowledgment received (boot acknowledgment check fail). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2358 pub const fn ackfail(&self) -> bool {
2359 let val = (self.0 >> 23usize) & 0x01;
2360 val != 0
2361 }
2362 #[doc = "Boot acknowledgment received (boot acknowledgment check fail). Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2363 pub fn set_ackfail(&mut self, val: bool) {
2364 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
2365 }
2366 #[doc = "Boot acknowledgment timeout. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2367 pub const fn acktimeout(&self) -> bool {
2368 let val = (self.0 >> 24usize) & 0x01;
2369 val != 0
2370 }
2371 #[doc = "Boot acknowledgment timeout. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2372 pub fn set_acktimeout(&mut self, val: bool) {
2373 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize);
2374 }
2375 #[doc = "Voltage switch critical timing section completion. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2376 pub const fn vswend(&self) -> bool {
2377 let val = (self.0 >> 25usize) & 0x01;
2378 val != 0
2379 }
2380 #[doc = "Voltage switch critical timing section completion. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2381 pub fn set_vswend(&mut self, val: bool) {
2382 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize);
2383 }
2384 #[doc = "SDMMC_CK stopped in Voltage switch procedure. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2385 pub const fn ckstop(&self) -> bool {
2386 let val = (self.0 >> 26usize) & 0x01;
2387 val != 0
2388 }
2389 #[doc = "SDMMC_CK stopped in Voltage switch procedure. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2390 pub fn set_ckstop(&mut self, val: bool) {
2391 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
2392 }
2393 #[doc = "IDMA transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2394 pub const fn idmate(&self) -> bool {
2395 let val = (self.0 >> 27usize) & 0x01;
2396 val != 0
2397 }
2398 #[doc = "IDMA transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2399 pub fn set_idmate(&mut self, val: bool) {
2400 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize);
2401 }
2402 #[doc = "IDMA buffer transfer complete. interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2403 pub const fn idmabtc(&self) -> bool {
2404 let val = (self.0 >> 28usize) & 0x01;
2405 val != 0
2406 }
2407 #[doc = "IDMA buffer transfer complete. interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
2408 pub fn set_idmabtc(&mut self, val: bool) {
2409 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize);
2410 }
2411 }
2412 impl Default for Star {
2413 fn default() -> Star {
2414 Star(0)
2415 }
2416 }
2417 #[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."]
2418 #[repr(transparent)]
2419 #[derive(Copy, Clone, Eq, PartialEq)]
2420 pub struct Dcntr(pub u32);
2421 impl Dcntr {
2422 #[doc = "Data count value When read, the number of remaining data bytes to be transferred is returned. Write has no effect."]
2423 pub const fn datacount(&self) -> u32 {
2424 let val = (self.0 >> 0usize) & 0x01ff_ffff;
2425 val as u32
2426 }
2427 #[doc = "Data count value When read, the number of remaining data bytes to be transferred is returned. Write has no effect."]
2428 pub fn set_datacount(&mut self, val: u32) {
2429>>>>>>> cbbaaa9 (Fix RNG interrupt name)
2430 self.0 =
2431 (self.0 & !(0x01ff_ffff << 0usize)) | (((val as u32) & 0x01ff_ffff) << 0usize);
2432 }
2433 }
2434<<<<<<< HEAD
1673 impl Default for Id { 2435 impl Default for Id {
1674 fn default() -> Id { 2436 fn default() -> Id {
1675 Id(0) 2437 Id(0)
@@ -3632,10 +4394,204 @@ are always 0 and read only). This register can be written by firmware when DPSM
3632 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize); 4394 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize);
3633 } 4395 }
3634 } 4396 }
4397=======
4398 impl Default for Dcntr {
4399 fn default() -> Dcntr {
4400 Dcntr(0)
4401 }
4402 }
4403 #[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."]
4404 #[repr(transparent)]
4405 #[derive(Copy, Clone, Eq, PartialEq)]
4406 pub struct Icr(pub u32);
4407 impl Icr {
4408 #[doc = "CCRCFAIL flag clear bit Set by software to clear the CCRCFAIL flag."]
4409 pub const fn ccrcfailc(&self) -> bool {
4410 let val = (self.0 >> 0usize) & 0x01;
4411 val != 0
4412 }
4413 #[doc = "CCRCFAIL flag clear bit Set by software to clear the CCRCFAIL flag."]
4414 pub fn set_ccrcfailc(&mut self, val: bool) {
4415 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
4416 }
4417 #[doc = "DCRCFAIL flag clear bit Set by software to clear the DCRCFAIL flag."]
4418 pub const fn dcrcfailc(&self) -> bool {
4419 let val = (self.0 >> 1usize) & 0x01;
4420 val != 0
4421 }
4422 #[doc = "DCRCFAIL flag clear bit Set by software to clear the DCRCFAIL flag."]
4423 pub fn set_dcrcfailc(&mut self, val: bool) {
4424 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
4425 }
4426 #[doc = "CTIMEOUT flag clear bit Set by software to clear the CTIMEOUT flag."]
4427 pub const fn ctimeoutc(&self) -> bool {
4428 let val = (self.0 >> 2usize) & 0x01;
4429 val != 0
4430 }
4431 #[doc = "CTIMEOUT flag clear bit Set by software to clear the CTIMEOUT flag."]
4432 pub fn set_ctimeoutc(&mut self, val: bool) {
4433 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
4434 }
4435 #[doc = "DTIMEOUT flag clear bit Set by software to clear the DTIMEOUT flag."]
4436 pub const fn dtimeoutc(&self) -> bool {
4437 let val = (self.0 >> 3usize) & 0x01;
4438 val != 0
4439 }
4440 #[doc = "DTIMEOUT flag clear bit Set by software to clear the DTIMEOUT flag."]
4441 pub fn set_dtimeoutc(&mut self, val: bool) {
4442 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
4443 }
4444 #[doc = "TXUNDERR flag clear bit Set by software to clear TXUNDERR flag."]
4445 pub const fn txunderrc(&self) -> bool {
4446 let val = (self.0 >> 4usize) & 0x01;
4447 val != 0
4448 }
4449 #[doc = "TXUNDERR flag clear bit Set by software to clear TXUNDERR flag."]
4450 pub fn set_txunderrc(&mut self, val: bool) {
4451 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
4452 }
4453 #[doc = "RXOVERR flag clear bit Set by software to clear the RXOVERR flag."]
4454 pub const fn rxoverrc(&self) -> bool {
4455 let val = (self.0 >> 5usize) & 0x01;
4456 val != 0
4457 }
4458 #[doc = "RXOVERR flag clear bit Set by software to clear the RXOVERR flag."]
4459 pub fn set_rxoverrc(&mut self, val: bool) {
4460 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
4461 }
4462 #[doc = "CMDREND flag clear bit Set by software to clear the CMDREND flag."]
4463 pub const fn cmdrendc(&self) -> bool {
4464 let val = (self.0 >> 6usize) & 0x01;
4465 val != 0
4466 }
4467 #[doc = "CMDREND flag clear bit Set by software to clear the CMDREND flag."]
4468 pub fn set_cmdrendc(&mut self, val: bool) {
4469 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
4470 }
4471 #[doc = "CMDSENT flag clear bit Set by software to clear the CMDSENT flag."]
4472 pub const fn cmdsentc(&self) -> bool {
4473 let val = (self.0 >> 7usize) & 0x01;
4474 val != 0
4475 }
4476 #[doc = "CMDSENT flag clear bit Set by software to clear the CMDSENT flag."]
4477 pub fn set_cmdsentc(&mut self, val: bool) {
4478 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
4479 }
4480 #[doc = "DATAEND flag clear bit Set by software to clear the DATAEND flag."]
4481 pub const fn dataendc(&self) -> bool {
4482 let val = (self.0 >> 8usize) & 0x01;
4483 val != 0
4484 }
4485 #[doc = "DATAEND flag clear bit Set by software to clear the DATAEND flag."]
4486 pub fn set_dataendc(&mut self, val: bool) {
4487 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
4488 }
4489 #[doc = "DHOLD flag clear bit Set by software to clear the DHOLD flag."]
4490 pub const fn dholdc(&self) -> bool {
4491 let val = (self.0 >> 9usize) & 0x01;
4492 val != 0
4493 }
4494 #[doc = "DHOLD flag clear bit Set by software to clear the DHOLD flag."]
4495 pub fn set_dholdc(&mut self, val: bool) {
4496 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
4497 }
4498 #[doc = "DBCKEND flag clear bit Set by software to clear the DBCKEND flag."]
4499 pub const fn dbckendc(&self) -> bool {
4500 let val = (self.0 >> 10usize) & 0x01;
4501 val != 0
4502 }
4503 #[doc = "DBCKEND flag clear bit Set by software to clear the DBCKEND flag."]
4504 pub fn set_dbckendc(&mut self, val: bool) {
4505 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
4506 }
4507 #[doc = "DABORT flag clear bit Set by software to clear the DABORT flag."]
4508 pub const fn dabortc(&self) -> bool {
4509 let val = (self.0 >> 11usize) & 0x01;
4510 val != 0
4511 }
4512 #[doc = "DABORT flag clear bit Set by software to clear the DABORT flag."]
4513 pub fn set_dabortc(&mut self, val: bool) {
4514 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
4515 }
4516 #[doc = "BUSYD0END flag clear bit Set by software to clear the BUSYD0END flag."]
4517 pub const fn busyd0endc(&self) -> bool {
4518 let val = (self.0 >> 21usize) & 0x01;
4519 val != 0
4520 }
4521 #[doc = "BUSYD0END flag clear bit Set by software to clear the BUSYD0END flag."]
4522 pub fn set_busyd0endc(&mut self, val: bool) {
4523 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
4524 }
4525 #[doc = "SDIOIT flag clear bit Set by software to clear the SDIOIT flag."]
4526 pub const fn sdioitc(&self) -> bool {
4527 let val = (self.0 >> 22usize) & 0x01;
4528 val != 0
4529 }
4530 #[doc = "SDIOIT flag clear bit Set by software to clear the SDIOIT flag."]
4531 pub fn set_sdioitc(&mut self, val: bool) {
4532 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
4533 }
4534 #[doc = "ACKFAIL flag clear bit Set by software to clear the ACKFAIL flag."]
4535 pub const fn ackfailc(&self) -> bool {
4536 let val = (self.0 >> 23usize) & 0x01;
4537 val != 0
4538 }
4539 #[doc = "ACKFAIL flag clear bit Set by software to clear the ACKFAIL flag."]
4540 pub fn set_ackfailc(&mut self, val: bool) {
4541 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
4542 }
4543 #[doc = "ACKTIMEOUT flag clear bit Set by software to clear the ACKTIMEOUT flag."]
4544 pub const fn acktimeoutc(&self) -> bool {
4545 let val = (self.0 >> 24usize) & 0x01;
4546 val != 0
4547 }
4548 #[doc = "ACKTIMEOUT flag clear bit Set by software to clear the ACKTIMEOUT flag."]
4549 pub fn set_acktimeoutc(&mut self, val: bool) {
4550 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize);
4551 }
4552 #[doc = "VSWEND flag clear bit Set by software to clear the VSWEND flag."]
4553 pub const fn vswendc(&self) -> bool {
4554 let val = (self.0 >> 25usize) & 0x01;
4555 val != 0
4556 }
4557 #[doc = "VSWEND flag clear bit Set by software to clear the VSWEND flag."]
4558 pub fn set_vswendc(&mut self, val: bool) {
4559 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize);
4560 }
4561 #[doc = "CKSTOP flag clear bit Set by software to clear the CKSTOP flag."]
4562 pub const fn ckstopc(&self) -> bool {
4563 let val = (self.0 >> 26usize) & 0x01;
4564 val != 0
4565 }
4566 #[doc = "CKSTOP flag clear bit Set by software to clear the CKSTOP flag."]
4567 pub fn set_ckstopc(&mut self, val: bool) {
4568 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
4569 }
4570 #[doc = "IDMA transfer error clear bit Set by software to clear the IDMATE flag."]
4571 pub const fn idmatec(&self) -> bool {
4572 let val = (self.0 >> 27usize) & 0x01;
4573 val != 0
4574 }
4575 #[doc = "IDMA transfer error clear bit Set by software to clear the IDMATE flag."]
4576 pub fn set_idmatec(&mut self, val: bool) {
4577 self.0 = (self.0 & !(0x01 << 27usize)) | (((val as u32) & 0x01) << 27usize);
4578 }
4579 #[doc = "IDMA buffer transfer complete clear bit Set by software to clear the IDMABTC flag."]
4580 pub const fn idmabtcc(&self) -> bool {
4581 let val = (self.0 >> 28usize) & 0x01;
4582 val != 0
4583 }
4584 #[doc = "IDMA buffer transfer complete clear bit Set by software to clear the IDMABTC flag."]
4585 pub fn set_idmabtcc(&mut self, val: bool) {
4586 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize);
4587 }
4588 }
4589>>>>>>> cbbaaa9 (Fix RNG interrupt name)
3635 impl Default for Icr { 4590 impl Default for Icr {
3636 fn default() -> Icr { 4591 fn default() -> Icr {
3637 Icr(0) 4592 Icr(0)
3638 } 4593 }
4594<<<<<<< HEAD
3639 } 4595 }
3640 #[doc = "SDMMC power control register"] 4596 #[doc = "SDMMC power control register"]
3641 #[repr(transparent)] 4597 #[repr(transparent)]
@@ -21060,6 +22016,691 @@ pub mod dma_v2 {
21060 pub const MEMORY0: Self = Self(0); 22016 pub const MEMORY0: Self = Self(0);
21061 #[doc = "The current target memory is Memory 1"] 22017 #[doc = "The current target memory is Memory 1"]
21062 pub const MEMORY1: Self = Self(0x01); 22018 pub const MEMORY1: Self = Self(0x01);
22019=======
22020 }
22021 #[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."]
22022 #[repr(transparent)]
22023 #[derive(Copy, Clone, Eq, PartialEq)]
22024 pub struct Acktimer(pub u32);
22025 impl Acktimer {
22026 #[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."]
22027 pub const fn acktime(&self) -> u32 {
22028 let val = (self.0 >> 0usize) & 0x01ff_ffff;
22029 val as u32
22030 }
22031 #[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."]
22032 pub fn set_acktime(&mut self, val: u32) {
22033 self.0 =
22034 (self.0 & !(0x01ff_ffff << 0usize)) | (((val as u32) & 0x01ff_ffff) << 0usize);
22035 }
22036 }
22037 impl Default for Acktimer {
22038 fn default() -> Acktimer {
22039 Acktimer(0)
22040 }
22041 }
22042 #[doc = "The SDMMC_DCTRL register control the data path state machine (DPSM)."]
22043 #[repr(transparent)]
22044 #[derive(Copy, Clone, Eq, PartialEq)]
22045 pub struct Dctrl(pub u32);
22046 impl Dctrl {
22047 #[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."]
22048 pub const fn dten(&self) -> bool {
22049 let val = (self.0 >> 0usize) & 0x01;
22050 val != 0
22051 }
22052 #[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."]
22053 pub fn set_dten(&mut self, val: bool) {
22054 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
22055 }
22056 #[doc = "Data transfer direction selection This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
22057 pub const fn dtdir(&self) -> bool {
22058 let val = (self.0 >> 1usize) & 0x01;
22059 val != 0
22060 }
22061 #[doc = "Data transfer direction selection This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
22062 pub fn set_dtdir(&mut self, val: bool) {
22063 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
22064 }
22065 #[doc = "Data transfer mode selection. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
22066 pub const fn dtmode(&self) -> u8 {
22067 let val = (self.0 >> 2usize) & 0x03;
22068 val as u8
22069 }
22070 #[doc = "Data transfer mode selection. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
22071 pub fn set_dtmode(&mut self, val: u8) {
22072 self.0 = (self.0 & !(0x03 << 2usize)) | (((val as u32) & 0x03) << 2usize);
22073 }
22074 #[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)"]
22075 pub const fn dblocksize(&self) -> u8 {
22076 let val = (self.0 >> 4usize) & 0x0f;
22077 val as u8
22078 }
22079 #[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)"]
22080 pub fn set_dblocksize(&mut self, val: u8) {
22081 self.0 = (self.0 & !(0x0f << 4usize)) | (((val as u32) & 0x0f) << 4usize);
22082 }
22083 #[doc = "Read wait start. If this bit is set, read wait operation starts."]
22084 pub const fn rwstart(&self) -> bool {
22085 let val = (self.0 >> 8usize) & 0x01;
22086 val != 0
22087 }
22088 #[doc = "Read wait start. If this bit is set, read wait operation starts."]
22089 pub fn set_rwstart(&mut self, val: bool) {
22090 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
22091 }
22092 #[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."]
22093 pub const fn rwstop(&self) -> bool {
22094 let val = (self.0 >> 9usize) & 0x01;
22095 val != 0
22096 }
22097 #[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."]
22098 pub fn set_rwstop(&mut self, val: bool) {
22099 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
22100 }
22101 #[doc = "Read wait mode. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
22102 pub const fn rwmod(&self) -> bool {
22103 let val = (self.0 >> 10usize) & 0x01;
22104 val != 0
22105 }
22106 #[doc = "Read wait mode. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
22107 pub fn set_rwmod(&mut self, val: bool) {
22108 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
22109 }
22110 #[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."]
22111 pub const fn sdioen(&self) -> bool {
22112 let val = (self.0 >> 11usize) & 0x01;
22113 val != 0
22114 }
22115 #[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."]
22116 pub fn set_sdioen(&mut self, val: bool) {
22117 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
22118 }
22119 #[doc = "Enable the reception of the boot acknowledgment. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
22120 pub const fn bootacken(&self) -> bool {
22121 let val = (self.0 >> 12usize) & 0x01;
22122 val != 0
22123 }
22124 #[doc = "Enable the reception of the boot acknowledgment. This bit can only be written by firmware when DPSM is inactive (DPSMACT = 0)."]
22125 pub fn set_bootacken(&mut self, val: bool) {
22126 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
22127 }
22128 #[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."]
22129 pub const fn fiforst(&self) -> bool {
22130 let val = (self.0 >> 13usize) & 0x01;
22131 val != 0
22132 }
22133 #[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."]
22134 pub fn set_fiforst(&mut self, val: bool) {
22135 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
22136 }
22137 }
22138 impl Default for Dctrl {
22139 fn default() -> Dctrl {
22140 Dctrl(0)
22141 }
22142 }
22143 #[doc = "The SDMMC_RESP1/2/3/4R registers contain the status of a card, which is part of the received response."]
22144 #[repr(transparent)]
22145 #[derive(Copy, Clone, Eq, PartialEq)]
22146 pub struct Resp3r(pub u32);
22147 impl Resp3r {
22148 #[doc = "see Table404."]
22149 pub const fn cardstatus3(&self) -> u32 {
22150 let val = (self.0 >> 0usize) & 0xffff_ffff;
22151 val as u32
22152 }
22153 #[doc = "see Table404."]
22154 pub fn set_cardstatus3(&mut self, val: u32) {
22155 self.0 =
22156 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
22157 }
22158 }
22159 impl Default for Resp3r {
22160 fn default() -> Resp3r {
22161 Resp3r(0)
22162 }
22163 }
22164 #[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."]
22165 #[repr(transparent)]
22166 #[derive(Copy, Clone, Eq, PartialEq)]
22167 pub struct Dlenr(pub u32);
22168 impl Dlenr {
22169 #[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."]
22170 pub const fn datalength(&self) -> u32 {
22171 let val = (self.0 >> 0usize) & 0x01ff_ffff;
22172 val as u32
22173 }
22174 #[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."]
22175 pub fn set_datalength(&mut self, val: u32) {
22176 self.0 =
22177 (self.0 & !(0x01ff_ffff << 0usize)) | (((val as u32) & 0x01ff_ffff) << 0usize);
22178 }
22179 }
22180 impl Default for Dlenr {
22181 fn default() -> Dlenr {
22182 Dlenr(0)
22183 }
22184 }
22185 #[doc = "The SDMMC_IDMABASE1R register contains the double buffer configuration second buffer memory base address."]
22186 #[repr(transparent)]
22187 #[derive(Copy, Clone, Eq, PartialEq)]
22188 pub struct Idmabase1r(pub u32);
22189 impl Idmabase1r {
22190 #[doc = "Buffer 1 memory base address, shall be word aligned (bit [1:0]
22191are 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)."]
22192 pub const fn idmabase1(&self) -> u32 {
22193 let val = (self.0 >> 0usize) & 0xffff_ffff;
22194 val as u32
22195 }
22196 #[doc = "Buffer 1 memory base address, shall be word aligned (bit [1:0]
22197are 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)."]
22198 pub fn set_idmabase1(&mut self, val: u32) {
22199 self.0 =
22200 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
22201 }
22202 }
22203 impl Default for Idmabase1r {
22204 fn default() -> Idmabase1r {
22205 Idmabase1r(0)
22206 }
22207 }
22208 #[doc = "The interrupt mask register determines which status flags generate an interrupt request by setting the corresponding bit to 1."]
22209 #[repr(transparent)]
22210 #[derive(Copy, Clone, Eq, PartialEq)]
22211 pub struct Maskr(pub u32);
22212 impl Maskr {
22213 #[doc = "Command CRC fail interrupt enable Set and cleared by software to enable/disable interrupt caused by command CRC failure."]
22214 pub const fn ccrcfailie(&self) -> bool {
22215 let val = (self.0 >> 0usize) & 0x01;
22216 val != 0
22217 }
22218 #[doc = "Command CRC fail interrupt enable Set and cleared by software to enable/disable interrupt caused by command CRC failure."]
22219 pub fn set_ccrcfailie(&mut self, val: bool) {
22220 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
22221 }
22222 #[doc = "Data CRC fail interrupt enable Set and cleared by software to enable/disable interrupt caused by data CRC failure."]
22223 pub const fn dcrcfailie(&self) -> bool {
22224 let val = (self.0 >> 1usize) & 0x01;
22225 val != 0
22226 }
22227 #[doc = "Data CRC fail interrupt enable Set and cleared by software to enable/disable interrupt caused by data CRC failure."]
22228 pub fn set_dcrcfailie(&mut self, val: bool) {
22229 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
22230 }
22231 #[doc = "Command timeout interrupt enable Set and cleared by software to enable/disable interrupt caused by command timeout."]
22232 pub const fn ctimeoutie(&self) -> bool {
22233 let val = (self.0 >> 2usize) & 0x01;
22234 val != 0
22235 }
22236 #[doc = "Command timeout interrupt enable Set and cleared by software to enable/disable interrupt caused by command timeout."]
22237 pub fn set_ctimeoutie(&mut self, val: bool) {
22238 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
22239 }
22240 #[doc = "Data timeout interrupt enable Set and cleared by software to enable/disable interrupt caused by data timeout."]
22241 pub const fn dtimeoutie(&self) -> bool {
22242 let val = (self.0 >> 3usize) & 0x01;
22243 val != 0
22244 }
22245 #[doc = "Data timeout interrupt enable Set and cleared by software to enable/disable interrupt caused by data timeout."]
22246 pub fn set_dtimeoutie(&mut self, val: bool) {
22247 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
22248 }
22249 #[doc = "Tx FIFO underrun error interrupt enable Set and cleared by software to enable/disable interrupt caused by Tx FIFO underrun error."]
22250 pub const fn txunderrie(&self) -> bool {
22251 let val = (self.0 >> 4usize) & 0x01;
22252 val != 0
22253 }
22254 #[doc = "Tx FIFO underrun error interrupt enable Set and cleared by software to enable/disable interrupt caused by Tx FIFO underrun error."]
22255 pub fn set_txunderrie(&mut self, val: bool) {
22256 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
22257 }
22258 #[doc = "Rx FIFO overrun error interrupt enable Set and cleared by software to enable/disable interrupt caused by Rx FIFO overrun error."]
22259 pub const fn rxoverrie(&self) -> bool {
22260 let val = (self.0 >> 5usize) & 0x01;
22261 val != 0
22262 }
22263 #[doc = "Rx FIFO overrun error interrupt enable Set and cleared by software to enable/disable interrupt caused by Rx FIFO overrun error."]
22264 pub fn set_rxoverrie(&mut self, val: bool) {
22265 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
22266 }
22267 #[doc = "Command response received interrupt enable Set and cleared by software to enable/disable interrupt caused by receiving command response."]
22268 pub const fn cmdrendie(&self) -> bool {
22269 let val = (self.0 >> 6usize) & 0x01;
22270 val != 0
22271 }
22272 #[doc = "Command response received interrupt enable Set and cleared by software to enable/disable interrupt caused by receiving command response."]
22273 pub fn set_cmdrendie(&mut self, val: bool) {
22274 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
22275 }
22276 #[doc = "Command sent interrupt enable Set and cleared by software to enable/disable interrupt caused by sending command."]
22277 pub const fn cmdsentie(&self) -> bool {
22278 let val = (self.0 >> 7usize) & 0x01;
22279 val != 0
22280 }
22281 #[doc = "Command sent interrupt enable Set and cleared by software to enable/disable interrupt caused by sending command."]
22282 pub fn set_cmdsentie(&mut self, val: bool) {
22283 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
22284 }
22285 #[doc = "Data end interrupt enable Set and cleared by software to enable/disable interrupt caused by data end."]
22286 pub const fn dataendie(&self) -> bool {
22287 let val = (self.0 >> 8usize) & 0x01;
22288 val != 0
22289 }
22290 #[doc = "Data end interrupt enable Set and cleared by software to enable/disable interrupt caused by data end."]
22291 pub fn set_dataendie(&mut self, val: bool) {
22292 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
22293 }
22294 #[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."]
22295 pub const fn dholdie(&self) -> bool {
22296 let val = (self.0 >> 9usize) & 0x01;
22297 val != 0
22298 }
22299 #[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."]
22300 pub fn set_dholdie(&mut self, val: bool) {
22301 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
22302 }
22303 #[doc = "Data block end interrupt enable Set and cleared by software to enable/disable interrupt caused by data block end."]
22304 pub const fn dbckendie(&self) -> bool {
22305 let val = (self.0 >> 10usize) & 0x01;
22306 val != 0
22307 }
22308 #[doc = "Data block end interrupt enable Set and cleared by software to enable/disable interrupt caused by data block end."]
22309 pub fn set_dbckendie(&mut self, val: bool) {
22310 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
22311 }
22312 #[doc = "Data transfer aborted interrupt enable Set and cleared by software to enable/disable interrupt caused by a data transfer being aborted."]
22313 pub const fn dabortie(&self) -> bool {
22314 let val = (self.0 >> 11usize) & 0x01;
22315 val != 0
22316 }
22317 #[doc = "Data transfer aborted interrupt enable Set and cleared by software to enable/disable interrupt caused by a data transfer being aborted."]
22318 pub fn set_dabortie(&mut self, val: bool) {
22319 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
22320 }
22321 #[doc = "Tx FIFO half empty interrupt enable Set and cleared by software to enable/disable interrupt caused by Tx FIFO half empty."]
22322 pub const fn txfifoheie(&self) -> bool {
22323 let val = (self.0 >> 14usize) & 0x01;
22324 val != 0
22325 }
22326 #[doc = "Tx FIFO half empty interrupt enable Set and cleared by software to enable/disable interrupt caused by Tx FIFO half empty."]
22327 pub fn set_txfifoheie(&mut self, val: bool) {
22328 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
22329 }
22330 #[doc = "Rx FIFO half full interrupt enable Set and cleared by software to enable/disable interrupt caused by Rx FIFO half full."]
22331 pub const fn rxfifohfie(&self) -> bool {
22332 let val = (self.0 >> 15usize) & 0x01;
22333 val != 0
22334 }
22335 #[doc = "Rx FIFO half full interrupt enable Set and cleared by software to enable/disable interrupt caused by Rx FIFO half full."]
22336 pub fn set_rxfifohfie(&mut self, val: bool) {
22337 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize);
22338 }
22339 #[doc = "Rx FIFO full interrupt enable Set and cleared by software to enable/disable interrupt caused by Rx FIFO full."]
22340 pub const fn rxfifofie(&self) -> bool {
22341 let val = (self.0 >> 17usize) & 0x01;
22342 val != 0
22343 }
22344 #[doc = "Rx FIFO full interrupt enable Set and cleared by software to enable/disable interrupt caused by Rx FIFO full."]
22345 pub fn set_rxfifofie(&mut self, val: bool) {
22346 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
22347 }
22348 #[doc = "Tx FIFO empty interrupt enable Set and cleared by software to enable/disable interrupt caused by Tx FIFO empty."]
22349 pub const fn txfifoeie(&self) -> bool {
22350 let val = (self.0 >> 18usize) & 0x01;
22351 val != 0
22352 }
22353 #[doc = "Tx FIFO empty interrupt enable Set and cleared by software to enable/disable interrupt caused by Tx FIFO empty."]
22354 pub fn set_txfifoeie(&mut self, val: bool) {
22355 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize);
22356 }
22357 #[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."]
22358 pub const fn busyd0endie(&self) -> bool {
22359 let val = (self.0 >> 21usize) & 0x01;
22360 val != 0
22361 }
22362 #[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."]
22363 pub fn set_busyd0endie(&mut self, val: bool) {
22364 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
22365 }
22366 #[doc = "SDIO mode interrupt received interrupt enable Set and cleared by software to enable/disable the interrupt generated when receiving the SDIO mode interrupt."]
22367 pub const fn sdioitie(&self) -> bool {
22368 let val = (self.0 >> 22usize) & 0x01;
22369 val != 0
22370 }
22371 #[doc = "SDIO mode interrupt received interrupt enable Set and cleared by software to enable/disable the interrupt generated when receiving the SDIO mode interrupt."]
22372 pub fn set_sdioitie(&mut self, val: bool) {
22373 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
22374 }
22375 #[doc = "Acknowledgment Fail interrupt enable Set and cleared by software to enable/disable interrupt caused by acknowledgment Fail."]
22376 pub const fn ackfailie(&self) -> bool {
22377 let val = (self.0 >> 23usize) & 0x01;
22378 val != 0
22379 }
22380 #[doc = "Acknowledgment Fail interrupt enable Set and cleared by software to enable/disable interrupt caused by acknowledgment Fail."]
22381 pub fn set_ackfailie(&mut self, val: bool) {
22382 self.0 = (self.0 & !(0x01 << 23usize)) | (((val as u32) & 0x01) << 23usize);
22383 }
22384 #[doc = "Acknowledgment timeout interrupt enable Set and cleared by software to enable/disable interrupt caused by acknowledgment timeout."]
22385 pub const fn acktimeoutie(&self) -> bool {
22386 let val = (self.0 >> 24usize) & 0x01;
22387 val != 0
22388 }
22389 #[doc = "Acknowledgment timeout interrupt enable Set and cleared by software to enable/disable interrupt caused by acknowledgment timeout."]
22390 pub fn set_acktimeoutie(&mut self, val: bool) {
22391 self.0 = (self.0 & !(0x01 << 24usize)) | (((val as u32) & 0x01) << 24usize);
22392 }
22393 #[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."]
22394 pub const fn vswendie(&self) -> bool {
22395 let val = (self.0 >> 25usize) & 0x01;
22396 val != 0
22397 }
22398 #[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."]
22399 pub fn set_vswendie(&mut self, val: bool) {
22400 self.0 = (self.0 & !(0x01 << 25usize)) | (((val as u32) & 0x01) << 25usize);
22401 }
22402 #[doc = "Voltage Switch clock stopped interrupt enable Set and cleared by software to enable/disable interrupt caused by Voltage Switch clock stopped."]
22403 pub const fn ckstopie(&self) -> bool {
22404 let val = (self.0 >> 26usize) & 0x01;
22405 val != 0
22406 }
22407 #[doc = "Voltage Switch clock stopped interrupt enable Set and cleared by software to enable/disable interrupt caused by Voltage Switch clock stopped."]
22408 pub fn set_ckstopie(&mut self, val: bool) {
22409 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
22410 }
22411 #[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."]
22412 pub const fn idmabtcie(&self) -> bool {
22413 let val = (self.0 >> 28usize) & 0x01;
22414 val != 0
22415 }
22416 #[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."]
22417 pub fn set_idmabtcie(&mut self, val: bool) {
22418 self.0 = (self.0 & !(0x01 << 28usize)) | (((val as u32) & 0x01) << 28usize);
22419 }
22420 }
22421 impl Default for Maskr {
22422 fn default() -> Maskr {
22423 Maskr(0)
22424 }
22425 }
22426 #[doc = "The SDMMC_ARGR register contains a 32-bit command argument, which is sent to a card as part of a command message."]
22427 #[repr(transparent)]
22428 #[derive(Copy, Clone, Eq, PartialEq)]
22429 pub struct Argr(pub u32);
22430 impl Argr {
22431 #[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."]
22432 pub const fn cmdarg(&self) -> u32 {
22433 let val = (self.0 >> 0usize) & 0xffff_ffff;
22434 val as u32
22435 }
22436 #[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."]
22437 pub fn set_cmdarg(&mut self, val: u32) {
22438 self.0 =
22439 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
22440 }
22441 }
22442 impl Default for Argr {
22443 fn default() -> Argr {
22444 Argr(0)
22445 }
22446 }
22447 #[doc = "The SDMMC_RESP1/2/3/4R registers contain the status of a card, which is part of the received response."]
22448 #[repr(transparent)]
22449 #[derive(Copy, Clone, Eq, PartialEq)]
22450 pub struct Resp2r(pub u32);
22451 impl Resp2r {
22452 #[doc = "see Table404."]
22453 pub const fn cardstatus2(&self) -> u32 {
22454 let val = (self.0 >> 0usize) & 0xffff_ffff;
22455 val as u32
22456 }
22457 #[doc = "see Table404."]
22458 pub fn set_cardstatus2(&mut self, val: u32) {
22459 self.0 =
22460 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
22461 }
22462 }
22463 impl Default for Resp2r {
22464 fn default() -> Resp2r {
22465 Resp2r(0)
22466 }
22467 }
22468 #[doc = "SDMMC IP version register"]
22469 #[repr(transparent)]
22470 #[derive(Copy, Clone, Eq, PartialEq)]
22471 pub struct Ver(pub u32);
22472 impl Ver {
22473 #[doc = "IP minor revision number."]
22474 pub const fn minrev(&self) -> u8 {
22475 let val = (self.0 >> 0usize) & 0x0f;
22476 val as u8
22477 }
22478 #[doc = "IP minor revision number."]
22479 pub fn set_minrev(&mut self, val: u8) {
22480 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
22481 }
22482 #[doc = "IP major revision number."]
22483 pub const fn majrev(&self) -> u8 {
22484 let val = (self.0 >> 4usize) & 0x0f;
22485 val as u8
22486 }
22487 #[doc = "IP major revision number."]
22488 pub fn set_majrev(&mut self, val: u8) {
22489 self.0 = (self.0 & !(0x0f << 4usize)) | (((val as u32) & 0x0f) << 4usize);
22490 }
22491 }
22492 impl Default for Ver {
22493 fn default() -> Ver {
22494 Ver(0)
22495 }
22496 }
22497 #[doc = "The SDMMC_IDMABSIZER register contains the buffers size when in double buffer configuration."]
22498 #[repr(transparent)]
22499 #[derive(Copy, Clone, Eq, PartialEq)]
22500 pub struct Idmabsizer(pub u32);
22501 impl Idmabsizer {
22502 #[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)."]
22503 pub const fn idmabndt(&self) -> u8 {
22504 let val = (self.0 >> 5usize) & 0xff;
22505 val as u8
22506 }
22507 #[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)."]
22508 pub fn set_idmabndt(&mut self, val: u8) {
22509 self.0 = (self.0 & !(0xff << 5usize)) | (((val as u32) & 0xff) << 5usize);
22510 }
22511 }
22512 impl Default for Idmabsizer {
22513 fn default() -> Idmabsizer {
22514 Idmabsizer(0)
22515 }
22516 }
22517 }
22518}
22519pub mod spi_v2 {
22520 use crate::generic::*;
22521 #[doc = "Serial peripheral interface"]
22522 #[derive(Copy, Clone)]
22523 pub struct Spi(pub *mut u8);
22524 unsafe impl Send for Spi {}
22525 unsafe impl Sync for Spi {}
22526 impl Spi {
22527 #[doc = "control register 1"]
22528 pub fn cr1(self) -> Reg<regs::Cr1, RW> {
22529 unsafe { Reg::from_ptr(self.0.add(0usize)) }
22530 }
22531 #[doc = "control register 2"]
22532 pub fn cr2(self) -> Reg<regs::Cr2, RW> {
22533 unsafe { Reg::from_ptr(self.0.add(4usize)) }
22534 }
22535 #[doc = "status register"]
22536 pub fn sr(self) -> Reg<regs::Sr, RW> {
22537 unsafe { Reg::from_ptr(self.0.add(8usize)) }
22538 }
22539 #[doc = "data register"]
22540 pub fn dr(self) -> Reg<regs::Dr, RW> {
22541 unsafe { Reg::from_ptr(self.0.add(12usize)) }
22542 }
22543 #[doc = "CRC polynomial register"]
22544 pub fn crcpr(self) -> Reg<regs::Crcpr, RW> {
22545 unsafe { Reg::from_ptr(self.0.add(16usize)) }
22546 }
22547 #[doc = "RX CRC register"]
22548 pub fn rxcrcr(self) -> Reg<regs::Rxcrcr, R> {
22549 unsafe { Reg::from_ptr(self.0.add(20usize)) }
22550 }
22551 #[doc = "TX CRC register"]
22552 pub fn txcrcr(self) -> Reg<regs::Txcrcr, R> {
22553 unsafe { Reg::from_ptr(self.0.add(24usize)) }
22554 }
22555 }
22556 pub mod vals {
22557 use crate::generic::*;
22558 #[repr(transparent)]
22559 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22560 pub struct LdmaTx(pub u8);
22561 impl LdmaTx {
22562 #[doc = "Number of data to transfer for transmit is even"]
22563 pub const EVEN: Self = Self(0);
22564 #[doc = "Number of data to transfer for transmit is odd"]
22565 pub const ODD: Self = Self(0x01);
22566 }
22567 #[repr(transparent)]
22568 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22569 pub struct Bidimode(pub u8);
22570 impl Bidimode {
22571 #[doc = "2-line unidirectional data mode selected"]
22572 pub const UNIDIRECTIONAL: Self = Self(0);
22573 #[doc = "1-line bidirectional data mode selected"]
22574 pub const BIDIRECTIONAL: Self = Self(0x01);
22575 }
22576 #[repr(transparent)]
22577 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22578 pub struct Ds(pub u8);
22579 impl Ds {
22580 #[doc = "4-bit"]
22581 pub const FOURBIT: Self = Self(0x03);
22582 #[doc = "5-bit"]
22583 pub const FIVEBIT: Self = Self(0x04);
22584 #[doc = "6-bit"]
22585 pub const SIXBIT: Self = Self(0x05);
22586 #[doc = "7-bit"]
22587 pub const SEVENBIT: Self = Self(0x06);
22588 #[doc = "8-bit"]
22589 pub const EIGHTBIT: Self = Self(0x07);
22590 #[doc = "9-bit"]
22591 pub const NINEBIT: Self = Self(0x08);
22592 #[doc = "10-bit"]
22593 pub const TENBIT: Self = Self(0x09);
22594 #[doc = "11-bit"]
22595 pub const ELEVENBIT: Self = Self(0x0a);
22596 #[doc = "12-bit"]
22597 pub const TWELVEBIT: Self = Self(0x0b);
22598 #[doc = "13-bit"]
22599 pub const THIRTEENBIT: Self = Self(0x0c);
22600 #[doc = "14-bit"]
22601 pub const FOURTEENBIT: Self = Self(0x0d);
22602 #[doc = "15-bit"]
22603 pub const FIFTEENBIT: Self = Self(0x0e);
22604 #[doc = "16-bit"]
22605 pub const SIXTEENBIT: Self = Self(0x0f);
22606 }
22607 #[repr(transparent)]
22608 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22609 pub struct Lsbfirst(pub u8);
22610 impl Lsbfirst {
22611 #[doc = "Data is transmitted/received with the MSB first"]
22612 pub const MSBFIRST: Self = Self(0);
22613 #[doc = "Data is transmitted/received with the LSB first"]
22614 pub const LSBFIRST: Self = Self(0x01);
22615 }
22616 #[repr(transparent)]
22617 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22618 pub struct Rxonly(pub u8);
22619 impl Rxonly {
22620 #[doc = "Full duplex (Transmit and receive)"]
22621 pub const FULLDUPLEX: Self = Self(0);
22622 #[doc = "Output disabled (Receive-only mode)"]
22623 pub const OUTPUTDISABLED: Self = Self(0x01);
22624 }
22625 #[repr(transparent)]
22626 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22627 pub struct Frer(pub u8);
22628 impl Frer {
22629 #[doc = "No frame format error"]
22630 pub const NOERROR: Self = Self(0);
22631 #[doc = "A frame format error occurred"]
22632 pub const ERROR: Self = Self(0x01);
22633 }
22634 #[repr(transparent)]
22635 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22636 pub struct Crcnext(pub u8);
22637 impl Crcnext {
22638 #[doc = "Next transmit value is from Tx buffer"]
22639 pub const TXBUFFER: Self = Self(0);
22640 #[doc = "Next transmit value is from Tx CRC register"]
22641 pub const CRC: Self = Self(0x01);
22642 }
22643 #[repr(transparent)]
22644 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22645 pub struct Mstr(pub u8);
22646 impl Mstr {
22647 #[doc = "Slave configuration"]
22648 pub const SLAVE: Self = Self(0);
22649 #[doc = "Master configuration"]
22650 pub const MASTER: Self = Self(0x01);
22651 }
22652 #[repr(transparent)]
22653 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22654 pub struct Bidioe(pub u8);
22655 impl Bidioe {
22656 #[doc = "Output disabled (receive-only mode)"]
22657 pub const OUTPUTDISABLED: Self = Self(0);
22658 #[doc = "Output enabled (transmit-only mode)"]
22659 pub const OUTPUTENABLED: Self = Self(0x01);
22660 }
22661 #[repr(transparent)]
22662 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22663 pub struct Br(pub u8);
22664 impl Br {
22665 #[doc = "f_PCLK / 2"]
22666 pub const DIV2: Self = Self(0);
22667 #[doc = "f_PCLK / 4"]
22668 pub const DIV4: Self = Self(0x01);
22669 #[doc = "f_PCLK / 8"]
22670 pub const DIV8: Self = Self(0x02);
22671 #[doc = "f_PCLK / 16"]
22672 pub const DIV16: Self = Self(0x03);
22673 #[doc = "f_PCLK / 32"]
22674 pub const DIV32: Self = Self(0x04);
22675 #[doc = "f_PCLK / 64"]
22676 pub const DIV64: Self = Self(0x05);
22677 #[doc = "f_PCLK / 128"]
22678 pub const DIV128: Self = Self(0x06);
22679 #[doc = "f_PCLK / 256"]
22680 pub const DIV256: Self = Self(0x07);
22681 }
22682 #[repr(transparent)]
22683 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22684 pub struct Ftlvlr(pub u8);
22685 impl Ftlvlr {
22686 #[doc = "Tx FIFO Empty"]
22687 pub const EMPTY: Self = Self(0);
22688 #[doc = "Tx 1/4 FIFO"]
22689 pub const QUARTER: Self = Self(0x01);
22690 #[doc = "Tx 1/2 FIFO"]
22691 pub const HALF: Self = Self(0x02);
22692 #[doc = "Tx FIFO full"]
22693 pub const FULL: Self = Self(0x03);
22694 }
22695 #[repr(transparent)]
22696 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22697 pub struct Frf(pub u8);
22698 impl Frf {
22699 #[doc = "SPI Motorola mode"]
22700 pub const MOTOROLA: Self = Self(0);
22701 #[doc = "SPI TI mode"]
22702 pub const TI: Self = Self(0x01);
22703>>>>>>> cbbaaa9 (Fix RNG interrupt name)
21063 } 22704 }
21064 #[repr(transparent)] 22705 #[repr(transparent)]
21065 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 22706 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
@@ -21072,6 +22713,7 @@ pub mod dma_v2 {
21072 } 22713 }
21073 #[repr(transparent)] 22714 #[repr(transparent)]
21074 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 22715 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22716<<<<<<< HEAD
21075 pub struct Dir(pub u8); 22717 pub struct Dir(pub u8);
21076 impl Dir { 22718 impl Dir {
21077 #[doc = "Peripheral-to-memory"] 22719 #[doc = "Peripheral-to-memory"]
@@ -21093,9 +22735,62 @@ pub mod dma_v2 {
21093 pub const INCR8: Self = Self(0x02); 22735 pub const INCR8: Self = Self(0x02);
21094 #[doc = "Incremental burst of 16 beats"] 22736 #[doc = "Incremental burst of 16 beats"]
21095 pub const INCR16: Self = Self(0x03); 22737 pub const INCR16: Self = Self(0x03);
22738=======
22739 pub struct Crcl(pub u8);
22740 impl Crcl {
22741 #[doc = "8-bit CRC length"]
22742 pub const EIGHTBIT: Self = Self(0);
22743 #[doc = "16-bit CRC length"]
22744 pub const SIXTEENBIT: Self = Self(0x01);
22745 }
22746 #[repr(transparent)]
22747 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22748 pub struct Cpol(pub u8);
22749 impl Cpol {
22750 #[doc = "CK to 0 when idle"]
22751 pub const IDLELOW: Self = Self(0);
22752 #[doc = "CK to 1 when idle"]
22753 pub const IDLEHIGH: Self = Self(0x01);
22754 }
22755 #[repr(transparent)]
22756 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22757 pub struct LdmaRx(pub u8);
22758 impl LdmaRx {
22759 #[doc = "Number of data to transfer for receive is even"]
22760 pub const EVEN: Self = Self(0);
22761 #[doc = "Number of data to transfer for receive is odd"]
22762 pub const ODD: Self = Self(0x01);
22763 }
22764 #[repr(transparent)]
22765 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22766 pub struct Frxth(pub u8);
22767 impl Frxth {
22768 #[doc = "RXNE event is generated if the FIFO level is greater than or equal to 1/2 (16-bit)"]
22769 pub const HALF: Self = Self(0);
22770 #[doc = "RXNE event is generated if the FIFO level is greater than or equal to 1/4 (8-bit)"]
22771 pub const QUARTER: Self = Self(0x01);
21096 } 22772 }
21097 #[repr(transparent)] 22773 #[repr(transparent)]
21098 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 22774 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
22775 pub struct Frlvlr(pub u8);
22776 impl Frlvlr {
22777 #[doc = "Rx FIFO Empty"]
22778 pub const EMPTY: Self = Self(0);
22779 #[doc = "Rx 1/4 FIFO"]
22780 pub const QUARTER: Self = Self(0x01);
22781 #[doc = "Rx 1/2 FIFO"]
22782 pub const HALF: Self = Self(0x02);
22783 #[doc = "Rx FIFO full"]
22784 pub const FULL: Self = Self(0x03);
22785>>>>>>> cbbaaa9 (Fix RNG interrupt name)
22786 }
22787 }
22788 pub mod regs {
22789 use crate::generic::*;
22790 #[doc = "RX CRC register"]
22791 #[repr(transparent)]
22792<<<<<<< HEAD
22793 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21099 pub struct Inc(pub u8); 22794 pub struct Inc(pub u8);
21100 impl Inc { 22795 impl Inc {
21101 #[doc = "Address pointer is fixed"] 22796 #[doc = "Address pointer is fixed"]
@@ -21115,8 +22810,29 @@ pub mod dma_v2 {
21115 pub const THREEQUARTERS: Self = Self(0x02); 22810 pub const THREEQUARTERS: Self = Self(0x02);
21116 #[doc = "Full FIFO"] 22811 #[doc = "Full FIFO"]
21117 pub const FULL: Self = Self(0x03); 22812 pub const FULL: Self = Self(0x03);
22813=======
22814 #[derive(Copy, Clone, Eq, PartialEq)]
22815 pub struct Rxcrcr(pub u32);
22816 impl Rxcrcr {
22817 #[doc = "Rx CRC register"]
22818 pub const fn rx_crc(&self) -> u16 {
22819 let val = (self.0 >> 0usize) & 0xffff;
22820 val as u16
22821 }
22822 #[doc = "Rx CRC register"]
22823 pub fn set_rx_crc(&mut self, val: u16) {
22824 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
22825 }
22826 }
22827 impl Default for Rxcrcr {
22828 fn default() -> Rxcrcr {
22829 Rxcrcr(0)
22830 }
22831>>>>>>> cbbaaa9 (Fix RNG interrupt name)
21118 } 22832 }
22833 #[doc = "data register"]
21119 #[repr(transparent)] 22834 #[repr(transparent)]
22835<<<<<<< HEAD
21120 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 22836 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21121 pub struct Circ(pub u8); 22837 pub struct Circ(pub u8);
21122 impl Circ { 22838 impl Circ {
@@ -21133,8 +22849,29 @@ pub mod dma_v2 {
21133 pub const ENABLED: Self = Self(0); 22849 pub const ENABLED: Self = Self(0);
21134 #[doc = "Direct mode is disabled"] 22850 #[doc = "Direct mode is disabled"]
21135 pub const DISABLED: Self = Self(0x01); 22851 pub const DISABLED: Self = Self(0x01);
22852=======
22853 #[derive(Copy, Clone, Eq, PartialEq)]
22854 pub struct Dr(pub u32);
22855 impl Dr {
22856 #[doc = "Data register"]
22857 pub const fn dr(&self) -> u16 {
22858 let val = (self.0 >> 0usize) & 0xffff;
22859 val as u16
22860 }
22861 #[doc = "Data register"]
22862 pub fn set_dr(&mut self, val: u16) {
22863 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
22864 }
21136 } 22865 }
22866 impl Default for Dr {
22867 fn default() -> Dr {
22868 Dr(0)
22869 }
22870>>>>>>> cbbaaa9 (Fix RNG interrupt name)
22871 }
22872 #[doc = "TX CRC register"]
21137 #[repr(transparent)] 22873 #[repr(transparent)]
22874<<<<<<< HEAD
21138 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 22875 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
21139 pub struct Size(pub u8); 22876 pub struct Size(pub u8);
21140 impl Size { 22877 impl Size {
@@ -21158,6 +22895,27 @@ pub mod dma_v2 {
21158 pub mod regs { 22895 pub mod regs {
21159 use crate::generic::*; 22896 use crate::generic::*;
21160 #[doc = "stream x configuration register"] 22897 #[doc = "stream x configuration register"]
22898=======
22899 #[derive(Copy, Clone, Eq, PartialEq)]
22900 pub struct Txcrcr(pub u32);
22901 impl Txcrcr {
22902 #[doc = "Tx CRC register"]
22903 pub const fn tx_crc(&self) -> u16 {
22904 let val = (self.0 >> 0usize) & 0xffff;
22905 val as u16
22906 }
22907 #[doc = "Tx CRC register"]
22908 pub fn set_tx_crc(&mut self, val: u16) {
22909 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
22910 }
22911 }
22912 impl Default for Txcrcr {
22913 fn default() -> Txcrcr {
22914 Txcrcr(0)
22915 }
22916 }
22917 #[doc = "CRC polynomial register"]
22918>>>>>>> cbbaaa9 (Fix RNG interrupt name)
21161 #[repr(transparent)] 22919 #[repr(transparent)]
21162 #[derive(Copy, Clone, Eq, PartialEq)] 22920 #[derive(Copy, Clone, Eq, PartialEq)]
21163 pub struct Cr(pub u32); 22921 pub struct Cr(pub u32);
@@ -21340,6 +23098,7 @@ pub mod dma_v2 {
21340>>>>>>> 546082a (Update generated code) 23098>>>>>>> 546082a (Update generated code)
21341 } 23099 }
21342 } 23100 }
23101<<<<<<< HEAD
21343 #[doc = "stream x FIFO control register"] 23102 #[doc = "stream x FIFO control register"]
21344 #[repr(transparent)] 23103 #[repr(transparent)]
21345 #[derive(Copy, Clone, Eq, PartialEq)] 23104 #[derive(Copy, Clone, Eq, PartialEq)]
@@ -21805,6 +23564,126 @@ pub mod timer_v1 {
21805 #[doc = "DMA/Interrupt enable register"] 23564 #[doc = "DMA/Interrupt enable register"]
21806 pub fn dier(self) -> Reg<regs::DierAdv, RW> { 23565 pub fn dier(self) -> Reg<regs::DierAdv, RW> {
21807 unsafe { Reg::from_ptr(self.0.add(12usize)) } 23566 unsafe { Reg::from_ptr(self.0.add(12usize)) }
23567=======
23568 #[doc = "control register 2"]
23569 #[repr(transparent)]
23570 #[derive(Copy, Clone, Eq, PartialEq)]
23571 pub struct Cr2(pub u32);
23572 impl Cr2 {
23573 #[doc = "Rx buffer DMA enable"]
23574 pub const fn rxdmaen(&self) -> bool {
23575 let val = (self.0 >> 0usize) & 0x01;
23576 val != 0
23577 }
23578 #[doc = "Rx buffer DMA enable"]
23579 pub fn set_rxdmaen(&mut self, val: bool) {
23580 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
23581 }
23582 #[doc = "Tx buffer DMA enable"]
23583 pub const fn txdmaen(&self) -> bool {
23584 let val = (self.0 >> 1usize) & 0x01;
23585 val != 0
23586 }
23587 #[doc = "Tx buffer DMA enable"]
23588 pub fn set_txdmaen(&mut self, val: bool) {
23589 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
23590 }
23591 #[doc = "SS output enable"]
23592 pub const fn ssoe(&self) -> bool {
23593 let val = (self.0 >> 2usize) & 0x01;
23594 val != 0
23595 }
23596 #[doc = "SS output enable"]
23597 pub fn set_ssoe(&mut self, val: bool) {
23598 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
23599 }
23600 #[doc = "NSS pulse management"]
23601 pub const fn nssp(&self) -> bool {
23602 let val = (self.0 >> 3usize) & 0x01;
23603 val != 0
23604 }
23605 #[doc = "NSS pulse management"]
23606 pub fn set_nssp(&mut self, val: bool) {
23607 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
23608 }
23609 #[doc = "Frame format"]
23610 pub const fn frf(&self) -> super::vals::Frf {
23611 let val = (self.0 >> 4usize) & 0x01;
23612 super::vals::Frf(val as u8)
23613 }
23614 #[doc = "Frame format"]
23615 pub fn set_frf(&mut self, val: super::vals::Frf) {
23616 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
23617 }
23618 #[doc = "Error interrupt enable"]
23619 pub const fn errie(&self) -> bool {
23620 let val = (self.0 >> 5usize) & 0x01;
23621 val != 0
23622 }
23623 #[doc = "Error interrupt enable"]
23624 pub fn set_errie(&mut self, val: bool) {
23625 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
23626 }
23627 #[doc = "RX buffer not empty interrupt enable"]
23628 pub const fn rxneie(&self) -> bool {
23629 let val = (self.0 >> 6usize) & 0x01;
23630 val != 0
23631 }
23632 #[doc = "RX buffer not empty interrupt enable"]
23633 pub fn set_rxneie(&mut self, val: bool) {
23634 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
23635 }
23636 #[doc = "Tx buffer empty interrupt enable"]
23637 pub const fn txeie(&self) -> bool {
23638 let val = (self.0 >> 7usize) & 0x01;
23639 val != 0
23640 }
23641 #[doc = "Tx buffer empty interrupt enable"]
23642 pub fn set_txeie(&mut self, val: bool) {
23643 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
23644 }
23645 #[doc = "Data size"]
23646 pub const fn ds(&self) -> super::vals::Ds {
23647 let val = (self.0 >> 8usize) & 0x0f;
23648 super::vals::Ds(val as u8)
23649 }
23650 #[doc = "Data size"]
23651 pub fn set_ds(&mut self, val: super::vals::Ds) {
23652 self.0 = (self.0 & !(0x0f << 8usize)) | (((val.0 as u32) & 0x0f) << 8usize);
23653 }
23654 #[doc = "FIFO reception threshold"]
23655 pub const fn frxth(&self) -> super::vals::Frxth {
23656 let val = (self.0 >> 12usize) & 0x01;
23657 super::vals::Frxth(val as u8)
23658 }
23659 #[doc = "FIFO reception threshold"]
23660 pub fn set_frxth(&mut self, val: super::vals::Frxth) {
23661 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
23662 }
23663 #[doc = "Last DMA transfer for reception"]
23664 pub const fn ldma_rx(&self) -> super::vals::LdmaRx {
23665 let val = (self.0 >> 13usize) & 0x01;
23666 super::vals::LdmaRx(val as u8)
23667 }
23668 #[doc = "Last DMA transfer for reception"]
23669 pub fn set_ldma_rx(&mut self, val: super::vals::LdmaRx) {
23670 self.0 = (self.0 & !(0x01 << 13usize)) | (((val.0 as u32) & 0x01) << 13usize);
23671 }
23672 #[doc = "Last DMA transfer for transmission"]
23673 pub const fn ldma_tx(&self) -> super::vals::LdmaTx {
23674 let val = (self.0 >> 14usize) & 0x01;
23675 super::vals::LdmaTx(val as u8)
23676 }
23677 #[doc = "Last DMA transfer for transmission"]
23678 pub fn set_ldma_tx(&mut self, val: super::vals::LdmaTx) {
23679 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
23680 }
23681 }
23682 impl Default for Cr2 {
23683 fn default() -> Cr2 {
23684 Cr2(0)
23685 }
23686>>>>>>> cbbaaa9 (Fix RNG interrupt name)
21808 } 23687 }
21809 #[doc = "status register"] 23688 #[doc = "status register"]
21810 pub fn sr(self) -> Reg<regs::SrAdv, RW> { 23689 pub fn sr(self) -> Reg<regs::SrAdv, RW> {
@@ -21815,6 +23694,7 @@ pub mod timer_v1 {
21815 unsafe { Reg::from_ptr(self.0.add(20usize)) } 23694 unsafe { Reg::from_ptr(self.0.add(20usize)) }
21816>>>>>>> 546082a (Update generated code) 23695>>>>>>> 546082a (Update generated code)
21817 } 23696 }
23697<<<<<<< HEAD
21818 #[doc = "capture/compare mode register 1 (input mode)"] 23698 #[doc = "capture/compare mode register 1 (input mode)"]
21819 pub fn ccmr_input(self, n: usize) -> Reg<regs::CcmrInput, RW> { 23699 pub fn ccmr_input(self, n: usize) -> Reg<regs::CcmrInput, RW> {
21820 assert!(n < 2usize); 23700 assert!(n < 2usize);
@@ -21929,19 +23809,38 @@ pub mod timer_v1 {
21929 impl Sr { 23809 impl Sr {
21930 #[doc = "Receive buffer not empty"] 23810 #[doc = "Receive buffer not empty"]
21931 pub const fn rxne(&self) -> bool { 23811 pub const fn rxne(&self) -> bool {
23812=======
23813 #[doc = "control register 1"]
23814 #[repr(transparent)]
23815 #[derive(Copy, Clone, Eq, PartialEq)]
23816 pub struct Cr1(pub u32);
23817 impl Cr1 {
23818 #[doc = "Clock phase"]
23819 pub const fn cpha(&self) -> super::vals::Cpha {
23820>>>>>>> cbbaaa9 (Fix RNG interrupt name)
21932 let val = (self.0 >> 0usize) & 0x01; 23821 let val = (self.0 >> 0usize) & 0x01;
21933 val != 0 23822 super::vals::Cpha(val as u8)
21934 } 23823 }
21935<<<<<<< HEAD 23824<<<<<<< HEAD
23825<<<<<<< HEAD
21936 #[doc = "Receive buffer not empty"] 23826 #[doc = "Receive buffer not empty"]
21937 pub fn set_rxne(&mut self, val: bool) { 23827 pub fn set_rxne(&mut self, val: bool) {
21938 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 23828 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
21939 } 23829 }
21940 #[doc = "Transmit buffer empty"] 23830 #[doc = "Transmit buffer empty"]
21941 pub const fn txe(&self) -> bool { 23831 pub const fn txe(&self) -> bool {
23832=======
23833 #[doc = "Clock phase"]
23834 pub fn set_cpha(&mut self, val: super::vals::Cpha) {
23835 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
23836 }
23837 #[doc = "Clock polarity"]
23838 pub const fn cpol(&self) -> super::vals::Cpol {
23839>>>>>>> cbbaaa9 (Fix RNG interrupt name)
21942 let val = (self.0 >> 1usize) & 0x01; 23840 let val = (self.0 >> 1usize) & 0x01;
21943 val != 0 23841 super::vals::Cpol(val as u8)
21944 } 23842 }
23843<<<<<<< HEAD
21945 #[doc = "Transmit buffer empty"] 23844 #[doc = "Transmit buffer empty"]
21946 pub fn set_txe(&mut self, val: bool) { 23845 pub fn set_txe(&mut self, val: bool) {
21947 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 23846 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
@@ -22036,8 +23935,122 @@ pub mod generic {
22036 Self { 23935 Self {
22037 ptr, 23936 ptr,
22038 phantom: PhantomData, 23937 phantom: PhantomData,
23938=======
23939 #[doc = "Clock polarity"]
23940 pub fn set_cpol(&mut self, val: super::vals::Cpol) {
23941 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
23942 }
23943 #[doc = "Master selection"]
23944 pub const fn mstr(&self) -> super::vals::Mstr {
23945 let val = (self.0 >> 2usize) & 0x01;
23946 super::vals::Mstr(val as u8)
23947 }
23948 #[doc = "Master selection"]
23949 pub fn set_mstr(&mut self, val: super::vals::Mstr) {
23950 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
23951 }
23952 #[doc = "Baud rate control"]
23953 pub const fn br(&self) -> super::vals::Br {
23954 let val = (self.0 >> 3usize) & 0x07;
23955 super::vals::Br(val as u8)
23956 }
23957 #[doc = "Baud rate control"]
23958 pub fn set_br(&mut self, val: super::vals::Br) {
23959 self.0 = (self.0 & !(0x07 << 3usize)) | (((val.0 as u32) & 0x07) << 3usize);
23960 }
23961 #[doc = "SPI enable"]
23962 pub const fn spe(&self) -> bool {
23963 let val = (self.0 >> 6usize) & 0x01;
23964 val != 0
23965 }
23966 #[doc = "SPI enable"]
23967 pub fn set_spe(&mut self, val: bool) {
23968 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
23969 }
23970 #[doc = "Frame format"]
23971 pub const fn lsbfirst(&self) -> super::vals::Lsbfirst {
23972 let val = (self.0 >> 7usize) & 0x01;
23973 super::vals::Lsbfirst(val as u8)
23974 }
23975 #[doc = "Frame format"]
23976 pub fn set_lsbfirst(&mut self, val: super::vals::Lsbfirst) {
23977 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
23978 }
23979 #[doc = "Internal slave select"]
23980 pub const fn ssi(&self) -> bool {
23981 let val = (self.0 >> 8usize) & 0x01;
23982 val != 0
23983 }
23984 #[doc = "Internal slave select"]
23985 pub fn set_ssi(&mut self, val: bool) {
23986 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
23987 }
23988 #[doc = "Software slave management"]
23989 pub const fn ssm(&self) -> bool {
23990 let val = (self.0 >> 9usize) & 0x01;
23991 val != 0
23992 }
23993 #[doc = "Software slave management"]
23994 pub fn set_ssm(&mut self, val: bool) {
23995 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
23996 }
23997 #[doc = "Receive only"]
23998 pub const fn rxonly(&self) -> super::vals::Rxonly {
23999 let val = (self.0 >> 10usize) & 0x01;
24000 super::vals::Rxonly(val as u8)
24001 }
24002 #[doc = "Receive only"]
24003 pub fn set_rxonly(&mut self, val: super::vals::Rxonly) {
24004 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
24005 }
24006 #[doc = "CRC length"]
24007 pub const fn crcl(&self) -> super::vals::Crcl {
24008 let val = (self.0 >> 11usize) & 0x01;
24009 super::vals::Crcl(val as u8)
24010 }
24011 #[doc = "CRC length"]
24012 pub fn set_crcl(&mut self, val: super::vals::Crcl) {
24013 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
24014 }
24015 #[doc = "CRC transfer next"]
24016 pub const fn crcnext(&self) -> super::vals::Crcnext {
24017 let val = (self.0 >> 12usize) & 0x01;
24018 super::vals::Crcnext(val as u8)
24019 }
24020 #[doc = "CRC transfer next"]
24021 pub fn set_crcnext(&mut self, val: super::vals::Crcnext) {
24022 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
24023 }
24024 #[doc = "Hardware CRC calculation enable"]
24025 pub const fn crcen(&self) -> bool {
24026 let val = (self.0 >> 13usize) & 0x01;
24027 val != 0
24028 }
24029 #[doc = "Hardware CRC calculation enable"]
24030 pub fn set_crcen(&mut self, val: bool) {
24031 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
24032 }
24033 #[doc = "Output enable in bidirectional mode"]
24034 pub const fn bidioe(&self) -> super::vals::Bidioe {
24035 let val = (self.0 >> 14usize) & 0x01;
24036 super::vals::Bidioe(val as u8)
24037 }
24038 #[doc = "Output enable in bidirectional mode"]
24039 pub fn set_bidioe(&mut self, val: super::vals::Bidioe) {
24040 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
24041>>>>>>> cbbaaa9 (Fix RNG interrupt name)
24042 }
24043 #[doc = "Bidirectional data mode enable"]
24044 pub const fn bidimode(&self) -> super::vals::Bidimode {
24045 let val = (self.0 >> 15usize) & 0x01;
24046 super::vals::Bidimode(val as u8)
24047 }
24048 #[doc = "Bidirectional data mode enable"]
24049 pub fn set_bidimode(&mut self, val: super::vals::Bidimode) {
24050 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
22039 } 24051 }
22040 } 24052 }
24053<<<<<<< HEAD
22041 pub fn ptr(&self) -> *mut T { 24054 pub fn ptr(&self) -> *mut T {
22042 self.ptr as _ 24055 self.ptr as _
22043 } 24056 }
@@ -22550,9 +24563,83 @@ pub mod sdmmc_v2 {
22550 } 24563 }
22551 #[doc = "Voltage switch sequence start. This bit is used to start the timing critical section of the voltage switch sequence:"] 24564 #[doc = "Voltage switch sequence start. This bit is used to start the timing critical section of the voltage switch sequence:"]
22552 pub const fn vswitch(&self) -> bool { 24565 pub const fn vswitch(&self) -> bool {
24566=======
24567 impl Default for Cr1 {
24568 fn default() -> Cr1 {
24569 Cr1(0)
24570 }
24571 }
24572 }
24573}
24574pub mod spi_v1 {
24575 use crate::generic::*;
24576 #[doc = "Serial peripheral interface"]
24577 #[derive(Copy, Clone)]
24578 pub struct Spi(pub *mut u8);
24579 unsafe impl Send for Spi {}
24580 unsafe impl Sync for Spi {}
24581 impl Spi {
24582 #[doc = "control register 1"]
24583 pub fn cr1(self) -> Reg<regs::Cr1, RW> {
24584 unsafe { Reg::from_ptr(self.0.add(0usize)) }
24585 }
24586 #[doc = "control register 2"]
24587 pub fn cr2(self) -> Reg<regs::Cr2, RW> {
24588 unsafe { Reg::from_ptr(self.0.add(4usize)) }
24589 }
24590 #[doc = "status register"]
24591 pub fn sr(self) -> Reg<regs::Sr, RW> {
24592 unsafe { Reg::from_ptr(self.0.add(8usize)) }
24593 }
24594 #[doc = "data register"]
24595 pub fn dr(self) -> Reg<regs::Dr, RW> {
24596 unsafe { Reg::from_ptr(self.0.add(12usize)) }
24597 }
24598 #[doc = "CRC polynomial register"]
24599 pub fn crcpr(self) -> Reg<regs::Crcpr, RW> {
24600 unsafe { Reg::from_ptr(self.0.add(16usize)) }
24601 }
24602 #[doc = "RX CRC register"]
24603 pub fn rxcrcr(self) -> Reg<regs::Rxcrcr, R> {
24604 unsafe { Reg::from_ptr(self.0.add(20usize)) }
24605 }
24606 #[doc = "TX CRC register"]
24607 pub fn txcrcr(self) -> Reg<regs::Txcrcr, R> {
24608 unsafe { Reg::from_ptr(self.0.add(24usize)) }
24609 }
24610 }
24611 pub mod regs {
24612 use crate::generic::*;
24613 #[doc = "control register 1"]
24614 #[repr(transparent)]
24615 #[derive(Copy, Clone, Eq, PartialEq)]
24616 pub struct Cr1(pub u32);
24617 impl Cr1 {
24618 #[doc = "Clock phase"]
24619 pub const fn cpha(&self) -> super::vals::Cpha {
24620 let val = (self.0 >> 0usize) & 0x01;
24621 super::vals::Cpha(val as u8)
24622 }
24623 #[doc = "Clock phase"]
24624 pub fn set_cpha(&mut self, val: super::vals::Cpha) {
24625 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
24626 }
24627 #[doc = "Clock polarity"]
24628 pub const fn cpol(&self) -> super::vals::Cpol {
24629 let val = (self.0 >> 1usize) & 0x01;
24630 super::vals::Cpol(val as u8)
24631 }
24632 #[doc = "Clock polarity"]
24633 pub fn set_cpol(&mut self, val: super::vals::Cpol) {
24634 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
24635 }
24636 #[doc = "Master selection"]
24637 pub const fn mstr(&self) -> super::vals::Mstr {
24638>>>>>>> cbbaaa9 (Fix RNG interrupt name)
22553 let val = (self.0 >> 2usize) & 0x01; 24639 let val = (self.0 >> 2usize) & 0x01;
22554 val != 0 24640 super::vals::Mstr(val as u8)
22555 } 24641 }
24642<<<<<<< HEAD
22556 #[doc = "Voltage switch sequence start. This bit is used to start the timing critical section of the voltage switch sequence:"] 24643 #[doc = "Voltage switch sequence start. This bit is used to start the timing critical section of the voltage switch sequence:"]
22557 pub fn set_vswitch(&mut self, val: bool) { 24644 pub fn set_vswitch(&mut self, val: bool) {
22558 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 24645 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
@@ -22995,6 +25082,536 @@ are always 0 and read only). This register can be written by firmware when DPSM
22995 pub fn set_dmab(&mut self, val: u16) { 25082 pub fn set_dmab(&mut self, val: u16) {
22996 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize); 25083 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
22997 } 25084 }
25085=======
25086 #[doc = "Master selection"]
25087 pub fn set_mstr(&mut self, val: super::vals::Mstr) {
25088 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
25089 }
25090 #[doc = "Baud rate control"]
25091 pub const fn br(&self) -> super::vals::Br {
25092 let val = (self.0 >> 3usize) & 0x07;
25093 super::vals::Br(val as u8)
25094 }
25095 #[doc = "Baud rate control"]
25096 pub fn set_br(&mut self, val: super::vals::Br) {
25097 self.0 = (self.0 & !(0x07 << 3usize)) | (((val.0 as u32) & 0x07) << 3usize);
25098 }
25099 #[doc = "SPI enable"]
25100 pub const fn spe(&self) -> bool {
25101 let val = (self.0 >> 6usize) & 0x01;
25102 val != 0
25103 }
25104 #[doc = "SPI enable"]
25105 pub fn set_spe(&mut self, val: bool) {
25106 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
25107 }
25108 #[doc = "Frame format"]
25109 pub const fn lsbfirst(&self) -> super::vals::Lsbfirst {
25110 let val = (self.0 >> 7usize) & 0x01;
25111 super::vals::Lsbfirst(val as u8)
25112 }
25113 #[doc = "Frame format"]
25114 pub fn set_lsbfirst(&mut self, val: super::vals::Lsbfirst) {
25115 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
25116 }
25117 #[doc = "Internal slave select"]
25118 pub const fn ssi(&self) -> bool {
25119 let val = (self.0 >> 8usize) & 0x01;
25120 val != 0
25121 }
25122 #[doc = "Internal slave select"]
25123 pub fn set_ssi(&mut self, val: bool) {
25124 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
25125 }
25126 #[doc = "Software slave management"]
25127 pub const fn ssm(&self) -> bool {
25128 let val = (self.0 >> 9usize) & 0x01;
25129 val != 0
25130 }
25131 #[doc = "Software slave management"]
25132 pub fn set_ssm(&mut self, val: bool) {
25133 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
25134 }
25135 #[doc = "Receive only"]
25136 pub const fn rxonly(&self) -> super::vals::Rxonly {
25137 let val = (self.0 >> 10usize) & 0x01;
25138 super::vals::Rxonly(val as u8)
25139 }
25140 #[doc = "Receive only"]
25141 pub fn set_rxonly(&mut self, val: super::vals::Rxonly) {
25142 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
25143 }
25144 #[doc = "Data frame format"]
25145 pub const fn dff(&self) -> super::vals::Dff {
25146 let val = (self.0 >> 11usize) & 0x01;
25147 super::vals::Dff(val as u8)
25148 }
25149 #[doc = "Data frame format"]
25150 pub fn set_dff(&mut self, val: super::vals::Dff) {
25151 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
25152 }
25153 #[doc = "CRC transfer next"]
25154 pub const fn crcnext(&self) -> super::vals::Crcnext {
25155 let val = (self.0 >> 12usize) & 0x01;
25156 super::vals::Crcnext(val as u8)
25157 }
25158 #[doc = "CRC transfer next"]
25159 pub fn set_crcnext(&mut self, val: super::vals::Crcnext) {
25160 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
25161 }
25162 #[doc = "Hardware CRC calculation enable"]
25163 pub const fn crcen(&self) -> bool {
25164 let val = (self.0 >> 13usize) & 0x01;
25165 val != 0
25166 }
25167 #[doc = "Hardware CRC calculation enable"]
25168 pub fn set_crcen(&mut self, val: bool) {
25169 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
25170 }
25171 #[doc = "Output enable in bidirectional mode"]
25172 pub const fn bidioe(&self) -> super::vals::Bidioe {
25173 let val = (self.0 >> 14usize) & 0x01;
25174 super::vals::Bidioe(val as u8)
25175 }
25176 #[doc = "Output enable in bidirectional mode"]
25177 pub fn set_bidioe(&mut self, val: super::vals::Bidioe) {
25178 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
25179 }
25180 #[doc = "Bidirectional data mode enable"]
25181 pub const fn bidimode(&self) -> super::vals::Bidimode {
25182 let val = (self.0 >> 15usize) & 0x01;
25183 super::vals::Bidimode(val as u8)
25184 }
25185 #[doc = "Bidirectional data mode enable"]
25186 pub fn set_bidimode(&mut self, val: super::vals::Bidimode) {
25187 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
25188 }
25189 }
25190 impl Default for Cr1 {
25191 fn default() -> Cr1 {
25192 Cr1(0)
25193 }
25194 }
25195 #[doc = "status register"]
25196 #[repr(transparent)]
25197 #[derive(Copy, Clone, Eq, PartialEq)]
25198 pub struct Sr(pub u32);
25199 impl Sr {
25200 #[doc = "Receive buffer not empty"]
25201 pub const fn rxne(&self) -> bool {
25202 let val = (self.0 >> 0usize) & 0x01;
25203 val != 0
25204 }
25205 #[doc = "Receive buffer not empty"]
25206 pub fn set_rxne(&mut self, val: bool) {
25207 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
25208 }
25209 #[doc = "Transmit buffer empty"]
25210 pub const fn txe(&self) -> bool {
25211 let val = (self.0 >> 1usize) & 0x01;
25212 val != 0
25213 }
25214 #[doc = "Transmit buffer empty"]
25215 pub fn set_txe(&mut self, val: bool) {
25216 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
25217 }
25218 #[doc = "CRC error flag"]
25219 pub const fn crcerr(&self) -> bool {
25220 let val = (self.0 >> 4usize) & 0x01;
25221 val != 0
25222 }
25223 #[doc = "CRC error flag"]
25224 pub fn set_crcerr(&mut self, val: bool) {
25225 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
25226 }
25227 #[doc = "Mode fault"]
25228 pub const fn modf(&self) -> bool {
25229 let val = (self.0 >> 5usize) & 0x01;
25230 val != 0
25231 }
25232 #[doc = "Mode fault"]
25233 pub fn set_modf(&mut self, val: bool) {
25234 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
25235 }
25236 #[doc = "Overrun flag"]
25237 pub const fn ovr(&self) -> bool {
25238 let val = (self.0 >> 6usize) & 0x01;
25239 val != 0
25240 }
25241 #[doc = "Overrun flag"]
25242 pub fn set_ovr(&mut self, val: bool) {
25243 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
25244 }
25245 #[doc = "Busy flag"]
25246 pub const fn bsy(&self) -> bool {
25247 let val = (self.0 >> 7usize) & 0x01;
25248 val != 0
25249 }
25250 #[doc = "Busy flag"]
25251 pub fn set_bsy(&mut self, val: bool) {
25252 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
25253 }
25254 #[doc = "TI frame format error"]
25255 pub const fn fre(&self) -> bool {
25256 let val = (self.0 >> 8usize) & 0x01;
25257 val != 0
25258 }
25259 #[doc = "TI frame format error"]
25260 pub fn set_fre(&mut self, val: bool) {
25261 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
25262 }
25263 }
25264 impl Default for Sr {
25265 fn default() -> Sr {
25266 Sr(0)
25267 }
25268 }
25269 #[doc = "control register 2"]
25270 #[repr(transparent)]
25271 #[derive(Copy, Clone, Eq, PartialEq)]
25272 pub struct Cr2(pub u32);
25273 impl Cr2 {
25274 #[doc = "Rx buffer DMA enable"]
25275 pub const fn rxdmaen(&self) -> bool {
25276 let val = (self.0 >> 0usize) & 0x01;
25277 val != 0
25278 }
25279 #[doc = "Rx buffer DMA enable"]
25280 pub fn set_rxdmaen(&mut self, val: bool) {
25281 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
25282 }
25283 #[doc = "Tx buffer DMA enable"]
25284 pub const fn txdmaen(&self) -> bool {
25285 let val = (self.0 >> 1usize) & 0x01;
25286 val != 0
25287 }
25288 #[doc = "Tx buffer DMA enable"]
25289 pub fn set_txdmaen(&mut self, val: bool) {
25290 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
25291 }
25292 #[doc = "SS output enable"]
25293 pub const fn ssoe(&self) -> bool {
25294 let val = (self.0 >> 2usize) & 0x01;
25295 val != 0
25296 }
25297 #[doc = "SS output enable"]
25298 pub fn set_ssoe(&mut self, val: bool) {
25299 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
25300 }
25301 #[doc = "Frame format"]
25302 pub const fn frf(&self) -> super::vals::Frf {
25303 let val = (self.0 >> 4usize) & 0x01;
25304 super::vals::Frf(val as u8)
25305 }
25306 #[doc = "Frame format"]
25307 pub fn set_frf(&mut self, val: super::vals::Frf) {
25308 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
25309 }
25310 #[doc = "Error interrupt enable"]
25311 pub const fn errie(&self) -> bool {
25312 let val = (self.0 >> 5usize) & 0x01;
25313 val != 0
25314 }
25315 #[doc = "Error interrupt enable"]
25316 pub fn set_errie(&mut self, val: bool) {
25317 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
25318 }
25319 #[doc = "RX buffer not empty interrupt enable"]
25320 pub const fn rxneie(&self) -> bool {
25321 let val = (self.0 >> 6usize) & 0x01;
25322 val != 0
25323 }
25324 #[doc = "RX buffer not empty interrupt enable"]
25325 pub fn set_rxneie(&mut self, val: bool) {
25326 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
25327 }
25328 #[doc = "Tx buffer empty interrupt enable"]
25329 pub const fn txeie(&self) -> bool {
25330 let val = (self.0 >> 7usize) & 0x01;
25331 val != 0
25332 }
25333 #[doc = "Tx buffer empty interrupt enable"]
25334 pub fn set_txeie(&mut self, val: bool) {
25335 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
25336 }
25337 }
25338 impl Default for Cr2 {
25339 fn default() -> Cr2 {
25340 Cr2(0)
25341 }
25342 }
25343 #[doc = "data register"]
25344 #[repr(transparent)]
25345 #[derive(Copy, Clone, Eq, PartialEq)]
25346 pub struct Dr(pub u32);
25347 impl Dr {
25348 #[doc = "Data register"]
25349 pub const fn dr(&self) -> u16 {
25350 let val = (self.0 >> 0usize) & 0xffff;
25351 val as u16
25352 }
25353 #[doc = "Data register"]
25354 pub fn set_dr(&mut self, val: u16) {
25355 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
25356 }
25357 }
25358 impl Default for Dr {
25359 fn default() -> Dr {
25360 Dr(0)
25361 }
25362 }
25363 #[doc = "CRC polynomial register"]
25364 #[repr(transparent)]
25365 #[derive(Copy, Clone, Eq, PartialEq)]
25366 pub struct Crcpr(pub u32);
25367 impl Crcpr {
25368 #[doc = "CRC polynomial register"]
25369 pub const fn crcpoly(&self) -> u16 {
25370 let val = (self.0 >> 0usize) & 0xffff;
25371 val as u16
25372 }
25373 #[doc = "CRC polynomial register"]
25374 pub fn set_crcpoly(&mut self, val: u16) {
25375 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
25376 }
25377 }
25378 impl Default for Crcpr {
25379 fn default() -> Crcpr {
25380 Crcpr(0)
25381 }
25382 }
25383 #[doc = "TX CRC register"]
25384 #[repr(transparent)]
25385 #[derive(Copy, Clone, Eq, PartialEq)]
25386 pub struct Txcrcr(pub u32);
25387 impl Txcrcr {
25388 #[doc = "Tx CRC register"]
25389 pub const fn tx_crc(&self) -> u16 {
25390 let val = (self.0 >> 0usize) & 0xffff;
25391 val as u16
25392 }
25393 #[doc = "Tx CRC register"]
25394 pub fn set_tx_crc(&mut self, val: u16) {
25395 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
25396 }
25397 }
25398 impl Default for Txcrcr {
25399 fn default() -> Txcrcr {
25400 Txcrcr(0)
25401 }
25402 }
25403 #[doc = "RX CRC register"]
25404 #[repr(transparent)]
25405 #[derive(Copy, Clone, Eq, PartialEq)]
25406 pub struct Rxcrcr(pub u32);
25407 impl Rxcrcr {
25408 #[doc = "Rx CRC register"]
25409 pub const fn rx_crc(&self) -> u16 {
25410 let val = (self.0 >> 0usize) & 0xffff;
25411 val as u16
25412 }
25413 #[doc = "Rx CRC register"]
25414 pub fn set_rx_crc(&mut self, val: u16) {
25415 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
25416 }
25417 }
25418 impl Default for Rxcrcr {
25419 fn default() -> Rxcrcr {
25420 Rxcrcr(0)
25421 }
25422 }
25423 }
25424 pub mod vals {
25425 use crate::generic::*;
25426 #[repr(transparent)]
25427 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25428 pub struct Lsbfirst(pub u8);
25429 impl Lsbfirst {
25430 #[doc = "Data is transmitted/received with the MSB first"]
25431 pub const MSBFIRST: Self = Self(0);
25432 #[doc = "Data is transmitted/received with the LSB first"]
25433 pub const LSBFIRST: Self = Self(0x01);
25434 }
25435 #[repr(transparent)]
25436 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25437 pub struct Cpha(pub u8);
25438 impl Cpha {
25439 #[doc = "The first clock transition is the first data capture edge"]
25440 pub const FIRSTEDGE: Self = Self(0);
25441 #[doc = "The second clock transition is the first data capture edge"]
25442 pub const SECONDEDGE: Self = Self(0x01);
25443 }
25444 #[repr(transparent)]
25445 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25446 pub struct Frer(pub u8);
25447 impl Frer {
25448 #[doc = "No frame format error"]
25449 pub const NOERROR: Self = Self(0);
25450 #[doc = "A frame format error occurred"]
25451 pub const ERROR: Self = Self(0x01);
25452 }
25453 #[repr(transparent)]
25454 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25455 pub struct Cpol(pub u8);
25456 impl Cpol {
25457 #[doc = "CK to 0 when idle"]
25458 pub const IDLELOW: Self = Self(0);
25459 #[doc = "CK to 1 when idle"]
25460 pub const IDLEHIGH: Self = Self(0x01);
25461 }
25462 #[repr(transparent)]
25463 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25464 pub struct Crcnext(pub u8);
25465 impl Crcnext {
25466 #[doc = "Next transmit value is from Tx buffer"]
25467 pub const TXBUFFER: Self = Self(0);
25468 #[doc = "Next transmit value is from Tx CRC register"]
25469 pub const CRC: Self = Self(0x01);
25470 }
25471 #[repr(transparent)]
25472 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25473 pub struct Mstr(pub u8);
25474 impl Mstr {
25475 #[doc = "Slave configuration"]
25476 pub const SLAVE: Self = Self(0);
25477 #[doc = "Master configuration"]
25478 pub const MASTER: Self = Self(0x01);
25479 }
25480 #[repr(transparent)]
25481 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25482 pub struct Rxonly(pub u8);
25483 impl Rxonly {
25484 #[doc = "Full duplex (Transmit and receive)"]
25485 pub const FULLDUPLEX: Self = Self(0);
25486 #[doc = "Output disabled (Receive-only mode)"]
25487 pub const OUTPUTDISABLED: Self = Self(0x01);
25488 }
25489 #[repr(transparent)]
25490 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25491 pub struct Dff(pub u8);
25492 impl Dff {
25493 #[doc = "8-bit data frame format is selected for transmission/reception"]
25494 pub const EIGHTBIT: Self = Self(0);
25495 #[doc = "16-bit data frame format is selected for transmission/reception"]
25496 pub const SIXTEENBIT: Self = Self(0x01);
25497 }
25498 #[repr(transparent)]
25499 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25500 pub struct Bidioe(pub u8);
25501 impl Bidioe {
25502 #[doc = "Output disabled (receive-only mode)"]
25503 pub const OUTPUTDISABLED: Self = Self(0);
25504 #[doc = "Output enabled (transmit-only mode)"]
25505 pub const OUTPUTENABLED: Self = Self(0x01);
25506 }
25507 #[repr(transparent)]
25508 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25509 pub struct Br(pub u8);
25510 impl Br {
25511 #[doc = "f_PCLK / 2"]
25512 pub const DIV2: Self = Self(0);
25513 #[doc = "f_PCLK / 4"]
25514 pub const DIV4: Self = Self(0x01);
25515 #[doc = "f_PCLK / 8"]
25516 pub const DIV8: Self = Self(0x02);
25517 #[doc = "f_PCLK / 16"]
25518 pub const DIV16: Self = Self(0x03);
25519 #[doc = "f_PCLK / 32"]
25520 pub const DIV32: Self = Self(0x04);
25521 #[doc = "f_PCLK / 64"]
25522 pub const DIV64: Self = Self(0x05);
25523 #[doc = "f_PCLK / 128"]
25524 pub const DIV128: Self = Self(0x06);
25525 #[doc = "f_PCLK / 256"]
25526 pub const DIV256: Self = Self(0x07);
25527 }
25528 #[repr(transparent)]
25529 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25530 pub struct Iscfg(pub u8);
25531 impl Iscfg {
25532 #[doc = "Slave - transmit"]
25533 pub const SLAVETX: Self = Self(0);
25534 #[doc = "Slave - receive"]
25535 pub const SLAVERX: Self = Self(0x01);
25536 #[doc = "Master - transmit"]
25537 pub const MASTERTX: Self = Self(0x02);
25538 #[doc = "Master - receive"]
25539 pub const MASTERRX: Self = Self(0x03);
25540 }
25541 #[repr(transparent)]
25542 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25543 pub struct Bidimode(pub u8);
25544 impl Bidimode {
25545 #[doc = "2-line unidirectional data mode selected"]
25546 pub const UNIDIRECTIONAL: Self = Self(0);
25547 #[doc = "1-line bidirectional data mode selected"]
25548 pub const BIDIRECTIONAL: Self = Self(0x01);
25549 }
25550 #[repr(transparent)]
25551 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25552 pub struct Frf(pub u8);
25553 impl Frf {
25554 #[doc = "SPI Motorola mode"]
25555 pub const MOTOROLA: Self = Self(0);
25556 #[doc = "SPI TI mode"]
25557 pub const TI: Self = Self(0x01);
25558 }
25559 }
25560}
25561pub mod timer_v1 {
25562 use crate::generic::*;
25563 #[doc = "General purpose 32-bit timer"]
25564 #[derive(Copy, Clone)]
25565 pub struct TimGp32(pub *mut u8);
25566 unsafe impl Send for TimGp32 {}
25567 unsafe impl Sync for TimGp32 {}
25568 impl TimGp32 {
25569 #[doc = "control register 1"]
25570 pub fn cr1(self) -> Reg<regs::Cr1Gp, RW> {
25571 unsafe { Reg::from_ptr(self.0.add(0usize)) }
25572 }
25573 #[doc = "control register 2"]
25574 pub fn cr2(self) -> Reg<regs::Cr2Gp, RW> {
25575 unsafe { Reg::from_ptr(self.0.add(4usize)) }
25576 }
25577 #[doc = "slave mode control register"]
25578 pub fn smcr(self) -> Reg<regs::Smcr, RW> {
25579 unsafe { Reg::from_ptr(self.0.add(8usize)) }
25580 }
25581 #[doc = "DMA/Interrupt enable register"]
25582 pub fn dier(self) -> Reg<regs::DierGp, RW> {
25583 unsafe { Reg::from_ptr(self.0.add(12usize)) }
25584 }
25585 #[doc = "status register"]
25586 pub fn sr(self) -> Reg<regs::SrGp, RW> {
25587 unsafe { Reg::from_ptr(self.0.add(16usize)) }
25588 }
25589 #[doc = "event generation register"]
25590 pub fn egr(self) -> Reg<regs::EgrGp, W> {
25591 unsafe { Reg::from_ptr(self.0.add(20usize)) }
25592 }
25593 #[doc = "capture/compare mode register 1 (input mode)"]
25594 pub fn ccmr_input(self, n: usize) -> Reg<regs::CcmrInput, RW> {
25595 assert!(n < 2usize);
25596 unsafe { Reg::from_ptr(self.0.add(24usize + n * 4usize)) }
25597 }
25598 #[doc = "capture/compare mode register 1 (output mode)"]
25599 pub fn ccmr_output(self, n: usize) -> Reg<regs::CcmrOutput, RW> {
25600 assert!(n < 2usize);
25601 unsafe { Reg::from_ptr(self.0.add(24usize + n * 4usize)) }
25602 }
25603 #[doc = "capture/compare enable register"]
25604 pub fn ccer(self) -> Reg<regs::CcerGp, RW> {
25605 unsafe { Reg::from_ptr(self.0.add(32usize)) }
25606 }
25607 #[doc = "counter"]
25608 pub fn cnt(self) -> Reg<regs::Cnt32, RW> {
25609 unsafe { Reg::from_ptr(self.0.add(36usize)) }
25610 }
25611 #[doc = "prescaler"]
25612 pub fn psc(self) -> Reg<regs::Psc, RW> {
25613 unsafe { Reg::from_ptr(self.0.add(40usize)) }
25614>>>>>>> cbbaaa9 (Fix RNG interrupt name)
22998 } 25615 }
22999 impl Default for Dmar { 25616 impl Default for Dmar {
23000 fn default() -> Dmar { 25617 fn default() -> Dmar {
@@ -23156,6 +25773,7 @@ are always 0 and read only). This register can be written by firmware when DPSM
23156 } 25773 }
23157 } 25774 }
23158 #[doc = "auto-reload register"] 25775 #[doc = "auto-reload register"]
25776<<<<<<< HEAD
23159 #[repr(transparent)] 25777 #[repr(transparent)]
23160 #[derive(Copy, Clone, Eq, PartialEq)] 25778 #[derive(Copy, Clone, Eq, PartialEq)]
23161 pub struct Arr32(pub u32); 25779 pub struct Arr32(pub u32);
@@ -23170,6 +25788,91 @@ are always 0 and read only). This register can be written by firmware when DPSM
23170 self.0 = 25788 self.0 =
23171 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize); 25789 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
23172 } 25790 }
25791=======
25792 pub fn arr(self) -> Reg<regs::Arr16, RW> {
25793 unsafe { Reg::from_ptr(self.0.add(44usize)) }
25794 }
25795 }
25796 #[doc = "General purpose 16-bit timer"]
25797 #[derive(Copy, Clone)]
25798 pub struct TimGp16(pub *mut u8);
25799 unsafe impl Send for TimGp16 {}
25800 unsafe impl Sync for TimGp16 {}
25801 impl TimGp16 {
25802 #[doc = "control register 1"]
25803 pub fn cr1(self) -> Reg<regs::Cr1Gp, RW> {
25804 unsafe { Reg::from_ptr(self.0.add(0usize)) }
25805 }
25806 #[doc = "control register 2"]
25807 pub fn cr2(self) -> Reg<regs::Cr2Gp, RW> {
25808 unsafe { Reg::from_ptr(self.0.add(4usize)) }
25809 }
25810 #[doc = "slave mode control register"]
25811 pub fn smcr(self) -> Reg<regs::Smcr, RW> {
25812 unsafe { Reg::from_ptr(self.0.add(8usize)) }
25813 }
25814 #[doc = "DMA/Interrupt enable register"]
25815 pub fn dier(self) -> Reg<regs::DierGp, RW> {
25816 unsafe { Reg::from_ptr(self.0.add(12usize)) }
25817 }
25818 #[doc = "status register"]
25819 pub fn sr(self) -> Reg<regs::SrGp, RW> {
25820 unsafe { Reg::from_ptr(self.0.add(16usize)) }
25821 }
25822 #[doc = "event generation register"]
25823 pub fn egr(self) -> Reg<regs::EgrGp, W> {
25824 unsafe { Reg::from_ptr(self.0.add(20usize)) }
25825 }
25826 #[doc = "capture/compare mode register 1 (input mode)"]
25827 pub fn ccmr_input(self, n: usize) -> Reg<regs::CcmrInput, RW> {
25828 assert!(n < 2usize);
25829 unsafe { Reg::from_ptr(self.0.add(24usize + n * 4usize)) }
25830 }
25831 #[doc = "capture/compare mode register 1 (output mode)"]
25832 pub fn ccmr_output(self, n: usize) -> Reg<regs::CcmrOutput, RW> {
25833 assert!(n < 2usize);
25834 unsafe { Reg::from_ptr(self.0.add(24usize + n * 4usize)) }
25835 }
25836 #[doc = "capture/compare enable register"]
25837 pub fn ccer(self) -> Reg<regs::CcerGp, RW> {
25838 unsafe { Reg::from_ptr(self.0.add(32usize)) }
25839 }
25840 #[doc = "counter"]
25841 pub fn cnt(self) -> Reg<regs::Cnt16, RW> {
25842 unsafe { Reg::from_ptr(self.0.add(36usize)) }
25843 }
25844 #[doc = "prescaler"]
25845 pub fn psc(self) -> Reg<regs::Psc, RW> {
25846 unsafe { Reg::from_ptr(self.0.add(40usize)) }
25847 }
25848 #[doc = "auto-reload register"]
25849 pub fn arr(self) -> Reg<regs::Arr16, RW> {
25850 unsafe { Reg::from_ptr(self.0.add(44usize)) }
25851 }
25852 #[doc = "capture/compare register"]
25853 pub fn ccr(self, n: usize) -> Reg<regs::Ccr16, RW> {
25854 assert!(n < 4usize);
25855 unsafe { Reg::from_ptr(self.0.add(52usize + n * 4usize)) }
25856 }
25857 #[doc = "DMA control register"]
25858 pub fn dcr(self) -> Reg<regs::Dcr, RW> {
25859 unsafe { Reg::from_ptr(self.0.add(72usize)) }
25860 }
25861 #[doc = "DMA address for full transfer"]
25862 pub fn dmar(self) -> Reg<regs::Dmar, RW> {
25863 unsafe { Reg::from_ptr(self.0.add(76usize)) }
25864 }
25865 }
25866 #[doc = "Advanced-timers"]
25867 #[derive(Copy, Clone)]
25868 pub struct TimAdv(pub *mut u8);
25869 unsafe impl Send for TimAdv {}
25870 unsafe impl Sync for TimAdv {}
25871 impl TimAdv {
25872 #[doc = "control register 1"]
25873 pub fn cr1(self) -> Reg<regs::Cr1Gp, RW> {
25874 unsafe { Reg::from_ptr(self.0.add(0usize)) }
25875>>>>>>> cbbaaa9 (Fix RNG interrupt name)
23173 } 25876 }
23174 impl Default for Arr32 { 25877 impl Default for Arr32 {
23175 fn default() -> Arr32 { 25878 fn default() -> Arr32 {
@@ -23380,9 +26083,11 @@ are always 0 and read only). This register can be written by firmware when DPSM
23380 } 26083 }
23381 } 26084 }
23382 } 26085 }
23383 pub mod vals { 26086 pub mod regs {
23384 use crate::generic::*; 26087 use crate::generic::*;
26088 #[doc = "auto-reload register"]
23385 #[repr(transparent)] 26089 #[repr(transparent)]
26090<<<<<<< HEAD
23386 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 26091 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
23387 pub struct Ct(pub u8); 26092 pub struct Ct(pub u8);
23388 impl Ct { 26093 impl Ct {
@@ -23434,8 +26139,29 @@ are always 0 and read only). This register can be written by firmware when DPSM
23434 pub const DISABLED: Self = Self(0); 26139 pub const DISABLED: Self = Self(0);
23435 #[doc = "Circular mode enabled"] 26140 #[doc = "Circular mode enabled"]
23436 pub const ENABLED: Self = Self(0x01); 26141 pub const ENABLED: Self = Self(0x01);
26142=======
26143 #[derive(Copy, Clone, Eq, PartialEq)]
26144 pub struct Arr16(pub u32);
26145 impl Arr16 {
26146 #[doc = "Auto-reload value"]
26147 pub const fn arr(&self) -> u16 {
26148 let val = (self.0 >> 0usize) & 0xffff;
26149 val as u16
26150 }
26151 #[doc = "Auto-reload value"]
26152 pub fn set_arr(&mut self, val: u16) {
26153 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
26154 }
26155 }
26156 impl Default for Arr16 {
26157 fn default() -> Arr16 {
26158 Arr16(0)
26159 }
26160>>>>>>> cbbaaa9 (Fix RNG interrupt name)
23437 } 26161 }
26162 #[doc = "capture/compare register 1"]
23438 #[repr(transparent)] 26163 #[repr(transparent)]
26164<<<<<<< HEAD
23439 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 26165 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
23440 pub struct Fth(pub u8); 26166 pub struct Fth(pub u8);
23441 impl Fth { 26167 impl Fth {
@@ -23464,8 +26190,29 @@ are always 0 and read only). This register can be written by firmware when DPSM
23464 pub const EMPTY: Self = Self(0x04); 26190 pub const EMPTY: Self = Self(0x04);
23465 #[doc = "FIFO is full"] 26191 #[doc = "FIFO is full"]
23466 pub const FULL: Self = Self(0x05); 26192 pub const FULL: Self = Self(0x05);
26193=======
26194 #[derive(Copy, Clone, Eq, PartialEq)]
26195 pub struct Ccr16(pub u32);
26196 impl Ccr16 {
26197 #[doc = "Capture/Compare 1 value"]
26198 pub const fn ccr(&self) -> u16 {
26199 let val = (self.0 >> 0usize) & 0xffff;
26200 val as u16
26201 }
26202 #[doc = "Capture/Compare 1 value"]
26203 pub fn set_ccr(&mut self, val: u16) {
26204 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
26205 }
26206 }
26207 impl Default for Ccr16 {
26208 fn default() -> Ccr16 {
26209 Ccr16(0)
26210 }
26211>>>>>>> cbbaaa9 (Fix RNG interrupt name)
23467 } 26212 }
26213 #[doc = "capture/compare enable register"]
23468 #[repr(transparent)] 26214 #[repr(transparent)]
26215<<<<<<< HEAD
23469 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 26216 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
23470 pub struct Pfctrl(pub u8); 26217 pub struct Pfctrl(pub u8);
23471 impl Pfctrl { 26218 impl Pfctrl {
@@ -23484,8 +26231,59 @@ are always 0 and read only). This register can be written by firmware when DPSM
23484 pub const BITS16: Self = Self(0x01); 26231 pub const BITS16: Self = Self(0x01);
23485 #[doc = "Word (32-bit)"] 26232 #[doc = "Word (32-bit)"]
23486 pub const BITS32: Self = Self(0x02); 26233 pub const BITS32: Self = Self(0x02);
26234=======
26235 #[derive(Copy, Clone, Eq, PartialEq)]
26236 pub struct CcerGp(pub u32);
26237 impl CcerGp {
26238 #[doc = "Capture/Compare 1 output enable"]
26239 pub fn cce(&self, n: usize) -> bool {
26240 assert!(n < 4usize);
26241 let offs = 0usize + n * 4usize;
26242 let val = (self.0 >> offs) & 0x01;
26243 val != 0
26244 }
26245 #[doc = "Capture/Compare 1 output enable"]
26246 pub fn set_cce(&mut self, n: usize, val: bool) {
26247 assert!(n < 4usize);
26248 let offs = 0usize + n * 4usize;
26249 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
26250 }
26251 #[doc = "Capture/Compare 1 output Polarity"]
26252 pub fn ccp(&self, n: usize) -> bool {
26253 assert!(n < 4usize);
26254 let offs = 1usize + n * 4usize;
26255 let val = (self.0 >> offs) & 0x01;
26256 val != 0
26257 }
26258 #[doc = "Capture/Compare 1 output Polarity"]
26259 pub fn set_ccp(&mut self, n: usize, val: bool) {
26260 assert!(n < 4usize);
26261 let offs = 1usize + n * 4usize;
26262 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
26263 }
26264 #[doc = "Capture/Compare 1 output Polarity"]
26265 pub fn ccnp(&self, n: usize) -> bool {
26266 assert!(n < 4usize);
26267 let offs = 3usize + n * 4usize;
26268 let val = (self.0 >> offs) & 0x01;
26269 val != 0
26270 }
26271 #[doc = "Capture/Compare 1 output Polarity"]
26272 pub fn set_ccnp(&mut self, n: usize, val: bool) {
26273 assert!(n < 4usize);
26274 let offs = 3usize + n * 4usize;
26275 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
26276 }
23487 } 26277 }
26278 impl Default for CcerGp {
26279 fn default() -> CcerGp {
26280 CcerGp(0)
26281 }
26282>>>>>>> cbbaaa9 (Fix RNG interrupt name)
26283 }
26284 #[doc = "counter"]
23488 #[repr(transparent)] 26285 #[repr(transparent)]
26286<<<<<<< HEAD
23489 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 26287 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
23490 pub struct Inc(pub u8); 26288 pub struct Inc(pub u8);
23491 impl Inc { 26289 impl Inc {
@@ -23502,8 +26300,30 @@ are always 0 and read only). This register can be written by firmware when DPSM
23502 pub const PSIZE: Self = Self(0); 26300 pub const PSIZE: Self = Self(0);
23503 #[doc = "The offset size for the peripheral address calculation is fixed to 4 (32-bit alignment)"] 26301 #[doc = "The offset size for the peripheral address calculation is fixed to 4 (32-bit alignment)"]
23504 pub const FIXED4: Self = Self(0x01); 26302 pub const FIXED4: Self = Self(0x01);
26303=======
26304 #[derive(Copy, Clone, Eq, PartialEq)]
26305 pub struct Cnt32(pub u32);
26306 impl Cnt32 {
26307 #[doc = "counter value"]
26308 pub const fn cnt(&self) -> u32 {
26309 let val = (self.0 >> 0usize) & 0xffff_ffff;
26310 val as u32
26311 }
26312 #[doc = "counter value"]
26313 pub fn set_cnt(&mut self, val: u32) {
26314 self.0 =
26315 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
26316 }
26317 }
26318 impl Default for Cnt32 {
26319 fn default() -> Cnt32 {
26320 Cnt32(0)
26321 }
26322>>>>>>> cbbaaa9 (Fix RNG interrupt name)
23505 } 26323 }
26324 #[doc = "DMA address for full transfer"]
23506 #[repr(transparent)] 26325 #[repr(transparent)]
26326<<<<<<< HEAD
23507 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 26327 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
23508 pub struct Dir(pub u8); 26328 pub struct Dir(pub u8);
23509 impl Dir { 26329 impl Dir {
@@ -24033,8 +26853,1725 @@ pub mod syscfg_h7 {
24033 impl Default for EgrBasic { 26853 impl Default for EgrBasic {
24034 fn default() -> EgrBasic { 26854 fn default() -> EgrBasic {
24035 EgrBasic(0) 26855 EgrBasic(0)
26856=======
26857 #[derive(Copy, Clone, Eq, PartialEq)]
26858 pub struct Dmar(pub u32);
26859 impl Dmar {
26860 #[doc = "DMA register for burst accesses"]
26861 pub const fn dmab(&self) -> u16 {
26862 let val = (self.0 >> 0usize) & 0xffff;
26863 val as u16
26864 }
26865 #[doc = "DMA register for burst accesses"]
26866 pub fn set_dmab(&mut self, val: u16) {
26867 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
26868 }
26869 }
26870 impl Default for Dmar {
26871 fn default() -> Dmar {
26872 Dmar(0)
26873 }
26874 }
26875 #[doc = "slave mode control register"]
26876 #[repr(transparent)]
26877 #[derive(Copy, Clone, Eq, PartialEq)]
26878 pub struct Smcr(pub u32);
26879 impl Smcr {
26880 #[doc = "Slave mode selection"]
26881 pub const fn sms(&self) -> super::vals::Sms {
26882 let val = (self.0 >> 0usize) & 0x07;
26883 super::vals::Sms(val as u8)
26884 }
26885 #[doc = "Slave mode selection"]
26886 pub fn set_sms(&mut self, val: super::vals::Sms) {
26887 self.0 = (self.0 & !(0x07 << 0usize)) | (((val.0 as u32) & 0x07) << 0usize);
26888 }
26889 #[doc = "Trigger selection"]
26890 pub const fn ts(&self) -> super::vals::Ts {
26891 let val = (self.0 >> 4usize) & 0x07;
26892 super::vals::Ts(val as u8)
26893 }
26894 #[doc = "Trigger selection"]
26895 pub fn set_ts(&mut self, val: super::vals::Ts) {
26896 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize);
26897 }
26898 #[doc = "Master/Slave mode"]
26899 pub const fn msm(&self) -> super::vals::Msm {
26900 let val = (self.0 >> 7usize) & 0x01;
26901 super::vals::Msm(val as u8)
26902 }
26903 #[doc = "Master/Slave mode"]
26904 pub fn set_msm(&mut self, val: super::vals::Msm) {
26905 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
26906 }
26907 #[doc = "External trigger filter"]
26908 pub const fn etf(&self) -> super::vals::Etf {
26909 let val = (self.0 >> 8usize) & 0x0f;
26910 super::vals::Etf(val as u8)
26911 }
26912 #[doc = "External trigger filter"]
26913 pub fn set_etf(&mut self, val: super::vals::Etf) {
26914 self.0 = (self.0 & !(0x0f << 8usize)) | (((val.0 as u32) & 0x0f) << 8usize);
26915 }
26916 #[doc = "External trigger prescaler"]
26917 pub const fn etps(&self) -> super::vals::Etps {
26918 let val = (self.0 >> 12usize) & 0x03;
26919 super::vals::Etps(val as u8)
26920 }
26921 #[doc = "External trigger prescaler"]
26922 pub fn set_etps(&mut self, val: super::vals::Etps) {
26923 self.0 = (self.0 & !(0x03 << 12usize)) | (((val.0 as u32) & 0x03) << 12usize);
26924 }
26925 #[doc = "External clock enable"]
26926 pub const fn ece(&self) -> super::vals::Ece {
26927 let val = (self.0 >> 14usize) & 0x01;
26928 super::vals::Ece(val as u8)
26929 }
26930 #[doc = "External clock enable"]
26931 pub fn set_ece(&mut self, val: super::vals::Ece) {
26932 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
26933 }
26934 #[doc = "External trigger polarity"]
26935 pub const fn etp(&self) -> super::vals::Etp {
26936 let val = (self.0 >> 15usize) & 0x01;
26937 super::vals::Etp(val as u8)
26938 }
26939 #[doc = "External trigger polarity"]
26940 pub fn set_etp(&mut self, val: super::vals::Etp) {
26941 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize);
26942 }
26943 }
26944 impl Default for Smcr {
26945 fn default() -> Smcr {
26946 Smcr(0)
26947 }
26948 }
26949 #[doc = "event generation register"]
26950 #[repr(transparent)]
26951 #[derive(Copy, Clone, Eq, PartialEq)]
26952 pub struct EgrAdv(pub u32);
26953 impl EgrAdv {
26954 #[doc = "Update generation"]
26955 pub const fn ug(&self) -> bool {
26956 let val = (self.0 >> 0usize) & 0x01;
26957 val != 0
26958 }
26959 #[doc = "Update generation"]
26960 pub fn set_ug(&mut self, val: bool) {
26961 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
26962 }
26963 #[doc = "Capture/compare 1 generation"]
26964 pub fn ccg(&self, n: usize) -> bool {
26965 assert!(n < 4usize);
26966 let offs = 1usize + n * 1usize;
26967 let val = (self.0 >> offs) & 0x01;
26968 val != 0
26969 }
26970 #[doc = "Capture/compare 1 generation"]
26971 pub fn set_ccg(&mut self, n: usize, val: bool) {
26972 assert!(n < 4usize);
26973 let offs = 1usize + n * 1usize;
26974 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
26975 }
26976 #[doc = "Capture/Compare control update generation"]
26977 pub const fn comg(&self) -> bool {
26978 let val = (self.0 >> 5usize) & 0x01;
26979 val != 0
26980 }
26981 #[doc = "Capture/Compare control update generation"]
26982 pub fn set_comg(&mut self, val: bool) {
26983 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
26984 }
26985 #[doc = "Trigger generation"]
26986 pub const fn tg(&self) -> bool {
26987 let val = (self.0 >> 6usize) & 0x01;
26988 val != 0
26989 }
26990 #[doc = "Trigger generation"]
26991 pub fn set_tg(&mut self, val: bool) {
26992 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
26993 }
26994 #[doc = "Break generation"]
26995 pub const fn bg(&self) -> bool {
26996 let val = (self.0 >> 7usize) & 0x01;
26997 val != 0
26998 }
26999 #[doc = "Break generation"]
27000 pub fn set_bg(&mut self, val: bool) {
27001 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
27002 }
27003 }
27004 impl Default for EgrAdv {
27005 fn default() -> EgrAdv {
27006 EgrAdv(0)
27007 }
27008 }
27009 #[doc = "capture/compare register 1"]
27010 #[repr(transparent)]
27011 #[derive(Copy, Clone, Eq, PartialEq)]
27012 pub struct Ccr32(pub u32);
27013 impl Ccr32 {
27014 #[doc = "Capture/Compare 1 value"]
27015 pub const fn ccr(&self) -> u32 {
27016 let val = (self.0 >> 0usize) & 0xffff_ffff;
27017 val as u32
27018 }
27019 #[doc = "Capture/Compare 1 value"]
27020 pub fn set_ccr(&mut self, val: u32) {
27021 self.0 =
27022 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
27023 }
27024 }
27025 impl Default for Ccr32 {
27026 fn default() -> Ccr32 {
27027 Ccr32(0)
27028 }
27029 }
27030 #[doc = "repetition counter register"]
27031 #[repr(transparent)]
27032 #[derive(Copy, Clone, Eq, PartialEq)]
27033 pub struct Rcr(pub u32);
27034 impl Rcr {
27035 #[doc = "Repetition counter value"]
27036 pub const fn rep(&self) -> u8 {
27037 let val = (self.0 >> 0usize) & 0xff;
27038 val as u8
27039 }
27040 #[doc = "Repetition counter value"]
27041 pub fn set_rep(&mut self, val: u8) {
27042 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
27043 }
27044 }
27045 impl Default for Rcr {
27046 fn default() -> Rcr {
27047 Rcr(0)
27048 }
27049 }
27050 #[doc = "status register"]
27051 #[repr(transparent)]
27052 #[derive(Copy, Clone, Eq, PartialEq)]
27053 pub struct SrGp(pub u32);
27054 impl SrGp {
27055 #[doc = "Update interrupt flag"]
27056 pub const fn uif(&self) -> bool {
27057 let val = (self.0 >> 0usize) & 0x01;
27058 val != 0
27059 }
27060 #[doc = "Update interrupt flag"]
27061 pub fn set_uif(&mut self, val: bool) {
27062 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
27063 }
27064 #[doc = "Capture/compare 1 interrupt flag"]
27065 pub fn ccif(&self, n: usize) -> bool {
27066 assert!(n < 4usize);
27067 let offs = 1usize + n * 1usize;
27068 let val = (self.0 >> offs) & 0x01;
27069 val != 0
27070 }
27071 #[doc = "Capture/compare 1 interrupt flag"]
27072 pub fn set_ccif(&mut self, n: usize, val: bool) {
27073 assert!(n < 4usize);
27074 let offs = 1usize + n * 1usize;
27075 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
27076 }
27077 #[doc = "COM interrupt flag"]
27078 pub const fn comif(&self) -> bool {
27079 let val = (self.0 >> 5usize) & 0x01;
27080 val != 0
27081 }
27082 #[doc = "COM interrupt flag"]
27083 pub fn set_comif(&mut self, val: bool) {
27084 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
27085 }
27086 #[doc = "Trigger interrupt flag"]
27087 pub const fn tif(&self) -> bool {
27088 let val = (self.0 >> 6usize) & 0x01;
27089 val != 0
27090 }
27091 #[doc = "Trigger interrupt flag"]
27092 pub fn set_tif(&mut self, val: bool) {
27093 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
27094 }
27095 #[doc = "Break interrupt flag"]
27096 pub const fn bif(&self) -> bool {
27097 let val = (self.0 >> 7usize) & 0x01;
27098 val != 0
27099 }
27100 #[doc = "Break interrupt flag"]
27101 pub fn set_bif(&mut self, val: bool) {
27102 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
27103 }
27104 #[doc = "Capture/Compare 1 overcapture flag"]
27105 pub fn ccof(&self, n: usize) -> bool {
27106 assert!(n < 4usize);
27107 let offs = 9usize + n * 1usize;
27108 let val = (self.0 >> offs) & 0x01;
27109 val != 0
27110 }
27111 #[doc = "Capture/Compare 1 overcapture flag"]
27112 pub fn set_ccof(&mut self, n: usize, val: bool) {
27113 assert!(n < 4usize);
27114 let offs = 9usize + n * 1usize;
27115 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
27116 }
27117 }
27118 impl Default for SrGp {
27119 fn default() -> SrGp {
27120 SrGp(0)
27121 }
27122 }
27123 #[doc = "DMA control register"]
27124 #[repr(transparent)]
27125 #[derive(Copy, Clone, Eq, PartialEq)]
27126 pub struct Dcr(pub u32);
27127 impl Dcr {
27128 #[doc = "DMA base address"]
27129 pub const fn dba(&self) -> u8 {
27130 let val = (self.0 >> 0usize) & 0x1f;
27131 val as u8
27132 }
27133 #[doc = "DMA base address"]
27134 pub fn set_dba(&mut self, val: u8) {
27135 self.0 = (self.0 & !(0x1f << 0usize)) | (((val as u32) & 0x1f) << 0usize);
27136 }
27137 #[doc = "DMA burst length"]
27138 pub const fn dbl(&self) -> u8 {
27139 let val = (self.0 >> 8usize) & 0x1f;
27140 val as u8
27141 }
27142 #[doc = "DMA burst length"]
27143 pub fn set_dbl(&mut self, val: u8) {
27144 self.0 = (self.0 & !(0x1f << 8usize)) | (((val as u32) & 0x1f) << 8usize);
27145 }
27146 }
27147 impl Default for Dcr {
27148 fn default() -> Dcr {
27149 Dcr(0)
27150 }
27151 }
27152 #[doc = "DMA/Interrupt enable register"]
27153 #[repr(transparent)]
27154 #[derive(Copy, Clone, Eq, PartialEq)]
27155 pub struct DierGp(pub u32);
27156 impl DierGp {
27157 #[doc = "Update interrupt enable"]
27158 pub const fn uie(&self) -> bool {
27159 let val = (self.0 >> 0usize) & 0x01;
27160 val != 0
27161 }
27162 #[doc = "Update interrupt enable"]
27163 pub fn set_uie(&mut self, val: bool) {
27164 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
27165>>>>>>> cbbaaa9 (Fix RNG interrupt name)
27166 }
27167 #[doc = "Capture/Compare 1 interrupt enable"]
27168 pub fn ccie(&self, n: usize) -> bool {
27169 assert!(n < 4usize);
27170 let offs = 1usize + n * 1usize;
27171 let val = (self.0 >> offs) & 0x01;
27172 val != 0
27173 }
27174 #[doc = "Capture/Compare 1 interrupt enable"]
27175 pub fn set_ccie(&mut self, n: usize, val: bool) {
27176 assert!(n < 4usize);
27177 let offs = 1usize + n * 1usize;
27178 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
27179 }
27180 #[doc = "Trigger interrupt enable"]
27181 pub const fn tie(&self) -> bool {
27182 let val = (self.0 >> 6usize) & 0x01;
27183 val != 0
27184 }
27185 #[doc = "Trigger interrupt enable"]
27186 pub fn set_tie(&mut self, val: bool) {
27187 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
27188 }
27189 #[doc = "Update DMA request enable"]
27190 pub const fn ude(&self) -> bool {
27191 let val = (self.0 >> 8usize) & 0x01;
27192 val != 0
27193 }
27194 #[doc = "Update DMA request enable"]
27195 pub fn set_ude(&mut self, val: bool) {
27196 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
27197 }
27198 #[doc = "Capture/Compare 1 DMA request enable"]
27199 pub fn ccde(&self, n: usize) -> bool {
27200 assert!(n < 4usize);
27201 let offs = 9usize + n * 1usize;
27202 let val = (self.0 >> offs) & 0x01;
27203 val != 0
27204 }
27205 #[doc = "Capture/Compare 1 DMA request enable"]
27206 pub fn set_ccde(&mut self, n: usize, val: bool) {
27207 assert!(n < 4usize);
27208 let offs = 9usize + n * 1usize;
27209 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
27210 }
27211 #[doc = "Trigger DMA request enable"]
27212 pub const fn tde(&self) -> bool {
27213 let val = (self.0 >> 14usize) & 0x01;
27214 val != 0
27215 }
27216 #[doc = "Trigger DMA request enable"]
27217 pub fn set_tde(&mut self, val: bool) {
27218 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
27219 }
27220 }
27221 impl Default for DierGp {
27222 fn default() -> DierGp {
27223 DierGp(0)
27224 }
27225 }
27226 #[doc = "control register 2"]
27227 #[repr(transparent)]
27228 #[derive(Copy, Clone, Eq, PartialEq)]
27229 pub struct Cr2Basic(pub u32);
27230 impl Cr2Basic {
27231 #[doc = "Master mode selection"]
27232 pub const fn mms(&self) -> super::vals::Mms {
27233 let val = (self.0 >> 4usize) & 0x07;
27234 super::vals::Mms(val as u8)
27235 }
27236 #[doc = "Master mode selection"]
27237 pub fn set_mms(&mut self, val: super::vals::Mms) {
27238 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize);
27239 }
27240 }
27241 impl Default for Cr2Basic {
27242 fn default() -> Cr2Basic {
27243 Cr2Basic(0)
27244 }
27245 }
27246 #[doc = "capture/compare mode register 1 (input mode)"]
27247 #[repr(transparent)]
27248 #[derive(Copy, Clone, Eq, PartialEq)]
27249 pub struct CcmrInput(pub u32);
27250 impl CcmrInput {
27251 #[doc = "Capture/Compare 1 selection"]
27252 pub fn ccs(&self, n: usize) -> super::vals::CcmrInputCcs {
27253 assert!(n < 2usize);
27254 let offs = 0usize + n * 8usize;
27255 let val = (self.0 >> offs) & 0x03;
27256 super::vals::CcmrInputCcs(val as u8)
27257 }
27258 #[doc = "Capture/Compare 1 selection"]
27259 pub fn set_ccs(&mut self, n: usize, val: super::vals::CcmrInputCcs) {
27260 assert!(n < 2usize);
27261 let offs = 0usize + n * 8usize;
27262 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
27263 }
27264 #[doc = "Input capture 1 prescaler"]
27265 pub fn icpsc(&self, n: usize) -> u8 {
27266 assert!(n < 2usize);
27267 let offs = 2usize + n * 8usize;
27268 let val = (self.0 >> offs) & 0x03;
27269 val as u8
27270 }
27271 #[doc = "Input capture 1 prescaler"]
27272 pub fn set_icpsc(&mut self, n: usize, val: u8) {
27273 assert!(n < 2usize);
27274 let offs = 2usize + n * 8usize;
27275 self.0 = (self.0 & !(0x03 << offs)) | (((val as u32) & 0x03) << offs);
27276 }
27277 #[doc = "Input capture 1 filter"]
27278 pub fn icf(&self, n: usize) -> super::vals::Icf {
27279 assert!(n < 2usize);
27280 let offs = 4usize + n * 8usize;
27281 let val = (self.0 >> offs) & 0x0f;
27282 super::vals::Icf(val as u8)
27283 }
27284 #[doc = "Input capture 1 filter"]
27285 pub fn set_icf(&mut self, n: usize, val: super::vals::Icf) {
27286 assert!(n < 2usize);
27287 let offs = 4usize + n * 8usize;
27288 self.0 = (self.0 & !(0x0f << offs)) | (((val.0 as u32) & 0x0f) << offs);
27289 }
27290 }
27291 impl Default for CcmrInput {
27292 fn default() -> CcmrInput {
27293 CcmrInput(0)
27294 }
27295 }
27296 #[doc = "control register 2"]
27297 #[repr(transparent)]
27298 #[derive(Copy, Clone, Eq, PartialEq)]
27299 pub struct Cr2Gp(pub u32);
27300 impl Cr2Gp {
27301 #[doc = "Capture/compare DMA selection"]
27302 pub const fn ccds(&self) -> super::vals::Ccds {
27303 let val = (self.0 >> 3usize) & 0x01;
27304 super::vals::Ccds(val as u8)
27305 }
27306 #[doc = "Capture/compare DMA selection"]
27307 pub fn set_ccds(&mut self, val: super::vals::Ccds) {
27308 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
27309 }
27310 #[doc = "Master mode selection"]
27311 pub const fn mms(&self) -> super::vals::Mms {
27312 let val = (self.0 >> 4usize) & 0x07;
27313 super::vals::Mms(val as u8)
27314 }
27315 #[doc = "Master mode selection"]
27316 pub fn set_mms(&mut self, val: super::vals::Mms) {
27317 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize);
27318 }
27319 #[doc = "TI1 selection"]
27320 pub const fn ti1s(&self) -> super::vals::Tis {
27321 let val = (self.0 >> 7usize) & 0x01;
27322 super::vals::Tis(val as u8)
27323 }
27324 #[doc = "TI1 selection"]
27325 pub fn set_ti1s(&mut self, val: super::vals::Tis) {
27326 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
27327 }
27328 }
27329 impl Default for Cr2Gp {
27330 fn default() -> Cr2Gp {
27331 Cr2Gp(0)
27332 }
27333 }
27334 #[doc = "event generation register"]
27335 #[repr(transparent)]
27336 #[derive(Copy, Clone, Eq, PartialEq)]
27337 pub struct EgrBasic(pub u32);
27338 impl EgrBasic {
27339 #[doc = "Update generation"]
27340 pub const fn ug(&self) -> bool {
27341 let val = (self.0 >> 0usize) & 0x01;
27342 val != 0
27343 }
27344 #[doc = "Update generation"]
27345 pub fn set_ug(&mut self, val: bool) {
27346 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
27347 }
27348 }
27349 impl Default for EgrBasic {
27350 fn default() -> EgrBasic {
27351 EgrBasic(0)
27352 }
27353 }
27354 #[doc = "auto-reload register"]
27355 #[repr(transparent)]
27356 #[derive(Copy, Clone, Eq, PartialEq)]
27357 pub struct Arr32(pub u32);
27358 impl Arr32 {
27359 #[doc = "Auto-reload value"]
27360 pub const fn arr(&self) -> u32 {
27361 let val = (self.0 >> 0usize) & 0xffff_ffff;
27362 val as u32
27363 }
27364 #[doc = "Auto-reload value"]
27365 pub fn set_arr(&mut self, val: u32) {
27366 self.0 =
27367 (self.0 & !(0xffff_ffff << 0usize)) | (((val as u32) & 0xffff_ffff) << 0usize);
27368 }
27369 }
27370 impl Default for Arr32 {
27371 fn default() -> Arr32 {
27372 Arr32(0)
27373 }
27374 }
27375 #[doc = "DMA/Interrupt enable register"]
27376 #[repr(transparent)]
27377 #[derive(Copy, Clone, Eq, PartialEq)]
27378 pub struct DierBasic(pub u32);
27379 impl DierBasic {
27380 #[doc = "Update interrupt enable"]
27381 pub const fn uie(&self) -> bool {
27382 let val = (self.0 >> 0usize) & 0x01;
27383 val != 0
27384 }
27385 #[doc = "Update interrupt enable"]
27386 pub fn set_uie(&mut self, val: bool) {
27387 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
27388 }
27389 #[doc = "Update DMA request enable"]
27390 pub const fn ude(&self) -> bool {
27391 let val = (self.0 >> 8usize) & 0x01;
27392 val != 0
27393 }
27394 #[doc = "Update DMA request enable"]
27395 pub fn set_ude(&mut self, val: bool) {
27396 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
27397 }
27398 }
27399 impl Default for DierBasic {
27400 fn default() -> DierBasic {
27401 DierBasic(0)
27402 }
27403 }
27404 #[doc = "capture/compare mode register 2 (output mode)"]
27405 #[repr(transparent)]
27406 #[derive(Copy, Clone, Eq, PartialEq)]
27407 pub struct CcmrOutput(pub u32);
27408 impl CcmrOutput {
27409 #[doc = "Capture/Compare 3 selection"]
27410 pub fn ccs(&self, n: usize) -> super::vals::CcmrOutputCcs {
27411 assert!(n < 2usize);
27412 let offs = 0usize + n * 8usize;
27413 let val = (self.0 >> offs) & 0x03;
27414 super::vals::CcmrOutputCcs(val as u8)
27415 }
27416 #[doc = "Capture/Compare 3 selection"]
27417 pub fn set_ccs(&mut self, n: usize, val: super::vals::CcmrOutputCcs) {
27418 assert!(n < 2usize);
27419 let offs = 0usize + n * 8usize;
27420 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
27421 }
27422 #[doc = "Output compare 3 fast enable"]
27423 pub fn ocfe(&self, n: usize) -> bool {
27424 assert!(n < 2usize);
27425 let offs = 2usize + n * 8usize;
27426 let val = (self.0 >> offs) & 0x01;
27427 val != 0
27428 }
27429 #[doc = "Output compare 3 fast enable"]
27430 pub fn set_ocfe(&mut self, n: usize, val: bool) {
27431 assert!(n < 2usize);
27432 let offs = 2usize + n * 8usize;
27433 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
27434 }
27435 #[doc = "Output compare 3 preload enable"]
27436 pub fn ocpe(&self, n: usize) -> super::vals::Ocpe {
27437 assert!(n < 2usize);
27438 let offs = 3usize + n * 8usize;
27439 let val = (self.0 >> offs) & 0x01;
27440 super::vals::Ocpe(val as u8)
27441 }
27442 #[doc = "Output compare 3 preload enable"]
27443 pub fn set_ocpe(&mut self, n: usize, val: super::vals::Ocpe) {
27444 assert!(n < 2usize);
27445 let offs = 3usize + n * 8usize;
27446 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
27447 }
27448 #[doc = "Output compare 3 mode"]
27449 pub fn ocm(&self, n: usize) -> super::vals::Ocm {
27450 assert!(n < 2usize);
27451 let offs = 4usize + n * 8usize;
27452 let val = (self.0 >> offs) & 0x07;
27453 super::vals::Ocm(val as u8)
27454 }
27455 #[doc = "Output compare 3 mode"]
27456 pub fn set_ocm(&mut self, n: usize, val: super::vals::Ocm) {
27457 assert!(n < 2usize);
27458 let offs = 4usize + n * 8usize;
27459 self.0 = (self.0 & !(0x07 << offs)) | (((val.0 as u32) & 0x07) << offs);
27460 }
27461 #[doc = "Output compare 3 clear enable"]
27462 pub fn occe(&self, n: usize) -> bool {
27463 assert!(n < 2usize);
27464 let offs = 7usize + n * 8usize;
27465 let val = (self.0 >> offs) & 0x01;
27466 val != 0
27467 }
27468 #[doc = "Output compare 3 clear enable"]
27469 pub fn set_occe(&mut self, n: usize, val: bool) {
27470 assert!(n < 2usize);
27471 let offs = 7usize + n * 8usize;
27472 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
27473 }
27474 }
27475 impl Default for CcmrOutput {
27476 fn default() -> CcmrOutput {
27477 CcmrOutput(0)
27478 }
27479 }
27480 #[doc = "control register 1"]
27481 #[repr(transparent)]
27482 #[derive(Copy, Clone, Eq, PartialEq)]
27483 pub struct Cr1Gp(pub u32);
27484 impl Cr1Gp {
27485 #[doc = "Counter enable"]
27486 pub const fn cen(&self) -> bool {
27487 let val = (self.0 >> 0usize) & 0x01;
27488 val != 0
27489 }
27490 #[doc = "Counter enable"]
27491 pub fn set_cen(&mut self, val: bool) {
27492 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
27493 }
27494 #[doc = "Update disable"]
27495 pub const fn udis(&self) -> bool {
27496 let val = (self.0 >> 1usize) & 0x01;
27497 val != 0
27498 }
27499 #[doc = "Update disable"]
27500 pub fn set_udis(&mut self, val: bool) {
27501 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
27502 }
27503 #[doc = "Update request source"]
27504 pub const fn urs(&self) -> super::vals::Urs {
27505 let val = (self.0 >> 2usize) & 0x01;
27506 super::vals::Urs(val as u8)
27507 }
27508 #[doc = "Update request source"]
27509 pub fn set_urs(&mut self, val: super::vals::Urs) {
27510 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
27511 }
27512 #[doc = "One-pulse mode"]
27513 pub const fn opm(&self) -> super::vals::Opm {
27514 let val = (self.0 >> 3usize) & 0x01;
27515 super::vals::Opm(val as u8)
27516 }
27517 #[doc = "One-pulse mode"]
27518 pub fn set_opm(&mut self, val: super::vals::Opm) {
27519 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
27520 }
27521 #[doc = "Direction"]
27522 pub const fn dir(&self) -> super::vals::Dir {
27523 let val = (self.0 >> 4usize) & 0x01;
27524 super::vals::Dir(val as u8)
27525 }
27526 #[doc = "Direction"]
27527 pub fn set_dir(&mut self, val: super::vals::Dir) {
27528 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
27529 }
27530 #[doc = "Center-aligned mode selection"]
27531 pub const fn cms(&self) -> super::vals::Cms {
27532 let val = (self.0 >> 5usize) & 0x03;
27533 super::vals::Cms(val as u8)
27534 }
27535 #[doc = "Center-aligned mode selection"]
27536 pub fn set_cms(&mut self, val: super::vals::Cms) {
27537 self.0 = (self.0 & !(0x03 << 5usize)) | (((val.0 as u32) & 0x03) << 5usize);
27538 }
27539 #[doc = "Auto-reload preload enable"]
27540 pub const fn arpe(&self) -> super::vals::Arpe {
27541 let val = (self.0 >> 7usize) & 0x01;
27542 super::vals::Arpe(val as u8)
27543 }
27544 #[doc = "Auto-reload preload enable"]
27545 pub fn set_arpe(&mut self, val: super::vals::Arpe) {
27546 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
27547 }
27548 #[doc = "Clock division"]
27549 pub const fn ckd(&self) -> super::vals::Ckd {
27550 let val = (self.0 >> 8usize) & 0x03;
27551 super::vals::Ckd(val as u8)
27552 }
27553 #[doc = "Clock division"]
27554 pub fn set_ckd(&mut self, val: super::vals::Ckd) {
27555 self.0 = (self.0 & !(0x03 << 8usize)) | (((val.0 as u32) & 0x03) << 8usize);
27556 }
27557 }
27558 impl Default for Cr1Gp {
27559 fn default() -> Cr1Gp {
27560 Cr1Gp(0)
27561 }
27562 }
27563 #[doc = "status register"]
27564 #[repr(transparent)]
27565 #[derive(Copy, Clone, Eq, PartialEq)]
27566 pub struct SrAdv(pub u32);
27567 impl SrAdv {
27568 #[doc = "Update interrupt flag"]
27569 pub const fn uif(&self) -> bool {
27570 let val = (self.0 >> 0usize) & 0x01;
27571 val != 0
27572 }
27573 #[doc = "Update interrupt flag"]
27574 pub fn set_uif(&mut self, val: bool) {
27575 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
27576 }
27577 #[doc = "Capture/compare 1 interrupt flag"]
27578 pub fn ccif(&self, n: usize) -> bool {
27579 assert!(n < 4usize);
27580 let offs = 1usize + n * 1usize;
27581 let val = (self.0 >> offs) & 0x01;
27582 val != 0
27583 }
27584 #[doc = "Capture/compare 1 interrupt flag"]
27585 pub fn set_ccif(&mut self, n: usize, val: bool) {
27586 assert!(n < 4usize);
27587 let offs = 1usize + n * 1usize;
27588 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
27589 }
27590 #[doc = "COM interrupt flag"]
27591 pub const fn comif(&self) -> bool {
27592 let val = (self.0 >> 5usize) & 0x01;
27593 val != 0
27594 }
27595 #[doc = "COM interrupt flag"]
27596 pub fn set_comif(&mut self, val: bool) {
27597 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
27598 }
27599 #[doc = "Trigger interrupt flag"]
27600 pub const fn tif(&self) -> bool {
27601 let val = (self.0 >> 6usize) & 0x01;
27602 val != 0
27603 }
27604 #[doc = "Trigger interrupt flag"]
27605 pub fn set_tif(&mut self, val: bool) {
27606 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
27607 }
27608 #[doc = "Break interrupt flag"]
27609 pub const fn bif(&self) -> bool {
27610 let val = (self.0 >> 7usize) & 0x01;
27611 val != 0
27612 }
27613 #[doc = "Break interrupt flag"]
27614 pub fn set_bif(&mut self, val: bool) {
27615 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
27616 }
27617 #[doc = "Capture/Compare 1 overcapture flag"]
27618 pub fn ccof(&self, n: usize) -> bool {
27619 assert!(n < 4usize);
27620 let offs = 9usize + n * 1usize;
27621 let val = (self.0 >> offs) & 0x01;
27622 val != 0
27623 }
27624 #[doc = "Capture/Compare 1 overcapture flag"]
27625 pub fn set_ccof(&mut self, n: usize, val: bool) {
27626 assert!(n < 4usize);
27627 let offs = 9usize + n * 1usize;
27628 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
27629 }
27630 }
27631 impl Default for SrAdv {
27632 fn default() -> SrAdv {
27633 SrAdv(0)
27634 }
27635 }
27636 #[doc = "control register 1"]
27637 #[repr(transparent)]
27638 #[derive(Copy, Clone, Eq, PartialEq)]
27639 pub struct Cr1Basic(pub u32);
27640 impl Cr1Basic {
27641 #[doc = "Counter enable"]
27642 pub const fn cen(&self) -> bool {
27643 let val = (self.0 >> 0usize) & 0x01;
27644 val != 0
27645 }
27646 #[doc = "Counter enable"]
27647 pub fn set_cen(&mut self, val: bool) {
27648 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
27649 }
27650 #[doc = "Update disable"]
27651 pub const fn udis(&self) -> bool {
27652 let val = (self.0 >> 1usize) & 0x01;
27653 val != 0
27654 }
27655 #[doc = "Update disable"]
27656 pub fn set_udis(&mut self, val: bool) {
27657 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
27658 }
27659 #[doc = "Update request source"]
27660 pub const fn urs(&self) -> super::vals::Urs {
27661 let val = (self.0 >> 2usize) & 0x01;
27662 super::vals::Urs(val as u8)
27663 }
27664 #[doc = "Update request source"]
27665 pub fn set_urs(&mut self, val: super::vals::Urs) {
27666 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
27667 }
27668 #[doc = "One-pulse mode"]
27669 pub const fn opm(&self) -> super::vals::Opm {
27670 let val = (self.0 >> 3usize) & 0x01;
27671 super::vals::Opm(val as u8)
27672 }
27673 #[doc = "One-pulse mode"]
27674 pub fn set_opm(&mut self, val: super::vals::Opm) {
27675 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
27676 }
27677 #[doc = "Auto-reload preload enable"]
27678 pub const fn arpe(&self) -> super::vals::Arpe {
27679 let val = (self.0 >> 7usize) & 0x01;
27680 super::vals::Arpe(val as u8)
27681 }
27682 #[doc = "Auto-reload preload enable"]
27683 pub fn set_arpe(&mut self, val: super::vals::Arpe) {
27684 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
27685 }
27686 }
27687 impl Default for Cr1Basic {
27688 fn default() -> Cr1Basic {
27689 Cr1Basic(0)
27690 }
27691 }
27692 #[doc = "control register 2"]
27693 #[repr(transparent)]
27694 #[derive(Copy, Clone, Eq, PartialEq)]
27695 pub struct Cr2Adv(pub u32);
27696 impl Cr2Adv {
27697 #[doc = "Capture/compare preloaded control"]
27698 pub const fn ccpc(&self) -> bool {
27699 let val = (self.0 >> 0usize) & 0x01;
27700 val != 0
27701 }
27702 #[doc = "Capture/compare preloaded control"]
27703 pub fn set_ccpc(&mut self, val: bool) {
27704 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
27705 }
27706 #[doc = "Capture/compare control update selection"]
27707 pub const fn ccus(&self) -> bool {
27708 let val = (self.0 >> 2usize) & 0x01;
27709 val != 0
27710 }
27711 #[doc = "Capture/compare control update selection"]
27712 pub fn set_ccus(&mut self, val: bool) {
27713 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
27714 }
27715 #[doc = "Capture/compare DMA selection"]
27716 pub const fn ccds(&self) -> super::vals::Ccds {
27717 let val = (self.0 >> 3usize) & 0x01;
27718 super::vals::Ccds(val as u8)
27719 }
27720 #[doc = "Capture/compare DMA selection"]
27721 pub fn set_ccds(&mut self, val: super::vals::Ccds) {
27722 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
27723 }
27724 #[doc = "Master mode selection"]
27725 pub const fn mms(&self) -> super::vals::Mms {
27726 let val = (self.0 >> 4usize) & 0x07;
27727 super::vals::Mms(val as u8)
27728 }
27729 #[doc = "Master mode selection"]
27730 pub fn set_mms(&mut self, val: super::vals::Mms) {
27731 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize);
27732 }
27733 #[doc = "TI1 selection"]
27734 pub const fn ti1s(&self) -> super::vals::Tis {
27735 let val = (self.0 >> 7usize) & 0x01;
27736 super::vals::Tis(val as u8)
27737 }
27738 #[doc = "TI1 selection"]
27739 pub fn set_ti1s(&mut self, val: super::vals::Tis) {
27740 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
27741 }
27742 #[doc = "Output Idle state 1"]
27743 pub fn ois(&self, n: usize) -> bool {
27744 assert!(n < 4usize);
27745 let offs = 8usize + n * 2usize;
27746 let val = (self.0 >> offs) & 0x01;
27747 val != 0
27748 }
27749 #[doc = "Output Idle state 1"]
27750 pub fn set_ois(&mut self, n: usize, val: bool) {
27751 assert!(n < 4usize);
27752 let offs = 8usize + n * 2usize;
27753 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
27754 }
27755 #[doc = "Output Idle state 1"]
27756 pub const fn ois1n(&self) -> bool {
27757 let val = (self.0 >> 9usize) & 0x01;
27758 val != 0
27759 }
27760 #[doc = "Output Idle state 1"]
27761 pub fn set_ois1n(&mut self, val: bool) {
27762 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
27763 }
27764 #[doc = "Output Idle state 2"]
27765 pub const fn ois2n(&self) -> bool {
27766 let val = (self.0 >> 11usize) & 0x01;
27767 val != 0
27768 }
27769 #[doc = "Output Idle state 2"]
27770 pub fn set_ois2n(&mut self, val: bool) {
27771 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
27772 }
27773 #[doc = "Output Idle state 3"]
27774 pub const fn ois3n(&self) -> bool {
27775 let val = (self.0 >> 13usize) & 0x01;
27776 val != 0
27777 }
27778 #[doc = "Output Idle state 3"]
27779 pub fn set_ois3n(&mut self, val: bool) {
27780 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
27781 }
27782 }
27783 impl Default for Cr2Adv {
27784 fn default() -> Cr2Adv {
27785 Cr2Adv(0)
27786 }
27787 }
27788 #[doc = "counter"]
27789 #[repr(transparent)]
27790 #[derive(Copy, Clone, Eq, PartialEq)]
27791 pub struct Cnt16(pub u32);
27792 impl Cnt16 {
27793 #[doc = "counter value"]
27794 pub const fn cnt(&self) -> u16 {
27795 let val = (self.0 >> 0usize) & 0xffff;
27796 val as u16
27797 }
27798 #[doc = "counter value"]
27799 pub fn set_cnt(&mut self, val: u16) {
27800 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
27801 }
27802 }
27803 impl Default for Cnt16 {
27804 fn default() -> Cnt16 {
27805 Cnt16(0)
27806 }
27807 }
27808 #[doc = "break and dead-time register"]
27809 #[repr(transparent)]
27810 #[derive(Copy, Clone, Eq, PartialEq)]
27811 pub struct Bdtr(pub u32);
27812 impl Bdtr {
27813 #[doc = "Dead-time generator setup"]
27814 pub const fn dtg(&self) -> u8 {
27815 let val = (self.0 >> 0usize) & 0xff;
27816 val as u8
27817 }
27818 #[doc = "Dead-time generator setup"]
27819 pub fn set_dtg(&mut self, val: u8) {
27820 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
27821 }
27822 #[doc = "Lock configuration"]
27823 pub const fn lock(&self) -> u8 {
27824 let val = (self.0 >> 8usize) & 0x03;
27825 val as u8
27826 }
27827 #[doc = "Lock configuration"]
27828 pub fn set_lock(&mut self, val: u8) {
27829 self.0 = (self.0 & !(0x03 << 8usize)) | (((val as u32) & 0x03) << 8usize);
27830 }
27831 #[doc = "Off-state selection for Idle mode"]
27832 pub const fn ossi(&self) -> super::vals::Ossi {
27833 let val = (self.0 >> 10usize) & 0x01;
27834 super::vals::Ossi(val as u8)
27835 }
27836 #[doc = "Off-state selection for Idle mode"]
27837 pub fn set_ossi(&mut self, val: super::vals::Ossi) {
27838 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
27839 }
27840 #[doc = "Off-state selection for Run mode"]
27841 pub const fn ossr(&self) -> super::vals::Ossr {
27842 let val = (self.0 >> 11usize) & 0x01;
27843 super::vals::Ossr(val as u8)
27844 }
27845 #[doc = "Off-state selection for Run mode"]
27846 pub fn set_ossr(&mut self, val: super::vals::Ossr) {
27847 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
27848 }
27849 #[doc = "Break enable"]
27850 pub const fn bke(&self) -> bool {
27851 let val = (self.0 >> 12usize) & 0x01;
27852 val != 0
27853 }
27854 #[doc = "Break enable"]
27855 pub fn set_bke(&mut self, val: bool) {
27856 self.0 = (self.0 & !(0x01 << 12usize)) | (((val as u32) & 0x01) << 12usize);
27857 }
27858 #[doc = "Break polarity"]
27859 pub const fn bkp(&self) -> bool {
27860 let val = (self.0 >> 13usize) & 0x01;
27861 val != 0
27862 }
27863 #[doc = "Break polarity"]
27864 pub fn set_bkp(&mut self, val: bool) {
27865 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
27866 }
27867 #[doc = "Automatic output enable"]
27868 pub const fn aoe(&self) -> bool {
27869 let val = (self.0 >> 14usize) & 0x01;
27870 val != 0
27871 }
27872 #[doc = "Automatic output enable"]
27873 pub fn set_aoe(&mut self, val: bool) {
27874 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
27875 }
27876 #[doc = "Main output enable"]
27877 pub const fn moe(&self) -> bool {
27878 let val = (self.0 >> 15usize) & 0x01;
27879 val != 0
27880 }
27881 #[doc = "Main output enable"]
27882 pub fn set_moe(&mut self, val: bool) {
27883 self.0 = (self.0 & !(0x01 << 15usize)) | (((val as u32) & 0x01) << 15usize);
27884 }
27885 }
27886 impl Default for Bdtr {
27887 fn default() -> Bdtr {
27888 Bdtr(0)
27889 }
27890 }
27891 #[doc = "prescaler"]
27892 #[repr(transparent)]
27893 #[derive(Copy, Clone, Eq, PartialEq)]
27894 pub struct Psc(pub u32);
27895 impl Psc {
27896 #[doc = "Prescaler value"]
27897 pub const fn psc(&self) -> u16 {
27898 let val = (self.0 >> 0usize) & 0xffff;
27899 val as u16
27900 }
27901 #[doc = "Prescaler value"]
27902 pub fn set_psc(&mut self, val: u16) {
27903 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
27904 }
27905 }
27906 impl Default for Psc {
27907 fn default() -> Psc {
27908 Psc(0)
27909 }
27910 }
27911 #[doc = "capture/compare enable register"]
27912 #[repr(transparent)]
27913 #[derive(Copy, Clone, Eq, PartialEq)]
27914 pub struct CcerAdv(pub u32);
27915 impl CcerAdv {
27916 #[doc = "Capture/Compare 1 output enable"]
27917 pub fn cce(&self, n: usize) -> bool {
27918 assert!(n < 4usize);
27919 let offs = 0usize + n * 4usize;
27920 let val = (self.0 >> offs) & 0x01;
27921 val != 0
27922 }
27923 #[doc = "Capture/Compare 1 output enable"]
27924 pub fn set_cce(&mut self, n: usize, val: bool) {
27925 assert!(n < 4usize);
27926 let offs = 0usize + n * 4usize;
27927 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
27928 }
27929 #[doc = "Capture/Compare 1 output Polarity"]
27930 pub fn ccp(&self, n: usize) -> bool {
27931 assert!(n < 4usize);
27932 let offs = 1usize + n * 4usize;
27933 let val = (self.0 >> offs) & 0x01;
27934 val != 0
27935 }
27936 #[doc = "Capture/Compare 1 output Polarity"]
27937 pub fn set_ccp(&mut self, n: usize, val: bool) {
27938 assert!(n < 4usize);
27939 let offs = 1usize + n * 4usize;
27940 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
27941 }
27942 #[doc = "Capture/Compare 1 complementary output enable"]
27943 pub fn ccne(&self, n: usize) -> bool {
27944 assert!(n < 4usize);
27945 let offs = 2usize + n * 4usize;
27946 let val = (self.0 >> offs) & 0x01;
27947 val != 0
27948 }
27949 #[doc = "Capture/Compare 1 complementary output enable"]
27950 pub fn set_ccne(&mut self, n: usize, val: bool) {
27951 assert!(n < 4usize);
27952 let offs = 2usize + n * 4usize;
27953 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
27954 }
27955 #[doc = "Capture/Compare 1 output Polarity"]
27956 pub fn ccnp(&self, n: usize) -> bool {
27957 assert!(n < 4usize);
27958 let offs = 3usize + n * 4usize;
27959 let val = (self.0 >> offs) & 0x01;
27960 val != 0
27961 }
27962 #[doc = "Capture/Compare 1 output Polarity"]
27963 pub fn set_ccnp(&mut self, n: usize, val: bool) {
27964 assert!(n < 4usize);
27965 let offs = 3usize + n * 4usize;
27966 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
27967 }
27968 }
27969 impl Default for CcerAdv {
27970 fn default() -> CcerAdv {
27971 CcerAdv(0)
27972 }
27973 }
27974 #[doc = "DMA/Interrupt enable register"]
27975 #[repr(transparent)]
27976 #[derive(Copy, Clone, Eq, PartialEq)]
27977 pub struct DierAdv(pub u32);
27978 impl DierAdv {
27979 #[doc = "Update interrupt enable"]
27980 pub const fn uie(&self) -> bool {
27981 let val = (self.0 >> 0usize) & 0x01;
27982 val != 0
27983 }
27984 #[doc = "Update interrupt enable"]
27985 pub fn set_uie(&mut self, val: bool) {
27986 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
27987 }
27988 #[doc = "Capture/Compare 1 interrupt enable"]
27989 pub fn ccie(&self, n: usize) -> bool {
27990 assert!(n < 4usize);
27991 let offs = 1usize + n * 1usize;
27992 let val = (self.0 >> offs) & 0x01;
27993 val != 0
27994 }
27995 #[doc = "Capture/Compare 1 interrupt enable"]
27996 pub fn set_ccie(&mut self, n: usize, val: bool) {
27997 assert!(n < 4usize);
27998 let offs = 1usize + n * 1usize;
27999 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
28000 }
28001 #[doc = "COM interrupt enable"]
28002 pub const fn comie(&self) -> bool {
28003 let val = (self.0 >> 5usize) & 0x01;
28004 val != 0
28005 }
28006 #[doc = "COM interrupt enable"]
28007 pub fn set_comie(&mut self, val: bool) {
28008 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
24036 } 28009 }
28010 #[doc = "Trigger interrupt enable"]
28011 pub const fn tie(&self) -> bool {
28012 let val = (self.0 >> 6usize) & 0x01;
28013 val != 0
28014 }
28015 #[doc = "Trigger interrupt enable"]
28016 pub fn set_tie(&mut self, val: bool) {
28017 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
28018 }
28019 #[doc = "Break interrupt enable"]
28020 pub const fn bie(&self) -> bool {
28021 let val = (self.0 >> 7usize) & 0x01;
28022 val != 0
28023 }
28024 #[doc = "Break interrupt enable"]
28025 pub fn set_bie(&mut self, val: bool) {
28026 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
28027 }
28028 #[doc = "Update DMA request enable"]
28029 pub const fn ude(&self) -> bool {
28030 let val = (self.0 >> 8usize) & 0x01;
28031 val != 0
28032 }
28033 #[doc = "Update DMA request enable"]
28034 pub fn set_ude(&mut self, val: bool) {
28035 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
28036 }
28037 #[doc = "Capture/Compare 1 DMA request enable"]
28038 pub fn ccde(&self, n: usize) -> bool {
28039 assert!(n < 4usize);
28040 let offs = 9usize + n * 1usize;
28041 let val = (self.0 >> offs) & 0x01;
28042 val != 0
28043 }
28044 #[doc = "Capture/Compare 1 DMA request enable"]
28045 pub fn set_ccde(&mut self, n: usize, val: bool) {
28046 assert!(n < 4usize);
28047 let offs = 9usize + n * 1usize;
28048 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
28049 }
28050 #[doc = "COM DMA request enable"]
28051 pub const fn comde(&self) -> bool {
28052 let val = (self.0 >> 13usize) & 0x01;
28053 val != 0
28054 }
28055 #[doc = "COM DMA request enable"]
28056 pub fn set_comde(&mut self, val: bool) {
28057 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
28058 }
28059 #[doc = "Trigger DMA request enable"]
28060 pub const fn tde(&self) -> bool {
28061 let val = (self.0 >> 14usize) & 0x01;
28062 val != 0
28063 }
28064 #[doc = "Trigger DMA request enable"]
28065 pub fn set_tde(&mut self, val: bool) {
28066 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
28067 }
28068 }
28069 impl Default for DierAdv {
28070 fn default() -> DierAdv {
28071 DierAdv(0)
28072 }
28073 }
28074 #[doc = "status register"]
28075 #[repr(transparent)]
28076 #[derive(Copy, Clone, Eq, PartialEq)]
28077 pub struct SrBasic(pub u32);
28078 impl SrBasic {
28079 #[doc = "Update interrupt flag"]
28080 pub const fn uif(&self) -> bool {
28081 let val = (self.0 >> 0usize) & 0x01;
28082 val != 0
28083 }
28084 #[doc = "Update interrupt flag"]
28085 pub fn set_uif(&mut self, val: bool) {
28086 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
28087 }
28088 }
28089 impl Default for SrBasic {
28090 fn default() -> SrBasic {
28091 SrBasic(0)
28092 }
28093 }
28094 #[doc = "event generation register"]
28095 #[repr(transparent)]
28096 #[derive(Copy, Clone, Eq, PartialEq)]
28097 pub struct EgrGp(pub u32);
28098 impl EgrGp {
28099 #[doc = "Update generation"]
28100 pub const fn ug(&self) -> bool {
28101 let val = (self.0 >> 0usize) & 0x01;
28102 val != 0
28103 }
28104 #[doc = "Update generation"]
28105 pub fn set_ug(&mut self, val: bool) {
28106 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
28107 }
28108 #[doc = "Capture/compare 1 generation"]
28109 pub fn ccg(&self, n: usize) -> bool {
28110 assert!(n < 4usize);
28111 let offs = 1usize + n * 1usize;
28112 let val = (self.0 >> offs) & 0x01;
28113 val != 0
28114 }
28115 #[doc = "Capture/compare 1 generation"]
28116 pub fn set_ccg(&mut self, n: usize, val: bool) {
28117 assert!(n < 4usize);
28118 let offs = 1usize + n * 1usize;
28119 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
28120 }
28121 #[doc = "Capture/Compare control update generation"]
28122 pub const fn comg(&self) -> bool {
28123 let val = (self.0 >> 5usize) & 0x01;
28124 val != 0
28125 }
28126 #[doc = "Capture/Compare control update generation"]
28127 pub fn set_comg(&mut self, val: bool) {
28128 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
28129 }
28130 #[doc = "Trigger generation"]
28131 pub const fn tg(&self) -> bool {
28132 let val = (self.0 >> 6usize) & 0x01;
28133 val != 0
28134 }
28135 #[doc = "Trigger generation"]
28136 pub fn set_tg(&mut self, val: bool) {
28137 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
28138 }
28139 #[doc = "Break generation"]
28140 pub const fn bg(&self) -> bool {
28141 let val = (self.0 >> 7usize) & 0x01;
28142 val != 0
28143 }
28144 #[doc = "Break generation"]
28145 pub fn set_bg(&mut self, val: bool) {
28146 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
28147 }
28148 }
28149 impl Default for EgrGp {
28150 fn default() -> EgrGp {
28151 EgrGp(0)
28152 }
28153 }
28154 }
28155 pub mod vals {
28156 use crate::generic::*;
28157 #[repr(transparent)]
28158 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28159 pub struct Ocpe(pub u8);
28160 impl Ocpe {
28161 #[doc = "Preload register on CCR2 disabled. New values written to CCR2 are taken into account immediately"]
28162 pub const DISABLED: Self = Self(0);
28163 #[doc = "Preload register on CCR2 enabled. Preload value is loaded into active register on each update event"]
28164 pub const ENABLED: Self = Self(0x01);
28165 }
28166 #[repr(transparent)]
28167 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28168 pub struct Arpe(pub u8);
28169 impl Arpe {
28170 #[doc = "TIMx_APRR register is not buffered"]
28171 pub const DISABLED: Self = Self(0);
28172 #[doc = "TIMx_APRR register is buffered"]
28173 pub const ENABLED: Self = Self(0x01);
28174 }
28175 #[repr(transparent)]
28176 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28177 pub struct Dir(pub u8);
28178 impl Dir {
28179 #[doc = "Counter used as upcounter"]
28180 pub const UP: Self = Self(0);
28181 #[doc = "Counter used as downcounter"]
28182 pub const DOWN: Self = Self(0x01);
28183 }
28184 #[repr(transparent)]
28185 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28186 pub struct Opm(pub u8);
28187 impl Opm {
28188 #[doc = "Counter is not stopped at update event"]
28189 pub const DISABLED: Self = Self(0);
28190 #[doc = "Counter stops counting at the next update event (clearing the CEN bit)"]
28191 pub const ENABLED: Self = Self(0x01);
28192 }
28193 #[repr(transparent)]
28194 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28195 pub struct Tis(pub u8);
28196 impl Tis {
28197 #[doc = "The TIMx_CH1 pin is connected to TI1 input"]
28198 pub const NORMAL: Self = Self(0);
28199 #[doc = "The TIMx_CH1, CH2, CH3 pins are connected to TI1 input"]
28200 pub const XOR: Self = Self(0x01);
28201 }
28202 #[repr(transparent)]
28203 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28204 pub struct Urs(pub u8);
28205 impl Urs {
28206 #[doc = "Any of counter overflow/underflow, setting UG, or update through slave mode, generates an update interrupt or DMA request"]
28207 pub const ANYEVENT: Self = Self(0);
28208 #[doc = "Only counter overflow/underflow generates an update interrupt or DMA request"]
28209 pub const COUNTERONLY: Self = Self(0x01);
28210 }
28211 #[repr(transparent)]
28212 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28213 pub struct Msm(pub u8);
28214 impl Msm {
28215 #[doc = "No action"]
28216 pub const NOSYNC: Self = Self(0);
28217 #[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."]
28218 pub const SYNC: Self = Self(0x01);
28219 }
28220 #[repr(transparent)]
28221 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28222 pub struct Etf(pub u8);
28223 impl Etf {
28224 #[doc = "No filter, sampling is done at fDTS"]
28225 pub const NOFILTER: Self = Self(0);
28226 #[doc = "fSAMPLING=fCK_INT, N=2"]
28227 pub const FCK_INT_N2: Self = Self(0x01);
28228 #[doc = "fSAMPLING=fCK_INT, N=4"]
28229 pub const FCK_INT_N4: Self = Self(0x02);
28230 #[doc = "fSAMPLING=fCK_INT, N=8"]
28231 pub const FCK_INT_N8: Self = Self(0x03);
28232 #[doc = "fSAMPLING=fDTS/2, N=6"]
28233 pub const FDTS_DIV2_N6: Self = Self(0x04);
28234 #[doc = "fSAMPLING=fDTS/2, N=8"]
28235 pub const FDTS_DIV2_N8: Self = Self(0x05);
28236 #[doc = "fSAMPLING=fDTS/4, N=6"]
28237 pub const FDTS_DIV4_N6: Self = Self(0x06);
28238 #[doc = "fSAMPLING=fDTS/4, N=8"]
28239 pub const FDTS_DIV4_N8: Self = Self(0x07);
28240 #[doc = "fSAMPLING=fDTS/8, N=6"]
28241 pub const FDTS_DIV8_N6: Self = Self(0x08);
28242 #[doc = "fSAMPLING=fDTS/8, N=8"]
28243 pub const FDTS_DIV8_N8: Self = Self(0x09);
28244 #[doc = "fSAMPLING=fDTS/16, N=5"]
28245 pub const FDTS_DIV16_N5: Self = Self(0x0a);
28246 #[doc = "fSAMPLING=fDTS/16, N=6"]
28247 pub const FDTS_DIV16_N6: Self = Self(0x0b);
28248 #[doc = "fSAMPLING=fDTS/16, N=8"]
28249 pub const FDTS_DIV16_N8: Self = Self(0x0c);
28250 #[doc = "fSAMPLING=fDTS/32, N=5"]
28251 pub const FDTS_DIV32_N5: Self = Self(0x0d);
28252 #[doc = "fSAMPLING=fDTS/32, N=6"]
28253 pub const FDTS_DIV32_N6: Self = Self(0x0e);
28254 #[doc = "fSAMPLING=fDTS/32, N=8"]
28255 pub const FDTS_DIV32_N8: Self = Self(0x0f);
28256 }
28257 #[repr(transparent)]
28258 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28259 pub struct Ts(pub u8);
28260 impl Ts {
28261 #[doc = "Internal Trigger 0 (ITR0)"]
28262 pub const ITR0: Self = Self(0);
28263 #[doc = "Internal Trigger 1 (ITR1)"]
28264 pub const ITR1: Self = Self(0x01);
28265 #[doc = "Internal Trigger 2 (ITR2)"]
28266 pub const ITR2: Self = Self(0x02);
28267 #[doc = "TI1 Edge Detector (TI1F_ED)"]
28268 pub const TI1F_ED: Self = Self(0x04);
28269 #[doc = "Filtered Timer Input 1 (TI1FP1)"]
28270 pub const TI1FP1: Self = Self(0x05);
28271 #[doc = "Filtered Timer Input 2 (TI2FP2)"]
28272 pub const TI2FP2: Self = Self(0x06);
28273 #[doc = "External Trigger input (ETRF)"]
28274 pub const ETRF: Self = Self(0x07);
28275 }
28276 #[repr(transparent)]
28277 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28278 pub struct Ece(pub u8);
28279 impl Ece {
28280 #[doc = "External clock mode 2 disabled"]
28281 pub const DISABLED: Self = Self(0);
28282 #[doc = "External clock mode 2 enabled. The counter is clocked by any active edge on the ETRF signal."]
28283 pub const ENABLED: Self = Self(0x01);
28284 }
28285 #[repr(transparent)]
28286 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28287 pub struct Mms(pub u8);
28288 impl Mms {
28289 #[doc = "The UG bit from the TIMx_EGR register is used as trigger output"]
28290 pub const RESET: Self = Self(0);
28291 #[doc = "The counter enable signal, CNT_EN, is used as trigger output"]
28292 pub const ENABLE: Self = Self(0x01);
28293 #[doc = "The update event is selected as trigger output"]
28294 pub const UPDATE: Self = Self(0x02);
28295 #[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"]
28296 pub const COMPAREPULSE: Self = Self(0x03);
28297 #[doc = "OC1REF signal is used as trigger output"]
28298 pub const COMPAREOC1: Self = Self(0x04);
28299 #[doc = "OC2REF signal is used as trigger output"]
28300 pub const COMPAREOC2: Self = Self(0x05);
28301 #[doc = "OC3REF signal is used as trigger output"]
28302 pub const COMPAREOC3: Self = Self(0x06);
28303 #[doc = "OC4REF signal is used as trigger output"]
28304 pub const COMPAREOC4: Self = Self(0x07);
28305 }
28306 #[repr(transparent)]
28307 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28308 pub struct Sms(pub u8);
28309 impl Sms {
28310 #[doc = "Slave mode disabled - if CEN = ‘1 then the prescaler is clocked directly by the internal clock."]
28311 pub const DISABLED: Self = Self(0);
28312 #[doc = "Encoder mode 1 - Counter counts up/down on TI2FP1 edge depending on TI1FP2 level."]
28313 pub const ENCODER_MODE_1: Self = Self(0x01);
28314 #[doc = "Encoder mode 2 - Counter counts up/down on TI1FP2 edge depending on TI2FP1 level."]
28315 pub const ENCODER_MODE_2: Self = Self(0x02);
28316 #[doc = "Encoder mode 3 - Counter counts up/down on both TI1FP1 and TI2FP2 edges depending on the level of the other input."]
28317 pub const ENCODER_MODE_3: Self = Self(0x03);
28318 #[doc = "Reset Mode - Rising edge of the selected trigger input (TRGI) reinitializes the counter and generates an update of the registers."]
28319 pub const RESET_MODE: Self = Self(0x04);
28320 #[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."]
28321 pub const GATED_MODE: Self = Self(0x05);
28322 #[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."]
28323 pub const TRIGGER_MODE: Self = Self(0x06);
28324 #[doc = "External Clock Mode 1 - Rising edges of the selected trigger (TRGI) clock the counter."]
28325 pub const EXT_CLOCK_MODE: Self = Self(0x07);
28326 }
28327 #[repr(transparent)]
28328 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28329 pub struct Ckd(pub u8);
28330 impl Ckd {
28331 #[doc = "t_DTS = t_CK_INT"]
28332 pub const DIV1: Self = Self(0);
28333 #[doc = "t_DTS = 2 × t_CK_INT"]
28334 pub const DIV2: Self = Self(0x01);
28335 #[doc = "t_DTS = 4 × t_CK_INT"]
28336 pub const DIV4: Self = Self(0x02);
28337 }
28338 #[repr(transparent)]
28339 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28340 pub struct Etps(pub u8);
28341 impl Etps {
28342 #[doc = "Prescaler OFF"]
28343 pub const DIV1: Self = Self(0);
28344 #[doc = "ETRP frequency divided by 2"]
28345 pub const DIV2: Self = Self(0x01);
28346 #[doc = "ETRP frequency divided by 4"]
28347 pub const DIV4: Self = Self(0x02);
28348 #[doc = "ETRP frequency divided by 8"]
28349 pub const DIV8: Self = Self(0x03);
28350 }
28351 #[repr(transparent)]
28352 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28353 pub struct Etp(pub u8);
28354 impl Etp {
28355 #[doc = "ETR is noninverted, active at high level or rising edge"]
28356 pub const NOTINVERTED: Self = Self(0);
28357 #[doc = "ETR is inverted, active at low level or falling edge"]
28358 pub const INVERTED: Self = Self(0x01);
28359 }
28360 #[repr(transparent)]
28361 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28362 pub struct Cms(pub u8);
28363 impl Cms {
28364 #[doc = "The counter counts up or down depending on the direction bit"]
28365 pub const EDGEALIGNED: Self = Self(0);
28366 #[doc = "The counter counts up and down alternatively. Output compare interrupt flags are set only when the counter is counting down."]
28367 pub const CENTERALIGNED1: Self = Self(0x01);
28368 #[doc = "The counter counts up and down alternatively. Output compare interrupt flags are set only when the counter is counting up."]
28369 pub const CENTERALIGNED2: Self = Self(0x02);
28370 #[doc = "The counter counts up and down alternatively. Output compare interrupt flags are set both when the counter is counting up or down."]
28371 pub const CENTERALIGNED3: Self = Self(0x03);
28372 }
28373 #[repr(transparent)]
28374 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28375 pub struct Ccds(pub u8);
28376 impl Ccds {
28377 #[doc = "CCx DMA request sent when CCx event occurs"]
28378 pub const ONCOMPARE: Self = Self(0);
28379 #[doc = "CCx DMA request sent when update event occurs"]
28380 pub const ONUPDATE: Self = Self(0x01);
28381 }
28382 #[repr(transparent)]
28383 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28384 pub struct Icf(pub u8);
28385 impl Icf {
28386 #[doc = "No filter, sampling is done at fDTS"]
28387 pub const NOFILTER: Self = Self(0);
28388 #[doc = "fSAMPLING=fCK_INT, N=2"]
28389 pub const FCK_INT_N2: Self = Self(0x01);
28390 #[doc = "fSAMPLING=fCK_INT, N=4"]
28391 pub const FCK_INT_N4: Self = Self(0x02);
28392 #[doc = "fSAMPLING=fCK_INT, N=8"]
28393 pub const FCK_INT_N8: Self = Self(0x03);
28394 #[doc = "fSAMPLING=fDTS/2, N=6"]
28395 pub const FDTS_DIV2_N6: Self = Self(0x04);
28396 #[doc = "fSAMPLING=fDTS/2, N=8"]
28397 pub const FDTS_DIV2_N8: Self = Self(0x05);
28398 #[doc = "fSAMPLING=fDTS/4, N=6"]
28399 pub const FDTS_DIV4_N6: Self = Self(0x06);
28400 #[doc = "fSAMPLING=fDTS/4, N=8"]
28401 pub const FDTS_DIV4_N8: Self = Self(0x07);
28402 #[doc = "fSAMPLING=fDTS/8, N=6"]
28403 pub const FDTS_DIV8_N6: Self = Self(0x08);
28404 #[doc = "fSAMPLING=fDTS/8, N=8"]
28405 pub const FDTS_DIV8_N8: Self = Self(0x09);
28406 #[doc = "fSAMPLING=fDTS/16, N=5"]
28407 pub const FDTS_DIV16_N5: Self = Self(0x0a);
28408 #[doc = "fSAMPLING=fDTS/16, N=6"]
28409 pub const FDTS_DIV16_N6: Self = Self(0x0b);
28410 #[doc = "fSAMPLING=fDTS/16, N=8"]
28411 pub const FDTS_DIV16_N8: Self = Self(0x0c);
28412 #[doc = "fSAMPLING=fDTS/32, N=5"]
28413 pub const FDTS_DIV32_N5: Self = Self(0x0d);
28414 #[doc = "fSAMPLING=fDTS/32, N=6"]
28415 pub const FDTS_DIV32_N6: Self = Self(0x0e);
28416 #[doc = "fSAMPLING=fDTS/32, N=8"]
28417 pub const FDTS_DIV32_N8: Self = Self(0x0f);
28418 }
28419 #[repr(transparent)]
28420 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28421 pub struct CcmrOutputCcs(pub u8);
28422 impl CcmrOutputCcs {
28423 #[doc = "CCx channel is configured as output"]
28424 pub const OUTPUT: Self = Self(0);
28425 }
28426 #[repr(transparent)]
28427 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28428 pub struct Ossr(pub u8);
28429 impl Ossr {
28430 #[doc = "When inactive, OC/OCN outputs are disabled"]
28431 pub const DISABLED: Self = Self(0);
28432 #[doc = "When inactive, OC/OCN outputs are enabled with their inactive level"]
28433 pub const IDLELEVEL: Self = Self(0x01);
28434 }
28435 #[repr(transparent)]
28436 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28437 pub struct CcmrInputCcs(pub u8);
28438 impl CcmrInputCcs {
28439 #[doc = "CCx channel is configured as input, normal mapping: ICx mapped to TIx"]
28440 pub const TI4: Self = Self(0x01);
28441 #[doc = "CCx channel is configured as input, alternate mapping (switches 1 with 2, 3 with 4)"]
28442 pub const TI3: Self = Self(0x02);
28443 #[doc = "CCx channel is configured as input, ICx is mapped on TRC"]
28444 pub const TRC: Self = Self(0x03);
28445 }
28446 #[repr(transparent)]
28447 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28448 pub struct Ossi(pub u8);
28449 impl Ossi {
28450 #[doc = "When inactive, OC/OCN outputs are disabled"]
28451 pub const DISABLED: Self = Self(0);
28452 #[doc = "When inactive, OC/OCN outputs are forced to idle level"]
28453 pub const IDLELEVEL: Self = Self(0x01);
28454 }
28455 #[repr(transparent)]
28456 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28457 pub struct Ocm(pub u8);
28458 impl Ocm {
28459 #[doc = "The comparison between the output compare register TIMx_CCRy and the counter TIMx_CNT has no effect on the outputs"]
28460 pub const FROZEN: Self = Self(0);
28461 #[doc = "Set channel to active level on match. OCyREF signal is forced high when the counter matches the capture/compare register"]
28462 pub const ACTIVEONMATCH: Self = Self(0x01);
28463 #[doc = "Set channel to inactive level on match. OCyREF signal is forced low when the counter matches the capture/compare register"]
28464 pub const INACTIVEONMATCH: Self = Self(0x02);
28465 #[doc = "OCyREF toggles when TIMx_CNT=TIMx_CCRy"]
28466 pub const TOGGLE: Self = Self(0x03);
28467 #[doc = "OCyREF is forced low"]
28468 pub const FORCEINACTIVE: Self = Self(0x04);
28469 #[doc = "OCyREF is forced high"]
28470 pub const FORCEACTIVE: Self = Self(0x05);
28471 #[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"]
28472 pub const PWMMODE1: Self = Self(0x06);
28473 #[doc = "Inversely to PwmMode1"]
28474 pub const PWMMODE2: Self = Self(0x07);
28475 }
28476 }
28477}
28478pub mod gpio_v2 {
28479 use crate::generic::*;
28480 #[doc = "General-purpose I/Os"]
28481 #[derive(Copy, Clone)]
28482 pub struct Gpio(pub *mut u8);
28483 unsafe impl Send for Gpio {}
28484 unsafe impl Sync for Gpio {}
28485 impl Gpio {
28486 #[doc = "GPIO port mode register"]
28487 pub fn moder(self) -> Reg<regs::Moder, RW> {
28488 unsafe { Reg::from_ptr(self.0.add(0usize)) }
28489 }
28490 #[doc = "GPIO port output type register"]
28491 pub fn otyper(self) -> Reg<regs::Otyper, RW> {
28492 unsafe { Reg::from_ptr(self.0.add(4usize)) }
28493 }
28494 #[doc = "GPIO port output speed register"]
28495 pub fn ospeedr(self) -> Reg<regs::Ospeedr, RW> {
28496 unsafe { Reg::from_ptr(self.0.add(8usize)) }
28497 }
28498 #[doc = "GPIO port pull-up/pull-down register"]
28499 pub fn pupdr(self) -> Reg<regs::Pupdr, RW> {
28500 unsafe { Reg::from_ptr(self.0.add(12usize)) }
28501 }
28502 #[doc = "GPIO port input data register"]
28503 pub fn idr(self) -> Reg<regs::Idr, R> {
28504 unsafe { Reg::from_ptr(self.0.add(16usize)) }
28505 }
28506 #[doc = "GPIO port output data register"]
28507 pub fn odr(self) -> Reg<regs::Odr, RW> {
28508 unsafe { Reg::from_ptr(self.0.add(20usize)) }
28509 }
28510 #[doc = "GPIO port bit set/reset register"]
28511 pub fn bsrr(self) -> Reg<regs::Bsrr, W> {
28512 unsafe { Reg::from_ptr(self.0.add(24usize)) }
28513 }
28514 #[doc = "GPIO port configuration lock register"]
28515 pub fn lckr(self) -> Reg<regs::Lckr, RW> {
28516 unsafe { Reg::from_ptr(self.0.add(28usize)) }
28517 }
28518 #[doc = "GPIO alternate function register (low, high)"]
28519 pub fn afr(self, n: usize) -> Reg<regs::Afr, RW> {
28520 assert!(n < 2usize);
28521 unsafe { Reg::from_ptr(self.0.add(32usize + n * 4usize)) }
28522 }
28523 }
28524 pub mod vals {
28525 use crate::generic::*;
28526 #[repr(transparent)]
28527 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28528 pub struct Pupdr(pub u8);
28529 impl Pupdr {
28530 #[doc = "No pull-up, pull-down"]
28531 pub const FLOATING: Self = Self(0);
28532 #[doc = "Pull-up"]
28533 pub const PULLUP: Self = Self(0x01);
28534 #[doc = "Pull-down"]
28535 pub const PULLDOWN: Self = Self(0x02);
28536 }
28537 #[repr(transparent)]
28538 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28539 pub struct Afr(pub u8);
28540 impl Afr {
28541 #[doc = "AF0"]
28542 pub const AF0: Self = Self(0);
28543 #[doc = "AF1"]
28544 pub const AF1: Self = Self(0x01);
28545 #[doc = "AF2"]
28546 pub const AF2: Self = Self(0x02);
28547 #[doc = "AF3"]
28548 pub const AF3: Self = Self(0x03);
28549 #[doc = "AF4"]
28550 pub const AF4: Self = Self(0x04);
28551 #[doc = "AF5"]
28552 pub const AF5: Self = Self(0x05);
28553 #[doc = "AF6"]
28554 pub const AF6: Self = Self(0x06);
28555 #[doc = "AF7"]
28556 pub const AF7: Self = Self(0x07);
28557 #[doc = "AF8"]
28558 pub const AF8: Self = Self(0x08);
28559 #[doc = "AF9"]
28560 pub const AF9: Self = Self(0x09);
28561 #[doc = "AF10"]
28562 pub const AF10: Self = Self(0x0a);
28563 #[doc = "AF11"]
28564 pub const AF11: Self = Self(0x0b);
28565 #[doc = "AF12"]
28566 pub const AF12: Self = Self(0x0c);
28567 #[doc = "AF13"]
28568 pub const AF13: Self = Self(0x0d);
28569 #[doc = "AF14"]
28570 pub const AF14: Self = Self(0x0e);
28571 #[doc = "AF15"]
28572 pub const AF15: Self = Self(0x0f);
24037 } 28573 }
28574<<<<<<< HEAD
24038 #[doc = "DMA/Interrupt enable register"] 28575 #[doc = "DMA/Interrupt enable register"]
24039 #[repr(transparent)] 28576 #[repr(transparent)]
24040 #[derive(Copy, Clone, Eq, PartialEq)] 28577 #[derive(Copy, Clone, Eq, PartialEq)]
@@ -24356,43 +28893,121 @@ pub mod syscfg_h7 {
24356 } 28893 }
24357<<<<<<< HEAD 28894<<<<<<< HEAD
24358 #[doc = "control register 2"] 28895 #[doc = "control register 2"]
28896=======
28897 #[repr(transparent)]
28898 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28899 pub struct Ot(pub u8);
28900 impl Ot {
28901 #[doc = "Output push-pull (reset state)"]
28902 pub const PUSHPULL: Self = Self(0);
28903 #[doc = "Output open-drain"]
28904 pub const OPENDRAIN: Self = Self(0x01);
28905 }
28906 #[repr(transparent)]
28907 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28908 pub struct Bsw(pub u8);
28909 impl Bsw {
28910 #[doc = "Sets the corresponding ODRx bit"]
28911 pub const SET: Self = Self(0x01);
28912 }
28913 #[repr(transparent)]
28914 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28915 pub struct Lckk(pub u8);
28916 impl Lckk {
28917 #[doc = "Port configuration lock key not active"]
28918 pub const NOTACTIVE: Self = Self(0);
28919 #[doc = "Port configuration lock key active"]
28920 pub const ACTIVE: Self = Self(0x01);
28921 }
28922 #[repr(transparent)]
28923 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28924 pub struct Lck(pub u8);
28925 impl Lck {
28926 #[doc = "Port configuration not locked"]
28927 pub const UNLOCKED: Self = Self(0);
28928 #[doc = "Port configuration locked"]
28929 pub const LOCKED: Self = Self(0x01);
28930 }
28931 #[repr(transparent)]
28932 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28933 pub struct Ospeedr(pub u8);
28934 impl Ospeedr {
28935 #[doc = "Low speed"]
28936 pub const LOWSPEED: Self = Self(0);
28937 #[doc = "Medium speed"]
28938 pub const MEDIUMSPEED: Self = Self(0x01);
28939 #[doc = "High speed"]
28940 pub const HIGHSPEED: Self = Self(0x02);
28941 #[doc = "Very high speed"]
28942 pub const VERYHIGHSPEED: Self = Self(0x03);
28943 }
28944 #[repr(transparent)]
28945 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28946 pub struct Odr(pub u8);
28947 impl Odr {
28948 #[doc = "Set output to logic low"]
28949 pub const LOW: Self = Self(0);
28950 #[doc = "Set output to logic high"]
28951 pub const HIGH: Self = Self(0x01);
28952 }
28953 #[repr(transparent)]
28954 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28955 pub struct Idr(pub u8);
28956 impl Idr {
28957 #[doc = "Input is logic low"]
28958 pub const LOW: Self = Self(0);
28959 #[doc = "Input is logic high"]
28960 pub const HIGH: Self = Self(0x01);
28961 }
28962 #[repr(transparent)]
28963 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28964 pub struct Moder(pub u8);
28965 impl Moder {
28966 #[doc = "Input mode (reset state)"]
28967 pub const INPUT: Self = Self(0);
28968 #[doc = "General purpose output mode"]
28969 pub const OUTPUT: Self = Self(0x01);
28970 #[doc = "Alternate function mode"]
28971 pub const ALTERNATE: Self = Self(0x02);
28972 #[doc = "Analog mode"]
28973 pub const ANALOG: Self = Self(0x03);
28974 }
28975 #[repr(transparent)]
28976 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
28977 pub struct Brw(pub u8);
28978 impl Brw {
28979 #[doc = "Resets the corresponding ODRx bit"]
28980 pub const RESET: Self = Self(0x01);
28981 }
28982 }
28983 pub mod regs {
28984 use crate::generic::*;
28985 #[doc = "GPIO port output data register"]
28986>>>>>>> cbbaaa9 (Fix RNG interrupt name)
24359 #[repr(transparent)] 28987 #[repr(transparent)]
24360 #[derive(Copy, Clone, Eq, PartialEq)] 28988 #[derive(Copy, Clone, Eq, PartialEq)]
24361 pub struct Cr2Gp(pub u32); 28989 pub struct Odr(pub u32);
24362 impl Cr2Gp { 28990 impl Odr {
24363 #[doc = "Capture/compare DMA selection"] 28991 #[doc = "Port output data (y = 0..15)"]
24364 pub const fn ccds(&self) -> super::vals::Ccds { 28992 pub fn odr(&self, n: usize) -> super::vals::Odr {
24365 let val = (self.0 >> 3usize) & 0x01; 28993 assert!(n < 16usize);
24366 super::vals::Ccds(val as u8) 28994 let offs = 0usize + n * 1usize;
24367 } 28995 let val = (self.0 >> offs) & 0x01;
24368 #[doc = "Capture/compare DMA selection"] 28996 super::vals::Odr(val as u8)
24369 pub fn set_ccds(&mut self, val: super::vals::Ccds) {
24370 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
24371 }
24372 #[doc = "Master mode selection"]
24373 pub const fn mms(&self) -> super::vals::Mms {
24374 let val = (self.0 >> 4usize) & 0x07;
24375 super::vals::Mms(val as u8)
24376 }
24377 #[doc = "Master mode selection"]
24378 pub fn set_mms(&mut self, val: super::vals::Mms) {
24379 self.0 = (self.0 & !(0x07 << 4usize)) | (((val.0 as u32) & 0x07) << 4usize);
24380 }
24381 #[doc = "TI1 selection"]
24382 pub const fn ti1s(&self) -> super::vals::Tis {
24383 let val = (self.0 >> 7usize) & 0x01;
24384 super::vals::Tis(val as u8)
24385 } 28997 }
24386 #[doc = "TI1 selection"] 28998 #[doc = "Port output data (y = 0..15)"]
24387 pub fn set_ti1s(&mut self, val: super::vals::Tis) { 28999 pub fn set_odr(&mut self, n: usize, val: super::vals::Odr) {
24388 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 29000 assert!(n < 16usize);
29001 let offs = 0usize + n * 1usize;
29002 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
24389 } 29003 }
24390 } 29004 }
24391 impl Default for Cr2Gp { 29005 impl Default for Odr {
24392 fn default() -> Cr2Gp { 29006 fn default() -> Odr {
24393 Cr2Gp(0) 29007 Odr(0)
24394 } 29008 }
24395 } 29009 }
29010<<<<<<< HEAD
24396 #[doc = "capture/compare register 1"] 29011 #[doc = "capture/compare register 1"]
24397 #[repr(transparent)] 29012 #[repr(transparent)]
24398 #[derive(Copy, Clone, Eq, PartialEq)] 29013 #[derive(Copy, Clone, Eq, PartialEq)]
@@ -24504,11 +29119,145 @@ pub mod syscfg_h7 {
24504 impl Default for DierBasic { 29119 impl Default for DierBasic {
24505 fn default() -> DierBasic { 29120 fn default() -> DierBasic {
24506 DierBasic(0) 29121 DierBasic(0)
29122=======
29123 #[doc = "GPIO port mode register"]
29124 #[repr(transparent)]
29125 #[derive(Copy, Clone, Eq, PartialEq)]
29126 pub struct Moder(pub u32);
29127 impl Moder {
29128 #[doc = "Port x configuration bits (y = 0..15)"]
29129 pub fn moder(&self, n: usize) -> super::vals::Moder {
29130 assert!(n < 16usize);
29131 let offs = 0usize + n * 2usize;
29132 let val = (self.0 >> offs) & 0x03;
29133 super::vals::Moder(val as u8)
29134 }
29135 #[doc = "Port x configuration bits (y = 0..15)"]
29136 pub fn set_moder(&mut self, n: usize, val: super::vals::Moder) {
29137 assert!(n < 16usize);
29138 let offs = 0usize + n * 2usize;
29139 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
24507 } 29140 }
24508 } 29141 }
24509 #[doc = "event generation register"] 29142 impl Default for Moder {
29143 fn default() -> Moder {
29144 Moder(0)
29145 }
29146 }
29147 #[doc = "GPIO port bit set/reset register"]
29148 #[repr(transparent)]
29149 #[derive(Copy, Clone, Eq, PartialEq)]
29150 pub struct Bsrr(pub u32);
29151 impl Bsrr {
29152 #[doc = "Port x set bit y (y= 0..15)"]
29153 pub fn bs(&self, n: usize) -> bool {
29154 assert!(n < 16usize);
29155 let offs = 0usize + n * 1usize;
29156 let val = (self.0 >> offs) & 0x01;
29157 val != 0
29158 }
29159 #[doc = "Port x set bit y (y= 0..15)"]
29160 pub fn set_bs(&mut self, n: usize, val: bool) {
29161 assert!(n < 16usize);
29162 let offs = 0usize + n * 1usize;
29163 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
29164 }
29165 #[doc = "Port x set bit y (y= 0..15)"]
29166 pub fn br(&self, n: usize) -> bool {
29167 assert!(n < 16usize);
29168 let offs = 16usize + n * 1usize;
29169 let val = (self.0 >> offs) & 0x01;
29170 val != 0
29171 }
29172 #[doc = "Port x set bit y (y= 0..15)"]
29173 pub fn set_br(&mut self, n: usize, val: bool) {
29174 assert!(n < 16usize);
29175 let offs = 16usize + n * 1usize;
29176 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
29177 }
29178 }
29179 impl Default for Bsrr {
29180 fn default() -> Bsrr {
29181 Bsrr(0)
29182 }
29183 }
29184 #[doc = "GPIO port pull-up/pull-down register"]
29185 #[repr(transparent)]
29186 #[derive(Copy, Clone, Eq, PartialEq)]
29187 pub struct Pupdr(pub u32);
29188 impl Pupdr {
29189 #[doc = "Port x configuration bits (y = 0..15)"]
29190 pub fn pupdr(&self, n: usize) -> super::vals::Pupdr {
29191 assert!(n < 16usize);
29192 let offs = 0usize + n * 2usize;
29193 let val = (self.0 >> offs) & 0x03;
29194 super::vals::Pupdr(val as u8)
29195 }
29196 #[doc = "Port x configuration bits (y = 0..15)"]
29197 pub fn set_pupdr(&mut self, n: usize, val: super::vals::Pupdr) {
29198 assert!(n < 16usize);
29199 let offs = 0usize + n * 2usize;
29200 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
29201 }
29202 }
29203 impl Default for Pupdr {
29204 fn default() -> Pupdr {
29205 Pupdr(0)
29206 }
29207 }
29208 #[doc = "GPIO port output type register"]
24510 #[repr(transparent)] 29209 #[repr(transparent)]
24511 #[derive(Copy, Clone, Eq, PartialEq)] 29210 #[derive(Copy, Clone, Eq, PartialEq)]
29211 pub struct Otyper(pub u32);
29212 impl Otyper {
29213 #[doc = "Port x configuration bits (y = 0..15)"]
29214 pub fn ot(&self, n: usize) -> super::vals::Ot {
29215 assert!(n < 16usize);
29216 let offs = 0usize + n * 1usize;
29217 let val = (self.0 >> offs) & 0x01;
29218 super::vals::Ot(val as u8)
29219 }
29220 #[doc = "Port x configuration bits (y = 0..15)"]
29221 pub fn set_ot(&mut self, n: usize, val: super::vals::Ot) {
29222 assert!(n < 16usize);
29223 let offs = 0usize + n * 1usize;
29224 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
29225 }
29226 }
29227 impl Default for Otyper {
29228 fn default() -> Otyper {
29229 Otyper(0)
29230 }
29231 }
29232 #[doc = "GPIO alternate function register"]
29233 #[repr(transparent)]
29234 #[derive(Copy, Clone, Eq, PartialEq)]
29235 pub struct Afr(pub u32);
29236 impl Afr {
29237 #[doc = "Alternate function selection for port x bit y (y = 0..15)"]
29238 pub fn afr(&self, n: usize) -> super::vals::Afr {
29239 assert!(n < 8usize);
29240 let offs = 0usize + n * 4usize;
29241 let val = (self.0 >> offs) & 0x0f;
29242 super::vals::Afr(val as u8)
29243 }
29244 #[doc = "Alternate function selection for port x bit y (y = 0..15)"]
29245 pub fn set_afr(&mut self, n: usize, val: super::vals::Afr) {
29246 assert!(n < 8usize);
29247 let offs = 0usize + n * 4usize;
29248 self.0 = (self.0 & !(0x0f << offs)) | (((val.0 as u32) & 0x0f) << offs);
29249 }
29250 }
29251 impl Default for Afr {
29252 fn default() -> Afr {
29253 Afr(0)
29254>>>>>>> cbbaaa9 (Fix RNG interrupt name)
29255 }
29256 }
29257 #[doc = "GPIO port configuration lock register"]
29258 #[repr(transparent)]
29259 #[derive(Copy, Clone, Eq, PartialEq)]
29260<<<<<<< HEAD
24512 pub struct EgrAdv(pub u32); 29261 pub struct EgrAdv(pub u32);
24513 impl EgrAdv { 29262 impl EgrAdv {
24514 #[doc = "Update generation"] 29263 #[doc = "Update generation"]
@@ -24873,6 +29622,384 @@ pub mod syscfg_h7 {
24873 impl Default for Icr { 29622 impl Default for Icr {
24874 fn default() -> Icr { 29623 fn default() -> Icr {
24875 Icr(0) 29624 Icr(0)
29625=======
29626 pub struct Lckr(pub u32);
29627 impl Lckr {
29628 #[doc = "Port x lock bit y (y= 0..15)"]
29629 pub fn lck(&self, n: usize) -> super::vals::Lck {
29630 assert!(n < 16usize);
29631 let offs = 0usize + n * 1usize;
29632 let val = (self.0 >> offs) & 0x01;
29633 super::vals::Lck(val as u8)
29634 }
29635 #[doc = "Port x lock bit y (y= 0..15)"]
29636 pub fn set_lck(&mut self, n: usize, val: super::vals::Lck) {
29637 assert!(n < 16usize);
29638 let offs = 0usize + n * 1usize;
29639 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
29640 }
29641 #[doc = "Port x lock bit y (y= 0..15)"]
29642 pub const fn lckk(&self) -> super::vals::Lckk {
29643 let val = (self.0 >> 16usize) & 0x01;
29644 super::vals::Lckk(val as u8)
29645 }
29646 #[doc = "Port x lock bit y (y= 0..15)"]
29647 pub fn set_lckk(&mut self, val: super::vals::Lckk) {
29648 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
29649 }
29650 }
29651 impl Default for Lckr {
29652 fn default() -> Lckr {
29653 Lckr(0)
29654 }
29655 }
29656 #[doc = "GPIO port output speed register"]
29657 #[repr(transparent)]
29658 #[derive(Copy, Clone, Eq, PartialEq)]
29659 pub struct Ospeedr(pub u32);
29660 impl Ospeedr {
29661 #[doc = "Port x configuration bits (y = 0..15)"]
29662 pub fn ospeedr(&self, n: usize) -> super::vals::Ospeedr {
29663 assert!(n < 16usize);
29664 let offs = 0usize + n * 2usize;
29665 let val = (self.0 >> offs) & 0x03;
29666 super::vals::Ospeedr(val as u8)
29667 }
29668 #[doc = "Port x configuration bits (y = 0..15)"]
29669 pub fn set_ospeedr(&mut self, n: usize, val: super::vals::Ospeedr) {
29670 assert!(n < 16usize);
29671 let offs = 0usize + n * 2usize;
29672 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
29673 }
29674 }
29675 impl Default for Ospeedr {
29676 fn default() -> Ospeedr {
29677 Ospeedr(0)
29678 }
29679 }
29680 #[doc = "GPIO port input data register"]
29681 #[repr(transparent)]
29682 #[derive(Copy, Clone, Eq, PartialEq)]
29683 pub struct Idr(pub u32);
29684 impl Idr {
29685 #[doc = "Port input data (y = 0..15)"]
29686 pub fn idr(&self, n: usize) -> super::vals::Idr {
29687 assert!(n < 16usize);
29688 let offs = 0usize + n * 1usize;
29689 let val = (self.0 >> offs) & 0x01;
29690 super::vals::Idr(val as u8)
29691 }
29692 #[doc = "Port input data (y = 0..15)"]
29693 pub fn set_idr(&mut self, n: usize, val: super::vals::Idr) {
29694 assert!(n < 16usize);
29695 let offs = 0usize + n * 1usize;
29696 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
29697 }
29698 }
29699 impl Default for Idr {
29700 fn default() -> Idr {
29701 Idr(0)
29702 }
29703 }
29704 }
29705}
29706pub mod gpio_v1 {
29707 use crate::generic::*;
29708 #[doc = "General purpose I/O"]
29709 #[derive(Copy, Clone)]
29710 pub struct Gpio(pub *mut u8);
29711 unsafe impl Send for Gpio {}
29712 unsafe impl Sync for Gpio {}
29713 impl Gpio {
29714 #[doc = "Port configuration register low (GPIOn_CRL)"]
29715 pub fn cr(self, n: usize) -> Reg<regs::Cr, RW> {
29716 assert!(n < 2usize);
29717 unsafe { Reg::from_ptr(self.0.add(0usize + n * 4usize)) }
29718 }
29719 #[doc = "Port input data register (GPIOn_IDR)"]
29720 pub fn idr(self) -> Reg<regs::Idr, R> {
29721 unsafe { Reg::from_ptr(self.0.add(8usize)) }
29722 }
29723 #[doc = "Port output data register (GPIOn_ODR)"]
29724 pub fn odr(self) -> Reg<regs::Odr, RW> {
29725 unsafe { Reg::from_ptr(self.0.add(12usize)) }
29726 }
29727 #[doc = "Port bit set/reset register (GPIOn_BSRR)"]
29728 pub fn bsrr(self) -> Reg<regs::Bsrr, W> {
29729 unsafe { Reg::from_ptr(self.0.add(16usize)) }
29730 }
29731 #[doc = "Port bit reset register (GPIOn_BRR)"]
29732 pub fn brr(self) -> Reg<regs::Brr, W> {
29733 unsafe { Reg::from_ptr(self.0.add(20usize)) }
29734 }
29735 #[doc = "Port configuration lock register"]
29736 pub fn lckr(self) -> Reg<regs::Lckr, RW> {
29737 unsafe { Reg::from_ptr(self.0.add(24usize)) }
29738 }
29739 }
29740 pub mod vals {
29741 use crate::generic::*;
29742 #[repr(transparent)]
29743 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29744 pub struct Bsw(pub u8);
29745 impl Bsw {
29746 #[doc = "No action on the corresponding ODx bit"]
29747 pub const NOACTION: Self = Self(0);
29748 #[doc = "Sets the corresponding ODRx bit"]
29749 pub const SET: Self = Self(0x01);
29750 }
29751 #[repr(transparent)]
29752 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29753 pub struct Mode(pub u8);
29754 impl Mode {
29755 #[doc = "Input mode (reset state)"]
29756 pub const INPUT: Self = Self(0);
29757 #[doc = "Output mode 10 MHz"]
29758 pub const OUTPUT: Self = Self(0x01);
29759 #[doc = "Output mode 2 MHz"]
29760 pub const OUTPUT2: Self = Self(0x02);
29761 #[doc = "Output mode 50 MHz"]
29762 pub const OUTPUT50: Self = Self(0x03);
29763 }
29764 #[repr(transparent)]
29765 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29766 pub struct Odr(pub u8);
29767 impl Odr {
29768 #[doc = "Set output to logic low"]
29769 pub const LOW: Self = Self(0);
29770 #[doc = "Set output to logic high"]
29771 pub const HIGH: Self = Self(0x01);
29772 }
29773 #[repr(transparent)]
29774 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29775 pub struct Cnf(pub u8);
29776 impl Cnf {
29777 #[doc = "Analog mode / Push-Pull mode"]
29778 pub const PUSHPULL: Self = Self(0);
29779 #[doc = "Floating input (reset state) / Open Drain-Mode"]
29780 pub const OPENDRAIN: Self = Self(0x01);
29781 #[doc = "Input with pull-up/pull-down / Alternate Function Push-Pull Mode"]
29782 pub const ALTPUSHPULL: Self = Self(0x02);
29783 #[doc = "Alternate Function Open-Drain Mode"]
29784 pub const ALTOPENDRAIN: Self = Self(0x03);
29785 }
29786 #[repr(transparent)]
29787 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29788 pub struct Idr(pub u8);
29789 impl Idr {
29790 #[doc = "Input is logic low"]
29791 pub const LOW: Self = Self(0);
29792 #[doc = "Input is logic high"]
29793 pub const HIGH: Self = Self(0x01);
29794 }
29795 #[repr(transparent)]
29796 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29797 pub struct Brw(pub u8);
29798 impl Brw {
29799 #[doc = "No action on the corresponding ODx bit"]
29800 pub const NOACTION: Self = Self(0);
29801 #[doc = "Reset the ODx bit"]
29802 pub const RESET: Self = Self(0x01);
29803 }
29804 #[repr(transparent)]
29805 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29806 pub struct Lck(pub u8);
29807 impl Lck {
29808 #[doc = "Port configuration not locked"]
29809 pub const UNLOCKED: Self = Self(0);
29810 #[doc = "Port configuration locked"]
29811 pub const LOCKED: Self = Self(0x01);
29812 }
29813 #[repr(transparent)]
29814 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29815 pub struct Lckk(pub u8);
29816 impl Lckk {
29817 #[doc = "Port configuration lock key not active"]
29818 pub const NOTACTIVE: Self = Self(0);
29819 #[doc = "Port configuration lock key active"]
29820 pub const ACTIVE: Self = Self(0x01);
29821 }
29822 }
29823 pub mod regs {
29824 use crate::generic::*;
29825 #[doc = "Port output data register (GPIOn_ODR)"]
29826 #[repr(transparent)]
29827 #[derive(Copy, Clone, Eq, PartialEq)]
29828 pub struct Odr(pub u32);
29829 impl Odr {
29830 #[doc = "Port output data"]
29831 pub fn odr(&self, n: usize) -> super::vals::Odr {
29832 assert!(n < 16usize);
29833 let offs = 0usize + n * 1usize;
29834 let val = (self.0 >> offs) & 0x01;
29835 super::vals::Odr(val as u8)
29836 }
29837 #[doc = "Port output data"]
29838 pub fn set_odr(&mut self, n: usize, val: super::vals::Odr) {
29839 assert!(n < 16usize);
29840 let offs = 0usize + n * 1usize;
29841 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
29842 }
29843 }
29844 impl Default for Odr {
29845 fn default() -> Odr {
29846 Odr(0)
29847 }
29848 }
29849 #[doc = "Port bit set/reset register (GPIOn_BSRR)"]
29850 #[repr(transparent)]
29851 #[derive(Copy, Clone, Eq, PartialEq)]
29852 pub struct Bsrr(pub u32);
29853 impl Bsrr {
29854 #[doc = "Set bit"]
29855 pub fn bs(&self, n: usize) -> bool {
29856 assert!(n < 16usize);
29857 let offs = 0usize + n * 1usize;
29858 let val = (self.0 >> offs) & 0x01;
29859 val != 0
29860 }
29861 #[doc = "Set bit"]
29862 pub fn set_bs(&mut self, n: usize, val: bool) {
29863 assert!(n < 16usize);
29864 let offs = 0usize + n * 1usize;
29865 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
29866 }
29867 #[doc = "Reset bit"]
29868 pub fn br(&self, n: usize) -> bool {
29869 assert!(n < 16usize);
29870 let offs = 16usize + n * 1usize;
29871 let val = (self.0 >> offs) & 0x01;
29872 val != 0
29873 }
29874 #[doc = "Reset bit"]
29875 pub fn set_br(&mut self, n: usize, val: bool) {
29876 assert!(n < 16usize);
29877 let offs = 16usize + n * 1usize;
29878 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
29879 }
29880 }
29881 impl Default for Bsrr {
29882 fn default() -> Bsrr {
29883 Bsrr(0)
29884 }
29885 }
29886 #[doc = "Port bit reset register (GPIOn_BRR)"]
29887 #[repr(transparent)]
29888 #[derive(Copy, Clone, Eq, PartialEq)]
29889 pub struct Brr(pub u32);
29890 impl Brr {
29891 #[doc = "Reset bit"]
29892 pub fn br(&self, n: usize) -> bool {
29893 assert!(n < 16usize);
29894 let offs = 0usize + n * 1usize;
29895 let val = (self.0 >> offs) & 0x01;
29896 val != 0
29897 }
29898 #[doc = "Reset bit"]
29899 pub fn set_br(&mut self, n: usize, val: bool) {
29900 assert!(n < 16usize);
29901 let offs = 0usize + n * 1usize;
29902 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
29903 }
29904 }
29905 impl Default for Brr {
29906 fn default() -> Brr {
29907 Brr(0)
29908 }
29909 }
29910 #[doc = "Port input data register (GPIOn_IDR)"]
29911 #[repr(transparent)]
29912 #[derive(Copy, Clone, Eq, PartialEq)]
29913 pub struct Idr(pub u32);
29914 impl Idr {
29915 #[doc = "Port input data"]
29916 pub fn idr(&self, n: usize) -> super::vals::Idr {
29917 assert!(n < 16usize);
29918 let offs = 0usize + n * 1usize;
29919 let val = (self.0 >> offs) & 0x01;
29920 super::vals::Idr(val as u8)
29921 }
29922 #[doc = "Port input data"]
29923 pub fn set_idr(&mut self, n: usize, val: super::vals::Idr) {
29924 assert!(n < 16usize);
29925 let offs = 0usize + n * 1usize;
29926 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
29927 }
29928 }
29929 impl Default for Idr {
29930 fn default() -> Idr {
29931 Idr(0)
29932 }
29933 }
29934 #[doc = "Port configuration lock register"]
29935 #[repr(transparent)]
29936 #[derive(Copy, Clone, Eq, PartialEq)]
29937 pub struct Lckr(pub u32);
29938 impl Lckr {
29939 #[doc = "Port A Lock bit"]
29940 pub fn lck(&self, n: usize) -> super::vals::Lck {
29941 assert!(n < 16usize);
29942 let offs = 0usize + n * 1usize;
29943 let val = (self.0 >> offs) & 0x01;
29944 super::vals::Lck(val as u8)
29945 }
29946 #[doc = "Port A Lock bit"]
29947 pub fn set_lck(&mut self, n: usize, val: super::vals::Lck) {
29948 assert!(n < 16usize);
29949 let offs = 0usize + n * 1usize;
29950 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
29951 }
29952 #[doc = "Lock key"]
29953 pub const fn lckk(&self) -> super::vals::Lckk {
29954 let val = (self.0 >> 16usize) & 0x01;
29955 super::vals::Lckk(val as u8)
29956 }
29957 #[doc = "Lock key"]
29958 pub fn set_lckk(&mut self, val: super::vals::Lckk) {
29959 self.0 = (self.0 & !(0x01 << 16usize)) | (((val.0 as u32) & 0x01) << 16usize);
29960 }
29961 }
29962 impl Default for Lckr {
29963 fn default() -> Lckr {
29964 Lckr(0)
29965 }
29966 }
29967 #[doc = "Port configuration register (GPIOn_CRx)"]
29968 #[repr(transparent)]
29969 #[derive(Copy, Clone, Eq, PartialEq)]
29970 pub struct Cr(pub u32);
29971 impl Cr {
29972 #[doc = "Port n mode bits"]
29973 pub fn mode(&self, n: usize) -> super::vals::Mode {
29974 assert!(n < 8usize);
29975 let offs = 0usize + n * 4usize;
29976 let val = (self.0 >> offs) & 0x03;
29977 super::vals::Mode(val as u8)
29978 }
29979 #[doc = "Port n mode bits"]
29980 pub fn set_mode(&mut self, n: usize, val: super::vals::Mode) {
29981 assert!(n < 8usize);
29982 let offs = 0usize + n * 4usize;
29983 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
29984 }
29985 #[doc = "Port n configuration bits"]
29986 pub fn cnf(&self, n: usize) -> super::vals::Cnf {
29987 assert!(n < 8usize);
29988 let offs = 2usize + n * 4usize;
29989 let val = (self.0 >> offs) & 0x03;
29990 super::vals::Cnf(val as u8)
29991 }
29992 #[doc = "Port n configuration bits"]
29993 pub fn set_cnf(&mut self, n: usize, val: super::vals::Cnf) {
29994 assert!(n < 8usize);
29995 let offs = 2usize + n * 4usize;
29996 self.0 = (self.0 & !(0x03 << offs)) | (((val.0 as u32) & 0x03) << offs);
29997 }
29998 }
29999 impl Default for Cr {
30000 fn default() -> Cr {
30001 Cr(0)
30002>>>>>>> cbbaaa9 (Fix RNG interrupt name)
24876 } 30003 }
24877======= 30004=======
24878 } 30005 }
@@ -24889,6 +30016,7 @@ pub mod gpio_v2 {
24889 pub fn moder(self) -> Reg<regs::Moder, RW> { 30016 pub fn moder(self) -> Reg<regs::Moder, RW> {
24890 unsafe { Reg::from_ptr(self.0.add(0usize)) } 30017 unsafe { Reg::from_ptr(self.0.add(0usize)) }
24891 } 30018 }
30019<<<<<<< HEAD
24892 #[doc = "GPIO port output type register"] 30020 #[doc = "GPIO port output type register"]
24893 pub fn otyper(self) -> Reg<regs::Otyper, RW> { 30021 pub fn otyper(self) -> Reg<regs::Otyper, RW> {
24894 unsafe { Reg::from_ptr(self.0.add(4usize)) } 30022 unsafe { Reg::from_ptr(self.0.add(4usize)) }
@@ -25252,6 +30380,350 @@ pub mod gpio_v2 {
25252 #[doc = "Analog mode"] 30380 #[doc = "Analog mode"]
25253 pub const ANALOG: Self = Self(0x03); 30381 pub const ANALOG: Self = Self(0x03);
25254 } 30382 }
30383=======
30384 }
30385}
30386pub mod rng_v1 {
30387 use crate::generic::*;
30388 #[doc = "Random number generator"]
30389 #[derive(Copy, Clone)]
30390 pub struct Rng(pub *mut u8);
30391 unsafe impl Send for Rng {}
30392 unsafe impl Sync for Rng {}
30393 impl Rng {
30394 #[doc = "control register"]
30395 pub fn cr(self) -> Reg<regs::Cr, RW> {
30396 unsafe { Reg::from_ptr(self.0.add(0usize)) }
30397 }
30398 #[doc = "status register"]
30399 pub fn sr(self) -> Reg<regs::Sr, RW> {
30400 unsafe { Reg::from_ptr(self.0.add(4usize)) }
30401 }
30402 #[doc = "data register"]
30403 pub fn dr(self) -> Reg<u32, R> {
30404 unsafe { Reg::from_ptr(self.0.add(8usize)) }
30405 }
30406 }
30407 pub mod regs {
30408 use crate::generic::*;
30409 #[doc = "status register"]
30410 #[repr(transparent)]
30411 #[derive(Copy, Clone, Eq, PartialEq)]
30412 pub struct Sr(pub u32);
30413 impl Sr {
30414 #[doc = "Data ready"]
30415 pub const fn drdy(&self) -> bool {
30416 let val = (self.0 >> 0usize) & 0x01;
30417 val != 0
30418 }
30419 #[doc = "Data ready"]
30420 pub fn set_drdy(&mut self, val: bool) {
30421 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
30422 }
30423 #[doc = "Clock error current status"]
30424 pub const fn cecs(&self) -> bool {
30425 let val = (self.0 >> 1usize) & 0x01;
30426 val != 0
30427 }
30428 #[doc = "Clock error current status"]
30429 pub fn set_cecs(&mut self, val: bool) {
30430 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
30431 }
30432 #[doc = "Seed error current status"]
30433 pub const fn secs(&self) -> bool {
30434 let val = (self.0 >> 2usize) & 0x01;
30435 val != 0
30436 }
30437 #[doc = "Seed error current status"]
30438 pub fn set_secs(&mut self, val: bool) {
30439 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
30440 }
30441 #[doc = "Clock error interrupt status"]
30442 pub const fn ceis(&self) -> bool {
30443 let val = (self.0 >> 5usize) & 0x01;
30444 val != 0
30445 }
30446 #[doc = "Clock error interrupt status"]
30447 pub fn set_ceis(&mut self, val: bool) {
30448 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
30449 }
30450 #[doc = "Seed error interrupt status"]
30451 pub const fn seis(&self) -> bool {
30452 let val = (self.0 >> 6usize) & 0x01;
30453 val != 0
30454 }
30455 #[doc = "Seed error interrupt status"]
30456 pub fn set_seis(&mut self, val: bool) {
30457 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
30458 }
30459 }
30460 impl Default for Sr {
30461 fn default() -> Sr {
30462 Sr(0)
30463 }
30464 }
30465 #[doc = "control register"]
30466 #[repr(transparent)]
30467 #[derive(Copy, Clone, Eq, PartialEq)]
30468 pub struct Cr(pub u32);
30469 impl Cr {
30470 #[doc = "Random number generator enable"]
30471 pub const fn rngen(&self) -> bool {
30472 let val = (self.0 >> 2usize) & 0x01;
30473 val != 0
30474 }
30475 #[doc = "Random number generator enable"]
30476 pub fn set_rngen(&mut self, val: bool) {
30477 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
30478 }
30479 #[doc = "Interrupt enable"]
30480 pub const fn ie(&self) -> bool {
30481 let val = (self.0 >> 3usize) & 0x01;
30482 val != 0
30483 }
30484 #[doc = "Interrupt enable"]
30485 pub fn set_ie(&mut self, val: bool) {
30486 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
30487 }
30488 }
30489 impl Default for Cr {
30490 fn default() -> Cr {
30491 Cr(0)
30492 }
30493 }
30494 }
30495}
30496pub mod dma_v1 {
30497 use crate::generic::*;
30498 #[doc = "DMA controller"]
30499 #[derive(Copy, Clone)]
30500 pub struct Dma(pub *mut u8);
30501 unsafe impl Send for Dma {}
30502 unsafe impl Sync for Dma {}
30503 impl Dma {
30504 #[doc = "DMA interrupt status register (DMA_ISR)"]
30505 pub fn isr(self) -> Reg<regs::Isr, R> {
30506 unsafe { Reg::from_ptr(self.0.add(0usize)) }
30507 }
30508 #[doc = "DMA interrupt flag clear register (DMA_IFCR)"]
30509 pub fn ifcr(self) -> Reg<regs::Ifcr, W> {
30510 unsafe { Reg::from_ptr(self.0.add(4usize)) }
30511 }
30512 #[doc = "Channel cluster: CCR?, CNDTR?, CPAR?, and CMAR? registers"]
30513 pub fn ch(self, n: usize) -> Ch {
30514 assert!(n < 7usize);
30515 unsafe { Ch(self.0.add(8usize + n * 20usize)) }
30516 }
30517 }
30518 #[doc = "Channel cluster: CCR?, CNDTR?, CPAR?, and CMAR? registers"]
30519 #[derive(Copy, Clone)]
30520 pub struct Ch(pub *mut u8);
30521 unsafe impl Send for Ch {}
30522 unsafe impl Sync for Ch {}
30523 impl Ch {
30524 #[doc = "DMA channel configuration register (DMA_CCR)"]
30525 pub fn cr(self) -> Reg<regs::Cr, RW> {
30526 unsafe { Reg::from_ptr(self.0.add(0usize)) }
30527 }
30528 #[doc = "DMA channel 1 number of data register"]
30529 pub fn ndtr(self) -> Reg<regs::Ndtr, RW> {
30530 unsafe { Reg::from_ptr(self.0.add(4usize)) }
30531 }
30532 #[doc = "DMA channel 1 peripheral address register"]
30533 pub fn par(self) -> Reg<u32, RW> {
30534 unsafe { Reg::from_ptr(self.0.add(8usize)) }
30535 }
30536 #[doc = "DMA channel 1 memory address register"]
30537 pub fn mar(self) -> Reg<u32, RW> {
30538 unsafe { Reg::from_ptr(self.0.add(12usize)) }
30539 }
30540 }
30541 pub mod vals {
30542 use crate::generic::*;
30543 #[repr(transparent)]
30544 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
30545 pub struct Pl(pub u8);
30546 impl Pl {
30547 #[doc = "Low priority"]
30548 pub const LOW: Self = Self(0);
30549 #[doc = "Medium priority"]
30550 pub const MEDIUM: Self = Self(0x01);
30551 #[doc = "High priority"]
30552 pub const HIGH: Self = Self(0x02);
30553 #[doc = "Very high priority"]
30554 pub const VERYHIGH: Self = Self(0x03);
30555 }
30556 #[repr(transparent)]
30557 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
30558 pub struct Memmem(pub u8);
30559 impl Memmem {
30560 #[doc = "Memory to memory mode disabled"]
30561 pub const DISABLED: Self = Self(0);
30562 #[doc = "Memory to memory mode enabled"]
30563 pub const ENABLED: Self = Self(0x01);
30564 }
30565 #[repr(transparent)]
30566 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
30567 pub struct Dir(pub u8);
30568 impl Dir {
30569 #[doc = "Read from peripheral"]
30570 pub const FROMPERIPHERAL: Self = Self(0);
30571 #[doc = "Read from memory"]
30572 pub const FROMMEMORY: Self = Self(0x01);
30573 }
30574 #[repr(transparent)]
30575 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
30576 pub struct Circ(pub u8);
30577 impl Circ {
30578 #[doc = "Circular buffer disabled"]
30579 pub const DISABLED: Self = Self(0);
30580 #[doc = "Circular buffer enabled"]
30581 pub const ENABLED: Self = Self(0x01);
30582 }
30583 #[repr(transparent)]
30584 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
30585 pub struct Size(pub u8);
30586 impl Size {
30587 #[doc = "8-bit size"]
30588 pub const BITS8: Self = Self(0);
30589 #[doc = "16-bit size"]
30590 pub const BITS16: Self = Self(0x01);
30591 #[doc = "32-bit size"]
30592 pub const BITS32: Self = Self(0x02);
30593 }
30594 #[repr(transparent)]
30595 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
30596 pub struct Inc(pub u8);
30597 impl Inc {
30598 #[doc = "Increment mode disabled"]
30599 pub const DISABLED: Self = Self(0);
30600 #[doc = "Increment mode enabled"]
30601 pub const ENABLED: Self = Self(0x01);
30602 }
30603 }
30604 pub mod regs {
30605 use crate::generic::*;
30606 #[doc = "DMA channel configuration register (DMA_CCR)"]
30607 #[repr(transparent)]
30608 #[derive(Copy, Clone, Eq, PartialEq)]
30609 pub struct Cr(pub u32);
30610 impl Cr {
30611 #[doc = "Channel enable"]
30612 pub const fn en(&self) -> bool {
30613 let val = (self.0 >> 0usize) & 0x01;
30614 val != 0
30615 }
30616 #[doc = "Channel enable"]
30617 pub fn set_en(&mut self, val: bool) {
30618 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
30619 }
30620 #[doc = "Transfer complete interrupt enable"]
30621 pub const fn tcie(&self) -> bool {
30622 let val = (self.0 >> 1usize) & 0x01;
30623 val != 0
30624 }
30625 #[doc = "Transfer complete interrupt enable"]
30626 pub fn set_tcie(&mut self, val: bool) {
30627 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
30628 }
30629 #[doc = "Half Transfer interrupt enable"]
30630 pub const fn htie(&self) -> bool {
30631 let val = (self.0 >> 2usize) & 0x01;
30632 val != 0
30633 }
30634 #[doc = "Half Transfer interrupt enable"]
30635 pub fn set_htie(&mut self, val: bool) {
30636 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
30637 }
30638 #[doc = "Transfer error interrupt enable"]
30639 pub const fn teie(&self) -> bool {
30640 let val = (self.0 >> 3usize) & 0x01;
30641 val != 0
30642 }
30643 #[doc = "Transfer error interrupt enable"]
30644 pub fn set_teie(&mut self, val: bool) {
30645 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
30646 }
30647 #[doc = "Data transfer direction"]
30648 pub const fn dir(&self) -> super::vals::Dir {
30649 let val = (self.0 >> 4usize) & 0x01;
30650 super::vals::Dir(val as u8)
30651 }
30652 #[doc = "Data transfer direction"]
30653 pub fn set_dir(&mut self, val: super::vals::Dir) {
30654 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize);
30655 }
30656 #[doc = "Circular mode"]
30657 pub const fn circ(&self) -> super::vals::Circ {
30658 let val = (self.0 >> 5usize) & 0x01;
30659 super::vals::Circ(val as u8)
30660 }
30661 #[doc = "Circular mode"]
30662 pub fn set_circ(&mut self, val: super::vals::Circ) {
30663 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
30664 }
30665 #[doc = "Peripheral increment mode"]
30666 pub const fn pinc(&self) -> super::vals::Inc {
30667 let val = (self.0 >> 6usize) & 0x01;
30668 super::vals::Inc(val as u8)
30669 }
30670 #[doc = "Peripheral increment mode"]
30671 pub fn set_pinc(&mut self, val: super::vals::Inc) {
30672 self.0 = (self.0 & !(0x01 << 6usize)) | (((val.0 as u32) & 0x01) << 6usize);
30673 }
30674 #[doc = "Memory increment mode"]
30675 pub const fn minc(&self) -> super::vals::Inc {
30676 let val = (self.0 >> 7usize) & 0x01;
30677 super::vals::Inc(val as u8)
30678 }
30679 #[doc = "Memory increment mode"]
30680 pub fn set_minc(&mut self, val: super::vals::Inc) {
30681 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize);
30682 }
30683 #[doc = "Peripheral size"]
30684 pub const fn psize(&self) -> super::vals::Size {
30685 let val = (self.0 >> 8usize) & 0x03;
30686 super::vals::Size(val as u8)
30687 }
30688 #[doc = "Peripheral size"]
30689 pub fn set_psize(&mut self, val: super::vals::Size) {
30690 self.0 = (self.0 & !(0x03 << 8usize)) | (((val.0 as u32) & 0x03) << 8usize);
30691 }
30692 #[doc = "Memory size"]
30693 pub const fn msize(&self) -> super::vals::Size {
30694 let val = (self.0 >> 10usize) & 0x03;
30695 super::vals::Size(val as u8)
30696 }
30697 #[doc = "Memory size"]
30698 pub fn set_msize(&mut self, val: super::vals::Size) {
30699 self.0 = (self.0 & !(0x03 << 10usize)) | (((val.0 as u32) & 0x03) << 10usize);
30700 }
30701 #[doc = "Channel Priority level"]
30702 pub const fn pl(&self) -> super::vals::Pl {
30703 let val = (self.0 >> 12usize) & 0x03;
30704 super::vals::Pl(val as u8)
30705 }
30706 #[doc = "Channel Priority level"]
30707 pub fn set_pl(&mut self, val: super::vals::Pl) {
30708 self.0 = (self.0 & !(0x03 << 12usize)) | (((val.0 as u32) & 0x03) << 12usize);
30709 }
30710 #[doc = "Memory to memory mode"]
30711 pub const fn mem2mem(&self) -> super::vals::Memmem {
30712 let val = (self.0 >> 14usize) & 0x01;
30713 super::vals::Memmem(val as u8)
30714 }
30715 #[doc = "Memory to memory mode"]
30716 pub fn set_mem2mem(&mut self, val: super::vals::Memmem) {
30717 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize);
30718 }
30719 }
30720 impl Default for Cr {
30721 fn default() -> Cr {
30722 Cr(0)
30723 }
30724 }
30725 #[doc = "DMA interrupt status register (DMA_ISR)"]
30726>>>>>>> cbbaaa9 (Fix RNG interrupt name)
25255 #[repr(transparent)] 30727 #[repr(transparent)]
25256 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 30728 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25257 pub struct Lck(pub u8); 30729 pub struct Lck(pub u8);
@@ -25266,6 +30738,7 @@ pub mod gpio_v2 {
25266 #[repr(transparent)] 30738 #[repr(transparent)]
25267<<<<<<< HEAD 30739<<<<<<< HEAD
25268 #[derive(Copy, Clone, Eq, PartialEq)] 30740 #[derive(Copy, Clone, Eq, PartialEq)]
30741<<<<<<< HEAD
25269 pub struct Resp4r(pub u32); 30742 pub struct Resp4r(pub u32);
25270 impl Resp4r { 30743 impl Resp4r {
25271 #[doc = "see Table404."] 30744 #[doc = "see Table404."]
@@ -25282,6 +30755,66 @@ pub mod gpio_v2 {
25282 impl Default for Resp4r { 30755 impl Default for Resp4r {
25283 fn default() -> Resp4r { 30756 fn default() -> Resp4r {
25284 Resp4r(0) 30757 Resp4r(0)
30758=======
30759 pub struct Isr(pub u32);
30760 impl Isr {
30761 #[doc = "Channel 1 Global interrupt flag"]
30762 pub fn gif(&self, n: usize) -> bool {
30763 assert!(n < 7usize);
30764 let offs = 0usize + n * 4usize;
30765 let val = (self.0 >> offs) & 0x01;
30766 val != 0
30767 }
30768 #[doc = "Channel 1 Global interrupt flag"]
30769 pub fn set_gif(&mut self, n: usize, val: bool) {
30770 assert!(n < 7usize);
30771 let offs = 0usize + n * 4usize;
30772 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
30773 }
30774 #[doc = "Channel 1 Transfer Complete flag"]
30775 pub fn tcif(&self, n: usize) -> bool {
30776 assert!(n < 7usize);
30777 let offs = 1usize + n * 4usize;
30778 let val = (self.0 >> offs) & 0x01;
30779 val != 0
30780 }
30781 #[doc = "Channel 1 Transfer Complete flag"]
30782 pub fn set_tcif(&mut self, n: usize, val: bool) {
30783 assert!(n < 7usize);
30784 let offs = 1usize + n * 4usize;
30785 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
30786 }
30787 #[doc = "Channel 1 Half Transfer Complete flag"]
30788 pub fn htif(&self, n: usize) -> bool {
30789 assert!(n < 7usize);
30790 let offs = 2usize + n * 4usize;
30791 let val = (self.0 >> offs) & 0x01;
30792 val != 0
30793 }
30794 #[doc = "Channel 1 Half Transfer Complete flag"]
30795 pub fn set_htif(&mut self, n: usize, val: bool) {
30796 assert!(n < 7usize);
30797 let offs = 2usize + n * 4usize;
30798 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
30799 }
30800 #[doc = "Channel 1 Transfer Error flag"]
30801 pub fn teif(&self, n: usize) -> bool {
30802 assert!(n < 7usize);
30803 let offs = 3usize + n * 4usize;
30804 let val = (self.0 >> offs) & 0x01;
30805 val != 0
30806 }
30807 #[doc = "Channel 1 Transfer Error flag"]
30808 pub fn set_teif(&mut self, n: usize, val: bool) {
30809 assert!(n < 7usize);
30810 let offs = 3usize + n * 4usize;
30811 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
30812 }
30813 }
30814 impl Default for Isr {
30815 fn default() -> Isr {
30816 Isr(0)
30817>>>>>>> cbbaaa9 (Fix RNG interrupt name)
25285 } 30818 }
25286======= 30819=======
25287 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 30820 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
@@ -25296,6 +30829,10 @@ pub mod gpio_v2 {
25296 #[doc = "Very high speed"] 30829 #[doc = "Very high speed"]
25297 pub const VERYHIGHSPEED: Self = Self(0x03); 30830 pub const VERYHIGHSPEED: Self = Self(0x03);
25298 } 30831 }
30832<<<<<<< HEAD
30833=======
30834 #[doc = "DMA interrupt flag clear register (DMA_IFCR)"]
30835>>>>>>> cbbaaa9 (Fix RNG interrupt name)
25299 #[repr(transparent)] 30836 #[repr(transparent)]
25300 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] 30837 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
25301 pub struct Idr(pub u8); 30838 pub struct Idr(pub u8);
@@ -25310,6 +30847,7 @@ pub mod gpio_v2 {
25310 #[repr(transparent)] 30847 #[repr(transparent)]
25311<<<<<<< HEAD 30848<<<<<<< HEAD
25312 #[derive(Copy, Clone, Eq, PartialEq)] 30849 #[derive(Copy, Clone, Eq, PartialEq)]
30850<<<<<<< HEAD
25313 pub struct Idmabsizer(pub u32); 30851 pub struct Idmabsizer(pub u32);
25314 impl Idmabsizer { 30852 impl Idmabsizer {
25315 #[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)."] 30853 #[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)."]
@@ -25374,9 +30912,126 @@ pub mod gpio_v2 {
25374 pub fn ur17(self) -> Reg<regs::Ur17, R> { 30912 pub fn ur17(self) -> Reg<regs::Ur17, R> {
25375 unsafe { Reg::from_ptr(self.0.add(836usize)) } 30913 unsafe { Reg::from_ptr(self.0.add(836usize)) }
25376 } 30914 }
30915=======
30916 pub struct Ifcr(pub u32);
30917 impl Ifcr {
30918 #[doc = "Channel 1 Global interrupt clear"]
30919 pub fn cgif(&self, n: usize) -> bool {
30920 assert!(n < 7usize);
30921 let offs = 0usize + n * 4usize;
30922 let val = (self.0 >> offs) & 0x01;
30923 val != 0
30924 }
30925 #[doc = "Channel 1 Global interrupt clear"]
30926 pub fn set_cgif(&mut self, n: usize, val: bool) {
30927 assert!(n < 7usize);
30928 let offs = 0usize + n * 4usize;
30929 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
30930 }
30931 #[doc = "Channel 1 Transfer Complete clear"]
30932 pub fn ctcif(&self, n: usize) -> bool {
30933 assert!(n < 7usize);
30934 let offs = 1usize + n * 4usize;
30935 let val = (self.0 >> offs) & 0x01;
30936 val != 0
30937 }
30938 #[doc = "Channel 1 Transfer Complete clear"]
30939 pub fn set_ctcif(&mut self, n: usize, val: bool) {
30940 assert!(n < 7usize);
30941 let offs = 1usize + n * 4usize;
30942 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
30943 }
30944 #[doc = "Channel 1 Half Transfer clear"]
30945 pub fn chtif(&self, n: usize) -> bool {
30946 assert!(n < 7usize);
30947 let offs = 2usize + n * 4usize;
30948 let val = (self.0 >> offs) & 0x01;
30949 val != 0
30950 }
30951 #[doc = "Channel 1 Half Transfer clear"]
30952 pub fn set_chtif(&mut self, n: usize, val: bool) {
30953 assert!(n < 7usize);
30954 let offs = 2usize + n * 4usize;
30955 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
30956 }
30957 #[doc = "Channel 1 Transfer Error clear"]
30958 pub fn cteif(&self, n: usize) -> bool {
30959 assert!(n < 7usize);
30960 let offs = 3usize + n * 4usize;
30961 let val = (self.0 >> offs) & 0x01;
30962 val != 0
30963 }
30964 #[doc = "Channel 1 Transfer Error clear"]
30965 pub fn set_cteif(&mut self, n: usize, val: bool) {
30966 assert!(n < 7usize);
30967 let offs = 3usize + n * 4usize;
30968 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
30969 }
30970 }
30971 impl Default for Ifcr {
30972 fn default() -> Ifcr {
30973 Ifcr(0)
30974 }
30975 }
30976 #[doc = "DMA channel 1 number of data register"]
30977 #[repr(transparent)]
30978 #[derive(Copy, Clone, Eq, PartialEq)]
30979 pub struct Ndtr(pub u32);
30980 impl Ndtr {
30981 #[doc = "Number of data to transfer"]
30982 pub const fn ndt(&self) -> u16 {
30983 let val = (self.0 >> 0usize) & 0xffff;
30984 val as u16
30985 }
30986 #[doc = "Number of data to transfer"]
30987 pub fn set_ndt(&mut self, val: u16) {
30988 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
30989 }
30990 }
30991 impl Default for Ndtr {
30992 fn default() -> Ndtr {
30993 Ndtr(0)
30994 }
30995 }
25377 } 30996 }
25378 pub mod regs { 30997}
30998pub mod exti_v1 {
30999 use crate::generic::*;
31000 #[doc = "External interrupt/event controller"]
31001 #[derive(Copy, Clone)]
31002 pub struct Exti(pub *mut u8);
31003 unsafe impl Send for Exti {}
31004 unsafe impl Sync for Exti {}
31005 impl Exti {
31006 #[doc = "Interrupt mask register (EXTI_IMR)"]
31007 pub fn imr(self) -> Reg<regs::Imr, RW> {
31008 unsafe { Reg::from_ptr(self.0.add(0usize)) }
31009 }
31010 #[doc = "Event mask register (EXTI_EMR)"]
31011 pub fn emr(self) -> Reg<regs::Emr, RW> {
31012 unsafe { Reg::from_ptr(self.0.add(4usize)) }
31013 }
31014 #[doc = "Rising Trigger selection register (EXTI_RTSR)"]
31015 pub fn rtsr(self) -> Reg<regs::Rtsr, RW> {
31016 unsafe { Reg::from_ptr(self.0.add(8usize)) }
31017 }
31018 #[doc = "Falling Trigger selection register (EXTI_FTSR)"]
31019 pub fn ftsr(self) -> Reg<regs::Ftsr, RW> {
31020 unsafe { Reg::from_ptr(self.0.add(12usize)) }
31021 }
31022 #[doc = "Software interrupt event register (EXTI_SWIER)"]
31023 pub fn swier(self) -> Reg<regs::Swier, RW> {
31024 unsafe { Reg::from_ptr(self.0.add(16usize)) }
31025 }
31026 #[doc = "Pending register (EXTI_PR)"]
31027 pub fn pr(self) -> Reg<regs::Pr, RW> {
31028 unsafe { Reg::from_ptr(self.0.add(20usize)) }
31029 }
31030>>>>>>> cbbaaa9 (Fix RNG interrupt name)
31031 }
31032 pub mod vals {
25379 use crate::generic::*; 31033 use crate::generic::*;
31034<<<<<<< HEAD
25380 #[doc = "SYSCFG compensation cell value register"] 31035 #[doc = "SYSCFG compensation cell value register"]
25381 #[repr(transparent)] 31036 #[repr(transparent)]
25382 #[derive(Copy, Clone, Eq, PartialEq)] 31037 #[derive(Copy, Clone, Eq, PartialEq)]
@@ -25771,6 +31426,213 @@ pub mod gpio_v2 {
25771 pub fn set_io_hslv(&mut self, val: bool) { 31426 pub fn set_io_hslv(&mut self, val: bool) {
25772 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 31427 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
25773 } 31428 }
31429=======
31430 #[repr(transparent)]
31431 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
31432 pub struct Prw(pub u8);
31433 impl Prw {
31434 #[doc = "Clears pending bit"]
31435 pub const CLEAR: Self = Self(0x01);
31436 }
31437 #[repr(transparent)]
31438 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
31439 pub struct Prr(pub u8);
31440 impl Prr {
31441 #[doc = "No trigger request occurred"]
31442 pub const NOTPENDING: Self = Self(0);
31443 #[doc = "Selected trigger request occurred"]
31444 pub const PENDING: Self = Self(0x01);
31445 }
31446 #[repr(transparent)]
31447 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
31448 pub struct Swierw(pub u8);
31449 impl Swierw {
31450 #[doc = "Generates an interrupt request"]
31451 pub const PEND: Self = Self(0x01);
31452 }
31453 #[repr(transparent)]
31454 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
31455 pub struct Mr(pub u8);
31456 impl Mr {
31457 #[doc = "Interrupt request line is masked"]
31458 pub const MASKED: Self = Self(0);
31459 #[doc = "Interrupt request line is unmasked"]
31460 pub const UNMASKED: Self = Self(0x01);
31461 }
31462 #[repr(transparent)]
31463 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
31464 pub struct Tr(pub u8);
31465 impl Tr {
31466 #[doc = "Falling edge trigger is disabled"]
31467 pub const DISABLED: Self = Self(0);
31468 #[doc = "Falling edge trigger is enabled"]
31469 pub const ENABLED: Self = Self(0x01);
31470 }
31471 }
31472 pub mod regs {
31473 use crate::generic::*;
31474 #[doc = "Rising Trigger selection register (EXTI_RTSR)"]
31475 #[repr(transparent)]
31476 #[derive(Copy, Clone, Eq, PartialEq)]
31477 pub struct Rtsr(pub u32);
31478 impl Rtsr {
31479 #[doc = "Rising trigger event configuration of line 0"]
31480 pub fn tr(&self, n: usize) -> super::vals::Tr {
31481 assert!(n < 23usize);
31482 let offs = 0usize + n * 1usize;
31483 let val = (self.0 >> offs) & 0x01;
31484 super::vals::Tr(val as u8)
31485 }
31486 #[doc = "Rising trigger event configuration of line 0"]
31487 pub fn set_tr(&mut self, n: usize, val: super::vals::Tr) {
31488 assert!(n < 23usize);
31489 let offs = 0usize + n * 1usize;
31490 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
31491 }
31492 }
31493 impl Default for Rtsr {
31494 fn default() -> Rtsr {
31495 Rtsr(0)
31496 }
31497 }
31498 #[doc = "Software interrupt event register (EXTI_SWIER)"]
31499 #[repr(transparent)]
31500 #[derive(Copy, Clone, Eq, PartialEq)]
31501 pub struct Swier(pub u32);
31502 impl Swier {
31503 #[doc = "Software Interrupt on line 0"]
31504 pub fn swier(&self, n: usize) -> bool {
31505 assert!(n < 23usize);
31506 let offs = 0usize + n * 1usize;
31507 let val = (self.0 >> offs) & 0x01;
31508 val != 0
31509 }
31510 #[doc = "Software Interrupt on line 0"]
31511 pub fn set_swier(&mut self, n: usize, val: bool) {
31512 assert!(n < 23usize);
31513 let offs = 0usize + n * 1usize;
31514 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
31515 }
31516 }
31517 impl Default for Swier {
31518 fn default() -> Swier {
31519 Swier(0)
31520 }
31521 }
31522 #[doc = "Event mask register (EXTI_EMR)"]
31523 #[repr(transparent)]
31524 #[derive(Copy, Clone, Eq, PartialEq)]
31525 pub struct Emr(pub u32);
31526 impl Emr {
31527 #[doc = "Event Mask on line 0"]
31528 pub fn mr(&self, n: usize) -> super::vals::Mr {
31529 assert!(n < 23usize);
31530 let offs = 0usize + n * 1usize;
31531 let val = (self.0 >> offs) & 0x01;
31532 super::vals::Mr(val as u8)
31533 }
31534 #[doc = "Event Mask on line 0"]
31535 pub fn set_mr(&mut self, n: usize, val: super::vals::Mr) {
31536 assert!(n < 23usize);
31537 let offs = 0usize + n * 1usize;
31538 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
31539 }
31540 }
31541 impl Default for Emr {
31542 fn default() -> Emr {
31543 Emr(0)
31544 }
31545 }
31546 #[doc = "Pending register (EXTI_PR)"]
31547 #[repr(transparent)]
31548 #[derive(Copy, Clone, Eq, PartialEq)]
31549 pub struct Pr(pub u32);
31550 impl Pr {
31551 #[doc = "Pending bit 0"]
31552 pub fn pr(&self, n: usize) -> bool {
31553 assert!(n < 23usize);
31554 let offs = 0usize + n * 1usize;
31555 let val = (self.0 >> offs) & 0x01;
31556 val != 0
31557 }
31558 #[doc = "Pending bit 0"]
31559 pub fn set_pr(&mut self, n: usize, val: bool) {
31560 assert!(n < 23usize);
31561 let offs = 0usize + n * 1usize;
31562 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
31563 }
31564 }
31565 impl Default for Pr {
31566 fn default() -> Pr {
31567 Pr(0)
31568 }
31569 }
31570 #[doc = "Interrupt mask register (EXTI_IMR)"]
31571 #[repr(transparent)]
31572 #[derive(Copy, Clone, Eq, PartialEq)]
31573 pub struct Imr(pub u32);
31574 impl Imr {
31575 #[doc = "Interrupt Mask on line 0"]
31576 pub fn mr(&self, n: usize) -> super::vals::Mr {
31577 assert!(n < 23usize);
31578 let offs = 0usize + n * 1usize;
31579 let val = (self.0 >> offs) & 0x01;
31580 super::vals::Mr(val as u8)
31581 }
31582 #[doc = "Interrupt Mask on line 0"]
31583 pub fn set_mr(&mut self, n: usize, val: super::vals::Mr) {
31584 assert!(n < 23usize);
31585 let offs = 0usize + n * 1usize;
31586 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
31587 }
31588 }
31589 impl Default for Imr {
31590 fn default() -> Imr {
31591 Imr(0)
31592 }
31593 }
31594 #[doc = "Falling Trigger selection register (EXTI_FTSR)"]
31595 #[repr(transparent)]
31596 #[derive(Copy, Clone, Eq, PartialEq)]
31597 pub struct Ftsr(pub u32);
31598 impl Ftsr {
31599 #[doc = "Falling trigger event configuration of line 0"]
31600 pub fn tr(&self, n: usize) -> super::vals::Tr {
31601 assert!(n < 23usize);
31602 let offs = 0usize + n * 1usize;
31603 let val = (self.0 >> offs) & 0x01;
31604 super::vals::Tr(val as u8)
31605 }
31606 #[doc = "Falling trigger event configuration of line 0"]
31607 pub fn set_tr(&mut self, n: usize, val: super::vals::Tr) {
31608 assert!(n < 23usize);
31609 let offs = 0usize + n * 1usize;
31610 self.0 = (self.0 & !(0x01 << offs)) | (((val.0 as u32) & 0x01) << offs);
31611 }
31612 }
31613 impl Default for Ftsr {
31614 fn default() -> Ftsr {
31615 Ftsr(0)
31616 }
31617 }
31618 }
31619}
31620pub mod syscfg_l4 {
31621 use crate::generic::*;
31622 #[doc = "System configuration controller"]
31623 #[derive(Copy, Clone)]
31624 pub struct Syscfg(pub *mut u8);
31625 unsafe impl Send for Syscfg {}
31626 unsafe impl Sync for Syscfg {}
31627 impl Syscfg {
31628 #[doc = "memory remap register"]
31629 pub fn memrmp(self) -> Reg<regs::Memrmp, RW> {
31630 unsafe { Reg::from_ptr(self.0.add(0usize)) }
31631 }
31632 #[doc = "configuration register 1"]
31633 pub fn cfgr1(self) -> Reg<regs::Cfgr1, RW> {
31634 unsafe { Reg::from_ptr(self.0.add(4usize)) }
31635>>>>>>> cbbaaa9 (Fix RNG interrupt name)
25774 } 31636 }
25775 impl Default for Ur17 { 31637 impl Default for Ur17 {
25776 fn default() -> Ur17 { 31638 fn default() -> Ur17 {
@@ -25778,6 +31640,7 @@ pub mod gpio_v2 {
25778>>>>>>> Better interrupt handling 31640>>>>>>> Better interrupt handling
25779 } 31641 }
25780 } 31642 }
31643<<<<<<< HEAD
25781 #[doc = "compensation cell control/status register"] 31644 #[doc = "compensation cell control/status register"]
25782 #[repr(transparent)] 31645 #[repr(transparent)]
25783 #[derive(Copy, Clone, Eq, PartialEq)] 31646 #[derive(Copy, Clone, Eq, PartialEq)]
@@ -26057,120 +31920,214 @@ pub mod gpio_v2 {
26057 #[doc = "SYSCFG user register 15"] 31920 #[doc = "SYSCFG user register 15"]
26058 pub fn ur15(self) -> Reg<regs::Ur15, R> { 31921 pub fn ur15(self) -> Reg<regs::Ur15, R> {
26059 unsafe { Reg::from_ptr(self.0.add(828usize)) } 31922 unsafe { Reg::from_ptr(self.0.add(828usize)) }
31923=======
31924 #[doc = "SCSR"]
31925 pub fn scsr(self) -> Reg<regs::Scsr, RW> {
31926 unsafe { Reg::from_ptr(self.0.add(24usize)) }
26060 } 31927 }
26061 #[doc = "SYSCFG user register 16"] 31928 #[doc = "CFGR2"]
26062 pub fn ur16(self) -> Reg<regs::Ur16, R> { 31929 pub fn cfgr2(self) -> Reg<regs::Cfgr2, RW> {
26063 unsafe { Reg::from_ptr(self.0.add(832usize)) } 31930 unsafe { Reg::from_ptr(self.0.add(28usize)) }
26064 } 31931 }
26065 #[doc = "SYSCFG user register 17"] 31932 #[doc = "SWPR"]
26066 pub fn ur17(self) -> Reg<regs::Ur17, R> { 31933 pub fn swpr(self) -> Reg<regs::Swpr, W> {
26067 unsafe { Reg::from_ptr(self.0.add(836usize)) } 31934 unsafe { Reg::from_ptr(self.0.add(32usize)) }
31935 }
31936 #[doc = "SKR"]
31937 pub fn skr(self) -> Reg<regs::Skr, W> {
31938 unsafe { Reg::from_ptr(self.0.add(36usize)) }
26068 } 31939 }
26069 } 31940 }
26070 pub mod regs { 31941 pub mod regs {
26071 use crate::generic::*; 31942 use crate::generic::*;
26072 #[doc = "SYSCFG user register 14"] 31943 #[doc = "SCSR"]
26073 #[repr(transparent)] 31944 #[repr(transparent)]
26074 #[derive(Copy, Clone, Eq, PartialEq)] 31945 #[derive(Copy, Clone, Eq, PartialEq)]
26075 pub struct Ur14(pub u32); 31946 pub struct Scsr(pub u32);
26076 impl Ur14 { 31947 impl Scsr {
26077 #[doc = "D1 Stop Reset"] 31948 #[doc = "SRAM2 Erase"]
26078 pub const fn d1stprst(&self) -> bool { 31949 pub const fn sram2er(&self) -> bool {
26079 let val = (self.0 >> 0usize) & 0x01; 31950 let val = (self.0 >> 0usize) & 0x01;
26080 val != 0 31951 val != 0
26081 } 31952 }
26082 #[doc = "D1 Stop Reset"] 31953 #[doc = "SRAM2 Erase"]
26083 pub fn set_d1stprst(&mut self, val: bool) { 31954 pub fn set_sram2er(&mut self, val: bool) {
26084 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 31955 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
26085 } 31956 }
31957 #[doc = "SRAM2 busy by erase operation"]
31958 pub const fn sram2bsy(&self) -> bool {
31959 let val = (self.0 >> 1usize) & 0x01;
31960 val != 0
31961 }
31962 #[doc = "SRAM2 busy by erase operation"]
31963 pub fn set_sram2bsy(&mut self, val: bool) {
31964 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
31965 }
26086 } 31966 }
26087 impl Default for Ur14 { 31967 impl Default for Scsr {
26088 fn default() -> Ur14 { 31968 fn default() -> Scsr {
26089 Ur14(0) 31969 Scsr(0)
26090 } 31970 }
26091 } 31971 }
26092 #[doc = "SYSCFG user register 7"] 31972 #[doc = "SWPR"]
26093 #[repr(transparent)] 31973 #[repr(transparent)]
26094 #[derive(Copy, Clone, Eq, PartialEq)] 31974 #[derive(Copy, Clone, Eq, PartialEq)]
26095 pub struct Ur7(pub u32); 31975 pub struct Swpr(pub u32);
26096 impl Ur7 { 31976 impl Swpr {
26097 #[doc = "Secured area start address for bank 1"] 31977 #[doc = "SRAWM2 write protection."]
26098 pub const fn sa_beg_1(&self) -> u16 { 31978 pub fn pwp(&self, n: usize) -> bool {
26099 let val = (self.0 >> 0usize) & 0x0fff; 31979 assert!(n < 32usize);
26100 val as u16 31980 let offs = 0usize + n * 1usize;
31981 let val = (self.0 >> offs) & 0x01;
31982 val != 0
26101 } 31983 }
26102 #[doc = "Secured area start address for bank 1"] 31984 #[doc = "SRAWM2 write protection."]
26103 pub fn set_sa_beg_1(&mut self, val: u16) { 31985 pub fn set_pwp(&mut self, n: usize, val: bool) {
26104 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize); 31986 assert!(n < 32usize);
31987 let offs = 0usize + n * 1usize;
31988 self.0 = (self.0 & !(0x01 << offs)) | (((val as u32) & 0x01) << offs);
26105 } 31989 }
26106 #[doc = "Secured area end address for bank 1"] 31990 }
26107 pub const fn sa_end_1(&self) -> u16 { 31991 impl Default for Swpr {
26108 let val = (self.0 >> 16usize) & 0x0fff; 31992 fn default() -> Swpr {
26109 val as u16 31993 Swpr(0)
26110 } 31994 }
26111 #[doc = "Secured area end address for bank 1"] 31995>>>>>>> cbbaaa9 (Fix RNG interrupt name)
26112 pub fn set_sa_end_1(&mut self, val: u16) { 31996 }
26113 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize); 31997 #[doc = "memory remap register"]
31998 #[repr(transparent)]
31999 #[derive(Copy, Clone, Eq, PartialEq)]
32000 pub struct Memrmp(pub u32);
32001 impl Memrmp {
32002 #[doc = "Memory mapping selection"]
32003 pub const fn mem_mode(&self) -> u8 {
32004 let val = (self.0 >> 0usize) & 0x07;
32005 val as u8
32006 }
32007 #[doc = "Memory mapping selection"]
32008 pub fn set_mem_mode(&mut self, val: u8) {
32009 self.0 = (self.0 & !(0x07 << 0usize)) | (((val as u32) & 0x07) << 0usize);
32010 }
32011 #[doc = "QUADSPI memory mapping swap"]
32012 pub const fn qfs(&self) -> bool {
32013 let val = (self.0 >> 3usize) & 0x01;
32014 val != 0
32015 }
32016 #[doc = "QUADSPI memory mapping swap"]
32017 pub fn set_qfs(&mut self, val: bool) {
32018 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
32019 }
32020 #[doc = "Flash Bank mode selection"]
32021 pub const fn fb_mode(&self) -> bool {
32022 let val = (self.0 >> 8usize) & 0x01;
32023 val != 0
32024 }
32025 #[doc = "Flash Bank mode selection"]
32026 pub fn set_fb_mode(&mut self, val: bool) {
32027 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
26114 } 32028 }
26115 } 32029 }
26116 impl Default for Ur7 { 32030 impl Default for Memrmp {
26117 fn default() -> Ur7 { 32031 fn default() -> Memrmp {
26118 Ur7(0) 32032 Memrmp(0)
26119 } 32033 }
26120 } 32034 }
26121 #[doc = "SYSCFG user register 11"] 32035 #[doc = "external interrupt configuration register 4"]
26122 #[repr(transparent)] 32036 #[repr(transparent)]
26123 #[derive(Copy, Clone, Eq, PartialEq)] 32037 #[derive(Copy, Clone, Eq, PartialEq)]
26124 pub struct Ur11(pub u32); 32038 pub struct Exticr(pub u32);
26125 impl Ur11 { 32039 impl Exticr {
26126 #[doc = "Secured area end address for bank 2"] 32040 #[doc = "EXTI12 configuration bits"]
26127 pub const fn sa_end_2(&self) -> u16 { 32041 pub fn exti(&self, n: usize) -> u8 {
26128 let val = (self.0 >> 0usize) & 0x0fff; 32042 assert!(n < 4usize);
26129 val as u16 32043 let offs = 0usize + n * 4usize;
32044 let val = (self.0 >> offs) & 0x0f;
32045 val as u8
26130 } 32046 }
26131 #[doc = "Secured area end address for bank 2"] 32047 #[doc = "EXTI12 configuration bits"]
26132 pub fn set_sa_end_2(&mut self, val: u16) { 32048 pub fn set_exti(&mut self, n: usize, val: u8) {
26133 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize); 32049 assert!(n < 4usize);
32050 let offs = 0usize + n * 4usize;
32051 self.0 = (self.0 & !(0x0f << offs)) | (((val as u32) & 0x0f) << offs);
26134 } 32052 }
26135 #[doc = "Independent Watchdog 1 mode"] 32053 }
26136 pub const fn iwdg1m(&self) -> bool { 32054 impl Default for Exticr {
26137 let val = (self.0 >> 16usize) & 0x01; 32055 fn default() -> Exticr {
26138 val != 0 32056 Exticr(0)
26139 } 32057 }
26140 #[doc = "Independent Watchdog 1 mode"] 32058 }
26141 pub fn set_iwdg1m(&mut self, val: bool) { 32059 #[doc = "SKR"]
26142 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 32060 #[repr(transparent)]
32061 #[derive(Copy, Clone, Eq, PartialEq)]
32062 pub struct Skr(pub u32);
32063 impl Skr {
32064 #[doc = "SRAM2 write protection key for software erase"]
32065 pub const fn key(&self) -> u8 {
32066 let val = (self.0 >> 0usize) & 0xff;
32067 val as u8
32068 }
32069 #[doc = "SRAM2 write protection key for software erase"]
32070 pub fn set_key(&mut self, val: u8) {
32071 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
26143 } 32072 }
26144 } 32073 }
26145 impl Default for Ur11 { 32074 impl Default for Skr {
26146 fn default() -> Ur11 { 32075 fn default() -> Skr {
26147 Ur11(0) 32076 Skr(0)
26148 } 32077 }
26149 } 32078 }
26150 #[doc = "SYSCFG user register 6"] 32079 #[doc = "CFGR2"]
26151 #[repr(transparent)] 32080 #[repr(transparent)]
26152 #[derive(Copy, Clone, Eq, PartialEq)] 32081 #[derive(Copy, Clone, Eq, PartialEq)]
26153 pub struct Ur6(pub u32); 32082 pub struct Cfgr2(pub u32);
26154 impl Ur6 { 32083 impl Cfgr2 {
26155 #[doc = "Protected area start address for bank 1"] 32084 #[doc = "Cortex LOCKUP (Hardfault) output enable bit"]
26156 pub const fn pa_beg_1(&self) -> u16 { 32085 pub const fn cll(&self) -> bool {
26157 let val = (self.0 >> 0usize) & 0x0fff; 32086 let val = (self.0 >> 0usize) & 0x01;
26158 val as u16 32087 val != 0
26159 } 32088 }
26160 #[doc = "Protected area start address for bank 1"] 32089 #[doc = "Cortex LOCKUP (Hardfault) output enable bit"]
26161 pub fn set_pa_beg_1(&mut self, val: u16) { 32090 pub fn set_cll(&mut self, val: bool) {
26162 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize); 32091 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
26163 } 32092 }
26164 #[doc = "Protected area end address for bank 1"] 32093 #[doc = "SRAM2 parity lock bit"]
26165 pub const fn pa_end_1(&self) -> u16 { 32094 pub const fn spl(&self) -> bool {
26166 let val = (self.0 >> 16usize) & 0x0fff; 32095 let val = (self.0 >> 1usize) & 0x01;
26167 val as u16 32096 val != 0
26168 } 32097 }
26169 #[doc = "Protected area end address for bank 1"] 32098 #[doc = "SRAM2 parity lock bit"]
26170 pub fn set_pa_end_1(&mut self, val: u16) { 32099 pub fn set_spl(&mut self, val: bool) {
26171 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize); 32100 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
32101 }
32102 #[doc = "PVD lock enable bit"]
32103 pub const fn pvdl(&self) -> bool {
32104 let val = (self.0 >> 2usize) & 0x01;
32105 val != 0
32106 }
32107 #[doc = "PVD lock enable bit"]
32108 pub fn set_pvdl(&mut self, val: bool) {
32109 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
32110 }
32111 #[doc = "ECC Lock"]
32112 pub const fn eccl(&self) -> bool {
32113 let val = (self.0 >> 3usize) & 0x01;
32114 val != 0
32115 }
32116 #[doc = "ECC Lock"]
32117 pub fn set_eccl(&mut self, val: bool) {
32118 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
32119 }
32120 #[doc = "SRAM2 parity error flag"]
32121 pub const fn spf(&self) -> bool {
32122 let val = (self.0 >> 8usize) & 0x01;
32123 val != 0
32124 }
32125 #[doc = "SRAM2 parity error flag"]
32126 pub fn set_spf(&mut self, val: bool) {
32127 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
26172 } 32128 }
26173 } 32129 }
32130<<<<<<< HEAD
26174 impl Default for Ur6 { 32131 impl Default for Ur6 {
26175 fn default() -> Ur6 { 32132 fn default() -> Ur6 {
26176 Ur6(0) 32133 Ur6(0)
@@ -26233,127 +32190,264 @@ pub mod gpio_v2 {
26233 pub const fn pa_end_2(&self) -> u16 { 32190 pub const fn pa_end_2(&self) -> u16 {
26234 let val = (self.0 >> 0usize) & 0x0fff; 32191 let val = (self.0 >> 0usize) & 0x0fff;
26235 val as u16 32192 val as u16
32193=======
32194 impl Default for Cfgr2 {
32195 fn default() -> Cfgr2 {
32196 Cfgr2(0)
26236 } 32197 }
26237 #[doc = "Protected area end address for bank 2"] 32198 }
26238 pub fn set_pa_end_2(&mut self, val: u16) { 32199 #[doc = "configuration register 1"]
26239 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize); 32200 #[repr(transparent)]
32201 #[derive(Copy, Clone, Eq, PartialEq)]
32202 pub struct Cfgr1(pub u32);
32203 impl Cfgr1 {
32204 #[doc = "Firewall disable"]
32205 pub const fn fwdis(&self) -> bool {
32206 let val = (self.0 >> 0usize) & 0x01;
32207 val != 0
26240 } 32208 }
26241 #[doc = "Secured area start address for bank 2"] 32209 #[doc = "Firewall disable"]
26242 pub const fn sa_beg_2(&self) -> u16 { 32210 pub fn set_fwdis(&mut self, val: bool) {
26243 let val = (self.0 >> 16usize) & 0x0fff; 32211 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
26244 val as u16
26245 } 32212 }
26246 #[doc = "Secured area start address for bank 2"] 32213 #[doc = "I/O analog switch voltage booster enable"]
26247 pub fn set_sa_beg_2(&mut self, val: u16) { 32214 pub const fn boosten(&self) -> bool {
26248 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize); 32215 let val = (self.0 >> 8usize) & 0x01;
32216 val != 0
26249 } 32217 }
26250 } 32218 #[doc = "I/O analog switch voltage booster enable"]
26251 impl Default for Ur10 { 32219 pub fn set_boosten(&mut self, val: bool) {
26252 fn default() -> Ur10 { 32220 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
26253 Ur10(0)
26254 } 32221 }
26255 } 32222 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB6"]
26256 #[doc = "SYSCFG user register 15"] 32223 pub const fn i2c_pb6_fmp(&self) -> bool {
26257 #[repr(transparent)]
26258 #[derive(Copy, Clone, Eq, PartialEq)]
26259 pub struct Ur15(pub u32);
26260 impl Ur15 {
26261 #[doc = "Freeze independent watchdog in Standby mode"]
26262 pub const fn fziwdgstb(&self) -> bool {
26263 let val = (self.0 >> 16usize) & 0x01; 32224 let val = (self.0 >> 16usize) & 0x01;
26264 val != 0 32225 val != 0
26265 } 32226 }
26266 #[doc = "Freeze independent watchdog in Standby mode"] 32227 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB6"]
26267 pub fn set_fziwdgstb(&mut self, val: bool) { 32228 pub fn set_i2c_pb6_fmp(&mut self, val: bool) {
26268 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 32229 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
26269 } 32230 }
26270 } 32231 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB7"]
26271 impl Default for Ur15 { 32232 pub const fn i2c_pb7_fmp(&self) -> bool {
26272 fn default() -> Ur15 { 32233 let val = (self.0 >> 17usize) & 0x01;
26273 Ur15(0) 32234 val != 0
26274 } 32235 }
26275 } 32236 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB7"]
26276 #[doc = "external interrupt configuration register 2"] 32237 pub fn set_i2c_pb7_fmp(&mut self, val: bool) {
26277 #[repr(transparent)] 32238 self.0 = (self.0 & !(0x01 << 17usize)) | (((val as u32) & 0x01) << 17usize);
26278 #[derive(Copy, Clone, Eq, PartialEq)]
26279 pub struct Exticr(pub u32);
26280 impl Exticr {
26281 #[doc = "EXTI x configuration (x = 4 to 7)"]
26282 pub fn exti(&self, n: usize) -> u8 {
26283 assert!(n < 4usize);
26284 let offs = 0usize + n * 4usize;
26285 let val = (self.0 >> offs) & 0x0f;
26286 val as u8
26287 } 32239 }
26288 #[doc = "EXTI x configuration (x = 4 to 7)"] 32240 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB8"]
26289 pub fn set_exti(&mut self, n: usize, val: u8) { 32241 pub const fn i2c_pb8_fmp(&self) -> bool {
26290 assert!(n < 4usize); 32242 let val = (self.0 >> 18usize) & 0x01;
26291 let offs = 0usize + n * 4usize; 32243 val != 0
26292 self.0 = (self.0 & !(0x0f << offs)) | (((val as u32) & 0x0f) << offs); 32244>>>>>>> cbbaaa9 (Fix RNG interrupt name)
26293 } 32245 }
26294 } 32246 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB8"]
26295 impl Default for Exticr { 32247 pub fn set_i2c_pb8_fmp(&mut self, val: bool) {
26296 fn default() -> Exticr { 32248 self.0 = (self.0 & !(0x01 << 18usize)) | (((val as u32) & 0x01) << 18usize);
26297 Exticr(0)
26298 } 32249 }
26299 } 32250 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB9"]
26300 #[doc = "compensation cell control/status register"] 32251 pub const fn i2c_pb9_fmp(&self) -> bool {
26301 #[repr(transparent)] 32252 let val = (self.0 >> 19usize) & 0x01;
26302 #[derive(Copy, Clone, Eq, PartialEq)]
26303 pub struct Cccsr(pub u32);
26304 impl Cccsr {
26305 #[doc = "enable"]
26306 pub const fn en(&self) -> bool {
26307 let val = (self.0 >> 0usize) & 0x01;
26308 val != 0 32253 val != 0
26309 } 32254 }
26310 #[doc = "enable"] 32255 #[doc = "Fast-mode Plus (Fm+) driving capability activation on PB9"]
26311 pub fn set_en(&mut self, val: bool) { 32256 pub fn set_i2c_pb9_fmp(&mut self, val: bool) {
26312 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 32257 self.0 = (self.0 & !(0x01 << 19usize)) | (((val as u32) & 0x01) << 19usize);
26313 } 32258 }
26314 #[doc = "Code selection"] 32259 #[doc = "I2C1 Fast-mode Plus driving capability activation"]
26315 pub const fn cs(&self) -> bool { 32260 pub const fn i2c1_fmp(&self) -> bool {
26316 let val = (self.0 >> 1usize) & 0x01; 32261 let val = (self.0 >> 20usize) & 0x01;
26317 val != 0 32262 val != 0
26318 } 32263 }
26319 #[doc = "Code selection"] 32264 #[doc = "I2C1 Fast-mode Plus driving capability activation"]
26320 pub fn set_cs(&mut self, val: bool) { 32265 pub fn set_i2c1_fmp(&mut self, val: bool) {
26321 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 32266 self.0 = (self.0 & !(0x01 << 20usize)) | (((val as u32) & 0x01) << 20usize);
26322 } 32267 }
26323 #[doc = "Compensation cell ready flag"] 32268 #[doc = "I2C2 Fast-mode Plus driving capability activation"]
26324 pub const fn ready(&self) -> bool { 32269 pub const fn i2c2_fmp(&self) -> bool {
26325 let val = (self.0 >> 8usize) & 0x01; 32270 let val = (self.0 >> 21usize) & 0x01;
26326 val != 0 32271 val != 0
26327 } 32272 }
26328 #[doc = "Compensation cell ready flag"] 32273 #[doc = "I2C2 Fast-mode Plus driving capability activation"]
26329 pub fn set_ready(&mut self, val: bool) { 32274 pub fn set_i2c2_fmp(&mut self, val: bool) {
26330 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 32275 self.0 = (self.0 & !(0x01 << 21usize)) | (((val as u32) & 0x01) << 21usize);
26331 } 32276 }
26332 #[doc = "High-speed at low-voltage"] 32277 #[doc = "I2C3 Fast-mode Plus driving capability activation"]
26333 pub const fn hslv(&self) -> bool { 32278 pub const fn i2c3_fmp(&self) -> bool {
26334 let val = (self.0 >> 16usize) & 0x01; 32279 let val = (self.0 >> 22usize) & 0x01;
26335 val != 0 32280 val != 0
26336 } 32281 }
26337 #[doc = "High-speed at low-voltage"] 32282 #[doc = "I2C3 Fast-mode Plus driving capability activation"]
26338 pub fn set_hslv(&mut self, val: bool) { 32283 pub fn set_i2c3_fmp(&mut self, val: bool) {
26339 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 32284 self.0 = (self.0 & !(0x01 << 22usize)) | (((val as u32) & 0x01) << 22usize);
32285 }
32286 #[doc = "Floating Point Unit interrupts enable bits"]
32287 pub const fn fpu_ie(&self) -> u8 {
32288 let val = (self.0 >> 26usize) & 0x3f;
32289 val as u8
32290 }
32291 #[doc = "Floating Point Unit interrupts enable bits"]
32292 pub fn set_fpu_ie(&mut self, val: u8) {
32293 self.0 = (self.0 & !(0x3f << 26usize)) | (((val as u32) & 0x3f) << 26usize);
26340 } 32294 }
26341 } 32295 }
26342 impl Default for Cccsr { 32296 impl Default for Cfgr1 {
26343 fn default() -> Cccsr { 32297 fn default() -> Cfgr1 {
26344 Cccsr(0) 32298 Cfgr1(0)
26345 } 32299 }
26346 } 32300 }
32301 }
32302}
32303pub mod syscfg_h7 {
32304 use crate::generic::*;
32305 #[doc = "System configuration controller"]
32306 #[derive(Copy, Clone)]
32307 pub struct Syscfg(pub *mut u8);
32308 unsafe impl Send for Syscfg {}
32309 unsafe impl Sync for Syscfg {}
32310 impl Syscfg {
32311 #[doc = "peripheral mode configuration register"]
32312 pub fn pmcr(self) -> Reg<regs::Pmcr, RW> {
32313 unsafe { Reg::from_ptr(self.0.add(4usize)) }
32314 }
32315 #[doc = "external interrupt configuration register 1"]
32316 pub fn exticr(self, n: usize) -> Reg<regs::Exticr, RW> {
32317 assert!(n < 4usize);
32318 unsafe { Reg::from_ptr(self.0.add(8usize + n * 4usize)) }
32319 }
32320 #[doc = "compensation cell control/status register"]
32321 pub fn cccsr(self) -> Reg<regs::Cccsr, RW> {
32322 unsafe { Reg::from_ptr(self.0.add(32usize)) }
32323 }
32324 #[doc = "SYSCFG compensation cell value register"]
32325 pub fn ccvr(self) -> Reg<regs::Ccvr, R> {
32326 unsafe { Reg::from_ptr(self.0.add(36usize)) }
32327 }
32328 #[doc = "SYSCFG compensation cell code register"]
32329 pub fn cccr(self) -> Reg<regs::Cccr, RW> {
32330 unsafe { Reg::from_ptr(self.0.add(40usize)) }
32331 }
32332 #[doc = "SYSCFG power control register"]
32333 pub fn pwrcr(self) -> Reg<regs::Pwrcr, RW> {
32334 unsafe { Reg::from_ptr(self.0.add(44usize)) }
32335 }
26347 #[doc = "SYSCFG package register"] 32336 #[doc = "SYSCFG package register"]
32337 pub fn pkgr(self) -> Reg<regs::Pkgr, R> {
32338 unsafe { Reg::from_ptr(self.0.add(292usize)) }
32339 }
32340 #[doc = "SYSCFG user register 0"]
32341 pub fn ur0(self) -> Reg<regs::Ur0, R> {
32342 unsafe { Reg::from_ptr(self.0.add(768usize)) }
32343 }
32344 #[doc = "SYSCFG user register 2"]
32345 pub fn ur2(self) -> Reg<regs::Ur2, RW> {
32346 unsafe { Reg::from_ptr(self.0.add(776usize)) }
32347 }
32348 #[doc = "SYSCFG user register 3"]
32349 pub fn ur3(self) -> Reg<regs::Ur3, RW> {
32350 unsafe { Reg::from_ptr(self.0.add(780usize)) }
32351 }
32352 #[doc = "SYSCFG user register 4"]
32353 pub fn ur4(self) -> Reg<regs::Ur4, R> {
32354 unsafe { Reg::from_ptr(self.0.add(784usize)) }
32355 }
32356 #[doc = "SYSCFG user register 5"]
32357 pub fn ur5(self) -> Reg<regs::Ur5, R> {
32358 unsafe { Reg::from_ptr(self.0.add(788usize)) }
32359 }
32360 #[doc = "SYSCFG user register 6"]
32361 pub fn ur6(self) -> Reg<regs::Ur6, R> {
32362 unsafe { Reg::from_ptr(self.0.add(792usize)) }
32363 }
32364 #[doc = "SYSCFG user register 7"]
32365 pub fn ur7(self) -> Reg<regs::Ur7, R> {
32366 unsafe { Reg::from_ptr(self.0.add(796usize)) }
32367 }
32368 #[doc = "SYSCFG user register 8"]
32369 pub fn ur8(self) -> Reg<regs::Ur8, R> {
32370 unsafe { Reg::from_ptr(self.0.add(800usize)) }
32371 }
32372 #[doc = "SYSCFG user register 9"]
32373 pub fn ur9(self) -> Reg<regs::Ur9, R> {
32374 unsafe { Reg::from_ptr(self.0.add(804usize)) }
32375 }
32376 #[doc = "SYSCFG user register 10"]
32377 pub fn ur10(self) -> Reg<regs::Ur10, R> {
32378 unsafe { Reg::from_ptr(self.0.add(808usize)) }
32379 }
32380 #[doc = "SYSCFG user register 11"]
32381 pub fn ur11(self) -> Reg<regs::Ur11, R> {
32382 unsafe { Reg::from_ptr(self.0.add(812usize)) }
32383 }
32384 #[doc = "SYSCFG user register 12"]
32385 pub fn ur12(self) -> Reg<regs::Ur12, R> {
32386 unsafe { Reg::from_ptr(self.0.add(816usize)) }
32387 }
32388 #[doc = "SYSCFG user register 13"]
32389 pub fn ur13(self) -> Reg<regs::Ur13, R> {
32390 unsafe { Reg::from_ptr(self.0.add(820usize)) }
32391 }
32392 #[doc = "SYSCFG user register 14"]
32393 pub fn ur14(self) -> Reg<regs::Ur14, RW> {
32394 unsafe { Reg::from_ptr(self.0.add(824usize)) }
32395 }
32396 #[doc = "SYSCFG user register 15"]
32397 pub fn ur15(self) -> Reg<regs::Ur15, R> {
32398 unsafe { Reg::from_ptr(self.0.add(828usize)) }
32399 }
32400 #[doc = "SYSCFG user register 16"]
32401 pub fn ur16(self) -> Reg<regs::Ur16, R> {
32402 unsafe { Reg::from_ptr(self.0.add(832usize)) }
32403 }
32404 #[doc = "SYSCFG user register 17"]
32405 pub fn ur17(self) -> Reg<regs::Ur17, R> {
32406 unsafe { Reg::from_ptr(self.0.add(836usize)) }
32407 }
32408 }
32409 pub mod regs {
32410 use crate::generic::*;
32411 #[doc = "SYSCFG user register 13"]
26348 #[repr(transparent)] 32412 #[repr(transparent)]
26349 #[derive(Copy, Clone, Eq, PartialEq)] 32413 #[derive(Copy, Clone, Eq, PartialEq)]
26350 pub struct Pkgr(pub u32); 32414 pub struct Ur13(pub u32);
26351 impl Pkgr { 32415 impl Ur13 {
26352 #[doc = "Package"] 32416 #[doc = "Secured DTCM RAM Size"]
26353 pub const fn pkg(&self) -> u8 { 32417 pub const fn sdrs(&self) -> u8 {
26354 let val = (self.0 >> 0usize) & 0x0f; 32418 let val = (self.0 >> 0usize) & 0x03;
26355 val as u8 32419 val as u8
26356 } 32420 }
32421 #[doc = "Secured DTCM RAM Size"]
32422 pub fn set_sdrs(&mut self, val: u8) {
32423 self.0 = (self.0 & !(0x03 << 0usize)) | (((val as u32) & 0x03) << 0usize);
32424 }
32425 #[doc = "D1 Standby reset"]
32426 pub const fn d1sbrst(&self) -> bool {
32427 let val = (self.0 >> 16usize) & 0x01;
32428 val != 0
32429 }
32430 #[doc = "D1 Standby reset"]
32431 pub fn set_d1sbrst(&mut self, val: bool) {
32432 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
32433 }
32434 }
32435 impl Default for Ur13 {
32436 fn default() -> Ur13 {
32437 Ur13(0)
32438 }
32439 }
32440 #[doc = "SYSCFG user register 17"]
32441 #[repr(transparent)]
32442 #[derive(Copy, Clone, Eq, PartialEq)]
32443 pub struct Ur17(pub u32);
32444 impl Ur17 {
32445 #[doc = "I/O high speed / low voltage"]
32446 pub const fn io_hslv(&self) -> bool {
32447 let val = (self.0 >> 0usize) & 0x01;
32448 val != 0
32449 }
32450<<<<<<< HEAD
26357 #[doc = "Package"] 32451 #[doc = "Package"]
26358 pub fn set_pkg(&mut self, val: u8) { 32452 pub fn set_pkg(&mut self, val: u8) {
26359 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize); 32453 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
@@ -26584,6 +32678,16 @@ pub mod gpio_v2 {
26584 #[doc = "SDMMC_CK stopped in Voltage switch procedure. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 32678 #[doc = "SDMMC_CK stopped in Voltage switch procedure. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
26585 pub fn set_ckstop(&mut self, val: bool) { 32679 pub fn set_ckstop(&mut self, val: bool) {
26586 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize); 32680 self.0 = (self.0 & !(0x01 << 26usize)) | (((val as u32) & 0x01) << 26usize);
32681=======
32682 #[doc = "I/O high speed / low voltage"]
32683 pub fn set_io_hslv(&mut self, val: bool) {
32684 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
32685 }
32686 }
32687 impl Default for Ur17 {
32688 fn default() -> Ur17 {
32689 Ur17(0)
32690>>>>>>> cbbaaa9 (Fix RNG interrupt name)
26587 } 32691 }
26588 #[doc = "IDMA transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."] 32692 #[doc = "IDMA transfer error. Interrupt flag is cleared by writing corresponding interrupt clear bit in SDMMC_ICR."]
26589 pub const fn idmate(&self) -> bool { 32693 pub const fn idmate(&self) -> bool {
@@ -26609,6 +32713,7 @@ pub mod gpio_v2 {
26609 Star(0) 32713 Star(0)
26610 } 32714 }
26611 } 32715 }
32716<<<<<<< HEAD
26612 #[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."] 32717 #[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."]
26613 #[repr(transparent)] 32718 #[repr(transparent)]
26614 #[derive(Copy, Clone, Eq, PartialEq)] 32719 #[derive(Copy, Clone, Eq, PartialEq)]
@@ -26635,6 +32740,74 @@ pub mod gpio_v2 {
26635 let offs = 1usize + n * 1usize; 32740 let offs = 1usize + n * 1usize;
26636 let val = (self.0 >> offs) & 0x01; 32741 let val = (self.0 >> offs) & 0x01;
26637======= 32742=======
32743=======
32744 #[doc = "SYSCFG user register 4"]
32745 #[repr(transparent)]
32746 #[derive(Copy, Clone, Eq, PartialEq)]
32747 pub struct Ur4(pub u32);
32748 impl Ur4 {
32749 #[doc = "Mass Erase Protected Area Disabled for bank 1"]
32750 pub const fn mepad_1(&self) -> bool {
32751 let val = (self.0 >> 16usize) & 0x01;
32752 val != 0
32753 }
32754 #[doc = "Mass Erase Protected Area Disabled for bank 1"]
32755 pub fn set_mepad_1(&mut self, val: bool) {
32756 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
32757 }
32758 }
32759 impl Default for Ur4 {
32760 fn default() -> Ur4 {
32761 Ur4(0)
32762 }
32763 }
32764 #[doc = "compensation cell control/status register"]
32765 #[repr(transparent)]
32766 #[derive(Copy, Clone, Eq, PartialEq)]
32767 pub struct Cccsr(pub u32);
32768 impl Cccsr {
32769 #[doc = "enable"]
32770 pub const fn en(&self) -> bool {
32771 let val = (self.0 >> 0usize) & 0x01;
32772 val != 0
32773 }
32774 #[doc = "enable"]
32775 pub fn set_en(&mut self, val: bool) {
32776 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
32777 }
32778 #[doc = "Code selection"]
32779 pub const fn cs(&self) -> bool {
32780 let val = (self.0 >> 1usize) & 0x01;
32781 val != 0
32782 }
32783 #[doc = "Code selection"]
32784 pub fn set_cs(&mut self, val: bool) {
32785 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
32786 }
32787 #[doc = "Compensation cell ready flag"]
32788 pub const fn ready(&self) -> bool {
32789 let val = (self.0 >> 8usize) & 0x01;
32790 val != 0
32791 }
32792 #[doc = "Compensation cell ready flag"]
32793 pub fn set_ready(&mut self, val: bool) {
32794 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
32795 }
32796 #[doc = "High-speed at low-voltage"]
32797 pub const fn hslv(&self) -> bool {
32798 let val = (self.0 >> 16usize) & 0x01;
32799 val != 0
32800 }
32801 #[doc = "High-speed at low-voltage"]
32802 pub fn set_hslv(&mut self, val: bool) {
32803 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
32804 }
32805 }
32806 impl Default for Cccsr {
32807 fn default() -> Cccsr {
32808 Cccsr(0)
32809 }
32810>>>>>>> cbbaaa9 (Fix RNG interrupt name)
26638 } 32811 }
26639 #[doc = "SYSCFG compensation cell value register"] 32812 #[doc = "SYSCFG compensation cell value register"]
26640 #[repr(transparent)] 32813 #[repr(transparent)]
@@ -26694,24 +32867,177 @@ pub mod gpio_v2 {
26694 Ur9(0) 32867 Ur9(0)
26695 } 32868 }
26696 } 32869 }
26697 #[doc = "SYSCFG user register 4"] 32870 #[doc = "SYSCFG user register 3"]
26698 #[repr(transparent)] 32871 #[repr(transparent)]
26699 #[derive(Copy, Clone, Eq, PartialEq)] 32872 #[derive(Copy, Clone, Eq, PartialEq)]
26700 pub struct Ur4(pub u32); 32873 pub struct Ur3(pub u32);
26701 impl Ur4 { 32874 impl Ur3 {
26702 #[doc = "Mass Erase Protected Area Disabled for bank 1"] 32875 #[doc = "Boot Address 1"]
26703 pub const fn mepad_1(&self) -> bool { 32876 pub const fn boot_add1(&self) -> u16 {
32877 let val = (self.0 >> 16usize) & 0xffff;
32878 val as u16
32879 }
32880 #[doc = "Boot Address 1"]
32881 pub fn set_boot_add1(&mut self, val: u16) {
32882 self.0 = (self.0 & !(0xffff << 16usize)) | (((val as u32) & 0xffff) << 16usize);
32883 }
32884 }
32885 impl Default for Ur3 {
32886 fn default() -> Ur3 {
32887 Ur3(0)
32888 }
32889 }
32890 #[doc = "SYSCFG user register 11"]
32891 #[repr(transparent)]
32892 #[derive(Copy, Clone, Eq, PartialEq)]
32893 pub struct Ur11(pub u32);
32894 impl Ur11 {
32895 #[doc = "Secured area end address for bank 2"]
32896 pub const fn sa_end_2(&self) -> u16 {
32897 let val = (self.0 >> 0usize) & 0x0fff;
32898 val as u16
32899 }
32900 #[doc = "Secured area end address for bank 2"]
32901 pub fn set_sa_end_2(&mut self, val: u16) {
32902 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize);
32903 }
32904 #[doc = "Independent Watchdog 1 mode"]
32905 pub const fn iwdg1m(&self) -> bool {
26704 let val = (self.0 >> 16usize) & 0x01; 32906 let val = (self.0 >> 16usize) & 0x01;
26705 val != 0 32907 val != 0
26706 } 32908 }
26707 #[doc = "Mass Erase Protected Area Disabled for bank 1"] 32909 #[doc = "Independent Watchdog 1 mode"]
26708 pub fn set_mepad_1(&mut self, val: bool) { 32910 pub fn set_iwdg1m(&mut self, val: bool) {
26709 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 32911 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
26710 } 32912 }
26711 } 32913 }
26712 impl Default for Ur4 { 32914 impl Default for Ur11 {
26713 fn default() -> Ur4 { 32915 fn default() -> Ur11 {
26714 Ur4(0) 32916 Ur11(0)
32917 }
32918 }
32919 #[doc = "SYSCFG user register 7"]
32920 #[repr(transparent)]
32921 #[derive(Copy, Clone, Eq, PartialEq)]
32922<<<<<<< HEAD
32923 pub struct Pmcr(pub u32);
32924 impl Pmcr {
32925 #[doc = "I2C1 Fm+"]
32926 pub const fn i2c1fmp(&self) -> bool {
32927 let val = (self.0 >> 0usize) & 0x01;
32928 val != 0
32929 }
32930 #[doc = "I2C1 Fm+"]
32931 pub fn set_i2c1fmp(&mut self, val: bool) {
32932 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
32933 }
32934 #[doc = "I2C2 Fm+"]
32935 pub const fn i2c2fmp(&self) -> bool {
32936 let val = (self.0 >> 1usize) & 0x01;
32937 val != 0
32938 }
32939 #[doc = "I2C2 Fm+"]
32940 pub fn set_i2c2fmp(&mut self, val: bool) {
32941 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
32942 }
32943 #[doc = "I2C3 Fm+"]
32944 pub const fn i2c3fmp(&self) -> bool {
32945 let val = (self.0 >> 2usize) & 0x01;
32946 val != 0
32947 }
32948 #[doc = "I2C3 Fm+"]
32949 pub fn set_i2c3fmp(&mut self, val: bool) {
32950 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
32951 }
32952 #[doc = "I2C4 Fm+"]
32953 pub const fn i2c4fmp(&self) -> bool {
32954 let val = (self.0 >> 3usize) & 0x01;
32955 val != 0
32956 }
32957 #[doc = "I2C4 Fm+"]
32958 pub fn set_i2c4fmp(&mut self, val: bool) {
32959 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
32960 }
32961 #[doc = "PB(6) Fm+"]
32962 pub const fn pb6fmp(&self) -> bool {
32963 let val = (self.0 >> 4usize) & 0x01;
32964>>>>>>> 546082a (Update generated code)
32965 val != 0
32966 }
32967 #[doc = "PB(6) Fm+"]
32968 pub fn set_pb6fmp(&mut self, val: bool) {
32969 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
32970 }
32971 #[doc = "PB(7) Fast Mode Plus"]
32972 pub const fn pb7fmp(&self) -> bool {
32973 let val = (self.0 >> 5usize) & 0x01;
32974 val != 0
32975 }
32976 #[doc = "PB(7) Fast Mode Plus"]
32977 pub fn set_pb7fmp(&mut self, val: bool) {
32978 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
32979 }
32980 #[doc = "PB(8) Fast Mode Plus"]
32981 pub const fn pb8fmp(&self) -> bool {
32982 let val = (self.0 >> 6usize) & 0x01;
32983 val != 0
32984 }
32985 #[doc = "PB(8) Fast Mode Plus"]
32986 pub fn set_pb8fmp(&mut self, val: bool) {
32987 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
32988 }
32989 #[doc = "PB(9) Fm+"]
32990 pub const fn pb9fmp(&self) -> bool {
32991 let val = (self.0 >> 7usize) & 0x01;
32992 val != 0
32993 }
32994 #[doc = "PB(9) Fm+"]
32995 pub fn set_pb9fmp(&mut self, val: bool) {
32996 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
32997 }
32998 #[doc = "Booster Enable"]
32999 pub const fn booste(&self) -> bool {
33000 let val = (self.0 >> 8usize) & 0x01;
33001 val != 0
33002 }
33003 #[doc = "Booster Enable"]
33004 pub fn set_booste(&mut self, val: bool) {
33005 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
33006 }
33007 #[doc = "Analog switch supply voltage selection"]
33008 pub const fn boostvddsel(&self) -> bool {
33009 let val = (self.0 >> 9usize) & 0x01;
33010 val != 0
33011 }
33012 #[doc = "Analog switch supply voltage selection"]
33013 pub fn set_boostvddsel(&mut self, val: bool) {
33014 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
33015=======
33016 pub struct Ur7(pub u32);
33017 impl Ur7 {
33018 #[doc = "Secured area start address for bank 1"]
33019 pub const fn sa_beg_1(&self) -> u16 {
33020 let val = (self.0 >> 0usize) & 0x0fff;
33021 val as u16
33022>>>>>>> cbbaaa9 (Fix RNG interrupt name)
33023 }
33024 #[doc = "Secured area start address for bank 1"]
33025 pub fn set_sa_beg_1(&mut self, val: u16) {
33026 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize);
33027 }
33028 #[doc = "Secured area end address for bank 1"]
33029 pub const fn sa_end_1(&self) -> u16 {
33030 let val = (self.0 >> 16usize) & 0x0fff;
33031 val as u16
33032 }
33033 #[doc = "Secured area end address for bank 1"]
33034 pub fn set_sa_end_1(&mut self, val: u16) {
33035 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize);
33036 }
33037 }
33038 impl Default for Ur7 {
33039 fn default() -> Ur7 {
33040 Ur7(0)
26715 } 33041 }
26716 } 33042 }
26717 #[doc = "SYSCFG user register 12"] 33043 #[doc = "SYSCFG user register 12"]
@@ -26734,26 +33060,6 @@ pub mod gpio_v2 {
26734 Ur12(0) 33060 Ur12(0)
26735 } 33061 }
26736 } 33062 }
26737 #[doc = "SYSCFG user register 3"]
26738 #[repr(transparent)]
26739 #[derive(Copy, Clone, Eq, PartialEq)]
26740 pub struct Ur3(pub u32);
26741 impl Ur3 {
26742 #[doc = "Boot Address 1"]
26743 pub const fn boot_add1(&self) -> u16 {
26744 let val = (self.0 >> 16usize) & 0xffff;
26745 val as u16
26746 }
26747 #[doc = "Boot Address 1"]
26748 pub fn set_boot_add1(&mut self, val: u16) {
26749 self.0 = (self.0 & !(0xffff << 16usize)) | (((val as u32) & 0xffff) << 16usize);
26750 }
26751 }
26752 impl Default for Ur3 {
26753 fn default() -> Ur3 {
26754 Ur3(0)
26755 }
26756 }
26757 #[doc = "SYSCFG user register 2"] 33063 #[doc = "SYSCFG user register 2"]
26758 #[repr(transparent)] 33064 #[repr(transparent)]
26759 #[derive(Copy, Clone, Eq, PartialEq)] 33065 #[derive(Copy, Clone, Eq, PartialEq)]
@@ -26783,6 +33089,79 @@ pub mod gpio_v2 {
26783 Ur2(0) 33089 Ur2(0)
26784 } 33090 }
26785 } 33091 }
33092 #[doc = "external interrupt configuration register 2"]
33093 #[repr(transparent)]
33094 #[derive(Copy, Clone, Eq, PartialEq)]
33095 pub struct Exticr(pub u32);
33096 impl Exticr {
33097 #[doc = "EXTI x configuration (x = 4 to 7)"]
33098 pub fn exti(&self, n: usize) -> u8 {
33099 assert!(n < 4usize);
33100 let offs = 0usize + n * 4usize;
33101 let val = (self.0 >> offs) & 0x0f;
33102 val as u8
33103 }
33104 #[doc = "EXTI x configuration (x = 4 to 7)"]
33105 pub fn set_exti(&mut self, n: usize, val: u8) {
33106 assert!(n < 4usize);
33107 let offs = 0usize + n * 4usize;
33108 self.0 = (self.0 & !(0x0f << offs)) | (((val as u32) & 0x0f) << offs);
33109 }
33110 }
33111 impl Default for Exticr {
33112 fn default() -> Exticr {
33113 Exticr(0)
33114 }
33115 }
33116 #[doc = "SYSCFG user register 16"]
33117 #[repr(transparent)]
33118 #[derive(Copy, Clone, Eq, PartialEq)]
33119 pub struct Ur16(pub u32);
33120 impl Ur16 {
33121 #[doc = "Freeze independent watchdog in Stop mode"]
33122 pub const fn fziwdgstp(&self) -> bool {
33123 let val = (self.0 >> 0usize) & 0x01;
33124 val != 0
33125 }
33126 #[doc = "Freeze independent watchdog in Stop mode"]
33127 pub fn set_fziwdgstp(&mut self, val: bool) {
33128 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
33129 }
33130 #[doc = "Private key programmed"]
33131 pub const fn pkp(&self) -> bool {
33132 let val = (self.0 >> 16usize) & 0x01;
33133 val != 0
33134 }
33135 #[doc = "Private key programmed"]
33136 pub fn set_pkp(&mut self, val: bool) {
33137 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
33138 }
33139 }
33140 impl Default for Ur16 {
33141 fn default() -> Ur16 {
33142 Ur16(0)
33143 }
33144 }
33145 #[doc = "SYSCFG package register"]
33146 #[repr(transparent)]
33147 #[derive(Copy, Clone, Eq, PartialEq)]
33148 pub struct Pkgr(pub u32);
33149 impl Pkgr {
33150 #[doc = "Package"]
33151 pub const fn pkg(&self) -> u8 {
33152 let val = (self.0 >> 0usize) & 0x0f;
33153 val as u8
33154 }
33155 #[doc = "Package"]
33156 pub fn set_pkg(&mut self, val: u8) {
33157 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
33158 }
33159 }
33160 impl Default for Pkgr {
33161 fn default() -> Pkgr {
33162 Pkgr(0)
33163 }
33164 }
26786 #[doc = "peripheral mode configuration register"] 33165 #[doc = "peripheral mode configuration register"]
26787 #[repr(transparent)] 33166 #[repr(transparent)]
26788 #[derive(Copy, Clone, Eq, PartialEq)] 33167 #[derive(Copy, Clone, Eq, PartialEq)]
@@ -26827,7 +33206,6 @@ pub mod gpio_v2 {
26827 #[doc = "PB(6) Fm+"] 33206 #[doc = "PB(6) Fm+"]
26828 pub const fn pb6fmp(&self) -> bool { 33207 pub const fn pb6fmp(&self) -> bool {
26829 let val = (self.0 >> 4usize) & 0x01; 33208 let val = (self.0 >> 4usize) & 0x01;
26830>>>>>>> 546082a (Update generated code)
26831 val != 0 33209 val != 0
26832 } 33210 }
26833 #[doc = "PB(6) Fm+"] 33211 #[doc = "PB(6) Fm+"]
@@ -26950,82 +33328,189 @@ pub mod gpio_v2 {
26950 Pwrcr(0) 33328 Pwrcr(0)
26951 } 33329 }
26952 } 33330 }
26953 #[doc = "SYSCFG user register 16"] 33331 #[doc = "SYSCFG user register 0"]
26954 #[repr(transparent)] 33332 #[repr(transparent)]
26955 #[derive(Copy, Clone, Eq, PartialEq)] 33333 #[derive(Copy, Clone, Eq, PartialEq)]
26956 pub struct Ur16(pub u32); 33334 pub struct Ur0(pub u32);
26957 impl Ur16 { 33335 impl Ur0 {
26958 #[doc = "Freeze independent watchdog in Stop mode"] 33336 #[doc = "Bank Swap"]
26959 pub const fn fziwdgstp(&self) -> bool { 33337 pub const fn bks(&self) -> bool {
26960 let val = (self.0 >> 0usize) & 0x01; 33338 let val = (self.0 >> 0usize) & 0x01;
26961 val != 0 33339 val != 0
26962 } 33340 }
26963 #[doc = "Freeze independent watchdog in Stop mode"] 33341 #[doc = "Bank Swap"]
26964 pub fn set_fziwdgstp(&mut self, val: bool) { 33342 pub fn set_bks(&mut self, val: bool) {
26965 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 33343 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
26966 } 33344 }
26967 #[doc = "Private key programmed"] 33345 #[doc = "Readout protection"]
26968 pub const fn pkp(&self) -> bool { 33346 pub const fn rdp(&self) -> u8 {
33347 let val = (self.0 >> 16usize) & 0xff;
33348 val as u8
33349 }
33350 #[doc = "Readout protection"]
33351 pub fn set_rdp(&mut self, val: u8) {
33352 self.0 = (self.0 & !(0xff << 16usize)) | (((val as u32) & 0xff) << 16usize);
33353 }
33354 }
33355 impl Default for Ur0 {
33356 fn default() -> Ur0 {
33357 Ur0(0)
33358 }
33359 }
33360 #[doc = "SYSCFG user register 15"]
33361 #[repr(transparent)]
33362 #[derive(Copy, Clone, Eq, PartialEq)]
33363 pub struct Ur15(pub u32);
33364 impl Ur15 {
33365 #[doc = "Freeze independent watchdog in Standby mode"]
33366 pub const fn fziwdgstb(&self) -> bool {
26969 let val = (self.0 >> 16usize) & 0x01; 33367 let val = (self.0 >> 16usize) & 0x01;
26970 val != 0 33368 val != 0
26971 } 33369 }
26972 #[doc = "Private key programmed"] 33370 #[doc = "Freeze independent watchdog in Standby mode"]
26973 pub fn set_pkp(&mut self, val: bool) { 33371 pub fn set_fziwdgstb(&mut self, val: bool) {
26974 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 33372 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
26975 } 33373 }
26976 } 33374 }
26977 impl Default for Ur16 { 33375 impl Default for Ur15 {
26978 fn default() -> Ur16 { 33376 fn default() -> Ur15 {
26979 Ur16(0) 33377 Ur15(0)
26980 } 33378 }
26981 } 33379 }
26982 #[doc = "SYSCFG user register 17"] 33380 #[doc = "SYSCFG user register 10"]
26983 #[repr(transparent)] 33381 #[repr(transparent)]
26984 #[derive(Copy, Clone, Eq, PartialEq)] 33382 #[derive(Copy, Clone, Eq, PartialEq)]
26985 pub struct Ur17(pub u32); 33383 pub struct Ur10(pub u32);
26986 impl Ur17 { 33384 impl Ur10 {
26987 #[doc = "I/O high speed / low voltage"] 33385 #[doc = "Protected area end address for bank 2"]
26988 pub const fn io_hslv(&self) -> bool { 33386 pub const fn pa_end_2(&self) -> u16 {
26989 let val = (self.0 >> 0usize) & 0x01; 33387 let val = (self.0 >> 0usize) & 0x0fff;
26990 val != 0 33388 val as u16
26991 } 33389 }
26992 #[doc = "I/O high speed / low voltage"] 33390 #[doc = "Protected area end address for bank 2"]
26993 pub fn set_io_hslv(&mut self, val: bool) { 33391 pub fn set_pa_end_2(&mut self, val: u16) {
26994 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 33392 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize);
33393 }
33394 #[doc = "Secured area start address for bank 2"]
33395 pub const fn sa_beg_2(&self) -> u16 {
33396 let val = (self.0 >> 16usize) & 0x0fff;
33397 val as u16
33398 }
33399 #[doc = "Secured area start address for bank 2"]
33400 pub fn set_sa_beg_2(&mut self, val: u16) {
33401 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize);
26995 } 33402 }
26996 } 33403 }
26997 impl Default for Ur17 { 33404 impl Default for Ur10 {
26998 fn default() -> Ur17 { 33405 fn default() -> Ur10 {
26999 Ur17(0) 33406 Ur10(0)
27000 } 33407 }
27001 } 33408 }
27002 #[doc = "SYSCFG user register 13"] 33409 #[doc = "SYSCFG compensation cell code register"]
27003 #[repr(transparent)] 33410 #[repr(transparent)]
27004 #[derive(Copy, Clone, Eq, PartialEq)] 33411 #[derive(Copy, Clone, Eq, PartialEq)]
27005 pub struct Ur13(pub u32); 33412 pub struct Cccr(pub u32);
27006 impl Ur13 { 33413 impl Cccr {
27007 #[doc = "Secured DTCM RAM Size"] 33414 #[doc = "NMOS compensation code"]
27008 pub const fn sdrs(&self) -> u8 { 33415 pub const fn ncc(&self) -> u8 {
27009 let val = (self.0 >> 0usize) & 0x03; 33416 let val = (self.0 >> 0usize) & 0x0f;
27010 val as u8 33417 val as u8
27011 } 33418 }
27012 #[doc = "Secured DTCM RAM Size"] 33419 #[doc = "NMOS compensation code"]
27013 pub fn set_sdrs(&mut self, val: u8) { 33420 pub fn set_ncc(&mut self, val: u8) {
27014 self.0 = (self.0 & !(0x03 << 0usize)) | (((val as u32) & 0x03) << 0usize); 33421 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
27015 } 33422 }
27016 #[doc = "D1 Standby reset"] 33423 #[doc = "PMOS compensation code"]
27017 pub const fn d1sbrst(&self) -> bool { 33424 pub const fn pcc(&self) -> u8 {
33425 let val = (self.0 >> 4usize) & 0x0f;
33426 val as u8
33427 }
33428 #[doc = "PMOS compensation code"]
33429 pub fn set_pcc(&mut self, val: u8) {
33430 self.0 = (self.0 & !(0x0f << 4usize)) | (((val as u32) & 0x0f) << 4usize);
33431 }
33432 }
33433 impl Default for Cccr {
33434 fn default() -> Cccr {
33435 Cccr(0)
33436 }
33437 }
33438 #[doc = "SYSCFG user register 8"]
33439 #[repr(transparent)]
33440 #[derive(Copy, Clone, Eq, PartialEq)]
33441 pub struct Ur8(pub u32);
33442 impl Ur8 {
33443 #[doc = "Mass erase protected area disabled for bank 2"]
33444 pub const fn mepad_2(&self) -> bool {
33445 let val = (self.0 >> 0usize) & 0x01;
33446 val != 0
33447 }
33448 #[doc = "Mass erase protected area disabled for bank 2"]
33449 pub fn set_mepad_2(&mut self, val: bool) {
33450 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
33451 }
33452 #[doc = "Mass erase secured area disabled for bank 2"]
33453 pub const fn mesad_2(&self) -> bool {
27018 let val = (self.0 >> 16usize) & 0x01; 33454 let val = (self.0 >> 16usize) & 0x01;
27019 val != 0 33455 val != 0
27020 } 33456 }
27021 #[doc = "D1 Standby reset"] 33457 #[doc = "Mass erase secured area disabled for bank 2"]
27022 pub fn set_d1sbrst(&mut self, val: bool) { 33458 pub fn set_mesad_2(&mut self, val: bool) {
27023 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize); 33459 self.0 = (self.0 & !(0x01 << 16usize)) | (((val as u32) & 0x01) << 16usize);
27024 } 33460 }
27025 } 33461 }
27026 impl Default for Ur13 { 33462 impl Default for Ur8 {
27027 fn default() -> Ur13 { 33463 fn default() -> Ur8 {
27028 Ur13(0) 33464 Ur8(0)
33465 }
33466 }
33467 #[doc = "SYSCFG user register 6"]
33468 #[repr(transparent)]
33469 #[derive(Copy, Clone, Eq, PartialEq)]
33470 pub struct Ur6(pub u32);
33471 impl Ur6 {
33472 #[doc = "Protected area start address for bank 1"]
33473 pub const fn pa_beg_1(&self) -> u16 {
33474 let val = (self.0 >> 0usize) & 0x0fff;
33475 val as u16
33476 }
33477 #[doc = "Protected area start address for bank 1"]
33478 pub fn set_pa_beg_1(&mut self, val: u16) {
33479 self.0 = (self.0 & !(0x0fff << 0usize)) | (((val as u32) & 0x0fff) << 0usize);
33480 }
33481 #[doc = "Protected area end address for bank 1"]
33482 pub const fn pa_end_1(&self) -> u16 {
33483 let val = (self.0 >> 16usize) & 0x0fff;
33484 val as u16
33485 }
33486 #[doc = "Protected area end address for bank 1"]
33487 pub fn set_pa_end_1(&mut self, val: u16) {
33488 self.0 = (self.0 & !(0x0fff << 16usize)) | (((val as u32) & 0x0fff) << 16usize);
33489 }
33490 }
33491 impl Default for Ur6 {
33492 fn default() -> Ur6 {
33493 Ur6(0)
33494 }
33495 }
33496 #[doc = "SYSCFG user register 14"]
33497 #[repr(transparent)]
33498 #[derive(Copy, Clone, Eq, PartialEq)]
33499 pub struct Ur14(pub u32);
33500 impl Ur14 {
33501 #[doc = "D1 Stop Reset"]
33502 pub const fn d1stprst(&self) -> bool {
33503 let val = (self.0 >> 0usize) & 0x01;
33504 val != 0
33505 }
33506 #[doc = "D1 Stop Reset"]
33507 pub fn set_d1stprst(&mut self, val: bool) {
33508 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
33509 }
33510 }
33511 impl Default for Ur14 {
33512 fn default() -> Ur14 {
33513 Ur14(0)
27029 } 33514 }
27030 } 33515 }
27031 } 33516 }
@@ -27098,286 +33583,114 @@ pub mod usart_v1 {
27098 unsafe { Reg::from_ptr(self.0.add(24usize)) } 33583 unsafe { Reg::from_ptr(self.0.add(24usize)) }
27099 } 33584 }
27100 } 33585 }
27101 pub mod regs { 33586 pub mod vals {
27102 use crate::generic::*; 33587 use crate::generic::*;
27103 #[doc = "Data register"]
27104 #[repr(transparent)] 33588 #[repr(transparent)]
27105 #[derive(Copy, Clone, Eq, PartialEq)] 33589 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
27106 pub struct Dr(pub u32); 33590 pub struct Rwu(pub u8);
27107 impl Dr { 33591 impl Rwu {
27108 #[doc = "Data value"] 33592 #[doc = "Receiver in active mode"]
27109 pub const fn dr(&self) -> u16 { 33593 pub const ACTIVE: Self = Self(0);
27110 let val = (self.0 >> 0usize) & 0x01ff; 33594 #[doc = "Receiver in mute mode"]
27111 val as u16 33595 pub const MUTE: Self = Self(0x01);
27112 }
27113 #[doc = "Data value"]
27114 pub fn set_dr(&mut self, val: u16) {
27115 self.0 = (self.0 & !(0x01ff << 0usize)) | (((val as u32) & 0x01ff) << 0usize);
27116 }
27117 } 33596 }
27118 impl Default for Dr { 33597 #[repr(transparent)]
27119 fn default() -> Dr { 33598 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
27120 Dr(0) 33599 pub struct Irlp(pub u8);
27121 } 33600 impl Irlp {
33601 #[doc = "Normal mode"]
33602 pub const NORMAL: Self = Self(0);
33603 #[doc = "Low-power mode"]
33604 pub const LOWPOWER: Self = Self(0x01);
27122 } 33605 }
27123 #[doc = "Control register 3"]
27124 #[repr(transparent)] 33606 #[repr(transparent)]
27125 #[derive(Copy, Clone, Eq, PartialEq)] 33607 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
27126 pub struct Cr3(pub u32); 33608 pub struct Wake(pub u8);
27127 impl Cr3 { 33609 impl Wake {
27128 #[doc = "Error interrupt enable"] 33610 #[doc = "USART wakeup on idle line"]
27129 pub const fn eie(&self) -> bool { 33611 pub const IDLELINE: Self = Self(0);
27130 let val = (self.0 >> 0usize) & 0x01; 33612 #[doc = "USART wakeup on address mark"]
27131 val != 0 33613 pub const ADDRESSMARK: Self = Self(0x01);
27132 }
27133 #[doc = "Error interrupt enable"]
27134 pub fn set_eie(&mut self, val: bool) {
27135 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
27136 }
27137 #[doc = "IrDA mode enable"]
27138 pub const fn iren(&self) -> bool {
27139 let val = (self.0 >> 1usize) & 0x01;
27140 val != 0
27141 }
27142 #[doc = "IrDA mode enable"]
27143 pub fn set_iren(&mut self, val: bool) {
27144 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
27145 }
27146 #[doc = "IrDA low-power"]
27147 pub const fn irlp(&self) -> super::vals::Irlp {
27148 let val = (self.0 >> 2usize) & 0x01;
27149 super::vals::Irlp(val as u8)
27150 }
27151 #[doc = "IrDA low-power"]
27152 pub fn set_irlp(&mut self, val: super::vals::Irlp) {
27153 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
27154 }
27155 #[doc = "Half-duplex selection"]
27156 pub const fn hdsel(&self) -> super::vals::Hdsel {
27157 let val = (self.0 >> 3usize) & 0x01;
27158 super::vals::Hdsel(val as u8)
27159 }
27160 #[doc = "Half-duplex selection"]
27161 pub fn set_hdsel(&mut self, val: super::vals::Hdsel) {
27162 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
27163 }
27164 #[doc = "DMA enable receiver"]
27165 pub const fn dmar(&self) -> bool {
27166 let val = (self.0 >> 6usize) & 0x01;
27167 val != 0
27168 }
27169 #[doc = "DMA enable receiver"]
27170 pub fn set_dmar(&mut self, val: bool) {
27171 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
27172 }
27173 #[doc = "DMA enable transmitter"]
27174 pub const fn dmat(&self) -> bool {
27175 let val = (self.0 >> 7usize) & 0x01;
27176 val != 0
27177 }
27178 #[doc = "DMA enable transmitter"]
27179 pub fn set_dmat(&mut self, val: bool) {
27180 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
27181 }
27182 } 33614 }
27183 impl Default for Cr3 { 33615 #[repr(transparent)]
27184 fn default() -> Cr3 { 33616 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
27185 Cr3(0) 33617 pub struct Hdsel(pub u8);
27186 } 33618 impl Hdsel {
33619 #[doc = "Half duplex mode is not selected"]
33620 pub const FULLDUPLEX: Self = Self(0);
33621 #[doc = "Half duplex mode is selected"]
33622 pub const HALFDUPLEX: Self = Self(0x01);
27187 } 33623 }
27188 #[doc = "Control register 2"]
27189 #[repr(transparent)] 33624 #[repr(transparent)]
27190 #[derive(Copy, Clone, Eq, PartialEq)] 33625 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
27191 pub struct Cr2(pub u32); 33626 pub struct Sbk(pub u8);
27192 impl Cr2 { 33627 impl Sbk {
27193 #[doc = "Address of the USART node"] 33628 #[doc = "No break character is transmitted"]
27194 pub const fn add(&self) -> u8 { 33629 pub const NOBREAK: Self = Self(0);
27195 let val = (self.0 >> 0usize) & 0x0f; 33630 #[doc = "Break character transmitted"]
27196 val as u8 33631 pub const BREAK: Self = Self(0x01);
27197 }
27198 #[doc = "Address of the USART node"]
27199 pub fn set_add(&mut self, val: u8) {
27200 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
27201 }
27202 #[doc = "lin break detection length"]
27203 pub const fn lbdl(&self) -> super::vals::Lbdl {
27204 let val = (self.0 >> 5usize) & 0x01;
27205 super::vals::Lbdl(val as u8)
27206 }
27207 #[doc = "lin break detection length"]
27208 pub fn set_lbdl(&mut self, val: super::vals::Lbdl) {
27209 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
27210 }
27211 #[doc = "LIN break detection interrupt enable"]
27212 pub const fn lbdie(&self) -> bool {
27213 let val = (self.0 >> 6usize) & 0x01;
27214 val != 0
27215 }
27216 #[doc = "LIN break detection interrupt enable"]
27217 pub fn set_lbdie(&mut self, val: bool) {
27218 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
27219 }
27220 #[doc = "STOP bits"]
27221 pub const fn stop(&self) -> super::vals::Stop {
27222 let val = (self.0 >> 12usize) & 0x03;
27223 super::vals::Stop(val as u8)
27224 }
27225 #[doc = "STOP bits"]
27226 pub fn set_stop(&mut self, val: super::vals::Stop) {
27227 self.0 = (self.0 & !(0x03 << 12usize)) | (((val.0 as u32) & 0x03) << 12usize);
27228 }
27229 #[doc = "LIN mode enable"]
27230 pub const fn linen(&self) -> bool {
27231 let val = (self.0 >> 14usize) & 0x01;
27232 val != 0
27233 }
27234 #[doc = "LIN mode enable"]
27235 pub fn set_linen(&mut self, val: bool) {
27236 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
27237 }
27238 } 33632 }
27239 impl Default for Cr2 { 33633 #[repr(transparent)]
27240 fn default() -> Cr2 { 33634 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
27241 Cr2(0) 33635 pub struct M(pub u8);
27242 } 33636 impl M {
33637 #[doc = "8 data bits"]
33638 pub const M8: Self = Self(0);
33639 #[doc = "9 data bits"]
33640 pub const M9: Self = Self(0x01);
27243 } 33641 }
27244 #[doc = "Control register 1"]
27245 #[repr(transparent)] 33642 #[repr(transparent)]
27246 #[derive(Copy, Clone, Eq, PartialEq)] 33643 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
27247 pub struct Cr1(pub u32); 33644 pub struct Stop(pub u8);
27248 impl Cr1 { 33645 impl Stop {
27249 #[doc = "Send break"] 33646 #[doc = "1 stop bit"]
27250 pub const fn sbk(&self) -> super::vals::Sbk { 33647 pub const STOP1: Self = Self(0);
27251 let val = (self.0 >> 0usize) & 0x01; 33648 #[doc = "0.5 stop bits"]
27252 super::vals::Sbk(val as u8) 33649 pub const STOP0P5: Self = Self(0x01);
27253 } 33650 #[doc = "2 stop bits"]
27254 #[doc = "Send break"] 33651 pub const STOP2: Self = Self(0x02);
27255 pub fn set_sbk(&mut self, val: super::vals::Sbk) { 33652 #[doc = "1.5 stop bits"]
27256 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 33653 pub const STOP1P5: Self = Self(0x03);
27257 }
27258 #[doc = "Receiver wakeup"]
27259 pub const fn rwu(&self) -> super::vals::Rwu {
27260 let val = (self.0 >> 1usize) & 0x01;
27261 super::vals::Rwu(val as u8)
27262 }
27263 #[doc = "Receiver wakeup"]
27264 pub fn set_rwu(&mut self, val: super::vals::Rwu) {
27265 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
27266 }
27267 #[doc = "Receiver enable"]
27268 pub const fn re(&self) -> bool {
27269 let val = (self.0 >> 2usize) & 0x01;
27270 val != 0
27271 }
27272 #[doc = "Receiver enable"]
27273 pub fn set_re(&mut self, val: bool) {
27274 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
27275 }
27276 #[doc = "Transmitter enable"]
27277 pub const fn te(&self) -> bool {
27278 let val = (self.0 >> 3usize) & 0x01;
27279 val != 0
27280 }
27281 #[doc = "Transmitter enable"]
27282 pub fn set_te(&mut self, val: bool) {
27283 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
27284 }
27285 #[doc = "IDLE interrupt enable"]
27286 pub const fn idleie(&self) -> bool {
27287 let val = (self.0 >> 4usize) & 0x01;
27288 val != 0
27289 }
27290 #[doc = "IDLE interrupt enable"]
27291 pub fn set_idleie(&mut self, val: bool) {
27292 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
27293 }
27294 #[doc = "RXNE interrupt enable"]
27295 pub const fn rxneie(&self) -> bool {
27296 let val = (self.0 >> 5usize) & 0x01;
27297 val != 0
27298 }
27299 #[doc = "RXNE interrupt enable"]
27300 pub fn set_rxneie(&mut self, val: bool) {
27301 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
27302 }
27303 #[doc = "Transmission complete interrupt enable"]
27304 pub const fn tcie(&self) -> bool {
27305 let val = (self.0 >> 6usize) & 0x01;
27306 val != 0
27307 }
27308 #[doc = "Transmission complete interrupt enable"]
27309 pub fn set_tcie(&mut self, val: bool) {
27310 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
27311 }
27312 #[doc = "TXE interrupt enable"]
27313 pub const fn txeie(&self) -> bool {
27314 let val = (self.0 >> 7usize) & 0x01;
27315 val != 0
27316 }
27317 #[doc = "TXE interrupt enable"]
27318 pub fn set_txeie(&mut self, val: bool) {
27319 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
27320 }
27321 #[doc = "PE interrupt enable"]
27322 pub const fn peie(&self) -> bool {
27323 let val = (self.0 >> 8usize) & 0x01;
27324 val != 0
27325 }
27326 #[doc = "PE interrupt enable"]
27327 pub fn set_peie(&mut self, val: bool) {
27328 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
27329 }
27330 #[doc = "Parity selection"]
27331 pub const fn ps(&self) -> super::vals::Ps {
27332 let val = (self.0 >> 9usize) & 0x01;
27333 super::vals::Ps(val as u8)
27334 }
27335 #[doc = "Parity selection"]
27336 pub fn set_ps(&mut self, val: super::vals::Ps) {
27337 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
27338 }
27339 #[doc = "Parity control enable"]
27340 pub const fn pce(&self) -> bool {
27341 let val = (self.0 >> 10usize) & 0x01;
27342 val != 0
27343 }
27344 #[doc = "Parity control enable"]
27345 pub fn set_pce(&mut self, val: bool) {
27346 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
27347 }
27348 #[doc = "Wakeup method"]
27349 pub const fn wake(&self) -> super::vals::Wake {
27350 let val = (self.0 >> 11usize) & 0x01;
27351 super::vals::Wake(val as u8)
27352 }
27353 #[doc = "Wakeup method"]
27354 pub fn set_wake(&mut self, val: super::vals::Wake) {
27355 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
27356 }
27357 #[doc = "Word length"]
27358 pub const fn m(&self) -> super::vals::M {
27359 let val = (self.0 >> 12usize) & 0x01;
27360 super::vals::M(val as u8)
27361 }
27362 #[doc = "Word length"]
27363 pub fn set_m(&mut self, val: super::vals::M) {
27364 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
27365 }
27366 #[doc = "USART enable"]
27367 pub const fn ue(&self) -> bool {
27368 let val = (self.0 >> 13usize) & 0x01;
27369 val != 0
27370 }
27371 #[doc = "USART enable"]
27372 pub fn set_ue(&mut self, val: bool) {
27373 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
27374 }
27375 } 33654 }
27376 impl Default for Cr1 { 33655 #[repr(transparent)]
27377 fn default() -> Cr1 { 33656 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
27378 Cr1(0) 33657 pub struct Cpol(pub u8);
27379 } 33658 impl Cpol {
33659 #[doc = "Steady low value on CK pin outside transmission window"]
33660 pub const LOW: Self = Self(0);
33661 #[doc = "Steady high value on CK pin outside transmission window"]
33662 pub const HIGH: Self = Self(0x01);
33663 }
33664 #[repr(transparent)]
33665 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
33666 pub struct Ps(pub u8);
33667 impl Ps {
33668 #[doc = "Even parity"]
33669 pub const EVEN: Self = Self(0);
33670 #[doc = "Odd parity"]
33671 pub const ODD: Self = Self(0x01);
33672 }
33673 #[repr(transparent)]
33674 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
33675 pub struct Lbdl(pub u8);
33676 impl Lbdl {
33677 #[doc = "10-bit break detection"]
33678 pub const LBDL10: Self = Self(0);
33679 #[doc = "11-bit break detection"]
33680 pub const LBDL11: Self = Self(0x01);
33681 }
33682 #[repr(transparent)]
33683 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
33684 pub struct Cpha(pub u8);
33685 impl Cpha {
33686 #[doc = "The first clock transition is the first data capture edge"]
33687 pub const FIRST: Self = Self(0);
33688 #[doc = "The second clock transition is the first data capture edge"]
33689 pub const SECOND: Self = Self(0x01);
27380 } 33690 }
33691 }
33692 pub mod regs {
33693 use crate::generic::*;
27381 #[doc = "Control register 2"] 33694 #[doc = "Control register 2"]
27382 #[repr(transparent)] 33695 #[repr(transparent)]
27383 #[derive(Copy, Clone, Eq, PartialEq)] 33696 #[derive(Copy, Clone, Eq, PartialEq)]
@@ -27403,6 +33716,7 @@ pub mod usart_v1 {
27403 } 33716 }
27404 #[doc = "LIN break detection interrupt enable"] 33717 #[doc = "LIN break detection interrupt enable"]
27405 pub const fn lbdie(&self) -> bool { 33718 pub const fn lbdie(&self) -> bool {
33719<<<<<<< HEAD
27406 let val = (self.0 >> 6usize) & 0x01; 33720 let val = (self.0 >> 6usize) & 0x01;
27407 val != 0 33721 val != 0
27408 } 33722 }
@@ -27713,87 +34027,79 @@ pub mod gpio_v1 {
27713 } 34027 }
27714 #[doc = "DMA enable receiver"] 34028 #[doc = "DMA enable receiver"]
27715 pub const fn dmar(&self) -> bool { 34029 pub const fn dmar(&self) -> bool {
34030=======
34031>>>>>>> cbbaaa9 (Fix RNG interrupt name)
27716 let val = (self.0 >> 6usize) & 0x01; 34032 let val = (self.0 >> 6usize) & 0x01;
27717 val != 0 34033 val != 0
27718 } 34034 }
27719 #[doc = "DMA enable receiver"] 34035 #[doc = "LIN break detection interrupt enable"]
27720 pub fn set_dmar(&mut self, val: bool) { 34036 pub fn set_lbdie(&mut self, val: bool) {
27721 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 34037 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
27722 } 34038 }
27723 #[doc = "DMA enable transmitter"] 34039 #[doc = "Last bit clock pulse"]
27724 pub const fn dmat(&self) -> bool { 34040 pub const fn lbcl(&self) -> bool {
27725 let val = (self.0 >> 7usize) & 0x01;
27726 val != 0
27727 }
27728 #[doc = "DMA enable transmitter"]
27729 pub fn set_dmat(&mut self, val: bool) {
27730 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
27731 }
27732 #[doc = "RTS enable"]
27733 pub const fn rtse(&self) -> bool {
27734 let val = (self.0 >> 8usize) & 0x01; 34041 let val = (self.0 >> 8usize) & 0x01;
27735 val != 0 34042 val != 0
27736 } 34043 }
27737 #[doc = "RTS enable"] 34044 #[doc = "Last bit clock pulse"]
27738 pub fn set_rtse(&mut self, val: bool) { 34045 pub fn set_lbcl(&mut self, val: bool) {
27739 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 34046 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
27740 } 34047 }
27741 #[doc = "CTS enable"] 34048 #[doc = "Clock phase"]
27742 pub const fn ctse(&self) -> bool { 34049 pub const fn cpha(&self) -> super::vals::Cpha {
27743 let val = (self.0 >> 9usize) & 0x01; 34050 let val = (self.0 >> 9usize) & 0x01;
27744 val != 0 34051 super::vals::Cpha(val as u8)
27745 } 34052 }
27746 #[doc = "CTS enable"] 34053 #[doc = "Clock phase"]
27747 pub fn set_ctse(&mut self, val: bool) { 34054 pub fn set_cpha(&mut self, val: super::vals::Cpha) {
27748 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 34055 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
27749 } 34056 }
27750 #[doc = "CTS interrupt enable"] 34057 #[doc = "Clock polarity"]
27751 pub const fn ctsie(&self) -> bool { 34058 pub const fn cpol(&self) -> super::vals::Cpol {
27752 let val = (self.0 >> 10usize) & 0x01; 34059 let val = (self.0 >> 10usize) & 0x01;
27753 val != 0 34060 super::vals::Cpol(val as u8)
27754 } 34061 }
27755 #[doc = "CTS interrupt enable"] 34062 #[doc = "Clock polarity"]
27756 pub fn set_ctsie(&mut self, val: bool) { 34063 pub fn set_cpol(&mut self, val: super::vals::Cpol) {
27757 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize); 34064 self.0 = (self.0 & !(0x01 << 10usize)) | (((val.0 as u32) & 0x01) << 10usize);
27758 } 34065 }
27759 } 34066 #[doc = "Clock enable"]
27760 impl Default for Cr3Usart { 34067 pub const fn clken(&self) -> bool {
27761 fn default() -> Cr3Usart { 34068 let val = (self.0 >> 11usize) & 0x01;
27762 Cr3Usart(0) 34069 val != 0
27763 } 34070 }
27764 } 34071 #[doc = "Clock enable"]
27765 #[doc = "Baud rate register"] 34072 pub fn set_clken(&mut self, val: bool) {
27766 #[repr(transparent)] 34073 self.0 = (self.0 & !(0x01 << 11usize)) | (((val as u32) & 0x01) << 11usize);
27767 #[derive(Copy, Clone, Eq, PartialEq)]
27768 pub struct Brr(pub u32);
27769 impl Brr {
27770 #[doc = "fraction of USARTDIV"]
27771 pub const fn div_fraction(&self) -> u8 {
27772 let val = (self.0 >> 0usize) & 0x0f;
27773 val as u8
27774 } 34074 }
27775 #[doc = "fraction of USARTDIV"] 34075 #[doc = "STOP bits"]
27776 pub fn set_div_fraction(&mut self, val: u8) { 34076 pub const fn stop(&self) -> super::vals::Stop {
27777 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize); 34077 let val = (self.0 >> 12usize) & 0x03;
34078 super::vals::Stop(val as u8)
27778 } 34079 }
27779 #[doc = "mantissa of USARTDIV"] 34080 #[doc = "STOP bits"]
27780 pub const fn div_mantissa(&self) -> u16 { 34081 pub fn set_stop(&mut self, val: super::vals::Stop) {
27781 let val = (self.0 >> 4usize) & 0x0fff; 34082 self.0 = (self.0 & !(0x03 << 12usize)) | (((val.0 as u32) & 0x03) << 12usize);
27782 val as u16
27783 } 34083 }
27784 #[doc = "mantissa of USARTDIV"] 34084 #[doc = "LIN mode enable"]
27785 pub fn set_div_mantissa(&mut self, val: u16) { 34085 pub const fn linen(&self) -> bool {
27786 self.0 = (self.0 & !(0x0fff << 4usize)) | (((val as u32) & 0x0fff) << 4usize); 34086 let val = (self.0 >> 14usize) & 0x01;
34087 val != 0
34088 }
34089 #[doc = "LIN mode enable"]
34090 pub fn set_linen(&mut self, val: bool) {
34091 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
27787 } 34092 }
27788 } 34093 }
27789 impl Default for Brr { 34094 impl Default for Cr2Usart {
27790 fn default() -> Brr { 34095 fn default() -> Cr2Usart {
27791 Brr(0) 34096 Cr2Usart(0)
27792 } 34097 }
27793 } 34098 }
27794 #[doc = "Status register"] 34099 #[doc = "Control register 2"]
27795 #[repr(transparent)] 34100 #[repr(transparent)]
27796 #[derive(Copy, Clone, Eq, PartialEq)] 34101 #[derive(Copy, Clone, Eq, PartialEq)]
34102<<<<<<< HEAD
27797 pub struct Sr(pub u32); 34103 pub struct Sr(pub u32);
27798 impl Sr { 34104 impl Sr {
27799 #[doc = "Parity error"] 34105 #[doc = "Parity error"]
@@ -27976,48 +34282,57 @@ pub mod gpio_v1 {
27976 pub const fn idle(&self) -> bool { 34282 pub const fn idle(&self) -> bool {
27977 let val = (self.0 >> 4usize) & 0x01; 34283 let val = (self.0 >> 4usize) & 0x01;
27978 val != 0 34284 val != 0
34285=======
34286 pub struct Cr2(pub u32);
34287 impl Cr2 {
34288 #[doc = "Address of the USART node"]
34289 pub const fn add(&self) -> u8 {
34290 let val = (self.0 >> 0usize) & 0x0f;
34291 val as u8
34292>>>>>>> cbbaaa9 (Fix RNG interrupt name)
27979 } 34293 }
27980 #[doc = "IDLE line detected"] 34294 #[doc = "Address of the USART node"]
27981 pub fn set_idle(&mut self, val: bool) { 34295 pub fn set_add(&mut self, val: u8) {
27982 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 34296 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
27983 } 34297 }
27984 #[doc = "Read data register not empty"] 34298 #[doc = "lin break detection length"]
27985 pub const fn rxne(&self) -> bool { 34299 pub const fn lbdl(&self) -> super::vals::Lbdl {
27986 let val = (self.0 >> 5usize) & 0x01; 34300 let val = (self.0 >> 5usize) & 0x01;
27987 val != 0 34301 super::vals::Lbdl(val as u8)
27988 } 34302 }
27989 #[doc = "Read data register not empty"] 34303 #[doc = "lin break detection length"]
27990 pub fn set_rxne(&mut self, val: bool) { 34304 pub fn set_lbdl(&mut self, val: super::vals::Lbdl) {
27991 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 34305 self.0 = (self.0 & !(0x01 << 5usize)) | (((val.0 as u32) & 0x01) << 5usize);
27992 } 34306 }
27993 #[doc = "Transmission complete"] 34307 #[doc = "LIN break detection interrupt enable"]
27994 pub const fn tc(&self) -> bool { 34308 pub const fn lbdie(&self) -> bool {
27995 let val = (self.0 >> 6usize) & 0x01; 34309 let val = (self.0 >> 6usize) & 0x01;
27996 val != 0 34310 val != 0
27997 } 34311 }
27998 #[doc = "Transmission complete"] 34312 #[doc = "LIN break detection interrupt enable"]
27999 pub fn set_tc(&mut self, val: bool) { 34313 pub fn set_lbdie(&mut self, val: bool) {
28000 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 34314 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
28001 } 34315 }
28002 #[doc = "Transmit data register empty"] 34316 #[doc = "STOP bits"]
28003 pub const fn txe(&self) -> bool { 34317 pub const fn stop(&self) -> super::vals::Stop {
28004 let val = (self.0 >> 7usize) & 0x01; 34318 let val = (self.0 >> 12usize) & 0x03;
28005 val != 0 34319 super::vals::Stop(val as u8)
28006 } 34320 }
28007 #[doc = "Transmit data register empty"] 34321 #[doc = "STOP bits"]
28008 pub fn set_txe(&mut self, val: bool) { 34322 pub fn set_stop(&mut self, val: super::vals::Stop) {
28009 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 34323 self.0 = (self.0 & !(0x03 << 12usize)) | (((val.0 as u32) & 0x03) << 12usize);
28010 } 34324 }
28011 #[doc = "LIN break detection flag"] 34325 #[doc = "LIN mode enable"]
28012 pub const fn lbd(&self) -> bool { 34326 pub const fn linen(&self) -> bool {
28013 let val = (self.0 >> 8usize) & 0x01; 34327 let val = (self.0 >> 14usize) & 0x01;
28014 val != 0 34328 val != 0
28015 } 34329 }
28016 #[doc = "LIN break detection flag"] 34330 #[doc = "LIN mode enable"]
28017 pub fn set_lbd(&mut self, val: bool) { 34331 pub fn set_linen(&mut self, val: bool) {
28018 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 34332 self.0 = (self.0 & !(0x01 << 14usize)) | (((val as u32) & 0x01) << 14usize);
28019 } 34333 }
28020 } 34334 }
34335<<<<<<< HEAD
28021 impl Default for Sr { 34336 impl Default for Sr {
28022 fn default() -> Sr { 34337 fn default() -> Sr {
28023 Sr(0) 34338 Sr(0)
@@ -28175,109 +34490,99 @@ pub mod exti_v1 {
28175 impl Default for Gtpr { 34490 impl Default for Gtpr {
28176 fn default() -> Gtpr { 34491 fn default() -> Gtpr {
28177 Gtpr(0) 34492 Gtpr(0)
34493=======
34494 impl Default for Cr2 {
34495 fn default() -> Cr2 {
34496 Cr2(0)
28178 } 34497 }
28179 } 34498 }
28180 #[doc = "Status register"] 34499 #[doc = "Data register"]
28181 #[repr(transparent)] 34500 #[repr(transparent)]
28182 #[derive(Copy, Clone, Eq, PartialEq)] 34501 #[derive(Copy, Clone, Eq, PartialEq)]
28183 pub struct SrUsart(pub u32); 34502 pub struct Dr(pub u32);
28184 impl SrUsart { 34503 impl Dr {
28185 #[doc = "Parity error"] 34504 #[doc = "Data value"]
28186 pub const fn pe(&self) -> bool { 34505 pub const fn dr(&self) -> u16 {
34506 let val = (self.0 >> 0usize) & 0x01ff;
34507 val as u16
34508 }
34509 #[doc = "Data value"]
34510 pub fn set_dr(&mut self, val: u16) {
34511 self.0 = (self.0 & !(0x01ff << 0usize)) | (((val as u32) & 0x01ff) << 0usize);
34512 }
34513 }
34514 impl Default for Dr {
34515 fn default() -> Dr {
34516 Dr(0)
34517>>>>>>> cbbaaa9 (Fix RNG interrupt name)
34518 }
34519 }
34520 #[doc = "Control register 3"]
34521 #[repr(transparent)]
34522 #[derive(Copy, Clone, Eq, PartialEq)]
34523 pub struct Cr3(pub u32);
34524 impl Cr3 {
34525 #[doc = "Error interrupt enable"]
34526 pub const fn eie(&self) -> bool {
28187 let val = (self.0 >> 0usize) & 0x01; 34527 let val = (self.0 >> 0usize) & 0x01;
28188 val != 0 34528 val != 0
28189 } 34529 }
28190 #[doc = "Parity error"] 34530 #[doc = "Error interrupt enable"]
28191 pub fn set_pe(&mut self, val: bool) { 34531 pub fn set_eie(&mut self, val: bool) {
28192 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 34532 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
28193 } 34533 }
28194 #[doc = "Framing error"] 34534 #[doc = "IrDA mode enable"]
28195 pub const fn fe(&self) -> bool { 34535 pub const fn iren(&self) -> bool {
28196 let val = (self.0 >> 1usize) & 0x01; 34536 let val = (self.0 >> 1usize) & 0x01;
28197 val != 0 34537 val != 0
28198 } 34538 }
28199 #[doc = "Framing error"] 34539 #[doc = "IrDA mode enable"]
28200 pub fn set_fe(&mut self, val: bool) { 34540 pub fn set_iren(&mut self, val: bool) {
28201 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 34541 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
28202 } 34542 }
28203 #[doc = "Noise error flag"] 34543 #[doc = "IrDA low-power"]
28204 pub const fn ne(&self) -> bool { 34544 pub const fn irlp(&self) -> super::vals::Irlp {
28205 let val = (self.0 >> 2usize) & 0x01; 34545 let val = (self.0 >> 2usize) & 0x01;
28206 val != 0 34546 super::vals::Irlp(val as u8)
28207 } 34547 }
28208 #[doc = "Noise error flag"] 34548 #[doc = "IrDA low-power"]
28209 pub fn set_ne(&mut self, val: bool) { 34549 pub fn set_irlp(&mut self, val: super::vals::Irlp) {
28210 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 34550 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
28211 } 34551 }
28212 #[doc = "Overrun error"] 34552 #[doc = "Half-duplex selection"]
28213 pub const fn ore(&self) -> bool { 34553 pub const fn hdsel(&self) -> super::vals::Hdsel {
28214 let val = (self.0 >> 3usize) & 0x01; 34554 let val = (self.0 >> 3usize) & 0x01;
28215 val != 0 34555 super::vals::Hdsel(val as u8)
28216 }
28217 #[doc = "Overrun error"]
28218 pub fn set_ore(&mut self, val: bool) {
28219 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
28220 }
28221 #[doc = "IDLE line detected"]
28222 pub const fn idle(&self) -> bool {
28223 let val = (self.0 >> 4usize) & 0x01;
28224 val != 0
28225 }
28226 #[doc = "IDLE line detected"]
28227 pub fn set_idle(&mut self, val: bool) {
28228 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
28229 }
28230 #[doc = "Read data register not empty"]
28231 pub const fn rxne(&self) -> bool {
28232 let val = (self.0 >> 5usize) & 0x01;
28233 val != 0
28234 } 34556 }
28235 #[doc = "Read data register not empty"] 34557 #[doc = "Half-duplex selection"]
28236 pub fn set_rxne(&mut self, val: bool) { 34558 pub fn set_hdsel(&mut self, val: super::vals::Hdsel) {
28237 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 34559 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
28238 } 34560 }
28239 #[doc = "Transmission complete"] 34561 #[doc = "DMA enable receiver"]
28240 pub const fn tc(&self) -> bool { 34562 pub const fn dmar(&self) -> bool {
28241 let val = (self.0 >> 6usize) & 0x01; 34563 let val = (self.0 >> 6usize) & 0x01;
28242 val != 0 34564 val != 0
28243 } 34565 }
28244 #[doc = "Transmission complete"] 34566 #[doc = "DMA enable receiver"]
28245 pub fn set_tc(&mut self, val: bool) { 34567 pub fn set_dmar(&mut self, val: bool) {
28246 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 34568 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
28247 } 34569 }
28248 #[doc = "Transmit data register empty"] 34570 #[doc = "DMA enable transmitter"]
28249 pub const fn txe(&self) -> bool { 34571 pub const fn dmat(&self) -> bool {
28250 let val = (self.0 >> 7usize) & 0x01; 34572 let val = (self.0 >> 7usize) & 0x01;
28251 val != 0 34573 val != 0
28252 } 34574 }
28253 #[doc = "Transmit data register empty"] 34575 #[doc = "DMA enable transmitter"]
28254 pub fn set_txe(&mut self, val: bool) { 34576 pub fn set_dmat(&mut self, val: bool) {
28255 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 34577 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
28256 } 34578 }
28257 #[doc = "LIN break detection flag"]
28258 pub const fn lbd(&self) -> bool {
28259 let val = (self.0 >> 8usize) & 0x01;
28260 val != 0
28261 }
28262 #[doc = "LIN break detection flag"]
28263 pub fn set_lbd(&mut self, val: bool) {
28264 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
28265 }
28266 #[doc = "CTS flag"]
28267 pub const fn cts(&self) -> bool {
28268 let val = (self.0 >> 9usize) & 0x01;
28269 val != 0
28270 }
28271 #[doc = "CTS flag"]
28272 pub fn set_cts(&mut self, val: bool) {
28273 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
28274 }
28275 } 34579 }
28276 impl Default for SrUsart { 34580 impl Default for Cr3 {
28277 fn default() -> SrUsart { 34581 fn default() -> Cr3 {
28278 SrUsart(0) 34582 Cr3(0)
28279 } 34583 }
28280 } 34584 }
34585<<<<<<< HEAD
28281 } 34586 }
28282 pub mod vals { 34587 pub mod vals {
28283 use crate::generic::*; 34588 use crate::generic::*;
@@ -28548,197 +34853,229 @@ pub mod rng_v1 {
28548 use crate::generic::*; 34853 use crate::generic::*;
28549 #[doc = "control register"] 34854 #[doc = "control register"]
28550>>>>>>> 546082a (Update generated code) 34855>>>>>>> 546082a (Update generated code)
34856=======
34857 #[doc = "Control register 1"]
34858>>>>>>> cbbaaa9 (Fix RNG interrupt name)
28551 #[repr(transparent)] 34859 #[repr(transparent)]
28552 #[derive(Copy, Clone, Eq, PartialEq)] 34860 #[derive(Copy, Clone, Eq, PartialEq)]
28553 pub struct Cr(pub u32); 34861 pub struct Cr1(pub u32);
28554 impl Cr { 34862 impl Cr1 {
28555 #[doc = "Random number generator enable"] 34863 #[doc = "Send break"]
28556 pub const fn rngen(&self) -> bool { 34864 pub const fn sbk(&self) -> super::vals::Sbk {
34865 let val = (self.0 >> 0usize) & 0x01;
34866 super::vals::Sbk(val as u8)
34867 }
34868 #[doc = "Send break"]
34869 pub fn set_sbk(&mut self, val: super::vals::Sbk) {
34870 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize);
34871 }
34872 #[doc = "Receiver wakeup"]
34873 pub const fn rwu(&self) -> super::vals::Rwu {
34874 let val = (self.0 >> 1usize) & 0x01;
34875 super::vals::Rwu(val as u8)
34876 }
34877 #[doc = "Receiver wakeup"]
34878 pub fn set_rwu(&mut self, val: super::vals::Rwu) {
34879 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize);
34880 }
34881 #[doc = "Receiver enable"]
34882 pub const fn re(&self) -> bool {
28557 let val = (self.0 >> 2usize) & 0x01; 34883 let val = (self.0 >> 2usize) & 0x01;
28558 val != 0 34884 val != 0
28559 } 34885 }
28560 #[doc = "Random number generator enable"] 34886 #[doc = "Receiver enable"]
28561 pub fn set_rngen(&mut self, val: bool) { 34887 pub fn set_re(&mut self, val: bool) {
28562 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 34888 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
28563 } 34889 }
28564 #[doc = "Interrupt enable"] 34890 #[doc = "Transmitter enable"]
28565 pub const fn ie(&self) -> bool { 34891 pub const fn te(&self) -> bool {
28566 let val = (self.0 >> 3usize) & 0x01; 34892 let val = (self.0 >> 3usize) & 0x01;
28567 val != 0 34893 val != 0
28568 } 34894 }
28569 #[doc = "Interrupt enable"] 34895 #[doc = "Transmitter enable"]
28570 pub fn set_ie(&mut self, val: bool) { 34896 pub fn set_te(&mut self, val: bool) {
28571 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize); 34897 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
28572 } 34898 }
28573 } 34899 #[doc = "IDLE interrupt enable"]
28574 impl Default for Cr { 34900 pub const fn idleie(&self) -> bool {
28575 fn default() -> Cr { 34901 let val = (self.0 >> 4usize) & 0x01;
28576 Cr(0) 34902 val != 0
28577 } 34903 }
28578 } 34904 #[doc = "IDLE interrupt enable"]
28579 #[doc = "status register"] 34905 pub fn set_idleie(&mut self, val: bool) {
28580 #[repr(transparent)] 34906 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
28581 #[derive(Copy, Clone, Eq, PartialEq)] 34907 }
28582 pub struct Sr(pub u32); 34908 #[doc = "RXNE interrupt enable"]
28583 impl Sr { 34909 pub const fn rxneie(&self) -> bool {
28584 #[doc = "Data ready"] 34910 let val = (self.0 >> 5usize) & 0x01;
28585 pub const fn drdy(&self) -> bool {
28586 let val = (self.0 >> 0usize) & 0x01;
28587 val != 0 34911 val != 0
28588 } 34912 }
28589 #[doc = "Data ready"] 34913 #[doc = "RXNE interrupt enable"]
28590 pub fn set_drdy(&mut self, val: bool) { 34914 pub fn set_rxneie(&mut self, val: bool) {
28591 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 34915 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
28592 } 34916 }
28593 #[doc = "Clock error current status"] 34917 #[doc = "Transmission complete interrupt enable"]
28594 pub const fn cecs(&self) -> bool { 34918 pub const fn tcie(&self) -> bool {
28595 let val = (self.0 >> 1usize) & 0x01; 34919 let val = (self.0 >> 6usize) & 0x01;
28596 val != 0 34920 val != 0
28597 } 34921 }
28598 #[doc = "Clock error current status"] 34922 #[doc = "Transmission complete interrupt enable"]
28599 pub fn set_cecs(&mut self, val: bool) { 34923 pub fn set_tcie(&mut self, val: bool) {
28600 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 34924 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
28601 } 34925 }
28602 #[doc = "Seed error current status"] 34926 #[doc = "TXE interrupt enable"]
28603 pub const fn secs(&self) -> bool { 34927 pub const fn txeie(&self) -> bool {
28604 let val = (self.0 >> 2usize) & 0x01; 34928 let val = (self.0 >> 7usize) & 0x01;
28605 val != 0 34929 val != 0
28606 } 34930 }
28607 #[doc = "Seed error current status"] 34931 #[doc = "TXE interrupt enable"]
28608 pub fn set_secs(&mut self, val: bool) { 34932 pub fn set_txeie(&mut self, val: bool) {
28609 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 34933 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
28610 } 34934 }
28611 #[doc = "Clock error interrupt status"] 34935 #[doc = "PE interrupt enable"]
28612 pub const fn ceis(&self) -> bool { 34936 pub const fn peie(&self) -> bool {
28613 let val = (self.0 >> 5usize) & 0x01; 34937 let val = (self.0 >> 8usize) & 0x01;
28614 val != 0 34938 val != 0
28615 } 34939 }
28616 #[doc = "Clock error interrupt status"] 34940 #[doc = "PE interrupt enable"]
28617 pub fn set_ceis(&mut self, val: bool) { 34941 pub fn set_peie(&mut self, val: bool) {
28618 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 34942 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
28619 } 34943 }
28620 #[doc = "Seed error interrupt status"] 34944 #[doc = "Parity selection"]
28621 pub const fn seis(&self) -> bool { 34945 pub const fn ps(&self) -> super::vals::Ps {
28622 let val = (self.0 >> 6usize) & 0x01; 34946 let val = (self.0 >> 9usize) & 0x01;
34947 super::vals::Ps(val as u8)
34948 }
34949 #[doc = "Parity selection"]
34950 pub fn set_ps(&mut self, val: super::vals::Ps) {
34951 self.0 = (self.0 & !(0x01 << 9usize)) | (((val.0 as u32) & 0x01) << 9usize);
34952 }
34953 #[doc = "Parity control enable"]
34954 pub const fn pce(&self) -> bool {
34955 let val = (self.0 >> 10usize) & 0x01;
28623 val != 0 34956 val != 0
28624 } 34957 }
28625 #[doc = "Seed error interrupt status"] 34958 #[doc = "Parity control enable"]
28626 pub fn set_seis(&mut self, val: bool) { 34959 pub fn set_pce(&mut self, val: bool) {
28627 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 34960 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
28628 } 34961 }
28629 } 34962 #[doc = "Wakeup method"]
28630 impl Default for Sr { 34963 pub const fn wake(&self) -> super::vals::Wake {
28631 fn default() -> Sr { 34964 let val = (self.0 >> 11usize) & 0x01;
28632 Sr(0) 34965 super::vals::Wake(val as u8)
34966 }
34967 #[doc = "Wakeup method"]
34968 pub fn set_wake(&mut self, val: super::vals::Wake) {
34969 self.0 = (self.0 & !(0x01 << 11usize)) | (((val.0 as u32) & 0x01) << 11usize);
34970 }
34971 #[doc = "Word length"]
34972 pub const fn m(&self) -> super::vals::M {
34973 let val = (self.0 >> 12usize) & 0x01;
34974 super::vals::M(val as u8)
34975 }
34976 #[doc = "Word length"]
34977 pub fn set_m(&mut self, val: super::vals::M) {
34978 self.0 = (self.0 & !(0x01 << 12usize)) | (((val.0 as u32) & 0x01) << 12usize);
34979 }
34980 #[doc = "USART enable"]
34981 pub const fn ue(&self) -> bool {
34982 let val = (self.0 >> 13usize) & 0x01;
34983 val != 0
34984 }
34985 #[doc = "USART enable"]
34986 pub fn set_ue(&mut self, val: bool) {
34987 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
28633 } 34988 }
28634 } 34989 }
28635 } 34990 impl Default for Cr1 {
28636} 34991 fn default() -> Cr1 {
28637pub mod spi_v1 { 34992 Cr1(0)
28638 use crate::generic::*; 34993 }
28639 #[doc = "Serial peripheral interface"]
28640 #[derive(Copy, Clone)]
28641 pub struct Spi(pub *mut u8);
28642 unsafe impl Send for Spi {}
28643 unsafe impl Sync for Spi {}
28644 impl Spi {
28645 #[doc = "control register 1"]
28646 pub fn cr1(self) -> Reg<regs::Cr1, RW> {
28647 unsafe { Reg::from_ptr(self.0.add(0usize)) }
28648 }
28649 #[doc = "control register 2"]
28650 pub fn cr2(self) -> Reg<regs::Cr2, RW> {
28651 unsafe { Reg::from_ptr(self.0.add(4usize)) }
28652 }
28653 #[doc = "status register"]
28654 pub fn sr(self) -> Reg<regs::Sr, RW> {
28655 unsafe { Reg::from_ptr(self.0.add(8usize)) }
28656 }
28657 #[doc = "data register"]
28658 pub fn dr(self) -> Reg<regs::Dr, RW> {
28659 unsafe { Reg::from_ptr(self.0.add(12usize)) }
28660 }
28661 #[doc = "CRC polynomial register"]
28662 pub fn crcpr(self) -> Reg<regs::Crcpr, RW> {
28663 unsafe { Reg::from_ptr(self.0.add(16usize)) }
28664 }
28665 #[doc = "RX CRC register"]
28666 pub fn rxcrcr(self) -> Reg<regs::Rxcrcr, R> {
28667 unsafe { Reg::from_ptr(self.0.add(20usize)) }
28668 }
28669 #[doc = "TX CRC register"]
28670 pub fn txcrcr(self) -> Reg<regs::Txcrcr, R> {
28671 unsafe { Reg::from_ptr(self.0.add(24usize)) }
28672 } 34994 }
28673 } 34995 #[doc = "Status register"]
28674 pub mod regs {
28675 use crate::generic::*;
28676 #[doc = "status register"]
28677 #[repr(transparent)] 34996 #[repr(transparent)]
28678 #[derive(Copy, Clone, Eq, PartialEq)] 34997 #[derive(Copy, Clone, Eq, PartialEq)]
28679 pub struct Sr(pub u32); 34998 pub struct Sr(pub u32);
28680 impl Sr { 34999 impl Sr {
28681 #[doc = "Receive buffer not empty"] 35000 #[doc = "Parity error"]
28682 pub const fn rxne(&self) -> bool { 35001 pub const fn pe(&self) -> bool {
28683 let val = (self.0 >> 0usize) & 0x01; 35002 let val = (self.0 >> 0usize) & 0x01;
28684 val != 0 35003 val != 0
28685 } 35004 }
28686 #[doc = "Receive buffer not empty"] 35005 #[doc = "Parity error"]
28687 pub fn set_rxne(&mut self, val: bool) { 35006 pub fn set_pe(&mut self, val: bool) {
28688 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 35007 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
28689 } 35008 }
28690 #[doc = "Transmit buffer empty"] 35009 #[doc = "Framing error"]
28691 pub const fn txe(&self) -> bool { 35010 pub const fn fe(&self) -> bool {
28692 let val = (self.0 >> 1usize) & 0x01; 35011 let val = (self.0 >> 1usize) & 0x01;
28693 val != 0 35012 val != 0
28694 } 35013 }
28695 #[doc = "Transmit buffer empty"] 35014 #[doc = "Framing error"]
28696 pub fn set_txe(&mut self, val: bool) { 35015 pub fn set_fe(&mut self, val: bool) {
28697 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 35016 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
28698 } 35017 }
28699 #[doc = "CRC error flag"] 35018 #[doc = "Noise error flag"]
28700 pub const fn crcerr(&self) -> bool { 35019 pub const fn ne(&self) -> bool {
35020 let val = (self.0 >> 2usize) & 0x01;
35021 val != 0
35022 }
35023 #[doc = "Noise error flag"]
35024 pub fn set_ne(&mut self, val: bool) {
35025 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
35026 }
35027 #[doc = "Overrun error"]
35028 pub const fn ore(&self) -> bool {
35029 let val = (self.0 >> 3usize) & 0x01;
35030 val != 0
35031 }
35032 #[doc = "Overrun error"]
35033 pub fn set_ore(&mut self, val: bool) {
35034 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
35035 }
35036 #[doc = "IDLE line detected"]
35037 pub const fn idle(&self) -> bool {
28701 let val = (self.0 >> 4usize) & 0x01; 35038 let val = (self.0 >> 4usize) & 0x01;
28702 val != 0 35039 val != 0
28703 } 35040 }
28704 #[doc = "CRC error flag"] 35041 #[doc = "IDLE line detected"]
28705 pub fn set_crcerr(&mut self, val: bool) { 35042 pub fn set_idle(&mut self, val: bool) {
28706 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize); 35043 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
28707 } 35044 }
28708 #[doc = "Mode fault"] 35045 #[doc = "Read data register not empty"]
28709 pub const fn modf(&self) -> bool { 35046 pub const fn rxne(&self) -> bool {
28710 let val = (self.0 >> 5usize) & 0x01; 35047 let val = (self.0 >> 5usize) & 0x01;
28711 val != 0 35048 val != 0
28712 } 35049 }
28713 #[doc = "Mode fault"] 35050 #[doc = "Read data register not empty"]
28714 pub fn set_modf(&mut self, val: bool) { 35051 pub fn set_rxne(&mut self, val: bool) {
28715 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 35052 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
28716 } 35053 }
28717 #[doc = "Overrun flag"] 35054 #[doc = "Transmission complete"]
28718 pub const fn ovr(&self) -> bool { 35055 pub const fn tc(&self) -> bool {
28719 let val = (self.0 >> 6usize) & 0x01; 35056 let val = (self.0 >> 6usize) & 0x01;
28720 val != 0 35057 val != 0
28721 } 35058 }
28722 #[doc = "Overrun flag"] 35059 #[doc = "Transmission complete"]
28723 pub fn set_ovr(&mut self, val: bool) { 35060 pub fn set_tc(&mut self, val: bool) {
28724 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 35061 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
28725 } 35062 }
28726 #[doc = "Busy flag"] 35063 #[doc = "Transmit data register empty"]
28727 pub const fn bsy(&self) -> bool { 35064 pub const fn txe(&self) -> bool {
28728 let val = (self.0 >> 7usize) & 0x01; 35065 let val = (self.0 >> 7usize) & 0x01;
28729 val != 0 35066 val != 0
28730 } 35067 }
28731 #[doc = "Busy flag"] 35068 #[doc = "Transmit data register empty"]
28732 pub fn set_bsy(&mut self, val: bool) { 35069 pub fn set_txe(&mut self, val: bool) {
28733 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 35070 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
28734 } 35071 }
28735 #[doc = "TI frame format error"] 35072 #[doc = "LIN break detection flag"]
28736 pub const fn fre(&self) -> bool { 35073 pub const fn lbd(&self) -> bool {
28737 let val = (self.0 >> 8usize) & 0x01; 35074 let val = (self.0 >> 8usize) & 0x01;
28738 val != 0 35075 val != 0
28739 } 35076 }
28740 #[doc = "TI frame format error"] 35077 #[doc = "LIN break detection flag"]
28741 pub fn set_fre(&mut self, val: bool) { 35078 pub fn set_lbd(&mut self, val: bool) {
28742 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 35079 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
28743 } 35080 }
28744 } 35081 }
@@ -28747,237 +35084,241 @@ pub mod spi_v1 {
28747 Sr(0) 35084 Sr(0)
28748 } 35085 }
28749 } 35086 }
28750 #[doc = "CRC polynomial register"] 35087 #[doc = "Baud rate register"]
28751 #[repr(transparent)] 35088 #[repr(transparent)]
28752 #[derive(Copy, Clone, Eq, PartialEq)] 35089 #[derive(Copy, Clone, Eq, PartialEq)]
28753 pub struct Crcpr(pub u32); 35090 pub struct Brr(pub u32);
28754 impl Crcpr { 35091 impl Brr {
28755 #[doc = "CRC polynomial register"] 35092 #[doc = "fraction of USARTDIV"]
28756 pub const fn crcpoly(&self) -> u16 { 35093 pub const fn div_fraction(&self) -> u8 {
28757 let val = (self.0 >> 0usize) & 0xffff; 35094 let val = (self.0 >> 0usize) & 0x0f;
35095 val as u8
35096 }
35097 #[doc = "fraction of USARTDIV"]
35098 pub fn set_div_fraction(&mut self, val: u8) {
35099 self.0 = (self.0 & !(0x0f << 0usize)) | (((val as u32) & 0x0f) << 0usize);
35100 }
35101 #[doc = "mantissa of USARTDIV"]
35102 pub const fn div_mantissa(&self) -> u16 {
35103 let val = (self.0 >> 4usize) & 0x0fff;
28758 val as u16 35104 val as u16
28759 } 35105 }
28760 #[doc = "CRC polynomial register"] 35106 #[doc = "mantissa of USARTDIV"]
28761 pub fn set_crcpoly(&mut self, val: u16) { 35107 pub fn set_div_mantissa(&mut self, val: u16) {
28762 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize); 35108 self.0 = (self.0 & !(0x0fff << 4usize)) | (((val as u32) & 0x0fff) << 4usize);
28763 } 35109 }
28764 } 35110 }
28765 impl Default for Crcpr { 35111 impl Default for Brr {
28766 fn default() -> Crcpr { 35112 fn default() -> Brr {
28767 Crcpr(0) 35113 Brr(0)
28768 } 35114 }
28769 } 35115 }
28770 #[doc = "control register 2"] 35116 #[doc = "Control register 3"]
28771 #[repr(transparent)] 35117 #[repr(transparent)]
28772 #[derive(Copy, Clone, Eq, PartialEq)] 35118 #[derive(Copy, Clone, Eq, PartialEq)]
28773 pub struct Cr2(pub u32); 35119 pub struct Cr3Usart(pub u32);
28774 impl Cr2 { 35120 impl Cr3Usart {
28775 #[doc = "Rx buffer DMA enable"] 35121 #[doc = "Error interrupt enable"]
28776 pub const fn rxdmaen(&self) -> bool { 35122 pub const fn eie(&self) -> bool {
28777 let val = (self.0 >> 0usize) & 0x01; 35123 let val = (self.0 >> 0usize) & 0x01;
28778 val != 0 35124 val != 0
28779 } 35125 }
28780 #[doc = "Rx buffer DMA enable"] 35126 #[doc = "Error interrupt enable"]
28781 pub fn set_rxdmaen(&mut self, val: bool) { 35127 pub fn set_eie(&mut self, val: bool) {
28782 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize); 35128 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
28783 } 35129 }
28784 #[doc = "Tx buffer DMA enable"] 35130 #[doc = "IrDA mode enable"]
28785 pub const fn txdmaen(&self) -> bool { 35131 pub const fn iren(&self) -> bool {
28786 let val = (self.0 >> 1usize) & 0x01; 35132 let val = (self.0 >> 1usize) & 0x01;
28787 val != 0 35133 val != 0
28788 } 35134 }
28789 #[doc = "Tx buffer DMA enable"] 35135 #[doc = "IrDA mode enable"]
28790 pub fn set_txdmaen(&mut self, val: bool) { 35136 pub fn set_iren(&mut self, val: bool) {
28791 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize); 35137 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
28792 } 35138 }
28793 #[doc = "SS output enable"] 35139 #[doc = "IrDA low-power"]
28794 pub const fn ssoe(&self) -> bool { 35140 pub const fn irlp(&self) -> super::vals::Irlp {
28795 let val = (self.0 >> 2usize) & 0x01; 35141 let val = (self.0 >> 2usize) & 0x01;
28796 val != 0 35142 super::vals::Irlp(val as u8)
28797 } 35143 }
28798 #[doc = "SS output enable"] 35144 #[doc = "IrDA low-power"]
28799 pub fn set_ssoe(&mut self, val: bool) { 35145 pub fn set_irlp(&mut self, val: super::vals::Irlp) {
28800 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize); 35146 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize);
28801 } 35147 }
28802 #[doc = "Frame format"] 35148 #[doc = "Half-duplex selection"]
28803 pub const fn frf(&self) -> super::vals::Frf { 35149 pub const fn hdsel(&self) -> super::vals::Hdsel {
35150 let val = (self.0 >> 3usize) & 0x01;
35151 super::vals::Hdsel(val as u8)
35152 }
35153 #[doc = "Half-duplex selection"]
35154 pub fn set_hdsel(&mut self, val: super::vals::Hdsel) {
35155 self.0 = (self.0 & !(0x01 << 3usize)) | (((val.0 as u32) & 0x01) << 3usize);
35156 }
35157 #[doc = "Smartcard NACK enable"]
35158 pub const fn nack(&self) -> bool {
28804 let val = (self.0 >> 4usize) & 0x01; 35159 let val = (self.0 >> 4usize) & 0x01;
28805 super::vals::Frf(val as u8) 35160 val != 0
28806 } 35161 }
28807 #[doc = "Frame format"] 35162 #[doc = "Smartcard NACK enable"]
28808 pub fn set_frf(&mut self, val: super::vals::Frf) { 35163 pub fn set_nack(&mut self, val: bool) {
28809 self.0 = (self.0 & !(0x01 << 4usize)) | (((val.0 as u32) & 0x01) << 4usize); 35164 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
28810 } 35165 }
28811 #[doc = "Error interrupt enable"] 35166 #[doc = "Smartcard mode enable"]
28812 pub const fn errie(&self) -> bool { 35167 pub const fn scen(&self) -> bool {
28813 let val = (self.0 >> 5usize) & 0x01; 35168 let val = (self.0 >> 5usize) & 0x01;
28814 val != 0 35169 val != 0
28815 } 35170 }
28816 #[doc = "Error interrupt enable"] 35171 #[doc = "Smartcard mode enable"]
28817 pub fn set_errie(&mut self, val: bool) { 35172 pub fn set_scen(&mut self, val: bool) {
28818 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize); 35173 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
28819 } 35174 }
28820 #[doc = "RX buffer not empty interrupt enable"] 35175 #[doc = "DMA enable receiver"]
28821 pub const fn rxneie(&self) -> bool { 35176 pub const fn dmar(&self) -> bool {
28822 let val = (self.0 >> 6usize) & 0x01; 35177 let val = (self.0 >> 6usize) & 0x01;
28823 val != 0 35178 val != 0
28824 } 35179 }
28825 #[doc = "RX buffer not empty interrupt enable"] 35180 #[doc = "DMA enable receiver"]
28826 pub fn set_rxneie(&mut self, val: bool) { 35181 pub fn set_dmar(&mut self, val: bool) {
28827 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 35182 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
28828 } 35183 }
28829 #[doc = "Tx buffer empty interrupt enable"] 35184 #[doc = "DMA enable transmitter"]
28830 pub const fn txeie(&self) -> bool { 35185 pub const fn dmat(&self) -> bool {
28831 let val = (self.0 >> 7usize) & 0x01; 35186 let val = (self.0 >> 7usize) & 0x01;
28832 val != 0 35187 val != 0
28833 } 35188 }
28834 #[doc = "Tx buffer empty interrupt enable"] 35189 #[doc = "DMA enable transmitter"]
28835 pub fn set_txeie(&mut self, val: bool) { 35190 pub fn set_dmat(&mut self, val: bool) {
28836 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize); 35191 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
28837 } 35192 }
28838 } 35193 #[doc = "RTS enable"]
28839 impl Default for Cr2 { 35194 pub const fn rtse(&self) -> bool {
28840 fn default() -> Cr2 { 35195 let val = (self.0 >> 8usize) & 0x01;
28841 Cr2(0) 35196 val != 0
28842 }
28843 }
28844 #[doc = "RX CRC register"]
28845 #[repr(transparent)]
28846 #[derive(Copy, Clone, Eq, PartialEq)]
28847 pub struct Rxcrcr(pub u32);
28848 impl Rxcrcr {
28849 #[doc = "Rx CRC register"]
28850 pub const fn rx_crc(&self) -> u16 {
28851 let val = (self.0 >> 0usize) & 0xffff;
28852 val as u16
28853 }
28854 #[doc = "Rx CRC register"]
28855 pub fn set_rx_crc(&mut self, val: u16) {
28856 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize);
28857 }
28858 }
28859 impl Default for Rxcrcr {
28860 fn default() -> Rxcrcr {
28861 Rxcrcr(0)
28862 } 35197 }
28863 } 35198 #[doc = "RTS enable"]
28864 #[doc = "data register"] 35199 pub fn set_rtse(&mut self, val: bool) {
28865 #[repr(transparent)] 35200 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
28866 #[derive(Copy, Clone, Eq, PartialEq)]
28867 pub struct Dr(pub u32);
28868 impl Dr {
28869 #[doc = "Data register"]
28870 pub const fn dr(&self) -> u16 {
28871 let val = (self.0 >> 0usize) & 0xffff;
28872 val as u16
28873 } 35201 }
28874 #[doc = "Data register"] 35202 #[doc = "CTS enable"]
28875 pub fn set_dr(&mut self, val: u16) { 35203 pub const fn ctse(&self) -> bool {
28876 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize); 35204 let val = (self.0 >> 9usize) & 0x01;
35205 val != 0
28877 } 35206 }
28878 } 35207 #[doc = "CTS enable"]
28879 impl Default for Dr { 35208 pub fn set_ctse(&mut self, val: bool) {
28880 fn default() -> Dr { 35209 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
28881 Dr(0)
28882 } 35210 }
28883 } 35211 #[doc = "CTS interrupt enable"]
28884 #[doc = "TX CRC register"] 35212 pub const fn ctsie(&self) -> bool {
28885 #[repr(transparent)] 35213 let val = (self.0 >> 10usize) & 0x01;
28886 #[derive(Copy, Clone, Eq, PartialEq)] 35214 val != 0
28887 pub struct Txcrcr(pub u32);
28888 impl Txcrcr {
28889 #[doc = "Tx CRC register"]
28890 pub const fn tx_crc(&self) -> u16 {
28891 let val = (self.0 >> 0usize) & 0xffff;
28892 val as u16
28893 } 35215 }
28894 #[doc = "Tx CRC register"] 35216 #[doc = "CTS interrupt enable"]
28895 pub fn set_tx_crc(&mut self, val: u16) { 35217 pub fn set_ctsie(&mut self, val: bool) {
28896 self.0 = (self.0 & !(0xffff << 0usize)) | (((val as u32) & 0xffff) << 0usize); 35218 self.0 = (self.0 & !(0x01 << 10usize)) | (((val as u32) & 0x01) << 10usize);
28897 } 35219 }
28898 } 35220 }
28899 impl Default for Txcrcr { 35221 impl Default for Cr3Usart {
28900 fn default() -> Txcrcr { 35222 fn default() -> Cr3Usart {
28901 Txcrcr(0) 35223 Cr3Usart(0)
28902 } 35224 }
28903 } 35225 }
28904 #[doc = "control register 1"] 35226 #[doc = "Status register"]
28905 #[repr(transparent)] 35227 #[repr(transparent)]
28906 #[derive(Copy, Clone, Eq, PartialEq)] 35228 #[derive(Copy, Clone, Eq, PartialEq)]
28907 pub struct Cr1(pub u32); 35229 pub struct SrUsart(pub u32);
28908 impl Cr1 { 35230 impl SrUsart {
28909 #[doc = "Clock phase"] 35231 #[doc = "Parity error"]
28910 pub const fn cpha(&self) -> super::vals::Cpha { 35232 pub const fn pe(&self) -> bool {
28911 let val = (self.0 >> 0usize) & 0x01; 35233 let val = (self.0 >> 0usize) & 0x01;
28912 super::vals::Cpha(val as u8) 35234 val != 0
28913 } 35235 }
28914 #[doc = "Clock phase"] 35236 #[doc = "Parity error"]
28915 pub fn set_cpha(&mut self, val: super::vals::Cpha) { 35237 pub fn set_pe(&mut self, val: bool) {
28916 self.0 = (self.0 & !(0x01 << 0usize)) | (((val.0 as u32) & 0x01) << 0usize); 35238 self.0 = (self.0 & !(0x01 << 0usize)) | (((val as u32) & 0x01) << 0usize);
28917 } 35239 }
28918 #[doc = "Clock polarity"] 35240 #[doc = "Framing error"]
28919 pub const fn cpol(&self) -> super::vals::Cpol { 35241 pub const fn fe(&self) -> bool {
28920 let val = (self.0 >> 1usize) & 0x01; 35242 let val = (self.0 >> 1usize) & 0x01;
28921 super::vals::Cpol(val as u8) 35243 val != 0
28922 } 35244 }
28923 #[doc = "Clock polarity"] 35245 #[doc = "Framing error"]
28924 pub fn set_cpol(&mut self, val: super::vals::Cpol) { 35246 pub fn set_fe(&mut self, val: bool) {
28925 self.0 = (self.0 & !(0x01 << 1usize)) | (((val.0 as u32) & 0x01) << 1usize); 35247 self.0 = (self.0 & !(0x01 << 1usize)) | (((val as u32) & 0x01) << 1usize);
28926 } 35248 }
28927 #[doc = "Master selection"] 35249 #[doc = "Noise error flag"]
28928 pub const fn mstr(&self) -> super::vals::Mstr { 35250 pub const fn ne(&self) -> bool {
28929 let val = (self.0 >> 2usize) & 0x01; 35251 let val = (self.0 >> 2usize) & 0x01;
28930 super::vals::Mstr(val as u8) 35252 val != 0
28931 } 35253 }
28932 #[doc = "Master selection"] 35254 #[doc = "Noise error flag"]
28933 pub fn set_mstr(&mut self, val: super::vals::Mstr) { 35255 pub fn set_ne(&mut self, val: bool) {
28934 self.0 = (self.0 & !(0x01 << 2usize)) | (((val.0 as u32) & 0x01) << 2usize); 35256 self.0 = (self.0 & !(0x01 << 2usize)) | (((val as u32) & 0x01) << 2usize);
28935 } 35257 }
28936 #[doc = "Baud rate control"] 35258 #[doc = "Overrun error"]
28937 pub const fn br(&self) -> super::vals::Br { 35259 pub const fn ore(&self) -> bool {
28938 let val = (self.0 >> 3usize) & 0x07; 35260 let val = (self.0 >> 3usize) & 0x01;
28939 super::vals::Br(val as u8) 35261 val != 0
28940 } 35262 }
28941 #[doc = "Baud rate control"] 35263 #[doc = "Overrun error"]
28942 pub fn set_br(&mut self, val: super::vals::Br) { 35264 pub fn set_ore(&mut self, val: bool) {
28943 self.0 = (self.0 & !(0x07 << 3usize)) | (((val.0 as u32) & 0x07) << 3usize); 35265 self.0 = (self.0 & !(0x01 << 3usize)) | (((val as u32) & 0x01) << 3usize);
28944 } 35266 }
28945 #[doc = "SPI enable"] 35267 #[doc = "IDLE line detected"]
28946 pub const fn spe(&self) -> bool { 35268 pub const fn idle(&self) -> bool {
35269 let val = (self.0 >> 4usize) & 0x01;
35270 val != 0
35271 }
35272 #[doc = "IDLE line detected"]
35273 pub fn set_idle(&mut self, val: bool) {
35274 self.0 = (self.0 & !(0x01 << 4usize)) | (((val as u32) & 0x01) << 4usize);
35275 }
35276 #[doc = "Read data register not empty"]
35277 pub const fn rxne(&self) -> bool {
35278 let val = (self.0 >> 5usize) & 0x01;
35279 val != 0
35280 }
35281 #[doc = "Read data register not empty"]
35282 pub fn set_rxne(&mut self, val: bool) {
35283 self.0 = (self.0 & !(0x01 << 5usize)) | (((val as u32) & 0x01) << 5usize);
35284 }
35285 #[doc = "Transmission complete"]
35286 pub const fn tc(&self) -> bool {
28947 let val = (self.0 >> 6usize) & 0x01; 35287 let val = (self.0 >> 6usize) & 0x01;
28948 val != 0 35288 val != 0
28949 } 35289 }
28950 #[doc = "SPI enable"] 35290 #[doc = "Transmission complete"]
28951 pub fn set_spe(&mut self, val: bool) { 35291 pub fn set_tc(&mut self, val: bool) {
28952 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize); 35292 self.0 = (self.0 & !(0x01 << 6usize)) | (((val as u32) & 0x01) << 6usize);
28953 } 35293 }
28954 #[doc = "Frame format"] 35294 #[doc = "Transmit data register empty"]
28955 pub const fn lsbfirst(&self) -> super::vals::Lsbfirst { 35295 pub const fn txe(&self) -> bool {
28956 let val = (self.0 >> 7usize) & 0x01; 35296 let val = (self.0 >> 7usize) & 0x01;
28957 super::vals::Lsbfirst(val as u8) 35297 val != 0
28958 } 35298 }
28959 #[doc = "Frame format"] 35299 #[doc = "Transmit data register empty"]
28960 pub fn set_lsbfirst(&mut self, val: super::vals::Lsbfirst) { 35300 pub fn set_txe(&mut self, val: bool) {
28961 self.0 = (self.0 & !(0x01 << 7usize)) | (((val.0 as u32) & 0x01) << 7usize); 35301 self.0 = (self.0 & !(0x01 << 7usize)) | (((val as u32) & 0x01) << 7usize);
28962 } 35302 }
28963 #[doc = "Internal slave select"] 35303 #[doc = "LIN break detection flag"]
28964 pub const fn ssi(&self) -> bool { 35304 pub const fn lbd(&self) -> bool {
28965 let val = (self.0 >> 8usize) & 0x01; 35305 let val = (self.0 >> 8usize) & 0x01;
28966 val != 0 35306 val != 0
28967 } 35307 }
28968 #[doc = "Internal slave select"] 35308 #[doc = "LIN break detection flag"]
28969 pub fn set_ssi(&mut self, val: bool) { 35309 pub fn set_lbd(&mut self, val: bool) {
28970 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize); 35310 self.0 = (self.0 & !(0x01 << 8usize)) | (((val as u32) & 0x01) << 8usize);
28971 } 35311 }
28972 #[doc = "Software slave management"] 35312 #[doc = "CTS flag"]
28973 pub const fn ssm(&self) -> bool { 35313 pub const fn cts(&self) -> bool {
28974 let val = (self.0 >> 9usize) & 0x01; 35314 let val = (self.0 >> 9usize) & 0x01;
28975 val != 0 35315 val != 0
28976 } 35316 }
28977 #[doc = "Software slave management"] 35317 #[doc = "CTS flag"]
28978 pub fn set_ssm(&mut self, val: bool) { 35318 pub fn set_cts(&mut self, val: bool) {
28979 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize); 35319 self.0 = (self.0 & !(0x01 << 9usize)) | (((val as u32) & 0x01) << 9usize);
28980 } 35320 }
35321<<<<<<< HEAD
28981 #[doc = "Receive only"] 35322 #[doc = "Receive only"]
28982 pub const fn rxonly(&self) -> super::vals::Rxonly { 35323 pub const fn rxonly(&self) -> super::vals::Rxonly {
28983 let val = (self.0 >> 10usize) & 0x01; 35324 let val = (self.0 >> 10usize) & 0x01;
@@ -29077,167 +35418,43 @@ pub mod spi_v1 {
29077 #[doc = "Hardware CRC calculation enable"] 35418 #[doc = "Hardware CRC calculation enable"]
29078 pub fn set_crcen(&mut self, val: bool) { 35419 pub fn set_crcen(&mut self, val: bool) {
29079 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize); 35420 self.0 = (self.0 & !(0x01 << 13usize)) | (((val as u32) & 0x01) << 13usize);
35421=======
35422 }
35423 impl Default for SrUsart {
35424 fn default() -> SrUsart {
35425 SrUsart(0)
35426>>>>>>> cbbaaa9 (Fix RNG interrupt name)
29080 } 35427 }
29081 #[doc = "Output enable in bidirectional mode"] 35428 }
29082 pub const fn bidioe(&self) -> super::vals::Bidioe { 35429 #[doc = "Guard time and prescaler register"]
29083 let val = (self.0 >> 14usize) & 0x01; 35430 #[repr(transparent)]
29084 super::vals::Bidioe(val as u8) 35431 #[derive(Copy, Clone, Eq, PartialEq)]
35432 pub struct Gtpr(pub u32);
35433 impl Gtpr {
35434 #[doc = "Prescaler value"]
35435 pub const fn psc(&self) -> u8 {
35436 let val = (self.0 >> 0usize) & 0xff;
35437 val as u8
29085 } 35438 }
29086 #[doc = "Output enable in bidirectional mode"] 35439 #[doc = "Prescaler value"]
29087 pub fn set_bidioe(&mut self, val: super::vals::Bidioe) { 35440 pub fn set_psc(&mut self, val: u8) {
29088 self.0 = (self.0 & !(0x01 << 14usize)) | (((val.0 as u32) & 0x01) << 14usize); 35441 self.0 = (self.0 & !(0xff << 0usize)) | (((val as u32) & 0xff) << 0usize);
29089 } 35442 }
29090 #[doc = "Bidirectional data mode enable"] 35443 #[doc = "Guard time value"]
29091 pub const fn bidimode(&self) -> super::vals::Bidimode { 35444 pub const fn gt(&self) -> u8 {
29092 let val = (self.0 >> 15usize) & 0x01; 35445 let val = (self.0 >> 8usize) & 0xff;
29093 super::vals::Bidimode(val as u8) 35446 val as u8
29094 } 35447 }
29095 #[doc = "Bidirectional data mode enable"] 35448 #[doc = "Guard time value"]
29096 pub fn set_bidimode(&mut self, val: super::vals::Bidimode) { 35449 pub fn set_gt(&mut self, val: u8) {
29097 self.0 = (self.0 & !(0x01 << 15usize)) | (((val.0 as u32) & 0x01) << 15usize); 35450 self.0 = (self.0 & !(0xff << 8usize)) | (((val as u32) & 0xff) << 8usize);
29098 } 35451 }
29099 } 35452 }
29100 impl Default for Cr1 { 35453 impl Default for Gtpr {
29101 fn default() -> Cr1 { 35454 fn default() -> Gtpr {
29102 Cr1(0) 35455 Gtpr(0)
29103 } 35456 }
29104>>>>>>> fc21f52 (Better interrupt handling) 35457>>>>>>> fc21f52 (Better interrupt handling)
29105 } 35458 }
29106 } 35459 }
29107 pub mod vals {
29108 use crate::generic::*;
29109 #[repr(transparent)]
29110 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29111 pub struct Cpha(pub u8);
29112 impl Cpha {
29113 #[doc = "The first clock transition is the first data capture edge"]
29114 pub const FIRSTEDGE: Self = Self(0);
29115 #[doc = "The second clock transition is the first data capture edge"]
29116 pub const SECONDEDGE: Self = Self(0x01);
29117 }
29118 #[repr(transparent)]
29119 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29120 pub struct Crcnext(pub u8);
29121 impl Crcnext {
29122 #[doc = "Next transmit value is from Tx buffer"]
29123 pub const TXBUFFER: Self = Self(0);
29124 #[doc = "Next transmit value is from Tx CRC register"]
29125 pub const CRC: Self = Self(0x01);
29126 }
29127 #[repr(transparent)]
29128 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29129 pub struct Bidioe(pub u8);
29130 impl Bidioe {
29131 #[doc = "Output disabled (receive-only mode)"]
29132 pub const OUTPUTDISABLED: Self = Self(0);
29133 #[doc = "Output enabled (transmit-only mode)"]
29134 pub const OUTPUTENABLED: Self = Self(0x01);
29135 }
29136 #[repr(transparent)]
29137 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29138 pub struct Lsbfirst(pub u8);
29139 impl Lsbfirst {
29140 #[doc = "Data is transmitted/received with the MSB first"]
29141 pub const MSBFIRST: Self = Self(0);
29142 #[doc = "Data is transmitted/received with the LSB first"]
29143 pub const LSBFIRST: Self = Self(0x01);
29144 }
29145 #[repr(transparent)]
29146 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29147 pub struct Rxonly(pub u8);
29148 impl Rxonly {
29149 #[doc = "Full duplex (Transmit and receive)"]
29150 pub const FULLDUPLEX: Self = Self(0);
29151 #[doc = "Output disabled (Receive-only mode)"]
29152 pub const OUTPUTDISABLED: Self = Self(0x01);
29153 }
29154 #[repr(transparent)]
29155 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29156 pub struct Dff(pub u8);
29157 impl Dff {
29158 #[doc = "8-bit data frame format is selected for transmission/reception"]
29159 pub const EIGHTBIT: Self = Self(0);
29160 #[doc = "16-bit data frame format is selected for transmission/reception"]
29161 pub const SIXTEENBIT: Self = Self(0x01);
29162 }
29163 #[repr(transparent)]
29164 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29165 pub struct Frf(pub u8);
29166 impl Frf {
29167 #[doc = "SPI Motorola mode"]
29168 pub const MOTOROLA: Self = Self(0);
29169 #[doc = "SPI TI mode"]
29170 pub const TI: Self = Self(0x01);
29171 }
29172 #[repr(transparent)]
29173 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29174 pub struct Mstr(pub u8);
29175 impl Mstr {
29176 #[doc = "Slave configuration"]
29177 pub const SLAVE: Self = Self(0);
29178 #[doc = "Master configuration"]
29179 pub const MASTER: Self = Self(0x01);
29180 }
29181 #[repr(transparent)]
29182 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29183 pub struct Bidimode(pub u8);
29184 impl Bidimode {
29185 #[doc = "2-line unidirectional data mode selected"]
29186 pub const UNIDIRECTIONAL: Self = Self(0);
29187 #[doc = "1-line bidirectional data mode selected"]
29188 pub const BIDIRECTIONAL: Self = Self(0x01);
29189 }
29190 #[repr(transparent)]
29191 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29192 pub struct Br(pub u8);
29193 impl Br {
29194 #[doc = "f_PCLK / 2"]
29195 pub const DIV2: Self = Self(0);
29196 #[doc = "f_PCLK / 4"]
29197 pub const DIV4: Self = Self(0x01);
29198 #[doc = "f_PCLK / 8"]
29199 pub const DIV8: Self = Self(0x02);
29200 #[doc = "f_PCLK / 16"]
29201 pub const DIV16: Self = Self(0x03);
29202 #[doc = "f_PCLK / 32"]
29203 pub const DIV32: Self = Self(0x04);
29204 #[doc = "f_PCLK / 64"]
29205 pub const DIV64: Self = Self(0x05);
29206 #[doc = "f_PCLK / 128"]
29207 pub const DIV128: Self = Self(0x06);
29208 #[doc = "f_PCLK / 256"]
29209 pub const DIV256: Self = Self(0x07);
29210 }
29211 #[repr(transparent)]
29212 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29213 pub struct Cpol(pub u8);
29214 impl Cpol {
29215 #[doc = "CK to 0 when idle"]
29216 pub const IDLELOW: Self = Self(0);
29217 #[doc = "CK to 1 when idle"]
29218 pub const IDLEHIGH: Self = Self(0x01);
29219 }
29220 #[repr(transparent)]
29221 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29222 pub struct Frer(pub u8);
29223 impl Frer {
29224 #[doc = "No frame format error"]
29225 pub const NOERROR: Self = Self(0);
29226 #[doc = "A frame format error occurred"]
29227 pub const ERROR: Self = Self(0x01);
29228 }
29229 #[repr(transparent)]
29230 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
29231 pub struct Iscfg(pub u8);
29232 impl Iscfg {
29233 #[doc = "Slave - transmit"]
29234 pub const SLAVETX: Self = Self(0);
29235 #[doc = "Slave - receive"]
29236 pub const SLAVERX: Self = Self(0x01);
29237 #[doc = "Master - transmit"]
29238 pub const MASTERTX: Self = Self(0x02);
29239 #[doc = "Master - receive"]
29240 pub const MASTERRX: Self = Self(0x03);
29241 }
29242 }
29243} 35460}
diff --git a/embassy-stm32/src/pac/stm32f405oe.rs b/embassy-stm32/src/pac/stm32f405oe.rs
index a722527d6..34ec39701 100644
--- a/embassy-stm32/src/pac/stm32f405oe.rs
+++ b/embassy-stm32/src/pac/stm32f405oe.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f405og.rs b/embassy-stm32/src/pac/stm32f405og.rs
index a722527d6..34ec39701 100644
--- a/embassy-stm32/src/pac/stm32f405og.rs
+++ b/embassy-stm32/src/pac/stm32f405og.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f405rg.rs b/embassy-stm32/src/pac/stm32f405rg.rs
index a722527d6..34ec39701 100644
--- a/embassy-stm32/src/pac/stm32f405rg.rs
+++ b/embassy-stm32/src/pac/stm32f405rg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f405vg.rs b/embassy-stm32/src/pac/stm32f405vg.rs
index a722527d6..34ec39701 100644
--- a/embassy-stm32/src/pac/stm32f405vg.rs
+++ b/embassy-stm32/src/pac/stm32f405vg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f405zg.rs b/embassy-stm32/src/pac/stm32f405zg.rs
index a722527d6..34ec39701 100644
--- a/embassy-stm32/src/pac/stm32f405zg.rs
+++ b/embassy-stm32/src/pac/stm32f405zg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f407ie.rs b/embassy-stm32/src/pac/stm32f407ie.rs
index 1ae7f70b9..40da013bc 100644
--- a/embassy-stm32/src/pac/stm32f407ie.rs
+++ b/embassy-stm32/src/pac/stm32f407ie.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f407ig.rs b/embassy-stm32/src/pac/stm32f407ig.rs
index 1ae7f70b9..40da013bc 100644
--- a/embassy-stm32/src/pac/stm32f407ig.rs
+++ b/embassy-stm32/src/pac/stm32f407ig.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f407ve.rs b/embassy-stm32/src/pac/stm32f407ve.rs
index 1ae7f70b9..40da013bc 100644
--- a/embassy-stm32/src/pac/stm32f407ve.rs
+++ b/embassy-stm32/src/pac/stm32f407ve.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f407vg.rs b/embassy-stm32/src/pac/stm32f407vg.rs
index 1ae7f70b9..40da013bc 100644
--- a/embassy-stm32/src/pac/stm32f407vg.rs
+++ b/embassy-stm32/src/pac/stm32f407vg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f407ze.rs b/embassy-stm32/src/pac/stm32f407ze.rs
index 1ae7f70b9..40da013bc 100644
--- a/embassy-stm32/src/pac/stm32f407ze.rs
+++ b/embassy-stm32/src/pac/stm32f407ze.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f407zg.rs b/embassy-stm32/src/pac/stm32f407zg.rs
index 1ae7f70b9..40da013bc 100644
--- a/embassy-stm32/src/pac/stm32f407zg.rs
+++ b/embassy-stm32/src/pac/stm32f407zg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f412ce.rs b/embassy-stm32/src/pac/stm32f412ce.rs
index 530a54457..f978e1dbb 100644
--- a/embassy-stm32/src/pac/stm32f412ce.rs
+++ b/embassy-stm32/src/pac/stm32f412ce.rs
@@ -94,6 +94,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
94impl_gpio_pin!(PH15, 7, 15, EXTI15); 94impl_gpio_pin!(PH15, 7, 15, EXTI15);
95pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 95pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
96<<<<<<< HEAD 96<<<<<<< HEAD
97<<<<<<< HEAD
97impl_rng!(RNG, RNG); 98impl_rng!(RNG, RNG);
98pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 99pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
99impl_spi!(SPI1, APB2); 100impl_spi!(SPI1, APB2);
@@ -134,6 +135,9 @@ impl_spi_pin!(SPI5, SckPin, PB0, 6);
134impl_spi_pin!(SPI5, MosiPin, PB8, 6); 135impl_spi_pin!(SPI5, MosiPin, PB8, 6);
135======= 136=======
136impl_rng!(RNG); 137impl_rng!(RNG);
138=======
139impl_rng!(RNG, RNG);
140>>>>>>> cbbaaa9 (Fix RNG interrupt name)
137pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 141pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
138pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 142pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
139pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 143pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f412cg.rs b/embassy-stm32/src/pac/stm32f412cg.rs
index 530a54457..f978e1dbb 100644
--- a/embassy-stm32/src/pac/stm32f412cg.rs
+++ b/embassy-stm32/src/pac/stm32f412cg.rs
@@ -94,6 +94,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
94impl_gpio_pin!(PH15, 7, 15, EXTI15); 94impl_gpio_pin!(PH15, 7, 15, EXTI15);
95pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 95pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
96<<<<<<< HEAD 96<<<<<<< HEAD
97<<<<<<< HEAD
97impl_rng!(RNG, RNG); 98impl_rng!(RNG, RNG);
98pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 99pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
99impl_spi!(SPI1, APB2); 100impl_spi!(SPI1, APB2);
@@ -134,6 +135,9 @@ impl_spi_pin!(SPI5, SckPin, PB0, 6);
134impl_spi_pin!(SPI5, MosiPin, PB8, 6); 135impl_spi_pin!(SPI5, MosiPin, PB8, 6);
135======= 136=======
136impl_rng!(RNG); 137impl_rng!(RNG);
138=======
139impl_rng!(RNG, RNG);
140>>>>>>> cbbaaa9 (Fix RNG interrupt name)
137pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 141pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
138pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 142pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
139pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 143pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f412re.rs b/embassy-stm32/src/pac/stm32f412re.rs
index ee37b414f..435262004 100644
--- a/embassy-stm32/src/pac/stm32f412re.rs
+++ b/embassy-stm32/src/pac/stm32f412re.rs
@@ -111,6 +111,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15); 111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
113<<<<<<< HEAD 113<<<<<<< HEAD
114<<<<<<< HEAD
114impl_rng!(RNG, RNG); 115impl_rng!(RNG, RNG);
115pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 116pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
116impl_spi!(SPI1, APB2); 117impl_spi!(SPI1, APB2);
@@ -153,6 +154,9 @@ impl_spi_pin!(SPI5, SckPin, PB0, 6);
153impl_spi_pin!(SPI5, MosiPin, PB8, 6); 154impl_spi_pin!(SPI5, MosiPin, PB8, 6);
154======= 155=======
155impl_rng!(RNG); 156impl_rng!(RNG);
157=======
158impl_rng!(RNG, RNG);
159>>>>>>> cbbaaa9 (Fix RNG interrupt name)
156pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 160pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
157pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 161pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
158pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 162pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f412rg.rs b/embassy-stm32/src/pac/stm32f412rg.rs
index ee37b414f..435262004 100644
--- a/embassy-stm32/src/pac/stm32f412rg.rs
+++ b/embassy-stm32/src/pac/stm32f412rg.rs
@@ -111,6 +111,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
111impl_gpio_pin!(PH15, 7, 15, EXTI15); 111impl_gpio_pin!(PH15, 7, 15, EXTI15);
112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 112pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
113<<<<<<< HEAD 113<<<<<<< HEAD
114<<<<<<< HEAD
114impl_rng!(RNG, RNG); 115impl_rng!(RNG, RNG);
115pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 116pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
116impl_spi!(SPI1, APB2); 117impl_spi!(SPI1, APB2);
@@ -153,6 +154,9 @@ impl_spi_pin!(SPI5, SckPin, PB0, 6);
153impl_spi_pin!(SPI5, MosiPin, PB8, 6); 154impl_spi_pin!(SPI5, MosiPin, PB8, 6);
154======= 155=======
155impl_rng!(RNG); 156impl_rng!(RNG);
157=======
158impl_rng!(RNG, RNG);
159>>>>>>> cbbaaa9 (Fix RNG interrupt name)
156pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 160pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
157pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 161pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
158pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 162pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f412ve.rs b/embassy-stm32/src/pac/stm32f412ve.rs
index 34841d797..e2c8cffa9 100644
--- a/embassy-stm32/src/pac/stm32f412ve.rs
+++ b/embassy-stm32/src/pac/stm32f412ve.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -216,6 +217,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
216impl_spi_pin!(SPI5, MosiPin, PE6, 6); 217impl_spi_pin!(SPI5, MosiPin, PE6, 6);
217======= 218=======
218impl_rng!(RNG); 219impl_rng!(RNG);
220=======
221impl_rng!(RNG, RNG);
222>>>>>>> cbbaaa9 (Fix RNG interrupt name)
219pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 223pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
220pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 224pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
221pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 225pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f412vg.rs b/embassy-stm32/src/pac/stm32f412vg.rs
index 34841d797..e2c8cffa9 100644
--- a/embassy-stm32/src/pac/stm32f412vg.rs
+++ b/embassy-stm32/src/pac/stm32f412vg.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -216,6 +217,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
216impl_spi_pin!(SPI5, MosiPin, PE6, 6); 217impl_spi_pin!(SPI5, MosiPin, PE6, 6);
217======= 218=======
218impl_rng!(RNG); 219impl_rng!(RNG);
220=======
221impl_rng!(RNG, RNG);
222>>>>>>> cbbaaa9 (Fix RNG interrupt name)
219pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 223pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
220pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 224pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
221pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 225pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f412ze.rs b/embassy-stm32/src/pac/stm32f412ze.rs
index 34841d797..e2c8cffa9 100644
--- a/embassy-stm32/src/pac/stm32f412ze.rs
+++ b/embassy-stm32/src/pac/stm32f412ze.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -216,6 +217,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
216impl_spi_pin!(SPI5, MosiPin, PE6, 6); 217impl_spi_pin!(SPI5, MosiPin, PE6, 6);
217======= 218=======
218impl_rng!(RNG); 219impl_rng!(RNG);
220=======
221impl_rng!(RNG, RNG);
222>>>>>>> cbbaaa9 (Fix RNG interrupt name)
219pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 223pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
220pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 224pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
221pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 225pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f412zg.rs b/embassy-stm32/src/pac/stm32f412zg.rs
index 34841d797..e2c8cffa9 100644
--- a/embassy-stm32/src/pac/stm32f412zg.rs
+++ b/embassy-stm32/src/pac/stm32f412zg.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -216,6 +217,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
216impl_spi_pin!(SPI5, MosiPin, PE6, 6); 217impl_spi_pin!(SPI5, MosiPin, PE6, 6);
217======= 218=======
218impl_rng!(RNG); 219impl_rng!(RNG);
220=======
221impl_rng!(RNG, RNG);
222>>>>>>> cbbaaa9 (Fix RNG interrupt name)
219pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 223pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
220pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 224pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
221pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 225pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f413cg.rs b/embassy-stm32/src/pac/stm32f413cg.rs
index 1c2651467..f7630191f 100644
--- a/embassy-stm32/src/pac/stm32f413cg.rs
+++ b/embassy-stm32/src/pac/stm32f413cg.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -219,6 +220,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
219impl_spi_pin!(SPI5, MosiPin, PE6, 6); 220impl_spi_pin!(SPI5, MosiPin, PE6, 6);
220======= 221=======
221impl_rng!(RNG); 222impl_rng!(RNG);
223=======
224impl_rng!(RNG, RNG);
225>>>>>>> cbbaaa9 (Fix RNG interrupt name)
222pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 226pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
223pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 227pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
224pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 228pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f413ch.rs b/embassy-stm32/src/pac/stm32f413ch.rs
index 1c2651467..f7630191f 100644
--- a/embassy-stm32/src/pac/stm32f413ch.rs
+++ b/embassy-stm32/src/pac/stm32f413ch.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -219,6 +220,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
219impl_spi_pin!(SPI5, MosiPin, PE6, 6); 220impl_spi_pin!(SPI5, MosiPin, PE6, 6);
220======= 221=======
221impl_rng!(RNG); 222impl_rng!(RNG);
223=======
224impl_rng!(RNG, RNG);
225>>>>>>> cbbaaa9 (Fix RNG interrupt name)
222pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 226pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
223pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 227pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
224pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 228pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f413mg.rs b/embassy-stm32/src/pac/stm32f413mg.rs
index 6aac7e23d..7a572f3a3 100644
--- a/embassy-stm32/src/pac/stm32f413mg.rs
+++ b/embassy-stm32/src/pac/stm32f413mg.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -219,6 +220,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
219impl_spi_pin!(SPI5, MosiPin, PE6, 6); 220impl_spi_pin!(SPI5, MosiPin, PE6, 6);
220======= 221=======
221impl_rng!(RNG); 222impl_rng!(RNG);
223=======
224impl_rng!(RNG, RNG);
225>>>>>>> cbbaaa9 (Fix RNG interrupt name)
222pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 226pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
223pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 227pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
224pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 228pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f413mh.rs b/embassy-stm32/src/pac/stm32f413mh.rs
index 6aac7e23d..7a572f3a3 100644
--- a/embassy-stm32/src/pac/stm32f413mh.rs
+++ b/embassy-stm32/src/pac/stm32f413mh.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -219,6 +220,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
219impl_spi_pin!(SPI5, MosiPin, PE6, 6); 220impl_spi_pin!(SPI5, MosiPin, PE6, 6);
220======= 221=======
221impl_rng!(RNG); 222impl_rng!(RNG);
223=======
224impl_rng!(RNG, RNG);
225>>>>>>> cbbaaa9 (Fix RNG interrupt name)
222pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 226pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
223pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 227pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
224pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 228pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f413rg.rs b/embassy-stm32/src/pac/stm32f413rg.rs
index 6aac7e23d..7a572f3a3 100644
--- a/embassy-stm32/src/pac/stm32f413rg.rs
+++ b/embassy-stm32/src/pac/stm32f413rg.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -219,6 +220,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
219impl_spi_pin!(SPI5, MosiPin, PE6, 6); 220impl_spi_pin!(SPI5, MosiPin, PE6, 6);
220======= 221=======
221impl_rng!(RNG); 222impl_rng!(RNG);
223=======
224impl_rng!(RNG, RNG);
225>>>>>>> cbbaaa9 (Fix RNG interrupt name)
222pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 226pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
223pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 227pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
224pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 228pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f413rh.rs b/embassy-stm32/src/pac/stm32f413rh.rs
index 6aac7e23d..7a572f3a3 100644
--- a/embassy-stm32/src/pac/stm32f413rh.rs
+++ b/embassy-stm32/src/pac/stm32f413rh.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -219,6 +220,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
219impl_spi_pin!(SPI5, MosiPin, PE6, 6); 220impl_spi_pin!(SPI5, MosiPin, PE6, 6);
220======= 221=======
221impl_rng!(RNG); 222impl_rng!(RNG);
223=======
224impl_rng!(RNG, RNG);
225>>>>>>> cbbaaa9 (Fix RNG interrupt name)
222pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 226pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
223pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 227pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
224pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 228pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f413vg.rs b/embassy-stm32/src/pac/stm32f413vg.rs
index 6aac7e23d..7a572f3a3 100644
--- a/embassy-stm32/src/pac/stm32f413vg.rs
+++ b/embassy-stm32/src/pac/stm32f413vg.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -219,6 +220,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
219impl_spi_pin!(SPI5, MosiPin, PE6, 6); 220impl_spi_pin!(SPI5, MosiPin, PE6, 6);
220======= 221=======
221impl_rng!(RNG); 222impl_rng!(RNG);
223=======
224impl_rng!(RNG, RNG);
225>>>>>>> cbbaaa9 (Fix RNG interrupt name)
222pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 226pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
223pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 227pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
224pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 228pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f413vh.rs b/embassy-stm32/src/pac/stm32f413vh.rs
index 6aac7e23d..7a572f3a3 100644
--- a/embassy-stm32/src/pac/stm32f413vh.rs
+++ b/embassy-stm32/src/pac/stm32f413vh.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -219,6 +220,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
219impl_spi_pin!(SPI5, MosiPin, PE6, 6); 220impl_spi_pin!(SPI5, MosiPin, PE6, 6);
220======= 221=======
221impl_rng!(RNG); 222impl_rng!(RNG);
223=======
224impl_rng!(RNG, RNG);
225>>>>>>> cbbaaa9 (Fix RNG interrupt name)
222pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 226pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
223pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 227pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
224pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 228pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f413zg.rs b/embassy-stm32/src/pac/stm32f413zg.rs
index 6aac7e23d..7a572f3a3 100644
--- a/embassy-stm32/src/pac/stm32f413zg.rs
+++ b/embassy-stm32/src/pac/stm32f413zg.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -219,6 +220,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
219impl_spi_pin!(SPI5, MosiPin, PE6, 6); 220impl_spi_pin!(SPI5, MosiPin, PE6, 6);
220======= 221=======
221impl_rng!(RNG); 222impl_rng!(RNG);
223=======
224impl_rng!(RNG, RNG);
225>>>>>>> cbbaaa9 (Fix RNG interrupt name)
222pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 226pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
223pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 227pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
224pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 228pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f413zh.rs b/embassy-stm32/src/pac/stm32f413zh.rs
index 6aac7e23d..7a572f3a3 100644
--- a/embassy-stm32/src/pac/stm32f413zh.rs
+++ b/embassy-stm32/src/pac/stm32f413zh.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -219,6 +220,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
219impl_spi_pin!(SPI5, MosiPin, PE6, 6); 220impl_spi_pin!(SPI5, MosiPin, PE6, 6);
220======= 221=======
221impl_rng!(RNG); 222impl_rng!(RNG);
223=======
224impl_rng!(RNG, RNG);
225>>>>>>> cbbaaa9 (Fix RNG interrupt name)
222pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 226pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
223pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 227pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
224pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 228pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f415og.rs b/embassy-stm32/src/pac/stm32f415og.rs
index 5e4cb2a9f..b01d1e67e 100644
--- a/embassy-stm32/src/pac/stm32f415og.rs
+++ b/embassy-stm32/src/pac/stm32f415og.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, HASH_RNG); 183impl_rng!(RNG, HASH_RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, HASH_RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f415rg.rs b/embassy-stm32/src/pac/stm32f415rg.rs
index 5e4cb2a9f..b01d1e67e 100644
--- a/embassy-stm32/src/pac/stm32f415rg.rs
+++ b/embassy-stm32/src/pac/stm32f415rg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, HASH_RNG); 183impl_rng!(RNG, HASH_RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, HASH_RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f415vg.rs b/embassy-stm32/src/pac/stm32f415vg.rs
index 5e4cb2a9f..b01d1e67e 100644
--- a/embassy-stm32/src/pac/stm32f415vg.rs
+++ b/embassy-stm32/src/pac/stm32f415vg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, HASH_RNG); 183impl_rng!(RNG, HASH_RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, HASH_RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f415zg.rs b/embassy-stm32/src/pac/stm32f415zg.rs
index 5e4cb2a9f..b01d1e67e 100644
--- a/embassy-stm32/src/pac/stm32f415zg.rs
+++ b/embassy-stm32/src/pac/stm32f415zg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, HASH_RNG); 183impl_rng!(RNG, HASH_RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, HASH_RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f417ie.rs b/embassy-stm32/src/pac/stm32f417ie.rs
index 794149d88..c06d1f4ec 100644
--- a/embassy-stm32/src/pac/stm32f417ie.rs
+++ b/embassy-stm32/src/pac/stm32f417ie.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, HASH_RNG); 183impl_rng!(RNG, HASH_RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, HASH_RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f417ig.rs b/embassy-stm32/src/pac/stm32f417ig.rs
index 794149d88..c06d1f4ec 100644
--- a/embassy-stm32/src/pac/stm32f417ig.rs
+++ b/embassy-stm32/src/pac/stm32f417ig.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, HASH_RNG); 183impl_rng!(RNG, HASH_RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, HASH_RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f417ve.rs b/embassy-stm32/src/pac/stm32f417ve.rs
index 794149d88..c06d1f4ec 100644
--- a/embassy-stm32/src/pac/stm32f417ve.rs
+++ b/embassy-stm32/src/pac/stm32f417ve.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, HASH_RNG); 183impl_rng!(RNG, HASH_RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, HASH_RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f417vg.rs b/embassy-stm32/src/pac/stm32f417vg.rs
index 794149d88..c06d1f4ec 100644
--- a/embassy-stm32/src/pac/stm32f417vg.rs
+++ b/embassy-stm32/src/pac/stm32f417vg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, HASH_RNG); 183impl_rng!(RNG, HASH_RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, HASH_RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f417ze.rs b/embassy-stm32/src/pac/stm32f417ze.rs
index 794149d88..c06d1f4ec 100644
--- a/embassy-stm32/src/pac/stm32f417ze.rs
+++ b/embassy-stm32/src/pac/stm32f417ze.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, HASH_RNG); 183impl_rng!(RNG, HASH_RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, HASH_RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f417zg.rs b/embassy-stm32/src/pac/stm32f417zg.rs
index 794149d88..c06d1f4ec 100644
--- a/embassy-stm32/src/pac/stm32f417zg.rs
+++ b/embassy-stm32/src/pac/stm32f417zg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, HASH_RNG); 183impl_rng!(RNG, HASH_RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -209,6 +210,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
209impl_spi_pin!(SPI3, MosiPin, PC12, 6); 210impl_spi_pin!(SPI3, MosiPin, PC12, 6);
210======= 211=======
211impl_rng!(RNG); 212impl_rng!(RNG);
213=======
214impl_rng!(RNG, HASH_RNG);
215>>>>>>> cbbaaa9 (Fix RNG interrupt name)
212pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 216pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
213pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 217pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
214pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 218pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f423ch.rs b/embassy-stm32/src/pac/stm32f423ch.rs
index e15159ac8..b016b6bed 100644
--- a/embassy-stm32/src/pac/stm32f423ch.rs
+++ b/embassy-stm32/src/pac/stm32f423ch.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -219,6 +220,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
219impl_spi_pin!(SPI5, MosiPin, PE6, 6); 220impl_spi_pin!(SPI5, MosiPin, PE6, 6);
220======= 221=======
221impl_rng!(RNG); 222impl_rng!(RNG);
223=======
224impl_rng!(RNG, RNG);
225>>>>>>> cbbaaa9 (Fix RNG interrupt name)
222pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 226pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
223pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 227pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
224pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 228pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f423mh.rs b/embassy-stm32/src/pac/stm32f423mh.rs
index 83715cc48..e99aa6fbf 100644
--- a/embassy-stm32/src/pac/stm32f423mh.rs
+++ b/embassy-stm32/src/pac/stm32f423mh.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -219,6 +220,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
219impl_spi_pin!(SPI5, MosiPin, PE6, 6); 220impl_spi_pin!(SPI5, MosiPin, PE6, 6);
220======= 221=======
221impl_rng!(RNG); 222impl_rng!(RNG);
223=======
224impl_rng!(RNG, RNG);
225>>>>>>> cbbaaa9 (Fix RNG interrupt name)
222pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 226pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
223pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 227pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
224pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 228pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f423rh.rs b/embassy-stm32/src/pac/stm32f423rh.rs
index 83715cc48..e99aa6fbf 100644
--- a/embassy-stm32/src/pac/stm32f423rh.rs
+++ b/embassy-stm32/src/pac/stm32f423rh.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -219,6 +220,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
219impl_spi_pin!(SPI5, MosiPin, PE6, 6); 220impl_spi_pin!(SPI5, MosiPin, PE6, 6);
220======= 221=======
221impl_rng!(RNG); 222impl_rng!(RNG);
223=======
224impl_rng!(RNG, RNG);
225>>>>>>> cbbaaa9 (Fix RNG interrupt name)
222pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 226pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
223pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 227pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
224pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 228pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f423vh.rs b/embassy-stm32/src/pac/stm32f423vh.rs
index 83715cc48..e99aa6fbf 100644
--- a/embassy-stm32/src/pac/stm32f423vh.rs
+++ b/embassy-stm32/src/pac/stm32f423vh.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -219,6 +220,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
219impl_spi_pin!(SPI5, MosiPin, PE6, 6); 220impl_spi_pin!(SPI5, MosiPin, PE6, 6);
220======= 221=======
221impl_rng!(RNG); 222impl_rng!(RNG);
223=======
224impl_rng!(RNG, RNG);
225>>>>>>> cbbaaa9 (Fix RNG interrupt name)
222pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 226pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
223pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 227pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
224pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 228pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f423zh.rs b/embassy-stm32/src/pac/stm32f423zh.rs
index 83715cc48..e99aa6fbf 100644
--- a/embassy-stm32/src/pac/stm32f423zh.rs
+++ b/embassy-stm32/src/pac/stm32f423zh.rs
@@ -162,6 +162,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
162impl_gpio_pin!(PH15, 7, 15, EXTI15); 162impl_gpio_pin!(PH15, 7, 15, EXTI15);
163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 163pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
164<<<<<<< HEAD 164<<<<<<< HEAD
165<<<<<<< HEAD
165impl_rng!(RNG, RNG); 166impl_rng!(RNG, RNG);
166pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
167impl_spi!(SPI1, APB2); 168impl_spi!(SPI1, APB2);
@@ -219,6 +220,9 @@ impl_spi_pin!(SPI5, MisoPin, PE5, 6);
219impl_spi_pin!(SPI5, MosiPin, PE6, 6); 220impl_spi_pin!(SPI5, MosiPin, PE6, 6);
220======= 221=======
221impl_rng!(RNG); 222impl_rng!(RNG);
223=======
224impl_rng!(RNG, RNG);
225>>>>>>> cbbaaa9 (Fix RNG interrupt name)
222pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 226pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
223pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 227pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
224pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 228pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f427ag.rs b/embassy-stm32/src/pac/stm32f427ag.rs
index df3510ed0..a79757acb 100644
--- a/embassy-stm32/src/pac/stm32f427ag.rs
+++ b/embassy-stm32/src/pac/stm32f427ag.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -261,6 +262,9 @@ impl_spi_pin!(SPI5, SckPin, PH6, 5);
261impl_spi_pin!(SPI5, MisoPin, PH7, 5); 262impl_spi_pin!(SPI5, MisoPin, PH7, 5);
262======= 263=======
263impl_rng!(RNG); 264impl_rng!(RNG);
265=======
266impl_rng!(RNG, HASH_RNG);
267>>>>>>> cbbaaa9 (Fix RNG interrupt name)
264pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 268pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
265pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 269pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
266pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 270pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f427ai.rs b/embassy-stm32/src/pac/stm32f427ai.rs
index df3510ed0..a79757acb 100644
--- a/embassy-stm32/src/pac/stm32f427ai.rs
+++ b/embassy-stm32/src/pac/stm32f427ai.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -261,6 +262,9 @@ impl_spi_pin!(SPI5, SckPin, PH6, 5);
261impl_spi_pin!(SPI5, MisoPin, PH7, 5); 262impl_spi_pin!(SPI5, MisoPin, PH7, 5);
262======= 263=======
263impl_rng!(RNG); 264impl_rng!(RNG);
265=======
266impl_rng!(RNG, HASH_RNG);
267>>>>>>> cbbaaa9 (Fix RNG interrupt name)
264pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 268pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
265pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 269pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
266pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 270pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f427ig.rs b/embassy-stm32/src/pac/stm32f427ig.rs
index d6b23ea8f..56fd11a12 100644
--- a/embassy-stm32/src/pac/stm32f427ig.rs
+++ b/embassy-stm32/src/pac/stm32f427ig.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f427ii.rs b/embassy-stm32/src/pac/stm32f427ii.rs
index d6b23ea8f..56fd11a12 100644
--- a/embassy-stm32/src/pac/stm32f427ii.rs
+++ b/embassy-stm32/src/pac/stm32f427ii.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f427vg.rs b/embassy-stm32/src/pac/stm32f427vg.rs
index 042286112..187e11637 100644
--- a/embassy-stm32/src/pac/stm32f427vg.rs
+++ b/embassy-stm32/src/pac/stm32f427vg.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -253,6 +254,9 @@ impl_spi_pin!(SPI4, MisoPin, PE5, 5);
253impl_spi_pin!(SPI4, MosiPin, PE6, 5); 254impl_spi_pin!(SPI4, MosiPin, PE6, 5);
254======= 255=======
255impl_rng!(RNG); 256impl_rng!(RNG);
257=======
258impl_rng!(RNG, HASH_RNG);
259>>>>>>> cbbaaa9 (Fix RNG interrupt name)
256pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 260pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
257pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 261pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
258pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 262pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f427vi.rs b/embassy-stm32/src/pac/stm32f427vi.rs
index 042286112..187e11637 100644
--- a/embassy-stm32/src/pac/stm32f427vi.rs
+++ b/embassy-stm32/src/pac/stm32f427vi.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -253,6 +254,9 @@ impl_spi_pin!(SPI4, MisoPin, PE5, 5);
253impl_spi_pin!(SPI4, MosiPin, PE6, 5); 254impl_spi_pin!(SPI4, MosiPin, PE6, 5);
254======= 255=======
255impl_rng!(RNG); 256impl_rng!(RNG);
257=======
258impl_rng!(RNG, HASH_RNG);
259>>>>>>> cbbaaa9 (Fix RNG interrupt name)
256pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 260pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
257pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 261pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
258pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 262pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f427zg.rs b/embassy-stm32/src/pac/stm32f427zg.rs
index d6b23ea8f..56fd11a12 100644
--- a/embassy-stm32/src/pac/stm32f427zg.rs
+++ b/embassy-stm32/src/pac/stm32f427zg.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f427zi.rs b/embassy-stm32/src/pac/stm32f427zi.rs
index d6b23ea8f..56fd11a12 100644
--- a/embassy-stm32/src/pac/stm32f427zi.rs
+++ b/embassy-stm32/src/pac/stm32f427zi.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f429ag.rs b/embassy-stm32/src/pac/stm32f429ag.rs
index 8a2c591fd..b4042e824 100644
--- a/embassy-stm32/src/pac/stm32f429ag.rs
+++ b/embassy-stm32/src/pac/stm32f429ag.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -261,6 +262,9 @@ impl_spi_pin!(SPI5, SckPin, PH6, 5);
261impl_spi_pin!(SPI5, MisoPin, PH7, 5); 262impl_spi_pin!(SPI5, MisoPin, PH7, 5);
262======= 263=======
263impl_rng!(RNG); 264impl_rng!(RNG);
265=======
266impl_rng!(RNG, HASH_RNG);
267>>>>>>> cbbaaa9 (Fix RNG interrupt name)
264pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 268pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
265pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 269pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
266pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 270pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f429ai.rs b/embassy-stm32/src/pac/stm32f429ai.rs
index 8a2c591fd..b4042e824 100644
--- a/embassy-stm32/src/pac/stm32f429ai.rs
+++ b/embassy-stm32/src/pac/stm32f429ai.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -261,6 +262,9 @@ impl_spi_pin!(SPI5, SckPin, PH6, 5);
261impl_spi_pin!(SPI5, MisoPin, PH7, 5); 262impl_spi_pin!(SPI5, MisoPin, PH7, 5);
262======= 263=======
263impl_rng!(RNG); 264impl_rng!(RNG);
265=======
266impl_rng!(RNG, HASH_RNG);
267>>>>>>> cbbaaa9 (Fix RNG interrupt name)
264pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 268pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
265pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 269pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
266pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 270pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f429be.rs b/embassy-stm32/src/pac/stm32f429be.rs
index faeafc68b..bb290137f 100644
--- a/embassy-stm32/src/pac/stm32f429be.rs
+++ b/embassy-stm32/src/pac/stm32f429be.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f429bg.rs b/embassy-stm32/src/pac/stm32f429bg.rs
index faeafc68b..bb290137f 100644
--- a/embassy-stm32/src/pac/stm32f429bg.rs
+++ b/embassy-stm32/src/pac/stm32f429bg.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f429bi.rs b/embassy-stm32/src/pac/stm32f429bi.rs
index faeafc68b..bb290137f 100644
--- a/embassy-stm32/src/pac/stm32f429bi.rs
+++ b/embassy-stm32/src/pac/stm32f429bi.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f429ie.rs b/embassy-stm32/src/pac/stm32f429ie.rs
index faeafc68b..bb290137f 100644
--- a/embassy-stm32/src/pac/stm32f429ie.rs
+++ b/embassy-stm32/src/pac/stm32f429ie.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f429ig.rs b/embassy-stm32/src/pac/stm32f429ig.rs
index faeafc68b..bb290137f 100644
--- a/embassy-stm32/src/pac/stm32f429ig.rs
+++ b/embassy-stm32/src/pac/stm32f429ig.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f429ii.rs b/embassy-stm32/src/pac/stm32f429ii.rs
index faeafc68b..bb290137f 100644
--- a/embassy-stm32/src/pac/stm32f429ii.rs
+++ b/embassy-stm32/src/pac/stm32f429ii.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f429ne.rs b/embassy-stm32/src/pac/stm32f429ne.rs
index faeafc68b..bb290137f 100644
--- a/embassy-stm32/src/pac/stm32f429ne.rs
+++ b/embassy-stm32/src/pac/stm32f429ne.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f429ng.rs b/embassy-stm32/src/pac/stm32f429ng.rs
index faeafc68b..bb290137f 100644
--- a/embassy-stm32/src/pac/stm32f429ng.rs
+++ b/embassy-stm32/src/pac/stm32f429ng.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f429ni.rs b/embassy-stm32/src/pac/stm32f429ni.rs
index faeafc68b..bb290137f 100644
--- a/embassy-stm32/src/pac/stm32f429ni.rs
+++ b/embassy-stm32/src/pac/stm32f429ni.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f429ve.rs b/embassy-stm32/src/pac/stm32f429ve.rs
index 63ba225e9..69b8374b8 100644
--- a/embassy-stm32/src/pac/stm32f429ve.rs
+++ b/embassy-stm32/src/pac/stm32f429ve.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -253,6 +254,9 @@ impl_spi_pin!(SPI4, MisoPin, PE5, 5);
253impl_spi_pin!(SPI4, MosiPin, PE6, 5); 254impl_spi_pin!(SPI4, MosiPin, PE6, 5);
254======= 255=======
255impl_rng!(RNG); 256impl_rng!(RNG);
257=======
258impl_rng!(RNG, HASH_RNG);
259>>>>>>> cbbaaa9 (Fix RNG interrupt name)
256pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 260pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
257pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 261pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
258pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 262pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f429vg.rs b/embassy-stm32/src/pac/stm32f429vg.rs
index 63ba225e9..69b8374b8 100644
--- a/embassy-stm32/src/pac/stm32f429vg.rs
+++ b/embassy-stm32/src/pac/stm32f429vg.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -253,6 +254,9 @@ impl_spi_pin!(SPI4, MisoPin, PE5, 5);
253impl_spi_pin!(SPI4, MosiPin, PE6, 5); 254impl_spi_pin!(SPI4, MosiPin, PE6, 5);
254======= 255=======
255impl_rng!(RNG); 256impl_rng!(RNG);
257=======
258impl_rng!(RNG, HASH_RNG);
259>>>>>>> cbbaaa9 (Fix RNG interrupt name)
256pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 260pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
257pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 261pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
258pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 262pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f429vi.rs b/embassy-stm32/src/pac/stm32f429vi.rs
index 63ba225e9..69b8374b8 100644
--- a/embassy-stm32/src/pac/stm32f429vi.rs
+++ b/embassy-stm32/src/pac/stm32f429vi.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -253,6 +254,9 @@ impl_spi_pin!(SPI4, MisoPin, PE5, 5);
253impl_spi_pin!(SPI4, MosiPin, PE6, 5); 254impl_spi_pin!(SPI4, MosiPin, PE6, 5);
254======= 255=======
255impl_rng!(RNG); 256impl_rng!(RNG);
257=======
258impl_rng!(RNG, HASH_RNG);
259>>>>>>> cbbaaa9 (Fix RNG interrupt name)
256pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 260pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
257pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 261pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
258pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 262pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f429ze.rs b/embassy-stm32/src/pac/stm32f429ze.rs
index faeafc68b..bb290137f 100644
--- a/embassy-stm32/src/pac/stm32f429ze.rs
+++ b/embassy-stm32/src/pac/stm32f429ze.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f429zg.rs b/embassy-stm32/src/pac/stm32f429zg.rs
index faeafc68b..bb290137f 100644
--- a/embassy-stm32/src/pac/stm32f429zg.rs
+++ b/embassy-stm32/src/pac/stm32f429zg.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f429zi.rs b/embassy-stm32/src/pac/stm32f429zi.rs
index faeafc68b..bb290137f 100644
--- a/embassy-stm32/src/pac/stm32f429zi.rs
+++ b/embassy-stm32/src/pac/stm32f429zi.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f437ai.rs b/embassy-stm32/src/pac/stm32f437ai.rs
index 500e7a793..f8c0c6914 100644
--- a/embassy-stm32/src/pac/stm32f437ai.rs
+++ b/embassy-stm32/src/pac/stm32f437ai.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -261,6 +262,9 @@ impl_spi_pin!(SPI5, SckPin, PH6, 5);
261impl_spi_pin!(SPI5, MisoPin, PH7, 5); 262impl_spi_pin!(SPI5, MisoPin, PH7, 5);
262======= 263=======
263impl_rng!(RNG); 264impl_rng!(RNG);
265=======
266impl_rng!(RNG, HASH_RNG);
267>>>>>>> cbbaaa9 (Fix RNG interrupt name)
264pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 268pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
265pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 269pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
266pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 270pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f437ig.rs b/embassy-stm32/src/pac/stm32f437ig.rs
index b21b62e5c..aea9a883d 100644
--- a/embassy-stm32/src/pac/stm32f437ig.rs
+++ b/embassy-stm32/src/pac/stm32f437ig.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f437ii.rs b/embassy-stm32/src/pac/stm32f437ii.rs
index b21b62e5c..aea9a883d 100644
--- a/embassy-stm32/src/pac/stm32f437ii.rs
+++ b/embassy-stm32/src/pac/stm32f437ii.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f437vg.rs b/embassy-stm32/src/pac/stm32f437vg.rs
index f91ab8c7a..77c365bc5 100644
--- a/embassy-stm32/src/pac/stm32f437vg.rs
+++ b/embassy-stm32/src/pac/stm32f437vg.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -253,6 +254,9 @@ impl_spi_pin!(SPI4, MisoPin, PE5, 5);
253impl_spi_pin!(SPI4, MosiPin, PE6, 5); 254impl_spi_pin!(SPI4, MosiPin, PE6, 5);
254======= 255=======
255impl_rng!(RNG); 256impl_rng!(RNG);
257=======
258impl_rng!(RNG, HASH_RNG);
259>>>>>>> cbbaaa9 (Fix RNG interrupt name)
256pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 260pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
257pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 261pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
258pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 262pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f437vi.rs b/embassy-stm32/src/pac/stm32f437vi.rs
index f91ab8c7a..77c365bc5 100644
--- a/embassy-stm32/src/pac/stm32f437vi.rs
+++ b/embassy-stm32/src/pac/stm32f437vi.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -253,6 +254,9 @@ impl_spi_pin!(SPI4, MisoPin, PE5, 5);
253impl_spi_pin!(SPI4, MosiPin, PE6, 5); 254impl_spi_pin!(SPI4, MosiPin, PE6, 5);
254======= 255=======
255impl_rng!(RNG); 256impl_rng!(RNG);
257=======
258impl_rng!(RNG, HASH_RNG);
259>>>>>>> cbbaaa9 (Fix RNG interrupt name)
256pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 260pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
257pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 261pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
258pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 262pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f437zg.rs b/embassy-stm32/src/pac/stm32f437zg.rs
index b21b62e5c..aea9a883d 100644
--- a/embassy-stm32/src/pac/stm32f437zg.rs
+++ b/embassy-stm32/src/pac/stm32f437zg.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f437zi.rs b/embassy-stm32/src/pac/stm32f437zi.rs
index b21b62e5c..aea9a883d 100644
--- a/embassy-stm32/src/pac/stm32f437zi.rs
+++ b/embassy-stm32/src/pac/stm32f437zi.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f439ai.rs b/embassy-stm32/src/pac/stm32f439ai.rs
index ab33f8830..a635472f3 100644
--- a/embassy-stm32/src/pac/stm32f439ai.rs
+++ b/embassy-stm32/src/pac/stm32f439ai.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -261,6 +262,9 @@ impl_spi_pin!(SPI5, SckPin, PH6, 5);
261impl_spi_pin!(SPI5, MisoPin, PH7, 5); 262impl_spi_pin!(SPI5, MisoPin, PH7, 5);
262======= 263=======
263impl_rng!(RNG); 264impl_rng!(RNG);
265=======
266impl_rng!(RNG, HASH_RNG);
267>>>>>>> cbbaaa9 (Fix RNG interrupt name)
264pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 268pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
265pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 269pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
266pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 270pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f439bg.rs b/embassy-stm32/src/pac/stm32f439bg.rs
index adb1978c0..81eb68434 100644
--- a/embassy-stm32/src/pac/stm32f439bg.rs
+++ b/embassy-stm32/src/pac/stm32f439bg.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f439bi.rs b/embassy-stm32/src/pac/stm32f439bi.rs
index adb1978c0..81eb68434 100644
--- a/embassy-stm32/src/pac/stm32f439bi.rs
+++ b/embassy-stm32/src/pac/stm32f439bi.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f439ig.rs b/embassy-stm32/src/pac/stm32f439ig.rs
index adb1978c0..81eb68434 100644
--- a/embassy-stm32/src/pac/stm32f439ig.rs
+++ b/embassy-stm32/src/pac/stm32f439ig.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f439ii.rs b/embassy-stm32/src/pac/stm32f439ii.rs
index adb1978c0..81eb68434 100644
--- a/embassy-stm32/src/pac/stm32f439ii.rs
+++ b/embassy-stm32/src/pac/stm32f439ii.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f439ng.rs b/embassy-stm32/src/pac/stm32f439ng.rs
index adb1978c0..81eb68434 100644
--- a/embassy-stm32/src/pac/stm32f439ng.rs
+++ b/embassy-stm32/src/pac/stm32f439ng.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f439ni.rs b/embassy-stm32/src/pac/stm32f439ni.rs
index adb1978c0..81eb68434 100644
--- a/embassy-stm32/src/pac/stm32f439ni.rs
+++ b/embassy-stm32/src/pac/stm32f439ni.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f439vg.rs b/embassy-stm32/src/pac/stm32f439vg.rs
index b753f01e0..1b9da58f8 100644
--- a/embassy-stm32/src/pac/stm32f439vg.rs
+++ b/embassy-stm32/src/pac/stm32f439vg.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -253,6 +254,9 @@ impl_spi_pin!(SPI4, MisoPin, PE5, 5);
253impl_spi_pin!(SPI4, MosiPin, PE6, 5); 254impl_spi_pin!(SPI4, MosiPin, PE6, 5);
254======= 255=======
255impl_rng!(RNG); 256impl_rng!(RNG);
257=======
258impl_rng!(RNG, HASH_RNG);
259>>>>>>> cbbaaa9 (Fix RNG interrupt name)
256pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 260pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
257pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 261pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
258pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 262pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f439vi.rs b/embassy-stm32/src/pac/stm32f439vi.rs
index b753f01e0..1b9da58f8 100644
--- a/embassy-stm32/src/pac/stm32f439vi.rs
+++ b/embassy-stm32/src/pac/stm32f439vi.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -253,6 +254,9 @@ impl_spi_pin!(SPI4, MisoPin, PE5, 5);
253impl_spi_pin!(SPI4, MosiPin, PE6, 5); 254impl_spi_pin!(SPI4, MosiPin, PE6, 5);
254======= 255=======
255impl_rng!(RNG); 256impl_rng!(RNG);
257=======
258impl_rng!(RNG, HASH_RNG);
259>>>>>>> cbbaaa9 (Fix RNG interrupt name)
256pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 260pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
257pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 261pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
258pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 262pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f439zg.rs b/embassy-stm32/src/pac/stm32f439zg.rs
index adb1978c0..81eb68434 100644
--- a/embassy-stm32/src/pac/stm32f439zg.rs
+++ b/embassy-stm32/src/pac/stm32f439zg.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32f439zi.rs b/embassy-stm32/src/pac/stm32f439zi.rs
index adb1978c0..81eb68434 100644
--- a/embassy-stm32/src/pac/stm32f439zi.rs
+++ b/embassy-stm32/src/pac/stm32f439zi.rs
@@ -213,6 +213,7 @@ impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
215<<<<<<< HEAD 215<<<<<<< HEAD
216<<<<<<< HEAD
216impl_rng!(RNG, HASH_RNG); 217impl_rng!(RNG, HASH_RNG);
217pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 218pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
218impl_spi!(SPI1, APB2); 219impl_spi!(SPI1, APB2);
@@ -266,6 +267,9 @@ impl_spi_pin!(SPI6, SckPin, PG13, 5);
266impl_spi_pin!(SPI6, MosiPin, PG14, 5); 267impl_spi_pin!(SPI6, MosiPin, PG14, 5);
267======= 268=======
268impl_rng!(RNG); 269impl_rng!(RNG);
270=======
271impl_rng!(RNG, HASH_RNG);
272>>>>>>> cbbaaa9 (Fix RNG interrupt name)
269pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 273pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
270pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 274pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
271pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 275pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32h723ve.rs b/embassy-stm32/src/pac/stm32h723ve.rs
index 99f9d79bb..d8f59a68e 100644
--- a/embassy-stm32/src/pac/stm32h723ve.rs
+++ b/embassy-stm32/src/pac/stm32h723ve.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h723vg.rs b/embassy-stm32/src/pac/stm32h723vg.rs
index 99f9d79bb..d8f59a68e 100644
--- a/embassy-stm32/src/pac/stm32h723vg.rs
+++ b/embassy-stm32/src/pac/stm32h723vg.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h723ze.rs b/embassy-stm32/src/pac/stm32h723ze.rs
index 99f9d79bb..d8f59a68e 100644
--- a/embassy-stm32/src/pac/stm32h723ze.rs
+++ b/embassy-stm32/src/pac/stm32h723ze.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h723zg.rs b/embassy-stm32/src/pac/stm32h723zg.rs
index 99f9d79bb..d8f59a68e 100644
--- a/embassy-stm32/src/pac/stm32h723zg.rs
+++ b/embassy-stm32/src/pac/stm32h723zg.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h725ae.rs b/embassy-stm32/src/pac/stm32h725ae.rs
index 99f9d79bb..d8f59a68e 100644
--- a/embassy-stm32/src/pac/stm32h725ae.rs
+++ b/embassy-stm32/src/pac/stm32h725ae.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h725ag.rs b/embassy-stm32/src/pac/stm32h725ag.rs
index 99f9d79bb..d8f59a68e 100644
--- a/embassy-stm32/src/pac/stm32h725ag.rs
+++ b/embassy-stm32/src/pac/stm32h725ag.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h725ie.rs b/embassy-stm32/src/pac/stm32h725ie.rs
index 99f9d79bb..d8f59a68e 100644
--- a/embassy-stm32/src/pac/stm32h725ie.rs
+++ b/embassy-stm32/src/pac/stm32h725ie.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h725ig.rs b/embassy-stm32/src/pac/stm32h725ig.rs
index 99f9d79bb..d8f59a68e 100644
--- a/embassy-stm32/src/pac/stm32h725ig.rs
+++ b/embassy-stm32/src/pac/stm32h725ig.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h725re.rs b/embassy-stm32/src/pac/stm32h725re.rs
index 99f9d79bb..d8f59a68e 100644
--- a/embassy-stm32/src/pac/stm32h725re.rs
+++ b/embassy-stm32/src/pac/stm32h725re.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h725rg.rs b/embassy-stm32/src/pac/stm32h725rg.rs
index 99f9d79bb..d8f59a68e 100644
--- a/embassy-stm32/src/pac/stm32h725rg.rs
+++ b/embassy-stm32/src/pac/stm32h725rg.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h725ve.rs b/embassy-stm32/src/pac/stm32h725ve.rs
index 99f9d79bb..d8f59a68e 100644
--- a/embassy-stm32/src/pac/stm32h725ve.rs
+++ b/embassy-stm32/src/pac/stm32h725ve.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h725vg.rs b/embassy-stm32/src/pac/stm32h725vg.rs
index 99f9d79bb..d8f59a68e 100644
--- a/embassy-stm32/src/pac/stm32h725vg.rs
+++ b/embassy-stm32/src/pac/stm32h725vg.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h725ze.rs b/embassy-stm32/src/pac/stm32h725ze.rs
index 99f9d79bb..d8f59a68e 100644
--- a/embassy-stm32/src/pac/stm32h725ze.rs
+++ b/embassy-stm32/src/pac/stm32h725ze.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h725zg.rs b/embassy-stm32/src/pac/stm32h725zg.rs
index 99f9d79bb..d8f59a68e 100644
--- a/embassy-stm32/src/pac/stm32h725zg.rs
+++ b/embassy-stm32/src/pac/stm32h725zg.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h730ab.rs b/embassy-stm32/src/pac/stm32h730ab.rs
index 0a48d28a0..f6a5cc00e 100644
--- a/embassy-stm32/src/pac/stm32h730ab.rs
+++ b/embassy-stm32/src/pac/stm32h730ab.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, HASH_RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h730ib.rs b/embassy-stm32/src/pac/stm32h730ib.rs
index 0a48d28a0..f6a5cc00e 100644
--- a/embassy-stm32/src/pac/stm32h730ib.rs
+++ b/embassy-stm32/src/pac/stm32h730ib.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, HASH_RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h730vb.rs b/embassy-stm32/src/pac/stm32h730vb.rs
index 0a48d28a0..f6a5cc00e 100644
--- a/embassy-stm32/src/pac/stm32h730vb.rs
+++ b/embassy-stm32/src/pac/stm32h730vb.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, HASH_RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h730zb.rs b/embassy-stm32/src/pac/stm32h730zb.rs
index 0a48d28a0..f6a5cc00e 100644
--- a/embassy-stm32/src/pac/stm32h730zb.rs
+++ b/embassy-stm32/src/pac/stm32h730zb.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, HASH_RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h733vg.rs b/embassy-stm32/src/pac/stm32h733vg.rs
index 0a48d28a0..f6a5cc00e 100644
--- a/embassy-stm32/src/pac/stm32h733vg.rs
+++ b/embassy-stm32/src/pac/stm32h733vg.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, HASH_RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h733zg.rs b/embassy-stm32/src/pac/stm32h733zg.rs
index 0a48d28a0..f6a5cc00e 100644
--- a/embassy-stm32/src/pac/stm32h733zg.rs
+++ b/embassy-stm32/src/pac/stm32h733zg.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, HASH_RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h735ag.rs b/embassy-stm32/src/pac/stm32h735ag.rs
index 0a48d28a0..f6a5cc00e 100644
--- a/embassy-stm32/src/pac/stm32h735ag.rs
+++ b/embassy-stm32/src/pac/stm32h735ag.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, HASH_RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h735ig.rs b/embassy-stm32/src/pac/stm32h735ig.rs
index 0a48d28a0..f6a5cc00e 100644
--- a/embassy-stm32/src/pac/stm32h735ig.rs
+++ b/embassy-stm32/src/pac/stm32h735ig.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, HASH_RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h735rg.rs b/embassy-stm32/src/pac/stm32h735rg.rs
index 0a48d28a0..f6a5cc00e 100644
--- a/embassy-stm32/src/pac/stm32h735rg.rs
+++ b/embassy-stm32/src/pac/stm32h735rg.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, HASH_RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h735vg.rs b/embassy-stm32/src/pac/stm32h735vg.rs
index 0a48d28a0..f6a5cc00e 100644
--- a/embassy-stm32/src/pac/stm32h735vg.rs
+++ b/embassy-stm32/src/pac/stm32h735vg.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, HASH_RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h735zg.rs b/embassy-stm32/src/pac/stm32h735zg.rs
index 0a48d28a0..f6a5cc00e 100644
--- a/embassy-stm32/src/pac/stm32h735zg.rs
+++ b/embassy-stm32/src/pac/stm32h735zg.rs
@@ -195,7 +195,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
195impl_gpio_pin!(PK14, 10, 14, EXTI14); 195impl_gpio_pin!(PK14, 10, 14, EXTI14);
196impl_gpio_pin!(PK15, 10, 15, EXTI15); 196impl_gpio_pin!(PK15, 10, 15, EXTI15);
197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 197pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
198impl_rng!(RNG); 198impl_rng!(RNG, HASH_RNG);
199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 199pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
200impl_sdmmc!(SDMMC1); 200impl_sdmmc!(SDMMC1);
201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 201impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h742ag.rs b/embassy-stm32/src/pac/stm32h742ag.rs
index 02270be2d..cf23787d3 100644
--- a/embassy-stm32/src/pac/stm32h742ag.rs
+++ b/embassy-stm32/src/pac/stm32h742ag.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h742ai.rs b/embassy-stm32/src/pac/stm32h742ai.rs
index 02270be2d..cf23787d3 100644
--- a/embassy-stm32/src/pac/stm32h742ai.rs
+++ b/embassy-stm32/src/pac/stm32h742ai.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h742bg.rs b/embassy-stm32/src/pac/stm32h742bg.rs
index 02270be2d..cf23787d3 100644
--- a/embassy-stm32/src/pac/stm32h742bg.rs
+++ b/embassy-stm32/src/pac/stm32h742bg.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h742bi.rs b/embassy-stm32/src/pac/stm32h742bi.rs
index 02270be2d..cf23787d3 100644
--- a/embassy-stm32/src/pac/stm32h742bi.rs
+++ b/embassy-stm32/src/pac/stm32h742bi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h742ig.rs b/embassy-stm32/src/pac/stm32h742ig.rs
index 02270be2d..cf23787d3 100644
--- a/embassy-stm32/src/pac/stm32h742ig.rs
+++ b/embassy-stm32/src/pac/stm32h742ig.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h742ii.rs b/embassy-stm32/src/pac/stm32h742ii.rs
index 02270be2d..cf23787d3 100644
--- a/embassy-stm32/src/pac/stm32h742ii.rs
+++ b/embassy-stm32/src/pac/stm32h742ii.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h742vg.rs b/embassy-stm32/src/pac/stm32h742vg.rs
index 02270be2d..cf23787d3 100644
--- a/embassy-stm32/src/pac/stm32h742vg.rs
+++ b/embassy-stm32/src/pac/stm32h742vg.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h742vi.rs b/embassy-stm32/src/pac/stm32h742vi.rs
index 02270be2d..cf23787d3 100644
--- a/embassy-stm32/src/pac/stm32h742vi.rs
+++ b/embassy-stm32/src/pac/stm32h742vi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h742xg.rs b/embassy-stm32/src/pac/stm32h742xg.rs
index 02270be2d..cf23787d3 100644
--- a/embassy-stm32/src/pac/stm32h742xg.rs
+++ b/embassy-stm32/src/pac/stm32h742xg.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h742xi.rs b/embassy-stm32/src/pac/stm32h742xi.rs
index 02270be2d..cf23787d3 100644
--- a/embassy-stm32/src/pac/stm32h742xi.rs
+++ b/embassy-stm32/src/pac/stm32h742xi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h742zg.rs b/embassy-stm32/src/pac/stm32h742zg.rs
index 02270be2d..cf23787d3 100644
--- a/embassy-stm32/src/pac/stm32h742zg.rs
+++ b/embassy-stm32/src/pac/stm32h742zg.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h742zi.rs b/embassy-stm32/src/pac/stm32h742zi.rs
index 02270be2d..cf23787d3 100644
--- a/embassy-stm32/src/pac/stm32h742zi.rs
+++ b/embassy-stm32/src/pac/stm32h742zi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h743ag.rs b/embassy-stm32/src/pac/stm32h743ag.rs
index 86ad6ff03..d9dd3deff 100644
--- a/embassy-stm32/src/pac/stm32h743ag.rs
+++ b/embassy-stm32/src/pac/stm32h743ag.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h743ai.rs b/embassy-stm32/src/pac/stm32h743ai.rs
index 86ad6ff03..d9dd3deff 100644
--- a/embassy-stm32/src/pac/stm32h743ai.rs
+++ b/embassy-stm32/src/pac/stm32h743ai.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h743bg.rs b/embassy-stm32/src/pac/stm32h743bg.rs
index 86ad6ff03..d9dd3deff 100644
--- a/embassy-stm32/src/pac/stm32h743bg.rs
+++ b/embassy-stm32/src/pac/stm32h743bg.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h743bi.rs b/embassy-stm32/src/pac/stm32h743bi.rs
index 86ad6ff03..d9dd3deff 100644
--- a/embassy-stm32/src/pac/stm32h743bi.rs
+++ b/embassy-stm32/src/pac/stm32h743bi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h743ig.rs b/embassy-stm32/src/pac/stm32h743ig.rs
index 86ad6ff03..d9dd3deff 100644
--- a/embassy-stm32/src/pac/stm32h743ig.rs
+++ b/embassy-stm32/src/pac/stm32h743ig.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h743ii.rs b/embassy-stm32/src/pac/stm32h743ii.rs
index 86ad6ff03..d9dd3deff 100644
--- a/embassy-stm32/src/pac/stm32h743ii.rs
+++ b/embassy-stm32/src/pac/stm32h743ii.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h743vg.rs b/embassy-stm32/src/pac/stm32h743vg.rs
index 86ad6ff03..d9dd3deff 100644
--- a/embassy-stm32/src/pac/stm32h743vg.rs
+++ b/embassy-stm32/src/pac/stm32h743vg.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h743vi.rs b/embassy-stm32/src/pac/stm32h743vi.rs
index 86ad6ff03..d9dd3deff 100644
--- a/embassy-stm32/src/pac/stm32h743vi.rs
+++ b/embassy-stm32/src/pac/stm32h743vi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h743xg.rs b/embassy-stm32/src/pac/stm32h743xg.rs
index 86ad6ff03..d9dd3deff 100644
--- a/embassy-stm32/src/pac/stm32h743xg.rs
+++ b/embassy-stm32/src/pac/stm32h743xg.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h743xi.rs b/embassy-stm32/src/pac/stm32h743xi.rs
index 86ad6ff03..d9dd3deff 100644
--- a/embassy-stm32/src/pac/stm32h743xi.rs
+++ b/embassy-stm32/src/pac/stm32h743xi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h743zg.rs b/embassy-stm32/src/pac/stm32h743zg.rs
index 86ad6ff03..d9dd3deff 100644
--- a/embassy-stm32/src/pac/stm32h743zg.rs
+++ b/embassy-stm32/src/pac/stm32h743zg.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h743zi.rs b/embassy-stm32/src/pac/stm32h743zi.rs
index 86ad6ff03..d9dd3deff 100644
--- a/embassy-stm32/src/pac/stm32h743zi.rs
+++ b/embassy-stm32/src/pac/stm32h743zi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h745bg.rs b/embassy-stm32/src/pac/stm32h745bg.rs
index a3933b898..2133cfaf9 100644
--- a/embassy-stm32/src/pac/stm32h745bg.rs
+++ b/embassy-stm32/src/pac/stm32h745bg.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h745bi.rs b/embassy-stm32/src/pac/stm32h745bi.rs
index a3933b898..2133cfaf9 100644
--- a/embassy-stm32/src/pac/stm32h745bi.rs
+++ b/embassy-stm32/src/pac/stm32h745bi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h745ig.rs b/embassy-stm32/src/pac/stm32h745ig.rs
index a3933b898..2133cfaf9 100644
--- a/embassy-stm32/src/pac/stm32h745ig.rs
+++ b/embassy-stm32/src/pac/stm32h745ig.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h745ii.rs b/embassy-stm32/src/pac/stm32h745ii.rs
index a3933b898..2133cfaf9 100644
--- a/embassy-stm32/src/pac/stm32h745ii.rs
+++ b/embassy-stm32/src/pac/stm32h745ii.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h745xg.rs b/embassy-stm32/src/pac/stm32h745xg.rs
index a3933b898..2133cfaf9 100644
--- a/embassy-stm32/src/pac/stm32h745xg.rs
+++ b/embassy-stm32/src/pac/stm32h745xg.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h745xi.rs b/embassy-stm32/src/pac/stm32h745xi.rs
index a3933b898..2133cfaf9 100644
--- a/embassy-stm32/src/pac/stm32h745xi.rs
+++ b/embassy-stm32/src/pac/stm32h745xi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h745zg.rs b/embassy-stm32/src/pac/stm32h745zg.rs
index a3933b898..2133cfaf9 100644
--- a/embassy-stm32/src/pac/stm32h745zg.rs
+++ b/embassy-stm32/src/pac/stm32h745zg.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h745zi.rs b/embassy-stm32/src/pac/stm32h745zi.rs
index a3933b898..2133cfaf9 100644
--- a/embassy-stm32/src/pac/stm32h745zi.rs
+++ b/embassy-stm32/src/pac/stm32h745zi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h747ag.rs b/embassy-stm32/src/pac/stm32h747ag.rs
index ab7ba4ae9..04ba7f390 100644
--- a/embassy-stm32/src/pac/stm32h747ag.rs
+++ b/embassy-stm32/src/pac/stm32h747ag.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h747ai.rs b/embassy-stm32/src/pac/stm32h747ai.rs
index ab7ba4ae9..04ba7f390 100644
--- a/embassy-stm32/src/pac/stm32h747ai.rs
+++ b/embassy-stm32/src/pac/stm32h747ai.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h747bg.rs b/embassy-stm32/src/pac/stm32h747bg.rs
index ab7ba4ae9..04ba7f390 100644
--- a/embassy-stm32/src/pac/stm32h747bg.rs
+++ b/embassy-stm32/src/pac/stm32h747bg.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h747bi.rs b/embassy-stm32/src/pac/stm32h747bi.rs
index ab7ba4ae9..04ba7f390 100644
--- a/embassy-stm32/src/pac/stm32h747bi.rs
+++ b/embassy-stm32/src/pac/stm32h747bi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h747ig.rs b/embassy-stm32/src/pac/stm32h747ig.rs
index ab7ba4ae9..04ba7f390 100644
--- a/embassy-stm32/src/pac/stm32h747ig.rs
+++ b/embassy-stm32/src/pac/stm32h747ig.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h747ii.rs b/embassy-stm32/src/pac/stm32h747ii.rs
index ab7ba4ae9..04ba7f390 100644
--- a/embassy-stm32/src/pac/stm32h747ii.rs
+++ b/embassy-stm32/src/pac/stm32h747ii.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h747xg.rs b/embassy-stm32/src/pac/stm32h747xg.rs
index ab7ba4ae9..04ba7f390 100644
--- a/embassy-stm32/src/pac/stm32h747xg.rs
+++ b/embassy-stm32/src/pac/stm32h747xg.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h747xi.rs b/embassy-stm32/src/pac/stm32h747xi.rs
index ab7ba4ae9..04ba7f390 100644
--- a/embassy-stm32/src/pac/stm32h747xi.rs
+++ b/embassy-stm32/src/pac/stm32h747xi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h747zi.rs b/embassy-stm32/src/pac/stm32h747zi.rs
index ab7ba4ae9..04ba7f390 100644
--- a/embassy-stm32/src/pac/stm32h747zi.rs
+++ b/embassy-stm32/src/pac/stm32h747zi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h750ib.rs b/embassy-stm32/src/pac/stm32h750ib.rs
index fc002982b..d17f766e9 100644
--- a/embassy-stm32/src/pac/stm32h750ib.rs
+++ b/embassy-stm32/src/pac/stm32h750ib.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h750vb.rs b/embassy-stm32/src/pac/stm32h750vb.rs
index fc002982b..d17f766e9 100644
--- a/embassy-stm32/src/pac/stm32h750vb.rs
+++ b/embassy-stm32/src/pac/stm32h750vb.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h750xb.rs b/embassy-stm32/src/pac/stm32h750xb.rs
index fc002982b..d17f766e9 100644
--- a/embassy-stm32/src/pac/stm32h750xb.rs
+++ b/embassy-stm32/src/pac/stm32h750xb.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h750zb.rs b/embassy-stm32/src/pac/stm32h750zb.rs
index fc002982b..d17f766e9 100644
--- a/embassy-stm32/src/pac/stm32h750zb.rs
+++ b/embassy-stm32/src/pac/stm32h750zb.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h753ai.rs b/embassy-stm32/src/pac/stm32h753ai.rs
index fc002982b..d17f766e9 100644
--- a/embassy-stm32/src/pac/stm32h753ai.rs
+++ b/embassy-stm32/src/pac/stm32h753ai.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h753bi.rs b/embassy-stm32/src/pac/stm32h753bi.rs
index fc002982b..d17f766e9 100644
--- a/embassy-stm32/src/pac/stm32h753bi.rs
+++ b/embassy-stm32/src/pac/stm32h753bi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h753ii.rs b/embassy-stm32/src/pac/stm32h753ii.rs
index fc002982b..d17f766e9 100644
--- a/embassy-stm32/src/pac/stm32h753ii.rs
+++ b/embassy-stm32/src/pac/stm32h753ii.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h753vi.rs b/embassy-stm32/src/pac/stm32h753vi.rs
index fc002982b..d17f766e9 100644
--- a/embassy-stm32/src/pac/stm32h753vi.rs
+++ b/embassy-stm32/src/pac/stm32h753vi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h753xi.rs b/embassy-stm32/src/pac/stm32h753xi.rs
index fc002982b..d17f766e9 100644
--- a/embassy-stm32/src/pac/stm32h753xi.rs
+++ b/embassy-stm32/src/pac/stm32h753xi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h753zi.rs b/embassy-stm32/src/pac/stm32h753zi.rs
index fc002982b..d17f766e9 100644
--- a/embassy-stm32/src/pac/stm32h753zi.rs
+++ b/embassy-stm32/src/pac/stm32h753zi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h755bi.rs b/embassy-stm32/src/pac/stm32h755bi.rs
index 385e6fff6..a7c55f046 100644
--- a/embassy-stm32/src/pac/stm32h755bi.rs
+++ b/embassy-stm32/src/pac/stm32h755bi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h755ii.rs b/embassy-stm32/src/pac/stm32h755ii.rs
index 385e6fff6..a7c55f046 100644
--- a/embassy-stm32/src/pac/stm32h755ii.rs
+++ b/embassy-stm32/src/pac/stm32h755ii.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h755xi.rs b/embassy-stm32/src/pac/stm32h755xi.rs
index 385e6fff6..a7c55f046 100644
--- a/embassy-stm32/src/pac/stm32h755xi.rs
+++ b/embassy-stm32/src/pac/stm32h755xi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h755zi.rs b/embassy-stm32/src/pac/stm32h755zi.rs
index 385e6fff6..a7c55f046 100644
--- a/embassy-stm32/src/pac/stm32h755zi.rs
+++ b/embassy-stm32/src/pac/stm32h755zi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h757ai.rs b/embassy-stm32/src/pac/stm32h757ai.rs
index 1ccf83ca6..3a139b290 100644
--- a/embassy-stm32/src/pac/stm32h757ai.rs
+++ b/embassy-stm32/src/pac/stm32h757ai.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h757bi.rs b/embassy-stm32/src/pac/stm32h757bi.rs
index 1ccf83ca6..3a139b290 100644
--- a/embassy-stm32/src/pac/stm32h757bi.rs
+++ b/embassy-stm32/src/pac/stm32h757bi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h757ii.rs b/embassy-stm32/src/pac/stm32h757ii.rs
index 1ccf83ca6..3a139b290 100644
--- a/embassy-stm32/src/pac/stm32h757ii.rs
+++ b/embassy-stm32/src/pac/stm32h757ii.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h757xi.rs b/embassy-stm32/src/pac/stm32h757xi.rs
index 1ccf83ca6..3a139b290 100644
--- a/embassy-stm32/src/pac/stm32h757xi.rs
+++ b/embassy-stm32/src/pac/stm32h757xi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h757zi.rs b/embassy-stm32/src/pac/stm32h757zi.rs
index 1ccf83ca6..3a139b290 100644
--- a/embassy-stm32/src/pac/stm32h757zi.rs
+++ b/embassy-stm32/src/pac/stm32h757zi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12); 218impl_sdmmc_pin!(SDMMC1, D4Pin, PB8, 12);
diff --git a/embassy-stm32/src/pac/stm32h7a3ag.rs b/embassy-stm32/src/pac/stm32h7a3ag.rs
index 1e1deadce..60ff28138 100644
--- a/embassy-stm32/src/pac/stm32h7a3ag.rs
+++ b/embassy-stm32/src/pac/stm32h7a3ag.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7a3ai.rs b/embassy-stm32/src/pac/stm32h7a3ai.rs
index 1e1deadce..60ff28138 100644
--- a/embassy-stm32/src/pac/stm32h7a3ai.rs
+++ b/embassy-stm32/src/pac/stm32h7a3ai.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7a3ig.rs b/embassy-stm32/src/pac/stm32h7a3ig.rs
index 1e1deadce..60ff28138 100644
--- a/embassy-stm32/src/pac/stm32h7a3ig.rs
+++ b/embassy-stm32/src/pac/stm32h7a3ig.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7a3ii.rs b/embassy-stm32/src/pac/stm32h7a3ii.rs
index 1e1deadce..60ff28138 100644
--- a/embassy-stm32/src/pac/stm32h7a3ii.rs
+++ b/embassy-stm32/src/pac/stm32h7a3ii.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7a3lg.rs b/embassy-stm32/src/pac/stm32h7a3lg.rs
index 1e1deadce..60ff28138 100644
--- a/embassy-stm32/src/pac/stm32h7a3lg.rs
+++ b/embassy-stm32/src/pac/stm32h7a3lg.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7a3li.rs b/embassy-stm32/src/pac/stm32h7a3li.rs
index 1e1deadce..60ff28138 100644
--- a/embassy-stm32/src/pac/stm32h7a3li.rs
+++ b/embassy-stm32/src/pac/stm32h7a3li.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7a3ng.rs b/embassy-stm32/src/pac/stm32h7a3ng.rs
index 1e1deadce..60ff28138 100644
--- a/embassy-stm32/src/pac/stm32h7a3ng.rs
+++ b/embassy-stm32/src/pac/stm32h7a3ng.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7a3ni.rs b/embassy-stm32/src/pac/stm32h7a3ni.rs
index 1e1deadce..60ff28138 100644
--- a/embassy-stm32/src/pac/stm32h7a3ni.rs
+++ b/embassy-stm32/src/pac/stm32h7a3ni.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7a3qi.rs b/embassy-stm32/src/pac/stm32h7a3qi.rs
index 1e1deadce..60ff28138 100644
--- a/embassy-stm32/src/pac/stm32h7a3qi.rs
+++ b/embassy-stm32/src/pac/stm32h7a3qi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7a3rg.rs b/embassy-stm32/src/pac/stm32h7a3rg.rs
index 1e1deadce..60ff28138 100644
--- a/embassy-stm32/src/pac/stm32h7a3rg.rs
+++ b/embassy-stm32/src/pac/stm32h7a3rg.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7a3ri.rs b/embassy-stm32/src/pac/stm32h7a3ri.rs
index 1e1deadce..60ff28138 100644
--- a/embassy-stm32/src/pac/stm32h7a3ri.rs
+++ b/embassy-stm32/src/pac/stm32h7a3ri.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7a3vg.rs b/embassy-stm32/src/pac/stm32h7a3vg.rs
index 1e1deadce..60ff28138 100644
--- a/embassy-stm32/src/pac/stm32h7a3vg.rs
+++ b/embassy-stm32/src/pac/stm32h7a3vg.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7a3vi.rs b/embassy-stm32/src/pac/stm32h7a3vi.rs
index 1e1deadce..60ff28138 100644
--- a/embassy-stm32/src/pac/stm32h7a3vi.rs
+++ b/embassy-stm32/src/pac/stm32h7a3vi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7a3zg.rs b/embassy-stm32/src/pac/stm32h7a3zg.rs
index 1e1deadce..60ff28138 100644
--- a/embassy-stm32/src/pac/stm32h7a3zg.rs
+++ b/embassy-stm32/src/pac/stm32h7a3zg.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7a3zi.rs b/embassy-stm32/src/pac/stm32h7a3zi.rs
index 1e1deadce..60ff28138 100644
--- a/embassy-stm32/src/pac/stm32h7a3zi.rs
+++ b/embassy-stm32/src/pac/stm32h7a3zi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7b0ab.rs b/embassy-stm32/src/pac/stm32h7b0ab.rs
index b3e7806ad..a9ef1385e 100644
--- a/embassy-stm32/src/pac/stm32h7b0ab.rs
+++ b/embassy-stm32/src/pac/stm32h7b0ab.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7b0ib.rs b/embassy-stm32/src/pac/stm32h7b0ib.rs
index b3e7806ad..a9ef1385e 100644
--- a/embassy-stm32/src/pac/stm32h7b0ib.rs
+++ b/embassy-stm32/src/pac/stm32h7b0ib.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7b0rb.rs b/embassy-stm32/src/pac/stm32h7b0rb.rs
index b3e7806ad..a9ef1385e 100644
--- a/embassy-stm32/src/pac/stm32h7b0rb.rs
+++ b/embassy-stm32/src/pac/stm32h7b0rb.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7b0vb.rs b/embassy-stm32/src/pac/stm32h7b0vb.rs
index b3e7806ad..a9ef1385e 100644
--- a/embassy-stm32/src/pac/stm32h7b0vb.rs
+++ b/embassy-stm32/src/pac/stm32h7b0vb.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7b0zb.rs b/embassy-stm32/src/pac/stm32h7b0zb.rs
index b3e7806ad..a9ef1385e 100644
--- a/embassy-stm32/src/pac/stm32h7b0zb.rs
+++ b/embassy-stm32/src/pac/stm32h7b0zb.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7b3ai.rs b/embassy-stm32/src/pac/stm32h7b3ai.rs
index b3e7806ad..a9ef1385e 100644
--- a/embassy-stm32/src/pac/stm32h7b3ai.rs
+++ b/embassy-stm32/src/pac/stm32h7b3ai.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7b3ii.rs b/embassy-stm32/src/pac/stm32h7b3ii.rs
index b3e7806ad..a9ef1385e 100644
--- a/embassy-stm32/src/pac/stm32h7b3ii.rs
+++ b/embassy-stm32/src/pac/stm32h7b3ii.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7b3li.rs b/embassy-stm32/src/pac/stm32h7b3li.rs
index b3e7806ad..a9ef1385e 100644
--- a/embassy-stm32/src/pac/stm32h7b3li.rs
+++ b/embassy-stm32/src/pac/stm32h7b3li.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7b3ni.rs b/embassy-stm32/src/pac/stm32h7b3ni.rs
index b3e7806ad..a9ef1385e 100644
--- a/embassy-stm32/src/pac/stm32h7b3ni.rs
+++ b/embassy-stm32/src/pac/stm32h7b3ni.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7b3qi.rs b/embassy-stm32/src/pac/stm32h7b3qi.rs
index b3e7806ad..a9ef1385e 100644
--- a/embassy-stm32/src/pac/stm32h7b3qi.rs
+++ b/embassy-stm32/src/pac/stm32h7b3qi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7b3ri.rs b/embassy-stm32/src/pac/stm32h7b3ri.rs
index b3e7806ad..a9ef1385e 100644
--- a/embassy-stm32/src/pac/stm32h7b3ri.rs
+++ b/embassy-stm32/src/pac/stm32h7b3ri.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7b3vi.rs b/embassy-stm32/src/pac/stm32h7b3vi.rs
index b3e7806ad..a9ef1385e 100644
--- a/embassy-stm32/src/pac/stm32h7b3vi.rs
+++ b/embassy-stm32/src/pac/stm32h7b3vi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32h7b3zi.rs b/embassy-stm32/src/pac/stm32h7b3zi.rs
index b3e7806ad..a9ef1385e 100644
--- a/embassy-stm32/src/pac/stm32h7b3zi.rs
+++ b/embassy-stm32/src/pac/stm32h7b3zi.rs
@@ -212,7 +212,7 @@ impl_gpio_pin!(PK13, 10, 13, EXTI13);
212impl_gpio_pin!(PK14, 10, 14, EXTI14); 212impl_gpio_pin!(PK14, 10, 14, EXTI14);
213impl_gpio_pin!(PK15, 10, 15, EXTI15); 213impl_gpio_pin!(PK15, 10, 15, EXTI15);
214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _); 214pub const RNG: rng::Rng = rng::Rng(0x48021800 as _);
215impl_rng!(RNG); 215impl_rng!(RNG, HASH_RNG);
216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _); 216pub const SDMMC1: sdmmc::Sdmmc = sdmmc::Sdmmc(0x52007000 as _);
217impl_sdmmc!(SDMMC1); 217impl_sdmmc!(SDMMC1);
218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12); 218impl_sdmmc_pin!(SDMMC1, D0Pin, PB13, 12);
diff --git a/embassy-stm32/src/pac/stm32l431cb.rs b/embassy-stm32/src/pac/stm32l431cb.rs
index a9a5cb857..dfc641513 100644
--- a/embassy-stm32/src/pac/stm32l431cb.rs
+++ b/embassy-stm32/src/pac/stm32l431cb.rs
@@ -128,6 +128,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
128impl_gpio_pin!(PH15, 7, 15, EXTI15); 128impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130<<<<<<< HEAD 130<<<<<<< HEAD
131<<<<<<< HEAD
131impl_rng!(RNG, RNG); 132impl_rng!(RNG, RNG);
132pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 133pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
133impl_spi!(SPI1, APB2); 134impl_spi!(SPI1, APB2);
@@ -164,6 +165,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
164impl_spi_pin!(SPI3, MosiPin, PC12, 6); 165impl_spi_pin!(SPI3, MosiPin, PC12, 6);
165======= 166=======
166impl_rng!(RNG); 167impl_rng!(RNG);
168=======
169impl_rng!(RNG, RNG);
170>>>>>>> cbbaaa9 (Fix RNG interrupt name)
167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 171pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
168pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 172pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
169pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 173pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l431cc.rs b/embassy-stm32/src/pac/stm32l431cc.rs
index a9a5cb857..dfc641513 100644
--- a/embassy-stm32/src/pac/stm32l431cc.rs
+++ b/embassy-stm32/src/pac/stm32l431cc.rs
@@ -128,6 +128,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
128impl_gpio_pin!(PH15, 7, 15, EXTI15); 128impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130<<<<<<< HEAD 130<<<<<<< HEAD
131<<<<<<< HEAD
131impl_rng!(RNG, RNG); 132impl_rng!(RNG, RNG);
132pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 133pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
133impl_spi!(SPI1, APB2); 134impl_spi!(SPI1, APB2);
@@ -164,6 +165,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
164impl_spi_pin!(SPI3, MosiPin, PC12, 6); 165impl_spi_pin!(SPI3, MosiPin, PC12, 6);
165======= 166=======
166impl_rng!(RNG); 167impl_rng!(RNG);
168=======
169impl_rng!(RNG, RNG);
170>>>>>>> cbbaaa9 (Fix RNG interrupt name)
167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 171pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
168pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 172pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
169pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 173pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l431kb.rs b/embassy-stm32/src/pac/stm32l431kb.rs
index 7c7c141f0..5ee01733a 100644
--- a/embassy-stm32/src/pac/stm32l431kb.rs
+++ b/embassy-stm32/src/pac/stm32l431kb.rs
@@ -128,6 +128,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
128impl_gpio_pin!(PH15, 7, 15, EXTI15); 128impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130<<<<<<< HEAD 130<<<<<<< HEAD
131<<<<<<< HEAD
131impl_rng!(RNG, RNG); 132impl_rng!(RNG, RNG);
132pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 133pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
133impl_spi!(SPI1, APB2); 134impl_spi!(SPI1, APB2);
@@ -153,6 +154,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
153impl_spi_pin!(SPI3, MosiPin, PC12, 6); 154impl_spi_pin!(SPI3, MosiPin, PC12, 6);
154======= 155=======
155impl_rng!(RNG); 156impl_rng!(RNG);
157=======
158impl_rng!(RNG, RNG);
159>>>>>>> cbbaaa9 (Fix RNG interrupt name)
156pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 160pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
157pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 161pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
158>>>>>>> 546082a (Update generated code) 162>>>>>>> 546082a (Update generated code)
diff --git a/embassy-stm32/src/pac/stm32l431kc.rs b/embassy-stm32/src/pac/stm32l431kc.rs
index 7c7c141f0..5ee01733a 100644
--- a/embassy-stm32/src/pac/stm32l431kc.rs
+++ b/embassy-stm32/src/pac/stm32l431kc.rs
@@ -128,6 +128,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
128impl_gpio_pin!(PH15, 7, 15, EXTI15); 128impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130<<<<<<< HEAD 130<<<<<<< HEAD
131<<<<<<< HEAD
131impl_rng!(RNG, RNG); 132impl_rng!(RNG, RNG);
132pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 133pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
133impl_spi!(SPI1, APB2); 134impl_spi!(SPI1, APB2);
@@ -153,6 +154,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
153impl_spi_pin!(SPI3, MosiPin, PC12, 6); 154impl_spi_pin!(SPI3, MosiPin, PC12, 6);
154======= 155=======
155impl_rng!(RNG); 156impl_rng!(RNG);
157=======
158impl_rng!(RNG, RNG);
159>>>>>>> cbbaaa9 (Fix RNG interrupt name)
156pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 160pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
157pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 161pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
158>>>>>>> 546082a (Update generated code) 162>>>>>>> 546082a (Update generated code)
diff --git a/embassy-stm32/src/pac/stm32l431rb.rs b/embassy-stm32/src/pac/stm32l431rb.rs
index a9a5cb857..dfc641513 100644
--- a/embassy-stm32/src/pac/stm32l431rb.rs
+++ b/embassy-stm32/src/pac/stm32l431rb.rs
@@ -128,6 +128,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
128impl_gpio_pin!(PH15, 7, 15, EXTI15); 128impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130<<<<<<< HEAD 130<<<<<<< HEAD
131<<<<<<< HEAD
131impl_rng!(RNG, RNG); 132impl_rng!(RNG, RNG);
132pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 133pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
133impl_spi!(SPI1, APB2); 134impl_spi!(SPI1, APB2);
@@ -164,6 +165,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
164impl_spi_pin!(SPI3, MosiPin, PC12, 6); 165impl_spi_pin!(SPI3, MosiPin, PC12, 6);
165======= 166=======
166impl_rng!(RNG); 167impl_rng!(RNG);
168=======
169impl_rng!(RNG, RNG);
170>>>>>>> cbbaaa9 (Fix RNG interrupt name)
167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 171pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
168pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 172pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
169pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 173pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l431rc.rs b/embassy-stm32/src/pac/stm32l431rc.rs
index a9a5cb857..dfc641513 100644
--- a/embassy-stm32/src/pac/stm32l431rc.rs
+++ b/embassy-stm32/src/pac/stm32l431rc.rs
@@ -128,6 +128,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
128impl_gpio_pin!(PH15, 7, 15, EXTI15); 128impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130<<<<<<< HEAD 130<<<<<<< HEAD
131<<<<<<< HEAD
131impl_rng!(RNG, RNG); 132impl_rng!(RNG, RNG);
132pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 133pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
133impl_spi!(SPI1, APB2); 134impl_spi!(SPI1, APB2);
@@ -164,6 +165,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
164impl_spi_pin!(SPI3, MosiPin, PC12, 6); 165impl_spi_pin!(SPI3, MosiPin, PC12, 6);
165======= 166=======
166impl_rng!(RNG); 167impl_rng!(RNG);
168=======
169impl_rng!(RNG, RNG);
170>>>>>>> cbbaaa9 (Fix RNG interrupt name)
167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 171pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
168pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 172pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
169pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 173pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l431vc.rs b/embassy-stm32/src/pac/stm32l431vc.rs
index a9a5cb857..dfc641513 100644
--- a/embassy-stm32/src/pac/stm32l431vc.rs
+++ b/embassy-stm32/src/pac/stm32l431vc.rs
@@ -128,6 +128,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
128impl_gpio_pin!(PH15, 7, 15, EXTI15); 128impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130<<<<<<< HEAD 130<<<<<<< HEAD
131<<<<<<< HEAD
131impl_rng!(RNG, RNG); 132impl_rng!(RNG, RNG);
132pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 133pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
133impl_spi!(SPI1, APB2); 134impl_spi!(SPI1, APB2);
@@ -164,6 +165,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
164impl_spi_pin!(SPI3, MosiPin, PC12, 6); 165impl_spi_pin!(SPI3, MosiPin, PC12, 6);
165======= 166=======
166impl_rng!(RNG); 167impl_rng!(RNG);
168=======
169impl_rng!(RNG, RNG);
170>>>>>>> cbbaaa9 (Fix RNG interrupt name)
167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 171pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
168pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 172pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
169pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 173pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l432kb.rs b/embassy-stm32/src/pac/stm32l432kb.rs
index 81df622c8..04af4f2c4 100644
--- a/embassy-stm32/src/pac/stm32l432kb.rs
+++ b/embassy-stm32/src/pac/stm32l432kb.rs
@@ -94,6 +94,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
94impl_gpio_pin!(PH15, 7, 15, EXTI15); 94impl_gpio_pin!(PH15, 7, 15, EXTI15);
95pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 95pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
96<<<<<<< HEAD 96<<<<<<< HEAD
97<<<<<<< HEAD
97impl_rng!(RNG, RNG); 98impl_rng!(RNG, RNG);
98pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 99pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
99impl_spi!(SPI1, APB2); 100impl_spi!(SPI1, APB2);
@@ -116,6 +117,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
116impl_spi_pin!(SPI3, MosiPin, PC12, 6); 117impl_spi_pin!(SPI3, MosiPin, PC12, 6);
117======= 118=======
118impl_rng!(RNG); 119impl_rng!(RNG);
120=======
121impl_rng!(RNG, RNG);
122>>>>>>> cbbaaa9 (Fix RNG interrupt name)
119pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 123pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
120pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 124pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
121>>>>>>> 546082a (Update generated code) 125>>>>>>> 546082a (Update generated code)
diff --git a/embassy-stm32/src/pac/stm32l432kc.rs b/embassy-stm32/src/pac/stm32l432kc.rs
index 81df622c8..04af4f2c4 100644
--- a/embassy-stm32/src/pac/stm32l432kc.rs
+++ b/embassy-stm32/src/pac/stm32l432kc.rs
@@ -94,6 +94,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
94impl_gpio_pin!(PH15, 7, 15, EXTI15); 94impl_gpio_pin!(PH15, 7, 15, EXTI15);
95pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 95pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
96<<<<<<< HEAD 96<<<<<<< HEAD
97<<<<<<< HEAD
97impl_rng!(RNG, RNG); 98impl_rng!(RNG, RNG);
98pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 99pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
99impl_spi!(SPI1, APB2); 100impl_spi!(SPI1, APB2);
@@ -116,6 +117,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
116impl_spi_pin!(SPI3, MosiPin, PC12, 6); 117impl_spi_pin!(SPI3, MosiPin, PC12, 6);
117======= 118=======
118impl_rng!(RNG); 119impl_rng!(RNG);
120=======
121impl_rng!(RNG, RNG);
122>>>>>>> cbbaaa9 (Fix RNG interrupt name)
119pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 123pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
120pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 124pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
121>>>>>>> 546082a (Update generated code) 125>>>>>>> 546082a (Update generated code)
diff --git a/embassy-stm32/src/pac/stm32l433cb.rs b/embassy-stm32/src/pac/stm32l433cb.rs
index 9abe19340..360d57b1c 100644
--- a/embassy-stm32/src/pac/stm32l433cb.rs
+++ b/embassy-stm32/src/pac/stm32l433cb.rs
@@ -128,6 +128,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
128impl_gpio_pin!(PH15, 7, 15, EXTI15); 128impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130<<<<<<< HEAD 130<<<<<<< HEAD
131<<<<<<< HEAD
131impl_rng!(RNG, RNG); 132impl_rng!(RNG, RNG);
132pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 133pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
133impl_spi!(SPI1, APB2); 134impl_spi!(SPI1, APB2);
@@ -164,6 +165,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
164impl_spi_pin!(SPI3, MosiPin, PC12, 6); 165impl_spi_pin!(SPI3, MosiPin, PC12, 6);
165======= 166=======
166impl_rng!(RNG); 167impl_rng!(RNG);
168=======
169impl_rng!(RNG, RNG);
170>>>>>>> cbbaaa9 (Fix RNG interrupt name)
167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 171pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
168pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 172pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
169pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 173pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l433cc.rs b/embassy-stm32/src/pac/stm32l433cc.rs
index 9abe19340..360d57b1c 100644
--- a/embassy-stm32/src/pac/stm32l433cc.rs
+++ b/embassy-stm32/src/pac/stm32l433cc.rs
@@ -128,6 +128,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
128impl_gpio_pin!(PH15, 7, 15, EXTI15); 128impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130<<<<<<< HEAD 130<<<<<<< HEAD
131<<<<<<< HEAD
131impl_rng!(RNG, RNG); 132impl_rng!(RNG, RNG);
132pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 133pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
133impl_spi!(SPI1, APB2); 134impl_spi!(SPI1, APB2);
@@ -164,6 +165,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
164impl_spi_pin!(SPI3, MosiPin, PC12, 6); 165impl_spi_pin!(SPI3, MosiPin, PC12, 6);
165======= 166=======
166impl_rng!(RNG); 167impl_rng!(RNG);
168=======
169impl_rng!(RNG, RNG);
170>>>>>>> cbbaaa9 (Fix RNG interrupt name)
167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 171pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
168pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 172pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
169pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 173pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l433rb.rs b/embassy-stm32/src/pac/stm32l433rb.rs
index 9abe19340..360d57b1c 100644
--- a/embassy-stm32/src/pac/stm32l433rb.rs
+++ b/embassy-stm32/src/pac/stm32l433rb.rs
@@ -128,6 +128,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
128impl_gpio_pin!(PH15, 7, 15, EXTI15); 128impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130<<<<<<< HEAD 130<<<<<<< HEAD
131<<<<<<< HEAD
131impl_rng!(RNG, RNG); 132impl_rng!(RNG, RNG);
132pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 133pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
133impl_spi!(SPI1, APB2); 134impl_spi!(SPI1, APB2);
@@ -164,6 +165,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
164impl_spi_pin!(SPI3, MosiPin, PC12, 6); 165impl_spi_pin!(SPI3, MosiPin, PC12, 6);
165======= 166=======
166impl_rng!(RNG); 167impl_rng!(RNG);
168=======
169impl_rng!(RNG, RNG);
170>>>>>>> cbbaaa9 (Fix RNG interrupt name)
167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 171pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
168pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 172pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
169pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 173pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l433rc.rs b/embassy-stm32/src/pac/stm32l433rc.rs
index 9abe19340..360d57b1c 100644
--- a/embassy-stm32/src/pac/stm32l433rc.rs
+++ b/embassy-stm32/src/pac/stm32l433rc.rs
@@ -128,6 +128,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
128impl_gpio_pin!(PH15, 7, 15, EXTI15); 128impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130<<<<<<< HEAD 130<<<<<<< HEAD
131<<<<<<< HEAD
131impl_rng!(RNG, RNG); 132impl_rng!(RNG, RNG);
132pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 133pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
133impl_spi!(SPI1, APB2); 134impl_spi!(SPI1, APB2);
@@ -164,6 +165,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
164impl_spi_pin!(SPI3, MosiPin, PC12, 6); 165impl_spi_pin!(SPI3, MosiPin, PC12, 6);
165======= 166=======
166impl_rng!(RNG); 167impl_rng!(RNG);
168=======
169impl_rng!(RNG, RNG);
170>>>>>>> cbbaaa9 (Fix RNG interrupt name)
167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 171pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
168pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 172pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
169pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 173pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l433vc.rs b/embassy-stm32/src/pac/stm32l433vc.rs
index 9abe19340..360d57b1c 100644
--- a/embassy-stm32/src/pac/stm32l433vc.rs
+++ b/embassy-stm32/src/pac/stm32l433vc.rs
@@ -128,6 +128,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
128impl_gpio_pin!(PH15, 7, 15, EXTI15); 128impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130<<<<<<< HEAD 130<<<<<<< HEAD
131<<<<<<< HEAD
131impl_rng!(RNG, RNG); 132impl_rng!(RNG, RNG);
132pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 133pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
133impl_spi!(SPI1, APB2); 134impl_spi!(SPI1, APB2);
@@ -164,6 +165,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
164impl_spi_pin!(SPI3, MosiPin, PC12, 6); 165impl_spi_pin!(SPI3, MosiPin, PC12, 6);
165======= 166=======
166impl_rng!(RNG); 167impl_rng!(RNG);
168=======
169impl_rng!(RNG, RNG);
170>>>>>>> cbbaaa9 (Fix RNG interrupt name)
167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 171pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
168pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 172pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
169pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 173pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l442kc.rs b/embassy-stm32/src/pac/stm32l442kc.rs
index 2f2444fe9..875e3f801 100644
--- a/embassy-stm32/src/pac/stm32l442kc.rs
+++ b/embassy-stm32/src/pac/stm32l442kc.rs
@@ -94,6 +94,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
94impl_gpio_pin!(PH15, 7, 15, EXTI15); 94impl_gpio_pin!(PH15, 7, 15, EXTI15);
95pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 95pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
96<<<<<<< HEAD 96<<<<<<< HEAD
97<<<<<<< HEAD
97impl_rng!(RNG, RNG); 98impl_rng!(RNG, RNG);
98pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 99pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
99impl_spi!(SPI1, APB2); 100impl_spi!(SPI1, APB2);
@@ -116,6 +117,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
116impl_spi_pin!(SPI3, MosiPin, PC12, 6); 117impl_spi_pin!(SPI3, MosiPin, PC12, 6);
117======= 118=======
118impl_rng!(RNG); 119impl_rng!(RNG);
120=======
121impl_rng!(RNG, RNG);
122>>>>>>> cbbaaa9 (Fix RNG interrupt name)
119pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 123pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
120pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 124pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
121>>>>>>> 546082a (Update generated code) 125>>>>>>> 546082a (Update generated code)
diff --git a/embassy-stm32/src/pac/stm32l443cc.rs b/embassy-stm32/src/pac/stm32l443cc.rs
index 051c981d6..dbd166f35 100644
--- a/embassy-stm32/src/pac/stm32l443cc.rs
+++ b/embassy-stm32/src/pac/stm32l443cc.rs
@@ -128,6 +128,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
128impl_gpio_pin!(PH15, 7, 15, EXTI15); 128impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130<<<<<<< HEAD 130<<<<<<< HEAD
131<<<<<<< HEAD
131impl_rng!(RNG, RNG); 132impl_rng!(RNG, RNG);
132pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 133pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
133impl_spi!(SPI1, APB2); 134impl_spi!(SPI1, APB2);
@@ -164,6 +165,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
164impl_spi_pin!(SPI3, MosiPin, PC12, 6); 165impl_spi_pin!(SPI3, MosiPin, PC12, 6);
165======= 166=======
166impl_rng!(RNG); 167impl_rng!(RNG);
168=======
169impl_rng!(RNG, RNG);
170>>>>>>> cbbaaa9 (Fix RNG interrupt name)
167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 171pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
168pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 172pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
169pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 173pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l443rc.rs b/embassy-stm32/src/pac/stm32l443rc.rs
index 051c981d6..dbd166f35 100644
--- a/embassy-stm32/src/pac/stm32l443rc.rs
+++ b/embassy-stm32/src/pac/stm32l443rc.rs
@@ -128,6 +128,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
128impl_gpio_pin!(PH15, 7, 15, EXTI15); 128impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130<<<<<<< HEAD 130<<<<<<< HEAD
131<<<<<<< HEAD
131impl_rng!(RNG, RNG); 132impl_rng!(RNG, RNG);
132pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 133pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
133impl_spi!(SPI1, APB2); 134impl_spi!(SPI1, APB2);
@@ -164,6 +165,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
164impl_spi_pin!(SPI3, MosiPin, PC12, 6); 165impl_spi_pin!(SPI3, MosiPin, PC12, 6);
165======= 166=======
166impl_rng!(RNG); 167impl_rng!(RNG);
168=======
169impl_rng!(RNG, RNG);
170>>>>>>> cbbaaa9 (Fix RNG interrupt name)
167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 171pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
168pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 172pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
169pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 173pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l443vc.rs b/embassy-stm32/src/pac/stm32l443vc.rs
index 051c981d6..dbd166f35 100644
--- a/embassy-stm32/src/pac/stm32l443vc.rs
+++ b/embassy-stm32/src/pac/stm32l443vc.rs
@@ -128,6 +128,7 @@ impl_gpio_pin!(PH14, 7, 14, EXTI14);
128impl_gpio_pin!(PH15, 7, 15, EXTI15); 128impl_gpio_pin!(PH15, 7, 15, EXTI15);
129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 129pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
130<<<<<<< HEAD 130<<<<<<< HEAD
131<<<<<<< HEAD
131impl_rng!(RNG, RNG); 132impl_rng!(RNG, RNG);
132pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 133pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
133impl_spi!(SPI1, APB2); 134impl_spi!(SPI1, APB2);
@@ -164,6 +165,9 @@ impl_spi_pin!(SPI3, MisoPin, PC11, 6);
164impl_spi_pin!(SPI3, MosiPin, PC12, 6); 165impl_spi_pin!(SPI3, MosiPin, PC12, 6);
165======= 166=======
166impl_rng!(RNG); 167impl_rng!(RNG);
168=======
169impl_rng!(RNG, RNG);
170>>>>>>> cbbaaa9 (Fix RNG interrupt name)
167pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 171pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
168pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 172pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
169pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 173pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l496ae.rs b/embassy-stm32/src/pac/stm32l496ae.rs
index d50fc1ca7..f95448fb5 100644
--- a/embassy-stm32/src/pac/stm32l496ae.rs
+++ b/embassy-stm32/src/pac/stm32l496ae.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -227,6 +228,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 228impl_spi_pin!(SPI3, SckPin, PG9, 6);
228======= 229=======
229impl_rng!(RNG); 230impl_rng!(RNG);
231=======
232impl_rng!(RNG, RNG);
233>>>>>>> cbbaaa9 (Fix RNG interrupt name)
230pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 234pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
231pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 235pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
232pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 236pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l496ag.rs b/embassy-stm32/src/pac/stm32l496ag.rs
index d50fc1ca7..f95448fb5 100644
--- a/embassy-stm32/src/pac/stm32l496ag.rs
+++ b/embassy-stm32/src/pac/stm32l496ag.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -227,6 +228,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 228impl_spi_pin!(SPI3, SckPin, PG9, 6);
228======= 229=======
229impl_rng!(RNG); 230impl_rng!(RNG);
231=======
232impl_rng!(RNG, RNG);
233>>>>>>> cbbaaa9 (Fix RNG interrupt name)
230pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 234pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
231pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 235pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
232pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 236pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l496qe.rs b/embassy-stm32/src/pac/stm32l496qe.rs
index d50fc1ca7..f95448fb5 100644
--- a/embassy-stm32/src/pac/stm32l496qe.rs
+++ b/embassy-stm32/src/pac/stm32l496qe.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -227,6 +228,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 228impl_spi_pin!(SPI3, SckPin, PG9, 6);
228======= 229=======
229impl_rng!(RNG); 230impl_rng!(RNG);
231=======
232impl_rng!(RNG, RNG);
233>>>>>>> cbbaaa9 (Fix RNG interrupt name)
230pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 234pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
231pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 235pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
232pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 236pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l496qg.rs b/embassy-stm32/src/pac/stm32l496qg.rs
index d50fc1ca7..f95448fb5 100644
--- a/embassy-stm32/src/pac/stm32l496qg.rs
+++ b/embassy-stm32/src/pac/stm32l496qg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -227,6 +228,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 228impl_spi_pin!(SPI3, SckPin, PG9, 6);
228======= 229=======
229impl_rng!(RNG); 230impl_rng!(RNG);
231=======
232impl_rng!(RNG, RNG);
233>>>>>>> cbbaaa9 (Fix RNG interrupt name)
230pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 234pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
231pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 235pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
232pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 236pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l496re.rs b/embassy-stm32/src/pac/stm32l496re.rs
index d50fc1ca7..f95448fb5 100644
--- a/embassy-stm32/src/pac/stm32l496re.rs
+++ b/embassy-stm32/src/pac/stm32l496re.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -227,6 +228,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 228impl_spi_pin!(SPI3, SckPin, PG9, 6);
228======= 229=======
229impl_rng!(RNG); 230impl_rng!(RNG);
231=======
232impl_rng!(RNG, RNG);
233>>>>>>> cbbaaa9 (Fix RNG interrupt name)
230pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 234pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
231pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 235pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
232pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 236pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l496rg.rs b/embassy-stm32/src/pac/stm32l496rg.rs
index d50fc1ca7..f95448fb5 100644
--- a/embassy-stm32/src/pac/stm32l496rg.rs
+++ b/embassy-stm32/src/pac/stm32l496rg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -227,6 +228,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 228impl_spi_pin!(SPI3, SckPin, PG9, 6);
228======= 229=======
229impl_rng!(RNG); 230impl_rng!(RNG);
231=======
232impl_rng!(RNG, RNG);
233>>>>>>> cbbaaa9 (Fix RNG interrupt name)
230pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 234pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
231pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 235pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
232pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 236pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l496ve.rs b/embassy-stm32/src/pac/stm32l496ve.rs
index d50fc1ca7..f95448fb5 100644
--- a/embassy-stm32/src/pac/stm32l496ve.rs
+++ b/embassy-stm32/src/pac/stm32l496ve.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -227,6 +228,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 228impl_spi_pin!(SPI3, SckPin, PG9, 6);
228======= 229=======
229impl_rng!(RNG); 230impl_rng!(RNG);
231=======
232impl_rng!(RNG, RNG);
233>>>>>>> cbbaaa9 (Fix RNG interrupt name)
230pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 234pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
231pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 235pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
232pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 236pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l496vg.rs b/embassy-stm32/src/pac/stm32l496vg.rs
index d50fc1ca7..f95448fb5 100644
--- a/embassy-stm32/src/pac/stm32l496vg.rs
+++ b/embassy-stm32/src/pac/stm32l496vg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -227,6 +228,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 228impl_spi_pin!(SPI3, SckPin, PG9, 6);
228======= 229=======
229impl_rng!(RNG); 230impl_rng!(RNG);
231=======
232impl_rng!(RNG, RNG);
233>>>>>>> cbbaaa9 (Fix RNG interrupt name)
230pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 234pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
231pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 235pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
232pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 236pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l496wg.rs b/embassy-stm32/src/pac/stm32l496wg.rs
index d50fc1ca7..f95448fb5 100644
--- a/embassy-stm32/src/pac/stm32l496wg.rs
+++ b/embassy-stm32/src/pac/stm32l496wg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -227,6 +228,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 228impl_spi_pin!(SPI3, SckPin, PG9, 6);
228======= 229=======
229impl_rng!(RNG); 230impl_rng!(RNG);
231=======
232impl_rng!(RNG, RNG);
233>>>>>>> cbbaaa9 (Fix RNG interrupt name)
230pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 234pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
231pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 235pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
232pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 236pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l496ze.rs b/embassy-stm32/src/pac/stm32l496ze.rs
index d50fc1ca7..f95448fb5 100644
--- a/embassy-stm32/src/pac/stm32l496ze.rs
+++ b/embassy-stm32/src/pac/stm32l496ze.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -227,6 +228,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 228impl_spi_pin!(SPI3, SckPin, PG9, 6);
228======= 229=======
229impl_rng!(RNG); 230impl_rng!(RNG);
231=======
232impl_rng!(RNG, RNG);
233>>>>>>> cbbaaa9 (Fix RNG interrupt name)
230pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 234pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
231pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 235pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
232pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 236pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l496zg.rs b/embassy-stm32/src/pac/stm32l496zg.rs
index d50fc1ca7..f95448fb5 100644
--- a/embassy-stm32/src/pac/stm32l496zg.rs
+++ b/embassy-stm32/src/pac/stm32l496zg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -227,6 +228,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 228impl_spi_pin!(SPI3, SckPin, PG9, 6);
228======= 229=======
229impl_rng!(RNG); 230impl_rng!(RNG);
231=======
232impl_rng!(RNG, RNG);
233>>>>>>> cbbaaa9 (Fix RNG interrupt name)
230pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 234pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
231pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 235pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
232pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 236pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4a6ag.rs b/embassy-stm32/src/pac/stm32l4a6ag.rs
index 8df528055..90b50e292 100644
--- a/embassy-stm32/src/pac/stm32l4a6ag.rs
+++ b/embassy-stm32/src/pac/stm32l4a6ag.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, HASH_RNG); 183impl_rng!(RNG, HASH_RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -227,6 +228,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 228impl_spi_pin!(SPI3, SckPin, PG9, 6);
228======= 229=======
229impl_rng!(RNG); 230impl_rng!(RNG);
231=======
232impl_rng!(RNG, HASH_RNG);
233>>>>>>> cbbaaa9 (Fix RNG interrupt name)
230pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 234pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
231pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 235pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
232pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 236pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4a6qg.rs b/embassy-stm32/src/pac/stm32l4a6qg.rs
index 8df528055..90b50e292 100644
--- a/embassy-stm32/src/pac/stm32l4a6qg.rs
+++ b/embassy-stm32/src/pac/stm32l4a6qg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, HASH_RNG); 183impl_rng!(RNG, HASH_RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -227,6 +228,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 228impl_spi_pin!(SPI3, SckPin, PG9, 6);
228======= 229=======
229impl_rng!(RNG); 230impl_rng!(RNG);
231=======
232impl_rng!(RNG, HASH_RNG);
233>>>>>>> cbbaaa9 (Fix RNG interrupt name)
230pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 234pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
231pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 235pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
232pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 236pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4a6rg.rs b/embassy-stm32/src/pac/stm32l4a6rg.rs
index 8df528055..90b50e292 100644
--- a/embassy-stm32/src/pac/stm32l4a6rg.rs
+++ b/embassy-stm32/src/pac/stm32l4a6rg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, HASH_RNG); 183impl_rng!(RNG, HASH_RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -227,6 +228,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 228impl_spi_pin!(SPI3, SckPin, PG9, 6);
228======= 229=======
229impl_rng!(RNG); 230impl_rng!(RNG);
231=======
232impl_rng!(RNG, HASH_RNG);
233>>>>>>> cbbaaa9 (Fix RNG interrupt name)
230pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 234pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
231pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 235pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
232pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 236pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4a6vg.rs b/embassy-stm32/src/pac/stm32l4a6vg.rs
index 8df528055..90b50e292 100644
--- a/embassy-stm32/src/pac/stm32l4a6vg.rs
+++ b/embassy-stm32/src/pac/stm32l4a6vg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, HASH_RNG); 183impl_rng!(RNG, HASH_RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -227,6 +228,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 228impl_spi_pin!(SPI3, SckPin, PG9, 6);
228======= 229=======
229impl_rng!(RNG); 230impl_rng!(RNG);
231=======
232impl_rng!(RNG, HASH_RNG);
233>>>>>>> cbbaaa9 (Fix RNG interrupt name)
230pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 234pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
231pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 235pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
232pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 236pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4a6zg.rs b/embassy-stm32/src/pac/stm32l4a6zg.rs
index 8df528055..90b50e292 100644
--- a/embassy-stm32/src/pac/stm32l4a6zg.rs
+++ b/embassy-stm32/src/pac/stm32l4a6zg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, HASH_RNG); 183impl_rng!(RNG, HASH_RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -227,6 +228,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
227impl_spi_pin!(SPI3, SckPin, PG9, 6); 228impl_spi_pin!(SPI3, SckPin, PG9, 6);
228======= 229=======
229impl_rng!(RNG); 230impl_rng!(RNG);
231=======
232impl_rng!(RNG, HASH_RNG);
233>>>>>>> cbbaaa9 (Fix RNG interrupt name)
230pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 234pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
231pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 235pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
232pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 236pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4p5ae.rs b/embassy-stm32/src/pac/stm32l4p5ae.rs
index acb975966..8be63182e 100644
--- a/embassy-stm32/src/pac/stm32l4p5ae.rs
+++ b/embassy-stm32/src/pac/stm32l4p5ae.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4p5ag.rs b/embassy-stm32/src/pac/stm32l4p5ag.rs
index acb975966..8be63182e 100644
--- a/embassy-stm32/src/pac/stm32l4p5ag.rs
+++ b/embassy-stm32/src/pac/stm32l4p5ag.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4p5ce.rs b/embassy-stm32/src/pac/stm32l4p5ce.rs
index acb975966..8be63182e 100644
--- a/embassy-stm32/src/pac/stm32l4p5ce.rs
+++ b/embassy-stm32/src/pac/stm32l4p5ce.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4p5cg.rs b/embassy-stm32/src/pac/stm32l4p5cg.rs
index acb975966..8be63182e 100644
--- a/embassy-stm32/src/pac/stm32l4p5cg.rs
+++ b/embassy-stm32/src/pac/stm32l4p5cg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4p5qe.rs b/embassy-stm32/src/pac/stm32l4p5qe.rs
index acb975966..8be63182e 100644
--- a/embassy-stm32/src/pac/stm32l4p5qe.rs
+++ b/embassy-stm32/src/pac/stm32l4p5qe.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4p5qg.rs b/embassy-stm32/src/pac/stm32l4p5qg.rs
index acb975966..8be63182e 100644
--- a/embassy-stm32/src/pac/stm32l4p5qg.rs
+++ b/embassy-stm32/src/pac/stm32l4p5qg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4p5re.rs b/embassy-stm32/src/pac/stm32l4p5re.rs
index acb975966..8be63182e 100644
--- a/embassy-stm32/src/pac/stm32l4p5re.rs
+++ b/embassy-stm32/src/pac/stm32l4p5re.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4p5rg.rs b/embassy-stm32/src/pac/stm32l4p5rg.rs
index acb975966..8be63182e 100644
--- a/embassy-stm32/src/pac/stm32l4p5rg.rs
+++ b/embassy-stm32/src/pac/stm32l4p5rg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4p5ve.rs b/embassy-stm32/src/pac/stm32l4p5ve.rs
index acb975966..8be63182e 100644
--- a/embassy-stm32/src/pac/stm32l4p5ve.rs
+++ b/embassy-stm32/src/pac/stm32l4p5ve.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4p5vg.rs b/embassy-stm32/src/pac/stm32l4p5vg.rs
index acb975966..8be63182e 100644
--- a/embassy-stm32/src/pac/stm32l4p5vg.rs
+++ b/embassy-stm32/src/pac/stm32l4p5vg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4p5ze.rs b/embassy-stm32/src/pac/stm32l4p5ze.rs
index acb975966..8be63182e 100644
--- a/embassy-stm32/src/pac/stm32l4p5ze.rs
+++ b/embassy-stm32/src/pac/stm32l4p5ze.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4p5zg.rs b/embassy-stm32/src/pac/stm32l4p5zg.rs
index acb975966..8be63182e 100644
--- a/embassy-stm32/src/pac/stm32l4p5zg.rs
+++ b/embassy-stm32/src/pac/stm32l4p5zg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4q5ag.rs b/embassy-stm32/src/pac/stm32l4q5ag.rs
index 12067bb80..bc7ebb173 100644
--- a/embassy-stm32/src/pac/stm32l4q5ag.rs
+++ b/embassy-stm32/src/pac/stm32l4q5ag.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4q5cg.rs b/embassy-stm32/src/pac/stm32l4q5cg.rs
index 12067bb80..bc7ebb173 100644
--- a/embassy-stm32/src/pac/stm32l4q5cg.rs
+++ b/embassy-stm32/src/pac/stm32l4q5cg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4q5qg.rs b/embassy-stm32/src/pac/stm32l4q5qg.rs
index 12067bb80..bc7ebb173 100644
--- a/embassy-stm32/src/pac/stm32l4q5qg.rs
+++ b/embassy-stm32/src/pac/stm32l4q5qg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4q5rg.rs b/embassy-stm32/src/pac/stm32l4q5rg.rs
index 12067bb80..bc7ebb173 100644
--- a/embassy-stm32/src/pac/stm32l4q5rg.rs
+++ b/embassy-stm32/src/pac/stm32l4q5rg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4q5vg.rs b/embassy-stm32/src/pac/stm32l4q5vg.rs
index 12067bb80..bc7ebb173 100644
--- a/embassy-stm32/src/pac/stm32l4q5vg.rs
+++ b/embassy-stm32/src/pac/stm32l4q5vg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4q5zg.rs b/embassy-stm32/src/pac/stm32l4q5zg.rs
index 12067bb80..bc7ebb173 100644
--- a/embassy-stm32/src/pac/stm32l4q5zg.rs
+++ b/embassy-stm32/src/pac/stm32l4q5zg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4r5ag.rs b/embassy-stm32/src/pac/stm32l4r5ag.rs
index 629093287..eec36eab2 100644
--- a/embassy-stm32/src/pac/stm32l4r5ag.rs
+++ b/embassy-stm32/src/pac/stm32l4r5ag.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4r5ai.rs b/embassy-stm32/src/pac/stm32l4r5ai.rs
index 629093287..eec36eab2 100644
--- a/embassy-stm32/src/pac/stm32l4r5ai.rs
+++ b/embassy-stm32/src/pac/stm32l4r5ai.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4r5qg.rs b/embassy-stm32/src/pac/stm32l4r5qg.rs
index 629093287..eec36eab2 100644
--- a/embassy-stm32/src/pac/stm32l4r5qg.rs
+++ b/embassy-stm32/src/pac/stm32l4r5qg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4r5qi.rs b/embassy-stm32/src/pac/stm32l4r5qi.rs
index 629093287..eec36eab2 100644
--- a/embassy-stm32/src/pac/stm32l4r5qi.rs
+++ b/embassy-stm32/src/pac/stm32l4r5qi.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4r5vg.rs b/embassy-stm32/src/pac/stm32l4r5vg.rs
index 629093287..eec36eab2 100644
--- a/embassy-stm32/src/pac/stm32l4r5vg.rs
+++ b/embassy-stm32/src/pac/stm32l4r5vg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4r5vi.rs b/embassy-stm32/src/pac/stm32l4r5vi.rs
index 629093287..eec36eab2 100644
--- a/embassy-stm32/src/pac/stm32l4r5vi.rs
+++ b/embassy-stm32/src/pac/stm32l4r5vi.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4r5zg.rs b/embassy-stm32/src/pac/stm32l4r5zg.rs
index 629093287..eec36eab2 100644
--- a/embassy-stm32/src/pac/stm32l4r5zg.rs
+++ b/embassy-stm32/src/pac/stm32l4r5zg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4r5zi.rs b/embassy-stm32/src/pac/stm32l4r5zi.rs
index 629093287..eec36eab2 100644
--- a/embassy-stm32/src/pac/stm32l4r5zi.rs
+++ b/embassy-stm32/src/pac/stm32l4r5zi.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4r7ai.rs b/embassy-stm32/src/pac/stm32l4r7ai.rs
index 6262e470a..4420d10e3 100644
--- a/embassy-stm32/src/pac/stm32l4r7ai.rs
+++ b/embassy-stm32/src/pac/stm32l4r7ai.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4r7vi.rs b/embassy-stm32/src/pac/stm32l4r7vi.rs
index 6262e470a..4420d10e3 100644
--- a/embassy-stm32/src/pac/stm32l4r7vi.rs
+++ b/embassy-stm32/src/pac/stm32l4r7vi.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4r7zi.rs b/embassy-stm32/src/pac/stm32l4r7zi.rs
index 6262e470a..4420d10e3 100644
--- a/embassy-stm32/src/pac/stm32l4r7zi.rs
+++ b/embassy-stm32/src/pac/stm32l4r7zi.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4r9ag.rs b/embassy-stm32/src/pac/stm32l4r9ag.rs
index d981d85d9..f24623d11 100644
--- a/embassy-stm32/src/pac/stm32l4r9ag.rs
+++ b/embassy-stm32/src/pac/stm32l4r9ag.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4r9ai.rs b/embassy-stm32/src/pac/stm32l4r9ai.rs
index d981d85d9..f24623d11 100644
--- a/embassy-stm32/src/pac/stm32l4r9ai.rs
+++ b/embassy-stm32/src/pac/stm32l4r9ai.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4r9vg.rs b/embassy-stm32/src/pac/stm32l4r9vg.rs
index d981d85d9..f24623d11 100644
--- a/embassy-stm32/src/pac/stm32l4r9vg.rs
+++ b/embassy-stm32/src/pac/stm32l4r9vg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4r9vi.rs b/embassy-stm32/src/pac/stm32l4r9vi.rs
index d981d85d9..f24623d11 100644
--- a/embassy-stm32/src/pac/stm32l4r9vi.rs
+++ b/embassy-stm32/src/pac/stm32l4r9vi.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4r9zg.rs b/embassy-stm32/src/pac/stm32l4r9zg.rs
index d981d85d9..f24623d11 100644
--- a/embassy-stm32/src/pac/stm32l4r9zg.rs
+++ b/embassy-stm32/src/pac/stm32l4r9zg.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4r9zi.rs b/embassy-stm32/src/pac/stm32l4r9zi.rs
index d981d85d9..f24623d11 100644
--- a/embassy-stm32/src/pac/stm32l4r9zi.rs
+++ b/embassy-stm32/src/pac/stm32l4r9zi.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4s5ai.rs b/embassy-stm32/src/pac/stm32l4s5ai.rs
index 261bb82fb..7522712d4 100644
--- a/embassy-stm32/src/pac/stm32l4s5ai.rs
+++ b/embassy-stm32/src/pac/stm32l4s5ai.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4s5qi.rs b/embassy-stm32/src/pac/stm32l4s5qi.rs
index 261bb82fb..7522712d4 100644
--- a/embassy-stm32/src/pac/stm32l4s5qi.rs
+++ b/embassy-stm32/src/pac/stm32l4s5qi.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4s5vi.rs b/embassy-stm32/src/pac/stm32l4s5vi.rs
index 261bb82fb..7522712d4 100644
--- a/embassy-stm32/src/pac/stm32l4s5vi.rs
+++ b/embassy-stm32/src/pac/stm32l4s5vi.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4s5zi.rs b/embassy-stm32/src/pac/stm32l4s5zi.rs
index 261bb82fb..7522712d4 100644
--- a/embassy-stm32/src/pac/stm32l4s5zi.rs
+++ b/embassy-stm32/src/pac/stm32l4s5zi.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4s7ai.rs b/embassy-stm32/src/pac/stm32l4s7ai.rs
index 098e5ffac..ac3602872 100644
--- a/embassy-stm32/src/pac/stm32l4s7ai.rs
+++ b/embassy-stm32/src/pac/stm32l4s7ai.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4s7vi.rs b/embassy-stm32/src/pac/stm32l4s7vi.rs
index 098e5ffac..ac3602872 100644
--- a/embassy-stm32/src/pac/stm32l4s7vi.rs
+++ b/embassy-stm32/src/pac/stm32l4s7vi.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4s7zi.rs b/embassy-stm32/src/pac/stm32l4s7zi.rs
index 098e5ffac..ac3602872 100644
--- a/embassy-stm32/src/pac/stm32l4s7zi.rs
+++ b/embassy-stm32/src/pac/stm32l4s7zi.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4s9ai.rs b/embassy-stm32/src/pac/stm32l4s9ai.rs
index 5ec05b975..60b209fec 100644
--- a/embassy-stm32/src/pac/stm32l4s9ai.rs
+++ b/embassy-stm32/src/pac/stm32l4s9ai.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4s9vi.rs b/embassy-stm32/src/pac/stm32l4s9vi.rs
index 5ec05b975..60b209fec 100644
--- a/embassy-stm32/src/pac/stm32l4s9vi.rs
+++ b/embassy-stm32/src/pac/stm32l4s9vi.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/pac/stm32l4s9zi.rs b/embassy-stm32/src/pac/stm32l4s9zi.rs
index 5ec05b975..60b209fec 100644
--- a/embassy-stm32/src/pac/stm32l4s9zi.rs
+++ b/embassy-stm32/src/pac/stm32l4s9zi.rs
@@ -179,6 +179,7 @@ impl_gpio_pin!(PI14, 8, 14, EXTI14);
179impl_gpio_pin!(PI15, 8, 15, EXTI15); 179impl_gpio_pin!(PI15, 8, 15, EXTI15);
180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _); 180pub const RNG: rng::Rng = rng::Rng(0x50060800 as _);
181<<<<<<< HEAD 181<<<<<<< HEAD
182<<<<<<< HEAD
182impl_rng!(RNG, RNG); 183impl_rng!(RNG, RNG);
183pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 184pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
184impl_spi!(SPI1, APB2); 185impl_spi!(SPI1, APB2);
@@ -228,6 +229,9 @@ impl_spi_pin!(SPI3, MosiPin, PG11, 6);
228impl_spi_pin!(SPI3, SckPin, PG9, 6); 229impl_spi_pin!(SPI3, SckPin, PG9, 6);
229======= 230=======
230impl_rng!(RNG); 231impl_rng!(RNG);
232=======
233impl_rng!(RNG, RNG);
234>>>>>>> cbbaaa9 (Fix RNG interrupt name)
231pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _); 235pub const SPI1: spi::Spi = spi::Spi(0x40013000 as _);
232pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _); 236pub const SPI2: spi::Spi = spi::Spi(0x40003800 as _);
233pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _); 237pub const SPI3: spi::Spi = spi::Spi(0x40003c00 as _);
diff --git a/embassy-stm32/src/rng.rs b/embassy-stm32/src/rng.rs
index d7338ac9c..d1924d13f 100644
--- a/embassy-stm32/src/rng.rs
+++ b/embassy-stm32/src/rng.rs
@@ -8,7 +8,7 @@ use embassy_extras::unborrow;
8use futures::future::poll_fn; 8use futures::future::poll_fn;
9use rand_core::{CryptoRng, RngCore}; 9use rand_core::{CryptoRng, RngCore};
10 10
11use crate::interrupt; 11use crate::fmt::*;
12use crate::pac; 12use crate::pac;
13 13
14pub(crate) static RNG_WAKER: AtomicWaker = AtomicWaker::new(); 14pub(crate) static RNG_WAKER: AtomicWaker = AtomicWaker::new();