981 lines · c
1// SPDX-License-Identifier: GPL-2.02/*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, 0x000, 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, 24, 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 .db_time = debounce_time_mt6765,939};940 941static const struct mtk_pin_soc mt8195_data = {942 .reg_cal = mt8195_reg_cals,943 .pins = mtk_pins_mt8195,944 .npins = ARRAY_SIZE(mtk_pins_mt8195),945 .ngrps = ARRAY_SIZE(mtk_pins_mt8195),946 .eint_hw = &mt8195_eint_hw,947 .nfuncs = 8,948 .gpio_m = 0,949 .base_names = mt8195_pinctrl_register_base_names,950 .nbase_names = ARRAY_SIZE(mt8195_pinctrl_register_base_names),951 .pull_type = mt8195_pull_type,952 .pin_rsel = mt8195_pin_rsel_val_range,953 .npin_rsel = ARRAY_SIZE(mt8195_pin_rsel_val_range),954 .bias_set_combo = mtk_pinconf_bias_set_combo,955 .bias_get_combo = mtk_pinconf_bias_get_combo,956 .drive_set = mtk_pinconf_drive_set_rev1,957 .drive_get = mtk_pinconf_drive_get_rev1,958 .adv_drive_get = mtk_pinconf_adv_drive_get_raw,959 .adv_drive_set = mtk_pinconf_adv_drive_set_raw,960};961 962static const struct of_device_id mt8195_pinctrl_of_match[] = {963 { .compatible = "mediatek,mt8195-pinctrl", .data = &mt8195_data },964 { }965};966 967static struct platform_driver mt8195_pinctrl_driver = {968 .driver = {969 .name = "mt8195-pinctrl",970 .of_match_table = mt8195_pinctrl_of_match,971 .pm = pm_sleep_ptr(&mtk_paris_pinctrl_pm_ops),972 },973 .probe = mtk_paris_pinctrl_probe,974};975 976static int __init mt8195_pinctrl_init(void)977{978 return platform_driver_register(&mt8195_pinctrl_driver);979}980arch_initcall(mt8195_pinctrl_init);981