linuxOS_D21X/source/linux-5.10/drivers/pinctrl/artinchip/pinctrl-aic-v1.c
2024-11-29 16:13:46 +08:00

1121 lines
26 KiB
C

// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright (c) 2020 Artinchip Inc.
*/
#include <linux/init.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include "pinctrl-aic.h"
static struct aic_desc_pin aic_pins_v1[] = {
AIC_PIN(
PINCTRL_PIN(0, "PA0"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOA0"),
AIC_FUNCTION(2, "GPAI0"),
AIC_FUNCTION(3, "PSADC0"),
AIC_FUNCTION(4, "TWI0"),
AIC_FUNCTION(5, "UART0"),
AIC_FUNCTION(6, "AMIC"),
AIC_FUNCTION(7, "CIR"),
AIC_FUNCTION(8, "EPHY_LED0")
),
AIC_PIN(
PINCTRL_PIN(1, "PA1"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOA1"),
AIC_FUNCTION(2, "GPAI1"),
AIC_FUNCTION(3, "PSADC1"),
AIC_FUNCTION(4, "TWI0"),
AIC_FUNCTION(5, "UART0"),
AIC_FUNCTION(6, "AMIC"),
AIC_FUNCTION(7, "CIR"),
AIC_FUNCTION(8, "EPHY_LED1")
),
AIC_PIN(
PINCTRL_PIN(2, "PA2"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOA2"),
AIC_FUNCTION(2, "GPAI2"),
AIC_FUNCTION(3, "PSADC2"),
AIC_FUNCTION(5, "UART0")
),
AIC_PIN(
PINCTRL_PIN(3, "PA3"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOA3"),
AIC_FUNCTION(2, "GPAI3"),
AIC_FUNCTION(3, "PSADC3"),
AIC_FUNCTION(5, "UART0")
),
AIC_PIN(
PINCTRL_PIN(4, "PA4"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOA4"),
AIC_FUNCTION(2, "GPAI4"),
AIC_FUNCTION(3, "PSADC4"),
AIC_FUNCTION(5, "UART1")
),
AIC_PIN(
PINCTRL_PIN(5, "PA5"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOA5"),
AIC_FUNCTION(2, "GPAI5"),
AIC_FUNCTION(3, "PSADC5"),
AIC_FUNCTION(5, "UART1")
),
AIC_PIN(
PINCTRL_PIN(6, "PA6"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOA6"),
AIC_FUNCTION(2, "GPAI6"),
AIC_FUNCTION(3, "PSADC6"),
AIC_FUNCTION(4, "TWI1"),
AIC_FUNCTION(5, "UART1")
),
AIC_PIN(
PINCTRL_PIN(7, "PA7"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOA7"),
AIC_FUNCTION(2, "GPAI7"),
AIC_FUNCTION(3, "PSADC7"),
AIC_FUNCTION(4, "TWI1"),
AIC_FUNCTION(5, "UART1")
),
AIC_PIN(
PINCTRL_PIN(8, "PA8"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOA8"),
AIC_FUNCTION(2, "RTP"),
AIC_FUNCTION(3, "PSADC8"),
AIC_FUNCTION(4, "TWI2"),
AIC_FUNCTION(5, "UART2"),
AIC_FUNCTION(6, "JTAG")
),
AIC_PIN(
PINCTRL_PIN(9, "PA9"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOA9"),
AIC_FUNCTION(2, "RTP"),
AIC_FUNCTION(3, "PSADC9"),
AIC_FUNCTION(4, "TWI2"),
AIC_FUNCTION(5, "UART2"),
AIC_FUNCTION(6, "JTAG")
),
AIC_PIN(
PINCTRL_PIN(10, "PA10"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOA10"),
AIC_FUNCTION(2, "RTP"),
AIC_FUNCTION(3, "PSADC10"),
AIC_FUNCTION(4, "TWI3"),
AIC_FUNCTION(5, "UART2"),
AIC_FUNCTION(6, "JTAG")
),
AIC_PIN(
PINCTRL_PIN(11, "PA11"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOA11"),
AIC_FUNCTION(2, "RTP"),
AIC_FUNCTION(3, "PSADC11"),
AIC_FUNCTION(4, "TWI3"),
AIC_FUNCTION(5, "UART2"),
AIC_FUNCTION(6, "JTAG"),
AIC_FUNCTION(7, "PSADC_TRIG")
),
AIC_PIN(
PINCTRL_PIN(12, "PB0"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOB0"),
AIC_FUNCTION(2, "SDC0"),
AIC_FUNCTION(3, "SPI0"),
AIC_FUNCTION(4, "TWI1"),
AIC_FUNCTION(5, "UART7"),
AIC_FUNCTION(8, "EPHY_LED0")
),
AIC_PIN(
PINCTRL_PIN(13, "PB1"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOB1"),
AIC_FUNCTION(2, "SDC0"),
AIC_FUNCTION(3, "SPI0"),
AIC_FUNCTION(4, "TWI1"),
AIC_FUNCTION(5, "UART7"),
AIC_FUNCTION(8, "EPHY_LED1")
),
AIC_PIN(
PINCTRL_PIN(14, "PB2"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOB2"),
AIC_FUNCTION(2, "SDC0"),
AIC_FUNCTION(3, "SPI0")
),
AIC_PIN(
PINCTRL_PIN(15, "PB3"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOB3"),
AIC_FUNCTION(2, "SDC0"),
AIC_FUNCTION(3, "SPI0")
),
AIC_PIN(
PINCTRL_PIN(16, "PB4"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOB4"),
AIC_FUNCTION(2, "SDC0"),
AIC_FUNCTION(3, "SPI0")
),
AIC_PIN(
PINCTRL_PIN(17, "PB5"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOB5"),
AIC_FUNCTION(2, "SDC0"),
AIC_FUNCTION(3, "SPI0")
),
AIC_PIN(
PINCTRL_PIN(18, "PB6"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOB6"),
AIC_FUNCTION(2, "SDC0"),
AIC_FUNCTION(3, "SPI1"),
AIC_FUNCTION(4, "TWI2"),
AIC_FUNCTION(5, "UART4"),
AIC_FUNCTION(7, "CLK_OUT2"),
AIC_FUNCTION(8, "CLK_OUT3")
),
AIC_PIN(
PINCTRL_PIN(19, "PB7"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOB7"),
AIC_FUNCTION(2, "SDC0"),
AIC_FUNCTION(3, "SPI1"),
AIC_FUNCTION(4, "TWI2"),
AIC_FUNCTION(5, "UART4")
),
AIC_PIN(
PINCTRL_PIN(20, "PB8"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOB8"),
AIC_FUNCTION(2, "SDC0"),
AIC_FUNCTION(3, "SPI1"),
AIC_FUNCTION(4, "UART4"),
AIC_FUNCTION(5, "UART5"),
AIC_FUNCTION(6, "PSADC_TRIG"),
AIC_FUNCTION(7, "CIR")
),
AIC_PIN(
PINCTRL_PIN(21, "PB9"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOB9"),
AIC_FUNCTION(2, "SDC0"),
AIC_FUNCTION(3, "SPI1"),
AIC_FUNCTION(4, "UART6"),
AIC_FUNCTION(5, "UART5"),
AIC_FUNCTION(7, "CIR")
),
AIC_PIN(
PINCTRL_PIN(22, "PB10"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOB10"),
AIC_FUNCTION(2, "SDC0"),
AIC_FUNCTION(3, "SPI1"),
AIC_FUNCTION(5, "UART6")
),
AIC_PIN(
PINCTRL_PIN(23, "PB11"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOB11"),
AIC_FUNCTION(2, "SDC0"),
AIC_FUNCTION(3, "SPI1"),
AIC_FUNCTION(5, "UART6")
),
AIC_PIN(
PINCTRL_PIN(24, "PC0"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOC0"),
AIC_FUNCTION(2, "SDC1"),
AIC_FUNCTION(3, "LCD"),
AIC_FUNCTION(4, "SPI2"),
AIC_FUNCTION(5, "UART1"),
AIC_FUNCTION(6, "JATG"),
AIC_FUNCTION(7, "PWM0"),
AIC_FUNCTION(8, "DBGIO0")
),
AIC_PIN(
PINCTRL_PIN(25, "PC1"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOC1"),
AIC_FUNCTION(2, "SDC1"),
AIC_FUNCTION(3, "LCD"),
AIC_FUNCTION(4, "SPI2"),
AIC_FUNCTION(5, "UART1"),
AIC_FUNCTION(6, "JATG"),
AIC_FUNCTION(7, "PWM1"),
AIC_FUNCTION(8, "DBGIO1")
),
AIC_PIN(
PINCTRL_PIN(26, "PC2"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOC2"),
AIC_FUNCTION(2, "SDC1"),
AIC_FUNCTION(3, "LCD"),
AIC_FUNCTION(4, "SPI2"),
AIC_FUNCTION(5, "UART1"),
AIC_FUNCTION(6, "UART0"),
AIC_FUNCTION(7, "PWM2"),
AIC_FUNCTION(8, "DBGIO2")
),
AIC_PIN(
PINCTRL_PIN(27, "PC3"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOC3"),
AIC_FUNCTION(2, "SDC1"),
AIC_FUNCTION(3, "LCD"),
AIC_FUNCTION(4, "SPI2"),
AIC_FUNCTION(5, "UART2"),
AIC_FUNCTION(6, "JTAG"),
AIC_FUNCTION(7, "PWM3"),
AIC_FUNCTION(8, "DBGIO3")
),
AIC_PIN(
PINCTRL_PIN(28, "PC4"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOC4"),
AIC_FUNCTION(2, "SDC1"),
AIC_FUNCTION(3, "LCD"),
AIC_FUNCTION(5, "UART2"),
AIC_FUNCTION(6, "UART0"),
AIC_FUNCTION(7, "PWM4"),
AIC_FUNCTION(8, "DBGIO4")
),
AIC_PIN(
PINCTRL_PIN(29, "PC5"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOC5"),
AIC_FUNCTION(2, "SDC1"),
AIC_FUNCTION(3, "LCD"),
AIC_FUNCTION(4, "UART2"),
AIC_FUNCTION(5, "UART3"),
AIC_FUNCTION(6, "JTAG"),
AIC_FUNCTION(7, "PWM5"),
AIC_FUNCTION(8, "DBGIO5")
),
AIC_PIN(
PINCTRL_PIN(30, "PC6"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOC6"),
AIC_FUNCTION(2, "SDC1"),
AIC_FUNCTION(3, "CLK_OUT0"),
AIC_FUNCTION(4, "DE_TE"),
AIC_FUNCTION(5, "UART3"),
AIC_FUNCTION(7, "PWM6")
),
AIC_PIN(
PINCTRL_PIN(31, "PC7"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOC7"),
AIC_FUNCTION(5, "UART3"),
AIC_FUNCTION(7, "PWM7"),
AIC_FUNCTION(8, "EPHY_LEDIN1")
),
AIC_PIN(
PINCTRL_PIN(32, "PD0"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD0"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "SPI2"),
AIC_FUNCTION(6, "PUBS_AD0"),
AIC_FUNCTION(7, "PWM0"),
AIC_FUNCTION(8, "GMAC1_MDIO")
),
AIC_PIN(
PINCTRL_PIN(33, "PD1"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD1"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "SPI2"),
AIC_FUNCTION(6, "PUBS_AD1"),
AIC_FUNCTION(7, "PWM1"),
AIC_FUNCTION(8, "EPHY_LEDIN0")
),
AIC_PIN(
PINCTRL_PIN(34, "PD2"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD2"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "SPI2"),
AIC_FUNCTION(4, "DE_TE"),
AIC_FUNCTION(6, "PUBS_AD2"),
AIC_FUNCTION(7, "PWM2"),
AIC_FUNCTION(8, "GMAC1_MDC")
),
AIC_PIN(
PINCTRL_PIN(35, "PD3"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD3"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "SPI3"),
AIC_FUNCTION(6, "PUBS_AD3"),
AIC_FUNCTION(7, "PWM3"),
AIC_FUNCTION(8, "GMAC1_TXCTL")
),
AIC_PIN(
PINCTRL_PIN(36, "PD4"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD4"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "SPI3"),
AIC_FUNCTION(6, "PUBS_AD4"),
AIC_FUNCTION(7, "PWM4")
),
AIC_PIN(
PINCTRL_PIN(37, "PD5"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD5"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "SPI3"),
AIC_FUNCTION(6, "PUBS_AD5"),
AIC_FUNCTION(7, "PWM5"),
AIC_FUNCTION(8, "GMAC1_TXD1")
),
AIC_PIN(
PINCTRL_PIN(38, "PD6"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD6"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "SPI3"),
AIC_FUNCTION(4, "TWI0"),
AIC_FUNCTION(5, "UART1"),
AIC_FUNCTION(6, "PUBS_AD6"),
AIC_FUNCTION(8, "DBGIO6")
),
AIC_PIN(
PINCTRL_PIN(39, "PD7"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD7"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "SPI2"),
AIC_FUNCTION(4, "TWI0"),
AIC_FUNCTION(5, "UART1"),
AIC_FUNCTION(6, "PUBS_AD7"),
AIC_FUNCTION(8, "DBGIO7")
),
AIC_PIN(
PINCTRL_PIN(40, "PD8"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD8"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS1"),
AIC_FUNCTION(4, "SPI1"),
AIC_FUNCTION(5, "UART2"),
AIC_FUNCTION(6, "PUBS_AD8"),
AIC_FUNCTION(7, "APWM0"),
AIC_FUNCTION(8, "DBGIO8")
),
AIC_PIN(
PINCTRL_PIN(41, "PD9"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD9"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS1"),
AIC_FUNCTION(4, "SPI1"),
AIC_FUNCTION(5, "UART2"),
AIC_FUNCTION(6, "PUBS_AD9"),
AIC_FUNCTION(7, "APWM0"),
AIC_FUNCTION(8, "DBGIO9")
),
AIC_PIN(
PINCTRL_PIN(42, "PD10"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD10"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS1"),
AIC_FUNCTION(4, "SPI1"),
AIC_FUNCTION(5, "UART3"),
AIC_FUNCTION(6, "PUBS_AD10"),
AIC_FUNCTION(7, "APWM1"),
AIC_FUNCTION(8, "DBGIO10")
),
AIC_PIN(
PINCTRL_PIN(43, "PD11"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD11"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS1"),
AIC_FUNCTION(4, "SPI1"),
AIC_FUNCTION(5, "UART3"),
AIC_FUNCTION(6, "PUBS_AD11"),
AIC_FUNCTION(7, "APWM1"),
AIC_FUNCTION(8, "DBGIO11")
),
AIC_PIN(
PINCTRL_PIN(44, "PD12"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD12"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS1"),
AIC_FUNCTION(4, "SPI1"),
AIC_FUNCTION(5, "UART4"),
AIC_FUNCTION(6, "PUBS_AD12"),
AIC_FUNCTION(7, "APWM2"),
AIC_FUNCTION(8, "DBGIO12")
),
AIC_PIN(
PINCTRL_PIN(45, "PD13"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD13"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS1"),
AIC_FUNCTION(4, "SPI1"),
AIC_FUNCTION(5, "UART4"),
AIC_FUNCTION(6, "PUBS_AD13"),
AIC_FUNCTION(7, "APWM2"),
AIC_FUNCTION(8, "DBGIO13")
),
AIC_PIN(
PINCTRL_PIN(46, "PD14"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD14"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS1"),
AIC_FUNCTION(4, "SPI3"),
AIC_FUNCTION(5, "CAP0"),
AIC_FUNCTION(6, "PUBS_AD14"),
AIC_FUNCTION(7, "QEP0"),
AIC_FUNCTION(8, "DBGIO14")
),
AIC_PIN(
PINCTRL_PIN(47, "PD15"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD15"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS1"),
AIC_FUNCTION(4, "SPI3"),
AIC_FUNCTION(5, "CAP1"),
AIC_FUNCTION(6, "PUBS_AD15"),
AIC_FUNCTION(7, "QEP0"),
AIC_FUNCTION(8, "DBGIO15")
),
AIC_PIN(
PINCTRL_PIN(48, "PD16"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD16"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS1"),
AIC_FUNCTION(4, "SPI3"),
AIC_FUNCTION(5, "CAP2"),
AIC_FUNCTION(6, "PUBS_CLK"),
AIC_FUNCTION(7, "QEP0"),
AIC_FUNCTION(8, "DBGIO16")
),
AIC_PIN(
PINCTRL_PIN(49, "PD17"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD17"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS1"),
AIC_FUNCTION(4, "SPI3"),
AIC_FUNCTION(5, "APWM_FLT5"),
AIC_FUNCTION(6, "PUBS_NCS"),
AIC_FUNCTION(7, "QEP0"),
AIC_FUNCTION(8, "DBGIO17")
),
AIC_PIN(
PINCTRL_PIN(50, "PD18"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD18"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS0"),
AIC_FUNCTION(4, "DSI"),
AIC_FUNCTION(5, "TWI1"),
AIC_FUNCTION(6, "PUBS_NADV"),
AIC_FUNCTION(7, "QEP0"),
AIC_FUNCTION(8, "DBGIO18")
),
AIC_PIN(
PINCTRL_PIN(51, "PD19"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD19"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS0"),
AIC_FUNCTION(4, "DSI"),
AIC_FUNCTION(5, "TWI1"),
AIC_FUNCTION(6, "PUBS_NWE"),
AIC_FUNCTION(7, "QEP0"),
AIC_FUNCTION(8, "DBGIO19")
),
AIC_PIN(
PINCTRL_PIN(52, "PD20"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD20"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS0"),
AIC_FUNCTION(4, "DSI"),
AIC_FUNCTION(5, "UART7"),
AIC_FUNCTION(6, "PUBS_NOE"),
AIC_FUNCTION(7, "QEP0"),
AIC_FUNCTION(8, "DBGIO20")
),
AIC_PIN(
PINCTRL_PIN(53, "PD21"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD21"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS0"),
AIC_FUNCTION(4, "DSI"),
AIC_FUNCTION(5, "UART7"),
AIC_FUNCTION(6, "CLK_OUT0"),
AIC_FUNCTION(7, "APWM_FLT0"),
AIC_FUNCTION(8, "DBGIO21")
),
AIC_PIN(
PINCTRL_PIN(54, "PD22"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD22"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS0"),
AIC_FUNCTION(4, "DSI"),
AIC_FUNCTION(5, "TWI3"),
AIC_FUNCTION(6, "UART6"),
AIC_FUNCTION(7, "APWM_FLT1"),
AIC_FUNCTION(8, "DBGIO22")
),
AIC_PIN(
PINCTRL_PIN(55, "PD23"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD23"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS0"),
AIC_FUNCTION(4, "DSI"),
AIC_FUNCTION(5, "TWI3"),
AIC_FUNCTION(6, "UART6"),
AIC_FUNCTION(7, "APWM_FLT2"),
AIC_FUNCTION(8, "DBGIO23")
),
AIC_PIN(
PINCTRL_PIN(56, "PD24"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD24"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS0"),
AIC_FUNCTION(4, "DSI"),
AIC_FUNCTION(5, "UART5"),
AIC_FUNCTION(6, "SPI1"),
AIC_FUNCTION(7, "APWM_FLT3"),
AIC_FUNCTION(8, "DBGIO24")
),
AIC_PIN(
PINCTRL_PIN(57, "PD25"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD25"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS0"),
AIC_FUNCTION(4, "DSI"),
AIC_FUNCTION(5, "UART5"),
AIC_FUNCTION(6, "SPI1"),
AIC_FUNCTION(7, "APWM_FLT4"),
AIC_FUNCTION(8, "DBGIO25")
),
AIC_PIN(
PINCTRL_PIN(58, "PD26"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD26"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS0"),
AIC_FUNCTION(4, "DSI"),
AIC_FUNCTION(5, "PWM6"),
AIC_FUNCTION(6, "SPI1"),
AIC_FUNCTION(7, "APWM0"),
AIC_FUNCTION(8, "DBGCLK")
),
AIC_PIN(
PINCTRL_PIN(59, "PD27"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOD27"),
AIC_FUNCTION(2, "LCD"),
AIC_FUNCTION(3, "LVDS0"),
AIC_FUNCTION(4, "DSI"),
AIC_FUNCTION(5, "PWM7"),
AIC_FUNCTION(6, "SPI1"),
AIC_FUNCTION(7, "APWM0"),
AIC_FUNCTION(8, "RTC32K")
),
AIC_PIN(
PINCTRL_PIN(60, "PE0"),
AIC_FUNCTION(1, "GPIOE0"),
AIC_FUNCTION(3, "DVP"),
AIC_FUNCTION(4, "TWI0"),
AIC_FUNCTION(6, "GMAC0"),
AIC_FUNCTION(7, "APWM3"),
AIC_FUNCTION(8, "PWM0")
),
AIC_PIN(
PINCTRL_PIN(61, "PE1"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE1"),
AIC_FUNCTION(3, "DVP"),
AIC_FUNCTION(4, "TWI0"),
AIC_FUNCTION(6, "GMAC0"),
AIC_FUNCTION(7, "APWM3"),
AIC_FUNCTION(8, "PWM1")
),
AIC_PIN(
PINCTRL_PIN(62, "PE2"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE2"),
AIC_FUNCTION(3, "DVP"),
AIC_FUNCTION(4, "CAN0"),
AIC_FUNCTION(5, "UART4"),
AIC_FUNCTION(6, "GMAC0"),
AIC_FUNCTION(7, "APWM4"),
AIC_FUNCTION(8, "PWM2")
),
AIC_PIN(
PINCTRL_PIN(63, "PE3"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE3"),
AIC_FUNCTION(3, "DVP"),
AIC_FUNCTION(4, "CAN0"),
AIC_FUNCTION(5, "UART4"),
AIC_FUNCTION(6, "GMAC0"),
AIC_FUNCTION(7, "APWM4"),
AIC_FUNCTION(8, "PWM3")
),
AIC_PIN(
PINCTRL_PIN(64, "PE4"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE4"),
AIC_FUNCTION(3, "DVP"),
AIC_FUNCTION(4, "CAN1"),
AIC_FUNCTION(5, "UART5"),
AIC_FUNCTION(6, "GMAC0"),
AIC_FUNCTION(7, "APWM5"),
AIC_FUNCTION(8, "PWM4")
),
AIC_PIN(
PINCTRL_PIN(65, "PE5"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE5"),
AIC_FUNCTION(3, "DVP"),
AIC_FUNCTION(4, "CAN1"),
AIC_FUNCTION(5, "UART5"),
AIC_FUNCTION(6, "GMAC0"),
AIC_FUNCTION(7, "APWM5"),
AIC_FUNCTION(8, "PWM5")
),
AIC_PIN(
PINCTRL_PIN(66, "PE6"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE6"),
AIC_FUNCTION(2, "SPK0"),
AIC_FUNCTION(3, "DVP"),
AIC_FUNCTION(4, "UART5"),
AIC_FUNCTION(5, "UART6"),
AIC_FUNCTION(6, "GMAC0"),
AIC_FUNCTION(7, "QEP1"),
AIC_FUNCTION(8, "CAP0")
),
AIC_PIN(
PINCTRL_PIN(67, "PE7"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE7"),
AIC_FUNCTION(2, "SPK1"),
AIC_FUNCTION(3, "DVP"),
AIC_FUNCTION(4, "UART7"),
AIC_FUNCTION(5, "UART6"),
AIC_FUNCTION(6, "GMAC0"),
AIC_FUNCTION(7, "QEP1"),
AIC_FUNCTION(8, "CAP1")
),
AIC_PIN(
PINCTRL_PIN(68, "PE8"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE8"),
AIC_FUNCTION(2, "I2S0"),
AIC_FUNCTION(3, "DVP"),
AIC_FUNCTION(4, "UART6"),
AIC_FUNCTION(5, "UART7"),
AIC_FUNCTION(6, "GMAC0"),
AIC_FUNCTION(7, "QEP1"),
AIC_FUNCTION(8, "CAP2")
),
AIC_PIN(
PINCTRL_PIN(69, "PE9"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE9"),
AIC_FUNCTION(2, "I2S0"),
AIC_FUNCTION(3, "DVP"),
AIC_FUNCTION(4, "UART6"),
AIC_FUNCTION(5, "UART7"),
AIC_FUNCTION(6, "GMAC0"),
AIC_FUNCTION(7, "QEP1")
),
AIC_PIN(
PINCTRL_PIN(70, "PE10"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE10"),
AIC_FUNCTION(2, "I2S0"),
AIC_FUNCTION(3, "DVP"),
AIC_FUNCTION(4, "SPK0"),
AIC_FUNCTION(6, "CLK_OUT2"),
AIC_FUNCTION(7, "QEP1"),
AIC_FUNCTION(8, "EPHY_LED0")
),
AIC_PIN(
PINCTRL_PIN(71, "PE11"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE11"),
AIC_FUNCTION(2, "I2S0-DOUT"),
AIC_FUNCTION(3, "I2S0-DIN"),
AIC_FUNCTION(4, "SPK1"),
AIC_FUNCTION(5, "CLK_OUT1"),
AIC_FUNCTION(6, "GMAC0"),
AIC_FUNCTION(7, "QEP1"),
AIC_FUNCTION(8, "EPHY_LED1")
),
AIC_PIN(
PINCTRL_PIN(72, "PE12"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE12"),
AIC_FUNCTION(2, "I2S0"),
AIC_FUNCTION(3, "SPI3"),
AIC_FUNCTION(4, "DMIC"),
AIC_FUNCTION(5, "TWI2"),
AIC_FUNCTION(6, "GMAC0"),
AIC_FUNCTION(7, "QEP1")
),
AIC_PIN(
PINCTRL_PIN(73, "PE13"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE13"),
AIC_FUNCTION(3, "SPI3"),
AIC_FUNCTION(4, "DMIC"),
AIC_FUNCTION(5, "TWI2"),
AIC_FUNCTION(6, "GMAC0"),
AIC_FUNCTION(7, "CAP0")
),
AIC_PIN(
PINCTRL_PIN(74, "PE14"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE14"),
AIC_FUNCTION(3, "SPI3"),
AIC_FUNCTION(5, "UART3"),
AIC_FUNCTION(6, "GMAC0"),
AIC_FUNCTION(7, "CAP1")
),
AIC_PIN(
PINCTRL_PIN(75, "PE15"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE15"),
AIC_FUNCTION(3, "SPI3"),
AIC_FUNCTION(5, "UART3"),
AIC_FUNCTION(6, "GMAC0"),
AIC_FUNCTION(7, "CAP2")
),
AIC_PIN(
PINCTRL_PIN(76, "PE16"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE16"),
AIC_FUNCTION(3, "SPI0"),
AIC_FUNCTION(4, "CAN0"),
AIC_FUNCTION(5, "TWI3"),
AIC_FUNCTION(6, "GMAC0")
),
AIC_PIN(
PINCTRL_PIN(77, "PE17"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE17"),
AIC_FUNCTION(3, "SPI0"),
AIC_FUNCTION(4, "CAN0"),
AIC_FUNCTION(5, "TWI3"),
AIC_FUNCTION(6, "GMAC0")
),
AIC_PIN(
PINCTRL_PIN(78, "PE18"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE18"),
AIC_FUNCTION(3, "SPI0"),
AIC_FUNCTION(4, "CAN1"),
AIC_FUNCTION(5, "PWM6"),
AIC_FUNCTION(6, "GMAC1")
),
AIC_PIN(
PINCTRL_PIN(79, "PE19"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOE19"),
AIC_FUNCTION(3, "SPI0"),
AIC_FUNCTION(4, "CAN1"),
AIC_FUNCTION(5, "PWM7"),
AIC_FUNCTION(6, "GMAC1")
),
AIC_PIN(
PINCTRL_PIN(80, "PF0"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOF0"),
AIC_FUNCTION(2, "SDC2"),
AIC_FUNCTION(3, "SPI2"),
AIC_FUNCTION(5, "UART5"),
AIC_FUNCTION(6, "GMAC1"),
AIC_FUNCTION(7, "PBUS_AD0"),
AIC_FUNCTION(8, "GMAC1_RXD0")
),
AIC_PIN(
PINCTRL_PIN(81, "PF1"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOF1"),
AIC_FUNCTION(2, "SDC2"),
AIC_FUNCTION(3, "SPI2"),
AIC_FUNCTION(5, "UART5"),
AIC_FUNCTION(6, "GMAC1"),
AIC_FUNCTION(7, "PBUS_AD1")
),
AIC_PIN(
PINCTRL_PIN(82, "PF2"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOF2"),
AIC_FUNCTION(2, "SDC2"),
AIC_FUNCTION(3, "SPI2"),
AIC_FUNCTION(5, "UART5"),
AIC_FUNCTION(6, "GMAC1"),
AIC_FUNCTION(7, "PBUS_AD2"),
AIC_FUNCTION(8, "GMAC1_RXD1")
),
AIC_PIN(
PINCTRL_PIN(83, "PF3"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOF3"),
AIC_FUNCTION(2, "SDC2"),
AIC_FUNCTION(3, "SPI2"),
AIC_FUNCTION(5, "UART5"),
AIC_FUNCTION(6, "GMAC1"),
AIC_FUNCTION(7, "PBUS_AD3")
),
AIC_PIN(
PINCTRL_PIN(84, "PF4"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOF4"),
AIC_FUNCTION(2, "SDC2"),
AIC_FUNCTION(5, "UART6"),
AIC_FUNCTION(6, "GMAC1"),
AIC_FUNCTION(7, "PBUS_AD4"),
AIC_FUNCTION(8, "DBGIO26")
),
AIC_PIN(
PINCTRL_PIN(85, "PF5"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOF5"),
AIC_FUNCTION(2, "SDC2"),
AIC_FUNCTION(5, "UART6"),
AIC_FUNCTION(6, "GMAC1"),
AIC_FUNCTION(7, "PBUS_AD5"),
AIC_FUNCTION(8, "DBGIO27")
),
AIC_PIN(
PINCTRL_PIN(86, "PF6"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOF6"),
AIC_FUNCTION(5, "UART7"),
AIC_FUNCTION(6, "GMAC1"),
AIC_FUNCTION(7, "PBUS_AD6"),
AIC_FUNCTION(8, "DBGIO28")
),
AIC_PIN(
PINCTRL_PIN(87, "PF7"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOF7"),
AIC_FUNCTION(5, "UART7"),
AIC_FUNCTION(6, "GMAC1"),
AIC_FUNCTION(7, "PBUS_AD7"),
AIC_FUNCTION(8, "DBGIO29")
),
AIC_PIN(
PINCTRL_PIN(88, "PF8"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOF8"),
AIC_FUNCTION(5, "UART7"),
AIC_FUNCTION(6, "GMAC1"),
AIC_FUNCTION(7, "PBUS_AD8"),
AIC_FUNCTION(8, "DBGIO30")
),
AIC_PIN(
PINCTRL_PIN(89, "PF9"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOF9"),
AIC_FUNCTION(5, "UART7"),
AIC_FUNCTION(6, "GMAC1"),
AIC_FUNCTION(7, "PBUS_AD9"),
AIC_FUNCTION(8, "DBGIO31")
),
AIC_PIN(
PINCTRL_PIN(90, "PF10"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOF10"),
AIC_FUNCTION(2, "I2S1-MCLK"),
AIC_FUNCTION(3, "I2S1-DIN"),
AIC_FUNCTION(5, "UART3"),
AIC_FUNCTION(6, "CLK_OUT3"),
AIC_FUNCTION(7, "PBUS_AD10"),
AIC_FUNCTION(8, "GMAC1_CLKIN")
),
AIC_PIN(
PINCTRL_PIN(91, "PF11"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOF11"),
AIC_FUNCTION(2, "I2S1"),
AIC_FUNCTION(4, "PBUS_AD11"),
AIC_FUNCTION(5, "UART3"),
AIC_FUNCTION(6, "GMAC1"),
AIC_FUNCTION(7, "PBUS_CLK")
),
AIC_PIN(
PINCTRL_PIN(92, "PF12"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOF12"),
AIC_FUNCTION(2, "I2S1"),
AIC_FUNCTION(4, "UART4"),
AIC_FUNCTION(5, "UART3"),
AIC_FUNCTION(6, "GMAC1"),
AIC_FUNCTION(7, "PBUS_NCS"),
AIC_FUNCTION(8, "GMAC1_TXD0")
),
AIC_PIN(
PINCTRL_PIN(93, "PF13"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOF13"),
AIC_FUNCTION(2, "I2S1-DOUT"),
AIC_FUNCTION(3, "I2S1-DIN"),
AIC_FUNCTION(4, "UART4"),
AIC_FUNCTION(5, "UART3"),
AIC_FUNCTION(6, "GMAC1"),
AIC_FUNCTION(7, "PBUS_NADV"),
AIC_FUNCTION(8, "GMAC1_RXCTL")
),
AIC_PIN(
PINCTRL_PIN(94, "PF14"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOF14"),
AIC_FUNCTION(2, "I2S1"),
AIC_FUNCTION(3, "SPK0"),
AIC_FUNCTION(4, "DMIC"),
AIC_FUNCTION(5, "UART4"),
AIC_FUNCTION(6, "GMAC1"),
AIC_FUNCTION(7, "PBUS_NWE")
),
AIC_PIN(
PINCTRL_PIN(95, "PF15"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOF15"),
AIC_FUNCTION(2, "DE_TE"),
AIC_FUNCTION(3, "SPK1"),
AIC_FUNCTION(4, "DMIC"),
AIC_FUNCTION(5, "UART4"),
AIC_FUNCTION(6, "GMAC1"),
AIC_FUNCTION(7, "PBUS_NOE")
),
AIC_PIN(
PINCTRL_PIN(96, "PU0"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOU0"),
AIC_FUNCTION(2, "USB0"),
AIC_FUNCTION(4, "UART0"),
AIC_FUNCTION(5, "UART1")
),
AIC_PIN(
PINCTRL_PIN(97, "PU1"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOU1"),
AIC_FUNCTION(2, "USB0"),
AIC_FUNCTION(4, "UART0"),
AIC_FUNCTION(5, "UART1")
),
AIC_PIN(
PINCTRL_PIN(98, "PU2"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOU2"),
AIC_FUNCTION(2, "USB1"),
AIC_FUNCTION(4, "UART0"),
AIC_FUNCTION(5, "UART2")
),
AIC_PIN(
PINCTRL_PIN(99, "PU3"),
AIC_FUNCTION(0, "DISABLE"),
AIC_FUNCTION(1, "GPIOU3"),
AIC_FUNCTION(2, "USB1"),
AIC_FUNCTION(4, "UART0"),
AIC_FUNCTION(5, "UART2")
),
#if defined(CONFIG_DEBUG_ON_FPGA_BOARD_ARTINCHIP) && defined(CONFIG_RISCV)
AIC_PIN(
PINCTRL_PIN(100, "PP0"),
AIC_FUNCTION(1, "GPIOP0")
),
AIC_PIN(
PINCTRL_PIN(101, "PP1"),
AIC_FUNCTION(1, "GPIOP1")
),
AIC_PIN(
PINCTRL_PIN(102, "PP2"),
AIC_FUNCTION(1, "GPIOP2")
),
AIC_PIN(
PINCTRL_PIN(103, "PP3"),
AIC_FUNCTION(1, "GPIOP3")
),
AIC_PIN(
PINCTRL_PIN(104, "PP4"),
AIC_FUNCTION(1, "GPIOP4")
),
AIC_PIN(
PINCTRL_PIN(105, "PP5"),
AIC_FUNCTION(1, "GPIOP5")
),
AIC_PIN(
PINCTRL_PIN(106, "PP6"),
AIC_FUNCTION(1, "GPIOP6")
),
AIC_PIN(
PINCTRL_PIN(107, "PP7"),
AIC_FUNCTION(1, "GPIOP7")
),
AIC_PIN(
PINCTRL_PIN(108, "PP8"),
AIC_FUNCTION(1, "GPIOP8")
),
AIC_PIN(
PINCTRL_PIN(109, "PP9"),
AIC_FUNCTION(1, "GPIOP9")
),
AIC_PIN(
PINCTRL_PIN(110, "PP10"),
AIC_FUNCTION(1, "GPIOP10")
),
AIC_PIN(
PINCTRL_PIN(111, "PP11"),
AIC_FUNCTION(1, "GPIOP11")
),
#endif
};
static struct aic_pinctrl_match_data aic_match_data_v1 = {
.pins = aic_pins_v1,
.npins = ARRAY_SIZE(aic_pins_v1),
};
static const struct of_device_id aic_pctrl_match_v1[] = {
{
.compatible = "artinchip,aic-pinctrl-v1.0",
.data = &aic_match_data_v1,
},
{ }
};
static struct platform_driver aic_pinctrl_driver_v1 = {
.probe = aic_pinctl_probe,
.driver = {
.name = "aic-pinctrl-v1",
.of_match_table = aic_pctrl_match_v1,
},
};
builtin_platform_driver(aic_pinctrl_driver_v1);