diff mbox

[2/7] includes: dt-bindings: Add STM32F429 pinctrl DT bindings

Message ID 1444853247-31114-3-git-send-email-mcoquelin.stm32@gmail.com
State New
Headers show

Commit Message

Maxime Coquelin Oct. 14, 2015, 8:07 p.m. UTC
Signed-off-by: Maxime Coquelin <mcoquelin.stm32@gmail.com>
---
 include/dt-bindings/pinctrl/pinctrl-stm32.h     |   12 +
 include/dt-bindings/pinctrl/stm32f429-pinfunc.h | 1241 +++++++++++++++++++++++
 2 files changed, 1253 insertions(+)
 create mode 100644 include/dt-bindings/pinctrl/pinctrl-stm32.h
 create mode 100644 include/dt-bindings/pinctrl/stm32f429-pinfunc.h

Comments

Daniel Thompson Oct. 15, 2015, 11:14 a.m. UTC | #1
On 14/10/15 21:07, Maxime Coquelin wrote:
> Signed-off-by: Maxime Coquelin <mcoquelin.stm32@gmail.com>
> ---
>   include/dt-bindings/pinctrl/pinctrl-stm32.h     |   12 +
>   include/dt-bindings/pinctrl/stm32f429-pinfunc.h | 1241 +++++++++++++++++++++++
>   2 files changed, 1253 insertions(+)
>   create mode 100644 include/dt-bindings/pinctrl/pinctrl-stm32.h
>   create mode 100644 include/dt-bindings/pinctrl/stm32f429-pinfunc.h
>
> diff --git a/include/dt-bindings/pinctrl/pinctrl-stm32.h b/include/dt-bindings/pinctrl/pinctrl-stm32.h
> new file mode 100644
> index 0000000..a2e7222
> --- /dev/null
> +++ b/include/dt-bindings/pinctrl/pinctrl-stm32.h
> @@ -0,0 +1,12 @@
> +#ifndef _DT_BINDINGS_PINCTRL_STM32_H
> +#define _DT_BINDINGS_PINCTRL_STM32_H
> +
> +#define STM32_PIN_NO(x) ((x) << 8)
> +#define STM32_GET_PIN_NO(x) ((x) >> 8)
> +#define STM32_GET_PIN_FUNC(x) ((x) & 0xff)
> +
> +#define STM32_PIN_GPIO		0
> +#define STM32_PIN_AF(x)		((x) + 1)
> +#define STM32_PIN_ANALOG	(STM32_PIN_AF(15) + 1)
> +
> +#endif /* _DT_BINDINGS_PINCTRL_STM32_H */
> diff --git a/include/dt-bindings/pinctrl/stm32f429-pinfunc.h b/include/dt-bindings/pinctrl/stm32f429-pinfunc.h
> new file mode 100644
> index 0000000..979e4eb
> --- /dev/null
> +++ b/include/dt-bindings/pinctrl/stm32f429-pinfunc.h
> @@ -0,0 +1,1241 @@
> +#ifndef _DT_BINDINGS_STM32F429_PINFUNC_H
> +#define _DT_BINDINGS_STM32F429_PINFUNC_H
> +
> +#include <dt-bindings/pinctrl/pinctrl-stm32.h>
> +
> +#define STM32F429_PA0_FUNC_GPIO (STM32_PIN_NO(0) | STM32_PIN_GPIO)
> +#define STM32F429_PA0_FUNC_TIM2_CH1 TIM2_ETR (STM32_PIN_NO(0) | STM32_PIN_AF(1))

For the clock driver I was advised to get rid of this sort of "heroics" 
and expose raw numbers from the datasheet directly to DT bindings users.

Should the same logic apply to this *huge* collection of macros?
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Maxime Coquelin Oct. 15, 2015, 11:29 a.m. UTC | #2
2015-10-15 13:14 GMT+02:00 Daniel Thompson <daniel.thompson@linaro.org>:
> On 14/10/15 21:07, Maxime Coquelin wrote:
>>
>> Signed-off-by: Maxime Coquelin <mcoquelin.stm32@gmail.com>
>> ---
>>   include/dt-bindings/pinctrl/pinctrl-stm32.h     |   12 +
>>   include/dt-bindings/pinctrl/stm32f429-pinfunc.h | 1241
>> +++++++++++++++++++++++
>>   2 files changed, 1253 insertions(+)
>>   create mode 100644 include/dt-bindings/pinctrl/pinctrl-stm32.h
>>   create mode 100644 include/dt-bindings/pinctrl/stm32f429-pinfunc.h
>>
>> diff --git a/include/dt-bindings/pinctrl/pinctrl-stm32.h
>> b/include/dt-bindings/pinctrl/pinctrl-stm32.h
>> new file mode 100644
>> index 0000000..a2e7222
>> --- /dev/null
>> +++ b/include/dt-bindings/pinctrl/pinctrl-stm32.h
>> @@ -0,0 +1,12 @@
>> +#ifndef _DT_BINDINGS_PINCTRL_STM32_H
>> +#define _DT_BINDINGS_PINCTRL_STM32_H
>> +
>> +#define STM32_PIN_NO(x) ((x) << 8)
>> +#define STM32_GET_PIN_NO(x) ((x) >> 8)
>> +#define STM32_GET_PIN_FUNC(x) ((x) & 0xff)
>> +
>> +#define STM32_PIN_GPIO         0
>> +#define STM32_PIN_AF(x)                ((x) + 1)
>> +#define STM32_PIN_ANALOG       (STM32_PIN_AF(15) + 1)
>> +
>> +#endif /* _DT_BINDINGS_PINCTRL_STM32_H */
>> diff --git a/include/dt-bindings/pinctrl/stm32f429-pinfunc.h
>> b/include/dt-bindings/pinctrl/stm32f429-pinfunc.h
>> new file mode 100644
>> index 0000000..979e4eb
>> --- /dev/null
>> +++ b/include/dt-bindings/pinctrl/stm32f429-pinfunc.h
>> @@ -0,0 +1,1241 @@
>> +#ifndef _DT_BINDINGS_STM32F429_PINFUNC_H
>> +#define _DT_BINDINGS_STM32F429_PINFUNC_H
>> +
>> +#include <dt-bindings/pinctrl/pinctrl-stm32.h>
>> +
>> +#define STM32F429_PA0_FUNC_GPIO (STM32_PIN_NO(0) | STM32_PIN_GPIO)
>> +#define STM32F429_PA0_FUNC_TIM2_CH1 TIM2_ETR (STM32_PIN_NO(0) |
>> STM32_PIN_AF(1))
>
>
> For the clock driver I was advised to get rid of this sort of "heroics" and
> expose raw numbers from the datasheet directly to DT bindings users.
>
> Should the same logic apply to this *huge* collection of macros?

I'm open to change, I just took example on the Mediatek implementation.
Advantage is that checkpatch will be more silent, drawback is that it
will be a little harder to understand how these values are generated.
If we decide to change to raw values, then the DT Bindings
documentation will need to be more verbose on the way these values are
generated.

Note that it will not be painful, as I can generate them from a script.

Regards,
Maxime
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Daniel Thompson Oct. 15, 2015, 11:55 a.m. UTC | #3
On 15/10/15 12:29, Maxime Coquelin wrote:
> 2015-10-15 13:14 GMT+02:00 Daniel Thompson <daniel.thompson@linaro.org>:
>> On 14/10/15 21:07, Maxime Coquelin wrote:
>>>
>>> Signed-off-by: Maxime Coquelin <mcoquelin.stm32@gmail.com>
>>> ---
>>>    include/dt-bindings/pinctrl/pinctrl-stm32.h     |   12 +
>>>    include/dt-bindings/pinctrl/stm32f429-pinfunc.h | 1241
>>> +++++++++++++++++++++++
>>>    2 files changed, 1253 insertions(+)
>>>    create mode 100644 include/dt-bindings/pinctrl/pinctrl-stm32.h
>>>    create mode 100644 include/dt-bindings/pinctrl/stm32f429-pinfunc.h
>>>
>>> diff --git a/include/dt-bindings/pinctrl/pinctrl-stm32.h
>>> b/include/dt-bindings/pinctrl/pinctrl-stm32.h
>>> new file mode 100644
>>> index 0000000..a2e7222
>>> --- /dev/null
>>> +++ b/include/dt-bindings/pinctrl/pinctrl-stm32.h
>>> @@ -0,0 +1,12 @@
>>> +#ifndef _DT_BINDINGS_PINCTRL_STM32_H
>>> +#define _DT_BINDINGS_PINCTRL_STM32_H
>>> +
>>> +#define STM32_PIN_NO(x) ((x) << 8)
>>> +#define STM32_GET_PIN_NO(x) ((x) >> 8)
>>> +#define STM32_GET_PIN_FUNC(x) ((x) & 0xff)
>>> +
>>> +#define STM32_PIN_GPIO         0
>>> +#define STM32_PIN_AF(x)                ((x) + 1)
>>> +#define STM32_PIN_ANALOG       (STM32_PIN_AF(15) + 1)
>>> +
>>> +#endif /* _DT_BINDINGS_PINCTRL_STM32_H */
>>> diff --git a/include/dt-bindings/pinctrl/stm32f429-pinfunc.h
>>> b/include/dt-bindings/pinctrl/stm32f429-pinfunc.h
>>> new file mode 100644
>>> index 0000000..979e4eb
>>> --- /dev/null
>>> +++ b/include/dt-bindings/pinctrl/stm32f429-pinfunc.h
>>> @@ -0,0 +1,1241 @@
>>> +#ifndef _DT_BINDINGS_STM32F429_PINFUNC_H
>>> +#define _DT_BINDINGS_STM32F429_PINFUNC_H
>>> +
>>> +#include <dt-bindings/pinctrl/pinctrl-stm32.h>
>>> +
>>> +#define STM32F429_PA0_FUNC_GPIO (STM32_PIN_NO(0) | STM32_PIN_GPIO)
>>> +#define STM32F429_PA0_FUNC_TIM2_CH1 TIM2_ETR (STM32_PIN_NO(0) |
>>> STM32_PIN_AF(1))
>>
>>
>> For the clock driver I was advised to get rid of this sort of "heroics" and
>> expose raw numbers from the datasheet directly to DT bindings users.
>>
>> Should the same logic apply to this *huge* collection of macros?
>
> I'm open to change, I just took example on the Mediatek implementation.
> Advantage is that checkpatch will be more silent, drawback is that it
> will be a little harder to understand how these values are generated.
> If we decide to change to raw values, then the DT Bindings
> documentation will need to be more verbose on the way these values are
> generated.

To be honest I was thinking about moaning about that anyway. Its pretty 
tough from the docs you have currently to figure out the encoding.

Does having header files really excuse us from documenting the bindings 
properly? ;-)


