// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2018 MediaTek Inc.
 *
 * Author: Zhiyong Tao <zhiyong.tao@mediatek.com>
 *
 */

#include "pinctrl-mtk-mt8183.h"
#include "pinctrl-paris.h"

/* MT8183 have multiple bases to program pin configuration listed as the below:
 * iocfg[0]:0x10005000, iocfg[1]:0x11F20000, iocfg[2]:0x11E80000,
 * iocfg[3]:0x11E70000, iocfg[4]:0x11E90000, iocfg[5]:0x11D30000,
 * iocfg[6]:0x11D20000, iocfg[7]:0x11C50000, iocfg[8]:0x11F30000.
 * _i_based could be used to indicate what base the pin should be mapped into.
 */

#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 mt8183_pin_mode_range[] = {
	PIN_FIELD(0, 192, 0x300, 0x10, 0, 4),
};

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

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

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

static const struct mtk_pin_field_calc mt8183_pin_ies_range[] = {
	PINS_FIELD_BASE(0, 3, 6, 0x000, 0x10, 3, 1),
	PINS_FIELD_BASE(4, 7, 6, 0x000, 0x10, 5, 1),
	PIN_FIELD_BASE(8, 8, 6, 0x000, 0x10, 0, 1),
	PINS_FIELD_BASE(9, 10, 6, 0x000, 0x10, 12, 1),
	PIN_FIELD_BASE(11, 11, 1, 0x000, 0x10, 3, 1),
	PIN_FIELD_BASE(12, 12, 1, 0x000, 0x10, 7, 1),
	PINS_FIELD_BASE(13, 16, 2, 0x000, 0x10, 2, 1),
	PINS_FIELD_BASE(17, 20, 2, 0x000, 0x10, 3, 1),
	PINS_FIELD_BASE(21, 24, 2, 0x000, 0x10, 4, 1),
	PINS_FIELD_BASE(25, 28, 2, 0x000, 0x10, 5, 1),
	PIN_FIELD_BASE(29, 29, 2, 0x000, 0x10, 6, 1),
	PIN_FIELD_BASE(30, 30, 2, 0x000, 0x10, 7, 1),
	PINS_FIELD_BASE(31, 31, 2, 0x000, 0x10, 8, 1),
	PINS_FIELD_BASE(32, 34, 2, 0x000, 0x10, 7, 1),
	PINS_FIELD_BASE(35, 37, 3, 0x000, 0x10, 0, 1),
	PINS_FIELD_BASE(38, 40, 3, 0x000, 0x10, 1, 1),
	PINS_FIELD_BASE(41, 42, 3, 0x000, 0x10, 2, 1),
	PINS_FIELD_BASE(43, 45, 3, 0x000, 0x10, 3, 1),
	PINS_FIELD_BASE(46, 47, 3, 0x000, 0x10, 4, 1),
	PINS_FIELD_BASE(48, 49, 3, 0x000, 0x10, 5, 1),
	PINS_FIELD_BASE(50, 51, 4, 0x000, 0x10, 0, 1),
	PINS_FIELD_BASE(52, 57, 4, 0x000, 0x10, 1, 1),
	PINS_FIELD_BASE(58, 60, 4, 0x000, 0x10, 2, 1),
	PINS_FIELD_BASE(61, 64, 5, 0x000, 0x10, 0, 1),
	PINS_FIELD_BASE(65, 66, 5, 0x000, 0x10, 1, 1),
	PINS_FIELD_BASE(67, 68, 5, 0x000, 0x10, 2, 1),
	PINS_FIELD_BASE(69, 71, 5, 0x000, 0x10, 3, 1),
	PINS_FIELD_BASE(72, 76, 5, 0x000, 0x10, 4, 1),
	PINS_FIELD_BASE(77, 80, 5, 0x000, 0x10, 5, 1),
	PIN_FIELD_BASE(81, 81, 5, 0x000, 0x10, 6, 1),
	PINS_FIELD_BASE(82, 83, 5, 0x000, 0x10, 7, 1),
	PIN_FIELD_BASE(84, 84, 5, 0x000, 0x10, 6, 1),
	PINS_FIELD_BASE(85, 88, 5, 0x000, 0x10, 8, 1),
	PIN_FIELD_BASE(89, 89, 6, 0x000, 0x10, 11, 1),
	PIN_FIELD_BASE(90, 90, 6, 0x000, 0x10, 1, 1),
	PINS_FIELD_BASE(91, 94, 6, 0x000, 0x10, 2, 1),
	PINS_FIELD_BASE(95, 96, 6, 0x000, 0x10, 6, 1),
	PINS_FIELD_BASE(97, 98, 6, 0x000, 0x10, 7, 1),
	PIN_FIELD_BASE(99, 99, 6, 0x000, 0x10, 8, 1),
	PIN_FIELD_BASE(100, 100, 6, 0x000, 0x10, 9, 1),
	PINS_FIELD_BASE(101, 102, 6, 0x000, 0x10, 10, 1),
	PINS_FIELD_BASE(103, 104, 6, 0x000, 0x10, 13, 1),
	PINS_FIELD_BASE(105, 106, 6, 0x000, 0x10, 14, 1),
	PIN_FIELD_BASE(107, 107, 7, 0x000, 0x10, 0, 1),
	PIN_FIELD_BASE(108, 108, 7, 0x000, 0x10, 1, 1),
	PIN_FIELD_BASE(109, 109, 7, 0x000, 0x10, 2, 1),
	PIN_FIELD_BASE(110, 110, 7, 0x000, 0x10, 0, 1),
	PIN_FIELD_BASE(111, 111, 7, 0x000, 0x10, 3, 1),
	PIN_FIELD_BASE(112, 112, 7, 0x000, 0x10, 2, 1),
	PIN_FIELD_BASE(113, 113, 7, 0x000, 0x10, 4, 1),
	PIN_FIELD_BASE(114, 114, 7, 0x000, 0x10, 5, 1),
	PIN_FIELD_BASE(115, 115, 7, 0x000, 0x10, 6, 1),
	PIN_FIELD_BASE(116, 116, 7, 0x000, 0x10, 7, 1),
	PIN_FIELD_BASE(117, 117, 7, 0x000, 0x10, 8, 1),
	PIN_FIELD_BASE(118, 118, 7, 0x000, 0x10, 9, 1),
	PIN_FIELD_BASE(119, 119, 7, 0x000, 0x10, 10, 1),
	PIN_FIELD_BASE(120, 120, 7, 0x000, 0x10, 11, 1),
	PIN_FIELD_BASE(121, 121, 7, 0x000, 0x10, 12, 1),
	PIN_FIELD_BASE(122, 122, 8, 0x000, 0x10, 0, 1),
	PIN_FIELD_BASE(123, 123, 8, 0x000, 0x10, 1, 1),
	PIN_FIELD_BASE(124, 124, 8, 0x000, 0x10, 2, 1),
	PINS_FIELD_BASE(125, 130, 8, 0x000, 0x10, 1, 1),
	PIN_FIELD_BASE(131, 131, 8, 0x000, 0x10, 3, 1),
	PIN_FIELD_BASE(132, 132, 8, 0x000, 0x10, 1, 1),
	PIN_FIELD_BASE(133, 133, 8, 0x000, 0x10, 4, 1),
	PIN_FIELD_BASE(134, 134, 1, 0x000, 0x10, 0, 1),
	PIN_FIELD_BASE(135, 135, 1, 0x000, 0x10, 1, 1),
	PINS_FIELD_BASE(136, 143, 1, 0x000, 0x10, 2, 1),
	PINS_FIELD_BASE(144, 147, 1, 0x000, 0x10, 4, 1),
	PIN_FIELD_BASE(148, 148, 1, 0x000, 0x10, 5, 1),
	PIN_FIELD_BASE(149, 149, 1, 0x000, 0x10, 6, 1),
	PINS_FIELD_BASE(150, 153, 1, 0x000, 0x10, 8, 1),
	PIN_FIELD_BASE(154, 154, 1, 0x000, 0x10, 9, 1),
	PINS_FIELD_BASE(155, 157, 1, 0x000, 0x10, 10, 1),
	PINS_FIELD_BASE(158, 160, 1, 0x000, 0x10, 8, 1),
	PINS_FIELD_BASE(161, 164, 2, 0x000, 0x10, 0, 1),
	PINS_FIELD_BASE(165, 166, 2, 0x000, 0x10, 1, 1),
	PINS_FIELD_BASE(167, 168, 4, 0x000, 0x10, 2, 1),
	PIN_FIELD_BASE(169, 169, 4, 0x000, 0x10, 3, 1),
	PINS_FIELD_BASE(170, 174, 4, 0x000, 0x10, 4, 1),
	PINS_FIELD_BASE(175, 176, 4, 0x000, 0x10, 3, 1),
	PINS_FIELD_BASE(177, 179, 6, 0x000, 0x10, 4, 1),
};

