// SPDX-License-Identifier: GPL-2.0
/*
 * The MT7988 driver based on Linux generic pinctrl binding.
 *
 * Copyright (C) 2020 MediaTek Inc.
 * Author: Sam Shih <sam.shih@mediatek.com>
 */

#include "pinctrl-moore.h"

enum MT7988_PINCTRL_REG_PAGE {
	GPIO_BASE,
	IOCFG_TR_BASE,
	IOCFG_BR_BASE,
	IOCFG_RB_BASE,
	IOCFG_LB_BASE,
	IOCFG_TL_BASE,
};

#define MT7988_PIN(_number, _name) MTK_PIN(_number, _name, 0, _number, DRV_GRP4)

#define PIN_FIELD_BASE(_s_pin, _e_pin, _i_base, _s_addr, _x_addrs, _s_bit,     \
		       _x_bits)                                                \
	PIN_FIELD_CALC(_s_pin, _e_pin, _i_base, _s_addr, _x_addrs, _s_bit,     \
		       _x_bits, 32, 0)

#define PINS_FIELD_BASE(_s_pin, _e_pin, _i_base, _s_addr, _x_addrs, _s_bit,    \
			_x_bits)                                               \
	PIN_FIELD_CALC(_s_pin, _e_pin, _i_base, _s_addr, _x_addrs, _s_bit,     \
		       _x_bits, 32, 1)

static const struct mtk_pin_field_calc mt7988_pin_mode_range[] = {
	PIN_FIELD(0, 83, 0x300, 0x10, 0, 4),
};

static const struct mtk_pin_field_calc mt7988_pin_dir_range[] = {
	PIN_FIELD(0, 83, 0x0, 0x10, 0, 1),
};

static const struct mtk_pin_field_calc mt7988_pin_di_range[] = {
	PIN_FIELD(0, 83, 0x200, 0x10, 0, 1),
};

static const struct mtk_pin_field_calc mt7988_pin_do_range[] = {
	PIN_FIELD(0, 83, 0x100, 0x10, 0, 1),
};

static const struct mtk_pin_field_calc mt7988_pin_ies_range[] = {
	PIN_FIELD_BASE(0, 0, 5, 0x30, 0x10, 13, 1),
	PIN_FIELD_BASE(1, 1, 5, 0x30, 0x10, 14, 1),
	PIN_FIELD_BASE(2, 2, 5, 0x30, 0x10, 11, 1),
	PIN_FIELD_BASE(3, 3, 5, 0x30, 0x10, 12, 1),
	PIN_FIELD_BASE(4, 4, 5, 0x30, 0x10, 0, 1),
	PIN_FIELD_BASE(5, 5, 5, 0x30, 0x10, 9, 1),
	PIN_FIELD_BASE(6, 6, 5, 0x30, 0x10, 10, 1),

	PIN_FIELD_BASE(7, 7, 4, 0x30, 0x10, 8, 1),
	PIN_FIELD_BASE(8, 8, 4, 0x30, 0x10, 6, 1),
	PIN_FIELD_BASE(9, 9, 4, 0x30, 0x10, 5, 1),
	PIN_FIELD_BASE(10, 10, 4, 0x30, 0x10, 3, 1),

	PIN_FIELD_BASE(11, 11, 1, 0x40, 0x10, 0, 1),
	PIN_FIELD_BASE(12, 12, 1, 0x40, 0x10, 21, 1),
	PIN_FIELD_BASE(13, 13, 1, 0x40, 0x10, 1, 1),
	PIN_FIELD_BASE(14, 14, 1, 0x40, 0x10, 2, 1),

	PIN_FIELD_BASE(15, 15, 5, 0x30, 0x10, 7, 1),
	PIN_FIELD_BASE(16, 16, 5, 0x30, 0x10, 8, 1),
	PIN_FIELD_BASE(17, 17, 5, 0x30, 0x10, 3, 1),
	PIN_FIELD_BASE(18, 18, 5, 0x30, 0x10, 4, 1),

	PIN_FIELD_BASE(19, 19, 4, 0x30, 0x10, 7, 1),
	PIN_FIELD_BASE(20, 20, 4, 0x30, 0x10, 4, 1),

	PIN_FIELD_BASE(21, 21, 3, 0x50, 0x10, 17, 1),
	PIN_FIELD_BASE(22, 22, 3, 0x50, 0x10, 23, 1),
	PIN_FIELD_BASE(23, 23, 3, 0x50, 0x10, 20, 1),
	PIN_FIELD_BASE(24, 24, 3, 0x50, 0x10, 19, 1),
	PIN_FIELD_BASE(25, 25, 3, 0x50, 0x10, 21, 1),
	PIN_FIELD_BASE(26, 26, 3, 0x50, 0x10, 22, 1),
	PIN_FIELD_BASE(27, 27, 3, 0x50, 0x10, 18, 1),
	PIN_FIELD_BASE(28, 28, 3, 0x50, 0x10, 25, 1),
	PIN_FIELD_BASE(29, 29, 3, 0x50, 0x10, 26, 1),
	PIN_FIELD_BASE(30, 30, 3, 0x50, 0x10, 27, 1),
	PIN_FIELD_BASE(31, 31, 3, 0x50, 0x10, 24, 1),
	PIN_FIELD_BASE(32, 32, 3, 0x50, 0x10, 28, 1),
	PIN_FIELD_BASE(33, 33, 3, 0x60, 0x10, 0, 1),
	PIN_FIELD_BASE(34, 34, 3, 0x50, 0x10, 31, 1),
	PIN_FIELD_BASE(35, 35, 3, 0x50, 0x10, 29, 1),
	PIN_FIELD_BASE(36, 36, 3, 0x50, 0x10, 30, 1),
	PIN_FIELD_BASE(37, 37, 3, 0x60, 0x10, 1, 1),
	PIN_FIELD_BASE(38, 38, 3, 0x50, 0x10, 11, 1),
	PIN_FIELD_BASE(39, 39, 3, 0x50, 0x10, 10, 1),
	PIN_FIELD_BASE(40, 40, 3, 0x50, 0x10, 0, 1),
	PIN_FIELD_BASE(41, 41, 3, 0x50, 0x10, 1, 1),
	PIN_FIELD_BASE(42, 42, 3, 0x50, 0x10, 9, 1),
	PIN_FIELD_BASE(43, 43, 3, 0x50, 0x10, 8, 1),
	PIN_FIELD_BASE(44, 44, 3, 0x50, 0x10, 7, 1),
	PIN_FIELD_BASE(45, 45, 3, 0x50, 0x10, 6, 1),
	PIN_FIELD_BASE(46, 46, 3, 0x50, 0x10, 5, 1),
	PIN_FIELD_BASE(47, 47, 3, 0x50, 0x10, 4, 1),
	PIN_FIELD_BASE(48, 48, 3, 0x50, 0x10, 3, 1),
	PIN_FIELD_BASE(49, 49, 3, 0x50, 0x10, 2, 1),
	PIN_FIELD_BASE(50, 50, 3, 0x50, 0x10, 15, 1),
	PIN_FIELD_BASE(51, 51, 3, 0x50, 0x10, 12, 1),
	PIN_FIELD_BASE(52, 52, 3, 0x50, 0x10, 13, 1),
	PIN_FIELD_BASE(53, 53, 3, 0x50, 0x10, 14, 1),
	PIN_FIELD_BASE(54, 54, 3, 0x50, 0x10, 16, 1),

	PIN_FIELD_BASE(55, 55, 1, 0x40, 0x10, 14, 1),
	PIN_FIELD_BASE(56, 56, 1, 0x40, 0x10, 15, 1),
	PIN_FIELD_BASE(57, 57, 1, 0x40, 0x10, 13, 1),
	PIN_FIELD_BASE(58, 58, 1, 0x40, 0x10, 4, 1),
	PIN_FIELD_BASE(59, 59, 1, 0x40, 0x10, 5, 1),
	PIN_FIELD_BASE(60, 60, 1, 0x40, 0x10, 6, 1),
	PIN_FIELD_BASE(61, 61, 1, 0x40, 0x10, 3, 1),
	PIN_FIELD_BASE(62, 62, 1, 0x40, 0x10, 7, 1),
	PIN_FIELD_BASE(63, 63, 1, 0x40, 0x10, 20, 1),
	PIN_FIELD_BASE(64, 64, 1, 0x40, 0x10, 8, 1),
	PIN_FIELD_BASE(65, 65, 1, 0x40, 0x10, 9, 1),
	PIN_FIELD_BASE(66, 66, 1, 0x40, 0x10, 10, 1),
	PIN_FIELD_BASE(67, 67, 1, 0x40, 0x10, 11, 1),
	PIN_FIELD_BASE(68, 68, 1, 0x40, 0x10, 12, 1),

	PIN_FIELD_BASE(69, 69, 5, 0x30, 0x10, 1, 1),
	PIN_FIELD_BASE(70, 70, 5, 0x30, 0x10, 2, 1),
	PIN_FIELD_BASE(71, 71, 5, 0x30, 0x10, 5, 1),
	PIN_FIELD_BASE(72, 72, 5, 0x30, 0x10, 6, 1),

	PIN_FIELD_BASE(73, 73, 4, 0x30, 0x10, 10, 1),
	PIN_FIELD_BASE(74, 74, 4, 0x30, 0x10, 1, 1),
	PIN_FIELD_BASE(75, 75, 4, 0x30, 0x10, 11, 1),
	PIN_FIELD_BASE(76, 76, 4, 0x30, 0x10, 9, 1),
	PIN_FIELD_BASE(77, 77, 4, 0x30, 0x10, 2, 1),
	PIN_FIELD_BASE(78, 78, 4, 0x30, 0x10, 0, 1),
	PIN_FIELD_BASE(79, 79, 4, 0x30, 0x10, 12, 1),

	PIN_FIELD_BASE(80, 80, 1, 0x40, 0x10, 18, 1),
	PIN_FIELD_BASE(81, 81, 1, 0x40, 0x10, 19, 1),
	PIN_FIELD_BASE(82, 82, 1, 0x40, 0x10, 16, 1),
	PIN_FIELD_BASE(83, 83, 1, 0x40, 0x10, 17, 1),
};