Daniel.
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/include/dt-bindings/pinctrl/pinctrl-stm32.h b/include/dt-bindings/pinctrl/pinctrl-stm32.h
new file mode 100644
index 0000000..a2e7222
--- /dev/null
+++ b/include/dt-bindings/pinctrl/pinctrl-stm32.h
@@ -0,0 +1,12 @@ 
+#ifndef _DT_BINDINGS_PINCTRL_STM32_H
+#define _DT_BINDINGS_PINCTRL_STM32_H
+
+#define STM32_PIN_NO(x) ((x) << 8)
+#define STM32_GET_PIN_NO(x) ((x) >> 8)
+#define STM32_GET_PIN_FUNC(x) ((x) & 0xff)
+
+#define STM32_PIN_GPIO		0
+#define STM32_PIN_AF(x)		((x) + 1)
+#define STM32_PIN_ANALOG	(STM32_PIN_AF(15) + 1)
+
+#endif /* _DT_BINDINGS_PINCTRL_STM32_H */
diff --git a/include/dt-bindings/pinctrl/stm32f429-pinfunc.h b/include/dt-bindings/pinctrl/stm32f429-pinfunc.h
new file mode 100644
index 0000000..979e4eb
--- /dev/null
+++ b/include/dt-bindings/pinctrl/stm32f429-pinfunc.h
@@ -0,0 +1,1241 @@ 
+#ifndef _DT_BINDINGS_STM32F429_PINFUNC_H
+#define _DT_BINDINGS_STM32F429_PINFUNC_H
+
+#include <dt-bindings/pinctrl/pinctrl-stm32.h>
+
+#define STM32F429_PA0_FUNC_GPIO (STM32_PIN_NO(0) | STM32_PIN_GPIO)
+#define STM32F429_PA0_FUNC_TIM2_CH1 TIM2_ETR (STM32_PIN_NO(0) | STM32_PIN_AF(1))
+#define STM32F429_PA0_FUNC_TIM5_CH1 (STM32_PIN_NO(0) | STM32_PIN_AF(2))
+#define STM32F429_PA0_FUNC_TIM8_ETR (STM32_PIN_NO(0) | STM32_PIN_AF(3))
+#define STM32F429_PA0_FUNC_USART2_CTS (STM32_PIN_NO(0) | STM32_PIN_AF(7))
+#define STM32F429_PA0_FUNC_UART4_TX (STM32_PIN_NO(0) | STM32_PIN_AF(8))
+#define STM32F429_PA0_FUNC_ETH_MII_CRS (STM32_PIN_NO(0) | STM32_PIN_AF(11))
+#define STM32F429_PA0_FUNC_EVENTOUT (STM32_PIN_NO(0) | STM32_PIN_AF(15))
+#define STM32F429_PA0_FUNC_ANALOG (STM32_PIN_NO(0) | STM32_PIN_ANALOG)
+
+#define STM32F429_PA1_FUNC_GPIO (STM32_PIN_NO(1) | STM32_PIN_GPIO)
+#define STM32F429_PA1_FUNC_TIM2_CH2 (STM32_PIN_NO(1) | STM32_PIN_AF(1))
+#define STM32F429_PA1_FUNC_TIM5_CH2 (STM32_PIN_NO(1) | STM32_PIN_AF(2))
+#define STM32F429_PA1_FUNC_USART2_RTS (STM32_PIN_NO(1) | STM32_PIN_AF(7))
+#define STM32F429_PA1_FUNC_UART4_RX (STM32_PIN_NO(1) | STM32_PIN_AF(8))
+#define STM32F429_PA1_FUNC_ETH_MII_RX_CLK ETH_RMII_REF_CLK (STM32_PIN_NO(1) | STM32_PIN_AF(11))
+#define STM32F429_PA1_FUNC_EVENTOUT (STM32_PIN_NO(1) | STM32_PIN_AF(15))
+#define STM32F429_PA1_FUNC_ANALOG (STM32_PIN_NO(1) | STM32_PIN_ANALOG)
+
+#define STM32F429_PA2_FUNC_GPIO (STM32_PIN_NO(2) | STM32_PIN_GPIO)
+#define STM32F429_PA2_FUNC_TIM2_CH3 (STM32_PIN_NO(2) | STM32_PIN_AF(1))
+#define STM32F429_PA2_FUNC_TIM5_CH3 (STM32_PIN_NO(2) | STM32_PIN_AF(2))
+#define STM32F429_PA2_FUNC_TIM9_CH1 (STM32_PIN_NO(2) | STM32_PIN_AF(3))
+#define STM32F429_PA2_FUNC_USART2_TX (STM32_PIN_NO(2) | STM32_PIN_AF(7))
+#define STM32F429_PA2_FUNC_ETH_MDIO (STM32_PIN_NO(2) | STM32_PIN_AF(11))
+#define STM32F429_PA2_FUNC_EVENTOUT (STM32_PIN_NO(2) | STM32_PIN_AF(15))
+#define STM32F429_PA2_FUNC_ANALOG (STM32_PIN_NO(2) | STM32_PIN_ANALOG)
+
+#define STM32F429_PA3_FUNC_GPIO (STM32_PIN_NO(3) | STM32_PIN_GPIO)
+#define STM32F429_PA3_FUNC_TIM2_CH4 (STM32_PIN_NO(3) | STM32_PIN_AF(1))
+#define STM32F429_PA3_FUNC_TIM5_CH4 (STM32_PIN_NO(3) | STM32_PIN_AF(2))
+#define STM32F429_PA3_FUNC_TIM9_CH2 (STM32_PIN_NO(3) | STM32_PIN_AF(3))
+#define STM32F429_PA3_FUNC_USART2_RX (STM32_PIN_NO(3) | STM32_PIN_AF(7))
+#define STM32F429_PA3_FUNC_OTG_HS_ULPI_D0 (STM32_PIN_NO(3) | STM32_PIN_AF(10))
+#define STM32F429_PA3_FUNC_ETH_MII_COL (STM32_PIN_NO(3) | STM32_PIN_AF(11))
+#define STM32F429_PA3_FUNC_LCD_B5 (STM32_PIN_NO(3) | STM32_PIN_AF(14))
+#define STM32F429_PA3_FUNC_EVENTOUT (STM32_PIN_NO(3) | STM32_PIN_AF(15))
+#define STM32F429_PA3_FUNC_ANALOG (STM32_PIN_NO(3) | STM32_PIN_ANALOG)
+
+#define STM32F429_PA4_FUNC_GPIO (STM32_PIN_NO(4) | STM32_PIN_GPIO)
+#define STM32F429_PA4_FUNC_SPI1_NSS (STM32_PIN_NO(4) | STM32_PIN_AF(5))
+#define STM32F429_PA4_FUNC_SPI3_NSS I2S3_WS (STM32_PIN_NO(4) | STM32_PIN_AF(6))
+#define STM32F429_PA4_FUNC_USART2_CK (STM32_PIN_NO(4) | STM32_PIN_AF(7))
+#define STM32F429_PA4_FUNC_OTG_HS_SOF (STM32_PIN_NO(4) | STM32_PIN_AF(12))
+#define STM32F429_PA4_FUNC_DCMI_HSYNC (STM32_PIN_NO(4) | STM32_PIN_AF(13))
+#define STM32F429_PA4_FUNC_LCD_VSYNC (STM32_PIN_NO(4) | STM32_PIN_AF(14))
+#define STM32F429_PA4_FUNC_EVENTOUT (STM32_PIN_NO(4) | STM32_PIN_AF(15))
+#define STM32F429_PA4_FUNC_ANALOG (STM32_PIN_NO(4) | STM32_PIN_ANALOG)
+
+#define STM32F429_PA5_FUNC_GPIO (STM32_PIN_NO(5) | STM32_PIN_GPIO)
+#define STM32F429_PA5_FUNC_TIM2_CH1 TIM2_ETR (STM32_PIN_NO(5) | STM32_PIN_AF(1))
+#define STM32F429_PA5_FUNC_TIM8_CH1N (STM32_PIN_NO(5) | STM32_PIN_AF(3))
+#define STM32F429_PA5_FUNC_SPI1_SCK (STM32_PIN_NO(5) | STM32_PIN_AF(5))
+#define STM32F429_PA5_FUNC_OTG_HS_ULPI_CK (STM32_PIN_NO(5) | STM32_PIN_AF(10))
+#define STM32F429_PA5_FUNC_EVENTOUT (STM32_PIN_NO(5) | STM32_PIN_AF(15))
+#define STM32F429_PA5_FUNC_ANALOG (STM32_PIN_NO(5) | STM32_PIN_ANALOG)
+
+#define STM32F429_PA6_FUNC_GPIO (STM32_PIN_NO(6) | STM32_PIN_GPIO)
+#define STM32F429_PA6_FUNC_TIM1_BKIN (STM32_PIN_NO(6) | STM32_PIN_AF(1))
+#define STM32F429_PA6_FUNC_TIM3_CH1 (STM32_PIN_NO(6) | STM32_PIN_AF(2))
+#define STM32F429_PA6_FUNC_TIM8_BKIN (STM32_PIN_NO(6) | STM32_PIN_AF(3))
+#define STM32F429_PA6_FUNC_SPI1_MISO (STM32_PIN_NO(6) | STM32_PIN_AF(5))
+#define STM32F429_PA6_FUNC_TIM13_CH1 (STM32_PIN_NO(6) | STM32_PIN_AF(9))
+#define STM32F429_PA6_FUNC_DCMI_PIXCLK (STM32_PIN_NO(6) | STM32_PIN_AF(13))
+#define STM32F429_PA6_FUNC_LCD_G2 (STM32_PIN_NO(6) | STM32_PIN_AF(14))
+#define STM32F429_PA6_FUNC_EVENTOUT (STM32_PIN_NO(6) | STM32_PIN_AF(15))
+#define STM32F429_PA6_FUNC_ANALOG (STM32_PIN_NO(6) | STM32_PIN_ANALOG)
+
+#define STM32F429_PA7_FUNC_GPIO (STM32_PIN_NO(7) | STM32_PIN_GPIO)
+#define STM32F429_PA7_FUNC_TIM1_CH1N (STM32_PIN_NO(7) | STM32_PIN_AF(1))
+#define STM32F429_PA7_FUNC_TIM3_CH2 (STM32_PIN_NO(7) | STM32_PIN_AF(2))
+#define STM32F429_PA7_FUNC_TIM8_CH1N (STM32_PIN_NO(7) | STM32_PIN_AF(3))
+#define STM32F429_PA7_FUNC_SPI1_MOSI (STM32_PIN_NO(7) | STM32_PIN_AF(5))
+#define STM32F429_PA7_FUNC_TIM14_CH1 (STM32_PIN_NO(7) | STM32_PIN_AF(9))
+#define STM32F429_PA7_FUNC_ETH_MII_RX_DV ETH_RMII_CRS_DV (STM32_PIN_NO(7) | STM32_PIN_AF(11))
+#define STM32F429_PA7_FUNC_EVENTOUT (STM32_PIN_NO(7) | STM32_PIN_AF(15))
+#define STM32F429_PA7_FUNC_ANALOG (STM32_PIN_NO(7) | STM32_PIN_ANALOG)
+
+#define STM32F429_PA8_FUNC_GPIO (STM32_PIN_NO(8) | STM32_PIN_GPIO)
+#define STM32F429_PA8_FUNC_MCO1 (STM32_PIN_NO(8) | STM32_PIN_AF(0))
+#define STM32F429_PA8_FUNC_TIM1_CH1 (STM32_PIN_NO(8) | STM32_PIN_AF(1))
+#define STM32F429_PA8_FUNC_I2C3_SCL (STM32_PIN_NO(8) | STM32_PIN_AF(4))
+#define STM32F429_PA8_FUNC_USART1_CK (STM32_PIN_NO(8) | STM32_PIN_AF(7))
+#define STM32F429_PA8_FUNC_OTG_FS_SOF (STM32_PIN_NO(8) | STM32_PIN_AF(10))
+#define STM32F429_PA8_FUNC_LCD_R6 (STM32_PIN_NO(8) | STM32_PIN_AF(14))
+#define STM32F429_PA8_FUNC_EVENTOUT (STM32_PIN_NO(8) | STM32_PIN_AF(15))
+#define STM32F429_PA8_FUNC_ANALOG (STM32_PIN_NO(8) | STM32_PIN_ANALOG)
+
+#define STM32F429_PA9_FUNC_GPIO (STM32_PIN_NO(9) | STM32_PIN_GPIO)
+#define STM32F429_PA9_FUNC_TIM1_CH2 (STM32_PIN_NO(9) | STM32_PIN_AF(1))
+#define STM32F429_PA9_FUNC_I2C3_SMBA (STM32_PIN_NO(9) | STM32_PIN_AF(4))
+#define STM32F429_PA9_FUNC_USART1_TX (STM32_PIN_NO(9) | STM32_PIN_AF(7))
+#define STM32F429_PA9_FUNC_DCMI_D0 (STM32_PIN_NO(9) | STM32_PIN_AF(13))
+#define STM32F429_PA9_FUNC_EVENTOUT (STM32_PIN_NO(9) | STM32_PIN_AF(15))
+#define STM32F429_PA9_FUNC_ANALOG (STM32_PIN_NO(9) | STM32_PIN_ANALOG)
+
+#define STM32F429_PA10_FUNC_GPIO (STM32_PIN_NO(10) | STM32_PIN_GPIO)
+#define STM32F429_PA10_FUNC_TIM1_CH3 (STM32_PIN_NO(10) | STM32_PIN_AF(1))
+#define STM32F429_PA10_FUNC_USART1_RX (STM32_PIN_NO(10) | STM32_PIN_AF(7))
+#define STM32F429_PA10_FUNC_OTG_FS_ID (STM32_PIN_NO(10) | STM32_PIN_AF(10))
+#define STM32F429_PA10_FUNC_DCMI_D1 (STM32_PIN_NO(10) | STM32_PIN_AF(13))
+#define STM32F429_PA10_FUNC_EVENTOUT (STM32_PIN_NO(10) | STM32_PIN_AF(15))
+#define STM32F429_PA10_FUNC_ANALOG (STM32_PIN_NO(10) | STM32_PIN_ANALOG)
+
+#define STM32F429_PA11_FUNC_GPIO (STM32_PIN_NO(11) | STM32_PIN_GPIO)
+#define STM32F429_PA11_FUNC_TIM1_CH4 (STM32_PIN_NO(11) | STM32_PIN_AF(1))
+#define STM32F429_PA11_FUNC_USART1_CTS (STM32_PIN_NO(11) | STM32_PIN_AF(7))
+#define STM32F429_PA11_FUNC_CAN1_RX (STM32_PIN_NO(11) | STM32_PIN_AF(9))
+#define STM32F429_PA11_FUNC_OTG_FS_DM (STM32_PIN_NO(11) | STM32_PIN_AF(10))
+#define STM32F429_PA11_FUNC_LCD_R4 (STM32_PIN_NO(11) | STM32_PIN_AF(14))
+#define STM32F429_PA11_FUNC_EVENTOUT (STM32_PIN_NO(11) | STM32_PIN_AF(15))
+#define STM32F429_PA11_FUNC_ANALOG (STM32_PIN_NO(11) | STM32_PIN_ANALOG)
+
+#define STM32F429_PA12_FUNC_GPIO (STM32_PIN_NO(12) | STM32_PIN_GPIO)
+#define STM32F429_PA12_FUNC_TIM1_ETR (STM32_PIN_NO(12) | STM32_PIN_AF(1))
+#define STM32F429_PA12_FUNC_USART1_RTS (STM32_PIN_NO(12) | STM32_PIN_AF(7))
+#define STM32F429_PA12_FUNC_CAN1_TX (STM32_PIN_NO(12) | STM32_PIN_AF(9))
+#define STM32F429_PA12_FUNC_OTG_FS_DP (STM32_PIN_NO(12) | STM32_PIN_AF(10))
+#define STM32F429_PA12_FUNC_LCD_R5 (STM32_PIN_NO(12) | STM32_PIN_AF(14))
+#define STM32F429_PA12_FUNC_EVENTOUT (STM32_PIN_NO(12) | STM32_PIN_AF(15))
+#define STM32F429_PA12_FUNC_ANALOG (STM32_PIN_NO(12) | STM32_PIN_ANALOG)
+
+#define STM32F429_PA13_FUNC_GPIO (STM32_PIN_NO(13) | STM32_PIN_GPIO)
+#define STM32F429_PA13_FUNC_JTMS SWDIO (STM32_PIN_NO(13) | STM32_PIN_AF(0))
+#define STM32F429_PA13_FUNC_EVENTOUT (STM32_PIN_NO(13) | STM32_PIN_AF(15))
+#define STM32F429_PA13_FUNC_ANALOG (STM32_PIN_NO(13) | STM32_PIN_ANALOG)
+
+#define STM32F429_PA14_FUNC_GPIO (STM32_PIN_NO(14) | STM32_PIN_GPIO)
+#define STM32F429_PA14_FUNC_JTCK SWCLK (STM32_PIN_NO(14) | STM32_PIN_AF(0))
+#define STM32F429_PA14_FUNC_EVENTOUT (STM32_PIN_NO(14) | STM32_PIN_AF(15))
+#define STM32F429_PA14_FUNC_ANALOG (STM32_PIN_NO(14) | STM32_PIN_ANALOG)
+
+#define STM32F429_PA15_FUNC_GPIO (STM32_PIN_NO(15) | STM32_PIN_GPIO)
+#define STM32F429_PA15_FUNC_JTDI (STM32_PIN_NO(15) | STM32_PIN_AF(0))
+#define STM32F429_PA15_FUNC_TIM2_CH1 TIM2_ETR (STM32_PIN_NO(15) | STM32_PIN_AF(1))
+#define STM32F429_PA15_FUNC_SPI1_NSS (STM32_PIN_NO(15) | STM32_PIN_AF(5))
+#define STM32F429_PA15_FUNC_SPI3_NSS I2S3_WS (STM32_PIN_NO(15) | STM32_PIN_AF(6))
+#define STM32F429_PA15_FUNC_EVENTOUT (STM32_PIN_NO(15) | STM32_PIN_AF(15))
+#define STM32F429_PA15_FUNC_ANALOG (STM32_PIN_NO(15) | STM32_PIN_ANALOG)
+
+
+
+#define STM32F429_PB0_FUNC_GPIO (STM32_PIN_NO(16) | STM32_PIN_GPIO)
+#define STM32F429_PB0_FUNC_TIM1_CH2N (STM32_PIN_NO(16) | STM32_PIN_AF(1))
+#define STM32F429_PB0_FUNC_TIM3_CH3 (STM32_PIN_NO(16) | STM32_PIN_AF(2))
+#define STM32F429_PB0_FUNC_TIM8_CH2N (STM32_PIN_NO(16) | STM32_PIN_AF(3))
+#define STM32F429_PB0_FUNC_LCD_R3 (STM32_PIN_NO(16) | STM32_PIN_AF(9))
+#define STM32F429_PB0_FUNC_OTG_HS_ULPI_D1 (STM32_PIN_NO(16) | STM32_PIN_AF(10))
+#define STM32F429_PB0_FUNC_ETH_MII_RXD2 (STM32_PIN_NO(16) | STM32_PIN_AF(11))
+#define STM32F429_PB0_FUNC_EVENTOUT (STM32_PIN_NO(16) | STM32_PIN_AF(15))
+#define STM32F429_PB0_FUNC_ANALOG (STM32_PIN_NO(16) | STM32_PIN_ANALOG)
+
+#define STM32F429_PB1_FUNC_GPIO (STM32_PIN_NO(17) | STM32_PIN_GPIO)
+#define STM32F429_PB1_FUNC_TIM1_CH3N (STM32_PIN_NO(17) | STM32_PIN_AF(1))
+#define STM32F429_PB1_FUNC_TIM3_CH4 (STM32_PIN_NO(17) | STM32_PIN_AF(2))
+#define STM32F429_PB1_FUNC_TIM8_CH3N (STM32_PIN_NO(17) | STM32_PIN_AF(3))
+#define STM32F429_PB1_FUNC_LCD_R6 (STM32_PIN_NO(17) | STM32_PIN_AF(9))
+#define STM32F429_PB1_FUNC_OTG_HS_ULPI_D2 (STM32_PIN_NO(17) | STM32_PIN_AF(10))
+#define STM32F429_PB1_FUNC_ETH_MII_RXD3 (STM32_PIN_NO(17) | STM32_PIN_AF(11))
+#define STM32F429_PB1_FUNC_EVENTOUT (STM32_PIN_NO(17) | STM32_PIN_AF(15))
+#define STM32F429_PB1_FUNC_ANALOG (STM32_PIN_NO(17) | STM32_PIN_ANALOG)
+
+#define STM32F429_PB2_FUNC_GPIO (STM32_PIN_NO(18) | STM32_PIN_GPIO)
+#define STM32F429_PB2_FUNC_EVENTOUT (STM32_PIN_NO(18) | STM32_PIN_AF(15))
+#define STM32F429_PB2_FUNC_ANALOG (STM32_PIN_NO(18) | STM32_PIN_ANALOG)
+
+#define STM32F429_PB3_FUNC_GPIO (STM32_PIN_NO(19) | STM32_PIN_GPIO)
+#define STM32F429_PB3_FUNC_JTDO TRACESWO (STM32_PIN_NO(19) | STM32_PIN_AF(0))
+#define STM32F429_PB3_FUNC_TIM2_CH2 (STM32_PIN_NO(19) | STM32_PIN_AF(1))
+#define STM32F429_PB3_FUNC_SPI1_SCK (STM32_PIN_NO(19) | STM32_PIN_AF(5))
+#define STM32F429_PB3_FUNC_SPI3_SCK I2S3_CK (STM32_PIN_NO(19) | STM32_PIN_AF(6))
+#define STM32F429_PB3_FUNC_EVENTOUT (STM32_PIN_NO(19) | STM32_PIN_AF(15))
+#define STM32F429_PB3_FUNC_ANALOG (STM32_PIN_NO(19) | STM32_PIN_ANALOG)
+
+#define STM32F429_PB4_FUNC_GPIO (STM32_PIN_NO(20) | STM32_PIN_GPIO)
+#define STM32F429_PB4_FUNC_NJTRST (STM32_PIN_NO(20) | STM32_PIN_AF(0))
+#define STM32F429_PB4_FUNC_TIM3_CH1 (STM32_PIN_NO(20) | STM32_PIN_AF(2))
+#define STM32F429_PB4_FUNC_SPI1_MISO (STM32_PIN_NO(20) | STM32_PIN_AF(5))
+#define STM32F429_PB4_FUNC_SPI3_MISO (STM32_PIN_NO(20) | STM32_PIN_AF(6))
+#define STM32F429_PB4_FUNC_I2S3EXT_SD (STM32_PIN_NO(20) | STM32_PIN_AF(7))
+#define STM32F429_PB4_FUNC_EVENTOUT (STM32_PIN_NO(20) | STM32_PIN_AF(15))
+#define STM32F429_PB4_FUNC_ANALOG (STM32_PIN_NO(20) | STM32_PIN_ANALOG)
+
+#define STM32F429_PB5_FUNC_GPIO (STM32_PIN_NO(21) | STM32_PIN_GPIO)
+#define STM32F429_PB5_FUNC_TIM3_CH2 (STM32_PIN_NO(21) | STM32_PIN_AF(2))
+#define STM32F429_PB5_FUNC_I2C1_SMBA (STM32_PIN_NO(21) | STM32_PIN_AF(4))
+#define STM32F429_PB5_FUNC_SPI1_MOSI (STM32_PIN_NO(21) | STM32_PIN_AF(5))
+#define STM32F429_PB5_FUNC_SPI3_MOSI I2S3_SD (STM32_PIN_NO(21) | STM32_PIN_AF(6))
+#define STM32F429_PB5_FUNC_CAN2_RX (STM32_PIN_NO(21) | STM32_PIN_AF(9))
+#define STM32F429_PB5_FUNC_OTG_HS_ULPI_D7 (STM32_PIN_NO(21) | STM32_PIN_AF(10))
+#define STM32F429_PB5_FUNC_ETH_PPS_OUT (STM32_PIN_NO(21) | STM32_PIN_AF(11))
+#define STM32F429_PB5_FUNC_FMC_SDCKE1 (STM32_PIN_NO(21) | STM32_PIN_AF(12))
+#define STM32F429_PB5_FUNC_DCMI_D10 (STM32_PIN_NO(21) | STM32_PIN_AF(13))
+#define STM32F429_PB5_FUNC_EVENTOUT (STM32_PIN_NO(21) | STM32_PIN_AF(15))
+#define STM32F429_PB5_FUNC_ANALOG (STM32_PIN_NO(21) | STM32_PIN_ANALOG)
+
+#define STM32F429_PB6_FUNC_GPIO (STM32_PIN_NO(22) | STM32_PIN_GPIO)
+#define STM32F429_PB6_FUNC_TIM4_CH1 (STM32_PIN_NO(22) | STM32_PIN_AF(2))
+#define STM32F429_PB6_FUNC_I2C1_SCL (STM32_PIN_NO(22) | STM32_PIN_AF(4))
+#define STM32F429_PB6_FUNC_USART1_TX (STM32_PIN_NO(22) | STM32_PIN_AF(7))
+#define STM32F429_PB6_FUNC_CAN2_TX (STM32_PIN_NO(22) | STM32_PIN_AF(9))
+#define STM32F429_PB6_FUNC_FMC_SDNE1 (STM32_PIN_NO(22) | STM32_PIN_AF(12))
+#define STM32F429_PB6_FUNC_DCMI_D5 (STM32_PIN_NO(22) | STM32_PIN_AF(13))
+#define STM32F429_PB6_FUNC_EVENTOUT (STM32_PIN_NO(22) | STM32_PIN_AF(15))
+#define STM32F429_PB6_FUNC_ANALOG (STM32_PIN_NO(22) | STM32_PIN_ANALOG)
+
+#define STM32F429_PB7_FUNC_GPIO (STM32_PIN_NO(23) | STM32_PIN_GPIO)
+#define STM32F429_PB7_FUNC_TIM4_CH2 (STM32_PIN_NO(23) | STM32_PIN_AF(2))
+#define STM32F429_PB7_FUNC_I2C1_SDA (STM32_PIN_NO(23) | STM32_PIN_AF(4))
+#define STM32F429_PB7_FUNC_USART1_RX (STM32_PIN_NO(23) | STM32_PIN_AF(7))
+#define STM32F429_PB7_FUNC_FMC_NL (STM32_PIN_NO(23) | STM32_PIN_AF(12))
+#define STM32F429_PB7_FUNC_DCMI_VSYNC (STM32_PIN_NO(23) | STM32_PIN_AF(13))
+#define STM32F429_PB7_FUNC_EVENTOUT (STM32_PIN_NO(23) | STM32_PIN_AF(15))
+#define STM32F429_PB7_FUNC_ANALOG (STM32_PIN_NO(23) | STM32_PIN_ANALOG)
+
+#define STM32F429_PB8_FUNC_GPIO (STM32_PIN_NO(24) | STM32_PIN_GPIO)
+#define STM32F429_PB8_FUNC_TIM4_CH3 (STM32_PIN_NO(24) | STM32_PIN_AF(2))
+#define STM32F429_PB8_FUNC_TIM10_CH1 (STM32_PIN_NO(24) | STM32_PIN_AF(3))
+#define STM32F429_PB8_FUNC_I2C1_SCL (STM32_PIN_NO(24) | STM32_PIN_AF(4))
+#define STM32F429_PB8_FUNC_CAN1_RX (STM32_PIN_NO(24) | STM32_PIN_AF(9))
+#define STM32F429_PB8_FUNC_ETH_MII_TXD3 (STM32_PIN_NO(24) | STM32_PIN_AF(11))
+#define STM32F429_PB8_FUNC_SDIO_D4 (STM32_PIN_NO(24) | STM32_PIN_AF(12))
+#define STM32F429_PB8_FUNC_DCMI_D6 (STM32_PIN_NO(24) | STM32_PIN_AF(13))
+#define STM32F429_PB8_FUNC_LCD_B6 (STM32_PIN_NO(24) | STM32_PIN_AF(14))
+#define STM32F429_PB8_FUNC_EVENTOUT (STM32_PIN_NO(24) | STM32_PIN_AF(15))
+#define STM32F429_PB8_FUNC_ANALOG (STM32_PIN_NO(24) | STM32_PIN_ANALOG)
+
+#define STM32F429_PB9_FUNC_GPIO (STM32_PIN_NO(25) | STM32_PIN_GPIO)
+#define STM32F429_PB9_FUNC_TIM4_CH4 (STM32_PIN_NO(25) | STM32_PIN_AF(2))
+#define STM32F429_PB9_FUNC_TIM11_CH1 (STM32_PIN_NO(25) | STM32_PIN_AF(3))
+#define STM32F429_PB9_FUNC_I2C1_SDA (STM32_PIN_NO(25) | STM32_PIN_AF(4))
+#define STM32F429_PB9_FUNC_SPI2_NSS I2S2_WS (STM32_PIN_NO(25) | STM32_PIN_AF(5))
+#define STM32F429_PB9_FUNC_CAN1_TX (STM32_PIN_NO(25) | STM32_PIN_AF(9))
+#define STM32F429_PB9_FUNC_SDIO_D5 (STM32_PIN_NO(25) | STM32_PIN_AF(12))
+#define STM32F429_PB9_FUNC_DCMI_D7 (STM32_PIN_NO(25) | STM32_PIN_AF(13))
+#define STM32F429_PB9_FUNC_LCD_B7 (STM32_PIN_NO(25) | STM32_PIN_AF(14))
+#define STM32F429_PB9_FUNC_EVENTOUT (STM32_PIN_NO(25) | STM32_PIN_AF(15))
+#define STM32F429_PB9_FUNC_ANALOG (STM32_PIN_NO(25) | STM32_PIN_ANALOG)
+
+#define STM32F429_PB10_FUNC_GPIO (STM32_PIN_NO(26) | STM32_PIN_GPIO)
+#define STM32F429_PB10_FUNC_TIM2_CH3 (STM32_PIN_NO(26) | STM32_PIN_AF(1))
+#define STM32F429_PB10_FUNC_I2C2_SCL (STM32_PIN_NO(26) | STM32_PIN_AF(4))
+#define STM32F429_PB10_FUNC_SPI2_SCK I2S2_CK (STM32_PIN_NO(26) | STM32_PIN_AF(5))
+#define STM32F429_PB10_FUNC_USART3_TX (STM32_PIN_NO(26) | STM32_PIN_AF(7))
+#define STM32F429_PB10_FUNC_OTG_HS_ULPI_D3 (STM32_PIN_NO(26) | STM32_PIN_AF(10))
+#define STM32F429_PB10_FUNC_ETH_MII_RX_ER (STM32_PIN_NO(26) | STM32_PIN_AF(11))
+#define STM32F429_PB10_FUNC_LCD_G4 (STM32_PIN_NO(26) | STM32_PIN_AF(14))
+#define STM32F429_PB10_FUNC_EVENTOUT (STM32_PIN_NO(26) | STM32_PIN_AF(15))
+#define STM32F429_PB10_FUNC_ANALOG (STM32_PIN_NO(26) | STM32_PIN_ANALOG)
+
+#define STM32F429_PB11_FUNC_GPIO (STM32_PIN_NO(27) | STM32_PIN_GPIO)
+#define STM32F429_PB11_FUNC_TIM2_CH4 (STM32_PIN_NO(27) | STM32_PIN_AF(1))
+#define STM32F429_PB11_FUNC_I2C2_SDA (STM32_PIN_NO(27) | STM32_PIN_AF(4))
+#define STM32F429_PB11_FUNC_USART3_RX (STM32_PIN_NO(27) | STM32_PIN_AF(7))
+#define STM32F429_PB11_FUNC_OTG_HS_ULPI_D4 (STM32_PIN_NO(27) | STM32_PIN_AF(10))
+#define STM32F429_PB11_FUNC_ETH_MII_TX_EN ETH_RMII_TX_EN (STM32_PIN_NO(27) | STM32_PIN_AF(11))
+#define STM32F429_PB11_FUNC_LCD_G5 (STM32_PIN_NO(27) | STM32_PIN_AF(14))
+#define STM32F429_PB11_FUNC_EVENTOUT (STM32_PIN_NO(27) | STM32_PIN_AF(15))
+#define STM32F429_PB11_FUNC_ANALOG (STM32_PIN_NO(27) | STM32_PIN_ANALOG)
+
+#define STM32F429_PB12_FUNC_GPIO (STM32_PIN_NO(28) | STM32_PIN_GPIO)
+#define STM32F429_PB12_FUNC_TIM1_BKIN (STM32_PIN_NO(28) | STM32_PIN_AF(1))
+#define STM32F429_PB12_FUNC_I2C2_SMBA (STM32_PIN_NO(28) | STM32_PIN_AF(4))
+#define STM32F429_PB12_FUNC_SPI2_NSS I2S2_WS (STM32_PIN_NO(28) | STM32_PIN_AF(5))
+#define STM32F429_PB12_FUNC_USART3_CK (STM32_PIN_NO(28) | STM32_PIN_AF(7))
+#define STM32F429_PB12_FUNC_CAN2_RX (STM32_PIN_NO(28) | STM32_PIN_AF(9))
+#define STM32F429_PB12_FUNC_OTG_HS_ULPI_D5 (STM32_PIN_NO(28) | STM32_PIN_AF(10))
+#define STM32F429_PB12_FUNC_ETH_MII_TXD0 ETH_RMII_TXD0 (STM32_PIN_NO(28) | STM32_PIN_AF(11))
+#define STM32F429_PB12_FUNC_OTG_HS_ID (STM32_PIN_NO(28) | STM32_PIN_AF(12))
+#define STM32F429_PB12_FUNC_EVENTOUT (STM32_PIN_NO(28) | STM32_PIN_AF(15))
+#define STM32F429_PB12_FUNC_ANALOG (STM32_PIN_NO(28) | STM32_PIN_ANALOG)
+
+#define STM32F429_PB13_FUNC_GPIO (STM32_PIN_NO(29) | STM32_PIN_GPIO)
+#define STM32F429_PB13_FUNC_TIM1_CH1N (STM32_PIN_NO(29) | STM32_PIN_AF(1))
+#define STM32F429_PB13_FUNC_SPI2_SCK I2S2_CK (STM32_PIN_NO(29) | STM32_PIN_AF(5))
+#define STM32F429_PB13_FUNC_USART3_CTS (STM32_PIN_NO(29) | STM32_PIN_AF(7))
+#define STM32F429_PB13_FUNC_CAN2_TX (STM32_PIN_NO(29) | STM32_PIN_AF(9))
+#define STM32F429_PB13_FUNC_OTG_HS_ULPI_D6 (STM32_PIN_NO(29) | STM32_PIN_AF(10))
+#define STM32F429_PB13_FUNC_ETH_MII_TXD1 ETH_RMII_TXD1 (STM32_PIN_NO(29) | STM32_PIN_AF(11))
+#define STM32F429_PB13_FUNC_EVENTOUT (STM32_PIN_NO(29) | STM32_PIN_AF(15))
+#define STM32F429_PB13_FUNC_ANALOG (STM32_PIN_NO(29) | STM32_PIN_ANALOG)
+
+#define STM32F429_PB14_FUNC_GPIO (STM32_PIN_NO(30) | STM32_PIN_GPIO)
+#define STM32F429_PB14_FUNC_TIM1_CH2N (STM32_PIN_NO(30) | STM32_PIN_AF(1))
+#define STM32F429_PB14_FUNC_TIM8_CH2N (STM32_PIN_NO(30) | STM32_PIN_AF(3))
+#define STM32F429_PB14_FUNC_SPI2_MISO (STM32_PIN_NO(30) | STM32_PIN_AF(5))
+#define STM32F429_PB14_FUNC_I2S2EXT_SD (STM32_PIN_NO(30) | STM32_PIN_AF(6))
+#define STM32F429_PB14_FUNC_USART3_RTS (STM32_PIN_NO(30) | STM32_PIN_AF(7))
+#define STM32F429_PB14_FUNC_TIM12_CH1 (STM32_PIN_NO(30) | STM32_PIN_AF(9))
+#define STM32F429_PB14_FUNC_OTG_HS_DM (STM32_PIN_NO(30) | STM32_PIN_AF(12))
+#define STM32F429_PB14_FUNC_EVENTOUT (STM32_PIN_NO(30) | STM32_PIN_AF(15))
+#define STM32F429_PB14_FUNC_ANALOG (STM32_PIN_NO(30) | STM32_PIN_ANALOG)
+
+#define STM32F429_PB15_FUNC_GPIO (STM32_PIN_NO(31) | STM32_PIN_GPIO)
+#define STM32F429_PB15_FUNC_RTC_REFIN (STM32_PIN_NO(31) | STM32_PIN_AF(0))
+#define STM32F429_PB15_FUNC_TIM1_CH3N (STM32_PIN_NO(31) | STM32_PIN_AF(1))
+#define STM32F429_PB15_FUNC_TIM8_CH3N (STM32_PIN_NO(31) | STM32_PIN_AF(3))
+#define STM32F429_PB15_FUNC_SPI2_MOSI I2S2_SD (STM32_PIN_NO(31) | STM32_PIN_AF(5))
+#define STM32F429_PB15_FUNC_TIM12_CH2 (STM32_PIN_NO(31) | STM32_PIN_AF(9))
+#define STM32F429_PB15_FUNC_OTG_HS_DP (STM32_PIN_NO(31) | STM32_PIN_AF(12))
+#define STM32F429_PB15_FUNC_EVENTOUT (STM32_PIN_NO(31) | STM32_PIN_AF(15))
+#define STM32F429_PB15_FUNC_ANALOG (STM32_PIN_NO(31) | STM32_PIN_ANALOG)
+
+
+
+#define STM32F429_PC0_FUNC_GPIO (STM32_PIN_NO(32) | STM32_PIN_GPIO)
+#define STM32F429_PC0_FUNC_OTG_HS_ULPI_STP (STM32_PIN_NO(32) | STM32_PIN_AF(10))
+#define STM32F429_PC0_FUNC_FMC_SDNWE (STM32_PIN_NO(32) | STM32_PIN_AF(12))
+#define STM32F429_PC0_FUNC_EVENTOUT (STM32_PIN_NO(32) | STM32_PIN_AF(15))
+#define STM32F429_PC0_FUNC_ANALOG (STM32_PIN_NO(32) | STM32_PIN_ANALOG)
+
+#define STM32F429_PC1_FUNC_GPIO (STM32_PIN_NO(33) | STM32_PIN_GPIO)
+#define STM32F429_PC1_FUNC_ETH_MDC (STM32_PIN_NO(33) | STM32_PIN_AF(11))
+#define STM32F429_PC1_FUNC_EVENTOUT (STM32_PIN_NO(33) | STM32_PIN_AF(15))
+#define STM32F429_PC1_FUNC_ANALOG (STM32_PIN_NO(33) | STM32_PIN_ANALOG)
+
+#define STM32F429_PC2_FUNC_GPIO (STM32_PIN_NO(34) | STM32_PIN_GPIO)
+#define STM32F429_PC2_FUNC_SPI2_MISO (STM32_PIN_NO(34) | STM32_PIN_AF(5))
+#define STM32F429_PC2_FUNC_I2S2EXT_SD (STM32_PIN_NO(34) | STM32_PIN_AF(6))
+#define STM32F429_PC2_FUNC_OTG_HS_ULPI_DIR (STM32_PIN_NO(34) | STM32_PIN_AF(10))
+#define STM32F429_PC2_FUNC_ETH_MII_TXD2 (STM32_PIN_NO(34) | STM32_PIN_AF(11))
+#define STM32F429_PC2_FUNC_FMC_SDNE0 (STM32_PIN_NO(34) | STM32_PIN_AF(12))
+#define STM32F429_PC2_FUNC_EVENTOUT (STM32_PIN_NO(34) | STM32_PIN_AF(15))
+#define STM32F429_PC2_FUNC_ANALOG (STM32_PIN_NO(34) | STM32_PIN_ANALOG)
+
+#define STM32F429_PC3_FUNC_GPIO (STM32_PIN_NO(35) | STM32_PIN_GPIO)
+#define STM32F429_PC3_FUNC_SPI2_MOSI I2S2_SD (STM32_PIN_NO(35) | STM32_PIN_AF(5))
+#define STM32F429_PC3_FUNC_OTG_HS_ULPI_NXT (STM32_PIN_NO(35) | STM32_PIN_AF(10))
+#define STM32F429_PC3_FUNC_ETH_MII_TX_CLK (STM32_PIN_NO(35) | STM32_PIN_AF(11))
+#define STM32F429_PC3_FUNC_FMC_SDCKE0 (STM32_PIN_NO(35) | STM32_PIN_AF(12))
+#define STM32F429_PC3_FUNC_EVENTOUT (STM32_PIN_NO(35) | STM32_PIN_AF(15))
+#define STM32F429_PC3_FUNC_ANALOG (STM32_PIN_NO(35) | STM32_PIN_ANALOG)
+
+#define STM32F429_PC4_FUNC_GPIO (STM32_PIN_NO(36) | STM32_PIN_GPIO)
+#define STM32F429_PC4_FUNC_ETH_MII_RXD0 ETH_RMII_RXD0 (STM32_PIN_NO(36) | STM32_PIN_AF(11))
+#define STM32F429_PC4_FUNC_EVENTOUT (STM32_PIN_NO(36) | STM32_PIN_AF(15))
+#define STM32F429_PC4_FUNC_ANALOG (STM32_PIN_NO(36) | STM32_PIN_ANALOG)
+
+#define STM32F429_PC5_FUNC_GPIO (STM32_PIN_NO(37) | STM32_PIN_GPIO)
+#define STM32F429_PC5_FUNC_ETH_MII_RXD1 ETH_RMII_RXD1 (STM32_PIN_NO(37) | STM32_PIN_AF(11))
+#define STM32F429_PC5_FUNC_EVENTOUT (STM32_PIN_NO(37) | STM32_PIN_AF(15))
+#define STM32F429_PC5_FUNC_ANALOG (STM32_PIN_NO(37) | STM32_PIN_ANALOG)
+
+#define STM32F429_PC6_FUNC_GPIO (STM32_PIN_NO(38) | STM32_PIN_GPIO)
+#define STM32F429_PC6_FUNC_TIM3_CH1 (STM32_PIN_NO(38) | STM32_PIN_AF(2))
+#define STM32F429_PC6_FUNC_TIM8_CH1 (STM32_PIN_NO(38) | STM32_PIN_AF(3))
+#define STM32F429_PC6_FUNC_I2S2_MCK (STM32_PIN_NO(38) | STM32_PIN_AF(5))
+#define STM32F429_PC6_FUNC_USART6_TX (STM32_PIN_NO(38) | STM32_PIN_AF(8))
+#define STM32F429_PC6_FUNC_SDIO_D6 (STM32_PIN_NO(38) | STM32_PIN_AF(12))
+#define STM32F429_PC6_FUNC_DCMI_D0 (STM32_PIN_NO(38) | STM32_PIN_AF(13))
+#define STM32F429_PC6_FUNC_LCD_HSYNC (STM32_PIN_NO(38) | STM32_PIN_AF(14))
+#define STM32F429_PC6_FUNC_EVENTOUT (STM32_PIN_NO(38) | STM32_PIN_AF(15))
+#define STM32F429_PC6_FUNC_ANALOG (STM32_PIN_NO(38) | STM32_PIN_ANALOG)
+
+#define STM32F429_PC7_FUNC_GPIO (STM32_PIN_NO(39) | STM32_PIN_GPIO)
+#define STM32F429_PC7_FUNC_TIM3_CH2 (STM32_PIN_NO(39) | STM32_PIN_AF(2))
+#define STM32F429_PC7_FUNC_TIM8_CH2 (STM32_PIN_NO(39) | STM32_PIN_AF(3))
+#define STM32F429_PC7_FUNC_I2S3_MCK (STM32_PIN_NO(39) | STM32_PIN_AF(6))
+#define STM32F429_PC7_FUNC_USART6_RX (STM32_PIN_NO(39) | STM32_PIN_AF(8))
+#define STM32F429_PC7_FUNC_SDIO_D7 (STM32_PIN_NO(39) | STM32_PIN_AF(12))
+#define STM32F429_PC7_FUNC_DCMI_D1 (STM32_PIN_NO(39) | STM32_PIN_AF(13))
+#define STM32F429_PC7_FUNC_LCD_G6 (STM32_PIN_NO(39) | STM32_PIN_AF(14))
+#define STM32F429_PC7_FUNC_EVENTOUT (STM32_PIN_NO(39) | STM32_PIN_AF(15))
+#define STM32F429_PC7_FUNC_ANALOG (STM32_PIN_NO(39) | STM32_PIN_ANALOG)
+
+#define STM32F429_PC8_FUNC_GPIO (STM32_PIN_NO(40) | STM32_PIN_GPIO)
+#define STM32F429_PC8_FUNC_TIM3_CH3 (STM32_PIN_NO(40) | STM32_PIN_AF(2))
+#define STM32F429_PC8_FUNC_TIM8_CH3 (STM32_PIN_NO(40) | STM32_PIN_AF(3))
+#define STM32F429_PC8_FUNC_USART6_CK (STM32_PIN_NO(40) | STM32_PIN_AF(8))
+#define STM32F429_PC8_FUNC_SDIO_D0 (STM32_PIN_NO(40) | STM32_PIN_AF(12))
+#define STM32F429_PC8_FUNC_DCMI_D2 (STM32_PIN_NO(40) | STM32_PIN_AF(13))
+#define STM32F429_PC8_FUNC_EVENTOUT (STM32_PIN_NO(40) | STM32_PIN_AF(15))
+#define STM32F429_PC8_FUNC_ANALOG (STM32_PIN_NO(40) | STM32_PIN_ANALOG)
+
+#define STM32F429_PC9_FUNC_GPIO (STM32_PIN_NO(41) | STM32_PIN_GPIO)
+#define STM32F429_PC9_FUNC_MCO2 (STM32_PIN_NO(41) | STM32_PIN_AF(0))
+#define STM32F429_PC9_FUNC_TIM3_CH4 (STM32_PIN_NO(41) | STM32_PIN_AF(2))
+#define STM32F429_PC9_FUNC_TIM8_CH4 (STM32_PIN_NO(41) | STM32_PIN_AF(3))
+#define STM32F429_PC9_FUNC_I2C3_SDA (STM32_PIN_NO(41) | STM32_PIN_AF(4))
+#define STM32F429_PC9_FUNC_I2S_CKIN (STM32_PIN_NO(41) | STM32_PIN_AF(5))
+#define STM32F429_PC9_FUNC_SDIO_D1 (STM32_PIN_NO(41) | STM32_PIN_AF(12))
+#define STM32F429_PC9_FUNC_DCMI_D3 (STM32_PIN_NO(41) | STM32_PIN_AF(13))
+#define STM32F429_PC9_FUNC_EVENTOUT (STM32_PIN_NO(41) | STM32_PIN_AF(15))
+#define STM32F429_PC9_FUNC_ANALOG (STM32_PIN_NO(41) | STM32_PIN_ANALOG)
+
+#define STM32F429_PC10_FUNC_GPIO (STM32_PIN_NO(42) | STM32_PIN_GPIO)
+#define STM32F429_PC10_FUNC_SPI3_SCK I2S3_CK (STM32_PIN_NO(42) | STM32_PIN_AF(6))
+#define STM32F429_PC10_FUNC_USART3_TX (STM32_PIN_NO(42) | STM32_PIN_AF(7))
+#define STM32F429_PC10_FUNC_UART4_TX (STM32_PIN_NO(42) | STM32_PIN_AF(8))
+#define STM32F429_PC10_FUNC_SDIO_D2 (STM32_PIN_NO(42) | STM32_PIN_AF(12))
+#define STM32F429_PC10_FUNC_DCMI_D8 (STM32_PIN_NO(42) | STM32_PIN_AF(13))
+#define STM32F429_PC10_FUNC_LCD_R2 (STM32_PIN_NO(42) | STM32_PIN_AF(14))
+#define STM32F429_PC10_FUNC_EVENTOUT (STM32_PIN_NO(42) | STM32_PIN_AF(15))
+#define STM32F429_PC10_FUNC_ANALOG (STM32_PIN_NO(42) | STM32_PIN_ANALOG)
+
+#define STM32F429_PC11_FUNC_GPIO (STM32_PIN_NO(43) | STM32_PIN_GPIO)
+#define STM32F429_PC11_FUNC_I2S3EXT_SD (STM32_PIN_NO(43) | STM32_PIN_AF(5))
+#define STM32F429_PC11_FUNC_SPI3_MISO (STM32_PIN_NO(43) | STM32_PIN_AF(6))
+#define STM32F429_PC11_FUNC_USART3_RX (STM32_PIN_NO(43) | STM32_PIN_AF(7))
+#define STM32F429_PC11_FUNC_UART4_RX (STM32_PIN_NO(43) | STM32_PIN_AF(8))
+#define STM32F429_PC11_FUNC_SDIO_D3 (STM32_PIN_NO(43) | STM32_PIN_AF(12))
+#define STM32F429_PC11_FUNC_DCMI_D4 (STM32_PIN_NO(43) | STM32_PIN_AF(13))
+#define STM32F429_PC11_FUNC_EVENTOUT (STM32_PIN_NO(43) | STM32_PIN_AF(15))
+#define STM32F429_PC11_FUNC_ANALOG (STM32_PIN_NO(43) | STM32_PIN_ANALOG)
+
+#define STM32F429_PC12_FUNC_GPIO (STM32_PIN_NO(44) | STM32_PIN_GPIO)
+#define STM32F429_PC12_FUNC_SPI3_MOSI I2S3_SD (STM32_PIN_NO(44) | STM32_PIN_AF(6))
+#define STM32F429_PC12_FUNC_USART3_CK (STM32_PIN_NO(44) | STM32_PIN_AF(7))
+#define STM32F429_PC12_FUNC_UART5_TX (STM32_PIN_NO(44) | STM32_PIN_AF(8))
+#define STM32F429_PC12_FUNC_SDIO_CK (STM32_PIN_NO(44) | STM32_PIN_AF(12))
+#define STM32F429_PC12_FUNC_DCMI_D9 (STM32_PIN_NO(44) | STM32_PIN_AF(13))
+#define STM32F429_PC12_FUNC_EVENTOUT (STM32_PIN_NO(44) | STM32_PIN_AF(15))
+#define STM32F429_PC12_FUNC_ANALOG (STM32_PIN_NO(44) | STM32_PIN_ANALOG)
+
+#define STM32F429_PC13_FUNC_GPIO (STM32_PIN_NO(45) | STM32_PIN_GPIO)
+#define STM32F429_PC13_FUNC_EVENTOUT (STM32_PIN_NO(45) | STM32_PIN_AF(15))
+#define STM32F429_PC13_FUNC_ANALOG (STM32_PIN_NO(45) | STM32_PIN_ANALOG)
+
+#define STM32F429_PC14_FUNC_GPIO (STM32_PIN_NO(46) | STM32_PIN_GPIO)
+#define STM32F429_PC14_FUNC_EVENTOUT (STM32_PIN_NO(46) | STM32_PIN_AF(15))
+#define STM32F429_PC14_FUNC_ANALOG (STM32_PIN_NO(46) | STM32_PIN_ANALOG)
+
+#define STM32F429_PC15_FUNC_GPIO (STM32_PIN_NO(47) | STM32_PIN_GPIO)
+#define STM32F429_PC15_FUNC_EVENTOUT (STM32_PIN_NO(47) | STM32_PIN_AF(15))
+#define STM32F429_PC15_FUNC_ANALOG (STM32_PIN_NO(47) | STM32_PIN_ANALOG)
+
+
+
+#define STM32F429_PD0_FUNC_GPIO (STM32_PIN_NO(48) | STM32_PIN_GPIO)
+#define STM32F429_PD0_FUNC_CAN1_RX (STM32_PIN_NO(48) | STM32_PIN_AF(9))
+#define STM32F429_PD0_FUNC_FMC_D2 (STM32_PIN_NO(48) | STM32_PIN_AF(12))
+#define STM32F429_PD0_FUNC_EVENTOUT (STM32_PIN_NO(48) | STM32_PIN_AF(15))
+#define STM32F429_PD0_FUNC_ANALOG (STM32_PIN_NO(48) | STM32_PIN_ANALOG)
+
+#define STM32F429_PD1_FUNC_GPIO (STM32_PIN_NO(49) | STM32_PIN_GPIO)
+#define STM32F429_PD1_FUNC_CAN1_TX (STM32_PIN_NO(49) | STM32_PIN_AF(9))
+#define STM32F429_PD1_FUNC_FMC_D3 (STM32_PIN_NO(49) | STM32_PIN_AF(12))
+#define STM32F429_PD1_FUNC_EVENTOUT (STM32_PIN_NO(49) | STM32_PIN_AF(15))
+#define STM32F429_PD1_FUNC_ANALOG (STM32_PIN_NO(49) | STM32_PIN_ANALOG)
+
+#define STM32F429_PD2_FUNC_GPIO (STM32_PIN_NO(50) | STM32_PIN_GPIO)
+#define STM32F429_PD2_FUNC_TIM3_ETR (STM32_PIN_NO(50) | STM32_PIN_AF(2))
+#define STM32F429_PD2_FUNC_UART5_RX (STM32_PIN_NO(50) | STM32_PIN_AF(8))
+#define STM32F429_PD2_FUNC_SDIO_CMD (STM32_PIN_NO(50) | STM32_PIN_AF(12))
+#define STM32F429_PD2_FUNC_DCMI_D11 (STM32_PIN_NO(50) | STM32_PIN_AF(13))
+#define STM32F429_PD2_FUNC_EVENTOUT (STM32_PIN_NO(50) | STM32_PIN_AF(15))
+#define STM32F429_PD2_FUNC_ANALOG (STM32_PIN_NO(50) | STM32_PIN_ANALOG)
+
+#define STM32F429_PD3_FUNC_GPIO (STM32_PIN_NO(51) | STM32_PIN_GPIO)
+#define STM32F429_PD3_FUNC_SPI2_SCK I2S2_CK (STM32_PIN_NO(51) | STM32_PIN_AF(5))
+#define STM32F429_PD3_FUNC_USART2_CTS (STM32_PIN_NO(51) | STM32_PIN_AF(7))
+#define STM32F429_PD3_FUNC_FMC_CLK (STM32_PIN_NO(51) | STM32_PIN_AF(12))
+#define STM32F429_PD3_FUNC_DCMI_D5 (STM32_PIN_NO(51) | STM32_PIN_AF(13))
+#define STM32F429_PD3_FUNC_LCD_G7 (STM32_PIN_NO(51) | STM32_PIN_AF(14))
+#define STM32F429_PD3_FUNC_EVENTOUT (STM32_PIN_NO(51) | STM32_PIN_AF(15))
+#define STM32F429_PD3_FUNC_ANALOG (STM32_PIN_NO(51) | STM32_PIN_ANALOG)
+
+#define STM32F429_PD4_FUNC_GPIO (STM32_PIN_NO(52) | STM32_PIN_GPIO)
+#define STM32F429_PD4_FUNC_USART2_RTS (STM32_PIN_NO(52) | STM32_PIN_AF(7))
+#define STM32F429_PD4_FUNC_FMC_NOE (STM32_PIN_NO(52) | STM32_PIN_AF(12))
+#define STM32F429_PD4_FUNC_EVENTOUT (STM32_PIN_NO(52) | STM32_PIN_AF(15))
+#define STM32F429_PD4_FUNC_ANALOG (STM32_PIN_NO(52) | STM32_PIN_ANALOG)
+
+#define STM32F429_PD5_FUNC_GPIO (STM32_PIN_NO(53) | STM32_PIN_GPIO)
+#define STM32F429_PD5_FUNC_USART2_TX (STM32_PIN_NO(53) | STM32_PIN_AF(7))
+#define STM32F429_PD5_FUNC_FMC_NWE (STM32_PIN_NO(53) | STM32_PIN_AF(12))
+#define STM32F429_PD5_FUNC_EVENTOUT (STM32_PIN_NO(53) | STM32_PIN_AF(15))
+#define STM32F429_PD5_FUNC_ANALOG (STM32_PIN_NO(53) | STM32_PIN_ANALOG)
+
+#define STM32F429_PD6_FUNC_GPIO (STM32_PIN_NO(54) | STM32_PIN_GPIO)
+#define STM32F429_PD6_FUNC_SPI3_MOSI I2S3_SD (STM32_PIN_NO(54) | STM32_PIN_AF(5))
+#define STM32F429_PD6_FUNC_SAI1_SD_A (STM32_PIN_NO(54) | STM32_PIN_AF(6))
+#define STM32F429_PD6_FUNC_USART2_RX (STM32_PIN_NO(54) | STM32_PIN_AF(7))
+#define STM32F429_PD6_FUNC_FMC_NWAIT (STM32_PIN_NO(54) | STM32_PIN_AF(12))
+#define STM32F429_PD6_FUNC_DCMI_D10 (STM32_PIN_NO(54) | STM32_PIN_AF(13))
+#define STM32F429_PD6_FUNC_LCD_B2 (STM32_PIN_NO(54) | STM32_PIN_AF(14))
+#define STM32F429_PD6_FUNC_EVENTOUT (STM32_PIN_NO(54) | STM32_PIN_AF(15))
+#define STM32F429_PD6_FUNC_ANALOG (STM32_PIN_NO(54) | STM32_PIN_ANALOG)
+
+#define STM32F429_PD7_FUNC_GPIO (STM32_PIN_NO(55) | STM32_PIN_GPIO)
+#define STM32F429_PD7_FUNC_USART2_CK (STM32_PIN_NO(55) | STM32_PIN_AF(7))
+#define STM32F429_PD7_FUNC_FMC_NE1 FMC_NCE2 (STM32_PIN_NO(55) | STM32_PIN_AF(12))
+#define STM32F429_PD7_FUNC_EVENTOUT (STM32_PIN_NO(55) | STM32_PIN_AF(15))
+#define STM32F429_PD7_FUNC_ANALOG (STM32_PIN_NO(55) | STM32_PIN_ANALOG)
+
+#define STM32F429_PD8_FUNC_GPIO (STM32_PIN_NO(56) | STM32_PIN_GPIO)
+#define STM32F429_PD8_FUNC_USART3_TX (STM32_PIN_NO(56) | STM32_PIN_AF(7))
+#define STM32F429_PD8_FUNC_FMC_D13 (STM32_PIN_NO(56) | STM32_PIN_AF(12))
+#define STM32F429_PD8_FUNC_EVENTOUT (STM32_PIN_NO(56) | STM32_PIN_AF(15))
+#define STM32F429_PD8_FUNC_ANALOG (STM32_PIN_NO(56) | STM32_PIN_ANALOG)
+
+#define STM32F429_PD9_FUNC_GPIO (STM32_PIN_NO(57) | STM32_PIN_GPIO)
+#define STM32F429_PD9_FUNC_USART3_RX (STM32_PIN_NO(57) | STM32_PIN_AF(7))
+#define STM32F429_PD9_FUNC_FMC_D14 (STM32_PIN_NO(57) | STM32_PIN_AF(12))
+#define STM32F429_PD9_FUNC_EVENTOUT (STM32_PIN_NO(57) | STM32_PIN_AF(15))
+#define STM32F429_PD9_FUNC_ANALOG (STM32_PIN_NO(57) | STM32_PIN_ANALOG)
+
+#define STM32F429_PD10_FUNC_GPIO (STM32_PIN_NO(58) | STM32_PIN_GPIO)
+#define STM32F429_PD10_FUNC_USART3_CK (STM32_PIN_NO(58) | STM32_PIN_AF(7))
+#define STM32F429_PD10_FUNC_FMC_D15 (STM32_PIN_NO(58) | STM32_PIN_AF(12))
+#define STM32F429_PD10_FUNC_LCD_B3 (STM32_PIN_NO(58) | STM32_PIN_AF(14))
+#define STM32F429_PD10_FUNC_EVENTOUT (STM32_PIN_NO(58) | STM32_PIN_AF(15))
+#define STM32F429_PD10_FUNC_ANALOG (STM32_PIN_NO(58) | STM32_PIN_ANALOG)
+
+#define STM32F429_PD11_FUNC_GPIO (STM32_PIN_NO(59) | STM32_PIN_GPIO)
+#define STM32F429_PD11_FUNC_USART3_CTS (STM32_PIN_NO(59) | STM32_PIN_AF(7))
+#define STM32F429_PD11_FUNC_FMC_A16 (STM32_PIN_NO(59) | STM32_PIN_AF(12))
+#define STM32F429_PD11_FUNC_EVENTOUT (STM32_PIN_NO(59) | STM32_PIN_AF(15))
+#define STM32F429_PD11_FUNC_ANALOG (STM32_PIN_NO(59) | STM32_PIN_ANALOG)
+
+#define STM32F429_PD12_FUNC_GPIO (STM32_PIN_NO(60) | STM32_PIN_GPIO)
+#define STM32F429_PD12_FUNC_TIM4_CH1 (STM32_PIN_NO(60) | STM32_PIN_AF(2))
+#define STM32F429_PD12_FUNC_USART3_RTS (STM32_PIN_NO(60) | STM32_PIN_AF(7))
+#define STM32F429_PD12_FUNC_FMC_A17 (STM32_PIN_NO(60) | STM32_PIN_AF(12))
+#define STM32F429_PD12_FUNC_EVENTOUT (STM32_PIN_NO(60) | STM32_PIN_AF(15))
+#define STM32F429_PD12_FUNC_ANALOG (STM32_PIN_NO(60) | STM32_PIN_ANALOG)
+
+#define STM32F429_PD13_FUNC_GPIO (STM32_PIN_NO(61) | STM32_PIN_GPIO)
+#define STM32F429_PD13_FUNC_TIM4_CH2 (STM32_PIN_NO(61) | STM32_PIN_AF(2))
+#define STM32F429_PD13_FUNC_FMC_A18 (STM32_PIN_NO(61) | STM32_PIN_AF(12))
+#define STM32F429_PD13_FUNC_EVENTOUT (STM32_PIN_NO(61) | STM32_PIN_AF(15))
+#define STM32F429_PD13_FUNC_ANALOG (STM32_PIN_NO(61) | STM32_PIN_ANALOG)
+
+#define STM32F429_PD14_FUNC_GPIO (STM32_PIN_NO(62) | STM32_PIN_GPIO)
+#define STM32F429_PD14_FUNC_TIM4_CH3 (STM32_PIN_NO(62) | STM32_PIN_AF(2))
+#define STM32F429_PD14_FUNC_FMC_D0 (STM32_PIN_NO(62) | STM32_PIN_AF(12))
+#define STM32F429_PD14_FUNC_EVENTOUT (STM32_PIN_NO(62) | STM32_PIN_AF(15))
+#define STM32F429_PD14_FUNC_ANALOG (STM32_PIN_NO(62) | STM32_PIN_ANALOG)
+
+#define STM32F429_PD15_FUNC_GPIO (STM32_PIN_NO(63) | STM32_PIN_GPIO)
+#define STM32F429_PD15_FUNC_TIM4_CH4 (STM32_PIN_NO(63) | STM32_PIN_AF(2))
+#define STM32F429_PD15_FUNC_FMC_D1 (STM32_PIN_NO(63) | STM32_PIN_AF(12))
+#define STM32F429_PD15_FUNC_EVENTOUT (STM32_PIN_NO(63) | STM32_PIN_AF(15))
+#define STM32F429_PD15_FUNC_ANALOG (STM32_PIN_NO(63) | STM32_PIN_ANALOG)
+
+
+
+#define STM32F429_PE0_FUNC_GPIO (STM32_PIN_NO(64) | STM32_PIN_GPIO)
+#define STM32F429_PE0_FUNC_TIM4_ETR (STM32_PIN_NO(64) | STM32_PIN_AF(2))
+#define STM32F429_PE0_FUNC_UART8_RX (STM32_PIN_NO(64) | STM32_PIN_AF(8))
+#define STM32F429_PE0_FUNC_FMC_NBL0 (STM32_PIN_NO(64) | STM32_PIN_AF(12))
+#define STM32F429_PE0_FUNC_DCMI_D2 (STM32_PIN_NO(64) | STM32_PIN_AF(13))
+#define STM32F429_PE0_FUNC_EVENTOUT (STM32_PIN_NO(64) | STM32_PIN_AF(15))
+#define STM32F429_PE0_FUNC_ANALOG (STM32_PIN_NO(64) | STM32_PIN_ANALOG)
+
+#define STM32F429_PE1_FUNC_GPIO (STM32_PIN_NO(65) | STM32_PIN_GPIO)
+#define STM32F429_PE1_FUNC_UART8_TX (STM32_PIN_NO(65) | STM32_PIN_AF(8))
+#define STM32F429_PE1_FUNC_FMC_NBL1 (STM32_PIN_NO(65) | STM32_PIN_AF(12))
+#define STM32F429_PE1_FUNC_DCMI_D3 (STM32_PIN_NO(65) | STM32_PIN_AF(13))
+#define STM32F429_PE1_FUNC_EVENTOUT (STM32_PIN_NO(65) | STM32_PIN_AF(15))
+#define STM32F429_PE1_FUNC_ANALOG (STM32_PIN_NO(65) | STM32_PIN_ANALOG)
+
+#define STM32F429_PE2_FUNC_GPIO (STM32_PIN_NO(66) | STM32_PIN_GPIO)
+#define STM32F429_PE2_FUNC_TRACECLK (STM32_PIN_NO(66) | STM32_PIN_AF(0))
+#define STM32F429_PE2_FUNC_SPI4_SCK (STM32_PIN_NO(66) | STM32_PIN_AF(5))
+#define STM32F429_PE2_FUNC_SAI1_MCLK_A (STM32_PIN_NO(66) | STM32_PIN_AF(6))
+#define STM32F429_PE2_FUNC_ETH_MII_TXD3 (STM32_PIN_NO(66) | STM32_PIN_AF(11))
+#define STM32F429_PE2_FUNC_FMC_A23 (STM32_PIN_NO(66) | STM32_PIN_AF(12))
+#define STM32F429_PE2_FUNC_EVENTOUT (STM32_PIN_NO(66) | STM32_PIN_AF(15))
+#define STM32F429_PE2_FUNC_ANALOG (STM32_PIN_NO(66) | STM32_PIN_ANALOG)
+
+#define STM32F429_PE3_FUNC_GPIO (STM32_PIN_NO(67) | STM32_PIN_GPIO)
+#define STM32F429_PE3_FUNC_TRACED0 (STM32_PIN_NO(67) | STM32_PIN_AF(0))
+#define STM32F429_PE3_FUNC_SAI1_SD_B (STM32_PIN_NO(67) | STM32_PIN_AF(6))
+#define STM32F429_PE3_FUNC_FMC_A19 (STM32_PIN_NO(67) | STM32_PIN_AF(12))
+#define STM32F429_PE3_FUNC_EVENTOUT (STM32_PIN_NO(67) | STM32_PIN_AF(15))
+#define STM32F429_PE3_FUNC_ANALOG (STM32_PIN_NO(67) | STM32_PIN_ANALOG)
+
+#define STM32F429_PE4_FUNC_GPIO (STM32_PIN_NO(68) | STM32_PIN_GPIO)
+#define STM32F429_PE4_FUNC_TRACED1 (STM32_PIN_NO(68) | STM32_PIN_AF(0))
+#define STM32F429_PE4_FUNC_SPI4_NSS (STM32_PIN_NO(68) | STM32_PIN_AF(5))
+#define STM32F429_PE4_FUNC_SAI1_FS_A (STM32_PIN_NO(68) | STM32_PIN_AF(6))
+#define STM32F429_PE4_FUNC_FMC_A20 (STM32_PIN_NO(68) | STM32_PIN_AF(12))
+#define STM32F429_PE4_FUNC_DCMI_D4 (STM32_PIN_NO(68) | STM32_PIN_AF(13))
+#define STM32F429_PE4_FUNC_LCD_B0 (STM32_PIN_NO(68) | STM32_PIN_AF(14))
+#define STM32F429_PE4_FUNC_EVENTOUT (STM32_PIN_NO(68) | STM32_PIN_AF(15))
+#define STM32F429_PE4_FUNC_ANALOG (STM32_PIN_NO(68) | STM32_PIN_ANALOG)
+
+#define STM32F429_PE5_FUNC_GPIO (STM32_PIN_NO(69) | STM32_PIN_GPIO)
+#define STM32F429_PE5_FUNC_TRACED2 (STM32_PIN_NO(69) | STM32_PIN_AF(0))
+#define STM32F429_PE5_FUNC_TIM9_CH1 (STM32_PIN_NO(69) | STM32_PIN_AF(3))
+#define STM32F429_PE5_FUNC_SPI4_MISO (STM32_PIN_NO(69) | STM32_PIN_AF(5))
+#define STM32F429_PE5_FUNC_SAI1_SCK_A (STM32_PIN_NO(69) | STM32_PIN_AF(6))
+#define STM32F429_PE5_FUNC_FMC_A21 (STM32_PIN_NO(69) | STM32_PIN_AF(12))
+#define STM32F429_PE5_FUNC_DCMI_D6 (STM32_PIN_NO(69) | STM32_PIN_AF(13))
+#define STM32F429_PE5_FUNC_LCD_G0 (STM32_PIN_NO(69) | STM32_PIN_AF(14))
+#define STM32F429_PE5_FUNC_EVENTOUT (STM32_PIN_NO(69) | STM32_PIN_AF(15))
+#define STM32F429_PE5_FUNC_ANALOG (STM32_PIN_NO(69) | STM32_PIN_ANALOG)
+
+#define STM32F429_PE6_FUNC_GPIO (STM32_PIN_NO(70) | STM32_PIN_GPIO)
+#define STM32F429_PE6_FUNC_TRACED3 (STM32_PIN_NO(70) | STM32_PIN_AF(0))
+#define STM32F429_PE6_FUNC_TIM9_CH2 (STM32_PIN_NO(70) | STM32_PIN_AF(3))
+#define STM32F429_PE6_FUNC_SPI4_MOSI (STM32_PIN_NO(70) | STM32_PIN_AF(5))
+#define STM32F429_PE6_FUNC_SAI1_SD_A (STM32_PIN_NO(70) | STM32_PIN_AF(6))
+#define STM32F429_PE6_FUNC_FMC_A22 (STM32_PIN_NO(70) | STM32_PIN_AF(12))
+#define STM32F429_PE6_FUNC_DCMI_D7 (STM32_PIN_NO(70) | STM32_PIN_AF(13))
+#define STM32F429_PE6_FUNC_LCD_G1 (STM32_PIN_NO(70) | STM32_PIN_AF(14))
+#define STM32F429_PE6_FUNC_EVENTOUT (STM32_PIN_NO(70) | STM32_PIN_AF(15))
+#define STM32F429_PE6_FUNC_ANALOG (STM32_PIN_NO(70) | STM32_PIN_ANALOG)
+
+#define STM32F429_PE7_FUNC_GPIO (STM32_PIN_NO(71) | STM32_PIN_GPIO)
+#define STM32F429_PE7_FUNC_TIM1_ETR (STM32_PIN_NO(71) | STM32_PIN_AF(1))
+#define STM32F429_PE7_FUNC_UART7_RX (STM32_PIN_NO(71) | STM32_PIN_AF(8))
+#define STM32F429_PE7_FUNC_FMC_D4 (STM32_PIN_NO(71) | STM32_PIN_AF(12))
+#define STM32F429_PE7_FUNC_EVENTOUT (STM32_PIN_NO(71) | STM32_PIN_AF(15))
+#define STM32F429_PE7_FUNC_ANALOG (STM32_PIN_NO(71) | STM32_PIN_ANALOG)
+
+#define STM32F429_PE8_FUNC_GPIO (STM32_PIN_NO(72) | STM32_PIN_GPIO)
+#define STM32F429_PE8_FUNC_TIM1_CH1N (STM32_PIN_NO(72) | STM32_PIN_AF(1))
+#define STM32F429_PE8_FUNC_UART7_TX (STM32_PIN_NO(72) | STM32_PIN_AF(8))
+#define STM32F429_PE8_FUNC_FMC_D5 (STM32_PIN_NO(72) | STM32_PIN_AF(12))
+#define STM32F429_PE8_FUNC_EVENTOUT (STM32_PIN_NO(72) | STM32_PIN_AF(15))
+#define STM32F429_PE8_FUNC_ANALOG (STM32_PIN_NO(72) | STM32_PIN_ANALOG)
+
+#define STM32F429_PE9_FUNC_GPIO (STM32_PIN_NO(73) | STM32_PIN_GPIO)
+#define STM32F429_PE9_FUNC_TIM1_CH1 (STM32_PIN_NO(73) | STM32_PIN_AF(1))
+#define STM32F429_PE9_FUNC_FMC_D6 (STM32_PIN_NO(73) | STM32_PIN_AF(12))
+#define STM32F429_PE9_FUNC_EVENTOUT (STM32_PIN_NO(73) | STM32_PIN_AF(15))
+#define STM32F429_PE9_FUNC_ANALOG (STM32_PIN_NO(73) | STM32_PIN_ANALOG)
+
+#define STM32F429_PE10_FUNC_GPIO (STM32_PIN_NO(74) | STM32_PIN_GPIO)
+#define STM32F429_PE10_FUNC_TIM1_CH2N (STM32_PIN_NO(74) | STM32_PIN_AF(1))
+#define STM32F429_PE10_FUNC_FMC_D7 (STM32_PIN_NO(74) | STM32_PIN_AF(12))
+#define STM32F429_PE10_FUNC_EVENTOUT (STM32_PIN_NO(74) | STM32_PIN_AF(15))
+#define STM32F429_PE10_FUNC_ANALOG (STM32_PIN_NO(74) | STM32_PIN_ANALOG)
+
+#define STM32F429_PE11_FUNC_GPIO (STM32_PIN_NO(75) | STM32_PIN_GPIO)
+#define STM32F429_PE11_FUNC_TIM1_CH2 (STM32_PIN_NO(75) | STM32_PIN_AF(1))
+#define STM32F429_PE11_FUNC_SPI4_NSS (STM32_PIN_NO(75) | STM32_PIN_AF(5))
+#define STM32F429_PE11_FUNC_FMC_D8 (STM32_PIN_NO(75) | STM32_PIN_AF(12))
+#define STM32F429_PE11_FUNC_LCD_G3 (STM32_PIN_NO(75) | STM32_PIN_AF(14))
+#define STM32F429_PE11_FUNC_EVENTOUT (STM32_PIN_NO(75) | STM32_PIN_AF(15))
+#define STM32F429_PE11_FUNC_ANALOG (STM32_PIN_NO(75) | STM32_PIN_ANALOG)
+
+#define STM32F429_PE12_FUNC_GPIO (STM32_PIN_NO(76) | STM32_PIN_GPIO)
+#define STM32F429_PE12_FUNC_TIM1_CH3N (STM32_PIN_NO(76) | STM32_PIN_AF(1))
+#define STM32F429_PE12_FUNC_SPI4_SCK (STM32_PIN_NO(76) | STM32_PIN_AF(5))
+#define STM32F429_PE12_FUNC_FMC_D9 (STM32_PIN_NO(76) | STM32_PIN_AF(12))
+#define STM32F429_PE12_FUNC_LCD_B4 (STM32_PIN_NO(76) | STM32_PIN_AF(14))
+#define STM32F429_PE12_FUNC_EVENTOUT (STM32_PIN_NO(76) | STM32_PIN_AF(15))
+#define STM32F429_PE12_FUNC_ANALOG (STM32_PIN_NO(76) | STM32_PIN_ANALOG)
+
+#define STM32F429_PE13_FUNC_GPIO (STM32_PIN_NO(77) | STM32_PIN_GPIO)
+#define STM32F429_PE13_FUNC_TIM1_CH3 (STM32_PIN_NO(77) | STM32_PIN_AF(1))
+#define STM32F429_PE13_FUNC_SPI4_MISO (STM32_PIN_NO(77) | STM32_PIN_AF(5))
+#define STM32F429_PE13_FUNC_FMC_D10 (STM32_PIN_NO(77) | STM32_PIN_AF(12))
+#define STM32F429_PE13_FUNC_LCD_DE (STM32_PIN_NO(77) | STM32_PIN_AF(14))
+#define STM32F429_PE13_FUNC_EVENTOUT (STM32_PIN_NO(77) | STM32_PIN_AF(15))
+#define STM32F429_PE13_FUNC_ANALOG (STM32_PIN_NO(77) | STM32_PIN_ANALOG)
+
+#define STM32F429_PE14_FUNC_GPIO (STM32_PIN_NO(78) | STM32_PIN_GPIO)
+#define STM32F429_PE14_FUNC_TIM1_CH4 (STM32_PIN_NO(78) | STM32_PIN_AF(1))
+#define STM32F429_PE14_FUNC_SPI4_MOSI (STM32_PIN_NO(78) | STM32_PIN_AF(5))
+#define STM32F429_PE14_FUNC_FMC_D11 (STM32_PIN_NO(78) | STM32_PIN_AF(12))
+#define STM32F429_PE14_FUNC_LCD_CLK (STM32_PIN_NO(78) | STM32_PIN_AF(14))
+#define STM32F429_PE14_FUNC_EVENTOUT (STM32_PIN_NO(78) | STM32_PIN_AF(15))
+#define STM32F429_PE14_FUNC_ANALOG (STM32_PIN_NO(78) | STM32_PIN_ANALOG)
+
+#define STM32F429_PE15_FUNC_GPIO (STM32_PIN_NO(79) | STM32_PIN_GPIO)
+#define STM32F429_PE15_FUNC_TIM1_BKIN (STM32_PIN_NO(79) | STM32_PIN_AF(1))
+#define STM32F429_PE15_FUNC_FMC_D12 (STM32_PIN_NO(79) | STM32_PIN_AF(12))
+#define STM32F429_PE15_FUNC_LCD_R7 (STM32_PIN_NO(79) | STM32_PIN_AF(14))
+#define STM32F429_PE15_FUNC_EVENTOUT (STM32_PIN_NO(79) | STM32_PIN_AF(15))
+#define STM32F429_PE15_FUNC_ANALOG (STM32_PIN_NO(79) | STM32_PIN_ANALOG)
+
+
+
+#define STM32F429_PF0_FUNC_GPIO (STM32_PIN_NO(80) | STM32_PIN_GPIO)
+#define STM32F429_PF0_FUNC_I2C2_SDA (STM32_PIN_NO(80) | STM32_PIN_AF(4))
+#define STM32F429_PF0_FUNC_FMC_A0 (STM32_PIN_NO(80) | STM32_PIN_AF(12))
+#define STM32F429_PF0_FUNC_EVENTOUT (STM32_PIN_NO(80) | STM32_PIN_AF(15))
+#define STM32F429_PF0_FUNC_ANALOG (STM32_PIN_NO(80) | STM32_PIN_ANALOG)
+
+#define STM32F429_PF1_FUNC_GPIO (STM32_PIN_NO(81) | STM32_PIN_GPIO)
+#define STM32F429_PF1_FUNC_I2C2_SCL (STM32_PIN_NO(81) | STM32_PIN_AF(4))
+#define STM32F429_PF1_FUNC_FMC_A1 (STM32_PIN_NO(81) | STM32_PIN_AF(12))
+#define STM32F429_PF1_FUNC_EVENTOUT (STM32_PIN_NO(81) | STM32_PIN_AF(15))
+#define STM32F429_PF1_FUNC_ANALOG (STM32_PIN_NO(81) | STM32_PIN_ANALOG)
+
+#define STM32F429_PF2_FUNC_GPIO (STM32_PIN_NO(82) | STM32_PIN_GPIO)
+#define STM32F429_PF2_FUNC_I2C2_SMBA (STM32_PIN_NO(82) | STM32_PIN_AF(4))
+#define STM32F429_PF2_FUNC_FMC_A2 (STM32_PIN_NO(82) | STM32_PIN_AF(12))
+#define STM32F429_PF2_FUNC_EVENTOUT (STM32_PIN_NO(82) | STM32_PIN_AF(15))
+#define STM32F429_PF2_FUNC_ANALOG (STM32_PIN_NO(82) | STM32_PIN_ANALOG)
+
+#define STM32F429_PF3_FUNC_GPIO (STM32_PIN_NO(83) | STM32_PIN_GPIO)
+#define STM32F429_PF3_FUNC_FMC_A3 (STM32_PIN_NO(83) | STM32_PIN_AF(12))
+#define STM32F429_PF3_FUNC_EVENTOUT (STM32_PIN_NO(83) | STM32_PIN_AF(15))
+#define STM32F429_PF3_FUNC_ANALOG (STM32_PIN_NO(83) | STM32_PIN_ANALOG)
+
+#define STM32F429_PF4_FUNC_GPIO (STM32_PIN_NO(84) | STM32_PIN_GPIO)
+#define STM32F429_PF4_FUNC_FMC_A4 (STM32_PIN_NO(84) | STM32_PIN_AF(12))
+#define STM32F429_PF4_FUNC_EVENTOUT (STM32_PIN_NO(84) | STM32_PIN_AF(15))
+#define STM32F429_PF4_FUNC_ANALOG (STM32_PIN_NO(84) | STM32_PIN_ANALOG)
+
+#define STM32F429_PF5_FUNC_GPIO (STM32_PIN_NO(85) | STM32_PIN_GPIO)
+#define STM32F429_PF5_FUNC_FMC_A5 (STM32_PIN_NO(85) | STM32_PIN_AF(12))
+#define STM32F429_PF5_FUNC_EVENTOUT (STM32_PIN_NO(85) | STM32_PIN_AF(15))
+#define STM32F429_PF5_FUNC_ANALOG (STM32_PIN_NO(85) | STM32_PIN_ANALOG)
+
+#define STM32F429_PF6_FUNC_GPIO (STM32_PIN_NO(86) | STM32_PIN_GPIO)
+#define STM32F429_PF6_FUNC_TIM10_CH1 (STM32_PIN_NO(86) | STM32_PIN_AF(3))
+#define STM32F429_PF6_FUNC_SPI5_NSS (STM32_PIN_NO(86) | STM32_PIN_AF(5))
+#define STM32F429_PF6_FUNC_SAI1_SD_B (STM32_PIN_NO(86) | STM32_PIN_AF(6))
+#define STM32F429_PF6_FUNC_UART7_RX (STM32_PIN_NO(86) | STM32_PIN_AF(8))
+#define STM32F429_PF6_FUNC_FMC_NIORD (STM32_PIN_NO(86) | STM32_PIN_AF(12))
+#define STM32F429_PF6_FUNC_EVENTOUT (STM32_PIN_NO(86) | STM32_PIN_AF(15))
+#define STM32F429_PF6_FUNC_ANALOG (STM32_PIN_NO(86) | STM32_PIN_ANALOG)
+
+#define STM32F429_PF7_FUNC_GPIO (STM32_PIN_NO(87) | STM32_PIN_GPIO)
+#define STM32F429_PF7_FUNC_TIM11_CH1 (STM32_PIN_NO(87) | STM32_PIN_AF(3))
+#define STM32F429_PF7_FUNC_SPI5_SCK (STM32_PIN_NO(87) | STM32_PIN_AF(5))
+#define STM32F429_PF7_FUNC_SAI1_MCLK_B (STM32_PIN_NO(87) | STM32_PIN_AF(6))
+#define STM32F429_PF7_FUNC_UART7_TX (STM32_PIN_NO(87) | STM32_PIN_AF(8))
+#define STM32F429_PF7_FUNC_FMC_NREG (STM32_PIN_NO(87) | STM32_PIN_AF(12))
+#define STM32F429_PF7_FUNC_EVENTOUT (STM32_PIN_NO(87) | STM32_PIN_AF(15))
+#define STM32F429_PF7_FUNC_ANALOG (STM32_PIN_NO(87) | STM32_PIN_ANALOG)
+
+#define STM32F429_PF8_FUNC_GPIO (STM32_PIN_NO(88) | STM32_PIN_GPIO)
+#define STM32F429_PF8_FUNC_SPI5_MISO (STM32_PIN_NO(88) | STM32_PIN_AF(5))
+#define STM32F429_PF8_FUNC_SAI1_SCK_B (STM32_PIN_NO(88) | STM32_PIN_AF(6))
+#define STM32F429_PF8_FUNC_TIM13_CH1 (STM32_PIN_NO(88) | STM32_PIN_AF(9))
+#define STM32F429_PF8_FUNC_FMC_NIOWR (STM32_PIN_NO(88) | STM32_PIN_AF(12))
+#define STM32F429_PF8_FUNC_EVENTOUT (STM32_PIN_NO(88) | STM32_PIN_AF(15))
+#define STM32F429_PF8_FUNC_ANALOG (STM32_PIN_NO(88) | STM32_PIN_ANALOG)
+
+#define STM32F429_PF9_FUNC_GPIO (STM32_PIN_NO(89) | STM32_PIN_GPIO)
+#define STM32F429_PF9_FUNC_SPI5_MOSI (STM32_PIN_NO(89) | STM32_PIN_AF(5))
+#define STM32F429_PF9_FUNC_SAI1_FS_B (STM32_PIN_NO(89) | STM32_PIN_AF(6))
+#define STM32F429_PF9_FUNC_TIM14_CH1 (STM32_PIN_NO(89) | STM32_PIN_AF(9))
+#define STM32F429_PF9_FUNC_FMC_CD (STM32_PIN_NO(89) | STM32_PIN_AF(12))
+#define STM32F429_PF9_FUNC_EVENTOUT (STM32_PIN_NO(89) | STM32_PIN_AF(15))
+#define STM32F429_PF9_FUNC_ANALOG (STM32_PIN_NO(89) | STM32_PIN_ANALOG)
+
+#define STM32F429_PF10_FUNC_GPIO (STM32_PIN_NO(90) | STM32_PIN_GPIO)
+#define STM32F429_PF10_FUNC_FMC_INTR (STM32_PIN_NO(90) | STM32_PIN_AF(12))
+#define STM32F429_PF10_FUNC_DCMI_D11 (STM32_PIN_NO(90) | STM32_PIN_AF(13))
+#define STM32F429_PF10_FUNC_LCD_DE (STM32_PIN_NO(90) | STM32_PIN_AF(14))
+#define STM32F429_PF10_FUNC_EVENTOUT (STM32_PIN_NO(90) | STM32_PIN_AF(15))
+#define STM32F429_PF10_FUNC_ANALOG (STM32_PIN_NO(90) | STM32_PIN_ANALOG)
+
+#define STM32F429_PF11_FUNC_GPIO (STM32_PIN_NO(91) | STM32_PIN_GPIO)
+#define STM32F429_PF11_FUNC_SPI5_MOSI (STM32_PIN_NO(91) | STM32_PIN_AF(5))
+#define STM32F429_PF11_FUNC_FMC_SDNRAS (STM32_PIN_NO(91) | STM32_PIN_AF(12))
+#define STM32F429_PF11_FUNC_DCMI_D12 (STM32_PIN_NO(91) | STM32_PIN_AF(13))
+#define STM32F429_PF11_FUNC_EVENTOUT (STM32_PIN_NO(91) | STM32_PIN_AF(15))
+#define STM32F429_PF11_FUNC_ANALOG (STM32_PIN_NO(91) | STM32_PIN_ANALOG)
+
+#define STM32F429_PF12_FUNC_GPIO (STM32_PIN_NO(92) | STM32_PIN_GPIO)
+#define STM32F429_PF12_FUNC_FMC_A6 (STM32_PIN_NO(92) | STM32_PIN_AF(12))
+#define STM32F429_PF12_FUNC_EVENTOUT (STM32_PIN_NO(92) | STM32_PIN_AF(15))
+#define STM32F429_PF12_FUNC_ANALOG (STM32_PIN_NO(92) | STM32_PIN_ANALOG)
+
+#define STM32F429_PF13_FUNC_GPIO (STM32_PIN_NO(93) | STM32_PIN_GPIO)
+#define STM32F429_PF13_FUNC_FMC_A7 (STM32_PIN_NO(93) | STM32_PIN_AF(12))
+#define STM32F429_PF13_FUNC_EVENTOUT (STM32_PIN_NO(93) | STM32_PIN_AF(15))
+#define STM32F429_PF13_FUNC_ANALOG (STM32_PIN_NO(93) | STM32_PIN_ANALOG)
+
+#define STM32F429_PF14_FUNC_GPIO (STM32_PIN_NO(94) | STM32_PIN_GPIO)
+#define STM32F429_PF14_FUNC_FMC_A8 (STM32_PIN_NO(94) | STM32_PIN_AF(12))
+#define STM32F429_PF14_FUNC_EVENTOUT (STM32_PIN_NO(94) | STM32_PIN_AF(15))
+#define STM32F429_PF14_FUNC_ANALOG (STM32_PIN_NO(94) | STM32_PIN_ANALOG)
+
+#define STM32F429_PF15_FUNC_GPIO (STM32_PIN_NO(95) | STM32_PIN_GPIO)
+#define STM32F429_PF15_FUNC_FMC_A9 (STM32_PIN_NO(95) | STM32_PIN_AF(12))
+#define STM32F429_PF15_FUNC_EVENTOUT (STM32_PIN_NO(95) | STM32_PIN_AF(15))
+#define STM32F429_PF15_FUNC_ANALOG (STM32_PIN_NO(95) | STM32_PIN_ANALOG)
+
+
+
+#define STM32F429_PG0_FUNC_GPIO (STM32_PIN_NO(96) | STM32_PIN_GPIO)
+#define STM32F429_PG0_FUNC_FMC_A10 (STM32_PIN_NO(96) | STM32_PIN_AF(12))
+#define STM32F429_PG0_FUNC_EVENTOUT (STM32_PIN_NO(96) | STM32_PIN_AF(15))
+#define STM32F429_PG0_FUNC_ANALOG (STM32_PIN_NO(96) | STM32_PIN_ANALOG)
+
+#define STM32F429_PG1_FUNC_GPIO (STM32_PIN_NO(97) | STM32_PIN_GPIO)
+#define STM32F429_PG1_FUNC_FMC_A11 (STM32_PIN_NO(97) | STM32_PIN_AF(12))
+#define STM32F429_PG1_FUNC_EVENTOUT (STM32_PIN_NO(97) | STM32_PIN_AF(15))
+#define STM32F429_PG1_FUNC_ANALOG (STM32_PIN_NO(97) | STM32_PIN_ANALOG)
+
+#define STM32F429_PG2_FUNC_GPIO (STM32_PIN_NO(98) | STM32_PIN_GPIO)
+#define STM32F429_PG2_FUNC_FMC_A12 (STM32_PIN_NO(98) | STM32_PIN_AF(12))
+#define STM32F429_PG2_FUNC_EVENTOUT (STM32_PIN_NO(98) | STM32_PIN_AF(15))
+#define STM32F429_PG2_FUNC_ANALOG (STM32_PIN_NO(98) | STM32_PIN_ANALOG)
+
+#define STM32F429_PG3_FUNC_GPIO (STM32_PIN_NO(99) | STM32_PIN_GPIO)
+#define STM32F429_PG3_FUNC_FMC_A13 (STM32_PIN_NO(99) | STM32_PIN_AF(12))
+#define STM32F429_PG3_FUNC_EVENTOUT (STM32_PIN_NO(99) | STM32_PIN_AF(15))
+#define STM32F429_PG3_FUNC_ANALOG (STM32_PIN_NO(99) | STM32_PIN_ANALOG)
+
+#define STM32F429_PG4_FUNC_GPIO (STM32_PIN_NO(100) | STM32_PIN_GPIO)
+#define STM32F429_PG4_FUNC_FMC_A14 FMC_BA0 (STM32_PIN_NO(100) | STM32_PIN_AF(12))
+#define STM32F429_PG4_FUNC_EVENTOUT (STM32_PIN_NO(100) | STM32_PIN_AF(15))
+#define STM32F429_PG4_FUNC_ANALOG (STM32_PIN_NO(100) | STM32_PIN_ANALOG)
+
+#define STM32F429_PG5_FUNC_GPIO (STM32_PIN_NO(101) | STM32_PIN_GPIO)
+#define STM32F429_PG5_FUNC_FMC_A15 FMC_BA1 (STM32_PIN_NO(101) | STM32_PIN_AF(12))
+#define STM32F429_PG5_FUNC_EVENTOUT (STM32_PIN_NO(101) | STM32_PIN_AF(15))
+#define STM32F429_PG5_FUNC_ANALOG (STM32_PIN_NO(101) | STM32_PIN_ANALOG)
+
+#define STM32F429_PG6_FUNC_GPIO (STM32_PIN_NO(102) | STM32_PIN_GPIO)
+#define STM32F429_PG6_FUNC_FMC_INT2 (STM32_PIN_NO(102) | STM32_PIN_AF(12))
+#define STM32F429_PG6_FUNC_DCMI_D12 (STM32_PIN_NO(102) | STM32_PIN_AF(13))
+#define STM32F429_PG6_FUNC_LCD_R7 (STM32_PIN_NO(102) | STM32_PIN_AF(14))
+#define STM32F429_PG6_FUNC_EVENTOUT (STM32_PIN_NO(102) | STM32_PIN_AF(15))
+#define STM32F429_PG6_FUNC_ANALOG (STM32_PIN_NO(102) | STM32_PIN_ANALOG)
+
+#define STM32F429_PG7_FUNC_GPIO (STM32_PIN_NO(103) | STM32_PIN_GPIO)
+#define STM32F429_PG7_FUNC_USART6_CK (STM32_PIN_NO(103) | STM32_PIN_AF(8))
+#define STM32F429_PG7_FUNC_FMC_INT3 (STM32_PIN_NO(103) | STM32_PIN_AF(12))
+#define STM32F429_PG7_FUNC_DCMI_D13 (STM32_PIN_NO(103) | STM32_PIN_AF(13))
+#define STM32F429_PG7_FUNC_LCD_CLK (STM32_PIN_NO(103) | STM32_PIN_AF(14))
+#define STM32F429_PG7_FUNC_EVENTOUT (STM32_PIN_NO(103) | STM32_PIN_AF(15))
+#define STM32F429_PG7_FUNC_ANALOG (STM32_PIN_NO(103) | STM32_PIN_ANALOG)
+
+#define STM32F429_PG8_FUNC_GPIO (STM32_PIN_NO(104) | STM32_PIN_GPIO)
+#define STM32F429_PG8_FUNC_SPI6_NSS (STM32_PIN_NO(104) | STM32_PIN_AF(5))
+#define STM32F429_PG8_FUNC_USART6_RTS (STM32_PIN_NO(104) | STM32_PIN_AF(8))
+#define STM32F429_PG8_FUNC_ETH_PPS_OUT (STM32_PIN_NO(104) | STM32_PIN_AF(11))
+#define STM32F429_PG8_FUNC_FMC_SDCLK (STM32_PIN_NO(104) | STM32_PIN_AF(12))
+#define STM32F429_PG8_FUNC_EVENTOUT (STM32_PIN_NO(104) | STM32_PIN_AF(15))
+#define STM32F429_PG8_FUNC_ANALOG (STM32_PIN_NO(104) | STM32_PIN_ANALOG)
+
+#define STM32F429_PG9_FUNC_GPIO (STM32_PIN_NO(105) | STM32_PIN_GPIO)
+#define STM32F429_PG9_FUNC_USART6_RX (STM32_PIN_NO(105) | STM32_PIN_AF(8))
+#define STM32F429_PG9_FUNC_FMC_NE2 FMC_NCE3 (STM32_PIN_NO(105) | STM32_PIN_AF(12))
+#define STM32F429_PG9_FUNC_DCMI_VSYNC (STM32_PIN_NO(105) | STM32_PIN_AF(13))
+#define STM32F429_PG9_FUNC_EVENTOUT (STM32_PIN_NO(105) | STM32_PIN_AF(15))
+#define STM32F429_PG9_FUNC_ANALOG (STM32_PIN_NO(105) | STM32_PIN_ANALOG)
+
+#define STM32F429_PG10_FUNC_GPIO (STM32_PIN_NO(106) | STM32_PIN_GPIO)
+#define STM32F429_PG10_FUNC_LCD_G3 (STM32_PIN_NO(106) | STM32_PIN_AF(9))
+#define STM32F429_PG10_FUNC_FMC_NCE4_1 FMC_NE3 (STM32_PIN_NO(106) | STM32_PIN_AF(12))
+#define STM32F429_PG10_FUNC_DCMI_D2 (STM32_PIN_NO(106) | STM32_PIN_AF(13))
+#define STM32F429_PG10_FUNC_LCD_B2 (STM32_PIN_NO(106) | STM32_PIN_AF(14))
+#define STM32F429_PG10_FUNC_EVENTOUT (STM32_PIN_NO(106) | STM32_PIN_AF(15))
+#define STM32F429_PG10_FUNC_ANALOG (STM32_PIN_NO(106) | STM32_PIN_ANALOG)
+
+#define STM32F429_PG11_FUNC_GPIO (STM32_PIN_NO(107) | STM32_PIN_GPIO)
+#define STM32F429_PG11_FUNC_ETH_MII_TX_EN ETH_RMII_TX_EN (STM32_PIN_NO(107) | STM32_PIN_AF(11))
+#define STM32F429_PG11_FUNC_FMC_NCE4_2 (STM32_PIN_NO(107) | STM32_PIN_AF(12))
+#define STM32F429_PG11_FUNC_DCMI_D3 (STM32_PIN_NO(107) | STM32_PIN_AF(13))
+#define STM32F429_PG11_FUNC_LCD_B3 (STM32_PIN_NO(107) | STM32_PIN_AF(14))
+#define STM32F429_PG11_FUNC_EVENTOUT (STM32_PIN_NO(107) | STM32_PIN_AF(15))
+#define STM32F429_PG11_FUNC_ANALOG (STM32_PIN_NO(107) | STM32_PIN_ANALOG)
+
+#define STM32F429_PG12_FUNC_GPIO (STM32_PIN_NO(108) | STM32_PIN_GPIO)
+#define STM32F429_PG12_FUNC_SPI6_MISO (STM32_PIN_NO(108) | STM32_PIN_AF(5))
+#define STM32F429_PG12_FUNC_USART6_RTS (STM32_PIN_NO(108) | STM32_PIN_AF(8))
+#define STM32F429_PG12_FUNC_LCD_B4 (STM32_PIN_NO(108) | STM32_PIN_AF(9))
+#define STM32F429_PG12_FUNC_FMC_NE4 (STM32_PIN_NO(108) | STM32_PIN_AF(12))
+#define STM32F429_PG12_FUNC_LCD_B1 (STM32_PIN_NO(108) | STM32_PIN_AF(14))
+#define STM32F429_PG12_FUNC_EVENTOUT (STM32_PIN_NO(108) | STM32_PIN_AF(15))
+#define STM32F429_PG12_FUNC_ANALOG (STM32_PIN_NO(108) | STM32_PIN_ANALOG)
+
+#define STM32F429_PG13_FUNC_GPIO (STM32_PIN_NO(109) | STM32_PIN_GPIO)
+#define STM32F429_PG13_FUNC_SPI6_SCK (STM32_PIN_NO(109) | STM32_PIN_AF(5))
+#define STM32F429_PG13_FUNC_USART6_CTS (STM32_PIN_NO(109) | STM32_PIN_AF(8))
+#define STM32F429_PG13_FUNC_ETH_MII_TXD0 ETH_RMII_TXD0 (STM32_PIN_NO(109) | STM32_PIN_AF(11))
+#define STM32F429_PG13_FUNC_FMC_A24 (STM32_PIN_NO(109) | STM32_PIN_AF(12))
+#define STM32F429_PG13_FUNC_EVENTOUT (STM32_PIN_NO(109) | STM32_PIN_AF(15))
+#define STM32F429_PG13_FUNC_ANALOG (STM32_PIN_NO(109) | STM32_PIN_ANALOG)
+
+#define STM32F429_PG14_FUNC_GPIO (STM32_PIN_NO(110) | STM32_PIN_GPIO)
+#define STM32F429_PG14_FUNC_SPI6_MOSI (STM32_PIN_NO(110) | STM32_PIN_AF(5))
+#define STM32F429_PG14_FUNC_USART6_TX (STM32_PIN_NO(110) | STM32_PIN_AF(8))
+#define STM32F429_PG14_FUNC_ETH_MII_TXD1 ETH_RMII_TXD1 (STM32_PIN_NO(110) | STM32_PIN_AF(11))
+#define STM32F429_PG14_FUNC_FMC_A25 (STM32_PIN_NO(110) | STM32_PIN_AF(12))
+#define STM32F429_PG14_FUNC_EVENTOUT (STM32_PIN_NO(110) | STM32_PIN_AF(15))
+#define STM32F429_PG14_FUNC_ANALOG (STM32_PIN_NO(110) | STM32_PIN_ANALOG)
+
+#define STM32F429_PG15_FUNC_GPIO (STM32_PIN_NO(111) | STM32_PIN_GPIO)
+#define STM32F429_PG15_FUNC_USART6_CTS (STM32_PIN_NO(111) | STM32_PIN_AF(8))
+#define STM32F429_PG15_FUNC_FMC_SDNCAS (STM32_PIN_NO(111) | STM32_PIN_AF(12))
+#define STM32F429_PG15_FUNC_DCMI_D13 (STM32_PIN_NO(111) | STM32_PIN_AF(13))
+#define STM32F429_PG15_FUNC_EVENTOUT (STM32_PIN_NO(111) | STM32_PIN_AF(15))
+#define STM32F429_PG15_FUNC_ANALOG (STM32_PIN_NO(111) | STM32_PIN_ANALOG)
+
+
+
+#define STM32F429_PH0_FUNC_GPIO (STM32_PIN_NO(112) | STM32_PIN_GPIO)
+#define STM32F429_PH0_FUNC_EVENTOUT (STM32_PIN_NO(112) | STM32_PIN_AF(15))
+#define STM32F429_PH0_FUNC_ANALOG (STM32_PIN_NO(112) | STM32_PIN_ANALOG)
+
+#define STM32F429_PH1_FUNC_GPIO (STM32_PIN_NO(113) | STM32_PIN_GPIO)
+#define STM32F429_PH1_FUNC_EVENTOUT (STM32_PIN_NO(113) | STM32_PIN_AF(15))
+#define STM32F429_PH1_FUNC_ANALOG (STM32_PIN_NO(113) | STM32_PIN_ANALOG)
+
+#define STM32F429_PH2_FUNC_GPIO (STM32_PIN_NO(114) | STM32_PIN_GPIO)
+#define STM32F429_PH2_FUNC_ETH_MII_CRS (STM32_PIN_NO(114) | STM32_PIN_AF(11))
+#define STM32F429_PH2_FUNC_FMC_SDCKE0 (STM32_PIN_NO(114) | STM32_PIN_AF(12))
+#define STM32F429_PH2_FUNC_LCD_R0 (STM32_PIN_NO(114) | STM32_PIN_AF(14))
+#define STM32F429_PH2_FUNC_EVENTOUT (STM32_PIN_NO(114) | STM32_PIN_AF(15))
+#define STM32F429_PH2_FUNC_ANALOG (STM32_PIN_NO(114) | STM32_PIN_ANALOG)
+
+#define STM32F429_PH3_FUNC_GPIO (STM32_PIN_NO(115) | STM32_PIN_GPIO)
+#define STM32F429_PH3_FUNC_ETH_MII_COL (STM32_PIN_NO(115) | STM32_PIN_AF(11))
+#define STM32F429_PH3_FUNC_FMC_SDNE0 (STM32_PIN_NO(115) | STM32_PIN_AF(12))
+#define STM32F429_PH3_FUNC_LCD_R1 (STM32_PIN_NO(115) | STM32_PIN_AF(14))
+#define STM32F429_PH3_FUNC_EVENTOUT (STM32_PIN_NO(115) | STM32_PIN_AF(15))
+#define STM32F429_PH3_FUNC_ANALOG (STM32_PIN_NO(115) | STM32_PIN_ANALOG)
+
+#define STM32F429_PH4_FUNC_GPIO (STM32_PIN_NO(116) | STM32_PIN_GPIO)
+#define STM32F429_PH4_FUNC_I2C2_SCL (STM32_PIN_NO(116) | STM32_PIN_AF(4))
+#define STM32F429_PH4_FUNC_OTG_HS_ULPI_NXT (STM32_PIN_NO(116) | STM32_PIN_AF(10))
+#define STM32F429_PH4_FUNC_EVENTOUT (STM32_PIN_NO(116) | STM32_PIN_AF(15))
+#define STM32F429_PH4_FUNC_ANALOG (STM32_PIN_NO(116) | STM32_PIN_ANALOG)
+
+#define STM32F429_PH5_FUNC_GPIO (STM32_PIN_NO(117) | STM32_PIN_GPIO)
+#define STM32F429_PH5_FUNC_I2C2_SDA (STM32_PIN_NO(117) | STM32_PIN_AF(4))
+#define STM32F429_PH5_FUNC_SPI5_NSS (STM32_PIN_NO(117) | STM32_PIN_AF(5))
+#define STM32F429_PH5_FUNC_FMC_SDNWE (STM32_PIN_NO(117) | STM32_PIN_AF(12))
+#define STM32F429_PH5_FUNC_EVENTOUT (STM32_PIN_NO(117) | STM32_PIN_AF(15))
+#define STM32F429_PH5_FUNC_ANALOG (STM32_PIN_NO(117) | STM32_PIN_ANALOG)
+
+#define STM32F429_PH6_FUNC_GPIO (STM32_PIN_NO(118) | STM32_PIN_GPIO)
+#define STM32F429_PH6_FUNC_I2C2_SMBA (STM32_PIN_NO(118) | STM32_PIN_AF(4))
+#define STM32F429_PH6_FUNC_SPI5_SCK (STM32_PIN_NO(118) | STM32_PIN_AF(5))
+#define STM32F429_PH6_FUNC_TIM12_CH1 (STM32_PIN_NO(118) | STM32_PIN_AF(9))
+#define STM32F429_PH6_FUNC_ETH_MII_RXD2 (STM32_PIN_NO(118) | STM32_PIN_AF(11))
+#define STM32F429_PH6_FUNC_FMC_SDNE1 (STM32_PIN_NO(118) | STM32_PIN_AF(12))
+#define STM32F429_PH6_FUNC_DCMI_D8 (STM32_PIN_NO(118) | STM32_PIN_AF(13))
+#define STM32F429_PH6_FUNC_EVENTOUT (STM32_PIN_NO(118) | STM32_PIN_AF(15))
+#define STM32F429_PH6_FUNC_ANALOG (STM32_PIN_NO(118) | STM32_PIN_ANALOG)
+
+#define STM32F429_PH7_FUNC_GPIO (STM32_PIN_NO(119) | STM32_PIN_GPIO)
+#define STM32F429_PH7_FUNC_I2C3_SCL (STM32_PIN_NO(119) | STM32_PIN_AF(4))
+#define STM32F429_PH7_FUNC_SPI5_MISO (STM32_PIN_NO(119) | STM32_PIN_AF(5))
+#define STM32F429_PH7_FUNC_ETH_MII_RXD3 (STM32_PIN_NO(119) | STM32_PIN_AF(11))
+#define STM32F429_PH7_FUNC_FMC_SDCKE1 (STM32_PIN_NO(119) | STM32_PIN_AF(12))
+#define STM32F429_PH7_FUNC_DCMI_D9 (STM32_PIN_NO(119) | STM32_PIN_AF(13))
+#define STM32F429_PH7_FUNC_EVENTOUT (STM32_PIN_NO(119) | STM32_PIN_AF(15))
+#define STM32F429_PH7_FUNC_ANALOG (STM32_PIN_NO(119) | STM32_PIN_ANALOG)
+
+#define STM32F429_PH8_FUNC_GPIO (STM32_PIN_NO(120) | STM32_PIN_GPIO)
+#define STM32F429_PH8_FUNC_I2C3_SDA (STM32_PIN_NO(120) | STM32_PIN_AF(4))
+#define STM32F429_PH8_FUNC_FMC_D16 (STM32_PIN_NO(120) | STM32_PIN_AF(12))
+#define STM32F429_PH8_FUNC_DCMI_HSYNC (STM32_PIN_NO(120) | STM32_PIN_AF(13))
+#define STM32F429_PH8_FUNC_LCD_R2 (STM32_PIN_NO(120) | STM32_PIN_AF(14))
+#define STM32F429_PH8_FUNC_EVENTOUT (STM32_PIN_NO(120) | STM32_PIN_AF(15))
+#define STM32F429_PH8_FUNC_ANALOG (STM32_PIN_NO(120) | STM32_PIN_ANALOG)
+
+#define STM32F429_PH9_FUNC_GPIO (STM32_PIN_NO(121) | STM32_PIN_GPIO)
+#define STM32F429_PH9_FUNC_I2C3_SMBA (STM32_PIN_NO(121) | STM32_PIN_AF(4))
+#define STM32F429_PH9_FUNC_TIM12_CH2 (STM32_PIN_NO(121) | STM32_PIN_AF(9))
+#define STM32F429_PH9_FUNC_FMC_D17 (STM32_PIN_NO(121) | STM32_PIN_AF(12))
+#define STM32F429_PH9_FUNC_DCMI_D0 (STM32_PIN_NO(121) | STM32_PIN_AF(13))
+#define STM32F429_PH9_FUNC_LCD_R3 (STM32_PIN_NO(121) | STM32_PIN_AF(14))
+#define STM32F429_PH9_FUNC_EVENTOUT (STM32_PIN_NO(121) | STM32_PIN_AF(15))
+#define STM32F429_PH9_FUNC_ANALOG (STM32_PIN_NO(121) | STM32_PIN_ANALOG)
+
+#define STM32F429_PH10_FUNC_GPIO (STM32_PIN_NO(122) | STM32_PIN_GPIO)
+#define STM32F429_PH10_FUNC_TIM5_CH1 (STM32_PIN_NO(122) | STM32_PIN_AF(2))
+#define STM32F429_PH10_FUNC_FMC_D18 (STM32_PIN_NO(122) | STM32_PIN_AF(12))
+#define STM32F429_PH10_FUNC_DCMI_D1 (STM32_PIN_NO(122) | STM32_PIN_AF(13))
+#define STM32F429_PH10_FUNC_LCD_R4 (STM32_PIN_NO(122) | STM32_PIN_AF(14))
+#define STM32F429_PH10_FUNC_EVENTOUT (STM32_PIN_NO(122) | STM32_PIN_AF(15))
+#define STM32F429_PH10_FUNC_ANALOG (STM32_PIN_NO(122) | STM32_PIN_ANALOG)
+
+#define STM32F429_PH11_FUNC_GPIO (STM32_PIN_NO(123) | STM32_PIN_GPIO)
+#define STM32F429_PH11_FUNC_TIM5_CH2 (STM32_PIN_NO(123) | STM32_PIN_AF(2))
+#define STM32F429_PH11_FUNC_FMC_D19 (STM32_PIN_NO(123) | STM32_PIN_AF(12))
+#define STM32F429_PH11_FUNC_DCMI_D2 (STM32_PIN_NO(123) | STM32_PIN_AF(13))
+#define STM32F429_PH11_FUNC_LCD_R5 (STM32_PIN_NO(123) | STM32_PIN_AF(14))
+#define STM32F429_PH11_FUNC_EVENTOUT (STM32_PIN_NO(123) | STM32_PIN_AF(15))
+#define STM32F429_PH11_FUNC_ANALOG (STM32_PIN_NO(123) | STM32_PIN_ANALOG)
+
+#define STM32F429_PH12_FUNC_GPIO (STM32_PIN_NO(124) | STM32_PIN_GPIO)
+#define STM32F429_PH12_FUNC_TIM5_CH3 (STM32_PIN_NO(124) | STM32_PIN_AF(2))
+#define STM32F429_PH12_FUNC_FMC_D20 (STM32_PIN_NO(124) | STM32_PIN_AF(12))
+#define STM32F429_PH12_FUNC_DCMI_D3 (STM32_PIN_NO(124) | STM32_PIN_AF(13))
+#define STM32F429_PH12_FUNC_LCD_R6 (STM32_PIN_NO(124) | STM32_PIN_AF(14))
+#define STM32F429_PH12_FUNC_EVENTOUT (STM32_PIN_NO(124) | STM32_PIN_AF(15))
+#define STM32F429_PH12_FUNC_ANALOG (STM32_PIN_NO(124) | STM32_PIN_ANALOG)
+
+#define STM32F429_PH13_FUNC_GPIO (STM32_PIN_NO(125) | STM32_PIN_GPIO)
+#define STM32F429_PH13_FUNC_TIM8_CH1N (STM32_PIN_NO(125) | STM32_PIN_AF(3))
+#define STM32F429_PH13_FUNC_CAN1_TX (STM32_PIN_NO(125) | STM32_PIN_AF(9))
+#define STM32F429_PH13_FUNC_FMC_D21 (STM32_PIN_NO(125) | STM32_PIN_AF(12))
+#define STM32F429_PH13_FUNC_LCD_G2 (STM32_PIN_NO(125) | STM32_PIN_AF(14))
+#define STM32F429_PH13_FUNC_EVENTOUT (STM32_PIN_NO(125) | STM32_PIN_AF(15))
+#define STM32F429_PH13_FUNC_ANALOG (STM32_PIN_NO(125) | STM32_PIN_ANALOG)
+
+#define STM32F429_PH14_FUNC_GPIO (STM32_PIN_NO(126) | STM32_PIN_GPIO)
+#define STM32F429_PH14_FUNC_TIM8_CH2N (STM32_PIN_NO(126) | STM32_PIN_AF(3))
+#define STM32F429_PH14_FUNC_FMC_D22 (STM32_PIN_NO(126) | STM32_PIN_AF(12))
+#define STM32F429_PH14_FUNC_DCMI_D4 (STM32_PIN_NO(126) | STM32_PIN_AF(13))
+#define STM32F429_PH14_FUNC_LCD_G3 (STM32_PIN_NO(126) | STM32_PIN_AF(14))
+#define STM32F429_PH14_FUNC_EVENTOUT (STM32_PIN_NO(126) | STM32_PIN_AF(15))
+#define STM32F429_PH14_FUNC_ANALOG (STM32_PIN_NO(126) | STM32_PIN_ANALOG)
+
+#define STM32F429_PH15_FUNC_GPIO (STM32_PIN_NO(127) | STM32_PIN_GPIO)
+#define STM32F429_PH15_FUNC_TIM8_CH3N (STM32_PIN_NO(127) | STM32_PIN_AF(3))
+#define STM32F429_PH15_FUNC_FMC_D23 (STM32_PIN_NO(127) | STM32_PIN_AF(12))
+#define STM32F429_PH15_FUNC_DCMI_D11 (STM32_PIN_NO(127) | STM32_PIN_AF(13))
+#define STM32F429_PH15_FUNC_LCD_G4 (STM32_PIN_NO(127) | STM32_PIN_AF(14))
+#define STM32F429_PH15_FUNC_EVENTOUT (STM32_PIN_NO(127) | STM32_PIN_AF(15))
+#define STM32F429_PH15_FUNC_ANALOG (STM32_PIN_NO(127) | STM32_PIN_ANALOG)
+
+
+
+#define STM32F429_PI0_FUNC_GPIO (STM32_PIN_NO(128) | STM32_PIN_GPIO)
+#define STM32F429_PI0_FUNC_TIM5_CH4 (STM32_PIN_NO(128) | STM32_PIN_AF(2))
+#define STM32F429_PI0_FUNC_SPI2_NSS I2S2_WS (STM32_PIN_NO(128) | STM32_PIN_AF(5))
+#define STM32F429_PI0_FUNC_FMC_D24 (STM32_PIN_NO(128) | STM32_PIN_AF(12))
+#define STM32F429_PI0_FUNC_DCMI_D13 (STM32_PIN_NO(128) | STM32_PIN_AF(13))
+#define STM32F429_PI0_FUNC_LCD_G5 (STM32_PIN_NO(128) | STM32_PIN_AF(14))
+#define STM32F429_PI0_FUNC_EVENTOUT (STM32_PIN_NO(128) | STM32_PIN_AF(15))
+#define STM32F429_PI0_FUNC_ANALOG (STM32_PIN_NO(128) | STM32_PIN_ANALOG)
+
+#define STM32F429_PI1_FUNC_GPIO (STM32_PIN_NO(129) | STM32_PIN_GPIO)
+#define STM32F429_PI1_FUNC_SPI2_SCK I2S2_CK (STM32_PIN_NO(129) | STM32_PIN_AF(5))
+#define STM32F429_PI1_FUNC_FMC_D25 (STM32_PIN_NO(129) | STM32_PIN_AF(12))
+#define STM32F429_PI1_FUNC_DCMI_D8 (STM32_PIN_NO(129) | STM32_PIN_AF(13))
+#define STM32F429_PI1_FUNC_LCD_G6 (STM32_PIN_NO(129) | STM32_PIN_AF(14))
+#define STM32F429_PI1_FUNC_EVENTOUT (STM32_PIN_NO(129) | STM32_PIN_AF(15))
+#define STM32F429_PI1_FUNC_ANALOG (STM32_PIN_NO(129) | STM32_PIN_ANALOG)
+
+#define STM32F429_PI2_FUNC_GPIO (STM32_PIN_NO(130) | STM32_PIN_GPIO)
+#define STM32F429_PI2_FUNC_TIM8_CH4 (STM32_PIN_NO(130) | STM32_PIN_AF(3))
+#define STM32F429_PI2_FUNC_SPI2_MISO (STM32_PIN_NO(130) | STM32_PIN_AF(5))
+#define STM32F429_PI2_FUNC_I2S2EXT_SD (STM32_PIN_NO(130) | STM32_PIN_AF(6))
+#define STM32F429_PI2_FUNC_FMC_D26 (STM32_PIN_NO(130) | STM32_PIN_AF(12))
+#define STM32F429_PI2_FUNC_DCMI_D9 (STM32_PIN_NO(130) | STM32_PIN_AF(13))
+#define STM32F429_PI2_FUNC_LCD_G7 (STM32_PIN_NO(130) | STM32_PIN_AF(14))
+#define STM32F429_PI2_FUNC_EVENTOUT (STM32_PIN_NO(130) | STM32_PIN_AF(15))
+#define STM32F429_PI2_FUNC_ANALOG (STM32_PIN_NO(130) | STM32_PIN_ANALOG)
+
+#define STM32F429_PI3_FUNC_GPIO (STM32_PIN_NO(131) | STM32_PIN_GPIO)
+#define STM32F429_PI3_FUNC_TIM8_ETR (STM32_PIN_NO(131) | STM32_PIN_AF(3))
+#define STM32F429_PI3_FUNC_SPI2_MOSI I2S2_SD (STM32_PIN_NO(131) | STM32_PIN_AF(5))
+#define STM32F429_PI3_FUNC_FMC_D27 (STM32_PIN_NO(131) | STM32_PIN_AF(12))
+#define STM32F429_PI3_FUNC_DCMI_D10 (STM32_PIN_NO(131) | STM32_PIN_AF(13))
+#define STM32F429_PI3_FUNC_EVENTOUT (STM32_PIN_NO(131) | STM32_PIN_AF(15))
+#define STM32F429_PI3_FUNC_ANALOG (STM32_PIN_NO(131) | STM32_PIN_ANALOG)
+
+#define STM32F429_PI4_FUNC_GPIO (STM32_PIN_NO(132) | STM32_PIN_GPIO)
+#define STM32F429_PI4_FUNC_TIM8_BKIN (STM32_PIN_NO(132) | STM32_PIN_AF(3))
+#define STM32F429_PI4_FUNC_FMC_NBL2 (STM32_PIN_NO(132) | STM32_PIN_AF(12))
+#define STM32F429_PI4_FUNC_DCMI_D5 (STM32_PIN_NO(132) | STM32_PIN_AF(13))
+#define STM32F429_PI4_FUNC_LCD_B4 (STM32_PIN_NO(132) | STM32_PIN_AF(14))
+#define STM32F429_PI4_FUNC_EVENTOUT (STM32_PIN_NO(132) | STM32_PIN_AF(15))
+#define STM32F429_PI4_FUNC_ANALOG (STM32_PIN_NO(132) | STM32_PIN_ANALOG)
+
+#define STM32F429_PI5_FUNC_GPIO (STM32_PIN_NO(133) | STM32_PIN_GPIO)
+#define STM32F429_PI5_FUNC_TIM8_CH1 (STM32_PIN_NO(133) | STM32_PIN_AF(3))
+#define STM32F429_PI5_FUNC_FMC_NBL3 (STM32_PIN_NO(133) | STM32_PIN_AF(12))
+#define STM32F429_PI5_FUNC_DCMI_VSYNC (STM32_PIN_NO(133) | STM32_PIN_AF(13))
+#define STM32F429_PI5_FUNC_LCD_B5 (STM32_PIN_NO(133) | STM32_PIN_AF(14))
+#define STM32F429_PI5_FUNC_EVENTOUT (STM32_PIN_NO(133) | STM32_PIN_AF(15))
+#define STM32F429_PI5_FUNC_ANALOG (STM32_PIN_NO(133) | STM32_PIN_ANALOG)
+
+#define STM32F429_PI6_FUNC_GPIO (STM32_PIN_NO(134) | STM32_PIN_GPIO)
+#define STM32F429_PI6_FUNC_TIM8_CH2 (STM32_PIN_NO(134) | STM32_PIN_AF(3))
+#define STM32F429_PI6_FUNC_FMC_D28 (STM32_PIN_NO(134) | STM32_PIN_AF(12))
+#define STM32F429_PI6_FUNC_DCMI_D6 (STM32_PIN_NO(134) | STM32_PIN_AF(13))
+#define STM32F429_PI6_FUNC_LCD_B6 (STM32_PIN_NO(134) | STM32_PIN_AF(14))
+#define STM32F429_PI6_FUNC_EVENTOUT (STM32_PIN_NO(134) | STM32_PIN_AF(15))
+#define STM32F429_PI6_FUNC_ANALOG (STM32_PIN_NO(134) | STM32_PIN_ANALOG)
+
+#define STM32F429_PI7_FUNC_GPIO (STM32_PIN_NO(135) | STM32_PIN_GPIO)
+#define STM32F429_PI7_FUNC_TIM8_CH3 (STM32_PIN_NO(135) | STM32_PIN_AF(3))
+#define STM32F429_PI7_FUNC_FMC_D29 (STM32_PIN_NO(135) | STM32_PIN_AF(12))
+#define STM32F429_PI7_FUNC_DCMI_D7 (STM32_PIN_NO(135) | STM32_PIN_AF(13))
+#define STM32F429_PI7_FUNC_LCD_B7 (STM32_PIN_NO(135) | STM32_PIN_AF(14))
+#define STM32F429_PI7_FUNC_EVENTOUT (STM32_PIN_NO(135) | STM32_PIN_AF(15))
+#define STM32F429_PI7_FUNC_ANALOG (STM32_PIN_NO(135) | STM32_PIN_ANALOG)
+
+#define STM32F429_PI8_FUNC_GPIO (STM32_PIN_NO(136) | STM32_PIN_GPIO)
+#define STM32F429_PI8_FUNC_EVENTOUT (STM32_PIN_NO(136) | STM32_PIN_AF(15))
+#define STM32F429_PI8_FUNC_ANALOG (STM32_PIN_NO(136) | STM32_PIN_ANALOG)
+
+#define STM32F429_PI9_FUNC_GPIO (STM32_PIN_NO(137) | STM32_PIN_GPIO)
+#define STM32F429_PI9_FUNC_CAN1_RX (STM32_PIN_NO(137) | STM32_PIN_AF(9))
+#define STM32F429_PI9_FUNC_FMC_D30 (STM32_PIN_NO(137) | STM32_PIN_AF(12))
+#define STM32F429_PI9_FUNC_LCD_VSYNC (STM32_PIN_NO(137) | STM32_PIN_AF(14))
+#define STM32F429_PI9_FUNC_EVENTOUT (STM32_PIN_NO(137) | STM32_PIN_AF(15))
+#define STM32F429_PI9_FUNC_ANALOG (STM32_PIN_NO(137) | STM32_PIN_ANALOG)
+
+#define STM32F429_PI10_FUNC_GPIO (STM32_PIN_NO(138) | STM32_PIN_GPIO)
+#define STM32F429_PI10_FUNC_ETH_MII_RX_ER (STM32_PIN_NO(138) | STM32_PIN_AF(11))
+#define STM32F429_PI10_FUNC_FMC_D31 (STM32_PIN_NO(138) | STM32_PIN_AF(12))
+#define STM32F429_PI10_FUNC_LCD_HSYNC (STM32_PIN_NO(138) | STM32_PIN_AF(14))
+#define STM32F429_PI10_FUNC_EVENTOUT (STM32_PIN_NO(138) | STM32_PIN_AF(15))
+#define STM32F429_PI10_FUNC_ANALOG (STM32_PIN_NO(138) | STM32_PIN_ANALOG)
+
+#define STM32F429_PI11_FUNC_GPIO (STM32_PIN_NO(139) | STM32_PIN_GPIO)
+#define STM32F429_PI11_FUNC_OTG_HS_ULPI_DIR (STM32_PIN_NO(139) | STM32_PIN_AF(10))
+#define STM32F429_PI11_FUNC_EVENTOUT (STM32_PIN_NO(139) | STM32_PIN_AF(15))
+#define STM32F429_PI11_FUNC_ANALOG (STM32_PIN_NO(139) | STM32_PIN_ANALOG)
+
+#define STM32F429_PI12_FUNC_GPIO (STM32_PIN_NO(140) | STM32_PIN_GPIO)
+#define STM32F429_PI12_FUNC_LCD_HSYNC (STM32_PIN_NO(140) | STM32_PIN_AF(14))
+#define STM32F429_PI12_FUNC_EVENTOUT (STM32_PIN_NO(140) | STM32_PIN_AF(15))
+#define STM32F429_PI12_FUNC_ANALOG (STM32_PIN_NO(140) | STM32_PIN_ANALOG)
+
+#define STM32F429_PI13_FUNC_GPIO (STM32_PIN_NO(141) | STM32_PIN_GPIO)
+#define STM32F429_PI13_FUNC_LCD_VSYNC (STM32_PIN_NO(141) | STM32_PIN_AF(14))
+#define STM32F429_PI13_FUNC_EVENTOUT (STM32_PIN_NO(141) | STM32_PIN_AF(15))
+#define STM32F429_PI13_FUNC_ANALOG (STM32_PIN_NO(141) | STM32_PIN_ANALOG)
+
+#define STM32F429_PI14_FUNC_GPIO (STM32_PIN_NO(142) | STM32_PIN_GPIO)
+#define STM32F429_PI14_FUNC_LCD_CLK (STM32_PIN_NO(142) | STM32_PIN_AF(14))
+#define STM32F429_PI14_FUNC_EVENTOUT (STM32_PIN_NO(142) | STM32_PIN_AF(15))
+#define STM32F429_PI14_FUNC_ANALOG (STM32_PIN_NO(142) | STM32_PIN_ANALOG)
+
+#define STM32F429_PI15_FUNC_GPIO (STM32_PIN_NO(143) | STM32_PIN_GPIO)
+#define STM32F429_PI15_FUNC_LCD_R0 (STM32_PIN_NO(143) | STM32_PIN_AF(14))
+#define STM32F429_PI15_FUNC_EVENTOUT (STM32_PIN_NO(143) | STM32_PIN_AF(15))
+#define STM32F429_PI15_FUNC_ANALOG (STM32_PIN_NO(143) | STM32_PIN_ANALOG)
+
+
+
+#define STM32F429_PJ0_FUNC_GPIO (STM32_PIN_NO(144) | STM32_PIN_GPIO)
+#define STM32F429_PJ0_FUNC_LCD_R1 (STM32_PIN_NO(144) | STM32_PIN_AF(14))
+#define STM32F429_PJ0_FUNC_EVENTOUT (STM32_PIN_NO(144) | STM32_PIN_AF(15))
+#define STM32F429_PJ0_FUNC_ANALOG (STM32_PIN_NO(144) | STM32_PIN_ANALOG)
+
+#define STM32F429_PJ1_FUNC_GPIO (STM32_PIN_NO(145) | STM32_PIN_GPIO)
+#define STM32F429_PJ1_FUNC_LCD_R2 (STM32_PIN_NO(145) | STM32_PIN_AF(14))
+#define STM32F429_PJ1_FUNC_EVENTOUT (STM32_PIN_NO(145) | STM32_PIN_AF(15))
+#define STM32F429_PJ1_FUNC_ANALOG (STM32_PIN_NO(145) | STM32_PIN_ANALOG)
+
+#define STM32F429_PJ2_FUNC_GPIO (STM32_PIN_NO(146) | STM32_PIN_GPIO)
+#define STM32F429_PJ2_FUNC_LCD_R3 (STM32_PIN_NO(146) | STM32_PIN_AF(14))
+#define STM32F429_PJ2_FUNC_EVENTOUT (STM32_PIN_NO(146) | STM32_PIN_AF(15))
+#define STM32F429_PJ2_FUNC_ANALOG (STM32_PIN_NO(146) | STM32_PIN_ANALOG)
+
+#define STM32F429_PJ3_FUNC_GPIO (STM32_PIN_NO(147) | STM32_PIN_GPIO)
+#define STM32F429_PJ3_FUNC_LCD_R4 (STM32_PIN_NO(147) | STM32_PIN_AF(14))
+#define STM32F429_PJ3_FUNC_EVENTOUT (STM32_PIN_NO(147) | STM32_PIN_AF(15))
+#define STM32F429_PJ3_FUNC_ANALOG (STM32_PIN_NO(147) | STM32_PIN_ANALOG)
+
+#define STM32F429_PJ4_FUNC_GPIO (STM32_PIN_NO(148) | STM32_PIN_GPIO)
+#define STM32F429_PJ4_FUNC_LCD_R5 (STM32_PIN_NO(148) | STM32_PIN_AF(14))
+#define STM32F429_PJ4_FUNC_EVENTOUT (STM32_PIN_NO(148) | STM32_PIN_AF(15))
+#define STM32F429_PJ4_FUNC_ANALOG (STM32_PIN_NO(148) | STM32_PIN_ANALOG)
+
+#define STM32F429_PJ5_FUNC_GPIO (STM32_PIN_NO(149) | STM32_PIN_GPIO)
+#define STM32F429_PJ5_FUNC_LCD_R6 (STM32_PIN_NO(149) | STM32_PIN_AF(14))
+#define STM32F429_PJ5_FUNC_EVENTOUT (STM32_PIN_NO(149) | STM32_PIN_AF(15))
+#define STM32F429_PJ5_FUNC_ANALOG (STM32_PIN_NO(149) | STM32_PIN_ANALOG)
+
+#define STM32F429_PJ6_FUNC_GPIO (STM32_PIN_NO(150) | STM32_PIN_GPIO)
+#define STM32F429_PJ6_FUNC_LCD_R7 (STM32_PIN_NO(150) | STM32_PIN_AF(14))
+#define STM32F429_PJ6_FUNC_EVENTOUT (STM32_PIN_NO(150) | STM32_PIN_AF(15))
+#define STM32F429_PJ6_FUNC_ANALOG (STM32_PIN_NO(150) | STM32_PIN_ANALOG)
+
+#define STM32F429_PJ7_FUNC_GPIO (STM32_PIN_NO(151) | STM32_PIN_GPIO)
+#define STM32F429_PJ7_FUNC_LCD_G0 (STM32_PIN_NO(151) | STM32_PIN_AF(14))
+#define STM32F429_PJ7_FUNC_EVENTOUT (STM32_PIN_NO(151) | STM32_PIN_AF(15))
+#define STM32F429_PJ7_FUNC_ANALOG (STM32_PIN_NO(151) | STM32_PIN_ANALOG)
+
+#define STM32F429_PJ8_FUNC_GPIO (STM32_PIN_NO(152) | STM32_PIN_GPIO)
+#define STM32F429_PJ8_FUNC_LCD_G1 (STM32_PIN_NO(152) | STM32_PIN_AF(14))
+#define STM32F429_PJ8_FUNC_EVENTOUT (STM32_PIN_NO(152) | STM32_PIN_AF(15))
+#define STM32F429_PJ8_FUNC_ANALOG (STM32_PIN_NO(152) | STM32_PIN_ANALOG)
+
+#define STM32F429_PJ9_FUNC_GPIO (STM32_PIN_NO(153) | STM32_PIN_GPIO)
+#define STM32F429_PJ9_FUNC_LCD_G2 (STM32_PIN_NO(153) | STM32_PIN_AF(14))
+#define STM32F429_PJ9_FUNC_EVENTOUT (STM32_PIN_NO(153) | STM32_PIN_AF(15))
+#define STM32F429_PJ9_FUNC_ANALOG (STM32_PIN_NO(153) | STM32_PIN_ANALOG)
+
+#define STM32F429_PJ10_FUNC_GPIO (STM32_PIN_NO(154) | STM32_PIN_GPIO)
+#define STM32F429_PJ10_FUNC_LCD_G3 (STM32_PIN_NO(154) | STM32_PIN_AF(14))
+#define STM32F429_PJ10_FUNC_EVENTOUT (STM32_PIN_NO(154) | STM32_PIN_AF(15))
+#define STM32F429_PJ10_FUNC_ANALOG (STM32_PIN_NO(154) | STM32_PIN_ANALOG)
+
+#define STM32F429_PJ11_FUNC_GPIO (STM32_PIN_NO(155) | STM32_PIN_GPIO)
+#define STM32F429_PJ11_FUNC_LCD_G4 (STM32_PIN_NO(155) | STM32_PIN_AF(14))
+#define STM32F429_PJ11_FUNC_EVENTOUT (STM32_PIN_NO(155) | STM32_PIN_AF(15))
+#define STM32F429_PJ11_FUNC_ANALOG (STM32_PIN_NO(155) | STM32_PIN_ANALOG)
+
+#define STM32F429_PJ12_FUNC_GPIO (STM32_PIN_NO(156) | STM32_PIN_GPIO)
+#define STM32F429_PJ12_FUNC_LCD_B0 (STM32_PIN_NO(156) | STM32_PIN_AF(14))
+#define STM32F429_PJ12_FUNC_EVENTOUT (STM32_PIN_NO(156) | STM32_PIN_AF(15))
+#define STM32F429_PJ12_FUNC_ANALOG (STM32_PIN_NO(156) | STM32_PIN_ANALOG)
+
+#define STM32F429_PJ13_FUNC_GPIO (STM32_PIN_NO(157) | STM32_PIN_GPIO)
+#define STM32F429_PJ13_FUNC_LCD_B1 (STM32_PIN_NO(157) | STM32_PIN_AF(14))
+#define STM32F429_PJ13_FUNC_EVENTOUT (STM32_PIN_NO(157) | STM32_PIN_AF(15))
+#define STM32F429_PJ13_FUNC_ANALOG (STM32_PIN_NO(157) | STM32_PIN_ANALOG)
+
+#define STM32F429_PJ14_FUNC_GPIO (STM32_PIN_NO(158) | STM32_PIN_GPIO)
+#define STM32F429_PJ14_FUNC_LCD_B2 (STM32_PIN_NO(158) | STM32_PIN_AF(14))
+#define STM32F429_PJ14_FUNC_EVENTOUT (STM32_PIN_NO(158) | STM32_PIN_AF(15))
+#define STM32F429_PJ14_FUNC_ANALOG (STM32_PIN_NO(158) | STM32_PIN_ANALOG)
+
+#define STM32F429_PJ15_FUNC_GPIO (STM32_PIN_NO(159) | STM32_PIN_GPIO)
+#define STM32F429_PJ15_FUNC_LCD_B3 (STM32_PIN_NO(159) | STM32_PIN_AF(14))
+#define STM32F429_PJ15_FUNC_EVENTOUT (STM32_PIN_NO(159) | STM32_PIN_AF(15))
+#define STM32F429_PJ15_FUNC_ANALOG (STM32_PIN_NO(159) | STM32_PIN_ANALOG)
+
+
+
+#define STM32F429_PK0_FUNC_GPIO (STM32_PIN_NO(160) | STM32_PIN_GPIO)
+#define STM32F429_PK0_FUNC_LCD_G5 (STM32_PIN_NO(160) | STM32_PIN_AF(14))
+#define STM32F429_PK0_FUNC_EVENTOUT (STM32_PIN_NO(160) | STM32_PIN_AF(15))
+#define STM32F429_PK0_FUNC_ANALOG (STM32_PIN_NO(160) | STM32_PIN_ANALOG)
+
+#define STM32F429_PK1_FUNC_GPIO (STM32_PIN_NO(161) | STM32_PIN_GPIO)
+#define STM32F429_PK1_FUNC_LCD_G6 (STM32_PIN_NO(161) | STM32_PIN_AF(14))
+#define STM32F429_PK1_FUNC_EVENTOUT (STM32_PIN_NO(161) | STM32_PIN_AF(15))
+#define STM32F429_PK1_FUNC_ANALOG (STM32_PIN_NO(161) | STM32_PIN_ANALOG)
+
+#define STM32F429_PK2_FUNC_GPIO (STM32_PIN_NO(162) | STM32_PIN_GPIO)
+#define STM32F429_PK2_FUNC_LCD_G7 (STM32_PIN_NO(162) | STM32_PIN_AF(14))
+#define STM32F429_PK2_FUNC_EVENTOUT (STM32_PIN_NO(162) | STM32_PIN_AF(15))
+#define STM32F429_PK2_FUNC_ANALOG (STM32_PIN_NO(162) | STM32_PIN_ANALOG)
+
+#define STM32F429_PK3_FUNC_GPIO (STM32_PIN_NO(163) | STM32_PIN_GPIO)
+#define STM32F429_PK3_FUNC_LCD_B4 (STM32_PIN_NO(163) | STM32_PIN_AF(14))
+#define STM32F429_PK3_FUNC_EVENTOUT (STM32_PIN_NO(163) | STM32_PIN_AF(15))
+#define STM32F429_PK3_FUNC_ANALOG (STM32_PIN_NO(163) | STM32_PIN_ANALOG)
+
+#define STM32F429_PK4_FUNC_GPIO (STM32_PIN_NO(164) | STM32_PIN_GPIO)
+#define STM32F429_PK4_FUNC_LCD_B5 (STM32_PIN_NO(164) | STM32_PIN_AF(14))
+#define STM32F429_PK4_FUNC_EVENTOUT (STM32_PIN_NO(164) | STM32_PIN_AF(15))
+#define STM32F429_PK4_FUNC_ANALOG (STM32_PIN_NO(164) | STM32_PIN_ANALOG)
+
+#define STM32F429_PK5_FUNC_GPIO (STM32_PIN_NO(165) | STM32_PIN_GPIO)
+#define STM32F429_PK5_FUNC_LCD_B6 (STM32_PIN_NO(165) | STM32_PIN_AF(14))
+#define STM32F429_PK5_FUNC_EVENTOUT (STM32_PIN_NO(165) | STM32_PIN_AF(15))
+#define STM32F429_PK5_FUNC_ANALOG (STM32_PIN_NO(165) | STM32_PIN_ANALOG)
+
+#define STM32F429_PK6_FUNC_GPIO (STM32_PIN_NO(166) | STM32_PIN_GPIO)
+#define STM32F429_PK6_FUNC_LCD_B7 (STM32_PIN_NO(166) | STM32_PIN_AF(14))
+#define STM32F429_PK6_FUNC_EVENTOUT (STM32_PIN_NO(166) | STM32_PIN_AF(15))
+#define STM32F429_PK6_FUNC_ANALOG (STM32_PIN_NO(166) | STM32_PIN_ANALOG)
+
+#define STM32F429_PK7_FUNC_GPIO (STM32_PIN_NO(167) | STM32_PIN_GPIO)
+#define STM32F429_PK7_FUNC_LCD_DE (STM32_PIN_NO(167) | STM32_PIN_AF(14))
+#define STM32F429_PK7_FUNC_EVENTOUT (STM32_PIN_NO(167) | STM32_PIN_AF(15))
+#define STM32F429_PK7_FUNC_ANALOG (STM32_PIN_NO(167) | STM32_PIN_ANALOG)
+
+#endif /* _DT_BINDINGS_STM32F429_PINFUNC_H */