@@ -68,6 +68,7 @@ fn generate_code() {
68
68
g. extend ( generate_pin_trait_impls ( ) ) ;
69
69
g. extend ( generate_groups ( ) ) ;
70
70
g. extend ( generate_dma_channel_count ( ) ) ;
71
+ g. extend ( generate_adc_constants ( & mut cfgs) ) ;
71
72
72
73
let out_dir = & PathBuf :: from ( env:: var_os ( "OUT_DIR" ) . unwrap ( ) ) ;
73
74
let out_file = out_dir. join ( "_generated.rs" ) . to_string_lossy ( ) . to_string ( ) ;
@@ -220,6 +221,22 @@ fn generate_dma_channel_count() -> TokenStream {
220
221
quote ! { pub const DMA_CHANNELS : usize = #count; }
221
222
}
222
223
224
+ fn generate_adc_constants ( cfgs : & mut CfgSet ) -> TokenStream {
225
+ let vrsel = METADATA . adc_vrsel ;
226
+ let memctl = METADATA . adc_memctl ;
227
+
228
+ cfgs. declare ( "adc_neg_vref" ) ;
229
+ match vrsel {
230
+ 3 => ( ) ,
231
+ 5 => cfgs. enable ( "adc_neg_vref" ) ,
232
+ _ => panic ! ( "Unsupported ADC VRSEL value: {vrsel}" ) ,
233
+ }
234
+ quote ! {
235
+ pub const ADC_VRSEL : u8 = #vrsel;
236
+ pub const ADC_MEMCTL : u8 = #memctl;
237
+ }
238
+ }
239
+
223
240
#[ derive( Debug , Clone ) ]
224
241
struct Singleton {
225
242
name : String ,
@@ -561,6 +578,7 @@ fn generate_peripheral_instances() -> TokenStream {
561
578
"uart" => Some ( quote ! { impl_uart_instance!( #peri) ; } ) ,
562
579
"i2c" => Some ( quote ! { impl_i2c_instance!( #peri, #fifo_size) ; } ) ,
563
580
"wwdt" => Some ( quote ! { impl_wwdt_instance!( #peri) ; } ) ,
581
+ "adc" => Some ( quote ! { impl_adc_instance!( #peri) ; } ) ,
564
582
_ => None ,
565
583
} ;
566
584
@@ -609,6 +627,10 @@ fn generate_pin_trait_impls() -> TokenStream {
609
627
( "uart" , "RTS" ) => Some ( quote ! { impl_uart_rts_pin!( #peri, #pin_name, #pf) ; } ) ,
610
628
( "i2c" , "SDA" ) => Some ( quote ! { impl_i2c_sda_pin!( #peri, #pin_name, #pf) ; } ) ,
611
629
( "i2c" , "SCL" ) => Some ( quote ! { impl_i2c_scl_pin!( #peri, #pin_name, #pf) ; } ) ,
630
+ ( "adc" , s) => {
631
+ let signal = s. parse :: < u8 > ( ) . unwrap ( ) ;
632
+ Some ( quote ! { impl_adc_pin!( #peri, #pin_name, #signal) ; } )
633
+ }
612
634
613
635
_ => None ,
614
636
} ;
0 commit comments