1*cecbb93cSCathy Xu /* 2*cecbb93cSCathy Xu * Copyright (c) 2025, MediaTek Inc. All rights reserved. 3*cecbb93cSCathy Xu * 4*cecbb93cSCathy Xu * SPDX-License-Identifier: BSD-3-Clause 5*cecbb93cSCathy Xu */ 6*cecbb93cSCathy Xu 7*cecbb93cSCathy Xu #ifndef MT_GPIO_H 8*cecbb93cSCathy Xu #define MT_GPIO_H 9*cecbb93cSCathy Xu 10*cecbb93cSCathy Xu #include <mtgpio_common.h> 11*cecbb93cSCathy Xu 12*cecbb93cSCathy Xu /* Enumeration for GPIO pin */ 13*cecbb93cSCathy Xu typedef enum GPIO_PIN { 14*cecbb93cSCathy Xu GPIO_UNSUPPORTED = -1, 15*cecbb93cSCathy Xu GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO5, GPIO6, 16*cecbb93cSCathy Xu GPIO7, GPIO8, GPIO9, GPIO10, GPIO11, GPIO12, GPIO13, GPIO14, 17*cecbb93cSCathy Xu GPIO15, GPIO16, GPIO17, GPIO18, GPIO19, GPIO20, GPIO21, GPIO22, 18*cecbb93cSCathy Xu GPIO23, GPIO24, GPIO25, GPIO26, GPIO27, GPIO28, GPIO29, GPIO30, 19*cecbb93cSCathy Xu GPIO31, GPIO32, GPIO33, GPIO34, GPIO35, GPIO36, GPIO37, GPIO38, 20*cecbb93cSCathy Xu GPIO39, GPIO40, GPIO41, GPIO42, GPIO43, GPIO44, GPIO45, GPIO46, 21*cecbb93cSCathy Xu GPIO47, GPIO48, GPIO49, GPIO50, GPIO51, GPIO52, GPIO53, GPIO54, 22*cecbb93cSCathy Xu GPIO55, GPIO56, GPIO57, GPIO58, GPIO59, GPIO60, GPIO61, GPIO62, 23*cecbb93cSCathy Xu GPIO63, GPIO64, GPIO65, GPIO66, GPIO67, GPIO68, GPIO69, GPIO70, 24*cecbb93cSCathy Xu GPIO71, GPIO72, GPIO73, GPIO74, GPIO75, GPIO76, GPIO77, GPIO78, 25*cecbb93cSCathy Xu GPIO79, GPIO80, GPIO81, GPIO82, GPIO83, GPIO84, GPIO85, GPIO86, 26*cecbb93cSCathy Xu GPIO87, GPIO88, GPIO89, GPIO90, GPIO91, GPIO92, GPIO93, GPIO94, 27*cecbb93cSCathy Xu GPIO95, GPIO96, GPIO97, GPIO98, GPIO99, GPIO100, GPIO101, GPIO102, 28*cecbb93cSCathy Xu GPIO103, GPIO104, GPIO105, GPIO106, GPIO107, GPIO108, GPIO109, GPIO110, 29*cecbb93cSCathy Xu GPIO111, GPIO112, GPIO113, GPIO114, GPIO115, GPIO116, GPIO117, GPIO118, 30*cecbb93cSCathy Xu GPIO119, GPIO120, GPIO121, GPIO122, GPIO123, GPIO124, GPIO125, GPIO126, 31*cecbb93cSCathy Xu GPIO127, GPIO128, GPIO129, GPIO130, GPIO131, GPIO132, GPIO133, GPIO134, 32*cecbb93cSCathy Xu GPIO135, GPIO136, GPIO137, GPIO138, GPIO139, GPIO140, GPIO141, GPIO142, 33*cecbb93cSCathy Xu GPIO143, GPIO144, GPIO145, GPIO146, GPIO147, GPIO148, GPIO149, GPIO150, 34*cecbb93cSCathy Xu GPIO151, GPIO152, GPIO153, GPIO154, GPIO155, GPIO156, GPIO157, GPIO158, 35*cecbb93cSCathy Xu GPIO159, GPIO160, GPIO161, GPIO162, GPIO163, GPIO164, GPIO165, GPIO166, 36*cecbb93cSCathy Xu GPIO167, GPIO168, GPIO169, GPIO170, GPIO171, GPIO172, GPIO173, GPIO174, 37*cecbb93cSCathy Xu GPIO175, GPIO176, GPIO177, GPIO178, GPIO179, GPIO180, GPIO181, GPIO182, 38*cecbb93cSCathy Xu MT_GPIO_BASE_MAX 39*cecbb93cSCathy Xu } GPIO_PIN; 40*cecbb93cSCathy Xu 41*cecbb93cSCathy Xu static const struct mt_pin_info mt_pin_infos[] = { 42*cecbb93cSCathy Xu PIN(0, 0, 5, 0x21, 0xa0), 43*cecbb93cSCathy Xu PIN(1, 0, 3, 0x12, 0x90), 44*cecbb93cSCathy Xu PIN(2, 0, 4, 0x12, 0x90), 45*cecbb93cSCathy Xu PIN(3, 0, 5, 0x12, 0x90), 46*cecbb93cSCathy Xu PIN(4, 0, 6, 0x12, 0x90), 47*cecbb93cSCathy Xu PIN(5, 0, 7, 0x12, 0x90), 48*cecbb93cSCathy Xu PIN(6, 0, 6, 0x21, 0xa0), 49*cecbb93cSCathy Xu PIN(7, 0, 7, 0x21, 0xa0), 50*cecbb93cSCathy Xu PIN(8, 0, 8, 0x21, 0xa0), 51*cecbb93cSCathy Xu PIN(9, 0, 9, 0x21, 0xa0), 52*cecbb93cSCathy Xu PIN(10, 0, 10, 0x21, 0xa0), 53*cecbb93cSCathy Xu PIN(11, 0, 11, 0x21, 0xa0), 54*cecbb93cSCathy Xu PIN(12, 0, 5, 0x14, 0xb0), 55*cecbb93cSCathy Xu PIN(13, 0, 6, 0x14, 0xb0), 56*cecbb93cSCathy Xu PIN(14, 0, 0, 0x25, 0xa0), 57*cecbb93cSCathy Xu PIN(15, 0, 1, 0x25, 0xa0), 58*cecbb93cSCathy Xu PIN(16, 0, 7, 0x14, 0xb0), 59*cecbb93cSCathy Xu PIN(17, 0, 8, 0x14, 0xb0), 60*cecbb93cSCathy Xu PIN(18, 0, 0, 0x21, 0xa0), 61*cecbb93cSCathy Xu PIN(19, 0, 2, 0x21, 0xa0), 62*cecbb93cSCathy Xu PIN(20, 0, 1, 0x21, 0xa0), 63*cecbb93cSCathy Xu PIN(21, 0, 3, 0x21, 0xa0), 64*cecbb93cSCathy Xu PIN(22, 0, 0, 0x28, 0x90), 65*cecbb93cSCathy Xu PIN(23, 0, 1, 0x28, 0x90), 66*cecbb93cSCathy Xu PIN(24, 0, 2, 0x28, 0x90), 67*cecbb93cSCathy Xu PIN(25, 0, 2, 0x10, 0x90), 68*cecbb93cSCathy Xu PIN(26, 0, 1, 0x10, 0x90), 69*cecbb93cSCathy Xu PIN(27, 0, 1, 0x14, 0xb0), 70*cecbb93cSCathy Xu PIN(28, 0, 2, 0x14, 0xb0), 71*cecbb93cSCathy Xu PIN(29, 0, 0, 0x10, 0x90), 72*cecbb93cSCathy Xu PIN(30, 0, 0, 0x14, 0xb0), 73*cecbb93cSCathy Xu PIN(31, 0, 13, 0x25, 0xa0), 74*cecbb93cSCathy Xu PIN(32, 0, 30, 0x13, 0x90), 75*cecbb93cSCathy Xu PIN(33, 0, 15, 0x25, 0xa0), 76*cecbb93cSCathy Xu PIN(34, 0, 14, 0x25, 0xa0), 77*cecbb93cSCathy Xu PIN(35, 0, 17, 0x25, 0xa0), 78*cecbb93cSCathy Xu PIN(36, 0, 16, 0x25, 0xa0), 79*cecbb93cSCathy Xu PIN(37, 0, 19, 0x25, 0xa0), 80*cecbb93cSCathy Xu PIN(38, 0, 18, 0x25, 0xa0), 81*cecbb93cSCathy Xu PIN(39, 0, 5, 0x25, 0xa0), 82*cecbb93cSCathy Xu PIN(40, 0, 2, 0x25, 0xa0), 83*cecbb93cSCathy Xu PIN(41, 0, 3, 0x25, 0xa0), 84*cecbb93cSCathy Xu PIN(42, 0, 4, 0x25, 0xa0), 85*cecbb93cSCathy Xu PIN(43, 0, 6, 0x25, 0xa0), 86*cecbb93cSCathy Xu PIN(44, 1, 0, 0x21, 0x90), 87*cecbb93cSCathy Xu PIN(45, 1, 1, 0x21, 0x90), 88*cecbb93cSCathy Xu PIN(46, 1, 2, 0x21, 0x90), 89*cecbb93cSCathy Xu PIN(47, 1, 3, 0x21, 0x90), 90*cecbb93cSCathy Xu PIN(48, 0, 5, 0x10, 0x90), 91*cecbb93cSCathy Xu PIN(49, 0, 4, 0x10, 0x90), 92*cecbb93cSCathy Xu PIN(50, 0, 3, 0x10, 0x90), 93*cecbb93cSCathy Xu PIN(51, 0, 8, 0x12, 0x90), 94*cecbb93cSCathy Xu PIN(52, 0, 10, 0x12, 0x90), 95*cecbb93cSCathy Xu PIN(53, 0, 9, 0x12, 0x90), 96*cecbb93cSCathy Xu PIN(54, 0, 11, 0x12, 0x90), 97*cecbb93cSCathy Xu PIN(55, 0, 6, 0x10, 0x90), 98*cecbb93cSCathy Xu PIN(56, 0, 7, 0x10, 0x90), 99*cecbb93cSCathy Xu PIN(57, 0, 13, 0x14, 0xb0), 100*cecbb93cSCathy Xu PIN(58, 0, 17, 0x14, 0xb0), 101*cecbb93cSCathy Xu PIN(59, 0, 14, 0x14, 0xb0), 102*cecbb93cSCathy Xu PIN(60, 0, 18, 0x14, 0xb0), 103*cecbb93cSCathy Xu PIN(61, 0, 15, 0x14, 0xb0), 104*cecbb93cSCathy Xu PIN(62, 0, 19, 0x14, 0xb0), 105*cecbb93cSCathy Xu PIN(63, 0, 16, 0x14, 0xb0), 106*cecbb93cSCathy Xu PIN(64, 0, 20, 0x14, 0xb0), 107*cecbb93cSCathy Xu PIN(65, 0, 4, 0x28, 0x90), 108*cecbb93cSCathy Xu PIN(66, 0, 6, 0x28, 0x90), 109*cecbb93cSCathy Xu PIN(67, 0, 5, 0x28, 0x90), 110*cecbb93cSCathy Xu PIN(68, 0, 7, 0x28, 0x90), 111*cecbb93cSCathy Xu PIN(69, 0, 22, 0x14, 0xb0), 112*cecbb93cSCathy Xu PIN(70, 0, 21, 0x14, 0xb0), 113*cecbb93cSCathy Xu PIN(71, 0, 24, 0x14, 0xb0), 114*cecbb93cSCathy Xu PIN(72, 0, 23, 0x14, 0xb0), 115*cecbb93cSCathy Xu PIN(73, 0, 26, 0x14, 0xb0), 116*cecbb93cSCathy Xu PIN(74, 0, 25, 0x14, 0xb0), 117*cecbb93cSCathy Xu PIN(75, 0, 7, 0x25, 0xa0), 118*cecbb93cSCathy Xu PIN(76, 0, 27, 0x14, 0xb0), 119*cecbb93cSCathy Xu PIN(77, 0, 13, 0x12, 0x90), 120*cecbb93cSCathy Xu PIN(78, 0, 12, 0x12, 0x90), 121*cecbb93cSCathy Xu PIN(79, 0, 15, 0x12, 0x90), 122*cecbb93cSCathy Xu PIN(80, 0, 14, 0x12, 0x90), 123*cecbb93cSCathy Xu PIN(81, 0, 29, 0x14, 0xb0), 124*cecbb93cSCathy Xu PIN(82, 0, 28, 0x14, 0xb0), 125*cecbb93cSCathy Xu PIN(83, 0, 30, 0x14, 0xb0), 126*cecbb93cSCathy Xu PIN(84, 0, 22, 0x21, 0xa0), 127*cecbb93cSCathy Xu PIN(85, 0, 23, 0x21, 0xa0), 128*cecbb93cSCathy Xu PIN(86, 0, 24, 0x21, 0xa0), 129*cecbb93cSCathy Xu PIN(87, 0, 25, 0x21, 0xa0), 130*cecbb93cSCathy Xu PIN(88, 0, 11, 0x26, 0xb0), 131*cecbb93cSCathy Xu PIN(89, 0, 10, 0x26, 0xb0), 132*cecbb93cSCathy Xu PIN(90, 0, 13, 0x26, 0xb0), 133*cecbb93cSCathy Xu PIN(91, 0, 12, 0x26, 0xb0), 134*cecbb93cSCathy Xu PIN(92, 0, 7, 0x26, 0xb0), 135*cecbb93cSCathy Xu PIN(93, 0, 8, 0x26, 0xb0), 136*cecbb93cSCathy Xu PIN(94, 0, 14, 0x26, 0xb0), 137*cecbb93cSCathy Xu PIN(95, 0, 6, 0x26, 0xb0), 138*cecbb93cSCathy Xu PIN(96, 0, 9, 0x26, 0xb0), 139*cecbb93cSCathy Xu PIN(97, 0, 0, 0x26, 0xb0), 140*cecbb93cSCathy Xu PIN(98, 0, 5, 0x26, 0xb0), 141*cecbb93cSCathy Xu PIN(99, 0, 3, 0x26, 0xb0), 142*cecbb93cSCathy Xu PIN(100, 0, 4, 0x26, 0xb0), 143*cecbb93cSCathy Xu PIN(101, 0, 1, 0x26, 0xb0), 144*cecbb93cSCathy Xu PIN(102, 0, 2, 0x26, 0xb0), 145*cecbb93cSCathy Xu PIN(103, 0, 15, 0x21, 0xa0), 146*cecbb93cSCathy Xu PIN(104, 0, 12, 0x21, 0xa0), 147*cecbb93cSCathy Xu PIN(105, 0, 14, 0x21, 0xa0), 148*cecbb93cSCathy Xu PIN(106, 0, 13, 0x21, 0xa0), 149*cecbb93cSCathy Xu PIN(107, 0, 19, 0x21, 0xa0), 150*cecbb93cSCathy Xu PIN(108, 0, 16, 0x21, 0xa0), 151*cecbb93cSCathy Xu PIN(109, 0, 18, 0x21, 0xa0), 152*cecbb93cSCathy Xu PIN(110, 0, 17, 0x21, 0xa0), 153*cecbb93cSCathy Xu PIN(111, 0, 4, 0x21, 0xa0), 154*cecbb93cSCathy Xu PIN(112, 0, 0, 0x12, 0x90), 155*cecbb93cSCathy Xu PIN(113, 0, 1, 0x12, 0x90), 156*cecbb93cSCathy Xu PIN(114, 0, 2, 0x12, 0x90), 157*cecbb93cSCathy Xu PIN(115, 0, 9, 0x14, 0xb0), 158*cecbb93cSCathy Xu PIN(116, 0, 12, 0x14, 0xb0), 159*cecbb93cSCathy Xu PIN(117, 0, 10, 0x14, 0xb0), 160*cecbb93cSCathy Xu PIN(118, 0, 11, 0x14, 0xb0), 161*cecbb93cSCathy Xu PIN(119, 0, 26, 0x13, 0x90), 162*cecbb93cSCathy Xu PIN(120, 0, 25, 0x13, 0x90), 163*cecbb93cSCathy Xu PIN(121, 0, 24, 0x13, 0x90), 164*cecbb93cSCathy Xu PIN(122, 0, 23, 0x13, 0x90), 165*cecbb93cSCathy Xu PIN(123, 0, 19, 0x13, 0x90), 166*cecbb93cSCathy Xu PIN(124, 0, 18, 0x13, 0x90), 167*cecbb93cSCathy Xu PIN(125, 0, 17, 0x13, 0x90), 168*cecbb93cSCathy Xu PIN(126, 0, 16, 0x13, 0x90), 169*cecbb93cSCathy Xu PIN(127, 0, 22, 0x13, 0x90), 170*cecbb93cSCathy Xu PIN(128, 0, 15, 0x13, 0x90), 171*cecbb93cSCathy Xu PIN(129, 0, 20, 0x13, 0x90), 172*cecbb93cSCathy Xu PIN(130, 0, 27, 0x13, 0x90), 173*cecbb93cSCathy Xu PIN(131, 0, 13, 0x13, 0x90), 174*cecbb93cSCathy Xu PIN(132, 0, 14, 0x13, 0x90), 175*cecbb93cSCathy Xu PIN(133, 0, 28, 0x13, 0x90), 176*cecbb93cSCathy Xu PIN(134, 0, 21, 0x13, 0x90), 177*cecbb93cSCathy Xu PIN(135, 0, 11, 0x13, 0x90), 178*cecbb93cSCathy Xu PIN(136, 0, 12, 0x13, 0x90), 179*cecbb93cSCathy Xu PIN(137, 0, 3, 0x14, 0xb0), 180*cecbb93cSCathy Xu PIN(138, 0, 4, 0x14, 0xb0), 181*cecbb93cSCathy Xu PIN(139, 0, 3, 0x13, 0x90), 182*cecbb93cSCathy Xu PIN(140, 0, 4, 0x13, 0x90), 183*cecbb93cSCathy Xu PIN(141, 0, 0, 0x13, 0x90), 184*cecbb93cSCathy Xu PIN(142, 0, 1, 0x13, 0x90), 185*cecbb93cSCathy Xu PIN(143, 0, 2, 0x13, 0x90), 186*cecbb93cSCathy Xu PIN(144, 0, 5, 0x13, 0x90), 187*cecbb93cSCathy Xu PIN(145, 0, 6, 0x13, 0x90), 188*cecbb93cSCathy Xu PIN(146, 0, 7, 0x13, 0x90), 189*cecbb93cSCathy Xu PIN(147, 0, 8, 0x13, 0x90), 190*cecbb93cSCathy Xu PIN(148, 0, 9, 0x13, 0x90), 191*cecbb93cSCathy Xu PIN(149, 0, 10, 0x13, 0x90), 192*cecbb93cSCathy Xu PIN(150, 0, 8, 0x25, 0xa0), 193*cecbb93cSCathy Xu PIN(151, 0, 29, 0x13, 0x90), 194*cecbb93cSCathy Xu PIN(152, 0, 9, 0x25, 0xa0), 195*cecbb93cSCathy Xu PIN(153, 0, 10, 0x25, 0xa0), 196*cecbb93cSCathy Xu PIN(154, 0, 11, 0x25, 0xa0), 197*cecbb93cSCathy Xu PIN(155, 0, 12, 0x25, 0xa0), 198*cecbb93cSCathy Xu PIN(156, 1, 6, 0x26, 0xa0), 199*cecbb93cSCathy Xu PIN(157, 1, 5, 0x26, 0xa0), 200*cecbb93cSCathy Xu PIN(158, 1, 4, 0x26, 0xa0), 201*cecbb93cSCathy Xu PIN(159, 1, 2, 0x17, 0x50), 202*cecbb93cSCathy Xu PIN(160, 1, 8, 0x26, 0xa0), 203*cecbb93cSCathy Xu PIN(161, 1, 1, 0x26, 0xa0), 204*cecbb93cSCathy Xu PIN(162, 1, 0, 0x26, 0xa0), 205*cecbb93cSCathy Xu PIN(163, 1, 1, 0x17, 0x50), 206*cecbb93cSCathy Xu PIN(164, 1, 3, 0x26, 0xa0), 207*cecbb93cSCathy Xu PIN(165, 1, 2, 0x26, 0xa0), 208*cecbb93cSCathy Xu PIN(166, 1, 0, 0x17, 0x50), 209*cecbb93cSCathy Xu PIN(167, 1, 7, 0x26, 0xa0), 210*cecbb93cSCathy Xu PIN(168, 1, 1, 0x25, 0x90), 211*cecbb93cSCathy Xu PIN(169, 1, 0, 0x25, 0x90), 212*cecbb93cSCathy Xu PIN(170, 1, 2, 0x25, 0x90), 213*cecbb93cSCathy Xu PIN(171, 1, 3, 0x25, 0x90), 214*cecbb93cSCathy Xu PIN(172, 1, 4, 0x25, 0x90), 215*cecbb93cSCathy Xu PIN(173, 1, 5, 0x25, 0x90), 216*cecbb93cSCathy Xu PIN(174, 1, 1, 0x28, 0x80), 217*cecbb93cSCathy Xu PIN(175, 1, 0, 0x28, 0x80), 218*cecbb93cSCathy Xu PIN(176, 1, 2, 0x28, 0x80), 219*cecbb93cSCathy Xu PIN(177, 1, 3, 0x28, 0x80), 220*cecbb93cSCathy Xu PIN(178, 1, 4, 0x28, 0x80), 221*cecbb93cSCathy Xu PIN(179, 1, 5, 0x28, 0x80), 222*cecbb93cSCathy Xu PIN(180, 0, 15, 0x26, 0xb0), 223*cecbb93cSCathy Xu PIN(181, 0, 16, 0x26, 0xb0), 224*cecbb93cSCathy Xu PIN(182, 0, 3, 0x28, 0x90), 225*cecbb93cSCathy Xu }; 226*cecbb93cSCathy Xu 227*cecbb93cSCathy Xu #endif /* MT_GPIO_H */ 228