@@ -42,6 +42,7 @@ pub fn render(
4242 } ) )
4343 . as_ref ( ) ,
4444 ) ;
45+ let res_val = register. reset_value . or ( defs. reset_value ) . map ( |v| v as u64 ) ;
4546
4647 let mut mod_items = TokenStream :: new ( ) ;
4748 let mut r_impl_items = TokenStream :: new ( ) ;
@@ -50,6 +51,7 @@ pub fn render(
5051
5152 let can_read = [ Access :: ReadOnly , Access :: ReadWriteOnce , Access :: ReadWrite ] . contains ( & access) ;
5253 let can_write = access != Access :: ReadOnly ;
54+ let can_reset = res_val. is_some ( ) ;
5355
5456 if can_read {
5557 let desc = format ! ( "Reader of register {}" , register. name) ;
@@ -60,26 +62,17 @@ pub fn render(
6062 methods. push ( "read" ) ;
6163 }
6264
63- let res_val = register. reset_value . or ( defs. reset_value ) . map ( |v| v as u64 ) ;
6465 if can_write {
6566 let desc = format ! ( "Writer for register {}" , register. name) ;
6667 mod_items. extend ( quote ! {
6768 #[ doc = #desc]
6869 pub type W = crate :: W <super :: #u_name_pc>;
6970 } ) ;
70- if let Some ( rv) = res_val. map ( util:: hex) {
71- let doc = format ! ( "Register {} `reset()`'s with value {}" , register. name, & rv) ;
72- mod_items. extend ( quote ! {
73- #[ doc = #doc]
74- impl crate :: Resettable for super :: #u_name_pc {
75- #[ inline( always) ]
76- fn reset_value( ) -> Self :: Ux { #rv }
77- }
78- } ) ;
71+ methods. push ( "write_with_zero" ) ;
72+ if can_reset {
7973 methods. push ( "reset" ) ;
8074 methods. push ( "write" ) ;
8175 }
82- methods. push ( "write_with_zero" ) ;
8376 }
8477
8578 if can_read && can_write {
@@ -183,6 +176,16 @@ pub fn render(
183176 impl crate :: Writable for #u_name_pc { }
184177 } ) ;
185178 }
179+ if let Some ( rv) = res_val. map ( util:: hex) {
180+ let doc = format ! ( "Register {} `reset()`'s with value {}" , register. name, & rv) ;
181+ out. extend ( quote ! {
182+ #[ doc = #doc]
183+ impl crate :: Resettable for #u_name_pc {
184+ #[ inline( always) ]
185+ fn reset_value( ) -> Self :: Ux { #rv }
186+ }
187+ } ) ;
188+ }
186189
187190 out. extend ( quote ! {
188191 #[ doc = #description]
0 commit comments