Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changesets/gpio-af-bitmaps-patch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
release: patch
summary: Fix incorrect GPIO alternate-function availability bitmaps

Correct the STM32H723 pin alternate-function masks in `Pin.hpp` so GPIO
configuration reflects the actual AF support per pin.
202 changes: 101 additions & 101 deletions Inc/HALAL/Models/Pin.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,123 +17,123 @@ constexpr GPIODomain::Pin PA6{A, GPIO_PIN_6, 0b0111011011111111};
constexpr GPIODomain::Pin PA7{A, GPIO_PIN_7, 0b0111010011111011};
constexpr GPIODomain::Pin PA8{A, GPIO_PIN_8, 0b1101101100111111};
constexpr GPIODomain::Pin PA9{A, GPIO_PIN_9, 0b0101111100010111};
constexpr GPIODomain::Pin PA10{A, GPIO_PIN_10, 0b0101110100010111};
constexpr GPIODomain::Pin PA11{A, GPIO_PIN_11, 0b0101111110010011};
constexpr GPIODomain::Pin PA12{A, GPIO_PIN_12, 0b0011111110010111};
constexpr GPIODomain::Pin PA10{A, GPIO_PIN_10, 0b0101000100111111};
constexpr GPIODomain::Pin PA11{A, GPIO_PIN_11, 0b0101011101000011};
constexpr GPIODomain::Pin PA12{A, GPIO_PIN_12, 0b0101011111001011};
constexpr GPIODomain::Pin PA13{A, GPIO_PIN_13, 0b1000000000000001};
constexpr GPIODomain::Pin PA14{A, GPIO_PIN_14, 0b1000000000000001};
constexpr GPIODomain::Pin PA15{A, GPIO_PIN_15, 0b1100111111010011};

// Port B
constexpr GPIODomain::Pin PB0{B, GPIO_PIN_0, 0b0111110011111011};
constexpr GPIODomain::Pin PB1{B, GPIO_PIN_1, 0b0111110011111011};
constexpr GPIODomain::Pin PB2{B, GPIO_PIN_2, 0b0110111110111011};
constexpr GPIODomain::Pin PB3{B, GPIO_PIN_3, 0b0111110110111011};
constexpr GPIODomain::Pin PB4{B, GPIO_PIN_4, 0b0111111110110011};
constexpr GPIODomain::Pin PB5{B, GPIO_PIN_5, 0b0111110111111111};
constexpr GPIODomain::Pin PB6{B, GPIO_PIN_6, 0b0111110111111111};
constexpr GPIODomain::Pin PB7{B, GPIO_PIN_7, 0b0111110111111011};
constexpr GPIODomain::Pin PB8{B, GPIO_PIN_8, 0b0110111111111111};
constexpr GPIODomain::Pin PB9{B, GPIO_PIN_9, 0b0110111111111111};
constexpr GPIODomain::Pin PB10{B, GPIO_PIN_10, 0b0111110111111111};
constexpr GPIODomain::Pin PB11{B, GPIO_PIN_11, 0b0111110111111011};
constexpr GPIODomain::Pin PB12{B, GPIO_PIN_12, 0b0111110111111011};
constexpr GPIODomain::Pin PB13{B, GPIO_PIN_13, 0b0111110111111011};
constexpr GPIODomain::Pin PB14{B, GPIO_PIN_14, 0b0111110011111011};
constexpr GPIODomain::Pin PB15{B, GPIO_PIN_15, 0b0111110011111011};
constexpr GPIODomain::Pin PB0{B, GPIO_PIN_0, 0b0111101011110011};
constexpr GPIODomain::Pin PB1{B, GPIO_PIN_1, 0b0111101001110011};
constexpr GPIODomain::Pin PB2{B, GPIO_PIN_2, 0b1110101111110101};
constexpr GPIODomain::Pin PB3{B, GPIO_PIN_3, 0b1100011011110011};
constexpr GPIODomain::Pin PB4{B, GPIO_PIN_4, 0b1110011111010001};
constexpr GPIODomain::Pin PB5{B, GPIO_PIN_5, 0b0111111111111111};
constexpr GPIODomain::Pin PB6{B, GPIO_PIN_6, 0b0110111111111111};
constexpr GPIODomain::Pin PB7{B, GPIO_PIN_7, 0b0110101110011101};
constexpr GPIODomain::Pin PB8{B, GPIO_PIN_8, 0b0111101111111111};
constexpr GPIODomain::Pin PB9{B, GPIO_PIN_9, 0b0111111111111111};
constexpr GPIODomain::Pin PB10{B, GPIO_PIN_10, 0b0101111101110011};
constexpr GPIODomain::Pin PB11{B, GPIO_PIN_11, 0b0101101100110011};
constexpr GPIODomain::Pin PB12{B, GPIO_PIN_12, 0b0101111101111111};
constexpr GPIODomain::Pin PB13{B, GPIO_PIN_13, 0b0101111101111111};
constexpr GPIODomain::Pin PB14{B, GPIO_PIN_14, 0b0111111111001011};
constexpr GPIODomain::Pin PB15{B, GPIO_PIN_15, 0b1111111011001011};

