@@ -49,6 +49,8 @@ pub struct OpenDrain;
4949/// Analog mode (type state)
5050pub struct Analog ;
5151
52+ pub type Debugger = Alternate < PushPull , 0 > ;
53+
5254/// GPIO Pin speed selection
5355pub enum Speed {
5456 Low = 0 ,
@@ -240,17 +242,7 @@ macro_rules! gpio {
240242 use crate :: stm32:: $GPIOX;
241243
242244 use crate :: rcc:: { AHB2 , Enable , Reset } ;
243- use super :: {
244- Afr ,
245- Pin ,
246- Floating , GpioExt , Input ,
247- H8 ,
248- L8 ,
249- MODER ,
250- OTYPER ,
251- OSPEEDR ,
252- PUPDR ,
253- } ;
245+ use super :: { Afr , Analog , GpioExt , Pin , H8 , L8 , MODER , OTYPER , OSPEEDR , PUPDR } ;
254246
255247 /// GPIO parts
256248 pub struct Parts {
@@ -615,98 +607,98 @@ af!(H8, AFRH, afrh);
615607af ! ( L8 , AFRL , afrl) ;
616608
617609gpio ! ( GPIOA , gpioa, PAx , 'A' , 0 , [
618- PA0 : ( pa0, 0 , Input < Floating > , L8 , exticr1) ,
619- PA1 : ( pa1, 1 , Input < Floating > , L8 , exticr1) ,
620- PA2 : ( pa2, 2 , Input < Floating > , L8 , exticr1) ,
621- PA3 : ( pa3, 3 , Input < Floating > , L8 , exticr1) ,
622- PA4 : ( pa4, 4 , Input < Floating > , L8 , exticr2) ,
623- PA5 : ( pa5, 5 , Input < Floating > , L8 , exticr2) ,
624- PA6 : ( pa6, 6 , Input < Floating > , L8 , exticr2) ,
625- PA7 : ( pa7, 7 , Input < Floating > , L8 , exticr2) ,
626- PA8 : ( pa8, 8 , Input < Floating > , H8 , exticr3) ,
627- PA9 : ( pa9, 9 , Input < Floating > , H8 , exticr3) ,
628- PA10 : ( pa10, 10 , Input < Floating > , H8 , exticr3) ,
629- PA11 : ( pa11, 11 , Input < Floating > , H8 , exticr3) ,
630- PA12 : ( pa12, 12 , Input < Floating > , H8 , exticr4) ,
631- PA13 : ( pa13, 13 , Input < Floating > , H8 , exticr4) ,
632- PA14 : ( pa14, 14 , Input < Floating > , H8 , exticr4) ,
633- PA15 : ( pa15, 15 , Input < Floating > , H8 , exticr4) ,
610+ PA0 : ( pa0, 0 , Analog , L8 , exticr1) ,
611+ PA1 : ( pa1, 1 , Analog , L8 , exticr1) ,
612+ PA2 : ( pa2, 2 , Analog , L8 , exticr1) ,
613+ PA3 : ( pa3, 3 , Analog , L8 , exticr1) ,
614+ PA4 : ( pa4, 4 , Analog , L8 , exticr2) ,
615+ PA5 : ( pa5, 5 , Analog , L8 , exticr2) ,
616+ PA6 : ( pa6, 6 , Analog , L8 , exticr2) ,
617+ PA7 : ( pa7, 7 , Analog , L8 , exticr2) ,
618+ PA8 : ( pa8, 8 , Analog , H8 , exticr3) ,
619+ PA9 : ( pa9, 9 , Analog , H8 , exticr3) ,
620+ PA10 : ( pa10, 10 , Analog , H8 , exticr3) ,
621+ PA11 : ( pa11, 11 , Analog , H8 , exticr3) ,
622+ PA12 : ( pa12, 12 , Analog , H8 , exticr4) ,
623+ PA13 : ( pa13, 13 , super :: Debugger , H8 , exticr4) , // SWDIO, PullUp VeryHigh speed
624+ PA14 : ( pa14, 14 , super :: Debugger , H8 , exticr4) , // SWCLK, PullDown
625+ PA15 : ( pa15, 15 , super :: Debugger , H8 , exticr4) , // JTDI, PullUp
634626] ) ;
635627
636628gpio ! ( GPIOB , gpiob, PBx , 'B' , 1 , [
637- PB0 : ( pb0, 0 , Input < Floating > , L8 , exticr1) ,
638- PB1 : ( pb1, 1 , Input < Floating > , L8 , exticr1) ,
639- PB2 : ( pb2, 2 , Input < Floating > , L8 , exticr1) ,
640- PB3 : ( pb3, 3 , Input < Floating > , L8 , exticr1) ,
641- PB4 : ( pb4, 4 , Input < Floating > , L8 , exticr2) ,
642- PB5 : ( pb5, 5 , Input < Floating > , L8 , exticr2) ,
643- PB6 : ( pb6, 6 , Input < Floating > , L8 , exticr2) ,
644- PB7 : ( pb7, 7 , Input < Floating > , L8 , exticr2) ,
645- PB8 : ( pb8, 8 , Input < Floating > , H8 , exticr3) ,
646- PB9 : ( pb9, 9 , Input < Floating > , H8 , exticr3) ,
647- PB10 : ( pb10, 10 , Input < Floating > , H8 , exticr3) ,
648- PB11 : ( pb11, 11 , Input < Floating > , H8 , exticr3) ,
649- PB12 : ( pb12, 12 , Input < Floating > , H8 , exticr4) ,
650- PB13 : ( pb13, 13 , Input < Floating > , H8 , exticr4) ,
651- PB14 : ( pb14, 14 , Input < Floating > , H8 , exticr4) ,
652- PB15 : ( pb15, 15 , Input < Floating > , H8 , exticr4) ,
629+ PB0 : ( pb0, 0 , Analog , L8 , exticr1) ,
630+ PB1 : ( pb1, 1 , Analog , L8 , exticr1) ,
631+ PB2 : ( pb2, 2 , Analog , L8 , exticr1) ,
632+ PB3 : ( pb3, 3 , super :: Debugger , L8 , exticr1) , // SWO
633+ PB4 : ( pb4, 4 , super :: Debugger , L8 , exticr2) , // JTRST, PullUp
634+ PB5 : ( pb5, 5 , Analog , L8 , exticr2) ,
635+ PB6 : ( pb6, 6 , Analog , L8 , exticr2) ,
636+ PB7 : ( pb7, 7 , Analog , L8 , exticr2) ,
637+ PB8 : ( pb8, 8 , Analog , H8 , exticr3) ,
638+ PB9 : ( pb9, 9 , Analog , H8 , exticr3) ,
639+ PB10 : ( pb10, 10 , Analog , H8 , exticr3) ,
640+ PB11 : ( pb11, 11 , Analog , H8 , exticr3) ,
641+ PB12 : ( pb12, 12 , Analog , H8 , exticr4) ,
642+ PB13 : ( pb13, 13 , Analog , H8 , exticr4) ,
643+ PB14 : ( pb14, 14 , Analog , H8 , exticr4) ,
644+ PB15 : ( pb15, 15 , Analog , H8 , exticr4) ,
653645] ) ;
654646
655647gpio ! ( GPIOC , gpioc, PCx , 'C' , 2 , [
656- PC0 : ( pc0, 0 , Input < Floating > , L8 , exticr1) ,
657- PC1 : ( pc1, 1 , Input < Floating > , L8 , exticr1) ,
658- PC2 : ( pc2, 2 , Input < Floating > , L8 , exticr1) ,
659- PC3 : ( pc3, 3 , Input < Floating > , L8 , exticr1) ,
660- PC4 : ( pc4, 4 , Input < Floating > , L8 , exticr2) ,
661- PC5 : ( pc5, 5 , Input < Floating > , L8 , exticr2) ,
662- PC6 : ( pc6, 6 , Input < Floating > , L8 , exticr2) ,
663- PC7 : ( pc7, 7 , Input < Floating > , L8 , exticr2) ,
664- PC8 : ( pc8, 8 , Input < Floating > , H8 , exticr3) ,
665- PC9 : ( pc9, 9 , Input < Floating > , H8 , exticr3) ,
666- PC10 : ( pc10, 10 , Input < Floating > , H8 , exticr3) ,
667- PC11 : ( pc11, 11 , Input < Floating > , H8 , exticr3) ,
668- PC12 : ( pc12, 12 , Input < Floating > , H8 , exticr4) ,
669- PC13 : ( pc13, 13 , Input < Floating > , H8 , exticr4) ,
670- PC14 : ( pc14, 14 , Input < Floating > , H8 , exticr4) ,
671- PC15 : ( pc15, 15 , Input < Floating > , H8 , exticr4) ,
648+ PC0 : ( pc0, 0 , Analog , L8 , exticr1) ,
649+ PC1 : ( pc1, 1 , Analog , L8 , exticr1) ,
650+ PC2 : ( pc2, 2 , Analog , L8 , exticr1) ,
651+ PC3 : ( pc3, 3 , Analog , L8 , exticr1) ,
652+ PC4 : ( pc4, 4 , Analog , L8 , exticr2) ,
653+ PC5 : ( pc5, 5 , Analog , L8 , exticr2) ,
654+ PC6 : ( pc6, 6 , Analog , L8 , exticr2) ,
655+ PC7 : ( pc7, 7 , Analog , L8 , exticr2) ,
656+ PC8 : ( pc8, 8 , Analog , H8 , exticr3) ,
657+ PC9 : ( pc9, 9 , Analog , H8 , exticr3) ,
658+ PC10 : ( pc10, 10 , Analog , H8 , exticr3) ,
659+ PC11 : ( pc11, 11 , Analog , H8 , exticr3) ,
660+ PC12 : ( pc12, 12 , Analog , H8 , exticr4) ,
661+ PC13 : ( pc13, 13 , Analog , H8 , exticr4) ,
662+ PC14 : ( pc14, 14 , Analog , H8 , exticr4) ,
663+ PC15 : ( pc15, 15 , Analog , H8 , exticr4) ,
672664] ) ;
673665
674666gpio ! ( GPIOD , gpiod, PDx , 'D' , 3 , [
675- PD0 : ( pd0, 0 , Input < Floating > , L8 , exticr1) ,
676- PD1 : ( pd1, 1 , Input < Floating > , L8 , exticr1) ,
677- PD2 : ( pd2, 2 , Input < Floating > , L8 , exticr1) ,
678- PD3 : ( pd3, 3 , Input < Floating > , L8 , exticr1) ,
679- PD4 : ( pd4, 4 , Input < Floating > , L8 , exticr2) ,
680- PD5 : ( pd5, 5 , Input < Floating > , L8 , exticr2) ,
681- PD6 : ( pd6, 6 , Input < Floating > , L8 , exticr2) ,
682- PD7 : ( pd7, 7 , Input < Floating > , L8 , exticr2) ,
683- PD8 : ( pd8, 8 , Input < Floating > , H8 , exticr3) ,
684- PD9 : ( pd9, 9 , Input < Floating > , H8 , exticr3) ,
685- PD10 : ( pd10, 10 , Input < Floating > , H8 , exticr3) ,
686- PD11 : ( pd11, 11 , Input < Floating > , H8 , exticr3) ,
687- PD12 : ( pd12, 12 , Input < Floating > , H8 , exticr4) ,
688- PD13 : ( pd13, 13 , Input < Floating > , H8 , exticr4) ,
689- PD14 : ( pd14, 14 , Input < Floating > , H8 , exticr4) ,
690- PD15 : ( pd15, 15 , Input < Floating > , H8 , exticr4) ,
667+ PD0 : ( pd0, 0 , Analog , L8 , exticr1) ,
668+ PD1 : ( pd1, 1 , Analog , L8 , exticr1) ,
669+ PD2 : ( pd2, 2 , Analog , L8 , exticr1) ,
670+ PD3 : ( pd3, 3 , Analog , L8 , exticr1) ,
671+ PD4 : ( pd4, 4 , Analog , L8 , exticr2) ,
672+ PD5 : ( pd5, 5 , Analog , L8 , exticr2) ,
673+ PD6 : ( pd6, 6 , Analog , L8 , exticr2) ,
674+ PD7 : ( pd7, 7 , Analog , L8 , exticr2) ,
675+ PD8 : ( pd8, 8 , Analog , H8 , exticr3) ,
676+ PD9 : ( pd9, 9 , Analog , H8 , exticr3) ,
677+ PD10 : ( pd10, 10 , Analog , H8 , exticr3) ,
678+ PD11 : ( pd11, 11 , Analog , H8 , exticr3) ,
679+ PD12 : ( pd12, 12 , Analog , H8 , exticr4) ,
680+ PD13 : ( pd13, 13 , Analog , H8 , exticr4) ,
681+ PD14 : ( pd14, 14 , Analog , H8 , exticr4) ,
682+ PD15 : ( pd15, 15 , Analog , H8 , exticr4) ,
691683] ) ;
692684
693685gpio ! ( GPIOE , gpioe, PEx , 'E' , 4 , [
694- PE0 : ( pe0, 0 , Input < Floating > , L8 , exticr1) ,
695- PE1 : ( pe1, 1 , Input < Floating > , L8 , exticr1) ,
696- PE2 : ( pe2, 2 , Input < Floating > , L8 , exticr1) ,
697- PE3 : ( pe3, 3 , Input < Floating > , L8 , exticr1) ,
698- PE4 : ( pe4, 4 , Input < Floating > , L8 , exticr2) ,
699- PE5 : ( pe5, 5 , Input < Floating > , L8 , exticr2) ,
700- PE6 : ( pe6, 6 , Input < Floating > , L8 , exticr2) ,
701- PE7 : ( pe7, 7 , Input < Floating > , L8 , exticr2) ,
702- PE8 : ( pe8, 8 , Input < Floating > , H8 , exticr3) ,
703- PE9 : ( pe9, 9 , Input < Floating > , H8 , exticr3) ,
704- PE10 : ( pe10, 10 , Input < Floating > , H8 , exticr3) ,
705- PE11 : ( pe11, 11 , Input < Floating > , H8 , exticr3) ,
706- PE12 : ( pe12, 12 , Input < Floating > , H8 , exticr4) ,
707- PE13 : ( pe13, 13 , Input < Floating > , H8 , exticr4) ,
708- PE14 : ( pe14, 14 , Input < Floating > , H8 , exticr4) ,
709- PE15 : ( pe15, 15 , Input < Floating > , H8 , exticr4) ,
686+ PE0 : ( pe0, 0 , Analog , L8 , exticr1) ,
687+ PE1 : ( pe1, 1 , Analog , L8 , exticr1) ,
688+ PE2 : ( pe2, 2 , Analog , L8 , exticr1) ,
689+ PE3 : ( pe3, 3 , Analog , L8 , exticr1) ,
690+ PE4 : ( pe4, 4 , Analog , L8 , exticr2) ,
691+ PE5 : ( pe5, 5 , Analog , L8 , exticr2) ,
692+ PE6 : ( pe6, 6 , Analog , L8 , exticr2) ,
693+ PE7 : ( pe7, 7 , Analog , L8 , exticr2) ,
694+ PE8 : ( pe8, 8 , Analog , H8 , exticr3) ,
695+ PE9 : ( pe9, 9 , Analog , H8 , exticr3) ,
696+ PE10 : ( pe10, 10 , Analog , H8 , exticr3) ,
697+ PE11 : ( pe11, 11 , Analog , H8 , exticr3) ,
698+ PE12 : ( pe12, 12 , Analog , H8 , exticr4) ,
699+ PE13 : ( pe13, 13 , Analog , H8 , exticr4) ,
700+ PE14 : ( pe14, 14 , Analog , H8 , exticr4) ,
701+ PE15 : ( pe15, 15 , Analog , H8 , exticr4) ,
710702] ) ;
711703
712704#[ cfg( any(
@@ -727,22 +719,22 @@ gpio!(GPIOE, gpioe, PEx, 'E', 4, [
727719 feature = "stm32l4s9" ,
728720) ) ]
729721gpio ! ( GPIOF , gpiof, PFx , 'F' , 5 , [
730- PF0 : ( pf0, 0 , Input < Floating > , L8 , exticr1) ,
731- PF1 : ( pf1, 1 , Input < Floating > , L8 , exticr1) ,
732- PF2 : ( pf2, 2 , Input < Floating > , L8 , exticr1) ,
733- PF3 : ( pf3, 3 , Input < Floating > , L8 , exticr1) ,
734- PF4 : ( pf4, 4 , Input < Floating > , L8 , exticr2) ,
735- PF5 : ( pf5, 5 , Input < Floating > , L8 , exticr2) ,
736- PF6 : ( pf6, 6 , Input < Floating > , L8 , exticr2) ,
737- PF7 : ( pf7, 7 , Input < Floating > , L8 , exticr2) ,
738- PF8 : ( pf8, 8 , Input < Floating > , H8 , exticr3) ,
739- PF9 : ( pf9, 9 , Input < Floating > , H8 , exticr3) ,
740- PF10 : ( pf10, 10 , Input < Floating > , H8 , exticr3) ,
741- PF11 : ( pf11, 11 , Input < Floating > , H8 , exticr3) ,
742- PF12 : ( pf12, 12 , Input < Floating > , H8 , exticr4) ,
743- PF13 : ( pf13, 13 , Input < Floating > , H8 , exticr4) ,
744- PF14 : ( pf14, 14 , Input < Floating > , H8 , exticr4) ,
745- PF15 : ( pf15, 15 , Input < Floating > , H8 , exticr4) ,
722+ PF0 : ( pf0, 0 , Analog , L8 , exticr1) ,
723+ PF1 : ( pf1, 1 , Analog , L8 , exticr1) ,
724+ PF2 : ( pf2, 2 , Analog , L8 , exticr1) ,
725+ PF3 : ( pf3, 3 , Analog , L8 , exticr1) ,
726+ PF4 : ( pf4, 4 , Analog , L8 , exticr2) ,
727+ PF5 : ( pf5, 5 , Analog , L8 , exticr2) ,
728+ PF6 : ( pf6, 6 , Analog , L8 , exticr2) ,
729+ PF7 : ( pf7, 7 , Analog , L8 , exticr2) ,
730+ PF8 : ( pf8, 8 , Analog , H8 , exticr3) ,
731+ PF9 : ( pf9, 9 , Analog , H8 , exticr3) ,
732+ PF10 : ( pf10, 10 , Analog , H8 , exticr3) ,
733+ PF11 : ( pf11, 11 , Analog , H8 , exticr3) ,
734+ PF12 : ( pf12, 12 , Analog , H8 , exticr4) ,
735+ PF13 : ( pf13, 13 , Analog , H8 , exticr4) ,
736+ PF14 : ( pf14, 14 , Analog , H8 , exticr4) ,
737+ PF15 : ( pf15, 15 , Analog , H8 , exticr4) ,
746738] ) ;
747739#[ cfg( any(
748740 // feature = "stm32l471", // missing PAC support for Port G
@@ -762,22 +754,22 @@ gpio!(GPIOF, gpiof, PFx, 'F', 5, [
762754 feature = "stm32l4s9" ,
763755) ) ]
764756gpio ! ( GPIOG , gpiog, PGx , 'G' , 6 , [
765- PG0 : ( pg0, 0 , Input < Floating > , L8 , exticr1) ,
766- PG1 : ( pg1, 1 , Input < Floating > , L8 , exticr1) ,
767- PG2 : ( pg2, 2 , Input < Floating > , L8 , exticr1) ,
768- PG3 : ( pg3, 3 , Input < Floating > , L8 , exticr1) ,
769- PG4 : ( pg4, 4 , Input < Floating > , L8 , exticr2) ,
770- PG5 : ( pg5, 5 , Input < Floating > , L8 , exticr2) ,
771- PG6 : ( pg6, 6 , Input < Floating > , L8 , exticr2) ,
772- PG7 : ( pg7, 7 , Input < Floating > , L8 , exticr2) ,
773- PG8 : ( pg8, 8 , Input < Floating > , H8 , exticr3) ,
774- PG9 : ( pg9, 9 , Input < Floating > , H8 , exticr3) ,
775- PG10 : ( pg10, 10 , Input < Floating > , H8 , exticr3) ,
776- PG11 : ( pg11, 11 , Input < Floating > , H8 , exticr3) ,
777- PG12 : ( pg12, 12 , Input < Floating > , H8 , exticr4) ,
778- PG13 : ( pg13, 13 , Input < Floating > , H8 , exticr4) ,
779- PG14 : ( pg14, 14 , Input < Floating > , H8 , exticr4) ,
780- PG15 : ( pg15, 15 , Input < Floating > , H8 , exticr4) ,
757+ PG0 : ( pg0, 0 , Analog , L8 , exticr1) ,
758+ PG1 : ( pg1, 1 , Analog , L8 , exticr1) ,
759+ PG2 : ( pg2, 2 , Analog , L8 , exticr1) ,
760+ PG3 : ( pg3, 3 , Analog , L8 , exticr1) ,
761+ PG4 : ( pg4, 4 , Analog , L8 , exticr2) ,
762+ PG5 : ( pg5, 5 , Analog , L8 , exticr2) ,
763+ PG6 : ( pg6, 6 , Analog , L8 , exticr2) ,
764+ PG7 : ( pg7, 7 , Analog , L8 , exticr2) ,
765+ PG8 : ( pg8, 8 , Analog , H8 , exticr3) ,
766+ PG9 : ( pg9, 9 , Analog , H8 , exticr3) ,
767+ PG10 : ( pg10, 10 , Analog , H8 , exticr3) ,
768+ PG11 : ( pg11, 11 , Analog , H8 , exticr3) ,
769+ PG12 : ( pg12, 12 , Analog , H8 , exticr4) ,
770+ PG13 : ( pg13, 13 , Analog , H8 , exticr4) ,
771+ PG14 : ( pg14, 14 , Analog , H8 , exticr4) ,
772+ PG15 : ( pg15, 15 , Analog , H8 , exticr4) ,
781773] ) ;
782774
783775struct Gpio < const P : char > ;
0 commit comments