static const struct mtk_pin_field_calc mt7988_pin_smt_range[] = {
	PIN_FIELD_BASE(0, 0, 5, 0xc0, 0x10, 13, 1),
	PIN_FIELD_BASE(1, 1, 5, 0xc0, 0x10, 14, 1),
	PIN_FIELD_BASE(2, 2, 5, 0xc0, 0x10, 11, 1),
	PIN_FIELD_BASE(3, 3, 5, 0xc0, 0x10, 12, 1),
	PIN_FIELD_BASE(4, 4, 5, 0xc0, 0x10, 0, 1),
	PIN_FIELD_BASE(5, 5, 5, 0xc0, 0x10, 9, 1),
	PIN_FIELD_BASE(6, 6, 5, 0xc0, 0x10, 10, 1),

	PIN_FIELD_BASE(7, 7, 4, 0xb0, 0x10, 8, 1),
	PIN_FIELD_BASE(8, 8, 4, 0xb0, 0x10, 6, 1),
	PIN_FIELD_BASE(9, 9, 4, 0xb0, 0x10, 5, 1),
	PIN_FIELD_BASE(10, 10, 4, 0xb0, 0x10, 3, 1),

	PIN_FIELD_BASE(11, 11, 1, 0xe0, 0x10, 0, 1),
	PIN_FIELD_BASE(12, 12, 1, 0xe0, 0x10, 21, 1),
	PIN_FIELD_BASE(13, 13, 1, 0xe0, 0x10, 1, 1),
	PIN_FIELD_BASE(14, 14, 1, 0xe0, 0x10, 2, 1),

	PIN_FIELD_BASE(15, 15, 5, 0xc0, 0x10, 7, 1),
	PIN_FIELD_BASE(16, 16, 5, 0xc0, 0x10, 8, 1),
	PIN_FIELD_BASE(17, 17, 5, 0xc0, 0x10, 3, 1),
	PIN_FIELD_BASE(18, 18, 5, 0xc0, 0x10, 4, 1),

	PIN_FIELD_BASE(19, 19, 4, 0xb0, 0x10, 7, 1),
	PIN_FIELD_BASE(20, 20, 4, 0xb0, 0x10, 4, 1),

	PIN_FIELD_BASE(21, 21, 3, 0x140, 0x10, 17, 1),
	PIN_FIELD_BASE(22, 22, 3, 0x140, 0x10, 23, 1),
	PIN_FIELD_BASE(23, 23, 3, 0x140, 0x10, 20, 1),
	PIN_FIELD_BASE(24, 24, 3, 0x140, 0x10, 19, 1),
	PIN_FIELD_BASE(25, 25, 3, 0x140, 0x10, 21, 1),
	PIN_FIELD_BASE(26, 26, 3, 0x140, 0x10, 22, 1),
	PIN_FIELD_BASE(27, 27, 3, 0x140, 0x10, 18, 1),
	PIN_FIELD_BASE(28, 28, 3, 0x140, 0x10, 25, 1),
	PIN_FIELD_BASE(29, 29, 3, 0x140, 0x10, 26, 1),
	PIN_FIELD_BASE(30, 30, 3, 0x140, 0x10, 27, 1),
	PIN_FIELD_BASE(31, 31, 3, 0x140, 0x10, 24, 1),
	PIN_FIELD_BASE(32, 32, 3, 0x140, 0x10, 28, 1),
	PIN_FIELD_BASE(33, 33, 3, 0x150, 0x10, 0, 1),
	PIN_FIELD_BASE(34, 34, 3, 0x140, 0x10, 31, 1),
	PIN_FIELD_BASE(35, 35, 3, 0x140, 0x10, 29, 1),
	PIN_FIELD_BASE(36, 36, 3, 0x140, 0x10, 30, 1),
	PIN_FIELD_BASE(37, 37, 3, 0x150, 0x10, 1, 1),
	PIN_FIELD_BASE(38, 38, 3, 0x140, 0x10, 11, 1),
	PIN_FIELD_BASE(39, 39, 3, 0x140, 0x10, 10, 1),
	PIN_FIELD_BASE(40, 40, 3, 0x140, 0x10, 0, 1),
	PIN_FIELD_BASE(41, 41, 3, 0x140, 0x10, 1, 1),
	PIN_FIELD_BASE(42, 42, 3, 0x140, 0x10, 9, 1),
	PIN_FIELD_BASE(43, 43, 3, 0x140, 0x10, 8, 1),
	PIN_FIELD_BASE(44, 44, 3, 0x140, 0x10, 7, 1),
	PIN_FIELD_BASE(45, 45, 3, 0x140, 0x10, 6, 1),
	PIN_FIELD_BASE(46, 46, 3, 0x140, 0x10, 5, 1),
	PIN_FIELD_BASE(47, 47, 3, 0x140, 0x10, 4, 1),
	PIN_FIELD_BASE(48, 48, 3, 0x140, 0x10, 3, 1),
	PIN_FIELD_BASE(49, 49, 3, 0x140, 0x10, 2, 1),
	PIN_FIELD_BASE(50, 50, 3, 0x140, 0x10, 15, 1),
	PIN_FIELD_BASE(51, 51, 3, 0x140, 0x10, 12, 1),
	PIN_FIELD_BASE(52, 52, 3, 0x140, 0x10, 13, 1),
	PIN_FIELD_BASE(53, 53, 3, 0x140, 0x10, 14, 1),
	PIN_FIELD_BASE(54, 54, 3, 0x140, 0x10, 16, 1),

	PIN_FIELD_BASE(55, 55, 1, 0xe0, 0x10, 14, 1),
	PIN_FIELD_BASE(56, 56, 1, 0xe0, 0x10, 15, 1),
	PIN_FIELD_BASE(57, 57, 1, 0xe0, 0x10, 13, 1),
	PIN_FIELD_BASE(58, 58, 1, 0xe0, 0x10, 4, 1),
	PIN_FIELD_BASE(59, 59, 1, 0xe0, 0x10, 5, 1),
	PIN_FIELD_BASE(60, 60, 1, 0xe0, 0x10, 6, 1),
	PIN_FIELD_BASE(61, 61, 1, 0xe0, 0x10, 3, 1),
	PIN_FIELD_BASE(62, 62, 1, 0xe0, 0x10, 7, 1),
	PIN_FIELD_BASE(63, 63, 1, 0xe0, 0x10, 20, 1),
	PIN_FIELD_BASE(64, 64, 1, 0xe0, 0x10, 8, 1),
	PIN_FIELD_BASE(65, 65, 1, 0xe0, 0x10, 9, 1),
	PIN_FIELD_BASE(66, 66, 1, 0xe0, 0x10, 10, 1),
	PIN_FIELD_BASE(67, 67, 1, 0xe0, 0x10, 11, 1),
	PIN_FIELD_BASE(68, 68, 1, 0xe0, 0x10, 12, 1),

	PIN_FIELD_BASE(69, 69, 5, 0xc0, 0x10, 1, 1),
	PIN_FIELD_BASE(70, 70, 5, 0xc0, 0x10, 2, 1),
	PIN_FIELD_BASE(71, 71, 5, 0xc0, 0x10, 5, 1),
	PIN_FIELD_BASE(72, 72, 5, 0xc0, 0x10, 6, 1),

	PIN_FIELD_BASE(73, 73, 4, 0xb0, 0x10, 10, 1),
	PIN_FIELD_BASE(74, 74, 4, 0xb0, 0x10, 1, 1),
	PIN_FIELD_BASE(75, 75, 4, 0xb0, 0x10, 11, 1),
	PIN_FIELD_BASE(76, 76, 4, 0xb0, 0x10, 9, 1),
	PIN_FIELD_BASE(77, 77, 4, 0xb0, 0x10, 2, 1),
	PIN_FIELD_BASE(78, 78, 4, 0xb0, 0x10, 0, 1),
	PIN_FIELD_BASE(79, 79, 4, 0xb0, 0x10, 12, 1),

	PIN_FIELD_BASE(80, 80, 1, 0xe0, 0x10, 18, 1),
	PIN_FIELD_BASE(81, 81, 1, 0xe0, 0x10, 19, 1),
	PIN_FIELD_BASE(82, 82, 1, 0xe0, 0x10, 16, 1),
	PIN_FIELD_BASE(83, 83, 1, 0xe0, 0x10, 17, 1),
};

static const struct mtk_pin_field_calc mt7988_pin_pu_range[] = {
	PIN_FIELD_BASE(7, 7, 4, 0x60, 0x10, 5, 1),
	PIN_FIELD_BASE(8, 8, 4, 0x60, 0x10, 4, 1),
	PIN_FIELD_BASE(9, 9, 4, 0x60, 0x10, 3, 1),
	PIN_FIELD_BASE(10, 10, 4, 0x60, 0x10, 2, 1),

	PIN_FIELD_BASE(13, 13, 1, 0x70, 0x10, 0, 1),
	PIN_FIELD_BASE(14, 14, 1, 0x70, 0x10, 1, 1),
	PIN_FIELD_BASE(63, 63, 1, 0x70, 0x10, 2, 1),

	PIN_FIELD_BASE(75, 75, 4, 0x60, 0x10, 7, 1),
	PIN_FIELD_BASE(76, 76, 4, 0x60, 0x10, 6, 1),
	PIN_FIELD_BASE(77, 77, 4, 0x60, 0x10, 1, 1),
	PIN_FIELD_BASE(78, 78, 4, 0x60, 0x10, 0, 1),
	PIN_FIELD_BASE(79, 79, 4, 0x60, 0x10, 8, 1),
};

static const struct mtk_pin_field_calc mt7988_pin_pd_range[] = {
	PIN_FIELD_BASE(7, 7, 4, 0x40, 0x10, 5, 1),
	PIN_FIELD_BASE(8, 8, 4, 0x40, 0x10, 4, 1),
	PIN_FIELD_BASE(9, 9, 4, 0x40, 0x10, 3, 1),
	PIN_FIELD_BASE(10, 10, 4, 0x40, 0x10, 2, 1),

	PIN_FIELD_BASE(13, 13, 1, 0x50, 0x10, 0, 1),
	PIN_FIELD_BASE(14, 14, 1, 0x50, 0x10, 1, 1),

	PIN_FIELD_BASE(15, 15, 5, 0x40, 0x10, 4, 1),
	PIN_FIELD_BASE(16, 16, 5, 0x40, 0x10, 5, 1),
	PIN_FIELD_BASE(17, 17, 5, 0x40, 0x10, 0, 1),
	PIN_FIELD_BASE(18, 18, 5, 0x40, 0x10, 1, 1),

	PIN_FIELD_BASE(63, 63, 1, 0x50, 0x10, 2, 1),
	PIN_FIELD_BASE(71, 71, 5, 0x40, 0x10, 2, 1),
	PIN_FIELD_BASE(72, 72, 5, 0x40, 0x10, 3, 1),

	PIN_FIELD_BASE(75, 75, 4, 0x40, 0x10, 7, 1),
	PIN_FIELD_BASE(76, 76, 4, 0x40, 0x10, 6, 1),
	PIN_FIELD_BASE(77, 77, 4, 0x40, 0x10, 1, 1),
	PIN_FIELD_BASE(78, 78, 4, 0x40, 0x10, 0, 1),
	PIN_FIELD_BASE(79, 79, 4, 0x40, 0x10, 8, 1),
};