// Port C
constexpr GPIODomain::Pin PC0{C, GPIO_PIN_0, 0b0110110110110011};
constexpr GPIODomain::Pin PC1{C, GPIO_PIN_1, 0b0110111111111111};
constexpr GPIODomain::Pin PC2{C, GPIO_PIN_2, 0b0110111110110011};
constexpr GPIODomain::Pin PC3{C, GPIO_PIN_3, 0b0110111110110011};
constexpr GPIODomain::Pin PC4{C, GPIO_PIN_4, 0b0110110110111011};
constexpr GPIODomain::Pin PC5{C, GPIO_PIN_5, 0b0110110110111111};
constexpr GPIODomain::Pin PC6{C, GPIO_PIN_6, 0b0111110011111111};
constexpr GPIODomain::Pin PC7{C, GPIO_PIN_7, 0b0111110011111111};
constexpr GPIODomain::Pin PC8{C, GPIO_PIN_8, 0b0111110011011111};
constexpr GPIODomain::Pin PC9{C, GPIO_PIN_9, 0b0111110110111111};
constexpr GPIODomain::Pin PC10{C, GPIO_PIN_10, 0b0110111111111111};
constexpr GPIODomain::Pin PC11{C, GPIO_PIN_11, 0b0110111111111111};
constexpr GPIODomain::Pin PC12{C, GPIO_PIN_12, 0b0110111111011111};
constexpr GPIODomain::Pin PC13{C, GPIO_PIN_13, 0b1000000000000001};
constexpr GPIODomain::Pin PC14{C, GPIO_PIN_14, 0b1000000000000001};
constexpr GPIODomain::Pin PC15{C, GPIO_PIN_15, 0b1000000000000001};
constexpr GPIODomain::Pin PC0{C, GPIO_PIN_0, 0b0101001011111011};
constexpr GPIODomain::Pin PC1{C, GPIO_PIN_1, 0b1111111011111011};
constexpr GPIODomain::Pin PC2{C, GPIO_PIN_2, 0b1001111001111001};
constexpr GPIODomain::Pin PC3{C, GPIO_PIN_3, 0b1001110001111001};
constexpr GPIODomain::Pin PC4{C, GPIO_PIN_4, 0b1101010001111011};
constexpr GPIODomain::Pin PC5{C, GPIO_PIN_5, 0b1111100001111111};
constexpr GPIODomain::Pin PC6{C, GPIO_PIN_6, 0b0011110111101111};
constexpr GPIODomain::Pin PC7{C, GPIO_PIN_7, 0b1011101111111111};
constexpr GPIODomain::Pin PC8{C, GPIO_PIN_8, 0b1011000111111101};
constexpr GPIODomain::Pin PC9{C, GPIO_PIN_9, 0b1011111011111111};
constexpr GPIODomain::Pin PC10{C, GPIO_PIN_10, 0b0001101111111111};
constexpr GPIODomain::Pin PC11{C, GPIO_PIN_11, 0b0001101111001111};
constexpr GPIODomain::Pin PC12{C, GPIO_PIN_12, 0b1110111110001111};
constexpr GPIODomain::Pin PC13{C, GPIO_PIN_13, 0b0000000000000001};
constexpr GPIODomain::Pin PC14{C, GPIO_PIN_14, 0b0000000000000001};
constexpr GPIODomain::Pin PC15{C, GPIO_PIN_15, 0b0000000000000001};