static const struct mtk_pin_field_calc mt8183_pin_smt_range[] = {
	PINS_FIELD_BASE(0, 3, 6, 0x010, 0x10, 3, 1),
	PINS_FIELD_BASE(4, 7, 6, 0x010, 0x10, 5, 1),
	PIN_FIELD_BASE(8, 8, 6, 0x010, 0x10, 0, 1),
	PINS_FIELD_BASE(9, 10, 6, 0x010, 0x10, 12, 1),
	PIN_FIELD_BASE(11, 11, 1, 0x010, 0x10, 3, 1),
	PIN_FIELD_BASE(12, 12, 1, 0x010, 0x10, 7, 1),
	PINS_FIELD_BASE(13, 16, 2, 0x010, 0x10, 2, 1),
	PINS_FIELD_BASE(17, 20, 2, 0x010, 0x10, 3, 1),
	PINS_FIELD_BASE(21, 24, 2, 0x010, 0x10, 4, 1),
	PINS_FIELD_BASE(25, 28, 2, 0x010, 0x10, 5, 1),
	PIN_FIELD_BASE(29, 29, 2, 0x010, 0x10, 6, 1),
	PIN_FIELD_BASE(30, 30, 2, 0x010, 0x10, 7, 1),
	PINS_FIELD_BASE(31, 31, 2, 0x010, 0x10, 8, 1),
	PINS_FIELD_BASE(32, 34, 2, 0x010, 0x10, 7, 1),
	PINS_FIELD_BASE(35, 37, 3, 0x010, 0x10, 0, 1),
	PINS_FIELD_BASE(38, 40, 3, 0x010, 0x10, 1, 1),
	PINS_FIELD_BASE(41, 42, 3, 0x010, 0x10, 2, 1),
	PINS_FIELD_BASE(43, 45, 3, 0x010, 0x10, 3, 1),
	PINS_FIELD_BASE(46, 47, 3, 0x010, 0x10, 4, 1),
	PINS_FIELD_BASE(48, 49, 3, 0x010, 0x10, 5, 1),
	PINS_FIELD_BASE(50, 51, 4, 0x010, 0x10, 0, 1),
	PINS_FIELD_BASE(52, 57, 4, 0x010, 0x10, 1, 1),
	PINS_FIELD_BASE(58, 60, 4, 0x010, 0x10, 2, 1),
	PINS_FIELD_BASE(61, 64, 5, 0x010, 0x10, 0, 1),
	PINS_FIELD_BASE(65, 66, 5, 0x010, 0x10, 1, 1),
	PINS_FIELD_BASE(67, 68, 5, 0x010, 0x10, 2, 1),
	PINS_FIELD_BASE(69, 71, 5, 0x010, 0x10, 3, 1),
	PINS_FIELD_BASE(72, 76, 5, 0x010, 0x10, 4, 1),
	PINS_FIELD_BASE(77, 80, 5, 0x010, 0x10, 5, 1),
	PIN_FIELD_BASE(81, 81, 5, 0x010, 0x10, 6, 1),
	PINS_FIELD_BASE(82, 83, 5, 0x010, 0x10, 7, 1),
	PIN_FIELD_BASE(84, 84, 5, 0x010, 0x10, 6, 1),
	PINS_FIELD_BASE(85, 88, 5, 0x010, 0x10, 8, 1),
	PIN_FIELD_BASE(89, 89, 6, 0x010, 0x10, 11, 1),
	PIN_FIELD_BASE(90, 90, 6, 0x010, 0x10, 1, 1),
	PINS_FIELD_BASE(91, 94, 6, 0x010, 0x10, 2, 1),
	PINS_FIELD_BASE(95, 96, 6, 0x010, 0x10, 6, 1),
	PINS_FIELD_BASE(97, 98, 6, 0x010, 0x10, 7, 1),
	PIN_FIELD_BASE(99, 99, 6, 0x010, 0x10, 8, 1),
	PIN_FIELD_BASE(100, 100, 6, 0x010, 0x10, 9, 1),
	PINS_FIELD_BASE(101, 102, 6, 0x010, 0x10, 10, 1),
	PINS_FIELD_BASE(103, 104, 6, 0x010, 0x10, 13, 1),
	PINS_FIELD_BASE(105, 106, 6, 0x010, 0x10, 14, 1),
	PIN_FIELD_BASE(107, 107, 7, 0x010, 0x10, 0, 1),
	PIN_FIELD_BASE(108, 108, 7, 0x010, 0x10, 1, 1),
	PIN_FIELD_BASE(109, 109, 7, 0x010, 0x10, 2, 1),
	PIN_FIELD_BASE(110, 110, 7, 0x010, 0x10, 0, 1),
	PIN_FIELD_BASE(111, 111, 7, 0x010, 0x10, 3, 1),
	PIN_FIELD_BASE(112, 112, 7, 0x010, 0x10, 2, 1),
	PIN_FIELD_BASE(113, 113, 7, 0x010, 0x10, 4, 1),
	PIN_FIELD_BASE(114, 114, 7, 0x010, 0x10, 5, 1),
	PIN_FIELD_BASE(115, 115, 7, 0x010, 0x10, 6, 1),
	PIN_FIELD_BASE(116, 116, 7, 0x010, 0x10, 7, 1),
	PIN_FIELD_BASE(117, 117, 7, 0x010, 0x10, 8, 1),
	PIN_FIELD_BASE(118, 118, 7, 0x010, 0x10, 9, 1),
	PIN_FIELD_BASE(119, 119, 7, 0x010, 0x10, 10, 1),
	PIN_FIELD_BASE(120, 120, 7, 0x010, 0x10, 11, 1),
	PIN_FIELD_BASE(121, 121, 7, 0x010, 0x10, 12, 1),
	PIN_FIELD_BASE(122, 122, 8, 0x010, 0x10, 0, 1),
	PIN_FIELD_BASE(123, 123, 8, 0x010, 0x10, 1, 1),
	PIN_FIELD_BASE(124, 124, 8, 0x010, 0x10, 2, 1),
	PINS_FIELD_BASE(125, 130, 8, 0x010, 0x10, 1, 1),
	PIN_FIELD_BASE(131, 131, 8, 0x010, 0x10, 3, 1),
	PIN_FIELD_BASE(132, 132, 8, 0x010, 0x10, 1, 1),
	PIN_FIELD_BASE(133, 133, 8, 0x010, 0x10, 4, 1),
	PIN_FIELD_BASE(134, 134, 1, 0x010, 0x10, 0, 1),
	PIN_FIELD_BASE(135, 135, 1, 0x010, 0x10, 1, 1),
	PINS_FIELD_BASE(136, 143, 1, 0x010, 0x10, 2, 1),
	PINS_FIELD_BASE(144, 147, 1, 0x010, 0x10, 4, 1),
	PIN_FIELD_BASE(148, 148, 1, 0x010, 0x10, 5, 1),
	PIN_FIELD_BASE(149, 149, 1, 0x010, 0x10, 6, 1),
	PINS_FIELD_BASE(150, 153, 1, 0x010, 0x10, 8, 1),
	PIN_FIELD_BASE(154, 154, 1, 0x010, 0x10, 9, 1),
	PINS_FIELD_BASE(155, 157, 1, 0x010, 0x10, 10, 1),
	PINS_FIELD_BASE(158, 160, 1, 0x010, 0x10, 8, 1),
	PINS_FIELD_BASE(161, 164, 2, 0x010, 0x10, 0, 1),
	PINS_FIELD_BASE(165, 166, 2, 0x010, 0x10, 1, 1),
	PINS_FIELD_BASE(167, 168, 4, 0x010, 0x10, 2, 1),
	PIN_FIELD_BASE(169, 169, 4, 0x010, 0x10, 3, 1),
	PINS_FIELD_BASE(170, 174, 4, 0x010, 0x10, 4, 1),
	PINS_FIELD_BASE(175, 176, 4, 0x010, 0x10, 3, 1),
	PINS_FIELD_BASE(177, 179, 6, 0x010, 0x10, 4, 1),
};