static const struct mtk_pin_field_calc mt7988_pin_drv_range[] = {
	PIN_FIELD_BASE(0, 0, 5, 0x00, 0x10, 21, 3),
	PIN_FIELD_BASE(1, 1, 5, 0x00, 0x10, 24, 3),
	PIN_FIELD_BASE(2, 2, 5, 0x00, 0x10, 15, 3),
	PIN_FIELD_BASE(3, 3, 5, 0x00, 0x10, 18, 3),
	PIN_FIELD_BASE(4, 4, 5, 0x00, 0x10, 0, 3),
	PIN_FIELD_BASE(5, 5, 5, 0x00, 0x10, 9, 3),
	PIN_FIELD_BASE(6, 6, 5, 0x00, 0x10, 12, 3),

	PIN_FIELD_BASE(7, 7, 4, 0x00, 0x10, 24, 3),
	PIN_FIELD_BASE(8, 8, 4, 0x00, 0x10, 28, 3),
	PIN_FIELD_BASE(9, 9, 4, 0x00, 0x10, 15, 3),
	PIN_FIELD_BASE(10, 10, 4, 0x00, 0x10, 9, 3),

	PIN_FIELD_BASE(11, 11, 1, 0x00, 0x10, 0, 3),
	PIN_FIELD_BASE(12, 12, 1, 0x20, 0x10, 3, 3),
	PIN_FIELD_BASE(13, 13, 1, 0x00, 0x10, 3, 3),
	PIN_FIELD_BASE(14, 14, 1, 0x00, 0x10, 6, 3),

	PIN_FIELD_BASE(19, 19, 4, 0x00, 0x10, 21, 3),
	PIN_FIELD_BASE(20, 20, 4, 0x00, 0x10, 12, 3),

	PIN_FIELD_BASE(21, 21, 3, 0x10, 0x10, 21, 3),
	PIN_FIELD_BASE(22, 22, 3, 0x20, 0x10, 9, 3),
	PIN_FIELD_BASE(23, 23, 3, 0x20, 0x10, 0, 3),
	PIN_FIELD_BASE(24, 24, 3, 0x10, 0x10, 27, 3),
	PIN_FIELD_BASE(25, 25, 3, 0x20, 0x10, 3, 3),
	PIN_FIELD_BASE(26, 26, 3, 0x20, 0x10, 6, 3),
	PIN_FIELD_BASE(27, 27, 3, 0x10, 0x10, 24, 3),
	PIN_FIELD_BASE(28, 28, 3, 0x20, 0x10, 15, 3),
	PIN_FIELD_BASE(29, 29, 3, 0x20, 0x10, 18, 3),
	PIN_FIELD_BASE(30, 30, 3, 0x20, 0x10, 21, 3),
	PIN_FIELD_BASE(31, 31, 3, 0x20, 0x10, 12, 3),
	PIN_FIELD_BASE(32, 32, 3, 0x20, 0x10, 24, 3),
	PIN_FIELD_BASE(33, 33, 3, 0x30, 0x10, 6, 3),
	PIN_FIELD_BASE(34, 34, 3, 0x30, 0x10, 3, 3),
	PIN_FIELD_BASE(35, 35, 3, 0x20, 0x10, 27, 3),
	PIN_FIELD_BASE(36, 36, 3, 0x30, 0x10, 0, 3),
	PIN_FIELD_BASE(37, 37, 3, 0x30, 0x10, 9, 3),
	PIN_FIELD_BASE(38, 38, 3, 0x10, 0x10, 3, 3),
	PIN_FIELD_BASE(39, 39, 3, 0x10, 0x10, 0, 3),
	PIN_FIELD_BASE(40, 40, 3, 0x00, 0x10, 0, 3),
	PIN_FIELD_BASE(41, 41, 3, 0x00, 0x10, 3, 3),
	PIN_FIELD_BASE(42, 42, 3, 0x00, 0x10, 27, 3),
	PIN_FIELD_BASE(43, 43, 3, 0x00, 0x10, 24, 3),
	PIN_FIELD_BASE(44, 44, 3, 0x00, 0x10, 21, 3),
	PIN_FIELD_BASE(45, 45, 3, 0x00, 0x10, 18, 3),
	PIN_FIELD_BASE(46, 46, 3, 0x00, 0x10, 15, 3),
	PIN_FIELD_BASE(47, 47, 3, 0x00, 0x10, 12, 3),
	PIN_FIELD_BASE(48, 48, 3, 0x00, 0x10, 9, 3),
	PIN_FIELD_BASE(49, 49, 3, 0x00, 0x10, 6, 3),
	PIN_FIELD_BASE(50, 50, 3, 0x10, 0x10, 15, 3),
	PIN_FIELD_BASE(51, 51, 3, 0x10, 0x10, 6, 3),
	PIN_FIELD_BASE(52, 52, 3, 0x10, 0x10, 9, 3),
	PIN_FIELD_BASE(53, 53, 3, 0x10, 0x10, 12, 3),
	PIN_FIELD_BASE(54, 54, 3, 0x10, 0x10, 18, 3),

	PIN_FIELD_BASE(55, 55, 1, 0x10, 0x10, 12, 3),
	PIN_FIELD_BASE(56, 56, 1, 0x10, 0x10, 15, 3),
	PIN_FIELD_BASE(57, 57, 1, 0x10, 0x10, 9, 3),
	PIN_FIELD_BASE(58, 58, 1, 0x00, 0x10, 12, 3),
	PIN_FIELD_BASE(59, 59, 1, 0x00, 0x10, 15, 3),
	PIN_FIELD_BASE(60, 60, 1, 0x00, 0x10, 18, 3),
	PIN_FIELD_BASE(61, 61, 1, 0x00, 0x10, 9, 3),
	PIN_FIELD_BASE(62, 62, 1, 0x00, 0x10, 21, 3),
	PIN_FIELD_BASE(63, 63, 1, 0x20, 0x10, 0, 3),
	PIN_FIELD_BASE(64, 64, 1, 0x00, 0x10, 24, 3),
	PIN_FIELD_BASE(65, 65, 1, 0x00, 0x10, 27, 3),
	PIN_FIELD_BASE(66, 66, 1, 0x10, 0x10, 0, 3),
	PIN_FIELD_BASE(67, 67, 1, 0x10, 0x10, 3, 3),
	PIN_FIELD_BASE(68, 68, 1, 0x10, 0x10, 6, 3),

	PIN_FIELD_BASE(69, 69, 5, 0x00, 0x10, 3, 3),
	PIN_FIELD_BASE(70, 70, 5, 0x00, 0x10, 6, 3),

	PIN_FIELD_BASE(73, 73, 4, 0x10, 0x10, 0, 3),
	PIN_FIELD_BASE(74, 74, 4, 0x00, 0x10, 3, 3),
	PIN_FIELD_BASE(75, 75, 4, 0x10, 0x10, 3, 3),
	PIN_FIELD_BASE(76, 76, 4, 0x00, 0x10, 27, 3),
	PIN_FIELD_BASE(77, 77, 4, 0x00, 0x10, 6, 3),
	PIN_FIELD_BASE(78, 78, 4, 0x00, 0x10, 0, 3),
	PIN_FIELD_BASE(79, 79, 4, 0x10, 0x10, 6, 3),

	PIN_FIELD_BASE(80, 80, 1, 0x10, 0x10, 24, 3),
	PIN_FIELD_BASE(81, 81, 1, 0x10, 0x10, 27, 3),
	PIN_FIELD_BASE(82, 82, 1, 0x10, 0x10, 18, 3),
	PIN_FIELD_BASE(83, 83, 1, 0x10, 0x10, 21, 3),
};

static const struct mtk_pin_field_calc mt7988_pin_pupd_range[] = {
	PIN_FIELD_BASE(0, 0, 5, 0x50, 0x10, 7, 1),
	PIN_FIELD_BASE(1, 1, 5, 0x50, 0x10, 8, 1),
	PIN_FIELD_BASE(2, 2, 5, 0x50, 0x10, 5, 1),
	PIN_FIELD_BASE(3, 3, 5, 0x50, 0x10, 6, 1),
	PIN_FIELD_BASE(4, 4, 5, 0x50, 0x10, 0, 1),
	PIN_FIELD_BASE(5, 5, 5, 0x50, 0x10, 3, 1),
	PIN_FIELD_BASE(6, 6, 5, 0x50, 0x10, 4, 1),

	PIN_FIELD_BASE(11, 11, 1, 0x60, 0x10, 0, 1),
	PIN_FIELD_BASE(12, 12, 1, 0x60, 0x10, 18, 1),

	PIN_FIELD_BASE(19, 19, 4, 0x50, 0x10, 2, 1),
	PIN_FIELD_BASE(20, 20, 4, 0x50, 0x10, 1, 1),

	PIN_FIELD_BASE(21, 21, 3, 0x70, 0x10, 17, 1),
	PIN_FIELD_BASE(22, 22, 3, 0x70, 0x10, 23, 1),
	PIN_FIELD_BASE(23, 23, 3, 0x70, 0x10, 20, 1),
	PIN_FIELD_BASE(24, 24, 3, 0x70, 0x10, 19, 1),
	PIN_FIELD_BASE(25, 25, 3, 0x70, 0x10, 21, 1),
	PIN_FIELD_BASE(26, 26, 3, 0x70, 0x10, 22, 1),
	PIN_FIELD_BASE(27, 27, 3, 0x70, 0x10, 18, 1),
	PIN_FIELD_BASE(28, 28, 3, 0x70, 0x10, 25, 1),
	PIN_FIELD_BASE(29, 29, 3, 0x70, 0x10, 26, 1),
	PIN_FIELD_BASE(30, 30, 3, 0x70, 0x10, 27, 1),
	PIN_FIELD_BASE(31, 31, 3, 0x70, 0x10, 24, 1),
	PIN_FIELD_BASE(32, 32, 3, 0x70, 0x10, 28, 1),
	PIN_FIELD_BASE(33, 33, 3, 0x80, 0x10, 0, 1),
	PIN_FIELD_BASE(34, 34, 3, 0x70, 0x10, 31, 1),
	PIN_FIELD_BASE(35, 35, 3, 0x70, 0x10, 29, 1),
	PIN_FIELD_BASE(36, 36, 3, 0x70, 0x10, 30, 1),
	PIN_FIELD_BASE(37, 37, 3, 0x80, 0x10, 1, 1),
	PIN_FIELD_BASE(38, 38, 3, 0x70, 0x10, 11, 1),
	PIN_FIELD_BASE(39, 39, 3, 0x70, 0x10, 10, 1),
	PIN_FIELD_BASE(40, 40, 3, 0x70, 0x10, 0, 1),
	PIN_FIELD_BASE(41, 41, 3, 0x70, 0x10, 1, 1),
	PIN_FIELD_BASE(42, 42, 3, 0x70, 0x10, 9, 1),
	PIN_FIELD_BASE(43, 43, 3, 0x70, 0x10, 8, 1),
	PIN_FIELD_BASE(44, 44, 3, 0x70, 0x10, 7, 1),
	PIN_FIELD_BASE(45, 45, 3, 0x70, 0x10, 6, 1),
	PIN_FIELD_BASE(46, 46, 3, 0x70, 0x10, 5, 1),
	PIN_FIELD_BASE(47, 47, 3, 0x70, 0x10, 4, 1),
	PIN_FIELD_BASE(48, 48, 3, 0x70, 0x10, 3, 1),
	PIN_FIELD_BASE(49, 49, 3, 0x70, 0x10, 2, 1),
	PIN_FIELD_BASE(50, 50, 3, 0x70, 0x10, 15, 1),
	PIN_FIELD_BASE(51, 51, 3, 0x70, 0x10, 12, 1),
	PIN_FIELD_BASE(52, 52, 3, 0x70, 0x10, 13, 1),
	PIN_FIELD_BASE(53, 53, 3, 0x70, 0x10, 14, 1),
	PIN_FIELD_BASE(54, 54, 3, 0x70, 0x10, 16, 1),

	PIN_FIELD_BASE(55, 55, 1, 0x60, 0x10, 12, 1),
	PIN_FIELD_BASE(56, 56, 1, 0x60, 0x10, 13, 1),
	PIN_FIELD_BASE(57, 57, 1, 0x60, 0x10, 11, 1),
	PIN_FIELD_BASE(58, 58, 1, 0x60, 0x10, 2, 1),
	PIN_FIELD_BASE(59, 59, 1, 0x60, 0x10, 3, 1),
	PIN_FIELD_BASE(60, 60, 1, 0x60, 0x10, 4, 1),
	PIN_FIELD_BASE(61, 61, 1, 0x60, 0x10, 1, 1),
	PIN_FIELD_BASE(62, 62, 1, 0x60, 0x10, 5, 1),
	PIN_FIELD_BASE(64, 64, 1, 0x60, 0x10, 6, 1),
	PIN_FIELD_BASE(65, 65, 1, 0x60, 0x10, 7, 1),
	PIN_FIELD_BASE(66, 66, 1, 0x60, 0x10, 8, 1),
	PIN_FIELD_BASE(67, 67, 1, 0x60, 0x10, 9, 1),
	PIN_FIELD_BASE(68, 68, 1, 0x60, 0x10, 10, 1),

	PIN_FIELD_BASE(69, 69, 5, 0x50, 0x10, 1, 1),
	PIN_FIELD_BASE(70, 70, 5, 0x50, 0x10, 2, 1),

	PIN_FIELD_BASE(73, 73, 4, 0x50, 0x10, 3, 1),
	PIN_FIELD_BASE(74, 74, 4, 0x50, 0x10, 0, 1),

	PIN_FIELD_BASE(80, 80, 1, 0x60, 0x10, 16, 1),
	PIN_FIELD_BASE(81, 81, 1, 0x60, 0x10, 17, 1),
	PIN_FIELD_BASE(82, 82, 1, 0x60, 0x10, 14, 1),
	PIN_FIELD_BASE(83, 83, 1, 0x60, 0x10, 15, 1),
};

