@@ -321,7 +321,7 @@ where
321321 let offset = 2 * { N } ;
322322
323323 unsafe {
324- ( * Gpio :: < P > :: ptr ( ) )
324+ ( * gpiox :: < P > ( ) )
325325 . ospeedr
326326 . modify ( |r, w| w. bits ( ( r. bits ( ) & !( 0b11 << offset) ) | ( ( speed as u32 ) << offset) ) ) ;
327327 }
@@ -353,7 +353,7 @@ where
353353 let offset = 2 * { N } ;
354354 let value = resistor as u32 ;
355355 unsafe {
356- ( * Gpio :: < P > :: ptr ( ) )
356+ ( * gpiox :: < P > ( ) )
357357 . pupdr
358358 . modify ( |r, w| w. bits ( ( r. bits ( ) & !( 0b11 << offset) ) | ( value << offset) ) ) ;
359359 }
@@ -435,22 +435,22 @@ impl<const P: char, const N: u8, MODE> Pin<P, N, MODE> {
435435 #[ inline( always) ]
436436 fn _set_high ( & mut self ) {
437437 // NOTE(unsafe) atomic write to a stateless register
438- unsafe { ( * Gpio :: < P > :: ptr ( ) ) . bsrr . write ( |w| w. bits ( 1 << N ) ) }
438+ unsafe { ( * gpiox :: < P > ( ) ) . bsrr . write ( |w| w. bits ( 1 << N ) ) }
439439 }
440440 #[ inline( always) ]
441441 fn _set_low ( & mut self ) {
442442 // NOTE(unsafe) atomic write to a stateless register
443- unsafe { ( * Gpio :: < P > :: ptr ( ) ) . bsrr . write ( |w| w. bits ( 1 << ( 16 + N ) ) ) }
443+ unsafe { ( * gpiox :: < P > ( ) ) . bsrr . write ( |w| w. bits ( 1 << ( 16 + N ) ) ) }
444444 }
445445 #[ inline( always) ]
446446 fn _is_set_low ( & self ) -> bool {
447447 // NOTE(unsafe) atomic read with no side effects
448- unsafe { ( * Gpio :: < P > :: ptr ( ) ) . odr . read ( ) . bits ( ) & ( 1 << N ) == 0 }
448+ unsafe { ( * gpiox :: < P > ( ) ) . odr . read ( ) . bits ( ) & ( 1 << N ) == 0 }
449449 }
450450 #[ inline( always) ]
451451 fn _is_low ( & self ) -> bool {
452452 // NOTE(unsafe) atomic read with no side effects
453- unsafe { ( * Gpio :: < P > :: ptr ( ) ) . idr . read ( ) . bits ( ) & ( 1 << N ) == 0 }
453+ unsafe { ( * gpiox :: < P > ( ) ) . idr . read ( ) . bits ( ) & ( 1 << N ) == 0 }
454454 }
455455}
456456
@@ -603,29 +603,26 @@ use gpio;
603603mod f4;
604604pub use f4:: * ;
605605
606- struct Gpio < const P : char > ;
607- impl < const P : char > Gpio < P > {
608- const fn ptr ( ) -> * const crate :: pac:: gpioa:: RegisterBlock {
609- match P {
610- 'A' => crate :: pac:: GPIOA :: ptr ( ) ,
611- 'B' => crate :: pac:: GPIOB :: ptr ( ) as _ ,
612- 'C' => crate :: pac:: GPIOC :: ptr ( ) as _ ,
613- #[ cfg( feature = "gpiod" ) ]
614- 'D' => crate :: pac:: GPIOD :: ptr ( ) as _ ,
615- #[ cfg( feature = "gpioe" ) ]
616- 'E' => crate :: pac:: GPIOE :: ptr ( ) as _ ,
617- #[ cfg( feature = "gpiof" ) ]
618- 'F' => crate :: pac:: GPIOF :: ptr ( ) as _ ,
619- #[ cfg( feature = "gpiog" ) ]
620- 'G' => crate :: pac:: GPIOG :: ptr ( ) as _ ,
621- 'H' => crate :: pac:: GPIOH :: ptr ( ) as _ ,
622- #[ cfg( feature = "gpioi" ) ]
623- 'I' => crate :: pac:: GPIOI :: ptr ( ) as _ ,
624- #[ cfg( feature = "gpioj" ) ]
625- 'J' => crate :: pac:: GPIOJ :: ptr ( ) as _ ,
626- #[ cfg( feature = "gpiok" ) ]
627- 'K' => crate :: pac:: GPIOK :: ptr ( ) as _ ,
628- _ => panic ! ( "Unknown GPIO port" ) ,
629- }
606+ const fn gpiox < const P : char > ( ) -> * const crate :: pac:: gpioa:: RegisterBlock {
607+ match P {
608+ 'A' => crate :: pac:: GPIOA :: ptr ( ) ,
609+ 'B' => crate :: pac:: GPIOB :: ptr ( ) as _ ,
610+ 'C' => crate :: pac:: GPIOC :: ptr ( ) as _ ,
611+ #[ cfg( feature = "gpiod" ) ]
612+ 'D' => crate :: pac:: GPIOD :: ptr ( ) as _ ,
613+ #[ cfg( feature = "gpioe" ) ]
614+ 'E' => crate :: pac:: GPIOE :: ptr ( ) as _ ,
615+ #[ cfg( feature = "gpiof" ) ]
616+ 'F' => crate :: pac:: GPIOF :: ptr ( ) as _ ,
617+ #[ cfg( feature = "gpiog" ) ]
618+ 'G' => crate :: pac:: GPIOG :: ptr ( ) as _ ,
619+ 'H' => crate :: pac:: GPIOH :: ptr ( ) as _ ,
620+ #[ cfg( feature = "gpioi" ) ]
621+ 'I' => crate :: pac:: GPIOI :: ptr ( ) as _ ,
622+ #[ cfg( feature = "gpioj" ) ]
623+ 'J' => crate :: pac:: GPIOJ :: ptr ( ) as _ ,
624+ #[ cfg( feature = "gpiok" ) ]
625+ 'K' => crate :: pac:: GPIOK :: ptr ( ) as _ ,
626+ _ => panic ! ( "Unknown GPIO port" ) ,
630627 }
631628}
0 commit comments