static const struct mtk_pin_field_calc mt8183_pin_pullen_range[] = {
	PIN_FIELD_BASE(0, 3, 6, 0x060, 0x10, 6, 1),
	PIN_FIELD_BASE(4, 7, 6, 0x060, 0x10, 11, 1),
	PIN_FIELD_BASE(8, 8, 6, 0x060, 0x10, 0, 1),
	PIN_FIELD_BASE(9, 10, 6, 0x060, 0x10, 26, 1),
	PIN_FIELD_BASE(11, 11, 1, 0x060, 0x10, 10, 1),
	PIN_FIELD_BASE(12, 12, 1, 0x060, 0x10, 17, 1),
	PIN_FIELD_BASE(13, 28, 2, 0x060, 0x10, 6, 1),
	PIN_FIELD_BASE(29, 34, 2, 0x060, 0x10, 22, 1),
	PIN_FIELD_BASE(43, 49, 3, 0x060, 0x10, 8, 1),
	PIN_FIELD_BASE(50, 60, 4, 0x060, 0x10, 0, 1),
	PIN_FIELD_BASE(61, 88, 5, 0x060, 0x10, 0, 1),
	PIN_FIELD_BASE(89, 89, 6, 0x060, 0x10, 24, 1),
	PIN_FIELD_BASE(90, 90, 6, 0x060, 0x10, 1, 1),
	PIN_FIELD_BASE(95, 95, 6, 0x060, 0x10, 15, 1),
	PIN_FIELD_BASE(96, 102, 6, 0x060, 0x10, 17, 1),
	PIN_FIELD_BASE(103, 106, 6, 0x060, 0x10, 28, 1),
	PIN_FIELD_BASE(107, 121, 7, 0x060, 0x10, 0, 1),
	PIN_FIELD_BASE(122, 133, 8, 0x060, 0x10, 0, 1),
	PIN_FIELD_BASE(134, 143, 1, 0x060, 0x10, 0, 1),
	PIN_FIELD_BASE(144, 149, 1, 0x060, 0x10, 11, 1),
	PIN_FIELD_BASE(150, 160, 1, 0x060, 0x10, 18, 1),
	PIN_FIELD_BASE(161, 166, 2, 0x060, 0x10, 0, 1),
	PIN_FIELD_BASE(167, 176, 4, 0x060, 0x10, 11, 1),
	PIN_FIELD_BASE(177, 177, 6, 0x060, 0x10, 10, 1),
	PIN_FIELD_BASE(178, 178, 6, 0x060, 0x10, 16, 1),
	PIN_FIELD_BASE(179, 179, 6, 0x060, 0x10, 25, 1),
};