static const struct mtk_pin_field_calc mt7988_pin_r0_range[] = {
	PIN_FIELD_BASE(0, 0, 5, 0x60, 0x10, 7, 1),
	PIN_FIELD_BASE(1, 1, 5, 0x60, 0x10, 8, 1),
	PIN_FIELD_BASE(2, 2, 5, 0x60, 0x10, 5, 1),
	PIN_FIELD_BASE(3, 3, 5, 0x60, 0x10, 6, 1),
	PIN_FIELD_BASE(4, 4, 5, 0x60, 0x10, 0, 1),
	PIN_FIELD_BASE(5, 5, 5, 0x60, 0x10, 3, 1),
	PIN_FIELD_BASE(6, 6, 5, 0x60, 0x10, 4, 1),

	PIN_FIELD_BASE(11, 11, 1, 0x80, 0x10, 0, 1),
	PIN_FIELD_BASE(12, 12, 1, 0x80, 0x10, 18, 1),

	PIN_FIELD_BASE(19, 19, 4, 0x70, 0x10, 2, 1),
	PIN_FIELD_BASE(20, 20, 4, 0x70, 0x10, 1, 1),

	PIN_FIELD_BASE(21, 21, 3, 0x90, 0x10, 17, 1),
	PIN_FIELD_BASE(22, 22, 3, 0x90, 0x10, 23, 1),
	PIN_FIELD_BASE(23, 23, 3, 0x90, 0x10, 20, 1),
	PIN_FIELD_BASE(24, 24, 3, 0x90, 0x10, 19, 1),
	PIN_FIELD_BASE(25, 25, 3, 0x90, 0x10, 21, 1),
	PIN_FIELD_BASE(26, 26, 3, 0x90, 0x10, 22, 1),
	PIN_FIELD_BASE(27, 27, 3, 0x90, 0x10, 18, 1),
	PIN_FIELD_BASE(28, 28, 3, 0x90, 0x10, 25, 1),
	PIN_FIELD_BASE(29, 29, 3, 0x90, 0x10, 26, 1),
	PIN_FIELD_BASE(30, 30, 3, 0x90, 0x10, 27, 1),
	PIN_FIELD_BASE(31, 31, 3, 0x90, 0x10, 24, 1),
	PIN_FIELD_BASE(32, 32, 3, 0x90, 0x10, 28, 1),
	PIN_FIELD_BASE(33, 33, 3, 0xa0, 0x10, 0, 1),
	PIN_FIELD_BASE(34, 34, 3, 0x90, 0x10, 31, 1),
	PIN_FIELD_BASE(35, 35, 3, 0x90, 0x10, 29, 1),
	PIN_FIELD_BASE(36, 36, 3, 0x90, 0x10, 30, 1),
	PIN_FIELD_BASE(37, 37, 3, 0xa0, 0x10, 1, 1),
	PIN_FIELD_BASE(38, 38, 3, 0x90, 0x10, 11, 1),
	PIN_FIELD_BASE(39, 39, 3, 0x90, 0x10, 10, 1),
	PIN_FIELD_BASE(40, 40, 3, 0x90, 0x10, 0, 1),
	PIN_FIELD_BASE(41, 41, 3, 0x90, 0x10, 1, 1),
	PIN_FIELD_BASE(42, 42, 3, 0x90, 0x10, 9, 1),
	PIN_FIELD_BASE(43, 43, 3, 0x90, 0x10, 8, 1),
	PIN_FIELD_BASE(44, 44, 3, 0x90, 0x10, 7, 1),
	PIN_FIELD_BASE(45, 45, 3, 0x90, 0x10, 6, 1),
	PIN_FIELD_BASE(46, 46, 3, 0x90, 0x10, 5, 1),
	PIN_FIELD_BASE(47, 47, 3, 0x90, 0x10, 4, 1),
	PIN_FIELD_BASE(48, 48, 3, 0x90, 0x10, 3, 1),
	PIN_FIELD_BASE(49, 49, 3, 0x90, 0x10, 2, 1),
	PIN_FIELD_BASE(50, 50, 3, 0x90, 0x10, 15, 1),
	PIN_FIELD_BASE(51, 51, 3, 0x90, 0x10, 12, 1),
	PIN_FIELD_BASE(52, 52, 3, 0x90, 0x10, 13, 1),
	PIN_FIELD_BASE(53, 53, 3, 0x90, 0x10, 14, 1),
	PIN_FIELD_BASE(54, 54, 3, 0x90, 0x10, 16, 1),

	PIN_FIELD_BASE(55, 55, 1, 0x80, 0x10, 12, 1),
	PIN_FIELD_BASE(56, 56, 1, 0x80, 0x10, 13, 1),
	PIN_FIELD_BASE(57, 57, 1, 0x80, 0x10, 11, 1),
	PIN_FIELD_BASE(58, 58, 1, 0x80, 0x10, 2, 1),
	PIN_FIELD_BASE(59, 59, 1, 0x80, 0x10, 3, 1),
	PIN_FIELD_BASE(60, 60, 1, 0x80, 0x10, 4, 1),
	PIN_FIELD_BASE(61, 61, 1, 0x80, 0x10, 1, 1),
	PIN_FIELD_BASE(62, 62, 1, 0x80, 0x10, 5, 1),
	PIN_FIELD_BASE(64, 64, 1, 0x80, 0x10, 6, 1),
	PIN_FIELD_BASE(65, 65, 1, 0x80, 0x10, 7, 1),
	PIN_FIELD_BASE(66, 66, 1, 0x80, 0x10, 8, 1),
	PIN_FIELD_BASE(67, 67, 1, 0x80, 0x10, 9, 1),
	PIN_FIELD_BASE(68, 68, 1, 0x80, 0x10, 10, 1),

	PIN_FIELD_BASE(69, 69, 5, 0x60, 0x10, 1, 1),
	PIN_FIELD_BASE(70, 70, 5, 0x60, 0x10, 2, 1),

	PIN_FIELD_BASE(73, 73, 4, 0x70, 0x10, 3, 1),
	PIN_FIELD_BASE(74, 74, 4, 0x70, 0x10, 0, 1),

	PIN_FIELD_BASE(80, 80, 1, 0x80, 0x10, 16, 1),
	PIN_FIELD_BASE(81, 81, 1, 0x80, 0x10, 17, 1),
	PIN_FIELD_BASE(82, 82, 1, 0x80, 0x10, 14, 1),
	PIN_FIELD_BASE(83, 83, 1, 0x80, 0x10, 15, 1),
};

static const struct mtk_pin_field_calc mt7988_pin_r1_range[] = {
	PIN_FIELD_BASE(0, 0, 5, 0x70, 0x10, 7, 1),
	PIN_FIELD_BASE(1, 1, 5, 0x70, 0x10, 8, 1),
	PIN_FIELD_BASE(2, 2, 5, 0x70, 0x10, 5, 1),
	PIN_FIELD_BASE(3, 3, 5, 0x70, 0x10, 6, 1),
	PIN_FIELD_BASE(4, 4, 5, 0x70, 0x10, 0, 1),
	PIN_FIELD_BASE(5, 5, 5, 0x70, 0x10, 3, 1),
	PIN_FIELD_BASE(6, 6, 5, 0x70, 0x10, 4, 1),

	PIN_FIELD_BASE(11, 11, 1, 0x90, 0x10, 0, 1),
	PIN_FIELD_BASE(12, 12, 1, 0x90, 0x10, 18, 1),

	PIN_FIELD_BASE(19, 19, 4, 0x80, 0x10, 2, 1),
	PIN_FIELD_BASE(20, 20, 4, 0x80, 0x10, 1, 1),

	PIN_FIELD_BASE(21, 21, 3, 0xb0, 0x10, 17, 1),
	PIN_FIELD_BASE(22, 22, 3, 0xb0, 0x10, 23, 1),
	PIN_FIELD_BASE(23, 23, 3, 0xb0, 0x10, 20, 1),
	PIN_FIELD_BASE(24, 24, 3, 0xb0, 0x10, 19, 1),
	PIN_FIELD_BASE(25, 25, 3, 0xb0, 0x10, 21, 1),
	PIN_FIELD_BASE(26, 26, 3, 0xb0, 0x10, 22, 1),
	PIN_FIELD_BASE(27, 27, 3, 0xb0, 0x10, 18, 1),
	PIN_FIELD_BASE(28, 28, 3, 0xb0, 0x10, 25, 1),
	PIN_FIELD_BASE(29, 29, 3, 0xb0, 0x10, 26, 1),
	PIN_FIELD_BASE(30, 30, 3, 0xb0, 0x10, 27, 1),
	PIN_FIELD_BASE(31, 31, 3, 0xb0, 0x10, 24, 1),
	PIN_FIELD_BASE(32, 32, 3, 0xb0, 0x10, 28, 1),
	PIN_FIELD_BASE(33, 33, 3, 0xc0, 0x10, 0, 1),
	PIN_FIELD_BASE(34, 34, 3, 0xb0, 0x10, 31, 1),
	PIN_FIELD_BASE(35, 35, 3, 0xb0, 0x10, 29, 1),
	PIN_FIELD_BASE(36, 36, 3, 0xb0, 0x10, 30, 1),
	PIN_FIELD_BASE(37, 37, 3, 0xc0, 0x10, 1, 1),
	PIN_FIELD_BASE(38, 38, 3, 0xb0, 0x10, 11, 1),
	PIN_FIELD_BASE(39, 39, 3, 0xb0, 0x10, 10, 1),
	PIN_FIELD_BASE(40, 40, 3, 0xb0, 0x10, 0, 1),
	PIN_FIELD_BASE(41, 41, 3, 0xb0, 0x10, 1, 1),
	PIN_FIELD_BASE(42, 42, 3, 0xb0, 0x10, 9, 1),
	PIN_FIELD_BASE(43, 43, 3, 0xb0, 0x10, 8, 1),
	PIN_FIELD_BASE(44, 44, 3, 0xb0, 0x10, 7, 1),
	PIN_FIELD_BASE(45, 45, 3, 0xb0, 0x10, 6, 1),
	PIN_FIELD_BASE(46, 46, 3, 0xb0, 0x10, 5, 1),
	PIN_FIELD_BASE(47, 47, 3, 0xb0, 0x10, 4, 1),
	PIN_FIELD_BASE(48, 48, 3, 0xb0, 0x10, 3, 1),
	PIN_FIELD_BASE(49, 49, 3, 0xb0, 0x10, 2, 1),
	PIN_FIELD_BASE(50, 50, 3, 0xb0, 0x10, 15, 1),
	PIN_FIELD_BASE(51, 51, 3, 0xb0, 0x10, 12, 1),
	PIN_FIELD_BASE(52, 52, 3, 0xb0, 0x10, 13, 1),
	PIN_FIELD_BASE(53, 53, 3, 0xb0, 0x10, 14, 1),
	PIN_FIELD_BASE(54, 54, 3, 0xb0, 0x10, 16, 1),

	PIN_FIELD_BASE(55, 55, 1, 0x90, 0x10, 12, 1),
	PIN_FIELD_BASE(56, 56, 1, 0x90, 0x10, 13, 1),
	PIN_FIELD_BASE(57, 57, 1, 0x90, 0x10, 11, 1),
	PIN_FIELD_BASE(58, 58, 1, 0x90, 0x10, 2, 1),
	PIN_FIELD_BASE(59, 59, 1, 0x90, 0x10, 3, 1),
	PIN_FIELD_BASE(60, 60, 1, 0x90, 0x10, 4, 1),
	PIN_FIELD_BASE(61, 61, 1, 0x90, 0x10, 1, 1),
	PIN_FIELD_BASE(62, 62, 1, 0x90, 0x10, 5, 1),
	PIN_FIELD_BASE(64, 64, 1, 0x90, 0x10, 6, 1),
	PIN_FIELD_BASE(65, 65, 1, 0x90, 0x10, 7, 1),
	PIN_FIELD_BASE(66, 66, 1, 0x90, 0x10, 8, 1),
	PIN_FIELD_BASE(67, 67, 1, 0x90, 0x10, 9, 1),
	PIN_FIELD_BASE(68, 68, 1, 0x90, 0x10, 10, 1),

	PIN_FIELD_BASE(69, 69, 5, 0x70, 0x10, 1, 1),
	PIN_FIELD_BASE(70, 70, 5, 0x70, 0x10, 2, 1),

	PIN_FIELD_BASE(73, 73, 4, 0x80, 0x10, 3, 1),
	PIN_FIELD_BASE(74, 74, 4, 0x80, 0x10, 0, 1),

	PIN_FIELD_BASE(80, 80, 1, 0x90, 0x10, 16, 1),
	PIN_FIELD_BASE(81, 81, 1, 0x90, 0x10, 17, 1),
	PIN_FIELD_BASE(82, 82, 1, 0x90, 0x10, 14, 1),
	PIN_FIELD_BASE(83, 83, 1, 0x90, 0x10, 15, 1),
};

static const struct mtk_pin_reg_calc mt7988_reg_cals[] = {
	[PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt7988_pin_mode_range),
	[PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt7988_pin_dir_range),
	[PINCTRL_PIN_REG_DI] = MTK_RANGE(mt7988_pin_di_range),
	[PINCTRL_PIN_REG_DO] = MTK_RANGE(mt7988_pin_do_range),
	[PINCTRL_PIN_REG_SMT] = MTK_RANGE(mt7988_pin_smt_range),
	[PINCTRL_PIN_REG_IES] = MTK_RANGE(mt7988_pin_ies_range),
	[PINCTRL_PIN_REG_PU] = MTK_RANGE(mt7988_pin_pu_range),
	[PINCTRL_PIN_REG_PD] = MTK_RANGE(mt7988_pin_pd_range),
	[PINCTRL_PIN_REG_DRV] = MTK_RANGE(mt7988_pin_drv_range),
	[PINCTRL_PIN_REG_PUPD] = MTK_RANGE(mt7988_pin_pupd_range),
	[PINCTRL_PIN_REG_R0] = MTK_RANGE(mt7988_pin_r0_range),
	[PINCTRL_PIN_REG_R1] = MTK_RANGE(mt7988_pin_r1_range),
};

