@@ -42,6 +42,7 @@ pub fn render(
42
42
} ) )
43
43
. as_ref ( ) ,
44
44
) ;
45
+ let res_val = register. reset_value . or ( defs. reset_value ) . map ( |v| v as u64 ) ;
45
46
46
47
let mut mod_items = TokenStream :: new ( ) ;
47
48
let mut r_impl_items = TokenStream :: new ( ) ;
@@ -50,6 +51,7 @@ pub fn render(
50
51
51
52
let can_read = [ Access :: ReadOnly , Access :: ReadWriteOnce , Access :: ReadWrite ] . contains ( & access) ;
52
53
let can_write = access != Access :: ReadOnly ;
54
+ let can_reset = res_val. is_some ( ) ;
53
55
54
56
if can_read {
55
57
let desc = format ! ( "Reader of register {}" , register. name) ;
@@ -60,26 +62,17 @@ pub fn render(
60
62
methods. push ( "read" ) ;
61
63
}
62
64
63
- let res_val = register. reset_value . or ( defs. reset_value ) . map ( |v| v as u64 ) ;
64
65
if can_write {
65
66
let desc = format ! ( "Writer for register {}" , register. name) ;
66
67
mod_items. extend ( quote ! {
67
68
#[ doc = #desc]
68
69
pub type W = crate :: W <super :: #u_name_pc>;
69
70
} ) ;
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 {
79
73
methods. push ( "reset" ) ;
80
74
methods. push ( "write" ) ;
81
75
}
82
- methods. push ( "write_with_zero" ) ;
83
76
}
84
77
85
78
if can_read && can_write {
@@ -183,6 +176,16 @@ pub fn render(
183
176
impl crate :: Writable for #u_name_pc { }
184
177
} ) ;
185
178
}
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
+ }
186
189
187
190
out. extend ( quote ! {
188
191
#[ doc = #description]
0 commit comments