static const struct mtk_pin_field_calc mt8183_pin_pullsel_range[] = {
	PIN_FIELD_BASE(0, 3, 6, 0x080, 0x10, 6, 1),
	PIN_FIELD_BASE(4, 7, 6, 0x080, 0x10, 11, 1),
	PIN_FIELD_BASE(8, 8, 6, 0x080, 0x10, 0, 1),
	PIN_FIELD_BASE(9, 10, 6, 0x080, 0x10, 26, 1),
	PIN_FIELD_BASE(11, 11, 1, 0x080, 0x10, 10, 1),
	PIN_FIELD_BASE(12, 12, 1, 0x080, 0x10, 17, 1),
	PIN_FIELD_BASE(13, 28, 2, 0x080, 0x10, 6, 1),
	PIN_FIELD_BASE(29, 34, 2, 0x080, 0x10, 22, 1),
	PIN_FIELD_BASE(43, 49, 3, 0x080, 0x10, 8, 1),
	PIN_FIELD_BASE(50, 60, 4, 0x080, 0x10, 0, 1),
	PIN_FIELD_BASE(61, 88, 5, 0x080, 0x10, 0, 1),
	PIN_FIELD_BASE(89, 89, 6, 0x080, 0x10, 24, 1),
	PIN_FIELD_BASE(90, 90, 6, 0x080, 0x10, 1, 1),
	PIN_FIELD_BASE(95, 95, 6, 0x080, 0x10, 15, 1),
	PIN_FIELD_BASE(96, 102, 6, 0x080, 0x10, 17, 1),
	PIN_FIELD_BASE(103, 106, 6, 0x080, 0x10, 28, 1),
	PIN_FIELD_BASE(107, 121, 7, 0x080, 0x10, 0, 1),
	PIN_FIELD_BASE(122, 133, 8, 0x080, 0x10, 0, 1),
	PIN_FIELD_BASE(134, 143, 1, 0x080, 0x10, 0, 1),
	PIN_FIELD_BASE(144, 149, 1, 0x080, 0x10, 11, 1),
	PIN_FIELD_BASE(150, 160, 1, 0x080, 0x10, 18, 1),
	PIN_FIELD_BASE(161, 166, 2, 0x080, 0x10, 0, 1),
	PIN_FIELD_BASE(167, 176, 4, 0x080, 0x10, 11, 1),
	PIN_FIELD_BASE(177, 177, 6, 0x080, 0x10, 10, 1),
	PIN_FIELD_BASE(178, 178, 6, 0x080, 0x10, 16, 1),
	PIN_FIELD_BASE(179, 179, 6, 0x080, 0x10, 25, 1),
};

static const struct mtk_pin_field_calc mt8183_pin_drv_range[] = {
	PINS_FIELD_BASE(0, 3, 6, 0x0A0, 0x10, 12, 3),
	PINS_FIELD_BASE(4, 7, 6, 0x0A0, 0x10, 20, 3),
	PIN_FIELD_BASE(8, 8, 6, 0x0A0, 0x10, 0, 3),
	PINS_FIELD_BASE(9, 10, 6, 0x0B0, 0x10, 16, 3),
	PIN_FIELD_BASE(11, 11, 1, 0x0A0, 0x10, 12, 3),
	PIN_FIELD_BASE(12, 12, 1, 0x0A0, 0x10, 28, 3),
	PINS_FIELD_BASE(13, 16, 2, 0x0A0, 0x10, 8, 3),
	PINS_FIELD_BASE(17, 20, 2, 0x0A0, 0x10, 12, 3),
	PINS_FIELD_BASE(21, 24, 2, 0x0A0, 0x10, 16, 3),
	PINS_FIELD_BASE(25, 28, 2, 0x0A0, 0x10, 20, 3),
	PIN_FIELD_BASE(29, 29, 2, 0x0A0, 0x10, 24, 3),
	PIN_FIELD_BASE(30, 30, 2, 0x0A0, 0x10, 28, 3),
	PINS_FIELD_BASE(31, 31, 2, 0x0B0, 0x10, 0, 3),
	PINS_FIELD_BASE(32, 34, 2, 0x0A0, 0x10, 28, 3),
	PINS_FIELD_BASE(35, 37, 3, 0x0A0, 0x10, 0, 3),
	PINS_FIELD_BASE(38, 40, 3, 0x0A0, 0x10, 4, 3),
	PINS_FIELD_BASE(41, 42, 3, 0x0A0, 0x10, 8, 3),
	PINS_FIELD_BASE(43, 45, 3, 0x0A0, 0x10, 12, 3),
	PINS_FIELD_BASE(46, 47, 3, 0x0A0, 0x10, 16, 3),
	PINS_FIELD_BASE(48, 49, 3, 0x0A0, 0x10, 20, 3),
	PINS_FIELD_BASE(50, 51, 4, 0x0A0, 0x10, 0, 3),
	PINS_FIELD_BASE(52, 57, 4, 0x0A0, 0x10, 4, 3),
	PINS_FIELD_BASE(58, 60, 4, 0x0A0, 0x10, 8, 3),
	PINS_FIELD_BASE(61, 64, 5, 0x0A0, 0x10, 0, 3),
	PINS_FIELD_BASE(65, 66, 5, 0x0A0, 0x10, 4, 3),
	PINS_FIELD_BASE(67, 68, 5, 0x0A0, 0x10, 8, 3),
	PINS_FIELD_BASE(69, 71, 5, 0x0A0, 0x10, 12, 3),
	PINS_FIELD_BASE(72, 76, 5, 0x0A0, 0x10, 16, 3),
	PINS_FIELD_BASE(77, 80, 5, 0x0A0, 0x10, 20, 3),
	PIN_FIELD_BASE(81, 81, 5, 0x0A0, 0x10, 24, 3),
	PINS_FIELD_BASE(82, 83, 5, 0x0A0, 0x10, 28, 3),
	PIN_FIELD_BASE(84, 84, 5, 0x0A0, 0x10, 24, 3),
	PINS_FIELD_BASE(85, 88, 5, 0x0B0, 0x10, 0, 3),
	PIN_FIELD_BASE(89, 89, 6, 0x0B0, 0x10, 12, 3),
	PIN_FIELD_BASE(90, 90, 6, 0x0A0, 0x10, 4, 3),
	PINS_FIELD_BASE(91, 94, 6, 0x0A0, 0x10, 8, 3),
	PINS_FIELD_BASE(95, 96, 6, 0x0A0, 0x10, 24, 3),
	PINS_FIELD_BASE(97, 98, 6, 0x0A0, 0x10, 28, 3),
	PIN_FIELD_BASE(99, 99, 6, 0x0B0, 0x10, 0, 3),
	PIN_FIELD_BASE(100, 100, 6, 0x0B0, 0x10, 4, 3),
	PINS_FIELD_BASE(101, 102, 6, 0x0B0, 0x10, 8, 3),
	PINS_FIELD_BASE(103, 104, 6, 0x0B0, 0x10, 20, 3),
	PINS_FIELD_BASE(105, 106, 6, 0x0B0, 0x10, 24, 3),
	PIN_FIELD_BASE(107, 107, 7, 0x0A0, 0x10, 0, 3),
	PIN_FIELD_BASE(108, 108, 7, 0x0A0, 0x10, 4, 3),
	PIN_FIELD_BASE(109, 109, 7, 0x0A0, 0x10, 8, 3),
	PIN_FIELD_BASE(110, 110, 7, 0x0A0, 0x10, 0, 3),
	PIN_FIELD_BASE(111, 111, 7, 0x0A0, 0x10, 4, 3),
	PIN_FIELD_BASE(112, 112, 7, 0x0A0, 0x10, 8, 3),
	PIN_FIELD_BASE(113, 113, 7, 0x0A0, 0x10, 16, 3),
	PIN_FIELD_BASE(114, 114, 7, 0x0A0, 0x10, 20, 3),
	PIN_FIELD_BASE(115, 115, 7, 0x0A0, 0x10, 24, 3),
	PIN_FIELD_BASE(116, 116, 7, 0x0A0, 0x10, 28, 3),
	PIN_FIELD_BASE(117, 117, 7, 0x0B0, 0x10, 0, 3),
	PIN_FIELD_BASE(118, 118, 7, 0x0B0, 0x10, 4, 3),
	PIN_FIELD_BASE(119, 119, 7, 0x0B0, 0x10, 8, 3),
	PIN_FIELD_BASE(120, 120, 7, 0x0B0, 0x10, 12, 3),
	PIN_FIELD_BASE(121, 121, 7, 0x0B0, 0x10, 16, 3),
	PIN_FIELD_BASE(122, 122, 8, 0x0A0, 0x10, 0, 3),
	PIN_FIELD_BASE(123, 123, 8, 0x0A0, 0x10, 4, 3),
	PIN_FIELD_BASE(124, 124, 8, 0x0A0, 0x10, 8, 3),
	PINS_FIELD_BASE(125, 130, 8, 0x0A0, 0x10, 4, 3),
	PIN_FIELD_BASE(131, 131, 8, 0x0A0, 0x10, 12, 3),
	PIN_FIELD_BASE(132, 132, 8, 0x0A0, 0x10, 4, 3),
	PIN_FIELD_BASE(133, 133, 8, 0x0A0, 0x10, 16, 3),
	PIN_FIELD_BASE(134, 134, 1, 0x0A0, 0x10, 0, 3),
	PIN_FIELD_BASE(135, 135, 1, 0x0A0, 0x10, 4, 3),
	PINS_FIELD_BASE(136, 143, 1, 0x0A0, 0x10, 8, 3),
	PINS_FIELD_BASE(144, 147, 1, 0x0A0, 0x10, 16, 3),
	PIN_FIELD_BASE(148, 148, 1, 0x0A0, 0x10, 20, 3),
	PIN_FIELD_BASE(149, 149, 1, 0x0A0, 0x10, 24, 3),
	PINS_FIELD_BASE(150, 153, 1, 0x0B0, 0x10, 0, 3),
	PIN_FIELD_BASE(154, 154, 1, 0x0B0, 0x10, 4, 3),
	PINS_FIELD_BASE(155, 157, 1, 0x0B0, 0x10, 8, 3),
	PINS_FIELD_BASE(158, 160, 1, 0x0B0, 0x10, 0, 3),
	PINS_FIELD_BASE(161, 164, 2, 0x0A0, 0x10, 0, 3),
	PINS_FIELD_BASE(165, 166, 2, 0x0A0, 0x10, 4, 3),
	PINS_FIELD_BASE(167, 168, 4, 0x0A0, 0x10, 8, 3),
	PIN_FIELD_BASE(169, 169, 4, 0x0A0, 0x10, 12, 3),
	PINS_FIELD_BASE(170, 174, 4, 0x0A0, 0x10, 16, 3),
	PINS_FIELD_BASE(175, 176, 4, 0x0A0, 0x10, 12, 3),
	PINS_FIELD_BASE(177, 179, 6, 0x0A0, 0x10, 16, 3),
};

static const struct mtk_pin_field_calc mt8183_pin_pupd_range[] = {
	PIN_FIELD_BASE(29, 29, 2, 0x0C0, 0x10, 2, 1),
	PIN_FIELD_BASE(30, 30, 2, 0x0C0, 0x10, 6, 1),
	PIN_FIELD_BASE(31, 31, 2, 0x0C0, 0x10, 10, 1),
	PIN_FIELD_BASE(32, 32, 2, 0x0C0, 0x10, 14, 1),
	PIN_FIELD_BASE(33, 33, 2, 0x0C0, 0x10, 18, 1),
	PIN_FIELD_BASE(34, 34, 2, 0x0C0, 0x10, 22, 1),
	PIN_FIELD_BASE(35, 35, 3, 0x0C0, 0x10, 2, 1),
	PIN_FIELD_BASE(36, 36, 3, 0x0C0, 0x10, 6, 1),
	PIN_FIELD_BASE(37, 37, 3, 0x0C0, 0x10, 10, 1),
	PIN_FIELD_BASE(38, 38, 3, 0x0C0, 0x10, 14, 1),
	PIN_FIELD_BASE(39, 39, 3, 0x0C0, 0x10, 18, 1),
	PIN_FIELD_BASE(40, 40, 3, 0x0C0, 0x10, 22, 1),
	PIN_FIELD_BASE(41, 41, 3, 0x0C0, 0x10, 26, 1),
	PIN_FIELD_BASE(42, 42, 3, 0x0C0, 0x10, 30, 1),
	PIN_FIELD_BASE(91, 91, 6, 0x0C0, 0x10, 2, 1),
	PIN_FIELD_BASE(92, 92, 6, 0x0C0, 0x10, 6, 1),
	PIN_FIELD_BASE(93, 93, 6, 0x0C0, 0x10, 10, 1),
	PIN_FIELD_BASE(94, 94, 6, 0x0C0, 0x10, 14, 1),
	PIN_FIELD_BASE(122, 122, 8, 0x0C0, 0x10, 2, 1),
	PIN_FIELD_BASE(123, 123, 8, 0x0C0, 0x10, 6, 1),
	PIN_FIELD_BASE(124, 124, 8, 0x0C0, 0x10, 10, 1),
	PIN_FIELD_BASE(125, 125, 8, 0x0C0, 0x10, 14, 1),
	PIN_FIELD_BASE(126, 126, 8, 0x0C0, 0x10, 18, 1),
	PIN_FIELD_BASE(127, 127, 8, 0x0C0, 0x10, 22, 1),
	PIN_FIELD_BASE(128, 128, 8, 0x0C0, 0x10, 26, 1),
	PIN_FIELD_BASE(129, 129, 8, 0x0C0, 0x10, 30, 1),
	PIN_FIELD_BASE(130, 130, 8, 0x0D0, 0x10, 2, 1),
	PIN_FIELD_BASE(131, 131, 8, 0x0D0, 0x10, 6, 1),
	PIN_FIELD_BASE(132, 132, 8, 0x0D0, 0x10, 10, 1),
	PIN_FIELD_BASE(133, 133, 8, 0x0D0, 0x10, 14, 1),
};

static const struct mtk_pin_field_calc mt8183_pin_r0_range[] = {
	PIN_FIELD_BASE(29, 29, 2, 0x0C0, 0x10, 0, 1),
	PIN_FIELD_BASE(30, 30, 2, 0x0C0, 0x10, 4, 1),
	PIN_FIELD_BASE(31, 31, 2, 0x0C0, 0x10, 8, 1),
	PIN_FIELD_BASE(32, 32, 2, 0x0C0, 0x10, 12, 1),
	PIN_FIELD_BASE(33, 33, 2, 0x0C0, 0x10, 16, 1),
	PIN_FIELD_BASE(34, 34, 2, 0x0C0, 0x10, 20, 1),
	PIN_FIELD_BASE(35, 35, 3, 0x0C0, 0x10, 0, 1),
	PIN_FIELD_BASE(36, 36, 3, 0x0C0, 0x10, 4, 1),
	PIN_FIELD_BASE(37, 37, 3, 0x0C0, 0x10, 8, 1),
	PIN_FIELD_BASE(38, 38, 3, 0x0C0, 0x10, 12, 1),
	PIN_FIELD_BASE(39, 39, 3, 0x0C0, 0x10, 16, 1),
	PIN_FIELD_BASE(40, 40, 3, 0x0C0, 0x10, 20, 1),
	PIN_FIELD_BASE(41, 41, 3, 0x0C0, 0x10, 24, 1),
	PIN_FIELD_BASE(42, 42, 3, 0x0C0, 0x10, 28, 1),
	PIN_FIELD_BASE(48, 48, 3, 0x0F0, 0x10, 18, 1),
	PIN_FIELD_BASE(49, 49, 3, 0x0F0, 0x10, 13, 1),
	PIN_FIELD_BASE(50, 50, 4, 0x0F0, 0x10, 10, 1),
	PIN_FIELD_BASE(51, 51, 4, 0x0F0, 0x10, 5, 1),
	PIN_FIELD_BASE(81, 81, 5, 0x0F0, 0x10, 7, 1),
	PIN_FIELD_BASE(82, 82, 5, 0x0F0, 0x10, 5, 1),
	PIN_FIELD_BASE(83, 83, 5, 0x0F0, 0x10, 15, 1),
	PIN_FIELD_BASE(84, 84, 5, 0x0F0, 0x10, 17, 1),
	PIN_FIELD_BASE(91, 91, 6, 0x0C0, 0x10, 0, 1),
	PIN_FIELD_BASE(92, 92, 6, 0x0C0, 0x10, 4, 1),
	PIN_FIELD_BASE(93, 93, 6, 0x0C0, 0x10, 8, 1),
	PIN_FIELD_BASE(94, 94, 6, 0x0C0, 0x10, 12, 1),
	PIN_FIELD_BASE(103, 103, 6, 0x0F0, 0x10, 20, 1),
	PIN_FIELD_BASE(104, 104, 6, 0x0F0, 0x10, 10, 1),
	PIN_FIELD_BASE(105, 105, 6, 0x0F0, 0x10, 22, 1),
	PIN_FIELD_BASE(106, 106, 6, 0x0F0, 0x10, 12, 1),
	PIN_FIELD_BASE(122, 122, 8, 0x0C0, 0x10, 0, 1),
	PIN_FIELD_BASE(123, 123, 8, 0x0C0, 0x10, 4, 1),
	PIN_FIELD_BASE(124, 124, 8, 0x0C0, 0x10, 8, 1),
	PIN_FIELD_BASE(125, 125, 8, 0x0C0, 0x10, 12, 1),
	PIN_FIELD_BASE(126, 126, 8, 0x0C0, 0x10, 16, 1),
	PIN_FIELD_BASE(127, 127, 8, 0x0C0, 0x10, 20, 1),
	PIN_FIELD_BASE(128, 128, 8, 0x0C0, 0x10, 24, 1),
	PIN_FIELD_BASE(129, 129, 8, 0x0C0, 0x10, 28, 1),
	PIN_FIELD_BASE(130, 130, 8, 0x0D0, 0x10, 0, 1),
	PIN_FIELD_BASE(131, 131, 8, 0x0D0, 0x10, 4, 1),
	PIN_FIELD_BASE(132, 132, 8, 0x0D0, 0x10, 8, 1),
	PIN_FIELD_BASE(133, 133, 8, 0x0D0, 0x10, 12, 1),
};

static const struct mtk_pin_field_calc mt8183_pin_r1_range[] = {
	PIN_FIELD_BASE(29, 29, 2, 0x0C0, 0x10, 1, 1),
	PIN_FIELD_BASE(30, 30, 2, 0x0C0, 0x10, 5, 1),
	PIN_FIELD_BASE(31, 31, 2, 0x0C0, 0x10, 9, 1),
	PIN_FIELD_BASE(32, 32, 2, 0x0C0, 0x10, 13, 1),
	PIN_FIELD_BASE(33, 33, 2, 0x0C0, 0x10, 17, 1),
	PIN_FIELD_BASE(34, 34, 2, 0x0C0, 0x10, 21, 1),
	PIN_FIELD_BASE(35, 35, 3, 0x0C0, 0x10, 1, 1),
	PIN_FIELD_BASE(36, 36, 3, 0x0C0, 0x10, 5, 1),
	PIN_FIELD_BASE(37, 37, 3, 0x0C0, 0x10, 9, 1),
	PIN_FIELD_BASE(38, 38, 3, 0x0C0, 0x10, 13, 1),
	PIN_FIELD_BASE(39, 39, 3, 0x0C0, 0x10, 17, 1),
	PIN_FIELD_BASE(40, 40, 3, 0x0C0, 0x10, 21, 1),
	PIN_FIELD_BASE(41, 41, 3, 0x0C0, 0x10, 25, 1),
	PIN_FIELD_BASE(42, 42, 3, 0x0C0, 0x10, 29, 1),
	PIN_FIELD_BASE(48, 48, 3, 0x0F0, 0x10, 19, 1),
	PIN_FIELD_BASE(49, 49, 3, 0x0F0, 0x10, 14, 1),
	PIN_FIELD_BASE(50, 50, 4, 0x0F0, 0x10, 11, 1),
	PIN_FIELD_BASE(51, 51, 4, 0x0F0, 0x10, 6, 1),
	PIN_FIELD_BASE(81, 81, 5, 0x0F0, 0x10, 8, 1),
	PIN_FIELD_BASE(82, 82, 5, 0x0F0, 0x10, 6, 1),
	PIN_FIELD_BASE(83, 83, 5, 0x0F0, 0x10, 16, 1),
	PIN_FIELD_BASE(84, 84, 5, 0x0F0, 0x10, 18, 1),
	PIN_FIELD_BASE(91, 91, 6, 0x0C0, 0x10, 1, 1),
	PIN_FIELD_BASE(92, 92, 6, 0x0C0, 0x10, 5, 1),
	PIN_FIELD_BASE(93, 93, 6, 0x0C0, 0x10, 9, 1),
	PIN_FIELD_BASE(94, 94, 6, 0x0C0, 0x10, 13, 1),
	PIN_FIELD_BASE(103, 103, 6, 0x0F0, 0x10, 21, 1),
	PIN_FIELD_BASE(104, 104, 6, 0x0F0, 0x10, 11, 1),
	PIN_FIELD_BASE(105, 105, 6, 0x0F0, 0x10, 23, 1),
	PIN_FIELD_BASE(106, 106, 6, 0x0F0, 0x10, 13, 1),
	PIN_FIELD_BASE(122, 122, 8, 0x0C0, 0x10, 1, 1),
	PIN_FIELD_BASE(123, 123, 8, 0x0C0, 0x10, 5, 1),
	PIN_FIELD_BASE(124, 124, 8, 0x0C0, 0x10, 9, 1),
	PIN_FIELD_BASE(125, 125, 8, 0x0C0, 0x10, 13, 1),
	PIN_FIELD_BASE(126, 126, 8, 0x0C0, 0x10, 17, 1),
	PIN_FIELD_BASE(127, 127, 8, 0x0C0, 0x10, 21, 1),
	PIN_FIELD_BASE(128, 128, 8, 0x0C0, 0x10, 25, 1),
	PIN_FIELD_BASE(129, 129, 8, 0x0C0, 0x10, 29, 1),
	PIN_FIELD_BASE(130, 130, 8, 0x0D0, 0x10, 1, 1),
	PIN_FIELD_BASE(131, 131, 8, 0x0D0, 0x10, 5, 1),
	PIN_FIELD_BASE(132, 132, 8, 0x0D0, 0x10, 9, 1),
	PIN_FIELD_BASE(133, 133, 8, 0x0D0, 0x10, 13, 1),
};

static const struct mtk_pin_field_calc mt8183_pin_e1e0en_range[] = {
	PIN_FIELD_BASE(48, 48, 3, 0x0F0, 0x10, 20, 1),
	PIN_FIELD_BASE(49, 49, 3, 0x0F0, 0x10, 15, 1),
	PIN_FIELD_BASE(50, 50, 4, 0x0F0, 0x10, 12, 1),
	PIN_FIELD_BASE(51, 51, 4, 0x0F0, 0x10, 7, 1),
	PIN_FIELD_BASE(81, 81, 5, 0x0F0, 0x10, 12, 1),
	PIN_FIELD_BASE(82, 82, 5, 0x0F0, 0x10, 9, 1),
	PIN_FIELD_BASE(83, 83, 5, 0x0F0, 0x10, 19, 1),
	PIN_FIELD_BASE(84, 84, 5, 0x0F0, 0x10, 22, 1),
	PIN_FIELD_BASE(103, 103, 6, 0x0F0, 0x10, 24, 1),
	PIN_FIELD_BASE(104, 104, 6, 0x0F0, 0x10, 14, 1),
	PIN_FIELD_BASE(105, 105, 6, 0x0F0, 0x10, 27, 1),
	PIN_FIELD_BASE(106, 106, 6, 0x0F0, 0x10, 17, 1),
};

static const struct mtk_pin_field_calc mt8183_pin_e0_range[] = {
	PIN_FIELD_BASE(48, 48, 3, 0x0F0, 0x10, 21, 1),
	PIN_FIELD_BASE(49, 49, 3, 0x0F0, 0x10, 16, 1),
	PIN_FIELD_BASE(50, 50, 4, 0x0F0, 0x10, 13, 1),
	PIN_FIELD_BASE(51, 51, 4, 0x0F0, 0x10, 8, 1),
	PIN_FIELD_BASE(81, 81, 5, 0x0F0, 0x10, 13, 1),
	PIN_FIELD_BASE(82, 82, 5, 0x0F0, 0x10, 10, 1),
	PIN_FIELD_BASE(83, 83, 5, 0x0F0, 0x10, 20, 1),
	PIN_FIELD_BASE(84, 84, 5, 0x0F0, 0x10, 23, 1),
	PIN_FIELD_BASE(103, 103, 6, 0x0F0, 0x10, 25, 1),
	PIN_FIELD_BASE(104, 104, 6, 0x0F0, 0x10, 15, 1),
	PIN_FIELD_BASE(105, 105, 6, 0x0F0, 0x10, 28, 1),
	PIN_FIELD_BASE(106, 106, 6, 0x0F0, 0x10, 18, 1),
};

static const struct mtk_pin_field_calc mt8183_pin_e1_range[] = {
	PIN_FIELD_BASE(48, 48, 3, 0x0F0, 0x10, 22, 1),
	PIN_FIELD_BASE(49, 49, 3, 0x0F0, 0x10, 17, 1),
	PIN_FIELD_BASE(50, 50, 4, 0x0F0, 0x10, 14, 1),
	PIN_FIELD_BASE(51, 51, 4, 0x0F0, 0x10, 9, 1),
	PIN_FIELD_BASE(81, 81, 5, 0x0F0, 0x10, 14, 1),
	PIN_FIELD_BASE(82, 82, 5, 0x0F0, 0x10, 11, 1),
	PIN_FIELD_BASE(83, 83, 5, 0x0F0, 0x10, 21, 1),
	PIN_FIELD_BASE(84, 84, 5, 0x0F0, 0x10, 24, 1),
	PIN_FIELD_BASE(103, 103, 6, 0x0F0, 0x10, 26, 1),
	PIN_FIELD_BASE(104, 104, 6, 0x0F0, 0x10, 16, 1),
	PIN_FIELD_BASE(105, 105, 6, 0x0F0, 0x10, 29, 1),
	PIN_FIELD_BASE(106, 106, 6, 0x0F0, 0x10, 19, 1),
};

static const struct mtk_pin_reg_calc mt8183_reg_cals[PINCTRL_PIN_REG_MAX] = {
	[PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt8183_pin_mode_range),
	[PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt8183_pin_dir_range),
	[PINCTRL_PIN_REG_DI] = MTK_RANGE(mt8183_pin_di_range),
	[PINCTRL_PIN_REG_DO] = MTK_RANGE(mt8183_pin_do_range),
	[PINCTRL_PIN_REG_SMT] = MTK_RANGE(mt8183_pin_smt_range),
	[PINCTRL_PIN_REG_IES] = MTK_RANGE(mt8183_pin_ies_range),
	[PINCTRL_PIN_REG_PULLEN] = MTK_RANGE(mt8183_pin_pullen_range),
	[PINCTRL_PIN_REG_PULLSEL] = MTK_RANGE(mt8183_pin_pullsel_range),
	[PINCTRL_PIN_REG_DRV] = MTK_RANGE(mt8183_pin_drv_range),
	[PINCTRL_PIN_REG_PUPD] = MTK_RANGE(mt8183_pin_pupd_range),
	[PINCTRL_PIN_REG_R0] = MTK_RANGE(mt8183_pin_r0_range),
	[PINCTRL_PIN_REG_R1] = MTK_RANGE(mt8183_pin_r1_range),
	[PINCTRL_PIN_REG_DRV_EN] = MTK_RANGE(mt8183_pin_e1e0en_range),
	[PINCTRL_PIN_REG_DRV_E0] = MTK_RANGE(mt8183_pin_e0_range),
	[PINCTRL_PIN_REG_DRV_E1] = MTK_RANGE(mt8183_pin_e1_range),
};

static const char * const mt8183_pinctrl_register_base_names[] = {
	"iocfg0", "iocfg1", "iocfg2", "iocfg3", "iocfg4", "iocfg5",
	"iocfg6", "iocfg7", "iocfg8",
};

static const struct mtk_eint_hw mt8183_eint_hw = {
	.port_mask = 7,
	.ports     = 6,
	.ap_num    = 212,
	.db_cnt    = 13,
};

static const struct mtk_pin_soc mt8183_data = {
	.reg_cal = mt8183_reg_cals,
	.pins = mtk_pins_mt8183,
	.npins = ARRAY_SIZE(mtk_pins_mt8183),
	.ngrps = ARRAY_SIZE(mtk_pins_mt8183),
	.eint_hw = &mt8183_eint_hw,
	.gpio_m = 0,
	.ies_present = true,
	.base_names = mt8183_pinctrl_register_base_names,
	.nbase_names = ARRAY_SIZE(mt8183_pinctrl_register_base_names),
	.bias_disable_set = mtk_pinconf_bias_disable_set_rev1,
	.bias_disable_get = mtk_pinconf_bias_disable_get_rev1,
	.bias_set = mtk_pinconf_bias_set_rev1,
	.bias_get = mtk_pinconf_bias_get_rev1,
	.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,
	.adv_drive_get = mtk_pinconf_adv_drive_get,
	.adv_drive_set = mtk_pinconf_adv_drive_set,
};

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

static int mt8183_pinctrl_probe(struct platform_device *pdev)
{
	return mtk_paris_pinctrl_probe(pdev, &mt8183_data);
}

static struct platform_driver mt8183_pinctrl_driver = {
	.driver = {
		.name = "mt8183-pinctrl",
		.of_match_table = mt8183_pinctrl_of_match,
	},
	.probe = mt8183_pinctrl_probe,
};

static int __init mt8183_pinctrl_init(void)
{
	return platform_driver_register(&mt8183_pinctrl_driver);
}
arch_initcall(mt8183_pinctrl_init);