static const struct mtk_pin_desc mt7988_pins[] = {
	MT7988_PIN(0, "UART2_RXD"),
	MT7988_PIN(1, "UART2_TXD"),
	MT7988_PIN(2, "UART2_CTS"),
	MT7988_PIN(3, "UART2_RTS"),
	MT7988_PIN(4, "GPIO_A"),
	MT7988_PIN(5, "SMI_0_MDC"),
	MT7988_PIN(6, "SMI_0_MDIO"),
	MT7988_PIN(7, "PCIE30_2L_0_WAKE_N"),
	MT7988_PIN(8, "PCIE30_2L_0_CLKREQ_N"),
	MT7988_PIN(9, "PCIE30_1L_1_WAKE_N"),
	MT7988_PIN(10, "PCIE30_1L_1_CLKREQ_N"),
	MT7988_PIN(11, "GPIO_P"),
	MT7988_PIN(12, "WATCHDOG"),
	MT7988_PIN(13, "GPIO_RESET"),
	MT7988_PIN(14, "GPIO_WPS"),
	MT7988_PIN(15, "PMIC_I2C_SCL"),
	MT7988_PIN(16, "PMIC_I2C_SDA"),
	MT7988_PIN(17, "I2C_1_SCL"),
	MT7988_PIN(18, "I2C_1_SDA"),
	MT7988_PIN(19, "PCIE30_2L_0_PRESET_N"),
	MT7988_PIN(20, "PCIE30_1L_1_PRESET_N"),
	MT7988_PIN(21, "PWMD1"),
	MT7988_PIN(22, "SPI0_WP"),
	MT7988_PIN(23, "SPI0_HOLD"),
	MT7988_PIN(24, "SPI0_CSB"),
	MT7988_PIN(25, "SPI0_MISO"),
	MT7988_PIN(26, "SPI0_MOSI"),
	MT7988_PIN(27, "SPI0_CLK"),
	MT7988_PIN(28, "SPI1_CSB"),
	MT7988_PIN(29, "SPI1_MISO"),
	MT7988_PIN(30, "SPI1_MOSI"),
	MT7988_PIN(31, "SPI1_CLK"),
	MT7988_PIN(32, "SPI2_CLK"),
	MT7988_PIN(33, "SPI2_MOSI"),
	MT7988_PIN(34, "SPI2_MISO"),
	MT7988_PIN(35, "SPI2_CSB"),
	MT7988_PIN(36, "SPI2_HOLD"),
	MT7988_PIN(37, "SPI2_WP"),
	MT7988_PIN(38, "EMMC_RSTB"),
	MT7988_PIN(39, "EMMC_DSL"),
	MT7988_PIN(40, "EMMC_CK"),
	MT7988_PIN(41, "EMMC_CMD"),
	MT7988_PIN(42, "EMMC_DATA_7"),
	MT7988_PIN(43, "EMMC_DATA_6"),
	MT7988_PIN(44, "EMMC_DATA_5"),
	MT7988_PIN(45, "EMMC_DATA_4"),
	MT7988_PIN(46, "EMMC_DATA_3"),
	MT7988_PIN(47, "EMMC_DATA_2"),
	MT7988_PIN(48, "EMMC_DATA_1"),
	MT7988_PIN(49, "EMMC_DATA_0"),
	MT7988_PIN(50, "PCM_FS_I2S_LRCK"),
	MT7988_PIN(51, "PCM_CLK_I2S_BCLK"),
	MT7988_PIN(52, "PCM_DRX_I2S_DIN"),
	MT7988_PIN(53, "PCM_DTX_I2S_DOUT"),
	MT7988_PIN(54, "PCM_MCK_I2S_MCLK"),
	MT7988_PIN(55, "UART0_RXD"),
	MT7988_PIN(56, "UART0_TXD"),
	MT7988_PIN(57, "PWMD0"),
	MT7988_PIN(58, "JTAG_JTDI"),
	MT7988_PIN(59, "JTAG_JTDO"),
	MT7988_PIN(60, "JTAG_JTMS"),
	MT7988_PIN(61, "JTAG_JTCLK"),
	MT7988_PIN(62, "JTAG_JTRST_N"),
	MT7988_PIN(63, "USB_DRV_VBUS_P1"),
	MT7988_PIN(64, "LED_A"),
	MT7988_PIN(65, "LED_B"),
	MT7988_PIN(66, "LED_C"),
	MT7988_PIN(67, "LED_D"),
	MT7988_PIN(68, "LED_E"),
	MT7988_PIN(69, "GPIO_B"),
	MT7988_PIN(70, "GPIO_C"),
	MT7988_PIN(71, "I2C_2_SCL"),
	MT7988_PIN(72, "I2C_2_SDA"),
	MT7988_PIN(73, "PCIE30_2L_1_PRESET_N"),
	MT7988_PIN(74, "PCIE30_1L_0_PRESET_N"),
	MT7988_PIN(75, "PCIE30_2L_1_WAKE_N"),
	MT7988_PIN(76, "PCIE30_2L_1_CLKREQ_N"),
	MT7988_PIN(77, "PCIE30_1L_0_WAKE_N"),
	MT7988_PIN(78, "PCIE30_1L_0_CLKREQ_N"),
	MT7988_PIN(79, "USB_DRV_VBUS_P0"),
	MT7988_PIN(80, "UART1_RXD"),
	MT7988_PIN(81, "UART1_TXD"),
	MT7988_PIN(82, "UART1_CTS"),
	MT7988_PIN(83, "UART1_RTS"),
};

/* jtag */
static int mt7988_tops_jtag0_0_pins[] = { 0, 1, 2, 3, 4 };
static int mt7988_tops_jtag0_0_funcs[] = { 2, 2, 2, 2, 2 };

static int mt7988_wo0_jtag_pins[] = { 50, 51, 52, 53, 54 };
static int mt7988_wo0_jtag_funcs[] = { 3, 3, 3, 3, 3 };

static int mt7988_wo1_jtag_pins[] = { 50, 51, 52, 53, 54 };
static int mt7988_wo1_jtag_funcs[] = { 4, 4, 4, 4, 4 };

static int mt7988_wo2_jtag_pins[] = { 50, 51, 52, 53, 54 };
static int mt7988_wo2_jtag_funcs[] = { 5, 5, 5, 5, 5 };

static int mt7988_jtag_pins[] = { 58, 59, 60, 61, 62 };
static int mt7988_jtag_funcs[] = { 1, 1, 1, 1, 1 };

static int mt7988_tops_jtag0_1_pins[] = { 58, 59, 60, 61, 62 };
static int mt7988_tops_jtag0_1_funcs[] = { 4, 4, 4, 4, 4 };

/* int_usxgmii */
static int mt7988_int_usxgmii_pins[] = { 2, 3 };
static int mt7988_int_usxgmii_funcs[] = { 3, 3 };

/* pwm */
static int mt7988_pwm7_0_pins[] = { 4 };
static int mt7988_pwm7_0_funcs[] = { 3 };

static int mt7988_pwm1_pins[] = { 21 };
static int mt7988_pwm1_funcs[] = { 1 };

static int mt7988_pwm0_pins[] = { 57 };
static int mt7988_pwm0_funcs[] = { 1 };

static int mt7988_pwm2_pins[] = { 58 };
static int mt7988_pwm2_funcs[] = { 5 };

static int mt7988_pwm3_pins[] = { 59 };
static int mt7988_pwm3_funcs[] = { 5 };

static int mt7988_pwm4_pins[] = { 60 };
static int mt7988_pwm4_funcs[] = { 5 };

static int mt7988_pwm5_pins[] = { 61 };
static int mt7988_pwm5_funcs[] = { 5 };

static int mt7988_pwm6_0_pins[] = { 62 };
static int mt7988_pwm6_0_funcs[] = { 5 };

static int mt7988_pwm6_1_pins[] = { 69 };
static int mt7988_pwm6_1_funcs[] = { 3 };

static int mt7988_pwm7_pins[] = { 70 };
static int mt7988_pwm7_funcs[] = { 3 };

static int mt7988_pwm2_1_pins[] = { 80 };
static int mt7988_pwm2_1_funcs[] = { 2 };

static int mt7988_pwm3_1_pins[] = { 81 };
static int mt7988_pwm3_1_funcs[] = { 2 };

static int mt7988_pwm4_1_pins[] = { 82 };
static int mt7988_pwm4_1_funcs[] = { 2 };

static int mt7988_pwm5_1_pins[] = { 83 };
static int mt7988_pwm5_1_funcs[] = { 2 };

/* dfd */
static int mt7988_dfd_pins[] = { 0, 1, 2, 3, 4 };
static int mt7988_dfd_funcs[] = { 4, 4, 4, 4, 4 };

/* i2c */
static int mt7988_xfi_phy0_i2c0_pins[] = { 0, 1 };
static int mt7988_xfi_phy0_i2c0_funcs[] = { 5, 5 };

static int mt7988_xfi_phy1_i2c0_pins[] = { 0, 1 };
static int mt7988_xfi_phy1_i2c0_funcs[] = { 6, 6 };

static int mt7988_xfi_phy_pll_i2c0_pins[] = { 3, 4 };
static int mt7988_xfi_phy_pll_i2c0_funcs[] = { 5, 5 };

static int mt7988_xfi_phy_pll_i2c1_pins[] = { 3, 4 };
static int mt7988_xfi_phy_pll_i2c1_funcs[] = { 6, 6 };

static int mt7988_i2c0_0_pins[] = { 5, 6 };
static int mt7988_i2c0_0_funcs[] = { 2, 2 };

static int mt7988_i2c1_sfp_pins[] = { 5, 6 };
static int mt7988_i2c1_sfp_funcs[] = { 4, 4 };

static int mt7988_xfi_pextp_phy0_i2c_pins[] = { 5, 6 };
static int mt7988_xfi_pextp_phy0_i2c_funcs[] = { 5, 5 };

static int mt7988_xfi_pextp_phy1_i2c_pins[] = { 5, 6 };
static int mt7988_xfi_pextp_phy1_i2c_funcs[] = { 6, 6 };

static int mt7988_i2c0_1_pins[] = { 15, 16 };
static int mt7988_i2c0_1_funcs[] = { 1, 1 };

static int mt7988_u30_phy_i2c0_pins[] = { 15, 16 };
static int mt7988_u30_phy_i2c0_funcs[] = { 2, 2 };

static int mt7988_u32_phy_i2c0_pins[] = { 15, 16 };
static int mt7988_u32_phy_i2c0_funcs[] = { 3, 3 };

static int mt7988_xfi_phy0_i2c1_pins[] = { 15, 16 };
static int mt7988_xfi_phy0_i2c1_funcs[] = { 5, 5 };

static int mt7988_xfi_phy1_i2c1_pins[] = { 15, 16 };
static int mt7988_xfi_phy1_i2c1_funcs[] = { 6, 6 };

static int mt7988_xfi_phy_pll_i2c2_pins[] = { 15, 16 };
static int mt7988_xfi_phy_pll_i2c2_funcs[] = { 7, 7 };

static int mt7988_i2c1_0_pins[] = { 17, 18 };
static int mt7988_i2c1_0_funcs[] = { 1, 1 };

static int mt7988_u30_phy_i2c1_pins[] = { 17, 18 };
static int mt7988_u30_phy_i2c1_funcs[] = { 2, 2 };

static int mt7988_u32_phy_i2c1_pins[] = { 17, 18 };
static int mt7988_u32_phy_i2c1_funcs[] = { 3, 3 };

static int mt7988_xfi_phy_pll_i2c3_pins[] = { 17, 18 };
static int mt7988_xfi_phy_pll_i2c3_funcs[] = { 4, 4 };

static int mt7988_sgmii0_i2c_pins[] = { 17, 18 };
static int mt7988_sgmii0_i2c_funcs[] = { 5, 5 };

static int mt7988_sgmii1_i2c_pins[] = { 17, 18 };
static int mt7988_sgmii1_i2c_funcs[] = { 6, 6 };

static int mt7988_i2c1_2_pins[] = { 69, 70 };
static int mt7988_i2c1_2_funcs[] = { 2, 2 };

static int mt7988_i2c2_0_pins[] = { 69, 70 };
static int mt7988_i2c2_0_funcs[] = { 4, 4 };

static int mt7988_i2c2_1_pins[] = { 70, 71 };
static int mt7988_i2c2_1_funcs[] = { 1, 1 };

/* eth */
static int mt7988_mdc_mdio0_pins[] = { 5, 6 };
static int mt7988_mdc_mdio0_funcs[] = { 1, 1 };

static int mt7988_2p5g_ext_mdio_pins[] = { 28, 29 };
static int mt7988_2p5g_ext_mdio_funcs[] = { 6, 6 };