// Port D
constexpr GPIODomain::Pin PD0{D, GPIO_PIN_0, 0b0111110110011011};
constexpr GPIODomain::Pin PD1{D, GPIO_PIN_1, 0b0111110110011011};
constexpr GPIODomain::Pin PD2{D, GPIO_PIN_2, 0b1110110110011011};
constexpr GPIODomain::Pin PD3{D, GPIO_PIN_3, 0b0110110111110011};
constexpr GPIODomain::Pin PD4{D, GPIO_PIN_4, 0b0010110010010011};
constexpr GPIODomain::Pin PD5{D, GPIO_PIN_5, 0b0010110010010011};
constexpr GPIODomain::Pin PD6{D, GPIO_PIN_6, 0b0111110110111011};
constexpr GPIODomain::Pin PD7{D, GPIO_PIN_7, 0b0110110111111011};
constexpr GPIODomain::Pin PD8{D, GPIO_PIN_8, 0b0110110110010011};
constexpr GPIODomain::Pin PD9{D, GPIO_PIN_9, 0b0110110110010011};
constexpr GPIODomain::Pin PD10{D, GPIO_PIN_10, 0b0110110110010011};
constexpr GPIODomain::Pin PD11{D, GPIO_PIN_11, 0b0111100110110011};
constexpr GPIODomain::Pin PD12{D, GPIO_PIN_12, 0b0111110110110011};
constexpr GPIODomain::Pin PD13{D, GPIO_PIN_13, 0b0111110110110011};
constexpr GPIODomain::Pin PD14{D, GPIO_PIN_14, 0b0111010010010011};
constexpr GPIODomain::Pin PD15{D, GPIO_PIN_15, 0b0111010010010011};
constexpr GPIODomain::Pin PD0{D, GPIO_PIN_0, 0b0001000011011011};
constexpr GPIODomain::Pin PD1{D, GPIO_PIN_1, 0b0001000011001001};
constexpr GPIODomain::Pin PD2{D, GPIO_PIN_2, 0b1110100011001111};
constexpr GPIODomain::Pin PD3{D, GPIO_PIN_3, 0b0001010100001111};
constexpr GPIODomain::Pin PD4{D, GPIO_PIN_4, 0b0000000100101001};
constexpr GPIODomain::Pin PD5{D, GPIO_PIN_5, 0b0000000100101001};
constexpr GPIODomain::Pin PD6{D, GPIO_PIN_6, 0b0111111110111111};
constexpr GPIODomain::Pin PD7{D, GPIO_PIN_7, 0b0001011101111001};
constexpr GPIODomain::Pin PD8{D, GPIO_PIN_8, 0b0001000101001001};
constexpr GPIODomain::Pin PD9{D, GPIO_PIN_9, 0b0001000100001001};
constexpr GPIODomain::Pin PD10{D, GPIO_PIN_10, 0b0001000100001011};
constexpr GPIODomain::Pin PD11{D, GPIO_PIN_11, 0b0001100101101001};
constexpr GPIODomain::Pin PD12{D, GPIO_PIN_12, 0b0111110101101101};
constexpr GPIODomain::Pin PD13{D, GPIO_PIN_13, 0b0110110001111001};
constexpr GPIODomain::Pin PD14{D, GPIO_PIN_14, 0b0010000010011001};
constexpr GPIODomain::Pin PD15{D, GPIO_PIN_15, 0b0010000010011001};

