// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) Maxime Coquelin 2015
* Copyright (C) STMicroelectronics 2017
* Author: Maxime Coquelin <mcoquelin.stm32@gmail.com>
*/
#include <linux/init.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include "pinctrl-stm32.h"
static const struct stm32_desc_pin stm32f429_pins[] = {
STM32_PIN(
PINCTRL_PIN(0, "PA0"),
STM32_FUNCTION(0, "GPIOA0"),
STM32_FUNCTION(2, "TIM2_CH1 TIM2_ETR"),
STM32_FUNCTION(3, "TIM5_CH1"),
STM32_FUNCTION(4, "TIM8_ETR"),
STM32_FUNCTION(8, "USART2_CTS"),
STM32_FUNCTION(9, "UART4_TX"),
STM32_FUNCTION(12, "ETH_MII_CRS"),
STM32_FUNCTION(16, "EVENTOUT"),
STM32_FUNCTION(17, "ANALOG")
),
STM32_PIN(
PINCTRL_PIN(1, "PA1"),
STM32_FUNCTION(0, "GPIOA1"),
STM32_FUNCTION(2, "TIM2_CH2"),
STM32_FUNCTION(3, "TIM5_CH2"),
STM32_FUNCTION(8, "USART2_RTS"),
STM32_FUNCTION(9, "UART4_RX"),
STM32_FUNCTION(12, "ETH_MII_RX_CLK ETH_RMII_REF_CLK"),
STM32_FUNCTION(16, "EVENTOUT"),
STM32_FUNCTION(17, "ANALOG")
),
STM32_PIN(
PINCTRL_PIN(2, "PA2"),
STM32_FUNCTION(0, "GPIOA2"),
STM32_FUNCTION(2, "TIM2_CH3"),
STM32_FUNCTION(3, "TIM5_CH3"),
STM32_FUNCTION(4, "TIM9_CH1"),
STM32_FUNCTION(8, "USART2_TX"),
STM32_FUNCTION(12, "ETH_MDIO"),
STM32_FUNCTION(16, "EVENTOUT"),
STM32_FUNCTION(17, "ANALOG")
),
STM32_PIN(
PINCTRL_PIN(3, "PA3"),
STM32_FUNCTION(0, "GPIOA3"),
STM32_FUNCTION(2, "TIM2_CH4"),
STM32_FUNCTION(3, "TIM5_CH4"),
STM32_FUNCTION(4, "TIM9_CH2"),
STM32_FUNCTION(8, "USART2_RX"),
STM32_FUNCTION(11, "OTG_HS_ULPI_D0"),
STM32_FUNCTION(12, "ETH_MII_COL"),
STM32_FUNCTION(15, "LCD_B5"),
STM32_FUNCTION(16, "EVENTOUT"),
STM32_FUNCTION(17, "ANALOG")
),
STM32_PIN(
PINCTRL_PIN(4, "PA4"),
STM32_FUNCTION(0, "GPIOA4"),
STM32_FUNCTION(6, "SPI1_NSS"),
STM32_FUNCTION(7, "SPI3_NSS I2S3_WS"),
STM32_FUNCTION(8, "USART2_CK"),
STM32_FUNCTION(13, "OTG_HS_SOF"),
STM32_FUNCTION(14, "DCMI_HSYNC"),
STM32_FUNCTION(15, "LCD_VSYNC"),
STM32_FUNCTION(16, "EVENTOUT"),
STM32_FUNCTION(17, "ANALOG")
),
STM32_PIN(
PINCTRL_PIN(5, "PA5"),
STM32_FUNCTION(0, "GPIOA5"),
STM32_FUNCTION(2, "TIM2_CH1 TIM2_ETR"),
STM32_FUNCTION(4, "TIM8_CH1N"),
STM32_FUNCTION(6, "SPI1_SCK"),
STM32_FUNCTION(11, "OTG_HS_ULPI_CK"),
STM32_FUNCTION(16, "EVENTOUT"),
STM32_FUNCTION(17, "ANALOG")
),
STM32_PIN(
PINCTRL_PIN(6, "PA6"),
STM32_FUNCTION(0, "GPIOA6"),
STM32_FUNCTION(2, "TIM1_BKIN"),
STM32_FUNCTION(3, "TIM3_CH1"),
STM32_FUNCTION(4, "TIM8_BKIN"),
STM32_FUNCTION(6, "SPI1_MISO"),
STM32_FUNCTION(10, "TIM13_CH1"),
STM32_FUNCTION(14, "DCMI_PIXCLK"),
STM32_FUNCTION(15, "LCD_G2"),
STM32_FUNCTION(16, "EVENTOUT"),
STM32_FUNCTION(17, "ANALOG")
),
STM32_PIN(
PINCTRL_PIN(7, "PA7"),
STM32_FUNCTION(0, "GPIOA7"),
STM32_FUNCTION(2, "TIM1_CH1N"),
STM32_FUNCTION(3, "TIM3_CH2"),
STM32_FUNCTION(4, "TIM8_CH1N"),
STM32_FUNCTION(6, "SPI1_MOSI"),
STM32_FUNCTION(10, "TIM14_CH1"),
STM32_FUNCTION(12, "ETH_MII_RX_DV ETH_RMII_CRS_DV"),
STM32_FUNCTION(16, "EVENTOUT"),
STM32_FUNCTION(17, "ANALOG")
),
STM32_PIN(
PINCTRL_PIN(8, "PA8"),
STM32_FUNCTION(0, "GPIOA8"),
STM32_FUNCTION(1, "MCO1"),
STM32_FUNCTION(2, "TIM1_CH1"),
STM32_FUNCTION(5, "I2C3_SCL"),
STM32_FUNCTION(8, "USART1_CK"),
STM32_FUNCTION(11, "OTG_FS_SOF"),
STM32_FUNCTION(15, "LCD_R6"),
STM32_FUNCTION(16, "EVENTOUT"),
STM32_FUNCTION(17, "ANALOG")
),
STM32_PIN(
PINCTRL_PIN(9, "PA9"),
STM32_FUNCTION(0, "GPIOA9"),
STM32_FUNCTION(2, "TIM1_CH2"),
STM32_FUNCTION(5, "I2C3_SMBA"),
STM32_FUNCTION(8, "USART1_TX"),
STM32_FUNCTION(14, "DCMI_D0"),
STM32_FUNCTION(16, "EVENTOUT"),
STM32_FUNCTION(17, "ANALOG")
),
STM32_PIN(
PINCTRL_PIN(10, "PA10"),
STM32_FUNCTION(0, "GPIOA10"),
STM32_FUNCTION(2, "TIM1_CH3"),
STM32_FUNCTION(8, "USART1_RX"),
STM32_FUNCTION(11, "OTG_FS_ID"),
STM32_FUNCTION(14, "DCMI_D1"),
STM32_FUNCTION(16, "EVENTOUT"),
STM32_FUNCTION(17, "ANALOG")
),
STM32_PIN(
PINCTRL_PIN(11, "PA11"),
STM32_FUNCTION(0, "GPIOA11"),
STM32_FUNCTION(2, "TIM1_CH4"),
STM32_FUNCTION(8, "USART1_CTS"),
STM32_FUNCTION(10, "CAN1_RX"),
STM32_FUNCTION(11, "OTG_FS_DM"),
STM32_FUNCTION(15, "LCD_R4"),
STM32_FUNCTION(16, "EVENTOUT"),
STM32_FUNCTION(17, "ANALOG")
),
STM32_PIN(
PINCTRL_PIN(12, "PA12"),
STM32_FUNCTION(0, "GPIOA12"),
STM32_FUNCTION(2, "TIM1_ETR"),
STM32_FUNCTION(8, "USART1_RTS"),
STM32_FUNCTION(10, "CAN1_TX"),
STM32_FUNCTION(11, "OTG_FS_DP"),
STM32_FUNCTION(15, "LCD_R5"),
STM32_FUNCTION(16, "EVENTOUT"),
STM32_FUNCTION(17, "ANALOG")
),
STM32_PIN(
PINCTRL_PIN(13, "PA13"),
STM32_FUNCTION(0, "GPIOA13"),
STM32_FUNCTION(1, "JTMS SWDIO"),
STM32_FUNCTION(16, "EVENTOUT"),
STM32_FUNCTION(17, "ANALOG")
),
STM32_PIN(
PINCTRL_PIN(14, "PA14"),
STM32_FUNCTION(0, "GPIOA14"),
STM32_FUNCTION(1, "JTCK SWCLK"),
STM32_FUNCTION(16, "EVENTOUT"),
STM32_FUNCTION(17, "ANALOG")
),
STM32_PIN(
PINCTRL_PIN(15, "PA15"),
STM32_FUNCTION(0, "GPIOA15"),
STM32_FUNCTION(1, "JTDI"),
STM32_FUNCTION(2, "TIM2_CH1 TIM2_ETR"),
STM32_FUNCTION(6, "SPI1_NSS"),
STM32_FUNCTION(7, "SPI3_NSS I2S3_WS"),
STM32_FUNCTION(16, "EVENTOUT"),
STM32_FUNCTION(17, "ANALOG")
),
STM32_PIN(
PINCTRL_PIN(16, "PB0"),
|