The information extracted from the device tree is now used to initialize GPIO device instances. Up until now the GPIO device driver made no use of this information. Actual instance creation is still controlled using the Kconfig method. Missing GPIO device tree nodes were added in the process for STM32L073, STM32F413 and STM32F373. The information for gpio instance initialization has already been present for supported STM32 SoCs but remained unused. Changes in the device tree had no effect on GPIO functionality and was essentially redundant. Using the device tree for hardware description seems plausible and less painful than a myriad of defines in some SoC description header. The change was implemented under the assumption that current device trees provide a correct description of the SoCs. Base register addresses and RCC register bits were not explicitly checked for each device. Manual tests were executed on: - NUCLEO-F103RB - STM32F429I-DISCO - STM32F746G-DISCO - NUCLEO-F767ZI Manual tests consisted of blinky on different GPIOs and pins on each board. sanitycheck was executed for all STM32 based boards Fixes: #10629 Signed-off-by: Martin Bertsche <martin72216@googlemail.com>
148 lines
9.3 KiB
C
148 lines
9.3 KiB
C
/* SoC level DTS fixup file */
|
|
|
|
#define CONFIG_NUM_IRQ_PRIO_BITS ARM_V7M_NVIC_E000E100_ARM_NUM_IRQ_PRIORITY_BITS
|
|
|
|
#define CONFIG_GPIO_STM32_GPIOA_BASE_ADDRESS ST_STM32_GPIO_40010800_BASE_ADDRESS
|
|
#define CONFIG_GPIO_STM32_GPIOA_CLOCK_BITS_0 ST_STM32_GPIO_40010800_CLOCK_BITS_0
|
|
#define CONFIG_GPIO_STM32_GPIOA_CLOCK_BUS_0 ST_STM32_GPIO_40010800_CLOCK_BUS_0
|
|
#define CONFIG_GPIO_STM32_GPIOA_CLOCK_CONTROLLER ST_STM32_GPIO_40010800_CLOCK_CONTROLLER
|
|
#define CONFIG_GPIO_STM32_GPIOA_LABEL ST_STM32_GPIO_40010800_LABEL
|
|
#define CONFIG_GPIO_STM32_GPIOA_SIZE ST_STM32_GPIO_40010800_SIZE
|
|
#define CONFIG_GPIO_STM32_GPIOA_CLOCK_BITS ST_STM32_GPIO_40010800_CLOCK_BITS
|
|
#define CONFIG_GPIO_STM32_GPIOA_CLOCK_BUS ST_STM32_GPIO_40010800_CLOCK_BUS
|
|
|
|
#define CONFIG_GPIO_STM32_GPIOB_BASE_ADDRESS ST_STM32_GPIO_40010C00_BASE_ADDRESS
|
|
#define CONFIG_GPIO_STM32_GPIOB_CLOCK_BITS_0 ST_STM32_GPIO_40010C00_CLOCK_BITS_0
|
|
#define CONFIG_GPIO_STM32_GPIOB_CLOCK_BUS_0 ST_STM32_GPIO_40010C00_CLOCK_BUS_0
|
|
#define CONFIG_GPIO_STM32_GPIOB_CLOCK_CONTROLLER ST_STM32_GPIO_40010C00_CLOCK_CONTROLLER
|
|
#define CONFIG_GPIO_STM32_GPIOB_LABEL ST_STM32_GPIO_40010C00_LABEL
|
|
#define CONFIG_GPIO_STM32_GPIOB_SIZE ST_STM32_GPIO_40010C00_SIZE
|
|
#define CONFIG_GPIO_STM32_GPIOB_CLOCK_BITS ST_STM32_GPIO_40010C00_CLOCK_BITS
|
|
#define CONFIG_GPIO_STM32_GPIOB_CLOCK_BUS ST_STM32_GPIO_40010C00_CLOCK_BUS
|
|
|
|
#define CONFIG_GPIO_STM32_GPIOC_BASE_ADDRESS ST_STM32_GPIO_40011000_BASE_ADDRESS
|
|
#define CONFIG_GPIO_STM32_GPIOC_CLOCK_BITS_0 ST_STM32_GPIO_40011000_CLOCK_BITS_0
|
|
#define CONFIG_GPIO_STM32_GPIOC_CLOCK_BUS_0 ST_STM32_GPIO_40011000_CLOCK_BUS_0
|
|
#define CONFIG_GPIO_STM32_GPIOC_CLOCK_CONTROLLER ST_STM32_GPIO_40011000_CLOCK_CONTROLLER
|
|
#define CONFIG_GPIO_STM32_GPIOC_LABEL ST_STM32_GPIO_40011000_LABEL
|
|
#define CONFIG_GPIO_STM32_GPIOC_SIZE ST_STM32_GPIO_40011000_SIZE
|
|
#define CONFIG_GPIO_STM32_GPIOC_CLOCK_BITS ST_STM32_GPIO_40011000_CLOCK_BITS
|
|
#define CONFIG_GPIO_STM32_GPIOC_CLOCK_BUS ST_STM32_GPIO_40011000_CLOCK_BUS
|
|
|
|
#define CONFIG_GPIO_STM32_GPIOD_BASE_ADDRESS ST_STM32_GPIO_40011400_BASE_ADDRESS
|
|
#define CONFIG_GPIO_STM32_GPIOD_CLOCK_BITS_0 ST_STM32_GPIO_40011400_CLOCK_BITS_0
|
|
#define CONFIG_GPIO_STM32_GPIOD_CLOCK_BUS_0 ST_STM32_GPIO_40011400_CLOCK_BUS_0
|
|
#define CONFIG_GPIO_STM32_GPIOD_CLOCK_CONTROLLER ST_STM32_GPIO_40011400_CLOCK_CONTROLLER
|
|
#define CONFIG_GPIO_STM32_GPIOD_LABEL ST_STM32_GPIO_40011400_LABEL
|
|
#define CONFIG_GPIO_STM32_GPIOD_SIZE ST_STM32_GPIO_40011400_SIZE
|
|
#define CONFIG_GPIO_STM32_GPIOD_CLOCK_BITS ST_STM32_GPIO_40011400_CLOCK_BITS
|
|
#define CONFIG_GPIO_STM32_GPIOD_CLOCK_BUS ST_STM32_GPIO_40011400_CLOCK_BUS
|
|
|
|
#define CONFIG_GPIO_STM32_GPIOE_BASE_ADDRESS ST_STM32_GPIO_40011800_BASE_ADDRESS
|
|
#define CONFIG_GPIO_STM32_GPIOE_CLOCK_BITS_0 ST_STM32_GPIO_40011800_CLOCK_BITS_0
|
|
#define CONFIG_GPIO_STM32_GPIOE_CLOCK_BUS_0 ST_STM32_GPIO_40011800_CLOCK_BUS_0
|
|
#define CONFIG_GPIO_STM32_GPIOE_CLOCK_CONTROLLER ST_STM32_GPIO_40011800_CLOCK_CONTROLLER
|
|
#define CONFIG_GPIO_STM32_GPIOE_LABEL ST_STM32_GPIO_40011800_LABEL
|
|
#define CONFIG_GPIO_STM32_GPIOE_SIZE ST_STM32_GPIO_40011800_SIZE
|
|
#define CONFIG_GPIO_STM32_GPIOE_CLOCK_BITS ST_STM32_GPIO_40011800_CLOCK_BITS
|
|
#define CONFIG_GPIO_STM32_GPIOE_CLOCK_BUS ST_STM32_GPIO_40011800_CLOCK_BUS
|
|
|
|
#define CONFIG_GPIO_STM32_GPIOF_BASE_ADDRESS ST_STM32_GPIO_40011C00_BASE_ADDRESS
|
|
#define CONFIG_GPIO_STM32_GPIOF_CLOCK_BITS_0 ST_STM32_GPIO_40011C00_CLOCK_BITS_0
|
|
#define CONFIG_GPIO_STM32_GPIOF_CLOCK_BUS_0 ST_STM32_GPIO_40011C00_CLOCK_BUS_0
|
|
#define CONFIG_GPIO_STM32_GPIOF_CLOCK_CONTROLLER ST_STM32_GPIO_40011C00_CLOCK_CONTROLLER
|
|
#define CONFIG_GPIO_STM32_GPIOF_LABEL ST_STM32_GPIO_40011C00_LABEL
|
|
#define CONFIG_GPIO_STM32_GPIOF_SIZE ST_STM32_GPIO_40011C00_SIZE
|
|
#define CONFIG_GPIO_STM32_GPIOF_CLOCK_BITS ST_STM32_GPIO_40011C00_CLOCK_BITS
|
|
#define CONFIG_GPIO_STM32_GPIOF_CLOCK_BUS ST_STM32_GPIO_40011C00_CLOCK_BUS
|
|
|
|
#define CONFIG_UART_STM32_USART_1_BASE_ADDRESS ST_STM32_USART_40013800_BASE_ADDRESS
|
|
#define CONFIG_UART_STM32_USART_1_BAUD_RATE ST_STM32_USART_40013800_CURRENT_SPEED
|
|
#define CONFIG_UART_STM32_USART_1_IRQ_PRI ST_STM32_USART_40013800_IRQ_0_PRIORITY
|
|
#define CONFIG_UART_STM32_USART_1_NAME ST_STM32_USART_40013800_LABEL
|
|
#define USART_1_IRQ ST_STM32_USART_40013800_IRQ_0
|
|
|
|
#define CONFIG_UART_STM32_USART_2_BASE_ADDRESS ST_STM32_USART_40004400_BASE_ADDRESS
|
|
#define CONFIG_UART_STM32_USART_2_BAUD_RATE ST_STM32_USART_40004400_CURRENT_SPEED
|
|
#define CONFIG_UART_STM32_USART_2_IRQ_PRI ST_STM32_USART_40004400_IRQ_0_PRIORITY
|
|
#define CONFIG_UART_STM32_USART_2_NAME ST_STM32_USART_40004400_LABEL
|
|
#define USART_2_IRQ ST_STM32_USART_40004400_IRQ_0
|
|
|
|
#define CONFIG_UART_STM32_USART_3_BASE_ADDRESS ST_STM32_USART_40004800_BASE_ADDRESS
|
|
#define CONFIG_UART_STM32_USART_3_BAUD_RATE ST_STM32_USART_40004800_CURRENT_SPEED
|
|
#define CONFIG_UART_STM32_USART_3_IRQ_PRI ST_STM32_USART_40004800_IRQ_0_PRIORITY
|
|
#define CONFIG_UART_STM32_USART_3_NAME ST_STM32_USART_40004800_LABEL
|
|
#define USART_3_IRQ ST_STM32_USART_40004800_IRQ_0
|
|
|
|
#define CONFIG_UART_STM32_UART_4_BASE_ADDRESS ST_STM32_UART_40004C00_BASE_ADDRESS
|
|
#define CONFIG_UART_STM32_UART_4_BAUD_RATE ST_STM32_UART_40004C00_CURRENT_SPEED
|
|
#define CONFIG_UART_STM32_UART_4_IRQ_PRI ST_STM32_UART_40004C00_IRQ_0_PRIORITY
|
|
#define CONFIG_UART_STM32_UART_4_NAME ST_STM32_UART_40004C00_LABEL
|
|
#define UART_4_IRQ ST_STM32_UART_40004C00_IRQ_0
|
|
|
|
#define CONFIG_I2C_1_BASE_ADDRESS ST_STM32_I2C_V1_40005400_BASE_ADDRESS
|
|
#define CONFIG_I2C_1_EVENT_IRQ_PRI ST_STM32_I2C_V1_40005400_IRQ_EVENT_PRIORITY
|
|
#define CONFIG_I2C_1_ERROR_IRQ_PRI ST_STM32_I2C_V1_40005400_IRQ_ERROR_PRIORITY
|
|
#define CONFIG_I2C_1_NAME ST_STM32_I2C_V1_40005400_LABEL
|
|
#define CONFIG_I2C_1_EVENT_IRQ ST_STM32_I2C_V1_40005400_IRQ_EVENT
|
|
#define CONFIG_I2C_1_ERROR_IRQ ST_STM32_I2C_V1_40005400_IRQ_ERROR
|
|
#define CONFIG_I2C_1_BITRATE ST_STM32_I2C_V1_40005400_CLOCK_FREQUENCY
|
|
#define CONFIG_I2C_1_CLOCK_BITS ST_STM32_I2C_V1_40005400_CLOCK_BITS
|
|
#define CONFIG_I2C_1_CLOCK_BUS ST_STM32_I2C_V1_40005400_CLOCK_BUS
|
|
|
|
#define CONFIG_I2C_2_BASE_ADDRESS ST_STM32_I2C_V1_40005800_BASE_ADDRESS
|
|
#define CONFIG_I2C_2_EVENT_IRQ_PRI ST_STM32_I2C_V1_40005800_IRQ_EVENT_PRIORITY
|
|
#define CONFIG_I2C_2_ERROR_IRQ_PRI ST_STM32_I2C_V1_40005800_IRQ_ERROR_PRIORITY
|
|
#define CONFIG_I2C_2_NAME ST_STM32_I2C_V1_40005800_LABEL
|
|
#define CONFIG_I2C_2_EVENT_IRQ ST_STM32_I2C_V1_40005800_IRQ_EVENT
|
|
#define CONFIG_I2C_2_ERROR_IRQ ST_STM32_I2C_V1_40005800_IRQ_ERROR
|
|
#define CONFIG_I2C_2_BITRATE ST_STM32_I2C_V1_40005800_CLOCK_FREQUENCY
|
|
#define CONFIG_I2C_2_CLOCK_BITS ST_STM32_I2C_V1_40005800_CLOCK_BITS
|
|
#define CONFIG_I2C_2_CLOCK_BUS ST_STM32_I2C_V1_40005800_CLOCK_BUS
|
|
|
|
#define CONFIG_SPI_1_BASE_ADDRESS ST_STM32_SPI_40013000_BASE_ADDRESS
|
|
#define CONFIG_SPI_1_IRQ_PRI ST_STM32_SPI_40013000_IRQ_0_PRIORITY
|
|
#define CONFIG_SPI_1_NAME ST_STM32_SPI_40013000_LABEL
|
|
#define CONFIG_SPI_1_IRQ ST_STM32_SPI_40013000_IRQ_0
|
|
|
|
#define CONFIG_SPI_2_BASE_ADDRESS ST_STM32_SPI_40003800_BASE_ADDRESS
|
|
#define CONFIG_SPI_2_IRQ_PRI ST_STM32_SPI_40003800_IRQ_0_PRIORITY
|
|
#define CONFIG_SPI_2_NAME ST_STM32_SPI_40003800_LABEL
|
|
#define CONFIG_SPI_2_IRQ ST_STM32_SPI_40003800_IRQ_0
|
|
|
|
#define CONFIG_SPI_3_BASE_ADDRESS ST_STM32_SPI_40003C00_BASE_ADDRESS
|
|
#define CONFIG_SPI_3_IRQ_PRI ST_STM32_SPI_40003C00_IRQ_0_PRIORITY
|
|
#define CONFIG_SPI_3_NAME ST_STM32_SPI_40003C00_LABEL
|
|
#define CONFIG_SPI_3_IRQ ST_STM32_SPI_40003C00_IRQ_0
|
|
|
|
#define CONFIG_USB_BASE_ADDRESS ST_STM32_USB_40005C00_BASE_ADDRESS
|
|
#define CONFIG_USB_IRQ ST_STM32_USB_40005C00_IRQ_USB
|
|
#define CONFIG_USB_IRQ_PRI ST_STM32_USB_40005C00_IRQ_USB_PRIORITY
|
|
#define CONFIG_USB_NUM_BIDIR_ENDPOINTS ST_STM32_USB_40005C00_NUM_BIDIR_ENDPOINTS
|
|
#define CONFIG_USB_RAM_SIZE ST_STM32_USB_40005C00_RAM_SIZE
|
|
|
|
#define CONFIG_PWM_STM32_1_DEV_NAME ST_STM32_PWM_40012C00_PWM_LABEL
|
|
#define CONFIG_PWM_STM32_1_PRESCALER ST_STM32_PWM_40012C00_PWM_ST_PRESCALER
|
|
|
|
#define CONFIG_PWM_STM32_2_DEV_NAME ST_STM32_PWM_40000000_PWM_LABEL
|
|
#define CONFIG_PWM_STM32_2_PRESCALER ST_STM32_PWM_40000000_PWM_ST_PRESCALER
|
|
|
|
#define CONFIG_PWM_STM32_3_DEV_NAME ST_STM32_PWM_40000400_PWM_LABEL
|
|
#define CONFIG_PWM_STM32_3_PRESCALER ST_STM32_PWM_40000400_PWM_ST_PRESCALER
|
|
|
|
#define CONFIG_PWM_STM32_4_DEV_NAME ST_STM32_PWM_40000800_PWM_LABEL
|
|
#define CONFIG_PWM_STM32_4_PRESCALER ST_STM32_PWM_40000800_PWM_ST_PRESCALER
|
|
|
|
#define CONFIG_PWM_STM32_5_DEV_NAME ST_STM32_PWM_40000C00_PWM_LABEL
|
|
#define CONFIG_PWM_STM32_5_PRESCALER ST_STM32_PWM_40000C00_PWM_ST_PRESCALER
|
|
|
|
#define CONFIG_PWM_STM32_6_DEV_NAME ST_STM32_PWM_40001000_PWM_LABEL
|
|
#define CONFIG_PWM_STM32_6_PRESCALER ST_STM32_PWM_40001000_PWM_ST_PRESCALER
|
|
|
|
#define CONFIG_PWM_STM32_7_DEV_NAME ST_STM32_PWM_40001400_PWM_LABEL
|
|
#define CONFIG_PWM_STM32_7_PRESCALER ST_STM32_PWM_40001400_PWM_ST_PRESCALER
|
|
|
|
#define CONFIG_PWM_STM32_8_DEV_NAME ST_STM32_PWM_40013400_PWM_LABEL
|
|
#define CONFIG_PWM_STM32_8_PRESCALER ST_STM32_PWM_40013400_PWM_ST_PRESCALER
|
|
|
|
/* End of SoC Level DTS fixup file */
|