// Port E
constexpr GPIODomain::Pin PE0{E, GPIO_PIN_0, 0b0111110010110011};
constexpr GPIODomain::Pin PE1{E, GPIO_PIN_1, 0b0111110010011011};
constexpr GPIODomain::Pin PE2{E, GPIO_PIN_2, 0b0110110111110011};
constexpr GPIODomain::Pin PE3{E, GPIO_PIN_3, 0b0110110111110011};
constexpr GPIODomain::Pin PE4{E, GPIO_PIN_4, 0b0110110111111111};
constexpr GPIODomain::Pin PE5{E, GPIO_PIN_5, 0b0110110111111011};
constexpr GPIODomain::Pin PE6{E, GPIO_PIN_6, 0b0110110111111111};
constexpr GPIODomain::Pin PE7{E, GPIO_PIN_7, 0b0111110010010011};
constexpr GPIODomain::Pin PE8{E, GPIO_PIN_8, 0b0111110010010011};
constexpr GPIODomain::Pin PE9{E, GPIO_PIN_9, 0b0111110010010011};
constexpr GPIODomain::Pin PE10{E, GPIO_PIN_10, 0b0111110010010011};
constexpr GPIODomain::Pin PE11{E, GPIO_PIN_11, 0b0111110010011011};
constexpr GPIODomain::Pin PE12{E, GPIO_PIN_12, 0b0111110010011011};
constexpr GPIODomain::Pin PE13{E, GPIO_PIN_13, 0b0111110010011011};
constexpr GPIODomain::Pin PE14{E, GPIO_PIN_14, 0b0011110010010011};
constexpr GPIODomain::Pin PE15{E, GPIO_PIN_15, 0b0110110010010011};
constexpr GPIODomain::Pin PE0{E, GPIO_PIN_0, 0b0110100010101111};
constexpr GPIODomain::Pin PE1{E, GPIO_PIN_1, 0b0100000010001111};
constexpr GPIODomain::Pin PE2{E, GPIO_PIN_2, 0b1010111011111001};
constexpr GPIODomain::Pin PE3{E, GPIO_PIN_3, 0b1000101010011001};
constexpr GPIODomain::Pin PE4{E, GPIO_PIN_4, 0b1011111010101111};
constexpr GPIODomain::Pin PE5{E, GPIO_PIN_5, 0b1011111010101111};
constexpr GPIODomain::Pin PE6{E, GPIO_PIN_6, 0b1110111011111111};
constexpr GPIODomain::Pin PE7{E, GPIO_PIN_7, 0b0101000100101001};
constexpr GPIODomain::Pin PE8{E, GPIO_PIN_8, 0b0101000100101101};
constexpr GPIODomain::Pin PE9{E, GPIO_PIN_9, 0b0101000100101001};
constexpr GPIODomain::Pin PE10{E, GPIO_PIN_10, 0b0101000100101001};
constexpr GPIODomain::Pin PE11{E, GPIO_PIN_11, 0b0101010000111011};
constexpr GPIODomain::Pin PE12{E, GPIO_PIN_12, 0b0101010000101111};
constexpr GPIODomain::Pin PE13{E, GPIO_PIN_13, 0b0101010000101111};
constexpr GPIODomain::Pin PE14{E, GPIO_PIN_14, 0b0100010000101011};
constexpr GPIODomain::Pin PE15{E, GPIO_PIN_15, 0b0100000000011111};

// Port F
constexpr GPIODomain::Pin PF0{F, GPIO_PIN_0, 0b0010110010010111};
constexpr GPIODomain::Pin PF1{F, GPIO_PIN_1, 0b0010110010010111};
constexpr GPIODomain::Pin PF2{F, GPIO_PIN_2, 0b0010110010010011};
constexpr GPIODomain::Pin PF3{F, GPIO_PIN_3, 0b0010010010010011};
constexpr GPIODomain::Pin PF4{F, GPIO_PIN_4, 0b0010010010010011};
constexpr GPIODomain::Pin PF5{F, GPIO_PIN_5, 0b0010010010010011};
constexpr GPIODomain::Pin PF6{F, GPIO_PIN_6, 0b0111110010110011};
constexpr GPIODomain::Pin PF7{F, GPIO_PIN_7, 0b0111110010110011};
constexpr GPIODomain::Pin PF8{F, GPIO_PIN_8, 0b0111110010111011};
constexpr GPIODomain::Pin PF9{F, GPIO_PIN_9, 0b0111110010111011};
constexpr GPIODomain::Pin PF10{F, GPIO_PIN_10, 0b0110110010110011};
constexpr GPIODomain::Pin PF11{F, GPIO_PIN_11, 0b0010110010010011};
constexpr GPIODomain::Pin PF12{F, GPIO_PIN_12, 0b0010010010010011};
constexpr GPIODomain::Pin PF13{F, GPIO_PIN_13, 0b0110110010110011};
constexpr GPIODomain::Pin PF14{F, GPIO_PIN_14, 0b0110110010110011};
constexpr GPIODomain::Pin PF15{F, GPIO_PIN_15, 0b0010110010010011};
constexpr GPIODomain::Pin PF0{F, GPIO_PIN_0, 0b0000101001001101};
constexpr GPIODomain::Pin PF1{F, GPIO_PIN_1, 0b0000101001001101};
constexpr GPIODomain::Pin PF2{F, GPIO_PIN_2, 0b0000101001001101};
constexpr GPIODomain::Pin PF3{F, GPIO_PIN_3, 0b0000000001001101};
constexpr GPIODomain::Pin PF4{F, GPIO_PIN_4, 0b0000000001001001};
constexpr GPIODomain::Pin PF5{F, GPIO_PIN_5, 0b0000000001001001};
constexpr GPIODomain::Pin PF6{F, GPIO_PIN_6, 0b0110011110100101};
constexpr GPIODomain::Pin PF7{F, GPIO_PIN_7, 0b0110011110100101};
constexpr GPIODomain::Pin PF8{F, GPIO_PIN_8, 0b0100011111100101};
constexpr GPIODomain::Pin PF9{F, GPIO_PIN_9, 0b0100011111100101};
constexpr GPIODomain::Pin PF10{F, GPIO_PIN_10, 0b0110100001100111};
constexpr GPIODomain::Pin PF11{F, GPIO_PIN_11, 0b0000010001101111};
constexpr GPIODomain::Pin PF12{F, GPIO_PIN_12, 0b0000000001001011};
constexpr GPIODomain::Pin PF13{F, GPIO_PIN_13, 0b0001100000001011};
constexpr GPIODomain::Pin PF14{F, GPIO_PIN_14, 0b0001100000001011};
constexpr GPIODomain::Pin PF15{F, GPIO_PIN_15, 0b0000100000001001};

