// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2020 Artinchip Inc. */ #include #include #include #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);