Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * Copyright (c) 2022 Collabora Ltd.
0004  * Author: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
0005  */
0006 
0007 #include "pinctrl-mtk-mt6795.h"
0008 #include "pinctrl-paris.h"
0009 
0010 #define PIN_FIELD15(_s_pin, _e_pin, _s_addr, _x_addrs, _s_bit, _x_bits) \
0011     PIN_FIELD_CALC(_s_pin, _e_pin, 0, _s_addr, _x_addrs, _s_bit,    \
0012                _x_bits, 15, 0)
0013 
0014 #define PIN_FIELD16(_s_pin, _e_pin, _s_addr, _x_addrs, _s_bit, _x_bits) \
0015     PIN_FIELD_CALC(_s_pin, _e_pin, 0, _s_addr, _x_addrs, _s_bit,    \
0016                _x_bits, 16, 0)
0017 
0018 #define PINS_FIELD16(_s_pin, _e_pin, _s_addr, _x_addrs, _s_bit, _x_bits)\
0019     PIN_FIELD_CALC(_s_pin, _e_pin, 0, _s_addr, _x_addrs, _s_bit,    \
0020                _x_bits, 16, 1)
0021 
0022 static const struct mtk_pin_field_calc mt6795_pin_dir_range[] = {
0023     PIN_FIELD16(0, 196, 0x0, 0x10, 0, 1),
0024 };
0025 
0026 static const struct mtk_pin_field_calc mt6795_pin_pullen_range[] = {
0027     PIN_FIELD16(0, 196, 0x100, 0x10, 0, 1),
0028 };
0029 
0030 static const struct mtk_pin_field_calc mt6795_pin_pullsel_range[] = {
0031     PIN_FIELD16(0, 196, 0x200, 0x10, 0, 1),
0032 };
0033 
0034 static const struct mtk_pin_field_calc mt6795_pin_do_range[] = {
0035     PIN_FIELD16(0, 196, 0x400, 0x10, 0, 1),
0036 };
0037 
0038 static const struct mtk_pin_field_calc mt6795_pin_di_range[] = {
0039     PIN_FIELD16(0, 196, 0x500, 0x10, 0, 1),
0040 };
0041 
0042 static const struct mtk_pin_field_calc mt6795_pin_mode_range[] = {
0043     PIN_FIELD15(0, 196, 0x600, 0x10, 0, 3),
0044 };
0045 
0046 static const struct mtk_pin_field_calc mt6795_pin_ies_range[] = {
0047     PINS_FIELD16(0, 4, 0x900, 0x10, 1, 1),
0048     PINS_FIELD16(5, 9, 0x900, 0x10, 2, 1),
0049     PINS_FIELD16(10, 15, 0x900, 0x10, 10, 1),
0050     PINS_FIELD16(16, 16, 0x900, 0x10, 2, 1),
0051     PINS_FIELD16(17, 19, 0x910, 0x10, 3, 1),
0052     PINS_FIELD16(20, 22, 0x910, 0x10, 4, 1),
0053     PINS_FIELD16(23, 26, 0xce0, 0x10, 14, 1),
0054     PINS_FIELD16(27, 27, 0xcc0, 0x10, 14, 1),
0055     PINS_FIELD16(28, 28, 0xcd0, 0x10, 14, 1),
0056     PINS_FIELD16(29, 32, 0x900, 0x10, 3, 1),
0057     PINS_FIELD16(33, 33, 0x900, 0x10, 4, 1),
0058     PINS_FIELD16(34, 36, 0x900, 0x10, 5, 1),
0059     PINS_FIELD16(37, 38, 0x900, 0x10, 6, 1),
0060     PINS_FIELD16(39, 39, 0x900, 0x10, 7, 1),
0061     PINS_FIELD16(40, 40, 0x900, 0x10, 8, 1),
0062     PINS_FIELD16(41, 42, 0x900, 0x10, 9, 1),
0063     PINS_FIELD16(43, 46, 0x900, 0x10, 11, 1),
0064     PINS_FIELD16(47, 61, 0x920, 0x10, 3, 1),
0065     PINS_FIELD16(62, 66, 0x920, 0x10, 4, 1),
0066     PINS_FIELD16(67, 67, 0x920, 0x10, 3, 1),
0067     PINS_FIELD16(68, 72, 0x920, 0x10, 5, 1),
0068     PINS_FIELD16(73, 77, 0x920, 0x10, 6, 1),
0069     PINS_FIELD16(78, 91, 0x920, 0x10, 7, 1),
0070     PINS_FIELD16(92, 92, 0x900, 0x10, 13, 1),
0071     PINS_FIELD16(93, 95, 0x900, 0x10, 14, 1),
0072     PINS_FIELD16(96, 99, 0x900, 0x10, 15, 1),
0073     PINS_FIELD16(100, 103, 0xca0, 0x10, 14, 1),
0074     PINS_FIELD16(104, 104, 0xc80, 0x10, 14, 1),
0075     PINS_FIELD16(105, 105, 0xc90, 0x10, 14, 1),
0076     PINS_FIELD16(106, 107, 0x910, 0x10, 0, 1),
0077     PINS_FIELD16(108, 112, 0x910, 0x10, 1, 1),
0078     PINS_FIELD16(113, 116, 0x910, 0x10, 2, 1),
0079     PINS_FIELD16(117, 118, 0x910, 0x10, 5, 1),
0080     PINS_FIELD16(119, 124, 0x910, 0x10, 6, 1),
0081     PINS_FIELD16(125, 126, 0x910, 0x10, 7, 1),
0082     PINS_FIELD16(129, 129, 0x910, 0x10, 8, 1),
0083     PINS_FIELD16(130, 131, 0x910, 0x10, 9, 1),
0084     PINS_FIELD16(132, 135, 0x910, 0x10, 8, 1),
0085     PINS_FIELD16(136, 137, 0x910, 0x10, 7, 1),
0086     PINS_FIELD16(154, 161, 0xc20, 0x10, 14, 1),
0087     PINS_FIELD16(162, 162, 0xc10, 0x10, 14, 1),
0088     PINS_FIELD16(163, 163, 0xc00, 0x10, 14, 1),
0089     PINS_FIELD16(164, 164, 0xd10, 0x10, 14, 1),
0090     PINS_FIELD16(165, 165, 0xd00, 0x10, 14, 1),
0091     PINS_FIELD16(166, 169, 0x910, 0x10, 14, 1),
0092     PINS_FIELD16(176, 179, 0x910, 0x10, 15, 1),
0093     PINS_FIELD16(180, 180, 0x920, 0x10, 0, 1),
0094     PINS_FIELD16(181, 184, 0x920, 0x10, 1, 1),
0095     PINS_FIELD16(185, 191, 0x920, 0x10, 2, 1),
0096     PINS_FIELD16(192, 192, 0x920, 0x10, 8, 1),
0097     PINS_FIELD16(193, 194, 0x920, 0x10, 9, 1),
0098     PINS_FIELD16(195, 196, 0x920, 0x10, 8, 1),
0099 };
0100 
0101 static const struct mtk_pin_field_calc mt6795_pin_smt_range[] = {
0102     PINS_FIELD16(0, 4, 0x930, 0x10, 1, 1),
0103     PINS_FIELD16(5, 9, 0x930, 0x10, 2, 1),
0104     PINS_FIELD16(10, 15, 0x930, 0x10, 10, 1),
0105     PINS_FIELD16(16, 16, 0x930, 0x10, 2, 1),
0106     PINS_FIELD16(17, 19, 0x940, 0x10, 3, 1),
0107     PINS_FIELD16(20, 22, 0x940, 0x10, 4, 1),
0108     PINS_FIELD16(23, 26, 0xce0, 0x10, 13, 1),
0109     PINS_FIELD16(27, 27, 0xcc0, 0x10, 13, 1),
0110     PINS_FIELD16(28, 28, 0xcd0, 0x10, 13, 1),
0111     PINS_FIELD16(29, 32, 0x930, 0x10, 3, 1),
0112     PINS_FIELD16(33, 33, 0x930, 0x10, 4, 1),
0113     PINS_FIELD16(34, 36, 0x930, 0x10, 5, 1),
0114     PINS_FIELD16(37, 38, 0x930, 0x10, 6, 1),
0115     PINS_FIELD16(39, 39, 0x930, 0x10, 7, 1),
0116     PINS_FIELD16(40, 40, 0x930, 0x10, 8, 1),
0117     PINS_FIELD16(41, 42, 0x930, 0x10, 9, 1),
0118     PINS_FIELD16(43, 46, 0x930, 0x10, 11, 1),
0119     PINS_FIELD16(47, 61, 0x950, 0x10, 3, 1),
0120     PINS_FIELD16(62, 66, 0x950, 0x10, 4, 1),
0121     PINS_FIELD16(67, 67, 0x950, 0x10, 3, 1),
0122     PINS_FIELD16(68, 72, 0x950, 0x10, 5, 1),
0123     PINS_FIELD16(73, 77, 0x950, 0x10, 6, 1),
0124     PINS_FIELD16(78, 91, 0x950, 0x10, 7, 1),
0125     PINS_FIELD16(92, 92, 0x930, 0x10, 13, 1),
0126     PINS_FIELD16(93, 95, 0x930, 0x10, 14, 1),
0127     PINS_FIELD16(96, 99, 0x930, 0x10, 15, 1),
0128     PINS_FIELD16(100, 103, 0xca0, 0x10, 13, 1),
0129     PINS_FIELD16(104, 104, 0xc80, 0x10, 13, 1),
0130     PINS_FIELD16(105, 105, 0xc90, 0x10, 13, 1),
0131     PINS_FIELD16(106, 107, 0x940, 0x10, 0, 1),
0132     PINS_FIELD16(108, 112, 0x940, 0x10, 1, 1),
0133     PINS_FIELD16(113, 116, 0x940, 0x10, 2, 1),
0134     PINS_FIELD16(117, 118, 0x940, 0x10, 5, 1),
0135     PINS_FIELD16(119, 124, 0x940, 0x10, 6, 1),
0136     PINS_FIELD16(125, 126, 0x940, 0x10, 7, 1),
0137     PINS_FIELD16(129, 129, 0x940, 0x10, 8, 1),
0138     PINS_FIELD16(130, 131, 0x940, 0x10, 9, 1),
0139     PINS_FIELD16(132, 135, 0x940, 0x10, 8, 1),
0140     PINS_FIELD16(136, 137, 0x940, 0x10, 7, 1),
0141     PINS_FIELD16(154, 161, 0xc20, 0x10, 13, 1),
0142     PINS_FIELD16(162, 162, 0xc10, 0x10, 13, 1),
0143     PINS_FIELD16(163, 163, 0xc00, 0x10, 13, 1),
0144     PINS_FIELD16(164, 164, 0xd10, 0x10, 13, 1),
0145     PINS_FIELD16(165, 165, 0xd00, 0x10, 13, 1),
0146     PINS_FIELD16(166, 169, 0x940, 0x10, 14, 1),
0147     PINS_FIELD16(176, 179, 0x940, 0x10, 15, 1),
0148     PINS_FIELD16(180, 180, 0x950, 0x10, 0, 1),
0149     PINS_FIELD16(181, 184, 0x950, 0x10, 1, 1),
0150     PINS_FIELD16(185, 191, 0x950, 0x10, 2, 1),
0151     PINS_FIELD16(192, 192, 0x950, 0x10, 8, 1),
0152     PINS_FIELD16(193, 194, 0x950, 0x10, 9, 1),
0153     PINS_FIELD16(195, 196, 0x950, 0x10, 8, 1),
0154 };
0155 
0156 
0157 static const struct mtk_pin_field_calc mt6795_pin_pupd_range[] = {
0158     /* KROW */
0159     PIN_FIELD16(119, 119, 0xe00, 0x10, 2, 1),   /* KROW0 */
0160     PIN_FIELD16(120, 120, 0xe00, 0x10, 6, 1),   /* KROW1 */
0161     PIN_FIELD16(121, 121, 0xe00, 0x10, 10, 1),  /* KROW2 */
0162     PIN_FIELD16(122, 122, 0xe10, 0x10, 2, 1),   /* KCOL0 */
0163     PIN_FIELD16(123, 123, 0xe10, 0x10, 6, 1),   /* KCOL1 */
0164     PIN_FIELD16(124, 124, 0xe10, 0x10, 10, 1),  /* KCOL2 */
0165 
0166     /* DPI */
0167     PIN_FIELD16(138, 138, 0xd50, 0x10, 2, 1),   /* CK */
0168     PIN_FIELD16(139, 139, 0xd60, 0x10, 1, 1),   /* DE */
0169     PIN_FIELD16(140, 140, 0xd70, 0x10, 1, 1),   /* data0 */
0170     PIN_FIELD16(141, 141, 0xd70, 0x10, 3, 1),   /* data1 */
0171     PIN_FIELD16(142, 142, 0xd70, 0x10, 5, 1),   /* data2 */
0172     PIN_FIELD16(143, 143, 0xd70, 0x10, 7, 1),   /* data3 */
0173     PIN_FIELD16(144, 144, 0xd50, 0x10, 5, 1),   /* data4 */
0174     PIN_FIELD16(145, 145, 0xd50, 0x10, 7, 1),   /* data5 */
0175     PIN_FIELD16(146, 146, 0xd60, 0x10, 7, 1),   /* data6 */
0176     PIN_FIELD16(147, 147, 0xed0, 0x10, 6, 1),   /* data7 */
0177     PIN_FIELD16(148, 148, 0xed0, 0x10, 8, 1),   /* data8 */
0178     PIN_FIELD16(149, 149, 0xed0, 0x10, 10, 1),  /* data9 */
0179     PIN_FIELD16(150, 150, 0xed0, 0x10, 12, 1),  /* data10 */
0180     PIN_FIELD16(151, 151, 0xed0, 0x10, 14, 1),  /* data11 */
0181     PIN_FIELD16(152, 152, 0xd60, 0x10, 3, 1),   /* hsync */
0182     PIN_FIELD16(153, 153, 0xd60, 0x10, 5, 1),   /* vsync */
0183 
0184     /* MSDC0 */
0185     PIN_FIELD16(154, 154, 0xc20, 0x10, 2, 1),   /* DATA 0-7 */
0186     PIN_FIELD16(155, 155, 0xc20, 0x10, 2, 1),   /* DATA 0-7 */
0187     PIN_FIELD16(156, 156, 0xc20, 0x10, 2, 1),   /* DATA 0-7 */
0188     PIN_FIELD16(157, 157, 0xc20, 0x10, 2, 1),   /* DATA 0-7 */
0189     PIN_FIELD16(158, 158, 0xc20, 0x10, 2, 1),   /* DATA 0-7 */
0190     PIN_FIELD16(159, 159, 0xc20, 0x10, 2, 1),   /* DATA 0-7 */
0191     PIN_FIELD16(160, 160, 0xc20, 0x10, 2, 1),   /* DATA 0-7 */
0192     PIN_FIELD16(161, 161, 0xc20, 0x10, 2, 1),   /* DATA 0-7 */
0193     PIN_FIELD16(162, 162, 0xc10, 0x10, 2, 1),   /* CMD */
0194     PIN_FIELD16(163, 163, 0xc00, 0x10, 2, 1),   /* CLK */
0195     PIN_FIELD16(164, 164, 0xd10, 0x10, 2, 1),   /* DS  */
0196     PIN_FIELD16(165, 165, 0xd00, 0x10, 2, 1),   /* RST */
0197 
0198     /* MSDC1 */
0199     PIN_FIELD16(170, 170, 0xc50, 0x10, 2, 1),   /* CMD */
0200     PIN_FIELD16(171, 171, 0xd20, 0x10, 2, 1),   /* DAT0 */
0201     PIN_FIELD16(172, 172, 0xd20, 0x10, 6, 1),   /* DAT1 */
0202     PIN_FIELD16(173, 173, 0xd20, 0x10, 10, 1),  /* DAT2 */
0203     PIN_FIELD16(174, 174, 0xd20, 0x10, 14, 1),  /* DAT3 */
0204     PIN_FIELD16(175, 175, 0xc40, 0x10, 2, 1),   /* CLK */
0205 
0206     /* MSDC2 */
0207     PIN_FIELD16(100, 100, 0xd30, 0x10, 2, 1),   /* DAT0 */
0208     PIN_FIELD16(101, 101, 0xd30, 0x10, 6, 1),   /* DAT1 */
0209     PIN_FIELD16(102, 102, 0xd30, 0x10, 10, 1),  /* DAT2 */
0210     PIN_FIELD16(103, 103, 0xd30, 0x10, 14, 1),  /* DAT3 */
0211     PIN_FIELD16(104, 104, 0xc80, 0x10, 2, 1),   /* CLK */
0212     PIN_FIELD16(105, 105, 0xc90, 0x10, 2, 1),   /* CMD */
0213 
0214     /* MSDC3 */
0215     PIN_FIELD16(23, 23, 0xd40, 0x10, 2, 1),     /* DAT0 */
0216     PIN_FIELD16(24, 24, 0xd40, 0x10, 6, 5),     /* DAT1 */
0217     PIN_FIELD16(25, 25, 0xd40, 0x10, 10, 9),    /* DAT2 */
0218     PIN_FIELD16(26, 26, 0xd40, 0x10, 14, 13),   /* DAT3 */
0219     PIN_FIELD16(27, 27, 0xcc0, 0x10, 2, 1),     /* CLK */
0220     PIN_FIELD16(28, 28, 0xcd0, 0x10, 2, 1)      /* CMD */
0221 };
0222 
0223 static const struct mtk_pin_field_calc mt6795_pin_r0_range[] = {
0224     PIN_FIELD16(23, 23, 0xd40, 0x10, 0, 1),
0225     PIN_FIELD16(24, 24, 0xd40, 0x10, 4, 1),
0226     PIN_FIELD16(25, 25, 0xd40, 0x10, 8, 1),
0227     PIN_FIELD16(26, 26, 0xd40, 0x10, 12, 1),
0228     PIN_FIELD16(27, 27, 0xcc0, 0x10, 0, 1),
0229     PIN_FIELD16(28, 28, 0xcd0, 0x10, 0, 1),
0230     PIN_FIELD16(100, 100, 0xd30, 0x10, 0, 1),
0231     PIN_FIELD16(101, 101, 0xd30, 0x10, 4, 1),
0232     PIN_FIELD16(102, 102, 0xd30, 0x10, 8, 1),
0233     PIN_FIELD16(103, 103, 0xd30, 0x10, 12, 1),
0234     PIN_FIELD16(104, 104, 0xc80, 0x10, 0, 1),
0235     PIN_FIELD16(105, 105, 0xc90, 0x10, 0, 1),
0236     PIN_FIELD16(119, 119, 0xe00, 0x10, 0, 1),
0237     PIN_FIELD16(120, 120, 0xe00, 0x10, 4, 1),
0238     PIN_FIELD16(121, 121, 0xe00, 0x10, 8, 1),
0239     PIN_FIELD16(122, 122, 0xe10, 0x10, 0, 1),
0240     PIN_FIELD16(123, 123, 0xe10, 0x10, 4, 1),
0241     PIN_FIELD16(124, 124, 0xe10, 0x10, 8, 1),
0242     PIN_FIELD16(138, 138, 0xd50, 0x10, 0, 1),
0243     PIN_FIELD16(139, 139, 0xd60, 0x10, 0, 1),
0244     PIN_FIELD16(140, 140, 0xd70, 0x10, 0, 1),
0245     PIN_FIELD16(141, 141, 0xd70, 0x10, 1, 1),
0246     PIN_FIELD16(142, 142, 0xd70, 0x10, 3, 1),
0247     PIN_FIELD16(143, 143, 0xd70, 0x10, 5, 1),
0248     PIN_FIELD16(144, 144, 0xd50, 0x10, 3, 1),
0249     PIN_FIELD16(145, 145, 0xd50, 0x10, 5, 1),
0250     PIN_FIELD16(146, 146, 0xd60, 0x10, 5, 1),
0251     PIN_FIELD16(147, 147, 0xed0, 0x10, 4, 1),
0252     PIN_FIELD16(148, 148, 0xed0, 0x10, 6, 1),
0253     PIN_FIELD16(149, 149, 0xed0, 0x10, 8, 1),
0254     PIN_FIELD16(150, 150, 0xed0, 0x10, 10, 1),
0255     PIN_FIELD16(151, 151, 0xed0, 0x10, 12, 1),
0256     PIN_FIELD16(152, 152, 0xd60, 0x10, 1, 1),
0257     PIN_FIELD16(153, 153, 0xd60, 0x10, 3, 1),
0258     PIN_FIELD16(154, 155, 0xc20, 0x10, 0, 1),
0259     PIN_FIELD16(155, 156, 0xc20, 0x10, 0, 1),
0260     PIN_FIELD16(156, 157, 0xc20, 0x10, 0, 1),
0261     PIN_FIELD16(157, 158, 0xc20, 0x10, 0, 1),
0262     PIN_FIELD16(158, 159, 0xc20, 0x10, 0, 1),
0263     PIN_FIELD16(159, 160, 0xc20, 0x10, 0, 1),
0264     PIN_FIELD16(160, 161, 0xc20, 0x10, 0, 1),
0265     PIN_FIELD16(161, 161, 0xc20, 0x10, 0, 1),
0266     PIN_FIELD16(162, 162, 0xc10, 0x10, 0, 1),
0267     PIN_FIELD16(163, 163, 0xc00, 0x10, 0, 1),
0268     PIN_FIELD16(164, 164, 0xd10, 0x10, 0, 1),
0269     PIN_FIELD16(165, 165, 0xd00, 0x10, 0, 1),
0270     PIN_FIELD16(170, 170, 0xc50, 0x10, 0, 1),
0271     PIN_FIELD16(171, 171, 0xd20, 0x10, 0, 1),
0272     PIN_FIELD16(172, 172, 0xd20, 0x10, 4, 1),
0273     PIN_FIELD16(173, 173, 0xd20, 0x10, 8, 1),
0274     PIN_FIELD16(174, 174, 0xd20, 0x10, 12, 1),
0275     PIN_FIELD16(175, 175, 0xc40, 0x10, 0, 1),
0276 };
0277 
0278 static const struct mtk_pin_field_calc mt6795_pin_r1_range[] = {
0279     PIN_FIELD16(23, 23, 0xd40, 0x10, 1, 1),
0280     PIN_FIELD16(24, 24, 0xd40, 0x10, 5, 1),
0281     PIN_FIELD16(25, 25, 0xd40, 0x10, 9, 1),
0282     PIN_FIELD16(26, 26, 0xd40, 0x10, 13, 1),
0283     PIN_FIELD16(27, 27, 0xcc0, 0x10, 1, 1),
0284     PIN_FIELD16(28, 28, 0xcd0, 0x10, 1, 1),
0285     PIN_FIELD16(100, 100, 0xd30, 0x10, 1, 1),
0286     PIN_FIELD16(101, 101, 0xd30, 0x10, 5, 1),
0287     PIN_FIELD16(102, 102, 0xd30, 0x10, 9, 1),
0288     PIN_FIELD16(103, 103, 0xd30, 0x10, 13, 1),
0289     PIN_FIELD16(104, 104, 0xc80, 0x10, 1, 1),
0290     PIN_FIELD16(105, 105, 0xc90, 0x10, 1, 1),
0291     PIN_FIELD16(119, 119, 0xe00, 0x10, 1, 1),
0292     PIN_FIELD16(120, 120, 0xe00, 0x10, 5, 1),
0293     PIN_FIELD16(121, 121, 0xe00, 0x10, 9, 1),
0294     PIN_FIELD16(122, 122, 0xe10, 0x10, 1, 1),
0295     PIN_FIELD16(123, 123, 0xe10, 0x10, 5, 1),
0296     PIN_FIELD16(124, 124, 0xe10, 0x10, 9, 1),
0297     PIN_FIELD16(138, 138, 0xd50, 0x10, 1, 1),
0298     PIN_FIELD16(139, 139, 0xd60, 0x10, 0, 1),
0299     PIN_FIELD16(140, 140, 0xd70, 0x10, 0, 1),
0300     PIN_FIELD16(141, 141, 0xd70, 0x10, 2, 1),
0301     PIN_FIELD16(142, 142, 0xd70, 0x10, 4, 1),
0302     PIN_FIELD16(143, 143, 0xd70, 0x10, 6, 1),
0303     PIN_FIELD16(144, 144, 0xd50, 0x10, 4, 1),
0304     PIN_FIELD16(145, 145, 0xd50, 0x10, 6, 1),
0305     PIN_FIELD16(146, 146, 0xd60, 0x10, 6, 1),
0306     PIN_FIELD16(147, 147, 0xed0, 0x10, 5, 1),
0307     PIN_FIELD16(148, 148, 0xed0, 0x10, 7, 1),
0308     PIN_FIELD16(149, 149, 0xed0, 0x10, 9, 1),
0309     PIN_FIELD16(150, 150, 0xed0, 0x10, 11, 1),
0310     PIN_FIELD16(151, 151, 0xed0, 0x10, 13, 1),
0311     PIN_FIELD16(152, 152, 0xd60, 0x10, 2, 1),
0312     PIN_FIELD16(153, 153, 0xd60, 0x10, 4, 1),
0313     PIN_FIELD16(154, 155, 0xc20, 0x10, 1, 1),
0314     PIN_FIELD16(155, 156, 0xc20, 0x10, 1, 1),
0315     PIN_FIELD16(156, 157, 0xc20, 0x10, 1, 1),
0316     PIN_FIELD16(157, 158, 0xc20, 0x10, 1, 1),
0317     PIN_FIELD16(158, 159, 0xc20, 0x10, 1, 1),
0318     PIN_FIELD16(159, 160, 0xc20, 0x10, 1, 1),
0319     PIN_FIELD16(160, 161, 0xc20, 0x10, 1, 1),
0320     PIN_FIELD16(161, 161, 0xc20, 0x10, 1, 1),
0321     PIN_FIELD16(162, 162, 0xc10, 0x10, 1, 1),
0322     PIN_FIELD16(163, 163, 0xc00, 0x10, 1, 1),
0323     PIN_FIELD16(164, 164, 0xd10, 0x10, 1, 1),
0324     PIN_FIELD16(165, 165, 0xd00, 0x10, 1, 1),
0325     PIN_FIELD16(170, 170, 0xc50, 0x10, 1, 1),
0326     PIN_FIELD16(171, 171, 0xd20, 0x10, 1, 1),
0327     PIN_FIELD16(172, 172, 0xd20, 0x10, 5, 1),
0328     PIN_FIELD16(173, 173, 0xd20, 0x10, 9, 1),
0329     PIN_FIELD16(174, 174, 0xd20, 0x10, 13, 1),
0330     PIN_FIELD16(175, 175, 0xc40, 0x10, 1, 1),
0331 };
0332 
0333 static const struct mtk_pin_field_calc mt6795_pin_drv_range[] = {
0334     PINS_FIELD16(0, 4, 0xb30, 0x10, 13, 2),
0335     PINS_FIELD16(5, 9, 0xb30, 0x10, 1, 2),
0336     PINS_FIELD16(10, 15, 0xb30, 0x10, 5, 2),
0337     PIN_FIELD16(16, 16, 0xb30, 0x10, 1, 2),
0338     PINS_FIELD16(17, 19, 0xb70, 0x10, 5, 2),
0339     PINS_FIELD16(20, 22, 0xb70, 0x10, 9, 2),
0340     PINS_FIELD16(23, 26, 0xce0, 0x10, 8, 2),
0341     PIN_FIELD16(27, 27, 0xcc0, 0x10, 8, 2),
0342     PIN_FIELD16(28, 28, 0xcd0, 0x10, 8, 2),
0343     PINS_FIELD16(29, 32, 0xb80, 0x10, 13, 2),
0344     PIN_FIELD16(33, 33, 0xb10, 0x10, 13, 2),
0345     PINS_FIELD16(34, 36, 0xb10, 0x10, 9, 2),
0346     PINS_FIELD16(37, 38, 0xb10, 0x10, 5, 2),
0347     PIN_FIELD16(39, 39, 0xb20, 0x10, 1, 2),
0348     PIN_FIELD16(40, 40, 0xb20, 0x10, 5, 2),
0349     PINS_FIELD16(41, 42, 0xb20, 0x10, 9, 2),
0350     PINS_FIELD16(47, 61, 0xb00, 0x10, 9, 2),
0351     PINS_FIELD16(62, 66, 0xb70, 0x10, 1, 2),
0352     PINS_FIELD16(67, 67, 0xb00, 0x10, 9, 2),
0353     PINS_FIELD16(68, 72, 0xb60, 0x10, 13, 2),
0354     PINS_FIELD16(73, 77, 0xb40, 0x10, 13, 2),
0355     PIN_FIELD16(78, 78, 0xb00, 0x10, 12, 3),
0356     PINS_FIELD16(79, 91, 0xb00, 0x10, 13, 2),
0357     PIN_FIELD16(92, 92, 0xb60, 0x10, 5, 2),
0358     PINS_FIELD16(93, 95, 0xb60, 0x10, 1, 2),
0359     PINS_FIELD16(96, 99, 0xb80, 0x10, 9, 2),
0360     PINS_FIELD16(100, 103, 0xca0, 0x10, 8, 2),
0361     PIN_FIELD16(104, 104, 0xc80, 0x10, 8, 2),
0362     PIN_FIELD16(105, 105, 0xc90, 0x10, 8, 2),
0363     PINS_FIELD16(106, 107, 0xb50, 0x10, 9, 2),
0364     PINS_FIELD16(108, 112, 0xb50, 0x10, 1, 2),
0365     PINS_FIELD16(113, 116, 0xb80, 0x10, 5, 2),
0366     PINS_FIELD16(117, 118, 0xb90, 0x10, 1, 2),
0367     PINS_FIELD16(119, 124, 0xb50, 0x10, 5, 2),
0368     PIN_FIELD16(127, 127, 0xb70, 0x10, 5, 2),
0369     PIN_FIELD16(128, 128, 0xb70, 0x10, 9, 2),
0370     PIN_FIELD16(129, 129, 0xb40, 0x10, 9, 2),
0371     PINS_FIELD16(130, 131, 0xb40, 0x10, 13, 2),
0372     PINS_FIELD16(132, 135, 0xb40, 0x10, 9, 2),
0373     PIN_FIELD16(138, 138, 0xb50, 0x10, 8, 2),
0374     PIN_FIELD16(139, 139, 0xb60, 0x10, 8, 2),
0375     PINS_FIELD16(140, 151, 0xb70, 0x10, 8, 2),
0376     PINS_FIELD16(152, 153, 0xb60, 0x10, 8, 2),
0377     PINS_FIELD16(153, 153, 0xb60, 0x10, 8, 2),
0378     PINS_FIELD16(154, 161, 0xc20, 0x10, 8, 2),
0379     PIN_FIELD16(162, 162, 0xc10, 0x10, 8, 2),
0380     PIN_FIELD16(163, 163, 0xc00, 0x10, 8, 2),
0381     PIN_FIELD16(164, 164, 0xd10, 0x10, 8, 2),
0382     PIN_FIELD16(165, 165, 0xd00, 0x10, 8, 2),
0383     PINS_FIELD16(166, 169, 0xb80, 0x10, 1, 2),
0384     PINS_FIELD16(170, 173, 0xc60, 0x10, 8, 2),
0385     PIN_FIELD16(174, 174, 0xc40, 0x10, 8, 2),
0386     PIN_FIELD16(175, 175, 0xc50, 0x10, 8, 2),
0387     PINS_FIELD16(176, 179, 0xb70, 0x10, 13, 2),
0388     PIN_FIELD16(180, 180, 0xb00, 0x10, 5, 2),
0389     PINS_FIELD16(181, 184, 0xb00, 0x10, 1, 2),
0390     PINS_FIELD16(185, 191, 0xb60, 0x10, 9, 2),
0391     PIN_FIELD16(192, 192, 0xb40, 0x10, 1, 2),
0392     PINS_FIELD16(193, 194, 0xb40, 0x10, 5, 2),
0393     PINS_FIELD16(195, 196, 0xb40, 0x10, 1, 2),
0394 };
0395 
0396 static const struct mtk_pin_field_calc mt6795_pin_sr_range[] = {
0397     PINS_FIELD16(0, 4, 0xb30, 0x10, 15, 1),
0398     PINS_FIELD16(5, 9, 0xb30, 0x10, 3, 1),
0399     PINS_FIELD16(10, 15, 0xb30, 0x10, 7, 1),
0400     PIN_FIELD16(16, 16, 0xb30, 0x10, 5, 1),
0401     PINS_FIELD16(23, 26, 0xce0, 0x10, 12, 1),
0402     PIN_FIELD16(27, 27, 0xcc0, 0x10, 12, 1),
0403     PIN_FIELD16(28, 28, 0xcd0, 0x10, 12, 1),
0404     PINS_FIELD16(29, 32, 0xb80, 0x10, 15, 1),
0405     PIN_FIELD16(33, 33, 0xb10, 0x10, 15, 1),
0406     PINS_FIELD16(34, 36, 0xb10, 0x10, 11, 1),
0407     PINS_FIELD16(37, 38, 0xb10, 0x10, 7, 1),
0408     PIN_FIELD16(39, 39, 0xb20, 0x10, 3, 1),
0409     PIN_FIELD16(40, 40, 0xb20, 0x10, 7, 1),
0410     PINS_FIELD16(41, 42, 0xb20, 0x10, 11, 1),
0411     PINS_FIELD16(47, 61, 0xb00, 0x10, 11, 1),
0412     PINS_FIELD16(62, 66, 0xb70, 0x10, 3, 1),
0413     PINS_FIELD16(67, 67, 0xb00, 0x10, 11, 1),
0414     PINS_FIELD16(68, 72, 0xb60, 0x10, 15, 1),
0415     PINS_FIELD16(73, 77, 0xb40, 0x10, 15, 1),
0416     PIN_FIELD16(78, 78, 0xb00, 0x10, 15, 3),
0417     PINS_FIELD16(79, 91, 0xb00, 0x10, 15, 1),
0418     PIN_FIELD16(92, 92, 0xb60, 0x10, 7, 1),
0419     PINS_FIELD16(93, 95, 0xb60, 0x10, 3, 1),
0420     PINS_FIELD16(96, 99, 0xb80, 0x10, 11, 1),
0421     PINS_FIELD16(100, 103, 0xca0, 0x10, 12, 1),
0422     PIN_FIELD16(104, 104, 0xc80, 0x10, 12, 1),
0423     PIN_FIELD16(105, 105, 0xc90, 0x10, 12, 1),
0424     PINS_FIELD16(106, 107, 0xb50, 0x10, 11, 1),
0425     PINS_FIELD16(108, 112, 0xb50, 0x10, 3, 1),
0426     PINS_FIELD16(113, 116, 0xb80, 0x10, 7, 1),
0427     PINS_FIELD16(117, 118, 0xb90, 0x10, 3, 1),
0428     PINS_FIELD16(119, 124, 0xb50, 0x10, 7, 1),
0429     PIN_FIELD16(127, 127, 0xb70, 0x10, 7, 1),
0430     PIN_FIELD16(128, 128, 0xb70, 0x10, 11, 1),
0431     PIN_FIELD16(129, 129, 0xb40, 0x10, 11, 1),
0432     PINS_FIELD16(130, 131, 0xb40, 0x10, 15, 1),
0433     PINS_FIELD16(132, 135, 0xb40, 0x10, 11, 1),
0434     PIN_FIELD16(138, 138, 0xb50, 0x10, 12, 1),
0435     PIN_FIELD16(139, 139, 0xb60, 0x10, 12, 1),
0436     PINS_FIELD16(140, 151, 0xb70, 0x10, 12, 1),
0437     PINS_FIELD16(152, 153, 0xb60, 0x10, 12, 1),
0438     PINS_FIELD16(153, 153, 0xb60, 0x10, 12, 1),
0439     PINS_FIELD16(154, 161, 0xc20, 0x10, 12, 1),
0440     PIN_FIELD16(162, 162, 0xc10, 0x10, 12, 1),
0441     PIN_FIELD16(163, 163, 0xc00, 0x10, 12, 1),
0442     PIN_FIELD16(164, 164, 0xd10, 0x10, 12, 1),
0443     PIN_FIELD16(165, 165, 0xd00, 0x10, 12, 1),
0444     PINS_FIELD16(166, 169, 0xb80, 0x10, 3, 1),
0445     PINS_FIELD16(170, 173, 0xc60, 0x10, 12, 1),
0446     PIN_FIELD16(174, 174, 0xc40, 0x10, 12, 1),
0447     PIN_FIELD16(175, 175, 0xc50, 0x10, 12, 1),
0448     PINS_FIELD16(176, 179, 0xb70, 0x10, 15, 1),
0449     PIN_FIELD16(180, 180, 0xb00, 0x10, 7, 1),
0450     PINS_FIELD16(181, 184, 0xb00, 0x10, 3, 1),
0451     PINS_FIELD16(185, 191, 0xb60, 0x10, 11, 1),
0452     PIN_FIELD16(192, 192, 0xb40, 0x10, 3, 1),
0453     PINS_FIELD16(193, 194, 0xb40, 0x10, 7, 1),
0454     PINS_FIELD16(195, 196, 0xb40, 0x10, 3, 1),
0455 };
0456 
0457 static const struct mtk_pin_reg_calc mt6795_reg_cals[PINCTRL_PIN_REG_MAX] = {
0458     [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt6795_pin_mode_range),
0459     [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt6795_pin_dir_range),
0460     [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt6795_pin_di_range),
0461     [PINCTRL_PIN_REG_DO] = MTK_RANGE(mt6795_pin_do_range),
0462     [PINCTRL_PIN_REG_SR] = MTK_RANGE(mt6795_pin_sr_range),
0463     [PINCTRL_PIN_REG_SMT] = MTK_RANGE(mt6795_pin_smt_range),
0464     [PINCTRL_PIN_REG_DRV] = MTK_RANGE(mt6795_pin_drv_range),
0465     [PINCTRL_PIN_REG_PUPD] = MTK_RANGE(mt6795_pin_pupd_range),
0466     [PINCTRL_PIN_REG_R0] = MTK_RANGE(mt6795_pin_r0_range),
0467     [PINCTRL_PIN_REG_R1] = MTK_RANGE(mt6795_pin_r1_range),
0468     [PINCTRL_PIN_REG_IES] = MTK_RANGE(mt6795_pin_ies_range),
0469     [PINCTRL_PIN_REG_PULLEN] = MTK_RANGE(mt6795_pin_pullen_range),
0470     [PINCTRL_PIN_REG_PULLSEL] = MTK_RANGE(mt6795_pin_pullsel_range),
0471 };
0472 
0473 static const struct mtk_eint_hw mt6795_eint_hw = {
0474     .port_mask = 7,
0475     .ports     = 7,
0476     .ap_num    = 224,
0477     .db_cnt    = 32,
0478 };
0479 
0480 static const unsigned int mt6795_pull_type[] = {
0481     MTK_PULL_PULLSEL_TYPE,/*0*/     MTK_PULL_PULLSEL_TYPE,/*1*/
0482     MTK_PULL_PULLSEL_TYPE,/*2*/     MTK_PULL_PULLSEL_TYPE,/*3*/
0483     MTK_PULL_PULLSEL_TYPE,/*4*/     MTK_PULL_PULLSEL_TYPE,/*5*/
0484     MTK_PULL_PULLSEL_TYPE,/*6*/     MTK_PULL_PULLSEL_TYPE,/*7*/
0485     MTK_PULL_PULLSEL_TYPE,/*8*/     MTK_PULL_PULLSEL_TYPE,/*9*/
0486     MTK_PULL_PULLSEL_TYPE,/*10*/        MTK_PULL_PULLSEL_TYPE,/*11*/
0487     MTK_PULL_PULLSEL_TYPE,/*12*/        MTK_PULL_PULLSEL_TYPE,/*13*/
0488     MTK_PULL_PULLSEL_TYPE,/*14*/        MTK_PULL_PULLSEL_TYPE,/*15*/
0489     MTK_PULL_PULLSEL_TYPE,/*16*/        MTK_PULL_PULLSEL_TYPE,/*17*/
0490     MTK_PULL_PULLSEL_TYPE,/*18*/        MTK_PULL_PULLSEL_TYPE,/*19*/
0491     MTK_PULL_PULLSEL_TYPE,/*20*/        MTK_PULL_PULLSEL_TYPE,/*21*/
0492     MTK_PULL_PULLSEL_TYPE,/*22*/        MTK_PULL_PUPD_R1R0_TYPE,/*23*/
0493     MTK_PULL_PUPD_R1R0_TYPE,/*24*/      MTK_PULL_PUPD_R1R0_TYPE,/*25*/
0494     MTK_PULL_PUPD_R1R0_TYPE,/*26*/      MTK_PULL_PUPD_R1R0_TYPE,/*27*/
0495     MTK_PULL_PUPD_R1R0_TYPE,/*28*/      MTK_PULL_PULLSEL_TYPE,/*29*/
0496     MTK_PULL_PULLSEL_TYPE,/*30*/        MTK_PULL_PULLSEL_TYPE,/*31*/
0497     MTK_PULL_PULLSEL_TYPE,/*32*/        MTK_PULL_PULLSEL_TYPE,/*33*/
0498     MTK_PULL_PULLSEL_TYPE,/*34*/        MTK_PULL_PULLSEL_TYPE,/*35*/
0499     MTK_PULL_PULLSEL_TYPE,/*36*/        MTK_PULL_PULLSEL_TYPE,/*37*/
0500     MTK_PULL_PULLSEL_TYPE,/*38*/        MTK_PULL_PULLSEL_TYPE,/*39*/
0501     MTK_PULL_PULLSEL_TYPE,/*40*/        MTK_PULL_PULLSEL_TYPE,/*41*/
0502     MTK_PULL_PULLSEL_TYPE,/*42*/        MTK_PULL_PULLSEL_TYPE,/*43*/
0503     MTK_PULL_PULLSEL_TYPE,/*44*/        MTK_PULL_PULLSEL_TYPE,/*45*/
0504     MTK_PULL_PULLSEL_TYPE,/*46*/        MTK_PULL_PULLSEL_TYPE,/*47*/
0505     MTK_PULL_PULLSEL_TYPE,/*48*/        MTK_PULL_PULLSEL_TYPE,/*49*/
0506     MTK_PULL_PULLSEL_TYPE,/*50*/        MTK_PULL_PULLSEL_TYPE,/*51*/
0507     MTK_PULL_PULLSEL_TYPE,/*52*/        MTK_PULL_PULLSEL_TYPE,/*53*/
0508     MTK_PULL_PULLSEL_TYPE,/*54*/        MTK_PULL_PULLSEL_TYPE,/*55*/
0509     MTK_PULL_PULLSEL_TYPE,/*56*/        MTK_PULL_PULLSEL_TYPE,/*57*/
0510     MTK_PULL_PULLSEL_TYPE,/*58*/        MTK_PULL_PULLSEL_TYPE,/*59*/
0511     MTK_PULL_PULLSEL_TYPE,/*60*/        MTK_PULL_PULLSEL_TYPE,/*61*/
0512     MTK_PULL_PULLSEL_TYPE,/*62*/        MTK_PULL_PULLSEL_TYPE,/*63*/
0513     MTK_PULL_PULLSEL_TYPE,/*64*/        MTK_PULL_PULLSEL_TYPE,/*65*/
0514     MTK_PULL_PULLSEL_TYPE,/*66*/        MTK_PULL_PUPD_R1R0_TYPE,/*67*/
0515     MTK_PULL_PUPD_R1R0_TYPE,/*68*/      MTK_PULL_PUPD_R1R0_TYPE,/*69*/
0516     MTK_PULL_PUPD_R1R0_TYPE,/*70*/      MTK_PULL_PUPD_R1R0_TYPE,/*71*/
0517     MTK_PULL_PUPD_R1R0_TYPE,/*72*/      MTK_PULL_PUPD_R1R0_TYPE,/*73*/
0518     MTK_PULL_PUPD_R1R0_TYPE,/*74*/      MTK_PULL_PUPD_R1R0_TYPE,/*75*/
0519     MTK_PULL_PUPD_R1R0_TYPE,/*76*/      MTK_PULL_PUPD_R1R0_TYPE,/*77*/
0520     MTK_PULL_PUPD_R1R0_TYPE,/*78*/      MTK_PULL_PUPD_R1R0_TYPE,/*79*/
0521     MTK_PULL_PUPD_R1R0_TYPE,/*80*/      MTK_PULL_PUPD_R1R0_TYPE,/*81*/
0522     MTK_PULL_PUPD_R1R0_TYPE,/*82*/      MTK_PULL_PULLSEL_TYPE,/*83*/
0523     MTK_PULL_PUPD_R1R0_TYPE,/*84*/      MTK_PULL_PUPD_R1R0_TYPE,/*85*/
0524     MTK_PULL_PUPD_R1R0_TYPE,/*86*/      MTK_PULL_PUPD_R1R0_TYPE,/*87*/
0525     MTK_PULL_PUPD_R1R0_TYPE,/*88*/      MTK_PULL_PUPD_R1R0_TYPE,/*89*/
0526     MTK_PULL_PULLSEL_TYPE,/*90*/        MTK_PULL_PULLSEL_TYPE,/*91*/
0527     MTK_PULL_PULLSEL_TYPE,/*92*/        MTK_PULL_PULLSEL_TYPE,/*93*/
0528     MTK_PULL_PULLSEL_TYPE,/*94*/        MTK_PULL_PULLSEL_TYPE,/*95*/
0529     MTK_PULL_PULLSEL_TYPE,/*96*/        MTK_PULL_PULLSEL_TYPE,/*97*/
0530     MTK_PULL_PULLSEL_TYPE,/*98*/        MTK_PULL_PULLSEL_TYPE,/*99*/
0531     MTK_PULL_PUPD_R1R0_TYPE,/*100*/     MTK_PULL_PUPD_R1R0_TYPE,/*101*/
0532     MTK_PULL_PUPD_R1R0_TYPE,/*102*/     MTK_PULL_PUPD_R1R0_TYPE,/*103*/
0533     MTK_PULL_PUPD_R1R0_TYPE,/*104*/     MTK_PULL_PUPD_R1R0_TYPE,/*105*/
0534     MTK_PULL_PULLSEL_TYPE,/*106*/       MTK_PULL_PULLSEL_TYPE,/*107*/
0535     MTK_PULL_PULLSEL_TYPE,/*108*/       MTK_PULL_PULLSEL_TYPE,/*109*/
0536     MTK_PULL_PULLSEL_TYPE,/*110*/       MTK_PULL_PULLSEL_TYPE,/*111*/
0537     MTK_PULL_PULLSEL_TYPE,/*112*/       MTK_PULL_PULLSEL_TYPE,/*113*/
0538     MTK_PULL_PULLSEL_TYPE,/*114*/       MTK_PULL_PULLSEL_TYPE,/*115*/
0539     MTK_PULL_PULLSEL_TYPE,/*116*/       MTK_PULL_PULLSEL_TYPE,/*117*/
0540     MTK_PULL_PULLSEL_TYPE,/*118*/       MTK_PULL_PUPD_R1R0_TYPE,/*119*/
0541     MTK_PULL_PUPD_R1R0_TYPE,/*120*/     MTK_PULL_PUPD_R1R0_TYPE,/*121*/
0542     MTK_PULL_PUPD_R1R0_TYPE,/*122*/     MTK_PULL_PUPD_R1R0_TYPE,/*123*/
0543     MTK_PULL_PUPD_R1R0_TYPE,/*124*/     MTK_PULL_PULLSEL_TYPE,/*125*/
0544     MTK_PULL_PULLSEL_TYPE,/*126*/       MTK_PULL_PULLSEL_TYPE,/*127*/
0545     MTK_PULL_PULLSEL_TYPE,/*128*/       MTK_PULL_PULLSEL_TYPE,/*129*/
0546     MTK_PULL_PULLSEL_TYPE,/*130*/       MTK_PULL_PULLSEL_TYPE,/*131*/
0547     MTK_PULL_PULLSEL_TYPE,/*132*/       MTK_PULL_PULLSEL_TYPE,/*133*/
0548     MTK_PULL_PULLSEL_TYPE,/*134*/       MTK_PULL_PULLSEL_TYPE,/*135*/
0549     MTK_PULL_PULLSEL_TYPE,/*136*/       MTK_PULL_PULLSEL_TYPE,/*137*/
0550     MTK_PULL_PUPD_R1R0_TYPE,/*138*/     MTK_PULL_PUPD_R1R0_TYPE,/*139*/
0551     MTK_PULL_PUPD_R1R0_TYPE,/*140*/     MTK_PULL_PUPD_R1R0_TYPE,/*141*/
0552     MTK_PULL_PUPD_R1R0_TYPE,/*142*/     MTK_PULL_PUPD_R1R0_TYPE,/*143*/
0553     MTK_PULL_PUPD_R1R0_TYPE,/*144*/     MTK_PULL_PUPD_R1R0_TYPE,/*145*/
0554     MTK_PULL_PUPD_R1R0_TYPE,/*146*/     MTK_PULL_PUPD_R1R0_TYPE,/*147*/
0555     MTK_PULL_PUPD_R1R0_TYPE,/*148*/     MTK_PULL_PUPD_R1R0_TYPE,/*149*/
0556     MTK_PULL_PUPD_R1R0_TYPE,/*150*/     MTK_PULL_PUPD_R1R0_TYPE,/*151*/
0557     MTK_PULL_PUPD_R1R0_TYPE,/*152*/     MTK_PULL_PUPD_R1R0_TYPE,/*153*/
0558     MTK_PULL_PUPD_R1R0_TYPE,/*154*/     MTK_PULL_PUPD_R1R0_TYPE,/*155*/
0559     MTK_PULL_PUPD_R1R0_TYPE,/*156*/     MTK_PULL_PUPD_R1R0_TYPE,/*157*/
0560     MTK_PULL_PUPD_R1R0_TYPE,/*158*/     MTK_PULL_PUPD_R1R0_TYPE,/*159*/
0561     MTK_PULL_PUPD_R1R0_TYPE,/*160*/     MTK_PULL_PUPD_R1R0_TYPE,/*161*/
0562     MTK_PULL_PUPD_R1R0_TYPE,/*162*/     MTK_PULL_PUPD_R1R0_TYPE,/*163*/
0563     MTK_PULL_PUPD_R1R0_TYPE,/*164*/     MTK_PULL_PUPD_R1R0_TYPE,/*165*/
0564     MTK_PULL_PULLSEL_TYPE,/*166*/       MTK_PULL_PULLSEL_TYPE,/*167*/
0565     MTK_PULL_PULLSEL_TYPE,/*168*/       MTK_PULL_PULLSEL_TYPE,/*169*/
0566     MTK_PULL_PUPD_R1R0_TYPE,/*170*/     MTK_PULL_PUPD_R1R0_TYPE,/*171*/
0567     MTK_PULL_PUPD_R1R0_TYPE,/*172*/     MTK_PULL_PUPD_R1R0_TYPE,/*173*/
0568     MTK_PULL_PUPD_R1R0_TYPE,/*174*/     MTK_PULL_PUPD_R1R0_TYPE,/*175*/
0569     MTK_PULL_PULLSEL_TYPE,/*176*/       MTK_PULL_PULLSEL_TYPE,/*177*/
0570     MTK_PULL_PULLSEL_TYPE,/*178*/       MTK_PULL_PULLSEL_TYPE,/*179*/
0571     MTK_PULL_PULLSEL_TYPE,/*180*/       MTK_PULL_PULLSEL_TYPE,/*181*/
0572     MTK_PULL_PULLSEL_TYPE,/*182*/       MTK_PULL_PULLSEL_TYPE,/*183*/
0573     MTK_PULL_PULLSEL_TYPE,/*184*/       MTK_PULL_PULLSEL_TYPE,/*185*/
0574     MTK_PULL_PULLSEL_TYPE,/*186*/       MTK_PULL_PULLSEL_TYPE,/*187*/
0575     MTK_PULL_PULLSEL_TYPE,/*188*/       MTK_PULL_PULLSEL_TYPE,/*189*/
0576     MTK_PULL_PULLSEL_TYPE,/*190*/       MTK_PULL_PULLSEL_TYPE,/*191*/
0577     MTK_PULL_PULLSEL_TYPE,/*192*/       MTK_PULL_PULLSEL_TYPE,/*193*/
0578     MTK_PULL_PULLSEL_TYPE,/*194*/       MTK_PULL_PULLSEL_TYPE,/*195*/
0579     MTK_PULL_PULLSEL_TYPE,/*196*/
0580 };
0581 
0582 static const struct mtk_pin_soc mt6795_data = {
0583     .reg_cal = mt6795_reg_cals,
0584     .pins = mtk_pins_mt6795,
0585     .npins = ARRAY_SIZE(mtk_pins_mt6795),
0586     .ngrps = ARRAY_SIZE(mtk_pins_mt6795),
0587     .nfuncs = 8,
0588     .eint_hw = &mt6795_eint_hw,
0589     .gpio_m = 0,
0590     .base_names = mtk_default_register_base_names,
0591     .nbase_names = ARRAY_SIZE(mtk_default_register_base_names),
0592     .pull_type = mt6795_pull_type,
0593     .bias_disable_set = mtk_pinconf_bias_disable_set_rev1,
0594     .bias_disable_get = mtk_pinconf_bias_disable_get_rev1,
0595     .bias_set = mtk_pinconf_bias_set_rev1,
0596     .bias_get = mtk_pinconf_bias_get_rev1,
0597     .bias_set_combo = mtk_pinconf_bias_set_combo,
0598     .bias_get_combo = mtk_pinconf_bias_get_combo,
0599     .drive_set = mtk_pinconf_drive_set_rev1,
0600     .drive_get = mtk_pinconf_drive_get_rev1,
0601     .adv_pull_get = mtk_pinconf_adv_pull_get,
0602     .adv_pull_set = mtk_pinconf_adv_pull_set,
0603 };
0604 
0605 static const struct of_device_id mt6795_pctrl_match[] = {
0606     { .compatible = "mediatek,mt6795-pinctrl", .data = &mt6795_data },
0607     { }
0608 };
0609 
0610 static struct platform_driver mt6795_pinctrl_driver = {
0611     .driver = {
0612         .name = "mt6795-pinctrl",
0613         .of_match_table = mt6795_pctrl_match,
0614         .pm = &mtk_paris_pinctrl_pm_ops,
0615     },
0616     .probe = mtk_paris_pinctrl_probe,
0617 };
0618 
0619 static int __init mtk_pinctrl_init(void)
0620 {
0621     return platform_driver_register(&mt6795_pinctrl_driver);
0622 }
0623 arch_initcall(mtk_pinctrl_init);