drivers: pwm: stm32: add support for H7 series
Enable PWM support for H7 series. Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
This commit is contained in:
parent
9cd8345e12
commit
4194360cb5
3 changed files with 528 additions and 0 deletions
|
@ -13,33 +13,83 @@
|
|||
*/
|
||||
|
||||
/* Port A */
|
||||
#define STM32H7_PINMUX_FUNC_PA0_PWM2_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA0_PWM5_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA0_USART2_CTS \
|
||||
(STM32_PINMUX_ALT_FUNC_7 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA0_UART4_TX \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PA1_PWM2_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA1_PWM5_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA1_PWM15_CH1N \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA1_USART2_RTS \
|
||||
(STM32_PINMUX_ALT_FUNC_7 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA1_UART4_RX \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_NOPULL)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PA2_PWM2_CH3 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA2_PWM5_CH3 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA2_PWM15_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA2_USART2_TX \
|
||||
(STM32_PINMUX_ALT_FUNC_7 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PA3_PWM2_CH4 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA3_PWM5_CH4 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA3_PWM15_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA3_USART2_RX \
|
||||
(STM32_PINMUX_ALT_FUNC_7 | STM32_PUSHPULL_NOPULL)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PA5_PWM2_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA5_PWM8_CH1N \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PA6_PWM3_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA6_PWM13_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_9 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PA7_PWM1_CH1N \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA7_PWM3_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA7_PWM8_CH1N \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA7_PWM14_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_9 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PA8_PWM1_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA8_I2C3_SCL \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_OPENDRAIN_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PA9_PWM1_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA9_USART1_TX \
|
||||
(STM32_PINMUX_ALT_FUNC_7 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA9_SPI2_SCK \
|
||||
(STM32_PINMUX_ALT_FUNC_5 | STM32_PUSHPULL_NOPULL)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PA10_PWM1_CH3 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA10_USART1_RX \
|
||||
(STM32_PINMUX_ALT_FUNC_7 | STM32_PUSHPULL_NOPULL)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PA11_PWM1_CH4 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA11_UART4_RX \
|
||||
(STM32_PINMUX_ALT_FUNC_6 | STM32_PUSHPULL_NOPULL)
|
||||
#define STM32H7_PINMUX_FUNC_PA11_USART1_CTS \
|
||||
|
@ -50,10 +100,39 @@
|
|||
#define STM32H7_PINMUX_FUNC_PA12_USART1_RTS \
|
||||
(STM32_PINMUX_ALT_FUNC_7 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PA15_PWM2_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PA15_USART4_RTS \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
/* Port B */
|
||||
#define STM32H7_PINMUX_FUNC_PB0_PWM1_CH2N \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB0_PWM3_CH3 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB0_PWM8_CH2N \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PB1_PWM1_CH3N \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB1_PWM3_CH4 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB1_PWM8_CH3N \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PB3_PWM2_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PB4_PWM3_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PB5_PWM3_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PB6_PWM16_CH1N \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB6_PWM4_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB6_I2C1_SCL \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_OPENDRAIN_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB6_I2C4_SCL \
|
||||
|
@ -63,6 +142,10 @@
|
|||
#define STM32H7_PINMUX_FUNC_PB6_LPUART1_TX \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_OPENDRAIN_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PB7_PWM17_CH1N \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB7_PWM4_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB7_I2C1_SDA \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_OPENDRAIN_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB7_I2C4_SDA \
|
||||
|
@ -72,44 +155,87 @@
|
|||
#define STM32H7_PINMUX_FUNC_PB7_LPUART1_RX \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_NOPULL)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PB8_PWM16_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB8_PWM4_CH3 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB8_I2C1_SCL \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_OPENDRAIN_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB8_I2C4_SCL \
|
||||
(STM32_PINMUX_ALT_FUNC_6 | STM32_OPENDRAIN_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PB9_PWM17_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB9_PWM4_CH4 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB9_I2C1_SDA \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_OPENDRAIN_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB9_I2C4_SDA \
|
||||
(STM32_PINMUX_ALT_FUNC_6 | STM32_OPENDRAIN_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PB10_PWM2_CH3 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB10_I2C2_SCL \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_OPENDRAIN_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB10_USART3_TX \
|
||||
(STM32_PINMUX_ALT_FUNC_7 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PB11_PWM2_CH4 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB11_I2C2_SDA \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_OPENDRAIN_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB11_USART3_RX \
|
||||
(STM32_PINMUX_ALT_FUNC_7 | STM32_PUSHPULL_NOPULL)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PB13_PWM1_CH1N \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB12_UART5_RX \
|
||||
(STM32_PINMUX_ALT_FUNC_14 | STM32_OPENDRAIN_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB13_UART5_TX \
|
||||
(STM32_PINMUX_ALT_FUNC_14 | STM32_PUSHPULL_NOPULL)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PB14_PWM1_CH2N \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB14_PWM12_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB14_PWM8_CH2N \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB14_UART3_RTS \
|
||||
(STM32_PINMUX_ALT_FUNC_7 | STM32_PUSHPULL_NOPULL)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PB15_PWM1_CH3N \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB15_PWM12_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PB15_PWM8_CH3N \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
/* Port C */
|
||||
#define STM32H7_PINMUX_FUNC_PC6_PWM3_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PC6_PWM8_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PC6_USART6_TX \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PC7_PWM3_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PC7_PWM8_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PC7_USART6_RX \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_NOPULL)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PC8_PWM3_CH3 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PC8_PWM8_CH3 \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PC8_UART5_RTS \
|
||||
(STM32_PINMUX_ALT_FUNC_7 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PC9_PWM3_CH4 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PC9_PWM8_CH4 \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PC9_I2C3_SDA \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_OPENDRAIN_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PC9_UART5_CTS \
|
||||
|
@ -153,17 +279,25 @@
|
|||
#define STM32H7_PINMUX_FUNC_PD11_USART3_CTS \
|
||||
(STM32_PINMUX_ALT_FUNC_7 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PD12_PWM4_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PD12_I2C4_SCL \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_OPENDRAIN_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PD12_USART3_RTS \
|
||||
(STM32_PINMUX_ALT_FUNC_7 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PD13_PWM4_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PD13_I2C4_SDA \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_OPENDRAIN_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PD14_PWM4_CH3 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PD14_UART8_CTS \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PD15_PWM4_CH4 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PD15_UART8_RTS \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
|
@ -174,18 +308,44 @@
|
|||
#define STM32H7_PINMUX_FUNC_PE1_UART8_TX \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PE4_PWM15_CH1N \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PE5_PWM15_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PE6_PWM15_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PE7_UART7_RX \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_NOPULL)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PE8_PWM1_CH1N \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PE8_UART7_TX \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PE9_PWM1_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PE9_UART7_RTS \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PE10_PWM1_CH2N \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PE10_UART7_CTS \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PE11_PWM1_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PE12_PWM1_CH3N \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PE13_PWM1_CH3 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PE14_PWM1_CH4 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
/* Port F */
|
||||
#define STM32H7_PINMUX_FUNC_PF0_I2C2_SDA \
|
||||
|
@ -194,17 +354,29 @@
|
|||
#define STM32H7_PINMUX_FUNC_PF1_I2C2_SCL \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_OPENDRAIN_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PF6_PWM16_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PF6_UART7_RX \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_NOPULL)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PF7_PWM17_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PF7_UART7_TX \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PF8_PWM16_CH1N \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PF8_UART7_RTS \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PF8_PWM13_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_9 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PF9_PWM17_CH1N \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PF9_UART7_CTS \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PF9_PWM14_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_9 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PF14_I2C4_SCL \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_OPENDRAIN_PULLUP)
|
||||
|
@ -238,27 +410,96 @@
|
|||
#define STM32H7_PINMUX_FUNC_PH5_I2C2_SDA \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_OPENDRAIN_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PH6_PWM12_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PH7_I2C3_SCL \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_OPENDRAIN_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PH8_I2C3_SDA \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_OPENDRAIN_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PH9_PWM12_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PH10_PWM5_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PH11_PWM5_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PH11_I2C4_SCL \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_OPENDRAIN_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PH12_PWM5_CH3 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PH12_I2C4_SDA \
|
||||
(STM32_PINMUX_ALT_FUNC_4 | STM32_OPENDRAIN_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PH13_PWM8_CH1N \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PH14_PWM8_CH2N \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PH13_PWM8_CH3N \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
/* Port I */
|
||||
#define STM32H7_PINMUX_FUNC_PI0_PWM5_CH4 \
|
||||
(STM32_PINMUX_ALT_FUNC_2 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PI2_PWM8_CH4 \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PI5_PWM8_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PI6_PWM8_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PI7_PWM8_CH3 \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
/* Port J */
|
||||
#define STM32H7_PINMUX_FUNC_PJ6_PWM8_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PJ7_PWM8_CH2N \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PJ8_PWM1_CH3N \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PJ8_PWM8_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PJ8_UART8_TX \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PJ9_PWM1_CH3 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PJ9_PWM8_CH1N \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PJ9_UART8_RX \
|
||||
(STM32_PINMUX_ALT_FUNC_8 | STM32_PUSHPULL_NOPULL)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PJ10_PWM1_CH2N \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PJ10_PWM8_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PJ11_PWM1_CH2 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PJ11_PWM8_CH2N \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
/* Port K */
|
||||
#define STM32H7_PINMUX_FUNC_PK0_PWM1_CH1N \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PK0_PWM8_CH3 \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#define STM32H7_PINMUX_FUNC_PK1_PWM1_CH1 \
|
||||
(STM32_PINMUX_ALT_FUNC_1 | STM32_PUSHPULL_PULLUP)
|
||||
#define STM32H7_PINMUX_FUNC_PK1_PWM8_CH3N \
|
||||
(STM32_PINMUX_ALT_FUNC_3 | STM32_PUSHPULL_PULLUP)
|
||||
|
||||
#endif /* ZEPHYR_DRIVERS_PINMUX_STM32_PINMUX_STM32H7_H_ */
|
||||
|
|
|
@ -37,6 +37,40 @@ static u32_t __get_tim_clk(u32_t bus_clk,
|
|||
struct stm32_pclken *pclken = (struct stm32_pclken *)(sub_system);
|
||||
u32_t tim_clk, apb_psc;
|
||||
|
||||
#if defined(CONFIG_SOC_SERIES_STM32H7X)
|
||||
if (pclken->bus == STM32_CLOCK_BUS_APB1) {
|
||||
apb_psc = CONFIG_CLOCK_STM32_D2PPRE1;
|
||||
} else {
|
||||
apb_psc = CONFIG_CLOCK_STM32_D2PPRE2;
|
||||
}
|
||||
|
||||
/*
|
||||
* Depending on pre-scaler selection (TIMPRE), timer clock frequency
|
||||
* is defined as follows:
|
||||
*
|
||||
* - TIMPRE=0: If the APB prescaler (PPRE1, PPRE2) is configured to a
|
||||
* division factor of 1 then the timer clock equals to APB bus clock.
|
||||
* Otherwise the timer clock is set to twice the frequency of APB bus
|
||||
* clock.
|
||||
* - TIMPRE=1: If the APB prescaler (PPRE1, PPRE2) is configured to a
|
||||
* division factor of 1, 2 or 4, then the timer clock equals to HCLK.
|
||||
* Otherwise, the timer clock frequencies are set to four times to
|
||||
* the frequency of the APB domain.
|
||||
*/
|
||||
if (LL_RCC_GetTIMPrescaler() == LL_RCC_TIM_PRESCALER_TWICE) {
|
||||
if (apb_psc == 1U) {
|
||||
tim_clk = bus_clk;
|
||||
} else {
|
||||
tim_clk = bus_clk * 2U;
|
||||
}
|
||||
} else {
|
||||
if (apb_psc == 1U || apb_psc == 2U || apb_psc == 4U) {
|
||||
tim_clk = SystemCoreClock;
|
||||
} else {
|
||||
tim_clk = bus_clk * 4U;
|
||||
}
|
||||
}
|
||||
#else
|
||||
if (pclken->bus == STM32_CLOCK_BUS_APB1) {
|
||||
apb_psc = CONFIG_CLOCK_STM32_APB1_PRESCALER;
|
||||
}
|
||||
|
@ -57,6 +91,7 @@ static u32_t __get_tim_clk(u32_t bus_clk,
|
|||
} else {
|
||||
tim_clk = bus_clk * 2U;
|
||||
}
|
||||
#endif
|
||||
|
||||
return tim_clk;
|
||||
}
|
||||
|
|
|
@ -290,6 +290,258 @@
|
|||
status = "disabled";
|
||||
label = "I2C_4";
|
||||
};
|
||||
|
||||
timers1: timers@40010000 {
|
||||
compatible = "st,stm32-timers";
|
||||
reg = <0x40010000 0x400>;
|
||||
clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00000001>;
|
||||
interrupts = <24 0>, <25 0>, <26 0>, <27 0>;
|
||||
interrupt-names = "brk", "up", "trgcom", "cc";
|
||||
status = "disabled";
|
||||
label = "TIMERS_1";
|
||||
|
||||
pwm {
|
||||
compatible = "st,stm32-pwm";
|
||||
status = "disabled";
|
||||
st,prescaler = <10000>;
|
||||
label = "PWM_1";
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
timers2: timers@40000000 {
|
||||
compatible = "st,stm32-timers";
|
||||
reg = <0x40000000 0x400>;
|
||||
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000001>;
|
||||
interrupts = <28 0>;
|
||||
interrupt-names = "global";
|
||||
status = "disabled";
|
||||
label = "TIMERS_2";
|
||||
|
||||
pwm {
|
||||
compatible = "st,stm32-pwm";
|
||||
status = "disabled";
|
||||
st,prescaler = <0>;
|
||||
label = "PWM_2";
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
timers3: timers@40000400 {
|
||||
compatible = "st,stm32-timers";
|
||||
reg = <0x40000400 0x400>;
|
||||
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000002>;
|
||||
interrupts = <29 0>;
|
||||
interrupt-names = "global";
|
||||
status = "disabled";
|
||||
label = "TIMERS_3";
|
||||
|
||||
pwm {
|
||||
compatible = "st,stm32-pwm";
|
||||
status = "disabled";
|
||||
st,prescaler = <10000>;
|
||||
label = "PWM_3";
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
timers4: timers@40000800 {
|
||||
compatible = "st,stm32-timers";
|
||||
reg = <0x40000800 0x400>;
|
||||
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000004>;
|
||||
interrupts = <30 0>;
|
||||
interrupt-names = "global";
|
||||
status = "disabled";
|
||||
label = "TIMERS_4";
|
||||
|
||||
pwm {
|
||||
compatible = "st,stm32-pwm";
|
||||
status = "disabled";
|
||||
st,prescaler = <10000>;
|
||||
label = "PWM_4";
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
timers5: timers@40000c00 {
|
||||
compatible = "st,stm32-timers";
|
||||
reg = <0x40000c00 0x400>;
|
||||
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000008>;
|
||||
interrupts = <50 0>;
|
||||
interrupt-names = "global";
|
||||
status = "disabled";
|
||||
label = "TIMERS_5";
|
||||
|
||||
pwm {
|
||||
compatible = "st,stm32-pwm";
|
||||
status = "disabled";
|
||||
st,prescaler = <0>;
|
||||
label = "PWM_5";
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
timers6: timers@40001000 {
|
||||
compatible = "st,stm32-timers";
|
||||
reg = <0x40001000 0x400>;
|
||||
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000010>;
|
||||
interrupts = <54 0>;
|
||||
interrupt-names = "global";
|
||||
status = "disabled";
|
||||
label = "TIMERS_6";
|
||||
|
||||
pwm {
|
||||
compatible = "st,stm32-pwm";
|
||||
status = "disabled";
|
||||
st,prescaler = <10000>;
|
||||
label = "PWM_6";
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
timers7: timers@40001400 {
|
||||
compatible = "st,stm32-timers";
|
||||
reg = <0x40001400 0x400>;
|
||||
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000020>;
|
||||
interrupts = <55 0>;
|
||||
interrupt-names = "global";
|
||||
status = "disabled";
|
||||
label = "TIMERS_7";
|
||||
|
||||
pwm {
|
||||
compatible = "st,stm32-pwm";
|
||||
status = "disabled";
|
||||
st,prescaler = <10000>;
|
||||
label = "PWM_7";
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
timers8: timers@40010400 {
|
||||
compatible = "st,stm32-timers";
|
||||
reg = <0x40010400 0x400>;
|
||||
clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00000002>;
|
||||
interrupts = <43 0>, <44 0>, <45 0>, <46 0>;
|
||||
interrupt-names = "brk", "up", "trgcom", "cc";
|
||||
status = "disabled";
|
||||
label = "TIMERS_8";
|
||||
|
||||
pwm {
|
||||
compatible = "st,stm32-pwm";
|
||||
status = "disabled";
|
||||
st,prescaler = <10000>;
|
||||
label = "PWM_8";
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
timers12: timers@40001800 {
|
||||
compatible = "st,stm32-timers";
|
||||
reg = <0x40001800 0x400>;
|
||||
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000040>;
|
||||
interrupts = <43 0>;
|
||||
interrupt-names = "global";
|
||||
status = "disabled";
|
||||
label = "TIMERS_12";
|
||||
|
||||
pwm {
|
||||
compatible = "st,stm32-pwm";
|
||||
status = "disabled";
|
||||
st,prescaler = <10000>;
|
||||
label = "PWM_12";
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
timers13: timers@40001c00 {
|
||||
compatible = "st,stm32-timers";
|
||||
reg = <0x40001c00 0x400>;
|
||||
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000080>;
|
||||
interrupts = <44 0>;
|
||||
interrupt-names = "global";
|
||||
status = "disabled";
|
||||
label = "TIMERS_13";
|
||||
|
||||
pwm {
|
||||
compatible = "st,stm32-pwm";
|
||||
status = "disabled";
|
||||
st,prescaler = <10000>;
|
||||
label = "PWM_13";
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
timers14: timers@40002000 {
|
||||
compatible = "st,stm32-timers";
|
||||
reg = <0x40002000 0x400>;
|
||||
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000100>;
|
||||
interrupts = <45 0>;
|
||||
interrupt-names = "global";
|
||||
status = "disabled";
|
||||
label = "TIMERS_14";
|
||||
|
||||
pwm {
|
||||
compatible = "st,stm32-pwm";
|
||||
status = "disabled";
|
||||
st,prescaler = <10000>;
|
||||
label = "PWM_14";
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
timers15: timers@40014000 {
|
||||
compatible = "st,stm32-timers";
|
||||
reg = <0x40014000 0x400>;
|
||||
clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00010000>;
|
||||
interrupts = <116 0>;
|
||||
interrupt-names = "global";
|
||||
status = "disabled";
|
||||
label = "TIMERS_15";
|
||||
|
||||
pwm {
|
||||
compatible = "st,stm32-pwm";
|
||||
status = "disabled";
|
||||
st,prescaler = <10000>;
|
||||
label = "PWM_15";
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
timers16: timers@40014400 {
|
||||
compatible = "st,stm32-timers";
|
||||
reg = <0x40014400 0x400>;
|
||||
clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00020000>;
|
||||
interrupts = <117 0>;
|
||||
interrupt-names = "global";
|
||||
status = "disabled";
|
||||
label = "TIMERS_16";
|
||||
|
||||
pwm {
|
||||
compatible = "st,stm32-pwm";
|
||||
status = "disabled";
|
||||
st,prescaler = <10000>;
|
||||
label = "PWM_16";
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
timers17: timers@40014800 {
|
||||
compatible = "st,stm32-timers";
|
||||
reg = <0x40014800 0x400>;
|
||||
clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00040000>;
|
||||
interrupts = <118 0>;
|
||||
interrupt-names = "global";
|
||||
status = "disabled";
|
||||
label = "TIMERS_17";
|
||||
|
||||
pwm {
|
||||
compatible = "st,stm32-pwm";
|
||||
status = "disabled";
|
||||
st,prescaler = <10000>;
|
||||
label = "PWM_17";
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue