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

768 lines
16 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_v0_1[] = {
AIC_PIN(
PINCTRL_PIN(0, "PA0"),
AIC_FUNCTION(1, "GPIOA0"),
AIC_FUNCTION(2, "GPAI0"),
AIC_FUNCTION(3, "jtag"),
AIC_FUNCTION(5, "uart0")
),
AIC_PIN(
PINCTRL_PIN(1, "PA1"),
AIC_FUNCTION(1, "GPIOA1"),
AIC_FUNCTION(2, "GPAI1"),
AIC_FUNCTION(3, "jtag"),
AIC_FUNCTION(5, "uart0")
),
AIC_PIN(
PINCTRL_PIN(2, "PA2"),
AIC_FUNCTION(1, "GPIOA2"),
AIC_FUNCTION(2, "GPAI2"),
AIC_FUNCTION(3, "jtag"),
AIC_FUNCTION(4, "twi1"),
AIC_FUNCTION(5, "uart0")
),
AIC_PIN(
PINCTRL_PIN(3, "PA3"),
AIC_FUNCTION(1, "GPIOA3"),
AIC_FUNCTION(2, "GPAI3"),
AIC_FUNCTION(3, "jtag"),
AIC_FUNCTION(4, "twi1"),
AIC_FUNCTION(5, "uart0")
),
AIC_PIN(
PINCTRL_PIN(4, "PA4"),
AIC_FUNCTION(1, "GPIOA4"),
AIC_FUNCTION(2, "GPAI4"),
AIC_FUNCTION(4, "de_te"),
AIC_FUNCTION(5, "uart4")
),
AIC_PIN(
PINCTRL_PIN(5, "PA5"),
AIC_FUNCTION(1, "GPIOA5"),
AIC_FUNCTION(2, "GPAI5"),
AIC_FUNCTION(4, "ir"),
AIC_FUNCTION(5, "uart4")
),
AIC_PIN(
PINCTRL_PIN(6, "PA6"),
AIC_FUNCTION(1, "GPIOA6"),
AIC_FUNCTION(2, "GPAI6"),
AIC_FUNCTION(4, "ir"),
AIC_FUNCTION(5, "uart4")
),
AIC_PIN(
PINCTRL_PIN(7, "PA7"),
AIC_FUNCTION(1, "GPIOA7"),
AIC_FUNCTION(2, "GPAI7"),
AIC_FUNCTION(5, "uboot")
),
AIC_PIN(
PINCTRL_PIN(8, "PA8"),
AIC_FUNCTION(1, "GPIOA8"),
AIC_FUNCTION(2, "rtp"),
AIC_FUNCTION(4, "twi2"),
AIC_FUNCTION(5, "uart1")
),
AIC_PIN(
PINCTRL_PIN(9, "PA9"),
AIC_FUNCTION(1, "GPIOA9"),
AIC_FUNCTION(2, "rtp"),
AIC_FUNCTION(4, "twi2"),
AIC_FUNCTION(5, "uart1")
),
AIC_PIN(
PINCTRL_PIN(10, "PA10"),
AIC_FUNCTION(1, "GPIOA10"),
AIC_FUNCTION(2, "rtp"),
AIC_FUNCTION(4, "twi3"),
AIC_FUNCTION(5, "uart2")
),
AIC_PIN(
PINCTRL_PIN(11, "PA11"),
AIC_FUNCTION(1, "GPIOA11"),
AIC_FUNCTION(2, "rtp"),
AIC_FUNCTION(4, "twi3"),
AIC_FUNCTION(5, "uart2")
),
AIC_PIN(
PINCTRL_PIN(12, "PB0"),
AIC_FUNCTION(1, "GPIOB0"),
AIC_FUNCTION(2, "sdc0"),
AIC_FUNCTION(3, "spi0"),
AIC_FUNCTION(4, "twi0"),
AIC_FUNCTION(5, "uart0")
),
AIC_PIN(
PINCTRL_PIN(13, "PB1"),
AIC_FUNCTION(1, "GPIOB1"),
AIC_FUNCTION(2, "sdc0"),
AIC_FUNCTION(3, "spi0"),
AIC_FUNCTION(4, "twi0"),
AIC_FUNCTION(5, "uart0")
),
AIC_PIN(
PINCTRL_PIN(14, "PB2"),
AIC_FUNCTION(1, "GPIOB2"),
AIC_FUNCTION(2, "sdc0"),
AIC_FUNCTION(3, "spi0")
),
AIC_PIN(
PINCTRL_PIN(15, "PB3"),
AIC_FUNCTION(1, "GPIOB3"),
AIC_FUNCTION(2, "sdc0"),
AIC_FUNCTION(3, "spi0")
),
AIC_PIN(
PINCTRL_PIN(16, "PB4"),
AIC_FUNCTION(1, "GPIOB4"),
AIC_FUNCTION(2, "sdc0"),
AIC_FUNCTION(3, "spi0")
),
AIC_PIN(
PINCTRL_PIN(17, "PB5"),
AIC_FUNCTION(1, "GPIOB5"),
AIC_FUNCTION(2, "sdc0"),
AIC_FUNCTION(3, "spi0")
),
AIC_PIN(
PINCTRL_PIN(18, "PB6"),
AIC_FUNCTION(1, "GPIOB6"),
AIC_FUNCTION(2, "sdc0"),
AIC_FUNCTION(3, "spi1"),
AIC_FUNCTION(5, "uart1")
),
AIC_PIN(
PINCTRL_PIN(19, "PB7"),
AIC_FUNCTION(1, "GPIOB7"),
AIC_FUNCTION(2, "sdc0"),
AIC_FUNCTION(3, "spi1"),
AIC_FUNCTION(5, "uart1")
),
AIC_PIN(
PINCTRL_PIN(20, "PB8"),
AIC_FUNCTION(1, "GPIOB8"),
AIC_FUNCTION(2, "sdc0"),
AIC_FUNCTION(3, "spi1"),
AIC_FUNCTION(5, "uart2")
),
AIC_PIN(
PINCTRL_PIN(21, "PB9"),
AIC_FUNCTION(1, "GPIOB9"),
AIC_FUNCTION(2, "sdc0"),
AIC_FUNCTION(3, "spi1"),
AIC_FUNCTION(5, "uart2")
),
AIC_PIN(
PINCTRL_PIN(22, "PB10"),
AIC_FUNCTION(1, "GPIOB10"),
AIC_FUNCTION(2, "sdc0"),
AIC_FUNCTION(3, "spi1"),
AIC_FUNCTION(5, "uart3")
),
AIC_PIN(
PINCTRL_PIN(23, "PB11"),
AIC_FUNCTION(1, "GPIOB11"),
AIC_FUNCTION(2, "sdc0"),
AIC_FUNCTION(3, "spi1"),
AIC_FUNCTION(5, "uart3")
),
AIC_PIN(
PINCTRL_PIN(24, "PC0"),
AIC_FUNCTION(1, "GPIOC0"),
AIC_FUNCTION(2, "sdc1"),
AIC_FUNCTION(3, "spi0")
),
AIC_PIN(
PINCTRL_PIN(25, "PC1"),
AIC_FUNCTION(1, "GPIOC1"),
AIC_FUNCTION(2, "sdc1"),
AIC_FUNCTION(3, "spi0")
),
AIC_PIN(
PINCTRL_PIN(26, "PC2"),
AIC_FUNCTION(1, "GPIOC2"),
AIC_FUNCTION(2, "sdc1"),
AIC_FUNCTION(3, "spi0"),
AIC_FUNCTION(5, "uart3")
),
AIC_PIN(
PINCTRL_PIN(27, "PC3"),
AIC_FUNCTION(1, "GPIOC3"),
AIC_FUNCTION(2, "sdc1"),
AIC_FUNCTION(3, "spi0"),
AIC_FUNCTION(5, "uart3")
),
AIC_PIN(
PINCTRL_PIN(28, "PC4"),
AIC_FUNCTION(1, "GPIOC4"),
AIC_FUNCTION(2, "sdc1"),
AIC_FUNCTION(3, "spi0"),
AIC_FUNCTION(5, "uart5")
),
AIC_PIN(
PINCTRL_PIN(29, "PC5"),
AIC_FUNCTION(1, "GPIOC5"),
AIC_FUNCTION(2, "sdc1"),
AIC_FUNCTION(3, "spi0"),
AIC_FUNCTION(5, "uart5")
),
AIC_PIN(
PINCTRL_PIN(30, "PC6"),
AIC_FUNCTION(1, "GPIOC6"),
AIC_FUNCTION(2, "sdc1"),
AIC_FUNCTION(3, "clk_out"),
AIC_FUNCTION(5, "uart5")
),
AIC_PIN(
PINCTRL_PIN(31, "PD0"),
AIC_FUNCTION(1, "GPIOD0"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "spi1"),
AIC_FUNCTION(5, "pwm0")
),
AIC_PIN(
PINCTRL_PIN(32, "PD1"),
AIC_FUNCTION(1, "GPIOD1"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "spi1"),
AIC_FUNCTION(5, "pwm1")
),
AIC_PIN(
PINCTRL_PIN(33, "PD2"),
AIC_FUNCTION(1, "GPIOD2"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "spi1"),
AIC_FUNCTION(4, "de_te"),
AIC_FUNCTION(5, "pwm2"),
AIC_FUNCTION(6, "gmac0")
),
AIC_PIN(
PINCTRL_PIN(34, "PD3"),
AIC_FUNCTION(1, "GPIOD3"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "spi1"),
AIC_FUNCTION(5, "pwm3"),
AIC_FUNCTION(6, "gmac0")
),
AIC_PIN(
PINCTRL_PIN(35, "PD4"),
AIC_FUNCTION(1, "GPIOD4"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "spi1"),
AIC_FUNCTION(5, "pwm4"),
AIC_FUNCTION(6, "gmac1")
),
AIC_PIN(
PINCTRL_PIN(36, "PD5"),
AIC_FUNCTION(1, "GPIOD5"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "spi1"),
AIC_FUNCTION(5, "pwm5"),
AIC_FUNCTION(6, "gmac1")
),
AIC_PIN(
PINCTRL_PIN(37, "PD6"),
AIC_FUNCTION(1, "GPIOD6"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(5, "uart4")
),
AIC_PIN(
PINCTRL_PIN(38, "PD7"),
AIC_FUNCTION(1, "GPIOD7"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(5, "uart4")
),
AIC_PIN(
PINCTRL_PIN(39, "PD8"),
AIC_FUNCTION(1, "GPIOD8"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(5, "uart4")
),
AIC_PIN(
PINCTRL_PIN(40, "PD9"),
AIC_FUNCTION(1, "GPIOD9"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(5, "uart5")
),
AIC_PIN(
PINCTRL_PIN(41, "PD10"),
AIC_FUNCTION(1, "GPIOD10"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(5, "uart5")
),
AIC_PIN(
PINCTRL_PIN(42, "PD11"),
AIC_FUNCTION(1, "GPIOD11"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(5, "uart5")
),
AIC_PIN(
PINCTRL_PIN(43, "PD12"),
AIC_FUNCTION(1, "GPIOD12"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(5, "uart6")
),
AIC_PIN(
PINCTRL_PIN(44, "PD13"),
AIC_FUNCTION(1, "GPIOD13"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(5, "uart6")
),
AIC_PIN(
PINCTRL_PIN(45, "PD14"),
AIC_FUNCTION(1, "GPIOD14"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(5, "uart6")
),
AIC_PIN(
PINCTRL_PIN(46, "PD15"),
AIC_FUNCTION(1, "GPIOD15"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(5, "uart6")
),
AIC_PIN(
PINCTRL_PIN(47, "PD16"),
AIC_FUNCTION(1, "GPIOD16"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(5, "uart7")
),
AIC_PIN(
PINCTRL_PIN(48, "PD17"),
AIC_FUNCTION(1, "GPIOD17"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(5, "uart7")
),
AIC_PIN(
PINCTRL_PIN(49, "PD18"),
AIC_FUNCTION(1, "GPIOD18"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(4, "dsi"),
AIC_FUNCTION(5, "uart7")
),
AIC_PIN(
PINCTRL_PIN(50, "PD19"),
AIC_FUNCTION(1, "GPIOD19"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(4, "dsi"),
AIC_FUNCTION(5, "uart7")
),
AIC_PIN(
PINCTRL_PIN(51, "PD20"),
AIC_FUNCTION(1, "GPIOD20"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(4, "dsi"),
AIC_FUNCTION(5, "pwm0")
),
AIC_PIN(
PINCTRL_PIN(52, "PD21"),
AIC_FUNCTION(1, "GPIOD21"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(4, "dsi"),
AIC_FUNCTION(5, "pwm1")
),
AIC_PIN(
PINCTRL_PIN(53, "PD22"),
AIC_FUNCTION(1, "GPIOD22"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(4, "dsi"),
AIC_FUNCTION(5, "pwm2")
),
AIC_PIN(
PINCTRL_PIN(54, "PD23"),
AIC_FUNCTION(1, "GPIOD23"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(4, "dsi"),
AIC_FUNCTION(5, "pwm3")
),
AIC_PIN(
PINCTRL_PIN(55, "PD24"),
AIC_FUNCTION(1, "GPIOD24"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(4, "dsi"),
AIC_FUNCTION(5, "pwm4")
),
AIC_PIN(
PINCTRL_PIN(56, "PD25"),
AIC_FUNCTION(1, "GPIOD25"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(4, "dsi"),
AIC_FUNCTION(5, "pwm5")
),
AIC_PIN(
PINCTRL_PIN(57, "PD26"),
AIC_FUNCTION(1, "GPIOD26"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(4, "dsi"),
AIC_FUNCTION(5, "pwm6")
),
AIC_PIN(
PINCTRL_PIN(58, "PD27"),
AIC_FUNCTION(1, "GPIOD27"),
AIC_FUNCTION(2, "lcd"),
AIC_FUNCTION(3, "lvds"),
AIC_FUNCTION(4, "dsi"),
AIC_FUNCTION(5, "pwm7")
),
AIC_PIN(
PINCTRL_PIN(59, "PE0"),
AIC_FUNCTION(1, "GPIOE0"),
AIC_FUNCTION(2, "sdc2"),
AIC_FUNCTION(6, "gmac0")
),
AIC_PIN(
PINCTRL_PIN(60, "PE1"),
AIC_FUNCTION(1, "GPIOE1"),
AIC_FUNCTION(2, "sdc2"),
AIC_FUNCTION(6, "gmac0")
),
AIC_PIN(
PINCTRL_PIN(61, "PE2"),
AIC_FUNCTION(1, "GPIOE2"),
AIC_FUNCTION(2, "sdc2"),
AIC_FUNCTION(6, "gmac0")
),
AIC_PIN(
PINCTRL_PIN(62, "PE3"),
AIC_FUNCTION(1, "GPIOE3"),
AIC_FUNCTION(2, "sdc2"),
AIC_FUNCTION(6, "gmac0")
),
AIC_PIN(
PINCTRL_PIN(63, "PE4"),
AIC_FUNCTION(1, "GPIOE4"),
AIC_FUNCTION(2, "sdc2"),
AIC_FUNCTION(6, "gmac0")
),
AIC_PIN(
PINCTRL_PIN(64, "PE5"),
AIC_FUNCTION(1, "GPIOE5"),
AIC_FUNCTION(2, "sdc2"),
AIC_FUNCTION(6, "gmac0")
),
AIC_PIN(
PINCTRL_PIN(65, "PE6"),
AIC_FUNCTION(1, "GPIOE6"),
AIC_FUNCTION(5, "uart6"),
AIC_FUNCTION(6, "gmac0")
),
AIC_PIN(
PINCTRL_PIN(66, "PE7"),
AIC_FUNCTION(1, "GPIOE7"),
AIC_FUNCTION(5, "uart6"),
AIC_FUNCTION(6, "gmac0")
),
AIC_PIN(
PINCTRL_PIN(67, "PE8"),
AIC_FUNCTION(1, "GPIOE8"),
AIC_FUNCTION(5, "uart6"),
AIC_FUNCTION(6, "gmac0")
),
AIC_PIN(
PINCTRL_PIN(68, "PE9"),
AIC_FUNCTION(1, "GPIOE9"),
AIC_FUNCTION(5, "uart6"),
AIC_FUNCTION(6, "gmac0")
),
AIC_PIN(
PINCTRL_PIN(69, "PE10"),
AIC_FUNCTION(1, "GPIOE10"),
AIC_FUNCTION(6, "clk_out2")
),
AIC_PIN(
PINCTRL_PIN(70, "PE11"),
AIC_FUNCTION(1, "GPIOE11"),
AIC_FUNCTION(2, "i2s0"),
AIC_FUNCTION(4, "twi2"),
AIC_FUNCTION(5, "uart4"),
AIC_FUNCTION(6, "gmac0")
),
AIC_PIN(
PINCTRL_PIN(71, "PE12"),
AIC_FUNCTION(1, "GPIOE12"),
AIC_FUNCTION(2, "i2s0"),
AIC_FUNCTION(4, "twi2"),
AIC_FUNCTION(5, "uart4"),
AIC_FUNCTION(6, "gmac0")
),
AIC_PIN(
PINCTRL_PIN(72, "PE13"),
AIC_FUNCTION(1, "GPIOE13"),
AIC_FUNCTION(2, "i2s0"),
AIC_FUNCTION(3, "clk_out1"),
AIC_FUNCTION(5, "uart4"),
AIC_FUNCTION(6, "gmac0")
),
AIC_PIN(
PINCTRL_PIN(73, "PE14"),
AIC_FUNCTION(1, "GPIOE14"),
AIC_FUNCTION(2, "i2s0"),
AIC_FUNCTION(4, "twi3"),
AIC_FUNCTION(5, "uart2"),
AIC_FUNCTION(6, "gmac0")
),
AIC_PIN(
PINCTRL_PIN(74, "PE15"),
AIC_FUNCTION(1, "GPIOE15"),
AIC_FUNCTION(2, "i2s0"),
AIC_FUNCTION(4, "twi3"),
AIC_FUNCTION(5, "uart2"),
AIC_FUNCTION(6, "gmac0")
),
AIC_PIN(
PINCTRL_PIN(75, "PE16"),
AIC_FUNCTION(1, "GPIOE16"),
AIC_FUNCTION(2, "dmic"),
AIC_FUNCTION(3, "spk0"),
AIC_FUNCTION(5, "uart1"),
AIC_FUNCTION(6, "can0")
),
AIC_PIN(
PINCTRL_PIN(76, "PE17"),
AIC_FUNCTION(1, "GPIOE17"),
AIC_FUNCTION(2, "dmic"),
AIC_FUNCTION(3, "spk1"),
AIC_FUNCTION(5, "uart1"),
AIC_FUNCTION(6, "can0")
),
AIC_PIN(
PINCTRL_PIN(77, "PE18"),
AIC_FUNCTION(1, "GPIOE18"),
AIC_FUNCTION(5, "pwm6"),
AIC_FUNCTION(6, "can1")
),
AIC_PIN(
PINCTRL_PIN(78, "PE19"),
AIC_FUNCTION(1, "GPIOE19"),
AIC_FUNCTION(5, "pwm7"),
AIC_FUNCTION(6, "can1")
),
AIC_PIN(
PINCTRL_PIN(79, "PF0"),
AIC_FUNCTION(1, "GPIOF0"),
AIC_FUNCTION(2, "sdc2"),
AIC_FUNCTION(5, "uart6"),
AIC_FUNCTION(6, "gmac1"),
AIC_FUNCTION(7, "ulpi")
),
AIC_PIN(
PINCTRL_PIN(80, "PF1"),
AIC_FUNCTION(1, "GPIOF1"),
AIC_FUNCTION(2, "sdc2"),
AIC_FUNCTION(5, "uart6"),
AIC_FUNCTION(6, "gmac1"),
AIC_FUNCTION(7, "ulpi")
),
AIC_PIN(
PINCTRL_PIN(81, "PF2"),
AIC_FUNCTION(1, "GPIOF2"),
AIC_FUNCTION(2, "sdc2"),
AIC_FUNCTION(5, "uart6"),
AIC_FUNCTION(6, "gmac1"),
AIC_FUNCTION(7, "ulpi")
),
AIC_PIN(
PINCTRL_PIN(82, "PF3"),
AIC_FUNCTION(1, "GPIOF3"),
AIC_FUNCTION(2, "sdc2"),
AIC_FUNCTION(5, "uart6"),
AIC_FUNCTION(6, "gmac1"),
AIC_FUNCTION(7, "ulpi")
),
AIC_PIN(
PINCTRL_PIN(83, "PF4"),
AIC_FUNCTION(1, "GPIOF4"),
AIC_FUNCTION(2, "sdc2"),
AIC_FUNCTION(6, "gmac1"),
AIC_FUNCTION(7, "ulpi")
),
AIC_PIN(
PINCTRL_PIN(84, "PF5"),
AIC_FUNCTION(1, "GPIOF5"),
AIC_FUNCTION(2, "sdc2"),
AIC_FUNCTION(6, "gmac1"),
AIC_FUNCTION(7, "ulpi")
),
AIC_PIN(
PINCTRL_PIN(85, "PF6"),
AIC_FUNCTION(1, "GPIOF6"),
AIC_FUNCTION(5, "uart7"),
AIC_FUNCTION(6, "gmac1"),
AIC_FUNCTION(7, "ulpi")
),
AIC_PIN(
PINCTRL_PIN(86, "PF7"),
AIC_FUNCTION(1, "GPIOF7"),
AIC_FUNCTION(5, "uart7"),
AIC_FUNCTION(6, "gmac1"),
AIC_FUNCTION(7, "ulpi")
),
AIC_PIN(
PINCTRL_PIN(87, "PF8"),
AIC_FUNCTION(1, "GPIOF8"),
AIC_FUNCTION(5, "uart7"),
AIC_FUNCTION(6, "gmac1"),
AIC_FUNCTION(7, "ulpi")
),
AIC_PIN(
PINCTRL_PIN(88, "PF9"),
AIC_FUNCTION(1, "GPIOF9"),
AIC_FUNCTION(5, "uart7"),
AIC_FUNCTION(6, "gmac1"),
AIC_FUNCTION(7, "ulpi")
),
AIC_PIN(
PINCTRL_PIN(89, "PF10"),
AIC_FUNCTION(1, "GPIOF10"),
AIC_FUNCTION(6, "clk_out3"),
AIC_FUNCTION(7, "ulpi")
),
AIC_PIN(
PINCTRL_PIN(90, "PF11"),
AIC_FUNCTION(1, "GPIOF11"),
AIC_FUNCTION(2, "i2s1"),
AIC_FUNCTION(4, "twi0"),
AIC_FUNCTION(5, "uart5"),
AIC_FUNCTION(6, "gmac1"),
AIC_FUNCTION(7, "ulpi")
),
AIC_PIN(
PINCTRL_PIN(91, "PF12"),
AIC_FUNCTION(1, "GPIOF12"),
AIC_FUNCTION(2, "i2s1"),
AIC_FUNCTION(3, "dmic"),
AIC_FUNCTION(4, "twi0"),
AIC_FUNCTION(5, "uart5"),
AIC_FUNCTION(6, "gmac1")
),
AIC_PIN(
PINCTRL_PIN(92, "PF13"),
AIC_FUNCTION(1, "GPIOF13"),
AIC_FUNCTION(2, "i2s1"),
AIC_FUNCTION(3, "dmic"),
AIC_FUNCTION(5, "uart5"),
AIC_FUNCTION(6, "gmac1")
),
AIC_PIN(
PINCTRL_PIN(93, "PF14"),
AIC_FUNCTION(1, "GPIOF14"),
AIC_FUNCTION(2, "i2s1"),
AIC_FUNCTION(3, "spk0"),
AIC_FUNCTION(4, "twi1"),
AIC_FUNCTION(5, "uart3"),
AIC_FUNCTION(6, "gmac1")
),
AIC_PIN(
PINCTRL_PIN(94, "PF15"),
AIC_FUNCTION(1, "GPIOF15"),
AIC_FUNCTION(2, "i2s1"),
AIC_FUNCTION(3, "spk1"),
AIC_FUNCTION(4, "twi1"),
AIC_FUNCTION(5, "uart3"),
AIC_FUNCTION(6, "gmac1")
),
#if defined(CONFIG_DEBUG_ON_FPGA_BOARD_ARTINCHIP) && defined(CONFIG_RISCV)
AIC_PIN(
PINCTRL_PIN(95, "PP0"),
AIC_FUNCTION(1, "GPIOP0")
),
AIC_PIN(
PINCTRL_PIN(96, "PP1"),
AIC_FUNCTION(1, "GPIOP1")
),
AIC_PIN(
PINCTRL_PIN(97, "PP2"),
AIC_FUNCTION(1, "GPIOP2")
),
AIC_PIN(
PINCTRL_PIN(98, "PP3"),
AIC_FUNCTION(1, "GPIOP3")
),
AIC_PIN(
PINCTRL_PIN(99, "PP4"),
AIC_FUNCTION(1, "GPIOP4")
),
AIC_PIN(
PINCTRL_PIN(100, "PP5"),
AIC_FUNCTION(1, "GPIOP5")
),
AIC_PIN(
PINCTRL_PIN(101, "PP6"),
AIC_FUNCTION(1, "GPIOP6")
),
AIC_PIN(
PINCTRL_PIN(102, "PP7"),
AIC_FUNCTION(1, "GPIOP7")
),
AIC_PIN(
PINCTRL_PIN(103, "PP8"),
AIC_FUNCTION(1, "GPIOP8")
),
AIC_PIN(
PINCTRL_PIN(104, "PP9"),
AIC_FUNCTION(1, "GPIOP9")
),
AIC_PIN(
PINCTRL_PIN(105, "PP10"),
AIC_FUNCTION(1, "GPIOP10")
),
AIC_PIN(
PINCTRL_PIN(106, "PP11"),
AIC_FUNCTION(1, "GPIOP11")
),
#endif
};
static struct aic_pinctrl_match_data aic_match_data_v0_1 = {
.pins = aic_pins_v0_1,
.npins = ARRAY_SIZE(aic_pins_v0_1),
};
static const struct of_device_id aic_pctrl_match_v0_1[] = {
{
.compatible = "artinchip,aic-pinctrl-v0.1",
.data = &aic_match_data_v0_1,
},
{ }
};
static struct platform_driver aic_pinctrl_driver_v0_1 = {
.probe = aic_pinctl_probe,
.driver = {
.name = "aic-pinctrl-v0.1",
.of_match_table = aic_pctrl_match_v0_1,
},
};
builtin_platform_driver(aic_pinctrl_driver_v0_1);