// Port G
constexpr GPIODomain::Pin PG0{G, GPIO_PIN_0, 0b0010010010010011};
constexpr GPIODomain::Pin PG1{G, GPIO_PIN_1, 0b0010010010010011};
constexpr GPIODomain::Pin PG2{G, GPIO_PIN_2, 0b0110010010010011};
constexpr GPIODomain::Pin PG3{G, GPIO_PIN_3, 0b0110010010010011};
constexpr GPIODomain::Pin PG4{G, GPIO_PIN_4, 0b0110010010010011};
constexpr GPIODomain::Pin PG5{G, GPIO_PIN_5, 0b0010010010010011};
constexpr GPIODomain::Pin PG6{G, GPIO_PIN_6, 0b0111110010110011};
constexpr GPIODomain::Pin PG7{G, GPIO_PIN_7, 0b0110110010110011};
constexpr GPIODomain::Pin PG8{G, GPIO_PIN_8, 0b0111110010110011};
constexpr GPIODomain::Pin PG9{G, GPIO_PIN_9, 0b0110110110110011};
constexpr GPIODomain::Pin PG10{G, GPIO_PIN_10, 0b0110110110111011};
constexpr GPIODomain::Pin PG11{G, GPIO_PIN_11, 0b0110110110111011};
constexpr GPIODomain::Pin PG12{G, GPIO_PIN_12, 0b0111110110111111};
constexpr GPIODomain::Pin PG13{G, GPIO_PIN_13, 0b0111110110111111};
constexpr GPIODomain::Pin PG14{G, GPIO_PIN_14, 0b0111110110011111};
constexpr GPIODomain::Pin PG15{G, GPIO_PIN_15, 0b0110110010010011};
constexpr GPIODomain::Pin PG0{G, GPIO_PIN_0, 0b0000000001011001};
constexpr GPIODomain::Pin PG1{G, GPIO_PIN_1, 0b0000000001011001};
constexpr GPIODomain::Pin PG2{G, GPIO_PIN_2, 0b0001000000011011};
constexpr GPIODomain::Pin PG3{G, GPIO_PIN_3, 0b0001000000011101};
constexpr GPIODomain::Pin PG4{G, GPIO_PIN_4, 0b0100000000011001};
constexpr GPIODomain::Pin PG5{G, GPIO_PIN_5, 0b0100000000001001};
constexpr GPIODomain::Pin PG6{G, GPIO_PIN_6, 0b0100000000101111};
constexpr GPIODomain::Pin PG7{G, GPIO_PIN_7, 0b0000001101001111};
constexpr GPIODomain::Pin PG8{G, GPIO_PIN_8, 0b0001010110011011};
constexpr GPIODomain::Pin PG9{G, GPIO_PIN_9, 0b0010010111111101};
constexpr GPIODomain::Pin PG10{G, GPIO_PIN_10, 0b0011010001111111};
constexpr GPIODomain::Pin PG11{G, GPIO_PIN_11, 0b0100110011110111};
constexpr GPIODomain::Pin PG12{G, GPIO_PIN_12, 0b0101110111111111};
constexpr GPIODomain::Pin PG13{G, GPIO_PIN_13, 0b1100110100111111};
constexpr GPIODomain::Pin PG14{G, GPIO_PIN_14, 0b1100110101111111};
constexpr GPIODomain::Pin PG15{G, GPIO_PIN_15, 0b0000000101011101};

// Port H
constexpr GPIODomain::Pin PH0{H, GPIO_PIN_0, 0b1000000000000001};
constexpr GPIODomain::Pin PH1{H, GPIO_PIN_1, 0b1000000000000001};
constexpr GPIODomain::Pin PH0{H, GPIO_PIN_0, 0b0000000000000001};
constexpr GPIODomain::Pin PH1{H, GPIO_PIN_1, 0b0000000000000001};

} // namespace ST_LIB
Loading