static int mt7988_gbe_ext_mdio_pins[] = { 30, 31 };
static int mt7988_gbe_ext_mdio_funcs[] = { 6, 6 };

static int mt7988_mdc_mdio1_pins[] = { 69, 70 };
static int mt7988_mdc_mdio1_funcs[] = { 1, 1 };

/* pcie */
static int mt7988_pcie_wake_n0_0_pins[] = { 7 };
static int mt7988_pcie_wake_n0_0_funcs[] = { 1 };

static int mt7988_pcie_clk_req_n0_0_pins[] = { 8 };
static int mt7988_pcie_clk_req_n0_0_funcs[] = { 1 };

static int mt7988_pcie_wake_n3_0_pins[] = { 9 };
static int mt7988_pcie_wake_n3_0_funcs[] = { 1 };

static int mt7988_pcie_clk_req_n3_pins[] = { 10 };
static int mt7988_pcie_clk_req_n3_funcs[] = { 1 };

static int mt7988_pcie_clk_req_n0_1_pins[] = { 10 };
static int mt7988_pcie_clk_req_n0_1_funcs[] = { 2 };

static int mt7988_pcie_p0_phy_i2c_pins[] = { 7, 8 };
static int mt7988_pcie_p0_phy_i2c_funcs[] = { 3, 3 };

static int mt7988_pcie_p1_phy_i2c_pins[] = { 7, 8 };
static int mt7988_pcie_p1_phy_i2c_funcs[] = { 4, 4 };

static int mt7988_pcie_p3_phy_i2c_pins[] = { 9, 10 };
static int mt7988_pcie_p3_phy_i2c_funcs[] = { 4, 4 };

static int mt7988_pcie_p2_phy_i2c_pins[] = { 7, 8 };
static int mt7988_pcie_p2_phy_i2c_funcs[] = { 5, 5 };

static int mt7988_ckm_phy_i2c_pins[] = { 9, 10 };
static int mt7988_ckm_phy_i2c_funcs[] = { 5, 5 };

static int mt7988_pcie_wake_n0_1_pins[] = { 13 };
static int mt7988_pcie_wake_n0_1_funcs[] = { 2 };

static int mt7988_pcie_wake_n3_1_pins[] = { 14 };
static int mt7988_pcie_wake_n3_1_funcs[] = { 2 };

static int mt7988_pcie_2l_0_pereset_pins[] = { 19 };
static int mt7988_pcie_2l_0_pereset_funcs[] = { 1 };

static int mt7988_pcie_1l_1_pereset_pins[] = { 20 };
static int mt7988_pcie_1l_1_pereset_funcs[] = { 1 };

static int mt7988_pcie_clk_req_n2_1_pins[] = { 63 };
static int mt7988_pcie_clk_req_n2_1_funcs[] = { 2 };

static int mt7988_pcie_2l_1_pereset_pins[] = { 73 };
static int mt7988_pcie_2l_1_pereset_funcs[] = { 1 };

static int mt7988_pcie_1l_0_pereset_pins[] = { 74 };
static int mt7988_pcie_1l_0_pereset_funcs[] = { 1 };

static int mt7988_pcie_wake_n1_0_pins[] = { 75 };
static int mt7988_pcie_wake_n1_0_funcs[] = { 1 };

static int mt7988_pcie_clk_req_n1_pins[] = { 76 };
static int mt7988_pcie_clk_req_n1_funcs[] = { 1 };

static int mt7988_pcie_wake_n2_0_pins[] = { 77 };
static int mt7988_pcie_wake_n2_0_funcs[] = { 1 };

static int mt7988_pcie_clk_req_n2_0_pins[] = { 78 };
static int mt7988_pcie_clk_req_n2_0_funcs[] = { 1 };

static int mt7988_pcie_wake_n2_1_pins[] = { 79 };
static int mt7988_pcie_wake_n2_1_funcs[] = { 2 };

/* pmic */
static int mt7988_pmic_pins[] = { 11 };
static int mt7988_pmic_funcs[] = { 1 };

/* watchdog */
static int mt7988_watchdog_pins[] = { 12 };
static int mt7988_watchdog_funcs[] = { 1 };

/* spi */
static int mt7988_spi0_wp_hold_pins[] = { 22, 23 };
static int mt7988_spi0_wp_hold_funcs[] = { 1, 1 };

static int mt7988_spi0_pins[] = { 24, 25, 26, 27 };
static int mt7988_spi0_funcs[] = { 1, 1, 1, 1 };

static int mt7988_spi1_pins[] = { 28, 29, 30, 31 };
static int mt7988_spi1_funcs[] = { 1, 1, 1, 1 };

static int mt7988_spi2_pins[] = { 32, 33, 34, 35 };
static int mt7988_spi2_funcs[] = { 1, 1, 1, 1 };

static int mt7988_spi2_wp_hold_pins[] = { 36, 37 };
static int mt7988_spi2_wp_hold_funcs[] = { 1, 1 };

/* flash */
static int mt7988_snfi_pins[] = { 22, 23, 24, 25, 26, 27 };
static int mt7988_snfi_funcs[] = { 2, 2, 2, 2, 2, 2 };

static int mt7988_emmc_45_pins[] = {
	21, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37
};
static int mt7988_emmc_45_funcs[] = { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 };

static int mt7988_emmc_51_pins[] = { 38, 39, 40, 41, 42, 43,
				     44, 45, 46, 47, 48, 49 };
static int mt7988_emmc_51_funcs[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };

/* uart */
static int mt7988_uart2_pins[] = { 0, 1, 2, 3 };
static int mt7988_uart2_funcs[] = { 1, 1, 1, 1 };

static int mt7988_tops_uart0_0_pins[] = { 22, 23 };
static int mt7988_tops_uart0_0_funcs[] = { 3, 3 };

static int mt7988_uart2_0_pins[] = { 28, 29, 30, 31 };
static int mt7988_uart2_0_funcs[] = { 2, 2, 2, 2 };

static int mt7988_uart1_0_pins[] = { 32, 33, 34, 35 };
static int mt7988_uart1_0_funcs[] = { 2, 2, 2, 2 };

static int mt7988_uart2_1_pins[] = { 32, 33, 34, 35 };
static int mt7988_uart2_1_funcs[] = { 3, 3, 3, 3 };

static int mt7988_net_wo0_uart_txd_0_pins[] = { 28 };
static int mt7988_net_wo0_uart_txd_0_funcs[] = { 3 };

static int mt7988_net_wo1_uart_txd_0_pins[] = { 29 };
static int mt7988_net_wo1_uart_txd_0_funcs[] = { 3 };

static int mt7988_net_wo2_uart_txd_0_pins[] = { 30 };
static int mt7988_net_wo2_uart_txd_0_funcs[] = { 3 };

static int mt7988_tops_uart1_0_pins[] = { 28, 29 };
static int mt7988_tops_uart1_0_funcs[] = { 4, 4 };

static int mt7988_tops_uart0_1_pins[] = { 30, 31 };
static int mt7988_tops_uart0_1_funcs[] = { 4, 4 };

static int mt7988_tops_uart1_1_pins[] = { 36, 37 };
static int mt7988_tops_uart1_1_funcs[] = { 3, 3 };

static int mt7988_uart0_pins[] = { 55, 56 };
static int mt7988_uart0_funcs[] = { 1, 1 };

static int mt7988_tops_uart0_2_pins[] = { 55, 56 };
static int mt7988_tops_uart0_2_funcs[] = { 2, 2 };

static int mt7988_uart2_2_pins[] = { 50, 51, 52, 53 };
static int mt7988_uart2_2_funcs[] = { 2, 2, 2, 2 };

static int mt7988_uart1_1_pins[] = { 58, 59, 60, 61 };
static int mt7988_uart1_1_funcs[] = { 2, 2, 2, 2 };

static int mt7988_uart2_3_pins[] = { 58, 59, 60, 61 };
static int mt7988_uart2_3_funcs[] = { 3, 3, 3, 3 };

static int mt7988_uart1_2_pins[] = { 80, 81, 82, 83 };
static int mt7988_uart1_2_funcs[] = { 1, 1, 1, 1 };

static int mt7988_tops_uart1_2_pins[] = { 80, 81 };
static int mt7988_tops_uart1_2_funcs[] = {
	4,
	4,
};

static int mt7988_net_wo0_uart_txd_1_pins[] = { 80 };
static int mt7988_net_wo0_uart_txd_1_funcs[] = { 3 };

static int mt7988_net_wo1_uart_txd_1_pins[] = { 81 };
static int mt7988_net_wo1_uart_txd_1_funcs[] = { 3 };

static int mt7988_net_wo2_uart_txd_1_pins[] = { 82 };
static int mt7988_net_wo2_uart_txd_1_funcs[] = { 3 };

/* udi */
static int mt7988_udi_pins[] = { 32, 33, 34, 35, 36 };
static int mt7988_udi_funcs[] = { 4, 4, 4, 4, 4 };

/* pcm */
static int mt7988_pcm_pins[] = { 50, 51, 52, 53, 54 };
static int mt7988_pcm_funcs[] = { 1, 1, 1, 1, 1 };

/* led */
static int mt7988_gbe_led1_pins[] = { 58, 59, 60, 61 };
static int mt7988_gbe_led1_funcs[] = { 6, 6, 6, 6 };

static int mt7988_2p5gbe_led1_pins[] = { 62 };
static int mt7988_2p5gbe_led1_funcs[] = { 6 };

static int mt7988_gbe_led0_pins[] = { 64, 65, 66, 67 };
static int mt7988_gbe_led0_funcs[] = { 1, 1, 1, 1 };

static int mt7988_2p5gbe_led0_pins[] = { 68 };
static int mt7988_2p5gbe_led0_funcs[] = { 1 };

/* usb */
static int mt7988_drv_vbus_p1_pins[] = { 63 };
static int mt7988_drv_vbus_p1_funcs[] = { 1 };

static int mt7988_drv_vbus_pins[] = { 79 };
static int mt7988_drv_vbus_funcs[] = { 1 };

