cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

pinctrl-mt8195.c (45666B)


      1// SPDX-License-Identifier: GPL-2.0
      2/*
      3 * Copyright (C) 2020 MediaTek Inc.
      4 *
      5 * Author: Zhiyong Tao <zhiyong.tao@mediatek.com>
      6 *
      7 */
      8
      9#include "pinctrl-mtk-mt8195.h"
     10#include "pinctrl-paris.h"
     11
     12/* MT8195 have multiple bases to program pin configuration listed as the below:
     13 * iocfg[0]:0x10005000, iocfg[1]:0x11d10000, iocfg[2]:0x11d30000,
     14 * iocfg[3]:0x11d40000, iocfg[4]:0x11e20000, iocfg[5]:0x11eb0000,
     15 * iocfg[6]:0x11f40000.
     16 * _i_based could be used to indicate what base the pin should be mapped into.
     17 */
     18
     19#define PIN_FIELD_BASE(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits) \
     20	PIN_FIELD_CALC(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits, \
     21		       32, 0)
     22
     23#define PINS_FIELD_BASE(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits) \
     24	PIN_FIELD_CALC(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits,  \
     25		       32, 1)
     26
     27static const struct mtk_pin_field_calc mt8195_pin_mode_range[] = {
     28	PIN_FIELD(0, 144, 0x300, 0x10, 0, 4),
     29};
     30
     31static const struct mtk_pin_field_calc mt8195_pin_dir_range[] = {
     32	PIN_FIELD(0, 144, 0x0, 0x10, 0, 1),
     33};
     34
     35static const struct mtk_pin_field_calc mt8195_pin_di_range[] = {
     36	PIN_FIELD(0, 144, 0x200, 0x10, 0, 1),
     37};
     38
     39static const struct mtk_pin_field_calc mt8195_pin_do_range[] = {
     40	PIN_FIELD(0, 144, 0x100, 0x10, 0, 1),
     41};
     42
     43static const struct mtk_pin_field_calc mt8195_pin_ies_range[] = {
     44	PIN_FIELD_BASE(0, 0, 4, 0x040, 0x10, 0, 1),
     45	PIN_FIELD_BASE(1, 1, 4, 0x040, 0x10, 1, 1),
     46	PIN_FIELD_BASE(2, 2, 4, 0x040, 0x10, 2, 1),
     47	PIN_FIELD_BASE(3, 3, 4, 0x040, 0x10, 3, 1),
     48	PIN_FIELD_BASE(4, 4, 4, 0x040, 0x10, 4, 1),
     49	PIN_FIELD_BASE(5, 5, 4, 0x040, 0x10, 5, 1),
     50	PIN_FIELD_BASE(6, 6, 4, 0x040, 0x10, 6, 1),
     51	PIN_FIELD_BASE(7, 7, 4, 0x040, 0x10, 7, 1),
     52	PIN_FIELD_BASE(8, 8, 4, 0x040, 0x10, 13, 1),
     53	PIN_FIELD_BASE(9, 9, 4, 0x040, 0x10, 8, 1),
     54	PIN_FIELD_BASE(10, 10, 4, 0x040, 0x10, 14, 1),
     55	PIN_FIELD_BASE(11, 11, 4, 0x040, 0x10, 9, 1),
     56	PIN_FIELD_BASE(12, 12, 4, 0x040, 0x10, 15, 1),
     57	PIN_FIELD_BASE(13, 13, 4, 0x040, 0x10, 10, 1),
     58	PIN_FIELD_BASE(14, 14, 4, 0x040, 0x10, 16, 1),
     59	PIN_FIELD_BASE(15, 15, 4, 0x040, 0x10, 11, 1),
     60	PIN_FIELD_BASE(16, 16, 4, 0x040, 0x10, 17, 1),
     61	PIN_FIELD_BASE(17, 17, 4, 0x040, 0x10, 12, 1),
     62	PIN_FIELD_BASE(18, 18, 2, 0x040, 0x10, 5, 1),
     63	PIN_FIELD_BASE(19, 19, 2, 0x040, 0x10, 12, 1),
     64	PIN_FIELD_BASE(20, 20, 2, 0x040, 0x10, 11, 1),
     65	PIN_FIELD_BASE(21, 21, 2, 0x040, 0x10, 10, 1),
     66	PIN_FIELD_BASE(22, 22, 2, 0x040, 0x10, 0, 1),
     67	PIN_FIELD_BASE(23, 23, 2, 0x040, 0x10, 1, 1),
     68	PIN_FIELD_BASE(24, 24, 2, 0x040, 0x10, 2, 1),
     69	PIN_FIELD_BASE(25, 25, 2, 0x040, 0x10, 4, 1),
     70	PIN_FIELD_BASE(26, 26, 2, 0x040, 0x10, 3, 1),
     71	PIN_FIELD_BASE(27, 27, 2, 0x040, 0x10, 6, 1),
     72	PIN_FIELD_BASE(28, 28, 2, 0x040, 0x10, 7, 1),
     73	PIN_FIELD_BASE(29, 29, 2, 0x040, 0x10, 8, 1),
     74	PIN_FIELD_BASE(30, 30, 2, 0x040, 0x10, 9, 1),
     75	PIN_FIELD_BASE(31, 31, 1, 0x060, 0x10, 13, 1),
     76	PIN_FIELD_BASE(32, 32, 1, 0x060, 0x10, 12, 1),
     77	PIN_FIELD_BASE(33, 33, 1, 0x060, 0x10, 11, 1),
     78	PIN_FIELD_BASE(34, 34, 1, 0x060, 0x10, 14, 1),
     79	PIN_FIELD_BASE(35, 35, 1, 0x060, 0x10, 15, 1),
     80	PIN_FIELD_BASE(36, 36, 1, 0x070, 0x10, 3, 1),
     81	PIN_FIELD_BASE(37, 37, 1, 0x070, 0x10, 6, 1),
     82	PIN_FIELD_BASE(38, 38, 1, 0x070, 0x10, 4, 1),
     83	PIN_FIELD_BASE(39, 39, 1, 0x070, 0x10, 5, 1),
     84	PIN_FIELD_BASE(40, 40, 1, 0x070, 0x10, 8, 1),
     85	PIN_FIELD_BASE(41, 41, 1, 0x070, 0x10, 7, 1),
     86	PIN_FIELD_BASE(42, 42, 1, 0x070, 0x10, 10, 1),
     87	PIN_FIELD_BASE(43, 43, 1, 0x070, 0x10, 9, 1),
     88	PIN_FIELD_BASE(44, 44, 1, 0x070, 0x10, 20, 1),
     89	PIN_FIELD_BASE(45, 45, 1, 0x070, 0x10, 21, 1),
     90	PIN_FIELD_BASE(46, 46, 1, 0x060, 0x10, 18, 1),
     91	PIN_FIELD_BASE(47, 47, 1, 0x060, 0x10, 16, 1),
     92	PIN_FIELD_BASE(48, 48, 1, 0x060, 0x10, 19, 1),
     93	PIN_FIELD_BASE(49, 49, 1, 0x060, 0x10, 17, 1),
     94	PIN_FIELD_BASE(50, 50, 1, 0x060, 0x10, 25, 1),
     95	PIN_FIELD_BASE(51, 51, 1, 0x060, 0x10, 20, 1),
     96	PIN_FIELD_BASE(52, 52, 1, 0x060, 0x10, 26, 1),
     97	PIN_FIELD_BASE(53, 53, 1, 0x060, 0x10, 21, 1),
     98	PIN_FIELD_BASE(54, 54, 1, 0x060, 0x10, 22, 1),
     99	PIN_FIELD_BASE(55, 55, 1, 0x060, 0x10, 23, 1),
    100	PIN_FIELD_BASE(56, 56, 1, 0x060, 0x10, 24, 1),
    101	PIN_FIELD_BASE(57, 57, 1, 0x060, 0x10, 29, 1),
    102	PIN_FIELD_BASE(58, 58, 1, 0x060, 0x10, 27, 1),
    103	PIN_FIELD_BASE(59, 59, 1, 0x060, 0x10, 30, 1),
    104	PIN_FIELD_BASE(60, 60, 1, 0x060, 0x10, 28, 1),
    105	PIN_FIELD_BASE(61, 61, 1, 0x060, 0x10, 8, 1),
    106	PIN_FIELD_BASE(62, 62, 1, 0x060, 0x10, 7, 1),
    107	PIN_FIELD_BASE(63, 63, 1, 0x060, 0x10, 10, 1),
    108	PIN_FIELD_BASE(64, 64, 1, 0x060, 0x10, 9, 1),
    109	PIN_FIELD_BASE(65, 65, 1, 0x070, 0x10, 1, 1),
    110	PIN_FIELD_BASE(66, 66, 1, 0x060, 0x10, 31, 1),
    111	PIN_FIELD_BASE(67, 67, 1, 0x070, 0x10, 0, 1),
    112	PIN_FIELD_BASE(68, 68, 1, 0x070, 0x10, 2, 1),
    113	PIN_FIELD_BASE(69, 69, 1, 0x060, 0x10, 0, 1),
    114	PIN_FIELD_BASE(70, 70, 1, 0x060, 0x10, 6, 1),
    115	PIN_FIELD_BASE(71, 71, 1, 0x060, 0x10, 4, 1),
    116	PIN_FIELD_BASE(72, 72, 1, 0x060, 0x10, 5, 1),
    117	PIN_FIELD_BASE(73, 73, 1, 0x060, 0x10, 1, 1),
    118	PIN_FIELD_BASE(74, 74, 1, 0x060, 0x10, 2, 1),
    119	PIN_FIELD_BASE(75, 75, 1, 0x060, 0x10, 3, 1),
    120	PIN_FIELD_BASE(76, 76, 1, 0x070, 0x10, 11, 1),
    121	PIN_FIELD_BASE(77, 77, 3, 0x030, 0x10, 1, 1),
    122	PIN_FIELD_BASE(78, 78, 3, 0x030, 0x10, 2, 1),
    123	PIN_FIELD_BASE(79, 79, 3, 0x030, 0x10, 9, 1),
    124	PIN_FIELD_BASE(80, 80, 3, 0x030, 0x10, 10, 1),
    125	PIN_FIELD_BASE(81, 81, 3, 0x030, 0x10, 11, 1),
    126	PIN_FIELD_BASE(82, 82, 3, 0x030, 0x10, 12, 1),
    127	PIN_FIELD_BASE(83, 83, 3, 0x030, 0x10, 13, 1),
    128	PIN_FIELD_BASE(84, 84, 3, 0x030, 0x10, 14, 1),
    129	PIN_FIELD_BASE(85, 85, 3, 0x030, 0x10, 15, 1),
    130	PIN_FIELD_BASE(86, 86, 3, 0x030, 0x10, 16, 1),
    131	PIN_FIELD_BASE(87, 87, 3, 0x030, 0x10, 3, 1),
    132	PIN_FIELD_BASE(88, 88, 3, 0x030, 0x10, 4, 1),
    133	PIN_FIELD_BASE(89, 89, 3, 0x030, 0x10, 5, 1),
    134	PIN_FIELD_BASE(90, 90, 3, 0x030, 0x10, 6, 1),
    135	PIN_FIELD_BASE(91, 91, 3, 0x030, 0x10, 7, 1),
    136	PIN_FIELD_BASE(92, 92, 3, 0x030, 0x10, 8, 1),
    137	PIN_FIELD_BASE(93, 93, 3, 0x030, 0x10, 18, 1),
    138	PIN_FIELD_BASE(94, 94, 3, 0x030, 0x10, 19, 1),
    139	PIN_FIELD_BASE(95, 95, 3, 0x030, 0x10, 17, 1),
    140	PIN_FIELD_BASE(96, 96, 3, 0x030, 0x10, 0, 1),
    141	PIN_FIELD_BASE(97, 97, 3, 0x030, 0x10, 20, 1),
    142	PIN_FIELD_BASE(98, 98, 3, 0x030, 0x10, 28, 1),
    143	PIN_FIELD_BASE(99, 99, 3, 0x030, 0x10, 27, 1),
    144	PIN_FIELD_BASE(100, 100, 3, 0x030, 0x10, 30, 1),
    145	PIN_FIELD_BASE(101, 101, 3, 0x030, 0x10, 29, 1),
    146	PIN_FIELD_BASE(102, 102, 3, 0x040, 0x10, 0, 1),
    147	PIN_FIELD_BASE(103, 103, 3, 0x030, 0x10, 31, 1),
    148	PIN_FIELD_BASE(104, 104, 3, 0x030, 0x10, 25, 1),
    149	PIN_FIELD_BASE(105, 105, 3, 0x030, 0x10, 26, 1),
    150	PIN_FIELD_BASE(106, 106, 3, 0x030, 0x10, 23, 1),
    151	PIN_FIELD_BASE(107, 107, 3, 0x030, 0x10, 24, 1),
    152	PIN_FIELD_BASE(108, 108, 3, 0x030, 0x10, 22, 1),
    153	PIN_FIELD_BASE(109, 109, 3, 0x030, 0x10, 21, 1),
    154	PIN_FIELD_BASE(110, 110, 5, 0x010, 0x10, 1, 1),
    155	PIN_FIELD_BASE(111, 111, 5, 0x010, 0x10, 0, 1),
    156	PIN_FIELD_BASE(112, 112, 5, 0x010, 0x10, 2, 1),
    157	PIN_FIELD_BASE(113, 113, 5, 0x010, 0x10, 3, 1),
    158	PIN_FIELD_BASE(114, 114, 5, 0x010, 0x10, 4, 1),
    159	PIN_FIELD_BASE(115, 115, 5, 0x010, 0x10, 5, 1),
    160	PIN_FIELD_BASE(116, 116, 6, 0x030, 0x10, 9, 1),
    161	PIN_FIELD_BASE(117, 117, 6, 0x030, 0x10, 8, 1),
    162	PIN_FIELD_BASE(118, 118, 6, 0x030, 0x10, 7, 1),
    163	PIN_FIELD_BASE(119, 119, 6, 0x030, 0x10, 6, 1),
    164	PIN_FIELD_BASE(120, 120, 6, 0x030, 0x10, 11, 1),
    165	PIN_FIELD_BASE(121, 121, 6, 0x030, 0x10, 1, 1),
    166	PIN_FIELD_BASE(122, 122, 6, 0x030, 0x10, 0, 1),
    167	PIN_FIELD_BASE(123, 123, 6, 0x030, 0x10, 5, 1),
    168	PIN_FIELD_BASE(124, 124, 6, 0x030, 0x10, 4, 1),
    169	PIN_FIELD_BASE(125, 125, 6, 0x030, 0x10, 3, 1),
    170	PIN_FIELD_BASE(126, 126, 6, 0x030, 0x10, 2, 1),
    171	PIN_FIELD_BASE(127, 127, 6, 0x030, 0x10, 10, 1),
    172	PIN_FIELD_BASE(128, 128, 3, 0x040, 0x10, 3, 1),
    173	PIN_FIELD_BASE(129, 129, 3, 0x040, 0x10, 1, 1),
    174	PIN_FIELD_BASE(130, 130, 3, 0x040, 0x10, 4, 1),
    175	PIN_FIELD_BASE(131, 131, 3, 0x040, 0x10, 2, 1),
    176	PIN_FIELD_BASE(132, 132, 6, 0x030, 0x10, 13, 1),
    177	PIN_FIELD_BASE(133, 133, 6, 0x030, 0x10, 12, 1),
    178	PIN_FIELD_BASE(134, 134, 6, 0x030, 0x10, 15, 1),
    179	PIN_FIELD_BASE(135, 135, 6, 0x030, 0x10, 14, 1),
    180	PIN_FIELD_BASE(136, 136, 1, 0x070, 0x10, 13, 1),
    181	PIN_FIELD_BASE(137, 137, 1, 0x070, 0x10, 12, 1),
    182	PIN_FIELD_BASE(138, 138, 1, 0x070, 0x10, 15, 1),
    183	PIN_FIELD_BASE(139, 139, 1, 0x070, 0x10, 14, 1),
    184	PIN_FIELD_BASE(140, 140, 1, 0x070, 0x10, 17, 1),
    185	PIN_FIELD_BASE(141, 141, 1, 0x070, 0x10, 16, 1),
    186	PIN_FIELD_BASE(142, 142, 1, 0x070, 0x10, 19, 1),
    187	PIN_FIELD_BASE(143, 143, 1, 0x070, 0x10, 18, 1),
    188};
    189
    190static const struct mtk_pin_field_calc mt8195_pin_smt_range[] = {
    191	PIN_FIELD_BASE(0, 0, 4, 0x0d0, 0x10, 0, 1),
    192	PIN_FIELD_BASE(1, 1, 4, 0x0d0, 0x10, 1, 1),
    193	PIN_FIELD_BASE(2, 2, 4, 0x0d0, 0x10, 2, 1),
    194	PIN_FIELD_BASE(3, 3, 4, 0x0d0, 0x10, 3, 1),
    195	PIN_FIELD_BASE(4, 4, 4, 0x0d0, 0x10, 4, 1),
    196	PIN_FIELD_BASE(5, 5, 4, 0x0d0, 0x10, 5, 1),
    197	PINS_FIELD_BASE(6, 7, 4, 0x0d0, 0x10, 6, 1),
    198	PIN_FIELD_BASE(8, 8, 4, 0x0d0, 0x10, 12, 1),
    199	PIN_FIELD_BASE(9, 9, 4, 0x0d0, 0x10, 7, 1),
    200	PIN_FIELD_BASE(10, 10, 4, 0x0d0, 0x10, 13, 1),
    201	PIN_FIELD_BASE(11, 11, 4, 0x0d0, 0x10, 8, 1),
    202	PIN_FIELD_BASE(12, 12, 4, 0x0d0, 0x10, 14, 1),
    203	PIN_FIELD_BASE(13, 13, 4, 0x0d0, 0x10, 9, 1),
    204	PIN_FIELD_BASE(14, 14, 4, 0x0d0, 0x10, 15, 1),
    205	PIN_FIELD_BASE(15, 15, 4, 0x0d0, 0x10, 10, 1),
    206	PIN_FIELD_BASE(16, 16, 4, 0x0d0, 0x10, 16, 1),
    207	PIN_FIELD_BASE(17, 17, 4, 0x0d0, 0x10, 11, 1),
    208	PIN_FIELD_BASE(18, 18, 2, 0x090, 0x10, 11, 1),
    209	PIN_FIELD_BASE(19, 19, 2, 0x090, 0x10, 10, 1),
    210	PIN_FIELD_BASE(20, 20, 2, 0x090, 0x10, 9, 1),
    211	PIN_FIELD_BASE(21, 21, 2, 0x090, 0x10, 11, 1),
    212	PIN_FIELD_BASE(22, 22, 2, 0x090, 0x10, 0, 1),
    213	PIN_FIELD_BASE(23, 23, 2, 0x090, 0x10, 1, 1),
    214	PIN_FIELD_BASE(24, 24, 2, 0x090, 0x10, 2, 1),
    215	PIN_FIELD_BASE(25, 25, 2, 0x090, 0x10, 4, 1),
    216	PIN_FIELD_BASE(26, 26, 2, 0x090, 0x10, 3, 1),
    217	PIN_FIELD_BASE(27, 27, 2, 0x090, 0x10, 5, 1),
    218	PIN_FIELD_BASE(28, 28, 2, 0x090, 0x10, 6, 1),
    219	PIN_FIELD_BASE(29, 29, 2, 0x090, 0x10, 7, 1),
    220	PIN_FIELD_BASE(30, 30, 2, 0x090, 0x10, 8, 1),
    221	PINS_FIELD_BASE(31, 33, 1, 0x0f0, 0x10, 4, 1),
    222	PIN_FIELD_BASE(34, 34, 1, 0x0f0, 0x10, 0, 1),
    223	PIN_FIELD_BASE(35, 35, 1, 0x0f0, 0x10, 1, 1),
    224	PIN_FIELD_BASE(36, 36, 1, 0x0f0, 0x10, 4, 1),
    225	PIN_FIELD_BASE(37, 37, 1, 0x0f0, 0x10, 2, 1),
    226	PINS_FIELD_BASE(38, 39, 1, 0x0f0, 0x10, 5, 1),
    227	PIN_FIELD_BASE(40, 40, 1, 0x0f0, 0x10, 14, 1),
    228	PIN_FIELD_BASE(41, 41, 1, 0x0f0, 0x10, 13, 1),
    229	PIN_FIELD_BASE(42, 42, 1, 0x0f0, 0x10, 16, 1),
    230	PIN_FIELD_BASE(43, 43, 1, 0x0f0, 0x10, 15, 1),
    231	PIN_FIELD_BASE(44, 44, 1, 0x0f0, 0x10, 25, 1),
    232	PIN_FIELD_BASE(45, 45, 1, 0x0f0, 0x10, 26, 1),
    233	PINS_FIELD_BASE(46, 47, 1, 0x0f0, 0x10, 5, 1),
    234	PINS_FIELD_BASE(48, 51, 1, 0x0f0, 0x10, 6, 1),
    235	PINS_FIELD_BASE(52, 55, 1, 0x0f0, 0x10, 7, 1),
    236	PINS_FIELD_BASE(56, 59, 1, 0x0f0, 0x10, 8, 1),
    237	PINS_FIELD_BASE(60, 63, 1, 0x0f0, 0x10, 9, 1),
    238	PIN_FIELD_BASE(64, 64, 1, 0x0f0, 0x10, 10, 1),
    239	PINS_FIELD_BASE(65, 68, 1, 0x0f0, 0x10, 3, 1),
    240	PINS_FIELD_BASE(69, 71, 1, 0x0f0, 0x10, 10, 1),
    241	PINS_FIELD_BASE(72, 75, 1, 0x0f0, 0x10, 11, 1),
    242	PIN_FIELD_BASE(76, 76, 1, 0x0f0, 0x10, 12, 1),
    243	PIN_FIELD_BASE(77, 77, 3, 0x0e0, 0x10, 0, 1),
    244	PIN_FIELD_BASE(78, 78, 3, 0x0e0, 0x10, 1, 1),
    245	PIN_FIELD_BASE(79, 79, 3, 0x0e0, 0x10, 6, 1),
    246	PIN_FIELD_BASE(80, 80, 3, 0x0e0, 0x10, 7, 1),
    247	PIN_FIELD_BASE(81, 81, 3, 0x0e0, 0x10, 8, 1),
    248	PIN_FIELD_BASE(82, 82, 3, 0x0e0, 0x10, 9, 1),
    249	PIN_FIELD_BASE(83, 83, 3, 0x0e0, 0x10, 10, 1),
    250	PIN_FIELD_BASE(84, 84, 3, 0x0e0, 0x10, 11, 1),
    251	PINS_FIELD_BASE(85, 88, 3, 0x0e0, 0x10, 14, 1),
    252	PIN_FIELD_BASE(89, 89, 3, 0x0e0, 0x10, 2, 1),
    253	PIN_FIELD_BASE(90, 90, 3, 0x0e0, 0x10, 3, 1),
    254	PIN_FIELD_BASE(91, 91, 3, 0x0e0, 0x10, 4, 1),
    255	PIN_FIELD_BASE(92, 92, 3, 0x0e0, 0x10, 5, 1),
    256	PIN_FIELD_BASE(93, 93, 3, 0x0e0, 0x10, 12, 1),
    257	PIN_FIELD_BASE(94, 94, 3, 0x0e0, 0x10, 13, 1),
    258	PINS_FIELD_BASE(95, 98, 3, 0x0e0, 0x10, 15, 1),
    259	PINS_FIELD_BASE(99, 102, 3, 0x0e0, 0x10, 16, 1),
    260	PINS_FIELD_BASE(103, 104, 3, 0x0e0, 0x10, 17, 1),
    261	PIN_FIELD_BASE(105, 105, 3, 0x0e0, 0x10, 18, 1),
    262	PINS_FIELD_BASE(106, 107, 3, 0x0e0, 0x10, 17, 1),
    263	PINS_FIELD_BASE(108, 109, 3, 0x0e0, 0x10, 18, 1),
    264	PIN_FIELD_BASE(110, 110, 5, 0x070, 0x10, 1, 1),
    265	PIN_FIELD_BASE(111, 111, 5, 0x070, 0x10, 0, 1),
    266	PIN_FIELD_BASE(112, 112, 5, 0x070, 0x10, 2, 1),
    267	PIN_FIELD_BASE(113, 113, 5, 0x070, 0x10, 3, 1),
    268	PIN_FIELD_BASE(114, 114, 5, 0x070, 0x10, 4, 1),
    269	PIN_FIELD_BASE(115, 115, 5, 0x070, 0x10, 5, 1),
    270	PIN_FIELD_BASE(116, 116, 6, 0x0c0, 0x10, 9, 1),
    271	PIN_FIELD_BASE(117, 117, 6, 0x0c0, 0x10, 8, 1),
    272	PIN_FIELD_BASE(118, 118, 6, 0x0c0, 0x10, 7, 1),
    273	PIN_FIELD_BASE(119, 119, 6, 0x0c0, 0x10, 6, 1),
    274	PIN_FIELD_BASE(120, 120, 6, 0x0c0, 0x10, 11, 1),
    275	PIN_FIELD_BASE(121, 121, 6, 0x0c0, 0x10, 1, 1),
    276	PIN_FIELD_BASE(122, 122, 6, 0x0c0, 0x10, 0, 1),
    277	PIN_FIELD_BASE(123, 123, 6, 0x0c0, 0x10, 5, 1),
    278	PIN_FIELD_BASE(124, 124, 6, 0x0c0, 0x10, 4, 1),
    279	PIN_FIELD_BASE(125, 125, 6, 0x0c0, 0x10, 3, 1),
    280	PIN_FIELD_BASE(126, 126, 6, 0x0c0, 0x10, 2, 1),
    281	PIN_FIELD_BASE(127, 127, 6, 0x0c0, 0x10, 10, 1),
    282	PIN_FIELD_BASE(128, 128, 3, 0x0e0, 0x10, 18, 1),
    283	PINS_FIELD_BASE(129, 131, 3, 0x0e0, 0x10, 19, 1),
    284	PIN_FIELD_BASE(132, 132, 6, 0x0c0, 0x10, 13, 1),
    285	PIN_FIELD_BASE(133, 133, 6, 0x0c0, 0x10, 12, 1),
    286	PIN_FIELD_BASE(134, 134, 6, 0x0c0, 0x10, 15, 1),
    287	PIN_FIELD_BASE(135, 135, 6, 0x0c0, 0x10, 14, 1),
    288	PIN_FIELD_BASE(136, 136, 1, 0x0f0, 0x10, 18, 1),
    289	PIN_FIELD_BASE(137, 137, 1, 0x0f0, 0x10, 17, 1),
    290	PIN_FIELD_BASE(138, 138, 1, 0x0f0, 0x10, 20, 1),
    291	PIN_FIELD_BASE(139, 139, 1, 0x0f0, 0x10, 19, 1),
    292	PIN_FIELD_BASE(140, 140, 1, 0x0f0, 0x10, 22, 1),
    293	PIN_FIELD_BASE(141, 141, 1, 0x0f0, 0x10, 21, 1),
    294	PIN_FIELD_BASE(142, 142, 1, 0x0f0, 0x10, 24, 1),
    295	PIN_FIELD_BASE(143, 143, 1, 0x0f0, 0x10, 23, 1),
    296};
    297
    298static const struct mtk_pin_field_calc mt8195_pin_pu_range[] = {
    299	PIN_FIELD_BASE(6, 6, 4, 0x0070, 0x10, 0, 1),
    300	PIN_FIELD_BASE(7, 7, 4, 0x0070, 0x10, 1, 1),
    301	PIN_FIELD_BASE(8, 8, 4, 0x0070, 0x10, 7, 1),
    302	PIN_FIELD_BASE(9, 9, 4, 0x0070, 0x10, 2, 1),
    303	PIN_FIELD_BASE(10, 10, 4, 0x0070, 0x10, 8, 1),
    304	PIN_FIELD_BASE(11, 11, 4, 0x0070, 0x10, 3, 1),
    305	PIN_FIELD_BASE(12, 12, 4, 0x0070, 0x10, 9, 1),
    306	PIN_FIELD_BASE(13, 13, 4, 0x0070, 0x10, 4, 1),
    307	PIN_FIELD_BASE(14, 14, 4, 0x0070, 0x10, 10, 1),
    308	PIN_FIELD_BASE(15, 15, 4, 0x0070, 0x10, 5, 1),
    309	PIN_FIELD_BASE(16, 16, 4, 0x0070, 0x10, 11, 1),
    310	PIN_FIELD_BASE(17, 17, 4, 0x0070, 0x10, 6, 1),
    311	PIN_FIELD_BASE(18, 18, 2, 0x0060, 0x10, 5, 1),
    312	PIN_FIELD_BASE(19, 19, 2, 0x0060, 0x10, 12, 1),
    313	PIN_FIELD_BASE(20, 20, 2, 0x0060, 0x10, 11, 1),
    314	PIN_FIELD_BASE(21, 21, 2, 0x0060, 0x10, 10, 1),
    315	PIN_FIELD_BASE(22, 22, 2, 0x0060, 0x10, 0, 1),
    316	PIN_FIELD_BASE(23, 23, 2, 0x0060, 0x10, 1, 1),
    317	PIN_FIELD_BASE(24, 24, 2, 0x0060, 0x10, 2, 1),
    318	PIN_FIELD_BASE(25, 25, 2, 0x0060, 0x10, 4, 1),
    319	PIN_FIELD_BASE(26, 26, 2, 0x0060, 0x10, 3, 1),
    320	PIN_FIELD_BASE(27, 27, 2, 0x0060, 0x10, 6, 1),
    321	PIN_FIELD_BASE(28, 28, 2, 0x0060, 0x10, 7, 1),
    322	PIN_FIELD_BASE(29, 29, 2, 0x0060, 0x10, 8, 1),
    323	PIN_FIELD_BASE(30, 30, 2, 0x0060, 0x10, 9, 1),
    324	PIN_FIELD_BASE(31, 31, 1, 0x00a0, 0x10, 13, 1),
    325	PIN_FIELD_BASE(32, 32, 1, 0x00a0, 0x10, 12, 1),
    326	PIN_FIELD_BASE(33, 33, 1, 0x00a0, 0x10, 11, 1),
    327	PIN_FIELD_BASE(34, 34, 1, 0x00a0, 0x10, 14, 1),
    328	PIN_FIELD_BASE(35, 35, 1, 0x00a0, 0x10, 15, 1),
    329	PIN_FIELD_BASE(36, 36, 1, 0x00b0, 0x10, 3, 1),
    330	PIN_FIELD_BASE(37, 37, 1, 0x00b0, 0x10, 6, 1),
    331	PIN_FIELD_BASE(38, 38, 1, 0x00b0, 0x10, 4, 1),
    332	PIN_FIELD_BASE(39, 39, 1, 0x00b0, 0x10, 5, 1),
    333	PIN_FIELD_BASE(40, 40, 1, 0x00b0, 0x10, 8, 1),
    334	PIN_FIELD_BASE(41, 41, 1, 0x00b0, 0x10, 7, 1),
    335	PIN_FIELD_BASE(42, 42, 1, 0x00b0, 0x10, 10, 1),
    336	PIN_FIELD_BASE(43, 43, 1, 0x00b0, 0x10, 9, 1),
    337	PIN_FIELD_BASE(44, 44, 1, 0x00b0, 0x10, 21, 1),
    338	PIN_FIELD_BASE(45, 45, 1, 0x00b0, 0x10, 22, 1),
    339	PIN_FIELD_BASE(46, 46, 1, 0x00a0, 0x10, 18, 1),
    340	PIN_FIELD_BASE(47, 47, 1, 0x00a0, 0x10, 16, 1),
    341	PIN_FIELD_BASE(48, 48, 1, 0x00a0, 0x10, 19, 1),
    342	PIN_FIELD_BASE(49, 49, 1, 0x00a0, 0x10, 17, 1),
    343	PIN_FIELD_BASE(50, 50, 1, 0x00a0, 0x10, 25, 1),
    344	PIN_FIELD_BASE(51, 51, 1, 0x00a0, 0x10, 20, 1),
    345	PIN_FIELD_BASE(52, 52, 1, 0x00a0, 0x10, 26, 1),
    346	PIN_FIELD_BASE(53, 53, 1, 0x00a0, 0x10, 21, 1),
    347	PIN_FIELD_BASE(54, 54, 1, 0x00a0, 0x10, 22, 1),
    348	PIN_FIELD_BASE(55, 55, 1, 0x00a0, 0x10, 23, 1),
    349	PIN_FIELD_BASE(56, 56, 1, 0x00a0, 0x10, 24, 1),
    350	PIN_FIELD_BASE(57, 57, 1, 0x00a0, 0x10, 29, 1),
    351	PIN_FIELD_BASE(58, 58, 1, 0x00a0, 0x10, 27, 1),
    352	PIN_FIELD_BASE(59, 59, 1, 0x00a0, 0x10, 30, 1),
    353	PIN_FIELD_BASE(60, 60, 1, 0x00a0, 0x10, 28, 1),
    354	PIN_FIELD_BASE(61, 61, 1, 0x00a0, 0x10, 8, 1),
    355	PIN_FIELD_BASE(62, 62, 1, 0x00a0, 0x10, 7, 1),
    356	PIN_FIELD_BASE(63, 63, 1, 0x00a0, 0x10, 10, 1),
    357	PIN_FIELD_BASE(64, 64, 1, 0x00a0, 0x10, 9, 1),
    358	PIN_FIELD_BASE(65, 65, 1, 0x00b0, 0x10, 1, 1),
    359	PIN_FIELD_BASE(66, 66, 1, 0x00a0, 0x10, 31, 1),
    360	PIN_FIELD_BASE(67, 67, 1, 0x00b0, 0x10, 0, 1),
    361	PIN_FIELD_BASE(68, 68, 1, 0x00b0, 0x10, 2, 1),
    362	PIN_FIELD_BASE(69, 69, 1, 0x00a0, 0x10, 0, 1),
    363	PIN_FIELD_BASE(70, 70, 1, 0x00a0, 0x10, 6, 1),
    364	PIN_FIELD_BASE(71, 71, 1, 0x00a0, 0x10, 4, 1),
    365	PIN_FIELD_BASE(72, 72, 1, 0x00a0, 0x10, 5, 1),
    366	PIN_FIELD_BASE(73, 73, 1, 0x00a0, 0x10, 1, 1),
    367	PIN_FIELD_BASE(74, 74, 1, 0x00a0, 0x10, 2, 1),
    368	PIN_FIELD_BASE(75, 75, 1, 0x00a0, 0x10, 3, 1),
    369	PIN_FIELD_BASE(76, 76, 1, 0x00b0, 0x10, 11, 1),
    370	PIN_FIELD_BASE(97, 97, 3, 0x0070, 0x10, 0, 1),
    371	PIN_FIELD_BASE(98, 98, 3, 0x0070, 0x10, 4, 1),
    372	PIN_FIELD_BASE(99, 99, 3, 0x0070, 0x10, 3, 1),
    373	PIN_FIELD_BASE(100, 100, 3, 0x0070, 0x10, 6, 1),
    374	PIN_FIELD_BASE(101, 101, 3, 0x0070, 0x10, 5, 1),
    375	PIN_FIELD_BASE(102, 102, 3, 0x0070, 0x10, 8, 1),
    376	PIN_FIELD_BASE(103, 103, 3, 0x0070, 0x10, 7, 1),
    377	PIN_FIELD_BASE(108, 108, 3, 0x0070, 0x10, 2, 1),
    378	PIN_FIELD_BASE(109, 109, 3, 0x0070, 0x10, 1, 1),
    379	PIN_FIELD_BASE(128, 128, 3, 0x0070, 0x10, 11, 1),
    380	PIN_FIELD_BASE(129, 129, 3, 0x0070, 0x10, 9, 1),
    381	PIN_FIELD_BASE(130, 130, 3, 0x0070, 0x10, 12, 1),
    382	PIN_FIELD_BASE(131, 131, 3, 0x0070, 0x10, 10, 1),
    383	PIN_FIELD_BASE(132, 132, 6, 0x0060, 0x10, 1, 1),
    384	PIN_FIELD_BASE(133, 133, 6, 0x0060, 0x10, 0, 1),
    385	PIN_FIELD_BASE(134, 134, 6, 0x0060, 0x10, 3, 1),
    386	PIN_FIELD_BASE(135, 135, 6, 0x0060, 0x10, 2, 1),
    387	PIN_FIELD_BASE(136, 136, 1, 0x00b0, 0x10, 14, 1),
    388	PIN_FIELD_BASE(137, 137, 1, 0x00b0, 0x10, 13, 1),
    389	PIN_FIELD_BASE(138, 138, 1, 0x00b0, 0x10, 16, 1),
    390	PIN_FIELD_BASE(139, 139, 1, 0x00b0, 0x10, 15, 1),
    391	PIN_FIELD_BASE(140, 140, 1, 0x00b0, 0x10, 18, 1),
    392	PIN_FIELD_BASE(141, 141, 1, 0x00b0, 0x10, 17, 1),
    393	PIN_FIELD_BASE(142, 142, 1, 0x00b0, 0x10, 20, 1),
    394	PIN_FIELD_BASE(143, 143, 1, 0x00b0, 0x10, 19, 1),
    395};
    396
    397static const struct mtk_pin_field_calc mt8195_pin_pd_range[] = {
    398	PIN_FIELD_BASE(6, 6, 4, 0x0050, 0x10, 0, 1),
    399	PIN_FIELD_BASE(7, 7, 4, 0x0050, 0x10, 1, 1),
    400	PIN_FIELD_BASE(8, 8, 4, 0x0050, 0x10, 7, 1),
    401	PIN_FIELD_BASE(9, 9, 4, 0x0050, 0x10, 2, 1),
    402	PIN_FIELD_BASE(10, 10, 4, 0x0050, 0x10, 8, 1),
    403	PIN_FIELD_BASE(11, 11, 4, 0x0050, 0x10, 3, 1),
    404	PIN_FIELD_BASE(12, 12, 4, 0x0050, 0x10, 9, 1),
    405	PIN_FIELD_BASE(13, 13, 4, 0x0050, 0x10, 4, 1),
    406	PIN_FIELD_BASE(14, 14, 4, 0x0050, 0x10, 10, 1),
    407	PIN_FIELD_BASE(15, 15, 4, 0x0050, 0x10, 5, 1),
    408	PIN_FIELD_BASE(16, 16, 4, 0x0050, 0x10, 11, 1),
    409	PIN_FIELD_BASE(17, 17, 4, 0x0050, 0x10, 6, 1),
    410	PIN_FIELD_BASE(18, 18, 2, 0x0050, 0x10, 5, 1),
    411	PIN_FIELD_BASE(19, 19, 2, 0x0050, 0x10, 12, 1),
    412	PIN_FIELD_BASE(20, 20, 2, 0x0050, 0x10, 11, 1),
    413	PIN_FIELD_BASE(21, 21, 2, 0x0050, 0x10, 10, 1),
    414	PIN_FIELD_BASE(22, 22, 2, 0x0050, 0x10, 0, 1),
    415	PIN_FIELD_BASE(23, 23, 2, 0x0050, 0x10, 1, 1),
    416	PIN_FIELD_BASE(24, 24, 2, 0x0050, 0x10, 2, 1),
    417	PIN_FIELD_BASE(25, 25, 2, 0x0050, 0x10, 4, 1),
    418	PIN_FIELD_BASE(26, 26, 2, 0x0050, 0x10, 3, 1),
    419	PIN_FIELD_BASE(27, 27, 2, 0x0050, 0x10, 6, 1),
    420	PIN_FIELD_BASE(28, 28, 2, 0x0050, 0x10, 7, 1),
    421	PIN_FIELD_BASE(29, 29, 2, 0x0050, 0x10, 8, 1),
    422	PIN_FIELD_BASE(30, 30, 2, 0x0050, 0x10, 9, 1),
    423	PIN_FIELD_BASE(31, 31, 1, 0x0080, 0x10, 13, 1),
    424	PIN_FIELD_BASE(32, 32, 1, 0x0080, 0x10, 12, 1),
    425	PIN_FIELD_BASE(33, 33, 1, 0x0080, 0x10, 11, 1),
    426	PIN_FIELD_BASE(34, 34, 1, 0x0080, 0x10, 14, 1),
    427	PIN_FIELD_BASE(35, 35, 1, 0x0080, 0x10, 15, 1),
    428	PIN_FIELD_BASE(36, 36, 1, 0x0090, 0x10, 3, 1),
    429	PIN_FIELD_BASE(37, 37, 1, 0x0090, 0x10, 6, 1),
    430	PIN_FIELD_BASE(38, 38, 1, 0x0090, 0x10, 4, 1),
    431	PIN_FIELD_BASE(39, 39, 1, 0x0090, 0x10, 5, 1),
    432	PIN_FIELD_BASE(40, 40, 1, 0x0090, 0x10, 8, 1),
    433	PIN_FIELD_BASE(41, 41, 1, 0x0090, 0x10, 7, 1),
    434	PIN_FIELD_BASE(42, 42, 1, 0x0090, 0x10, 10, 1),
    435	PIN_FIELD_BASE(43, 43, 1, 0x0090, 0x10, 9, 1),
    436	PIN_FIELD_BASE(44, 44, 1, 0x0090, 0x10, 21, 1),
    437	PIN_FIELD_BASE(45, 45, 1, 0x0090, 0x10, 22, 1),
    438	PIN_FIELD_BASE(46, 46, 1, 0x0080, 0x10, 18, 1),
    439	PIN_FIELD_BASE(47, 47, 1, 0x0080, 0x10, 16, 1),
    440	PIN_FIELD_BASE(48, 48, 1, 0x0080, 0x10, 19, 1),
    441	PIN_FIELD_BASE(49, 49, 1, 0x0080, 0x10, 17, 1),
    442	PIN_FIELD_BASE(50, 50, 1, 0x0080, 0x10, 25, 1),
    443	PIN_FIELD_BASE(51, 51, 1, 0x0080, 0x10, 20, 1),
    444	PIN_FIELD_BASE(52, 52, 1, 0x0080, 0x10, 26, 1),
    445	PIN_FIELD_BASE(53, 53, 1, 0x0080, 0x10, 21, 1),
    446	PIN_FIELD_BASE(54, 54, 1, 0x0080, 0x10, 22, 1),
    447	PIN_FIELD_BASE(55, 55, 1, 0x0080, 0x10, 23, 1),
    448	PIN_FIELD_BASE(56, 56, 1, 0x0080, 0x10, 24, 1),
    449	PIN_FIELD_BASE(57, 57, 1, 0x0080, 0x10, 29, 1),
    450	PIN_FIELD_BASE(58, 58, 1, 0x0080, 0x10, 27, 1),
    451	PIN_FIELD_BASE(59, 59, 1, 0x0080, 0x10, 30, 1),
    452	PIN_FIELD_BASE(60, 60, 1, 0x0080, 0x10, 28, 1),
    453	PIN_FIELD_BASE(61, 61, 1, 0x0080, 0x10, 8, 1),
    454	PIN_FIELD_BASE(62, 62, 1, 0x0080, 0x10, 7, 1),
    455	PIN_FIELD_BASE(63, 63, 1, 0x0080, 0x10, 10, 1),
    456	PIN_FIELD_BASE(64, 64, 1, 0x0080, 0x10, 9, 1),
    457	PIN_FIELD_BASE(65, 65, 1, 0x0090, 0x10, 1, 1),
    458	PIN_FIELD_BASE(66, 66, 1, 0x0080, 0x10, 31, 1),
    459	PIN_FIELD_BASE(67, 67, 1, 0x0090, 0x10, 0, 1),
    460	PIN_FIELD_BASE(68, 68, 1, 0x0090, 0x10, 2, 1),
    461	PIN_FIELD_BASE(69, 69, 1, 0x0080, 0x10, 0, 1),
    462	PIN_FIELD_BASE(70, 70, 1, 0x0080, 0x10, 6, 1),
    463	PIN_FIELD_BASE(71, 71, 1, 0x0080, 0x10, 4, 1),
    464	PIN_FIELD_BASE(72, 72, 1, 0x0080, 0x10, 5, 1),
    465	PIN_FIELD_BASE(73, 73, 1, 0x0080, 0x10, 1, 1),
    466	PIN_FIELD_BASE(74, 74, 1, 0x0080, 0x10, 2, 1),
    467	PIN_FIELD_BASE(75, 75, 1, 0x0080, 0x10, 3, 1),
    468	PIN_FIELD_BASE(76, 76, 1, 0x0090, 0x10, 11, 1),
    469	PIN_FIELD_BASE(97, 97, 3, 0x0050, 0x10, 0, 1),
    470	PIN_FIELD_BASE(98, 98, 3, 0x0050, 0x10, 4, 1),
    471	PIN_FIELD_BASE(99, 99, 3, 0x0050, 0x10, 3, 1),
    472	PIN_FIELD_BASE(100, 100, 3, 0x0050, 0x10, 6, 1),
    473	PIN_FIELD_BASE(101, 101, 3, 0x0050, 0x10, 5, 1),
    474	PIN_FIELD_BASE(102, 102, 3, 0x0050, 0x10, 8, 1),
    475	PIN_FIELD_BASE(103, 103, 3, 0x0050, 0x10, 7, 1),
    476	PIN_FIELD_BASE(108, 108, 3, 0x0050, 0x10, 2, 1),
    477	PIN_FIELD_BASE(109, 109, 3, 0x0050, 0x10, 1, 1),
    478	PIN_FIELD_BASE(128, 128, 3, 0x0050, 0x10, 11, 1),
    479	PIN_FIELD_BASE(129, 129, 3, 0x0050, 0x10, 9, 1),
    480	PIN_FIELD_BASE(130, 130, 3, 0x0050, 0x10, 12, 1),
    481	PIN_FIELD_BASE(131, 131, 3, 0x0050, 0x10, 10, 1),
    482	PIN_FIELD_BASE(132, 132, 6, 0x0040, 0x10, 1, 1),
    483	PIN_FIELD_BASE(133, 133, 6, 0x0040, 0x10, 0, 1),
    484	PIN_FIELD_BASE(134, 134, 6, 0x0040, 0x10, 3, 1),
    485	PIN_FIELD_BASE(135, 135, 6, 0x0040, 0x10, 2, 1),
    486	PIN_FIELD_BASE(136, 136, 1, 0x0090, 0x10, 14, 1),
    487	PIN_FIELD_BASE(137, 137, 1, 0x0090, 0x10, 13, 1),
    488	PIN_FIELD_BASE(138, 138, 1, 0x0090, 0x10, 16, 1),
    489	PIN_FIELD_BASE(139, 139, 1, 0x0090, 0x10, 15, 1),
    490	PIN_FIELD_BASE(140, 140, 1, 0x0090, 0x10, 18, 1),
    491	PIN_FIELD_BASE(141, 141, 1, 0x0090, 0x10, 17, 1),
    492	PIN_FIELD_BASE(142, 142, 1, 0x0090, 0x10, 20, 1),
    493	PIN_FIELD_BASE(143, 143, 1, 0x0090, 0x10, 19, 1),
    494};
    495
    496static const struct mtk_pin_field_calc mt8195_pin_pupd_range[] = {
    497	PIN_FIELD_BASE(0, 0, 4, 0x0060, 0x10, 0, 1),
    498	PIN_FIELD_BASE(1, 1, 4, 0x0060, 0x10, 1, 1),
    499	PIN_FIELD_BASE(2, 2, 4, 0x0060, 0x10, 2, 1),
    500	PIN_FIELD_BASE(3, 3, 4, 0x0060, 0x10, 3, 1),
    501	PIN_FIELD_BASE(4, 4, 4, 0x0060, 0x10, 4, 1),
    502	PIN_FIELD_BASE(5, 5, 4, 0x0060, 0x10, 5, 1),
    503	PIN_FIELD_BASE(77, 77, 3, 0x0060, 0x10, 1, 1),
    504	PIN_FIELD_BASE(78, 78, 3, 0x0060, 0x10, 2, 1),
    505	PIN_FIELD_BASE(79, 79, 3, 0x0060, 0x10, 9, 1),
    506	PIN_FIELD_BASE(80, 80, 3, 0x0060, 0x10, 10, 1),
    507	PIN_FIELD_BASE(81, 81, 3, 0x0060, 0x10, 11, 1),
    508	PIN_FIELD_BASE(82, 82, 3, 0x0060, 0x10, 12, 1),
    509	PIN_FIELD_BASE(83, 83, 3, 0x0060, 0x10, 13, 1),
    510	PIN_FIELD_BASE(84, 84, 3, 0x0060, 0x10, 14, 1),
    511	PIN_FIELD_BASE(85, 85, 3, 0x0060, 0x10, 15, 1),
    512	PIN_FIELD_BASE(86, 86, 3, 0x0060, 0x10, 16, 1),
    513	PIN_FIELD_BASE(87, 87, 3, 0x0060, 0x10, 3, 1),
    514	PIN_FIELD_BASE(88, 88, 3, 0x0060, 0x10, 4, 1),
    515	PIN_FIELD_BASE(89, 89, 3, 0x0060, 0x10, 5, 1),
    516	PIN_FIELD_BASE(90, 90, 3, 0x0060, 0x10, 6, 1),
    517	PIN_FIELD_BASE(91, 91, 3, 0x0060, 0x10, 7, 1),
    518	PIN_FIELD_BASE(92, 92, 3, 0x0060, 0x10, 8, 1),
    519	PIN_FIELD_BASE(93, 93, 3, 0x0060, 0x10, 18, 1),
    520	PIN_FIELD_BASE(94, 94, 3, 0x0060, 0x10, 19, 1),
    521	PIN_FIELD_BASE(95, 95, 3, 0x0060, 0x10, 17, 1),
    522	PIN_FIELD_BASE(96, 96, 3, 0x0060, 0x10, 0, 1),
    523	PIN_FIELD_BASE(104, 104, 3, 0x0060, 0x10, 22, 1),
    524	PIN_FIELD_BASE(105, 105, 3, 0x0060, 0x10, 23, 1),
    525	PIN_FIELD_BASE(106, 106, 3, 0x0060, 0x10, 20, 1),
    526	PIN_FIELD_BASE(107, 107, 3, 0x0060, 0x10, 21, 1),
    527	PIN_FIELD_BASE(110, 110, 5, 0x0020, 0x10, 1, 1),
    528	PIN_FIELD_BASE(111, 111, 5, 0x0020, 0x10, 0, 1),
    529	PIN_FIELD_BASE(112, 112, 5, 0x0020, 0x10, 2, 1),
    530	PIN_FIELD_BASE(113, 113, 5, 0x0020, 0x10, 3, 1),
    531	PIN_FIELD_BASE(114, 114, 5, 0x0020, 0x10, 4, 1),
    532	PIN_FIELD_BASE(115, 115, 5, 0x0020, 0x10, 5, 1),
    533	PIN_FIELD_BASE(116, 116, 6, 0x0050, 0x10, 9, 1),
    534	PIN_FIELD_BASE(117, 117, 6, 0x0050, 0x10, 8, 1),
    535	PIN_FIELD_BASE(118, 118, 6, 0x0050, 0x10, 7, 1),
    536	PIN_FIELD_BASE(119, 119, 6, 0x0050, 0x10, 6, 1),
    537	PIN_FIELD_BASE(120, 120, 6, 0x0050, 0x10, 11, 1),
    538	PIN_FIELD_BASE(121, 121, 6, 0x0050, 0x10, 1, 1),
    539	PIN_FIELD_BASE(122, 122, 6, 0x0050, 0x10, 0, 1),
    540	PIN_FIELD_BASE(123, 123, 6, 0x0050, 0x10, 5, 1),
    541	PIN_FIELD_BASE(124, 124, 6, 0x0050, 0x10, 4, 1),
    542	PIN_FIELD_BASE(125, 125, 6, 0x0050, 0x10, 3, 1),
    543	PIN_FIELD_BASE(126, 126, 6, 0x0050, 0x10, 2, 1),
    544	PIN_FIELD_BASE(127, 127, 6, 0x0050, 0x10, 10, 1),
    545};
    546
    547static const struct mtk_pin_field_calc mt8195_pin_r0_range[] = {
    548	PIN_FIELD_BASE(0, 0, 4, 0x0080, 0x10, 0, 1),
    549	PIN_FIELD_BASE(1, 1, 4, 0x0080, 0x10, 1, 1),
    550	PIN_FIELD_BASE(2, 2, 4, 0x0080, 0x10, 2, 1),
    551	PIN_FIELD_BASE(3, 3, 4, 0x0080, 0x10, 3, 1),
    552	PIN_FIELD_BASE(4, 4, 4, 0x0080, 0x10, 4, 1),
    553	PIN_FIELD_BASE(5, 5, 4, 0x0080, 0x10, 5, 1),
    554	PIN_FIELD_BASE(77, 77, 3, 0x0080, 0x10, 1, 1),
    555	PIN_FIELD_BASE(78, 78, 3, 0x0080, 0x10, 2, 1),
    556	PIN_FIELD_BASE(79, 79, 3, 0x0080, 0x10, 9, 1),
    557	PIN_FIELD_BASE(80, 80, 3, 0x0080, 0x10, 10, 1),
    558	PIN_FIELD_BASE(81, 81, 3, 0x0080, 0x10, 11, 1),
    559	PIN_FIELD_BASE(82, 82, 3, 0x0080, 0x10, 12, 1),
    560	PIN_FIELD_BASE(83, 83, 3, 0x0080, 0x10, 13, 1),
    561	PIN_FIELD_BASE(84, 84, 3, 0x0080, 0x10, 14, 1),
    562	PIN_FIELD_BASE(85, 85, 3, 0x0080, 0x10, 15, 1),
    563	PIN_FIELD_BASE(86, 86, 3, 0x0080, 0x10, 16, 1),
    564	PIN_FIELD_BASE(87, 87, 3, 0x0080, 0x10, 3, 1),
    565	PIN_FIELD_BASE(88, 88, 3, 0x0080, 0x10, 4, 1),
    566	PIN_FIELD_BASE(89, 89, 3, 0x0080, 0x10, 5, 1),
    567	PIN_FIELD_BASE(90, 90, 3, 0x0080, 0x10, 6, 1),
    568	PIN_FIELD_BASE(91, 91, 3, 0x0080, 0x10, 7, 1),
    569	PIN_FIELD_BASE(92, 92, 3, 0x0080, 0x10, 8, 1),
    570	PIN_FIELD_BASE(93, 93, 3, 0x0080, 0x10, 18, 1),
    571	PIN_FIELD_BASE(94, 94, 3, 0x0080, 0x10, 19, 1),
    572	PIN_FIELD_BASE(95, 95, 3, 0x0080, 0x10, 17, 1),
    573	PIN_FIELD_BASE(96, 96, 3, 0x0080, 0x10, 0, 1),
    574	PIN_FIELD_BASE(104, 104, 3, 0x0080, 0x10, 22, 1),
    575	PIN_FIELD_BASE(105, 105, 3, 0x0080, 0x10, 23, 1),
    576	PIN_FIELD_BASE(106, 106, 3, 0x0080, 0x10, 20, 1),
    577	PIN_FIELD_BASE(107, 107, 3, 0x0080, 0x10, 21, 1),
    578	PIN_FIELD_BASE(110, 110, 5, 0x0030, 0x10, 1, 1),
    579	PIN_FIELD_BASE(111, 111, 5, 0x0030, 0x10, 0, 1),
    580	PIN_FIELD_BASE(112, 112, 5, 0x0030, 0x10, 2, 1),
    581	PIN_FIELD_BASE(113, 113, 5, 0x0030, 0x10, 3, 1),
    582	PIN_FIELD_BASE(114, 114, 5, 0x0030, 0x10, 4, 1),
    583	PIN_FIELD_BASE(115, 115, 5, 0x0030, 0x10, 5, 1),
    584	PIN_FIELD_BASE(116, 116, 6, 0x0070, 0x10, 9, 1),
    585	PIN_FIELD_BASE(117, 117, 6, 0x0070, 0x10, 8, 1),
    586	PIN_FIELD_BASE(118, 118, 6, 0x0070, 0x10, 7, 1),
    587	PIN_FIELD_BASE(119, 119, 6, 0x0070, 0x10, 6, 1),
    588	PIN_FIELD_BASE(120, 120, 6, 0x0070, 0x10, 11, 1),
    589	PIN_FIELD_BASE(121, 121, 6, 0x0070, 0x10, 1, 1),
    590	PIN_FIELD_BASE(122, 122, 6, 0x0070, 0x10, 0, 1),
    591	PIN_FIELD_BASE(123, 123, 6, 0x0070, 0x10, 5, 1),
    592	PIN_FIELD_BASE(124, 124, 6, 0x0070, 0x10, 4, 1),
    593	PIN_FIELD_BASE(125, 125, 6, 0x0070, 0x10, 3, 1),
    594	PIN_FIELD_BASE(126, 126, 6, 0x0070, 0x10, 2, 1),
    595	PIN_FIELD_BASE(127, 127, 6, 0x0070, 0x10, 10, 1),
    596};
    597
    598static const struct mtk_pin_field_calc mt8195_pin_r1_range[] = {
    599	PIN_FIELD_BASE(0, 0, 4, 0x0090, 0x10, 0, 1),
    600	PIN_FIELD_BASE(1, 1, 4, 0x0090, 0x10, 1, 1),
    601	PIN_FIELD_BASE(2, 2, 4, 0x0090, 0x10, 2, 1),
    602	PIN_FIELD_BASE(3, 3, 4, 0x0090, 0x10, 3, 1),
    603	PIN_FIELD_BASE(4, 4, 4, 0x0090, 0x10, 4, 1),
    604	PIN_FIELD_BASE(5, 5, 4, 0x0090, 0x10, 5, 1),
    605	PIN_FIELD_BASE(77, 77, 3, 0x0090, 0x10, 1, 1),
    606	PIN_FIELD_BASE(78, 78, 3, 0x0090, 0x10, 2, 1),
    607	PIN_FIELD_BASE(79, 79, 3, 0x0090, 0x10, 9, 1),
    608	PIN_FIELD_BASE(80, 80, 3, 0x0090, 0x10, 10, 1),
    609	PIN_FIELD_BASE(81, 81, 3, 0x0090, 0x10, 11, 1),
    610	PIN_FIELD_BASE(82, 82, 3, 0x0090, 0x10, 12, 1),
    611	PIN_FIELD_BASE(83, 83, 3, 0x0090, 0x10, 13, 1),
    612	PIN_FIELD_BASE(84, 84, 3, 0x0090, 0x10, 14, 1),
    613	PIN_FIELD_BASE(85, 85, 3, 0x0090, 0x10, 15, 1),
    614	PIN_FIELD_BASE(86, 86, 3, 0x0090, 0x10, 16, 1),
    615	PIN_FIELD_BASE(87, 87, 3, 0x0090, 0x10, 3, 1),
    616	PIN_FIELD_BASE(88, 88, 3, 0x0090, 0x10, 4, 1),
    617	PIN_FIELD_BASE(89, 89, 3, 0x0090, 0x10, 5, 1),
    618	PIN_FIELD_BASE(90, 90, 3, 0x0090, 0x10, 6, 1),
    619	PIN_FIELD_BASE(91, 91, 3, 0x0090, 0x10, 7, 1),
    620	PIN_FIELD_BASE(92, 92, 3, 0x0090, 0x10, 8, 1),
    621	PIN_FIELD_BASE(93, 93, 3, 0x0090, 0x10, 18, 1),
    622	PIN_FIELD_BASE(94, 94, 3, 0x0090, 0x10, 19, 1),
    623	PIN_FIELD_BASE(95, 95, 3, 0x0090, 0x10, 17, 1),
    624	PIN_FIELD_BASE(96, 96, 3, 0x0090, 0x10, 0, 1),
    625	PIN_FIELD_BASE(104, 104, 3, 0x0090, 0x10, 22, 1),
    626	PIN_FIELD_BASE(105, 105, 3, 0x0090, 0x10, 23, 1),
    627	PIN_FIELD_BASE(106, 106, 3, 0x0090, 0x10, 20, 1),
    628	PIN_FIELD_BASE(107, 107, 3, 0x0090, 0x10, 21, 1),
    629	PIN_FIELD_BASE(110, 110, 5, 0x0040, 0x10, 1, 1),
    630	PIN_FIELD_BASE(111, 111, 5, 0x0040, 0x10, 0, 1),
    631	PIN_FIELD_BASE(112, 112, 5, 0x0040, 0x10, 2, 1),
    632	PIN_FIELD_BASE(113, 113, 5, 0x0040, 0x10, 3, 1),
    633	PIN_FIELD_BASE(114, 114, 5, 0x0040, 0x10, 4, 1),
    634	PIN_FIELD_BASE(115, 115, 5, 0x0040, 0x10, 5, 1),
    635	PIN_FIELD_BASE(116, 116, 6, 0x0080, 0x10, 9, 1),
    636	PIN_FIELD_BASE(117, 117, 6, 0x0080, 0x10, 8, 1),
    637	PIN_FIELD_BASE(118, 118, 6, 0x0080, 0x10, 7, 1),
    638	PIN_FIELD_BASE(119, 119, 6, 0x0080, 0x10, 6, 1),
    639	PIN_FIELD_BASE(120, 120, 6, 0x0080, 0x10, 11, 1),
    640	PIN_FIELD_BASE(121, 121, 6, 0x0080, 0x10, 1, 1),
    641	PIN_FIELD_BASE(122, 122, 6, 0x0080, 0x10, 0, 1),
    642	PIN_FIELD_BASE(123, 123, 6, 0x0080, 0x10, 5, 1),
    643	PIN_FIELD_BASE(124, 124, 6, 0x0080, 0x10, 4, 1),
    644	PIN_FIELD_BASE(125, 125, 6, 0x0080, 0x10, 3, 1),
    645	PIN_FIELD_BASE(126, 126, 6, 0x0080, 0x10, 2, 1),
    646	PIN_FIELD_BASE(127, 127, 6, 0x0080, 0x10, 10, 1),
    647};
    648
    649static const struct mtk_pin_field_calc mt8195_pin_drv_range[] = {
    650	PIN_FIELD_BASE(0, 0, 4, 0x000, 0x10, 0, 3),
    651	PIN_FIELD_BASE(1, 1, 4, 0x000, 0x10, 3, 3),
    652	PIN_FIELD_BASE(2, 2, 4, 0x000, 0x10, 6, 3),
    653	PIN_FIELD_BASE(3, 3, 4, 0x000, 0x10, 9, 3),
    654	PIN_FIELD_BASE(4, 4, 4, 0x000, 0x10, 12, 3),
    655	PIN_FIELD_BASE(5, 5, 4, 0x000, 0x10, 15, 3),
    656	PINS_FIELD_BASE(6, 7, 4, 0x000, 0x10, 18, 3),
    657	PIN_FIELD_BASE(8, 8, 4, 0x010, 0x10, 6, 3),
    658	PIN_FIELD_BASE(9, 9, 4, 0x000, 0x10, 21, 3),
    659	PIN_FIELD_BASE(10, 10, 4, 0x010, 0x10, 9, 3),
    660	PIN_FIELD_BASE(11, 11, 4, 0x000, 0x10, 24, 3),
    661	PIN_FIELD_BASE(12, 12, 4, 0x010, 0x10, 12, 3),
    662	PIN_FIELD_BASE(13, 13, 4, 0x010, 0x10, 27, 3),
    663	PIN_FIELD_BASE(14, 14, 4, 0x010, 0x10, 15, 3),
    664	PIN_FIELD_BASE(15, 15, 4, 0x010, 0x10, 0, 3),
    665	PIN_FIELD_BASE(16, 16, 4, 0x010, 0x10, 18, 3),
    666	PIN_FIELD_BASE(17, 17, 4, 0x010, 0x10, 3, 3),
    667	PIN_FIELD_BASE(18, 18, 2, 0x010, 0x10, 6, 3),
    668	PIN_FIELD_BASE(19, 19, 2, 0x010, 0x10, 3, 3),
    669	PIN_FIELD_BASE(20, 20, 2, 0x010, 0x10, 0, 3),
    670	PIN_FIELD_BASE(21, 21, 2, 0x000, 0x10, 27, 3),
    671	PIN_FIELD_BASE(22, 22, 2, 0x000, 0x10, 0, 3),
    672	PIN_FIELD_BASE(23, 23, 2, 0x000, 0x10, 3, 3),
    673	PIN_FIELD_BASE(24, 24, 2, 0x000, 0x10, 6, 3),
    674	PIN_FIELD_BASE(25, 25, 2, 0x000, 0x10, 12, 3),
    675	PIN_FIELD_BASE(26, 26, 2, 0x000, 0x10, 9, 3),
    676	PIN_FIELD_BASE(27, 27, 2, 0x000, 0x10, 15, 3),
    677	PIN_FIELD_BASE(28, 28, 2, 0x000, 0x10, 18, 3),
    678	PIN_FIELD_BASE(29, 29, 2, 0x000, 0x10, 21, 3),
    679	PIN_FIELD_BASE(30, 30, 2, 0x000, 0x10, 24, 3),
    680	PINS_FIELD_BASE(31, 33, 1, 0x010, 0x10, 0, 3),
    681	PIN_FIELD_BASE(34, 34, 1, 0x000, 0x10, 21, 3),
    682	PIN_FIELD_BASE(35, 35, 1, 0x000, 0x10, 24, 3),
    683	PIN_FIELD_BASE(36, 36, 1, 0x010, 0x10, 0, 3),
    684	PIN_FIELD_BASE(37, 37, 1, 0x010, 0x10, 21, 3),
    685	PINS_FIELD_BASE(38, 39, 1, 0x010, 0x10, 3, 3),
    686	PIN_FIELD_BASE(40, 40, 1, 0x010, 0x10, 27, 3),
    687	PIN_FIELD_BASE(41, 41, 1, 0x010, 0x10, 24, 3),
    688	PIN_FIELD_BASE(42, 42, 1, 0x020, 0x10, 3, 3),
    689	PIN_FIELD_BASE(43, 43, 1, 0x020, 0x10, 0, 3),
    690	PIN_FIELD_BASE(44, 44, 1, 0x030, 0x10, 0, 3),
    691	PIN_FIELD_BASE(45, 45, 1, 0x030, 0x10, 3, 3),
    692	PINS_FIELD_BASE(46, 47, 1, 0x010, 0x10, 3, 3),
    693	PINS_FIELD_BASE(48, 51, 1, 0x010, 0x10, 6, 3),
    694	PINS_FIELD_BASE(52, 55, 1, 0x010, 0x10, 9, 3),
    695	PINS_FIELD_BASE(56, 59, 1, 0x010, 0x10, 12, 3),
    696	PINS_FIELD_BASE(60, 63, 1, 0x010, 0x10, 15, 3),
    697	PIN_FIELD_BASE(64, 64, 1, 0x010, 0x10, 18, 3),
    698	PINS_FIELD_BASE(65, 68, 1, 0x000, 0x10, 27, 3),
    699	PIN_FIELD_BASE(69, 69, 1, 0x000, 0x10, 0, 3),
    700	PIN_FIELD_BASE(70, 70, 1, 0x000, 0x10, 18, 3),
    701	PIN_FIELD_BASE(71, 71, 1, 0x000, 0x10, 12, 3),
    702	PIN_FIELD_BASE(72, 72, 1, 0x000, 0x10, 15, 3),
    703	PIN_FIELD_BASE(73, 73, 1, 0x000, 0x10, 3, 3),
    704	PIN_FIELD_BASE(74, 74, 1, 0x000, 0x10, 6, 3),
    705	PIN_FIELD_BASE(75, 75, 1, 0x000, 0x10, 9, 3),
    706	PIN_FIELD_BASE(76, 76, 1, 0x010, 0x10, 18, 3),
    707	PIN_FIELD_BASE(77, 77, 3, 0x000, 0x10, 0, 3),
    708	PIN_FIELD_BASE(78, 78, 3, 0x000, 0x10, 15, 3),
    709	PIN_FIELD_BASE(79, 79, 3, 0x000, 0x10, 18, 3),
    710	PIN_FIELD_BASE(80, 80, 3, 0x000, 0x10, 21, 3),
    711	PIN_FIELD_BASE(81, 81, 3, 0x000, 0x10, 28, 3),
    712	PIN_FIELD_BASE(82, 82, 3, 0x000, 0x10, 27, 3),
    713	PIN_FIELD_BASE(83, 83, 3, 0x010, 0x10, 0, 3),
    714	PIN_FIELD_BASE(84, 84, 3, 0x010, 0x10, 3, 3),
    715	PINS_FIELD_BASE(85, 88, 3, 0x010, 0x10, 15, 3),
    716	PIN_FIELD_BASE(89, 89, 3, 0x000, 0x10, 3, 3),
    717	PIN_FIELD_BASE(90, 90, 3, 0x000, 0x10, 6, 3),
    718	PIN_FIELD_BASE(91, 91, 3, 0x000, 0x10, 9, 3),
    719	PIN_FIELD_BASE(92, 92, 3, 0x000, 0x10, 12, 3),
    720	PIN_FIELD_BASE(93, 93, 3, 0x010, 0x10, 6, 3),
    721	PIN_FIELD_BASE(94, 94, 3, 0x010, 0x10, 9, 3),
    722	PINS_FIELD_BASE(95, 98, 3, 0x010, 0x10, 18, 3),
    723	PINS_FIELD_BASE(99, 102, 3, 0x010, 0x10, 21, 3),
    724	PINS_FIELD_BASE(103, 104, 3, 0x010, 0x10, 24, 3),
    725	PIN_FIELD_BASE(105, 105, 3, 0x010, 0x10, 27, 3),
    726	PINS_FIELD_BASE(106, 107, 3, 0x010, 0x10, 24, 3),
    727	PINS_FIELD_BASE(108, 109, 3, 0x010, 0x10, 27, 3),
    728	PIN_FIELD_BASE(110, 110, 5, 0x000, 0x10, 3, 3),
    729	PIN_FIELD_BASE(111, 111, 5, 0x000, 0x10, 0, 3),
    730	PIN_FIELD_BASE(112, 112, 5, 0x000, 0x10, 6, 3),
    731	PIN_FIELD_BASE(113, 113, 5, 0x000, 0x10, 9, 3),
    732	PIN_FIELD_BASE(114, 114, 5, 0x000, 0x10, 12, 3),
    733	PIN_FIELD_BASE(115, 115, 5, 0x000, 0x10, 15, 3),
    734	PIN_FIELD_BASE(116, 116, 6, 0x000, 0x10, 27, 3),
    735	PIN_FIELD_BASE(117, 117, 6, 0x000, 0x10, 24, 3),
    736	PIN_FIELD_BASE(118, 118, 6, 0x000, 0x10, 21, 3),
    737	PIN_FIELD_BASE(119, 119, 6, 0x000, 0x10, 18, 3),
    738	PIN_FIELD_BASE(120, 120, 6, 0x010, 0x10, 3, 3),
    739	PIN_FIELD_BASE(121, 121, 6, 0x000, 0x10, 3, 3),
    740	PIN_FIELD_BASE(122, 122, 6, 0x000, 0x10, 0, 3),
    741	PIN_FIELD_BASE(123, 123, 6, 0x000, 0x10, 15, 3),
    742	PIN_FIELD_BASE(124, 124, 6, 0x000, 0x10, 12, 3),
    743	PIN_FIELD_BASE(125, 125, 6, 0x000, 0x10, 9, 3),
    744	PIN_FIELD_BASE(126, 126, 6, 0x000, 0x10, 6, 3),
    745	PIN_FIELD_BASE(127, 127, 6, 0x010, 0x10, 0, 3),
    746	PIN_FIELD_BASE(128, 128, 3, 0x010, 0x10, 27, 3),
    747	PINS_FIELD_BASE(129, 130, 3, 0x020, 0x10, 0, 3),
    748	PINS_FIELD_BASE(131, 131, 3, 0x010, 0x10, 12, 3),
    749	PIN_FIELD_BASE(132, 132, 6, 0x010, 0x10, 9, 3),
    750	PIN_FIELD_BASE(133, 133, 6, 0x010, 0x10, 6, 3),
    751	PIN_FIELD_BASE(134, 134, 6, 0x010, 0x10, 15, 3),
    752	PIN_FIELD_BASE(135, 135, 6, 0x010, 0x10, 12, 3),
    753	PIN_FIELD_BASE(136, 136, 1, 0x020, 0x10, 9, 3),
    754	PIN_FIELD_BASE(137, 137, 1, 0x020, 0x10, 6, 3),
    755	PIN_FIELD_BASE(138, 138, 1, 0x020, 0x10, 15, 3),
    756	PIN_FIELD_BASE(139, 139, 1, 0x020, 0x10, 12, 3),
    757	PIN_FIELD_BASE(140, 140, 1, 0x020, 0x10, 21, 3),
    758	PIN_FIELD_BASE(141, 141, 1, 0x020, 0x10, 18, 3),
    759	PIN_FIELD_BASE(142, 142, 1, 0x020, 0x10, 27, 3),
    760	PIN_FIELD_BASE(143, 143, 1, 0x020, 0x10, 24, 3),
    761};
    762
    763static const struct mtk_pin_field_calc mt8195_pin_drv_adv_range[] = {
    764	PIN_FIELD_BASE(8, 8, 4, 0x020, 0x10, 15, 3),
    765	PIN_FIELD_BASE(9, 9, 4, 0x020, 0x10, 0, 3),
    766	PIN_FIELD_BASE(10, 10, 4, 0x020, 0x10, 18, 3),
    767	PIN_FIELD_BASE(11, 11, 4, 0x020, 0x10, 3, 3),
    768	PIN_FIELD_BASE(12, 12, 4, 0x020, 0x10, 21, 3),
    769	PIN_FIELD_BASE(13, 13, 4, 0x020, 0x10, 6, 3),
    770	PIN_FIELD_BASE(14, 14, 4, 0x020, 0x10, 24, 3),
    771	PIN_FIELD_BASE(15, 15, 4, 0x020, 0x10, 9, 3),
    772	PIN_FIELD_BASE(16, 16, 4, 0x020, 0x10, 27, 3),
    773	PIN_FIELD_BASE(17, 17, 4, 0x020, 0x10, 12, 3),
    774	PIN_FIELD_BASE(29, 29, 2, 0x020, 0x10, 0, 3),
    775	PIN_FIELD_BASE(30, 30, 2, 0x020, 0x10, 3, 3),
    776	PIN_FIELD_BASE(34, 34, 1, 0x040, 0x10, 0, 3),
    777	PIN_FIELD_BASE(35, 35, 1, 0x040, 0x10, 3, 3),
    778	PIN_FIELD_BASE(44, 44, 1, 0x040, 0x10, 6, 3),
    779	PIN_FIELD_BASE(45, 45, 1, 0x040, 0x10, 9, 3),
    780};
    781
    782static const struct mtk_pin_field_calc mt8195_pin_rsel_range[] = {
    783	PIN_FIELD_BASE(8, 8, 4, 0x0c0, 0x10, 15, 3),
    784	PIN_FIELD_BASE(9, 9, 4, 0x0c0, 0x10, 0, 3),
    785	PIN_FIELD_BASE(10, 10, 4, 0x0c0, 0x10, 18, 3),
    786	PIN_FIELD_BASE(11, 11, 4, 0x0c0, 0x10, 3, 3),
    787	PIN_FIELD_BASE(12, 12, 4, 0x0c0, 0x10, 21, 3),
    788	PIN_FIELD_BASE(13, 13, 4, 0x0c0, 0x10, 6, 3),
    789	PIN_FIELD_BASE(14, 14, 4, 0x0c0, 0x10, 24, 3),
    790	PIN_FIELD_BASE(15, 15, 4, 0x0c0, 0x10, 9, 3),
    791	PIN_FIELD_BASE(16, 16, 4, 0x0c0, 0x10, 27, 3),
    792	PIN_FIELD_BASE(17, 17, 4, 0x0c0, 0x10, 12, 3),
    793	PIN_FIELD_BASE(29, 29, 2, 0x080, 0x10, 0, 3),
    794	PIN_FIELD_BASE(30, 30, 2, 0x080, 0x10, 3, 3),
    795	PIN_FIELD_BASE(34, 34, 1, 0x0e0, 0x10, 0, 3),
    796	PIN_FIELD_BASE(35, 35, 1, 0x0e0, 0x10, 3, 3),
    797	PIN_FIELD_BASE(44, 44, 1, 0x0e0, 0x10, 6, 3),
    798	PIN_FIELD_BASE(45, 45, 1, 0x0e0, 0x10, 9, 3),
    799};
    800
    801static const struct mtk_pin_rsel mt8195_pin_rsel_val_range[] = {
    802	PIN_RSEL(8, 17, 0x0, 75000, 75000),
    803	PIN_RSEL(8, 17, 0x1, 10000, 5000),
    804	PIN_RSEL(8, 17, 0x2, 5000, 75000),
    805	PIN_RSEL(8, 17, 0x3, 4000, 5000),
    806	PIN_RSEL(8, 17, 0x4, 3000, 75000),
    807	PIN_RSEL(8, 17, 0x5, 2000, 5000),
    808	PIN_RSEL(8, 17, 0x6, 1500, 75000),
    809	PIN_RSEL(8, 17, 0x7, 1000, 5000),
    810	PIN_RSEL(29, 30, 0x0, 75000, 75000),
    811	PIN_RSEL(29, 30, 0x1, 10000, 5000),
    812	PIN_RSEL(29, 30, 0x2, 5000, 75000),
    813	PIN_RSEL(29, 30, 0x3, 4000, 5000),
    814	PIN_RSEL(29, 30, 0x4, 3000, 75000),
    815	PIN_RSEL(29, 30, 0x5, 2000, 5000),
    816	PIN_RSEL(29, 30, 0x6, 1500, 75000),
    817	PIN_RSEL(29, 30, 0x7, 1000, 5000),
    818	PIN_RSEL(34, 35, 0x0, 75000, 75000),
    819	PIN_RSEL(34, 35, 0x1, 10000, 5000),
    820	PIN_RSEL(34, 35, 0x2, 5000, 75000),
    821	PIN_RSEL(34, 35, 0x3, 4000, 5000),
    822	PIN_RSEL(34, 35, 0x4, 3000, 75000),
    823	PIN_RSEL(34, 35, 0x5, 2000, 5000),
    824	PIN_RSEL(34, 35, 0x6, 1500, 75000),
    825	PIN_RSEL(34, 35, 0x7, 1000, 5000),
    826	PIN_RSEL(44, 45, 0x0, 75000, 75000),
    827	PIN_RSEL(44, 45, 0x1, 10000, 5000),
    828	PIN_RSEL(44, 45, 0x2, 5000, 75000),
    829	PIN_RSEL(44, 45, 0x3, 4000, 5000),
    830	PIN_RSEL(44, 45, 0x4, 3000, 75000),
    831	PIN_RSEL(44, 45, 0x5, 2000, 5000),
    832	PIN_RSEL(44, 45, 0x6, 1500, 75000),
    833	PIN_RSEL(44, 45, 0x7, 1000, 5000),
    834};
    835
    836static const unsigned int mt8195_pull_type[] = {
    837	MTK_PULL_PUPD_R1R0_TYPE /* 0 */, MTK_PULL_PUPD_R1R0_TYPE /* 1 */,
    838	MTK_PULL_PUPD_R1R0_TYPE /* 2 */, MTK_PULL_PUPD_R1R0_TYPE /* 3 */,
    839	MTK_PULL_PUPD_R1R0_TYPE /* 4 */, MTK_PULL_PUPD_R1R0_TYPE /* 5 */,
    840	MTK_PULL_PU_PD_TYPE /* 6 */, MTK_PULL_PU_PD_TYPE /* 7 */,
    841	MTK_PULL_PU_PD_RSEL_TYPE /* 8 */, MTK_PULL_PU_PD_RSEL_TYPE /* 9 */,
    842	MTK_PULL_PU_PD_RSEL_TYPE /* 10 */, MTK_PULL_PU_PD_RSEL_TYPE /* 11 */,
    843	MTK_PULL_PU_PD_RSEL_TYPE /* 12 */, MTK_PULL_PU_PD_RSEL_TYPE /* 13 */,
    844	MTK_PULL_PU_PD_RSEL_TYPE /* 14 */, MTK_PULL_PU_PD_RSEL_TYPE /* 15 */,
    845	MTK_PULL_PU_PD_RSEL_TYPE /* 16 */, MTK_PULL_PU_PD_RSEL_TYPE /* 17 */,
    846	MTK_PULL_PU_PD_TYPE /* 18 */, MTK_PULL_PU_PD_TYPE /* 19 */,
    847	MTK_PULL_PU_PD_TYPE /* 20 */, MTK_PULL_PU_PD_TYPE /* 21 */,
    848	MTK_PULL_PU_PD_TYPE /* 22 */, MTK_PULL_PU_PD_TYPE /* 23 */,
    849	MTK_PULL_PU_PD_TYPE /* 24 */, MTK_PULL_PU_PD_TYPE /* 25 */,
    850	MTK_PULL_PU_PD_TYPE /* 26 */, MTK_PULL_PU_PD_TYPE /* 27 */,
    851	MTK_PULL_PU_PD_TYPE /* 28 */, MTK_PULL_PU_PD_RSEL_TYPE /* 29 */,
    852	MTK_PULL_PU_PD_RSEL_TYPE /* 30 */, MTK_PULL_PU_PD_TYPE /* 31 */,
    853	MTK_PULL_PU_PD_TYPE /* 32 */, MTK_PULL_PU_PD_TYPE /* 33 */,
    854	MTK_PULL_PU_PD_RSEL_TYPE /* 34 */, MTK_PULL_PU_PD_RSEL_TYPE /* 35 */,
    855	MTK_PULL_PU_PD_TYPE /* 36 */, MTK_PULL_PU_PD_TYPE /* 37 */,
    856	MTK_PULL_PU_PD_TYPE /* 38 */, MTK_PULL_PU_PD_TYPE /* 39 */,
    857	MTK_PULL_PU_PD_TYPE /* 40 */, MTK_PULL_PU_PD_TYPE /* 41 */,
    858	MTK_PULL_PU_PD_TYPE /* 42 */, MTK_PULL_PU_PD_TYPE /* 43 */,
    859	MTK_PULL_PU_PD_RSEL_TYPE /* 44 */, MTK_PULL_PU_PD_RSEL_TYPE /* 45 */,
    860	MTK_PULL_PU_PD_TYPE /* 46 */, MTK_PULL_PU_PD_TYPE /* 47 */,
    861	MTK_PULL_PU_PD_TYPE /* 48 */, MTK_PULL_PU_PD_TYPE /* 49 */,
    862	MTK_PULL_PU_PD_TYPE /* 50 */, MTK_PULL_PU_PD_TYPE /* 51 */,
    863	MTK_PULL_PU_PD_TYPE /* 52 */, MTK_PULL_PU_PD_TYPE /* 53 */,
    864	MTK_PULL_PU_PD_TYPE /* 54 */, MTK_PULL_PU_PD_TYPE /* 55 */,
    865	MTK_PULL_PU_PD_TYPE /* 56 */, MTK_PULL_PU_PD_TYPE /* 57 */,
    866	MTK_PULL_PU_PD_TYPE /* 58 */, MTK_PULL_PU_PD_TYPE /* 59 */,
    867	MTK_PULL_PU_PD_TYPE /* 60 */, MTK_PULL_PU_PD_TYPE /* 61 */,
    868	MTK_PULL_PU_PD_TYPE /* 62 */, MTK_PULL_PU_PD_TYPE /* 63 */,
    869	MTK_PULL_PU_PD_TYPE /* 64 */, MTK_PULL_PU_PD_TYPE /* 65 */,
    870	MTK_PULL_PU_PD_TYPE /* 66 */, MTK_PULL_PU_PD_TYPE /* 67 */,
    871	MTK_PULL_PU_PD_TYPE /* 68 */, MTK_PULL_PU_PD_TYPE /* 69 */,
    872	MTK_PULL_PU_PD_TYPE /* 70 */, MTK_PULL_PU_PD_TYPE /* 71 */,
    873	MTK_PULL_PU_PD_TYPE /* 72 */, MTK_PULL_PU_PD_TYPE /* 73 */,
    874	MTK_PULL_PU_PD_TYPE /* 74 */, MTK_PULL_PU_PD_TYPE /* 75 */,
    875	MTK_PULL_PU_PD_TYPE /* 76 */, MTK_PULL_PUPD_R1R0_TYPE /* 77 */,
    876	MTK_PULL_PUPD_R1R0_TYPE /* 78 */, MTK_PULL_PUPD_R1R0_TYPE /* 79 */,
    877	MTK_PULL_PUPD_R1R0_TYPE /* 80 */, MTK_PULL_PUPD_R1R0_TYPE /* 81 */,
    878	MTK_PULL_PUPD_R1R0_TYPE /* 82 */, MTK_PULL_PUPD_R1R0_TYPE /* 83 */,
    879	MTK_PULL_PUPD_R1R0_TYPE /* 84 */, MTK_PULL_PUPD_R1R0_TYPE /* 85 */,
    880	MTK_PULL_PUPD_R1R0_TYPE /* 86 */, MTK_PULL_PUPD_R1R0_TYPE /* 87 */,
    881	MTK_PULL_PUPD_R1R0_TYPE /* 88 */, MTK_PULL_PUPD_R1R0_TYPE /* 89 */,
    882	MTK_PULL_PUPD_R1R0_TYPE /* 90 */, MTK_PULL_PUPD_R1R0_TYPE /* 91 */,
    883	MTK_PULL_PUPD_R1R0_TYPE /* 92 */, MTK_PULL_PUPD_R1R0_TYPE /* 93 */,
    884	MTK_PULL_PUPD_R1R0_TYPE /* 94 */, MTK_PULL_PUPD_R1R0_TYPE /* 95 */,
    885	MTK_PULL_PUPD_R1R0_TYPE /* 96 */, MTK_PULL_PU_PD_TYPE /* 97 */,
    886	MTK_PULL_PU_PD_TYPE /* 98 */, MTK_PULL_PU_PD_TYPE /* 99 */,
    887	MTK_PULL_PU_PD_TYPE /* 100 */, MTK_PULL_PU_PD_TYPE /* 101 */,
    888	MTK_PULL_PU_PD_TYPE /* 102 */, MTK_PULL_PU_PD_TYPE /* 103 */,
    889	MTK_PULL_PUPD_R1R0_TYPE /* 104 */, MTK_PULL_PUPD_R1R0_TYPE /* 105 */,
    890	MTK_PULL_PUPD_R1R0_TYPE /* 106 */, MTK_PULL_PUPD_R1R0_TYPE /* 107 */,
    891	MTK_PULL_PU_PD_TYPE /* 108 */, MTK_PULL_PU_PD_TYPE /* 109 */,
    892	MTK_PULL_PUPD_R1R0_TYPE /* 110 */, MTK_PULL_PUPD_R1R0_TYPE /* 111 */,
    893	MTK_PULL_PUPD_R1R0_TYPE /* 112 */, MTK_PULL_PUPD_R1R0_TYPE /* 113 */,
    894	MTK_PULL_PUPD_R1R0_TYPE /* 114 */, MTK_PULL_PUPD_R1R0_TYPE /* 115 */,
    895	MTK_PULL_PUPD_R1R0_TYPE /* 116 */, MTK_PULL_PUPD_R1R0_TYPE /* 117 */,
    896	MTK_PULL_PUPD_R1R0_TYPE /* 118 */, MTK_PULL_PUPD_R1R0_TYPE /* 119 */,
    897	MTK_PULL_PUPD_R1R0_TYPE /* 120 */, MTK_PULL_PUPD_R1R0_TYPE /* 121 */,
    898	MTK_PULL_PUPD_R1R0_TYPE /* 122 */, MTK_PULL_PUPD_R1R0_TYPE /* 123 */,
    899	MTK_PULL_PUPD_R1R0_TYPE /* 124 */, MTK_PULL_PUPD_R1R0_TYPE /* 125 */,
    900	MTK_PULL_PUPD_R1R0_TYPE /* 126 */, MTK_PULL_PUPD_R1R0_TYPE /* 127 */,
    901	MTK_PULL_PU_PD_TYPE /* 128 */, MTK_PULL_PU_PD_TYPE /* 129 */,
    902	MTK_PULL_PU_PD_TYPE /* 130 */, MTK_PULL_PU_PD_TYPE /* 131 */,
    903	MTK_PULL_PU_PD_TYPE /* 132 */, MTK_PULL_PU_PD_TYPE /* 133 */,
    904	MTK_PULL_PU_PD_TYPE /* 134 */, MTK_PULL_PU_PD_TYPE /* 135 */,
    905	MTK_PULL_PU_PD_TYPE /* 136 */, MTK_PULL_PU_PD_TYPE /* 137 */,
    906	MTK_PULL_PU_PD_TYPE /* 138 */, MTK_PULL_PU_PD_TYPE /* 139 */,
    907	MTK_PULL_PU_PD_TYPE /* 140 */, MTK_PULL_PU_PD_TYPE /* 141 */,
    908	MTK_PULL_PU_PD_TYPE /* 142 */, MTK_PULL_PU_PD_TYPE /* 143 */,
    909};
    910
    911static const struct mtk_pin_reg_calc mt8195_reg_cals[PINCTRL_PIN_REG_MAX] = {
    912	[PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt8195_pin_mode_range),
    913	[PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt8195_pin_dir_range),
    914	[PINCTRL_PIN_REG_DI] = MTK_RANGE(mt8195_pin_di_range),
    915	[PINCTRL_PIN_REG_DO] = MTK_RANGE(mt8195_pin_do_range),
    916	[PINCTRL_PIN_REG_SMT] = MTK_RANGE(mt8195_pin_smt_range),
    917	[PINCTRL_PIN_REG_IES] = MTK_RANGE(mt8195_pin_ies_range),
    918	[PINCTRL_PIN_REG_PU] = MTK_RANGE(mt8195_pin_pu_range),
    919	[PINCTRL_PIN_REG_PD] = MTK_RANGE(mt8195_pin_pd_range),
    920	[PINCTRL_PIN_REG_DRV] = MTK_RANGE(mt8195_pin_drv_range),
    921	[PINCTRL_PIN_REG_PUPD] = MTK_RANGE(mt8195_pin_pupd_range),
    922	[PINCTRL_PIN_REG_R0] = MTK_RANGE(mt8195_pin_r0_range),
    923	[PINCTRL_PIN_REG_R1] = MTK_RANGE(mt8195_pin_r1_range),
    924	[PINCTRL_PIN_REG_DRV_ADV] = MTK_RANGE(mt8195_pin_drv_adv_range),
    925	[PINCTRL_PIN_REG_RSEL] = MTK_RANGE(mt8195_pin_rsel_range),
    926};
    927
    928static const char * const mt8195_pinctrl_register_base_names[] = {
    929	"iocfg0", "iocfg_bm", "iocfg_bl", "iocfg_br", "iocfg_lm",
    930	"iocfg_rb", "iocfg_tl",
    931};
    932
    933static const struct mtk_eint_hw mt8195_eint_hw = {
    934	.port_mask = 0xf,
    935	.ports     = 7,
    936	.ap_num    = 225,
    937	.db_cnt    = 32,
    938};
    939
    940static const struct mtk_pin_soc mt8195_data = {
    941	.reg_cal = mt8195_reg_cals,
    942	.pins = mtk_pins_mt8195,
    943	.npins = ARRAY_SIZE(mtk_pins_mt8195),
    944	.ngrps = ARRAY_SIZE(mtk_pins_mt8195),
    945	.eint_hw = &mt8195_eint_hw,
    946	.nfuncs = 8,
    947	.gpio_m = 0,
    948	.base_names = mt8195_pinctrl_register_base_names,
    949	.nbase_names = ARRAY_SIZE(mt8195_pinctrl_register_base_names),
    950	.pull_type = mt8195_pull_type,
    951	.pin_rsel = mt8195_pin_rsel_val_range,
    952	.npin_rsel = ARRAY_SIZE(mt8195_pin_rsel_val_range),
    953	.bias_set_combo = mtk_pinconf_bias_set_combo,
    954	.bias_get_combo = mtk_pinconf_bias_get_combo,
    955	.drive_set = mtk_pinconf_drive_set_rev1,
    956	.drive_get = mtk_pinconf_drive_get_rev1,
    957	.adv_drive_get = mtk_pinconf_adv_drive_get_raw,
    958	.adv_drive_set = mtk_pinconf_adv_drive_set_raw,
    959};
    960
    961static const struct of_device_id mt8195_pinctrl_of_match[] = {
    962	{ .compatible = "mediatek,mt8195-pinctrl", .data = &mt8195_data },
    963	{ }
    964};
    965
    966static struct platform_driver mt8195_pinctrl_driver = {
    967	.driver = {
    968		.name = "mt8195-pinctrl",
    969		.of_match_table = mt8195_pinctrl_of_match,
    970		.pm = &mtk_paris_pinctrl_pm_ops,
    971	},
    972	.probe = mtk_paris_pinctrl_probe,
    973};
    974
    975static int __init mt8195_pinctrl_init(void)
    976{
    977	return platform_driver_register(&mt8195_pinctrl_driver);
    978}
    979arch_initcall(mt8195_pinctrl_init);