static const struct group_desc mt7988_groups[] = {
	/*  @GPIO(0,1,2,3): uart2 */
	PINCTRL_PIN_GROUP("uart2", mt7988_uart2),
	/*  @GPIO(0,1,2,3,4): tops_jtag0_0 */
	PINCTRL_PIN_GROUP("tops_jtag0_0", mt7988_tops_jtag0_0),
	/*  @GPIO(2,3): int_usxgmii */
	PINCTRL_PIN_GROUP("int_usxgmii", mt7988_int_usxgmii),
	/*  @GPIO(4): pwm7_0 */
	PINCTRL_PIN_GROUP("pwm7_0", mt7988_pwm7_0),
	/*  @GPIO(0,1,2,3,4): dfd */
	PINCTRL_PIN_GROUP("dfd", mt7988_dfd),
	/*  @GPIO(0,1): xfi_phy0_i2c0 */
	PINCTRL_PIN_GROUP("xfi_phy0_i2c0", mt7988_xfi_phy0_i2c0),
	/*  @GPIO(0,1): xfi_phy1_i2c0 */
	PINCTRL_PIN_GROUP("xfi_phy1_i2c0", mt7988_xfi_phy1_i2c0),
	/*  @GPIO(3,4): xfi_phy_pll_i2c0 */
	PINCTRL_PIN_GROUP("xfi_phy_pll_i2c0", mt7988_xfi_phy_pll_i2c0),
	/*  @GPIO(3,4): xfi_phy_pll_i2c1 */
	PINCTRL_PIN_GROUP("xfi_phy_pll_i2c1", mt7988_xfi_phy_pll_i2c1),
	/*  @GPIO(5,6) i2c0_0 */
	PINCTRL_PIN_GROUP("i2c0_0", mt7988_i2c0_0),
	/*  @GPIO(5,6) i2c1_sfp */
	PINCTRL_PIN_GROUP("i2c1_sfp", mt7988_i2c1_sfp),
	/*  @GPIO(5,6) xfi_pextp_phy0_i2c */
	PINCTRL_PIN_GROUP("xfi_pextp_phy0_i2c", mt7988_xfi_pextp_phy0_i2c),
	/*  @GPIO(5,6) xfi_pextp_phy1_i2c */
	PINCTRL_PIN_GROUP("xfi_pextp_phy1_i2c", mt7988_xfi_pextp_phy1_i2c),
	/*  @GPIO(5,6) mdc_mdio0 */
	PINCTRL_PIN_GROUP("mdc_mdio0", mt7988_mdc_mdio0),
	/*  @GPIO(7): pcie_wake_n0_0 */
	PINCTRL_PIN_GROUP("pcie_wake_n0_0", mt7988_pcie_wake_n0_0),
	/*  @GPIO(8): pcie_clk_req_n0_0 */
	PINCTRL_PIN_GROUP("pcie_clk_req_n0_0", mt7988_pcie_clk_req_n0_0),
	/*  @GPIO(9): pcie_wake_n3_0 */
	PINCTRL_PIN_GROUP("pcie_wake_n3_0", mt7988_pcie_wake_n3_0),
	/*  @GPIO(10): pcie_clk_req_n3 */
	PINCTRL_PIN_GROUP("pcie_clk_req_n3", mt7988_pcie_clk_req_n3),
	/*  @GPIO(10): pcie_clk_req_n0_1 */
	PINCTRL_PIN_GROUP("pcie_clk_req_n0_1", mt7988_pcie_clk_req_n0_1),
	/*  @GPIO(7,8) pcie_p0_phy_i2c */
	PINCTRL_PIN_GROUP("pcie_p0_phy_i2c", mt7988_pcie_p0_phy_i2c),
	/*  @GPIO(7,8) pcie_p1_phy_i2c */
	PINCTRL_PIN_GROUP("pcie_p1_phy_i2c", mt7988_pcie_p1_phy_i2c),
	/*  @GPIO(7,8) pcie_p2_phy_i2c */
	PINCTRL_PIN_GROUP("pcie_p2_phy_i2c", mt7988_pcie_p2_phy_i2c),
	/*  @GPIO(9,10) pcie_p3_phy_i2c */
	PINCTRL_PIN_GROUP("pcie_p3_phy_i2c", mt7988_pcie_p3_phy_i2c),
	/*  @GPIO(9,10) ckm_phy_i2c */
	PINCTRL_PIN_GROUP("ckm_phy_i2c", mt7988_ckm_phy_i2c),
	/*  @GPIO(11): pmic */
	PINCTRL_PIN_GROUP("pcie_pmic", mt7988_pmic),
	/*  @GPIO(12): watchdog */
	PINCTRL_PIN_GROUP("watchdog", mt7988_watchdog),
	/*  @GPIO(13): pcie_wake_n0_1 */
	PINCTRL_PIN_GROUP("pcie_wake_n0_1", mt7988_pcie_wake_n0_1),
	/*  @GPIO(14): pcie_wake_n3_1 */
	PINCTRL_PIN_GROUP("pcie_wake_n3_1", mt7988_pcie_wake_n3_1),
	/*  @GPIO(15,16) i2c0_1 */
	PINCTRL_PIN_GROUP("i2c0_1", mt7988_i2c0_1),
	/*  @GPIO(15,16) u30_phy_i2c0 */
	PINCTRL_PIN_GROUP("u30_phy_i2c0", mt7988_u30_phy_i2c0),
	/*  @GPIO(15,16) u32_phy_i2c0 */
	PINCTRL_PIN_GROUP("u32_phy_i2c0", mt7988_u32_phy_i2c0),
	/*  @GPIO(15,16) xfi_phy0_i2c1 */
	PINCTRL_PIN_GROUP("xfi_phy0_i2c1", mt7988_xfi_phy0_i2c1),
	/*  @GPIO(15,16) xfi_phy1_i2c1 */
	PINCTRL_PIN_GROUP("xfi_phy1_i2c1", mt7988_xfi_phy1_i2c1),
	/*  @GPIO(15,16) xfi_phy_pll_i2c2 */
	PINCTRL_PIN_GROUP("xfi_phy_pll_i2c2", mt7988_xfi_phy_pll_i2c2),
	/*  @GPIO(17,18) i2c1_0 */
	PINCTRL_PIN_GROUP("i2c1_0", mt7988_i2c1_0),
	/*  @GPIO(17,18) u30_phy_i2c1 */
	PINCTRL_PIN_GROUP("u30_phy_i2c1", mt7988_u30_phy_i2c1),
	/*  @GPIO(17,18) u32_phy_i2c1 */
	PINCTRL_PIN_GROUP("u32_phy_i2c1", mt7988_u32_phy_i2c1),
	/*  @GPIO(17,18) xfi_phy_pll_i2c3 */
	PINCTRL_PIN_GROUP("xfi_phy_pll_i2c3", mt7988_xfi_phy_pll_i2c3),
	/*  @GPIO(17,18) sgmii0_i2c */
	PINCTRL_PIN_GROUP("sgmii0_i2c", mt7988_sgmii0_i2c),
	/*  @GPIO(17,18) sgmii1_i2c */
	PINCTRL_PIN_GROUP("sgmii1_i2c", mt7988_sgmii1_i2c),
	/*  @GPIO(19): pcie_2l_0_pereset */
	PINCTRL_PIN_GROUP("pcie_2l_0_pereset", mt7988_pcie_2l_0_pereset),
	/*  @GPIO(20): pcie_1l_1_pereset */
	PINCTRL_PIN_GROUP("pcie_1l_1_pereset", mt7988_pcie_1l_1_pereset),
	/*  @GPIO(21): pwm1 */
	PINCTRL_PIN_GROUP("pwm1", mt7988_pwm1),
	/*  @GPIO(22,23) spi0_wp_hold */
	PINCTRL_PIN_GROUP("spi0_wp_hold", mt7988_spi0_wp_hold),
	/*  @GPIO(24,25,26,27) spi0 */
	PINCTRL_PIN_GROUP("spi0", mt7988_spi0),
	/*  @GPIO(28,29,30,31) spi1 */
	PINCTRL_PIN_GROUP("spi1", mt7988_spi1),
	/*  @GPIO(32,33,34,35) spi2 */
	PINCTRL_PIN_GROUP("spi2", mt7988_spi2),
	/*  @GPIO(36,37) spi2_wp_hold */
	PINCTRL_PIN_GROUP("spi2_wp_hold", mt7988_spi2_wp_hold),
	/*  @GPIO(22,23,24,25,26,27) snfi */
	PINCTRL_PIN_GROUP("snfi", mt7988_snfi),
	/*  @GPIO(22,23) tops_uart0_0 */
	PINCTRL_PIN_GROUP("tops_uart0_0", mt7988_tops_uart0_0),
	/*  @GPIO(28,29,30,31) uart2_0 */
	PINCTRL_PIN_GROUP("uart2_0", mt7988_uart2_0),
	/*  @GPIO(32,33,34,35) uart1_0 */
	PINCTRL_PIN_GROUP("uart1_0", mt7988_uart1_0),
	/*  @GPIO(32,33,34,35) uart2_1 */
	PINCTRL_PIN_GROUP("uart2_1", mt7988_uart2_1),
	/*  @GPIO(28) net_wo0_uart_txd_0 */
	PINCTRL_PIN_GROUP("net_wo0_uart_txd_0", mt7988_net_wo0_uart_txd_0),
	/*  @GPIO(29) net_wo1_uart_txd_0 */
	PINCTRL_PIN_GROUP("net_wo1_uart_txd_0", mt7988_net_wo1_uart_txd_0),
	/*  @GPIO(30) net_wo2_uart_txd_0 */
	PINCTRL_PIN_GROUP("net_wo2_uart_txd_0", mt7988_net_wo2_uart_txd_0),
	/*  @GPIO(28,29) tops_uart1_0 */
	PINCTRL_PIN_GROUP("tops_uart0_0", mt7988_tops_uart1_0),
	/*  @GPIO(30,31) tops_uart0_1 */
	PINCTRL_PIN_GROUP("tops_uart0_1", mt7988_tops_uart0_1),
	/*  @GPIO(36,37) tops_uart1_1 */
	PINCTRL_PIN_GROUP("tops_uart1_1", mt7988_tops_uart1_1),
	/*  @GPIO(32,33,34,35,36) udi */
	PINCTRL_PIN_GROUP("udi", mt7988_udi),
	/*  @GPIO(21,28,29,30,31,32,33,34,35,36,37) emmc_45 */
	PINCTRL_PIN_GROUP("emmc_45", mt7988_emmc_45),
	/*  @GPIO(38,39,40,41,42,43,44,45,46,47,48,49) emmc_51 */
	PINCTRL_PIN_GROUP("emmc_51", mt7988_emmc_51),
	/*  @GPIO(28,29) 2p5g_ext_mdio */
	PINCTRL_PIN_GROUP("2p5g_ext_mdio", mt7988_2p5g_ext_mdio),
	/*  @GPIO(30,31) gbe_ext_mdio */
	PINCTRL_PIN_GROUP("gbe_ext_mdio", mt7988_gbe_ext_mdio),
	/*  @GPIO(50,51,52,53,54) pcm */
	PINCTRL_PIN_GROUP("pcm", mt7988_pcm),
	/*  @GPIO(55,56) uart0 */
	PINCTRL_PIN_GROUP("uart0", mt7988_uart0),
	/*  @GPIO(55,56) tops_uart0_2 */
	PINCTRL_PIN_GROUP("tops_uart0_2", mt7988_tops_uart0_2),
	/*  @GPIO(50,51,52,53) uart2_2 */
	PINCTRL_PIN_GROUP("uart2_2", mt7988_uart2_2),
	/*  @GPIO(50,51,52,53,54) wo0_jtag */
	PINCTRL_PIN_GROUP("wo0_jtag", mt7988_wo0_jtag),
	/*  @GPIO(50,51,52,53,54) wo1-wo1_jtag */
	PINCTRL_PIN_GROUP("wo1_jtag", mt7988_wo1_jtag),
	/*  @GPIO(50,51,52,53,54) wo2_jtag */
	PINCTRL_PIN_GROUP("wo2_jtag", mt7988_wo2_jtag),
	/*  @GPIO(57) pwm0 */
	PINCTRL_PIN_GROUP("pwm0", mt7988_pwm0),
	/*  @GPIO(58,59,60,61,62) jtag */
	PINCTRL_PIN_GROUP("jtag", mt7988_jtag),
	/*  @GPIO(58,59,60,61,62) tops_jtag0_1 */
	PINCTRL_PIN_GROUP("tops_jtag0_1", mt7988_tops_jtag0_1),
	/*  @GPIO(58,59,60,61) uart2_3 */
	PINCTRL_PIN_GROUP("uart2_3", mt7988_uart2_3),
	/*  @GPIO(58,59,60,61) uart1_1 */
	PINCTRL_PIN_GROUP("uart1_1", mt7988_uart1_1),
	/*  @GPIO(58) pwm2 */
	PINCTRL_PIN_GROUP("pwm2", mt7988_pwm2),
	/*  @GPIO(59) pwm3 */
	PINCTRL_PIN_GROUP("pwm3", mt7988_pwm3),
	/*  @GPIO(60) pwm4 */
	PINCTRL_PIN_GROUP("pwm4", mt7988_pwm4),
	/*  @GPIO(61) pwm5 */
	PINCTRL_PIN_GROUP("pwm5", mt7988_pwm5),
	/*  @GPIO(62) pwm6_0 */
	PINCTRL_PIN_GROUP("pwm6_0", mt7988_pwm6_0),
	/*  @GPIO(58,59,60,61) gbe_led1 */
	PINCTRL_PIN_GROUP("gbe_led1", mt7988_gbe_led1),
	/*  @GPIO(62) 2p5gbe_led1 */
	PINCTRL_PIN_GROUP("2p5gbe_led1", mt7988_2p5gbe_led1),
	/*  @GPIO(64,65,66,67) gbe_led0 */
	PINCTRL_PIN_GROUP("gbe_led0", mt7988_gbe_led0),
	/*  @GPIO(68) 2p5gbe_led0 */
	PINCTRL_PIN_GROUP("2p5gbe_led0", mt7988_2p5gbe_led0),
	/*  @GPIO(63) drv_vbus_p1 */
	PINCTRL_PIN_GROUP("drv_vbus_p1", mt7988_drv_vbus_p1),
	/*  @GPIO(63) pcie_clk_req_n2_1 */
	PINCTRL_PIN_GROUP("pcie_clk_req_n2_1", mt7988_pcie_clk_req_n2_1),
	/*  @GPIO(69, 70) mdc_mdio1 */
	PINCTRL_PIN_GROUP("mdc_mdio1", mt7988_mdc_mdio1),
	/*  @GPIO(69, 70) i2c1_2 */
	PINCTRL_PIN_GROUP("i2c1_2", mt7988_i2c1_2),
	/*  @GPIO(69) pwm6_1 */
	PINCTRL_PIN_GROUP("pwm6_1", mt7988_pwm6_1),
	/*  @GPIO(70) pwm7 */
	PINCTRL_PIN_GROUP("pwm7", mt7988_pwm7),
	/*  @GPIO(69,70) i2c2_0 */
	PINCTRL_PIN_GROUP("i2c2_0", mt7988_i2c2_0),
	/*  @GPIO(71,72) i2c2_1 */
	PINCTRL_PIN_GROUP("i2c2_1", mt7988_i2c2_1),
	/*  @GPIO(73) pcie_2l_1_pereset */
	PINCTRL_PIN_GROUP("pcie_2l_1_pereset", mt7988_pcie_2l_1_pereset),
	/*  @GPIO(74) pcie_1l_0_pereset */
	PINCTRL_PIN_GROUP("pcie_1l_0_pereset", mt7988_pcie_1l_0_pereset),
	/*  @GPIO(75) pcie_wake_n1_0 */
	PINCTRL_PIN_GROUP("pcie_wake_n1_0", mt7988_pcie_wake_n1_0),
	/*  @GPIO(76) pcie_clk_req_n1 */
	PINCTRL_PIN_GROUP("pcie_clk_req_n1", mt7988_pcie_clk_req_n1),
	/*  @GPIO(77) pcie_wake_n2_0 */
	PINCTRL_PIN_GROUP("pcie_wake_n2_0", mt7988_pcie_wake_n2_0),
	/*  @GPIO(78) pcie_clk_req_n2_0 */
	PINCTRL_PIN_GROUP("pcie_clk_req_n2_0", mt7988_pcie_clk_req_n2_0),
	/*  @GPIO(79) drv_vbus */
	PINCTRL_PIN_GROUP("drv_vbus", mt7988_drv_vbus),
	/*  @GPIO(79) pcie_wake_n2_1 */
	PINCTRL_PIN_GROUP("pcie_wake_n2_1", mt7988_pcie_wake_n2_1),
	/*  @GPIO(80,81,82,83) uart1_2 */
	PINCTRL_PIN_GROUP("uart1_2", mt7988_uart1_2),
	/*  @GPIO(80) pwm2_1 */
	PINCTRL_PIN_GROUP("pwm2_1", mt7988_pwm2_1),
	/*  @GPIO(81) pwm3_1 */
	PINCTRL_PIN_GROUP("pwm3_1", mt7988_pwm3_1),
	/*  @GPIO(82) pwm4_1 */
	PINCTRL_PIN_GROUP("pwm4_1", mt7988_pwm4_1),
	/*  @GPIO(83) pwm5_1 */
	PINCTRL_PIN_GROUP("pwm5_1", mt7988_pwm5_1),
	/*  @GPIO(80) net_wo0_uart_txd_0 */
	PINCTRL_PIN_GROUP("net_wo0_uart_txd_0", mt7988_net_wo0_uart_txd_0),
	/*  @GPIO(81) net_wo1_uart_txd_0 */
	PINCTRL_PIN_GROUP("net_wo1_uart_txd_0", mt7988_net_wo1_uart_txd_0),
	/*  @GPIO(82) net_wo2_uart_txd_0 */
	PINCTRL_PIN_GROUP("net_wo2_uart_txd_0", mt7988_net_wo2_uart_txd_0),
	/*  @GPIO(80,81) tops_uart1_2 */
	PINCTRL_PIN_GROUP("tops_uart1_2", mt7988_tops_uart1_2),
	/*  @GPIO(80) net_wo0_uart_txd_1 */
	PINCTRL_PIN_GROUP("net_wo0_uart_txd_1", mt7988_net_wo0_uart_txd_1),
	/*  @GPIO(81) net_wo1_uart_txd_1 */
	PINCTRL_PIN_GROUP("net_wo1_uart_txd_1", mt7988_net_wo1_uart_txd_1),
	/*  @GPIO(82) net_wo2_uart_txd_1 */
	PINCTRL_PIN_GROUP("net_wo2_uart_txd_1", mt7988_net_wo2_uart_txd_1),
};

/* Joint those groups owning the same capability in user point of view which
 * allows that people tend to use through the device tree.
 */
static const char * const mt7988_jtag_groups[] = {
	"tops_jtag0_0", "wo0_jtag", "wo1_jtag",
	"wo2_jtag",	"jtag",	    "tops_jtag0_1",
};
static const char * const mt7988_int_usxgmii_groups[] = {
	"int_usxgmii",
};
static const char * const mt7988_pwm_groups[] = {
	"pwm7_0", "pwm1",   "pwm0", "pwm2",   "pwm3",	"pwm4",	  "pwm5",
	"pwm6_0", "pwm6_1", "pwm7", "pwm2_1", "pwm3_1", "pwm4_1", "pwm5_1"
};
static const char * const mt7988_dfd_groups[] = {
	"dfd",
};
static const char * const mt7988_i2c_groups[] = {
	"xfi_phy0_i2c0",
	"xfi_phy1_i2c0",
	"xfi_phy_pll_i2c0",
	"xfi_phy_pll_i2c1",
	"i2c0_0",
	"i2c1_sfp",
	"xfi_pextp_phy0_i2c",
	"xfi_pextp_phy1_i2c",
	"i2c0_1",
	"u30_phy_i2c0",
	"u32_phy_i2c0",
	"xfi_phy0_i2c1",
	"xfi_phy1_i2c1",
	"xfi_phy_pll_i2c2",
	"i2c1_0",
	"u30_phy_i2c1",
	"u32_phy_i2c1",
	"xfi_phy_pll_i2c3",
	"sgmii0_i2c",
	"sgmii1_i2c",
	"i2c1_2",
	"i2c2_0",
	"i2c2_1",
};
static const char * const mt7988_ethernet_groups[] = {
	"mdc_mdio0",
	"2p5g_ext_mdio",
	"gbe_ext_mdio",
	"mdc_mdio1",
};
static const char * const mt7988_pcie_groups[] = {
	"pcie_wake_n0_0",    "pcie_clk_req_n0_0", "pcie_wake_n3_0",
	"pcie_clk_req_n3",   "pcie_p0_phy_i2c",	  "pcie_p1_phy_i2c",
	"pcie_p3_phy_i2c",   "pcie_p2_phy_i2c",	  "ckm_phy_i2c",
	"pcie_wake_n0_1",    "pcie_wake_n3_1",	  "pcie_2l_0_pereset",
	"pcie_1l_1_pereset", "pcie_clk_req_n2_1", "pcie_2l_1_pereset",
	"pcie_1l_0_pereset", "pcie_wake_n1_0",	  "pcie_clk_req_n1",
	"pcie_wake_n2_0",    "pcie_clk_req_n2_0", "pcie_wake_n2_1",
	"pcie_clk_req_n0_1"
};
static const char * const mt7988_pmic_groups[] = {
	"pmic",
};
static const char * const mt7988_wdt_groups[] = {
	"watchdog",
};
static const char * const mt7988_spi_groups[] = {
	"spi0", "spi0_wp_hold", "spi1", "spi2", "spi2_wp_hold",
};
static const char * const mt7988_flash_groups[] = { "emmc_45", "snfi",
						    "emmc_51" };
static const char * const mt7988_uart_groups[] = {
	"uart2",
	"tops_uart0_0",
	"uart2_0",
	"uart1_0",
	"uart2_1",
	"net_wo0_uart_txd_0",
	"net_wo1_uart_txd_0",
	"net_wo2_uart_txd_0",
	"tops_uart1_0",
	"ops_uart0_1",
	"ops_uart1_1",
	"uart0",
	"tops_uart0_2",
	"uart1_1",
	"uart2_3",
	"uart1_2",
	"tops_uart1_2",
	"net_wo0_uart_txd_1",
	"net_wo1_uart_txd_1",
	"net_wo2_uart_txd_1",
};
static const char * const mt7988_udi_groups[] = {
	"udi",
};
static const char * const mt7988_pcm_groups[] = {
	"pcm",
};
static const char * const mt7988_led_groups[] = {
	"gbe_led1",    "2p5gbe_led1", "gbe_led0",
	"2p5gbe_led0", "wf5g_led0",   "wf5g_led1",
};
static const char * const mt7988_usb_groups[] = {
	"drv_vbus",
	"drv_vbus_p1",
};

static const struct function_desc mt7988_functions[] = {
	{ "jtag", mt7988_jtag_groups, ARRAY_SIZE(mt7988_jtag_groups) },
	{ "int_usxgmii", mt7988_int_usxgmii_groups,
	  ARRAY_SIZE(mt7988_int_usxgmii_groups) },
	{ "pwm", mt7988_pwm_groups, ARRAY_SIZE(mt7988_pwm_groups) },
	{ "dfd", mt7988_dfd_groups, ARRAY_SIZE(mt7988_dfd_groups) },
	{ "i2c", mt7988_i2c_groups, ARRAY_SIZE(mt7988_i2c_groups) },
	{ "eth", mt7988_ethernet_groups, ARRAY_SIZE(mt7988_ethernet_groups) },
	{ "pcie", mt7988_pcie_groups, ARRAY_SIZE(mt7988_pcie_groups) },
	{ "pmic", mt7988_pmic_groups, ARRAY_SIZE(mt7988_pmic_groups) },
	{ "watchdog", mt7988_wdt_groups, ARRAY_SIZE(mt7988_wdt_groups) },
	{ "spi", mt7988_spi_groups, ARRAY_SIZE(mt7988_spi_groups) },
	{ "flash", mt7988_flash_groups, ARRAY_SIZE(mt7988_flash_groups) },
	{ "uart", mt7988_uart_groups, ARRAY_SIZE(mt7988_uart_groups) },
	{ "udi", mt7988_udi_groups, ARRAY_SIZE(mt7988_udi_groups) },
	{ "pcm", mt7988_pcm_groups, ARRAY_SIZE(mt7988_pcm_groups) },
	{ "usb", mt7988_usb_groups, ARRAY_SIZE(mt7988_usb_groups) },
	{ "led", mt7988_led_groups, ARRAY_SIZE(mt7988_led_groups) },
};

static const struct mtk_eint_hw mt7988_eint_hw = {
	.port_mask = 7,
	.ports = 7,
	.ap_num = ARRAY_SIZE(mt7988_pins),
	.db_cnt = 16,
};

static const char * const mt7988_pinctrl_register_base_names[] = {
	"gpio_base",	 "iocfg_tr_base", "iocfg_br_base",
	"iocfg_rb_base", "iocfg_lb_base", "iocfg_tl_base",
};

static struct mtk_pin_soc mt7988_data = {
	.reg_cal = mt7988_reg_cals,
	.pins = mt7988_pins,
	.npins = ARRAY_SIZE(mt7988_pins),
	.grps = mt7988_groups,
	.ngrps = ARRAY_SIZE(mt7988_groups),
	.funcs = mt7988_functions,
	.nfuncs = ARRAY_SIZE(mt7988_functions),
	.eint_hw = &mt7988_eint_hw,
	.gpio_m = 0,
	.ies_present = false,
	.base_names = mt7988_pinctrl_register_base_names,
	.nbase_names = ARRAY_SIZE(mt7988_pinctrl_register_base_names),
	.bias_disable_set = mtk_pinconf_bias_disable_set,
	.bias_disable_get = mtk_pinconf_bias_disable_get,
	.bias_set = mtk_pinconf_bias_set,
	.bias_get = mtk_pinconf_bias_get,
	.drive_set = mtk_pinconf_drive_set_rev1,
	.drive_get = mtk_pinconf_drive_get_rev1,
	.adv_pull_get = mtk_pinconf_adv_pull_get,
	.adv_pull_set = mtk_pinconf_adv_pull_set,
};

static const struct of_device_id mt7988_pinctrl_of_match[] = {
	{
		.compatible = "mediatek,mt7988-pinctrl",
	},
	{}
};

static int mt7988_pinctrl_probe(struct platform_device *pdev)
{
	return mtk_moore_pinctrl_probe(pdev, &mt7988_data);
}

static struct platform_driver mt7988_pinctrl_driver = {
	.driver = {
		.name = "mt7988-pinctrl",
		.of_match_table = mt7988_pinctrl_of_match,
	},
	.probe = mt7988_pinctrl_probe,
};

static int __init mt7988_pinctrl_init(void)
{
	return platform_driver_register(&mt7988_pinctrl_driver);
}
arch_initcall(mt7988_pinctrl_init);
